@lightdash/common 0.1976.0 → 0.1976.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/pivot/derivePivotConfigFromChart.d.ts.map +1 -1
- package/dist/cjs/pivot/derivePivotConfigFromChart.js +34 -42
- package/dist/cjs/pivot/derivePivotConfigFromChart.js.map +1 -1
- package/dist/cjs/pivot/derivePivotConfigFromChart.mock.d.ts +7 -0
- package/dist/cjs/pivot/derivePivotConfigFromChart.mock.d.ts.map +1 -0
- package/dist/cjs/pivot/derivePivotConfigFromChart.mock.js +82 -0
- package/dist/cjs/pivot/derivePivotConfigFromChart.mock.js.map +1 -0
- package/dist/cjs/pivot/derivePivotConfigFromChart.test.d.ts +2 -0
- package/dist/cjs/pivot/derivePivotConfigFromChart.test.d.ts.map +1 -0
- package/dist/cjs/pivot/derivePivotConfigFromChart.test.js +120 -0
- package/dist/cjs/pivot/derivePivotConfigFromChart.test.js.map +1 -0
- package/dist/esm/pivot/derivePivotConfigFromChart.d.ts.map +1 -1
- package/dist/esm/pivot/derivePivotConfigFromChart.js +31 -39
- package/dist/esm/pivot/derivePivotConfigFromChart.js.map +1 -1
- package/dist/esm/pivot/derivePivotConfigFromChart.mock.d.ts +7 -0
- package/dist/esm/pivot/derivePivotConfigFromChart.mock.d.ts.map +1 -0
- package/dist/esm/pivot/derivePivotConfigFromChart.mock.js +79 -0
- package/dist/esm/pivot/derivePivotConfigFromChart.mock.js.map +1 -0
- package/dist/esm/pivot/derivePivotConfigFromChart.test.d.ts +2 -0
- package/dist/esm/pivot/derivePivotConfigFromChart.test.d.ts.map +1 -0
- package/dist/esm/pivot/derivePivotConfigFromChart.test.js +118 -0
- package/dist/esm/pivot/derivePivotConfigFromChart.test.js.map +1 -0
- package/dist/tsconfig.types.tsbuildinfo +1 -1
- package/dist/types/pivot/derivePivotConfigFromChart.d.ts.map +1 -1
- package/dist/types/pivot/derivePivotConfigFromChart.mock.d.ts +7 -0
- package/dist/types/pivot/derivePivotConfigFromChart.mock.d.ts.map +1 -0
- package/dist/types/pivot/derivePivotConfigFromChart.test.d.ts +2 -0
- package/dist/types/pivot/derivePivotConfigFromChart.test.d.ts.map +1 -0
- package/package.json +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"derivePivotConfigFromChart.d.ts","sourceRoot":"","sources":["../../../src/pivot/derivePivotConfigFromChart.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
1
|
+
{"version":3,"file":"derivePivotConfigFromChart.d.ts","sourceRoot":"","sources":["../../../src/pivot/derivePivotConfigFromChart.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAe,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,OAAO,EAGH,KAAK,aAAa,EACrB,MAAM,sBAAsB,CAAC;AAoL9B,wBAAgB,iCAAiC,CAC7C,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE,aAAa,GAAG,aAAa,CAAC,EAC9D,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,QAAQ,GACjB,kBAAkB,GAAG,SAAS,CAsBhC"}
|
@@ -1,12 +1,11 @@
|
|
1
1
|
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.derivePivotConfigurationFromChart = derivePivotConfigurationFromChart;
|
4
|
+
const tslib_1 = require("tslib");
|
2
5
|
/**
|
3
6
|
* Derives pivot configuration from a saved chart's configuration and metric query
|
4
7
|
* This enables consistent pivoting across all chart types
|
5
8
|
*/
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
7
|
-
exports.derivePivotConfigurationFromChart = derivePivotConfigurationFromChart;
|
8
|
-
const tslib_1 = require("tslib");
|
9
|
-
const lodash_1 = require("lodash");
|
10
9
|
const field_1 = require("../types/field");
|
11
10
|
const savedCharts_1 = require("../types/savedCharts");
|
12
11
|
const assertUnreachable_1 = tslib_1.__importDefault(require("../utils/assertUnreachable"));
|
@@ -80,51 +79,44 @@ function getTablePivotConfiguration(savedChart, metricQuery, fields) {
|
|
80
79
|
return pivotConfiguration;
|
81
80
|
}
|
82
81
|
function getCartesianPivotConfiguration(savedChart, metricQuery, fields) {
|
83
|
-
const { chartConfig } = savedChart;
|
82
|
+
const { chartConfig, pivotConfig } = savedChart;
|
84
83
|
if (chartConfig.type !== savedCharts_1.ChartType.CARTESIAN) {
|
85
84
|
throw new Error('Chart is not a Cartesian chart');
|
86
85
|
}
|
87
86
|
if (!(0, savedCharts_1.isCartesianChartConfig)(chartConfig.config)) {
|
88
87
|
throw new Error('Invalid cartesian chart config - no eCharts config');
|
89
88
|
}
|
90
|
-
const {
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
}));
|
106
|
-
const xAxisDimension = fields[xRef.field];
|
107
|
-
let xAxisType;
|
108
|
-
if (xAxisDimension && (0, field_1.isDimension)(xAxisDimension)) {
|
109
|
-
xAxisType = (0, types_1.getColumnAxisType)(xAxisDimension.type);
|
110
|
-
}
|
111
|
-
const indexColumn = xAxisType
|
112
|
-
? {
|
113
|
-
reference: xRef.field,
|
114
|
-
type: xAxisType,
|
115
|
-
}
|
116
|
-
: undefined;
|
117
|
-
const partialPivotConfiguration = {
|
118
|
-
indexColumn,
|
119
|
-
valuesColumns,
|
120
|
-
groupByColumns,
|
121
|
-
};
|
122
|
-
const pivotConfiguration = {
|
123
|
-
...partialPivotConfiguration,
|
124
|
-
sortBy: getSortByForPivotConfiguration(partialPivotConfiguration, metricQuery),
|
125
|
-
};
|
126
|
-
return pivotConfiguration;
|
89
|
+
const { layout: { xField, yField }, } = chartConfig.config;
|
90
|
+
if (pivotConfig?.columns && xField && yField) {
|
91
|
+
// Extract pivot columns
|
92
|
+
const groupByColumns = pivotConfig.columns.map((pv) => ({
|
93
|
+
reference: pv,
|
94
|
+
}));
|
95
|
+
// Extract value columns
|
96
|
+
const valuesColumns = yField.map((yf) => ({
|
97
|
+
reference: yf,
|
98
|
+
aggregation: types_1.VizAggregationOptions.ANY,
|
99
|
+
}));
|
100
|
+
const xAxisDimension = fields[xField];
|
101
|
+
let xAxisType;
|
102
|
+
if (xAxisDimension && (0, field_1.isDimension)(xAxisDimension)) {
|
103
|
+
xAxisType = (0, types_1.getColumnAxisType)(xAxisDimension.type);
|
127
104
|
}
|
105
|
+
const indexColumn = xAxisType
|
106
|
+
? {
|
107
|
+
reference: xField,
|
108
|
+
type: xAxisType,
|
109
|
+
}
|
110
|
+
: undefined;
|
111
|
+
const partialPivotConfiguration = {
|
112
|
+
indexColumn,
|
113
|
+
valuesColumns,
|
114
|
+
groupByColumns,
|
115
|
+
};
|
116
|
+
return {
|
117
|
+
...partialPivotConfiguration,
|
118
|
+
sortBy: getSortByForPivotConfiguration(partialPivotConfiguration, metricQuery),
|
119
|
+
};
|
128
120
|
}
|
129
121
|
return undefined;
|
130
122
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"derivePivotConfigFromChart.js","sourceRoot":"","sources":["../../../src/pivot/derivePivotConfigFromChart.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"derivePivotConfigFromChart.js","sourceRoot":"","sources":["../../../src/pivot/derivePivotConfigFromChart.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import { type ItemsMap } from '../types/field';
|
2
|
+
import { type MetricQuery } from '../types/metricQuery';
|
3
|
+
import { type CartesianChartConfig } from '../types/savedCharts';
|
4
|
+
export declare const mockItems: ItemsMap;
|
5
|
+
export declare const mockMetricQuery: MetricQuery;
|
6
|
+
export declare const mockCartesianChartConfig: CartesianChartConfig;
|
7
|
+
//# sourceMappingURL=derivePivotConfigFromChart.mock.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"derivePivotConfigFromChart.mock.d.ts","sourceRoot":"","sources":["../../../src/pivot/derivePivotConfigFromChart.mock.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,KAAK,QAAQ,EAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAa,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG5E,eAAO,MAAM,SAAS,EAAE,QA+CvB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,WAe7B,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,oBAWtC,CAAC"}
|
@@ -0,0 +1,82 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.mockCartesianChartConfig = exports.mockMetricQuery = exports.mockItems = void 0;
|
4
|
+
const field_1 = require("../types/field");
|
5
|
+
const savedCharts_1 = require("../types/savedCharts");
|
6
|
+
// Items (fields) map derived from issue description
|
7
|
+
exports.mockItems = {
|
8
|
+
payments_payment_method: {
|
9
|
+
sql: '${TABLE}.payment_method',
|
10
|
+
name: 'payment_method',
|
11
|
+
type: field_1.DimensionType.STRING,
|
12
|
+
index: 2,
|
13
|
+
label: 'Payment method',
|
14
|
+
table: 'payments',
|
15
|
+
groups: [],
|
16
|
+
hidden: false,
|
17
|
+
fieldType: field_1.FieldType.DIMENSION,
|
18
|
+
tableLabel: 'Payments',
|
19
|
+
description: 'Method of payment used, for example credit card',
|
20
|
+
},
|
21
|
+
orders_status: {
|
22
|
+
sql: '${TABLE}.status',
|
23
|
+
name: 'status',
|
24
|
+
type: field_1.DimensionType.STRING,
|
25
|
+
index: 4,
|
26
|
+
label: 'Status',
|
27
|
+
table: 'orders',
|
28
|
+
groups: [],
|
29
|
+
hidden: false,
|
30
|
+
fieldType: field_1.FieldType.DIMENSION,
|
31
|
+
tableLabel: 'Orders',
|
32
|
+
description: '# Order Status\n\nOrders can be one of the following statuses:\n\n| status | description |\n| -------------- | ---------------------------------------------------------------------------------------------------------------------- |\n| placed | The order has been placed but has not yet left the warehouse |\n| shipped | The order has ben shipped to the customer and is currently in transit |\n| completed | The order has been received by the customer |\n| return_pending | The customer has indicated that they would like to return the order, but it has not yet been received at the warehouse |\n| returned | The order has been returned by the customer and received at the warehouse |',
|
33
|
+
},
|
34
|
+
payments_total_revenue: {
|
35
|
+
sql: '${TABLE}.amount',
|
36
|
+
name: 'total_revenue',
|
37
|
+
type: field_1.MetricType.SUM,
|
38
|
+
index: 1,
|
39
|
+
label: 'Total revenue',
|
40
|
+
table: 'payments',
|
41
|
+
groups: [],
|
42
|
+
hidden: false,
|
43
|
+
filters: [],
|
44
|
+
fieldType: field_1.FieldType.METRIC,
|
45
|
+
spotlight: {
|
46
|
+
categories: [],
|
47
|
+
visibility: 'show',
|
48
|
+
},
|
49
|
+
tableLabel: 'Payments',
|
50
|
+
description: 'Sum of all payments',
|
51
|
+
dimensionReference: 'payments_amount',
|
52
|
+
},
|
53
|
+
};
|
54
|
+
exports.mockMetricQuery = {
|
55
|
+
exploreName: 'payments',
|
56
|
+
dimensions: ['payments_payment_method', 'orders_status'],
|
57
|
+
metrics: ['payments_total_revenue'],
|
58
|
+
filters: {},
|
59
|
+
sorts: [
|
60
|
+
{
|
61
|
+
fieldId: 'payments_payment_method',
|
62
|
+
descending: false,
|
63
|
+
},
|
64
|
+
],
|
65
|
+
limit: 500,
|
66
|
+
tableCalculations: [],
|
67
|
+
additionalMetrics: [],
|
68
|
+
metricOverrides: {},
|
69
|
+
};
|
70
|
+
exports.mockCartesianChartConfig = {
|
71
|
+
type: savedCharts_1.ChartType.CARTESIAN,
|
72
|
+
config: {
|
73
|
+
layout: {
|
74
|
+
xField: 'payments_payment_method',
|
75
|
+
yField: ['payments_total_revenue'],
|
76
|
+
},
|
77
|
+
eChartsConfig: {
|
78
|
+
series: [],
|
79
|
+
},
|
80
|
+
},
|
81
|
+
};
|
82
|
+
//# sourceMappingURL=derivePivotConfigFromChart.mock.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"derivePivotConfigFromChart.mock.js","sourceRoot":"","sources":["../../../src/pivot/derivePivotConfigFromChart.mock.ts"],"names":[],"mappings":";;;AAAA,0CAKwB;AAExB,sDAA4E;AAE5E,oDAAoD;AACvC,QAAA,SAAS,GAAa;IAC/B,uBAAuB,EAAE;QACrB,GAAG,EAAE,yBAAyB;QAC9B,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,qBAAa,CAAC,MAAM;QAC1B,KAAK,EAAE,CAAC;QACR,KAAK,EAAE,gBAAgB;QACvB,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,KAAK;QACb,SAAS,EAAE,iBAAS,CAAC,SAAS;QAC9B,UAAU,EAAE,UAAU;QACtB,WAAW,EAAE,iDAAiD;KACjE;IACD,aAAa,EAAE;QACX,GAAG,EAAE,iBAAiB;QACtB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,qBAAa,CAAC,MAAM;QAC1B,KAAK,EAAE,CAAC;QACR,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,QAAQ;QACf,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,KAAK;QACb,SAAS,EAAE,iBAAS,CAAC,SAAS;QAC9B,UAAU,EAAE,QAAQ;QACpB,WAAW,EACP,6hCAA6hC;KACpiC;IACD,sBAAsB,EAAE;QACpB,GAAG,EAAE,iBAAiB;QACtB,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,kBAAU,CAAC,GAAG;QACpB,KAAK,EAAE,CAAC;QACR,KAAK,EAAE,eAAe;QACtB,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,EAAE;QACX,SAAS,EAAE,iBAAS,CAAC,MAAM;QAC3B,SAAS,EAAE;YACP,UAAU,EAAE,EAAE;YACd,UAAU,EAAE,MAAM;SACrB;QACD,UAAU,EAAE,UAAU;QACtB,WAAW,EAAE,qBAAqB;QAClC,kBAAkB,EAAE,iBAAiB;KACxC;CACJ,CAAC;AAEW,QAAA,eAAe,GAAgB;IACxC,WAAW,EAAE,UAAU;IACvB,UAAU,EAAE,CAAC,yBAAyB,EAAE,eAAe,CAAC;IACxD,OAAO,EAAE,CAAC,wBAAwB,CAAC;IACnC,OAAO,EAAE,EAAE;IACX,KAAK,EAAE;QACH;YACI,OAAO,EAAE,yBAAyB;YAClC,UAAU,EAAE,KAAK;SACpB;KACJ;IACD,KAAK,EAAE,GAAG;IACV,iBAAiB,EAAE,EAAE;IACrB,iBAAiB,EAAE,EAAE;IACrB,eAAe,EAAE,EAAE;CACtB,CAAC;AAEW,QAAA,wBAAwB,GAAyB;IAC1D,IAAI,EAAE,uBAAS,CAAC,SAAS;IACzB,MAAM,EAAE;QACJ,MAAM,EAAE;YACJ,MAAM,EAAE,yBAAyB;YACjC,MAAM,EAAE,CAAC,wBAAwB,CAAC;SACrC;QACD,aAAa,EAAE;YACX,MAAM,EAAE,EAAE;SACb;KACJ;CACJ,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"derivePivotConfigFromChart.test.d.ts","sourceRoot":"","sources":["../../../src/pivot/derivePivotConfigFromChart.test.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1,120 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const savedCharts_1 = require("../types/savedCharts");
|
4
|
+
const types_1 = require("../visualizations/types");
|
5
|
+
const derivePivotConfigFromChart_1 = require("./derivePivotConfigFromChart");
|
6
|
+
const derivePivotConfigFromChart_mock_1 = require("./derivePivotConfigFromChart.mock");
|
7
|
+
// Jest provides describe/it/expect globals
|
8
|
+
describe('derivePivotConfigurationFromChart', () => {
|
9
|
+
it('derives pivot configuration for Cartesian charts with pivot config', () => {
|
10
|
+
const savedChart = {
|
11
|
+
chartConfig: derivePivotConfigFromChart_mock_1.mockCartesianChartConfig,
|
12
|
+
pivotConfig: {
|
13
|
+
columns: ['orders_status'],
|
14
|
+
},
|
15
|
+
};
|
16
|
+
const result = (0, derivePivotConfigFromChart_1.derivePivotConfigurationFromChart)(savedChart, derivePivotConfigFromChart_mock_1.mockMetricQuery, derivePivotConfigFromChart_mock_1.mockItems);
|
17
|
+
expect(result).toEqual({
|
18
|
+
indexColumn: {
|
19
|
+
reference: 'payments_payment_method',
|
20
|
+
type: types_1.VizIndexType.CATEGORY,
|
21
|
+
},
|
22
|
+
valuesColumns: [
|
23
|
+
{
|
24
|
+
reference: 'payments_total_revenue',
|
25
|
+
aggregation: types_1.VizAggregationOptions.ANY,
|
26
|
+
},
|
27
|
+
],
|
28
|
+
groupByColumns: [{ reference: 'orders_status' }],
|
29
|
+
sortBy: [
|
30
|
+
{
|
31
|
+
reference: 'payments_payment_method',
|
32
|
+
direction: types_1.SortByDirection.ASC,
|
33
|
+
},
|
34
|
+
],
|
35
|
+
});
|
36
|
+
});
|
37
|
+
it('returns undefined for Cartesian charts without pivot config', () => {
|
38
|
+
const savedChart = {
|
39
|
+
chartConfig: derivePivotConfigFromChart_mock_1.mockCartesianChartConfig,
|
40
|
+
pivotConfig: undefined,
|
41
|
+
};
|
42
|
+
const result = (0, derivePivotConfigFromChart_1.derivePivotConfigurationFromChart)(savedChart, derivePivotConfigFromChart_mock_1.mockMetricQuery, derivePivotConfigFromChart_mock_1.mockItems);
|
43
|
+
expect(result).toBeUndefined();
|
44
|
+
});
|
45
|
+
it('derives pivot configuration for Table charts with pivot config', () => {
|
46
|
+
const tableChartConfig = {
|
47
|
+
type: savedCharts_1.ChartType.TABLE,
|
48
|
+
config: {},
|
49
|
+
};
|
50
|
+
// Pivot on payments_payment_method so orders_status becomes index column
|
51
|
+
const savedChart = {
|
52
|
+
chartConfig: tableChartConfig,
|
53
|
+
pivotConfig: {
|
54
|
+
columns: ['payments_payment_method'],
|
55
|
+
},
|
56
|
+
};
|
57
|
+
const result = (0, derivePivotConfigFromChart_1.derivePivotConfigurationFromChart)(savedChart, derivePivotConfigFromChart_mock_1.mockMetricQuery, derivePivotConfigFromChart_mock_1.mockItems);
|
58
|
+
expect(result).toEqual({
|
59
|
+
indexColumn: [
|
60
|
+
{
|
61
|
+
reference: 'orders_status',
|
62
|
+
type: types_1.VizIndexType.CATEGORY,
|
63
|
+
},
|
64
|
+
],
|
65
|
+
valuesColumns: [
|
66
|
+
{
|
67
|
+
reference: 'payments_total_revenue',
|
68
|
+
aggregation: types_1.VizAggregationOptions.ANY,
|
69
|
+
},
|
70
|
+
],
|
71
|
+
groupByColumns: [{ reference: 'payments_payment_method' }],
|
72
|
+
sortBy: [
|
73
|
+
{
|
74
|
+
reference: 'payments_payment_method',
|
75
|
+
direction: types_1.SortByDirection.ASC,
|
76
|
+
},
|
77
|
+
],
|
78
|
+
});
|
79
|
+
});
|
80
|
+
it('returns undefined for unsupported chart types (PIE)', () => {
|
81
|
+
const pieChartConfig = {
|
82
|
+
type: savedCharts_1.ChartType.PIE,
|
83
|
+
config: {},
|
84
|
+
};
|
85
|
+
const savedChart = {
|
86
|
+
chartConfig: pieChartConfig,
|
87
|
+
pivotConfig: { columns: ['payments_payment_method'] },
|
88
|
+
};
|
89
|
+
const result = (0, derivePivotConfigFromChart_1.derivePivotConfigurationFromChart)(savedChart, derivePivotConfigFromChart_mock_1.mockMetricQuery, derivePivotConfigFromChart_mock_1.mockItems);
|
90
|
+
expect(result).toBeUndefined();
|
91
|
+
});
|
92
|
+
it('filters out sorts that are not present in pivot configuration', () => {
|
93
|
+
const savedChart = {
|
94
|
+
chartConfig: derivePivotConfigFromChart_mock_1.mockCartesianChartConfig,
|
95
|
+
pivotConfig: {
|
96
|
+
columns: ['orders_status'],
|
97
|
+
},
|
98
|
+
};
|
99
|
+
const mq = {
|
100
|
+
...derivePivotConfigFromChart_mock_1.mockMetricQuery,
|
101
|
+
sorts: [
|
102
|
+
{ fieldId: 'payments_payment_method', descending: false }, // present as index
|
103
|
+
{ fieldId: 'payments_total_revenue', descending: true }, // present as value column
|
104
|
+
{ fieldId: 'non_existing_field', descending: false }, // should be filtered out
|
105
|
+
],
|
106
|
+
};
|
107
|
+
const result = (0, derivePivotConfigFromChart_1.derivePivotConfigurationFromChart)(savedChart, mq, derivePivotConfigFromChart_mock_1.mockItems);
|
108
|
+
expect(result?.sortBy).toEqual([
|
109
|
+
{
|
110
|
+
reference: 'payments_payment_method',
|
111
|
+
direction: types_1.SortByDirection.ASC,
|
112
|
+
},
|
113
|
+
{
|
114
|
+
reference: 'payments_total_revenue',
|
115
|
+
direction: types_1.SortByDirection.DESC,
|
116
|
+
},
|
117
|
+
]);
|
118
|
+
});
|
119
|
+
});
|
120
|
+
//# sourceMappingURL=derivePivotConfigFromChart.test.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"derivePivotConfigFromChart.test.js","sourceRoot":"","sources":["../../../src/pivot/derivePivotConfigFromChart.test.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"derivePivotConfigFromChart.d.ts","sourceRoot":"","sources":["../../../src/pivot/derivePivotConfigFromChart.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
1
|
+
{"version":3,"file":"derivePivotConfigFromChart.d.ts","sourceRoot":"","sources":["../../../src/pivot/derivePivotConfigFromChart.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAe,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,OAAO,EAGH,KAAK,aAAa,EACrB,MAAM,sBAAsB,CAAC;AAoL9B,wBAAgB,iCAAiC,CAC7C,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE,aAAa,GAAG,aAAa,CAAC,EAC9D,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,QAAQ,GACjB,kBAAkB,GAAG,SAAS,CAsBhC"}
|
@@ -2,7 +2,6 @@
|
|
2
2
|
* Derives pivot configuration from a saved chart's configuration and metric query
|
3
3
|
* This enables consistent pivoting across all chart types
|
4
4
|
*/
|
5
|
-
import { uniqBy } from 'lodash';
|
6
5
|
import { isDimension } from '../types/field';
|
7
6
|
import { ChartType, isCartesianChartConfig, } from '../types/savedCharts';
|
8
7
|
import assertUnreachable from '../utils/assertUnreachable';
|
@@ -76,51 +75,44 @@ function getTablePivotConfiguration(savedChart, metricQuery, fields) {
|
|
76
75
|
return pivotConfiguration;
|
77
76
|
}
|
78
77
|
function getCartesianPivotConfiguration(savedChart, metricQuery, fields) {
|
79
|
-
const { chartConfig } = savedChart;
|
78
|
+
const { chartConfig, pivotConfig } = savedChart;
|
80
79
|
if (chartConfig.type !== ChartType.CARTESIAN) {
|
81
80
|
throw new Error('Chart is not a Cartesian chart');
|
82
81
|
}
|
83
82
|
if (!isCartesianChartConfig(chartConfig.config)) {
|
84
83
|
throw new Error('Invalid cartesian chart config - no eCharts config');
|
85
84
|
}
|
86
|
-
const {
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
}));
|
102
|
-
const xAxisDimension = fields[xRef.field];
|
103
|
-
let xAxisType;
|
104
|
-
if (xAxisDimension && isDimension(xAxisDimension)) {
|
105
|
-
xAxisType = getColumnAxisType(xAxisDimension.type);
|
106
|
-
}
|
107
|
-
const indexColumn = xAxisType
|
108
|
-
? {
|
109
|
-
reference: xRef.field,
|
110
|
-
type: xAxisType,
|
111
|
-
}
|
112
|
-
: undefined;
|
113
|
-
const partialPivotConfiguration = {
|
114
|
-
indexColumn,
|
115
|
-
valuesColumns,
|
116
|
-
groupByColumns,
|
117
|
-
};
|
118
|
-
const pivotConfiguration = {
|
119
|
-
...partialPivotConfiguration,
|
120
|
-
sortBy: getSortByForPivotConfiguration(partialPivotConfiguration, metricQuery),
|
121
|
-
};
|
122
|
-
return pivotConfiguration;
|
85
|
+
const { layout: { xField, yField }, } = chartConfig.config;
|
86
|
+
if (pivotConfig?.columns && xField && yField) {
|
87
|
+
// Extract pivot columns
|
88
|
+
const groupByColumns = pivotConfig.columns.map((pv) => ({
|
89
|
+
reference: pv,
|
90
|
+
}));
|
91
|
+
// Extract value columns
|
92
|
+
const valuesColumns = yField.map((yf) => ({
|
93
|
+
reference: yf,
|
94
|
+
aggregation: VizAggregationOptions.ANY,
|
95
|
+
}));
|
96
|
+
const xAxisDimension = fields[xField];
|
97
|
+
let xAxisType;
|
98
|
+
if (xAxisDimension && isDimension(xAxisDimension)) {
|
99
|
+
xAxisType = getColumnAxisType(xAxisDimension.type);
|
123
100
|
}
|
101
|
+
const indexColumn = xAxisType
|
102
|
+
? {
|
103
|
+
reference: xField,
|
104
|
+
type: xAxisType,
|
105
|
+
}
|
106
|
+
: undefined;
|
107
|
+
const partialPivotConfiguration = {
|
108
|
+
indexColumn,
|
109
|
+
valuesColumns,
|
110
|
+
groupByColumns,
|
111
|
+
};
|
112
|
+
return {
|
113
|
+
...partialPivotConfiguration,
|
114
|
+
sortBy: getSortByForPivotConfiguration(partialPivotConfiguration, metricQuery),
|
115
|
+
};
|
124
116
|
}
|
125
117
|
return undefined;
|
126
118
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"derivePivotConfigFromChart.js","sourceRoot":"","sources":["../../../src/pivot/derivePivotConfigFromChart.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
1
|
+
{"version":3,"file":"derivePivotConfigFromChart.js","sourceRoot":"","sources":["../../../src/pivot/derivePivotConfigFromChart.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import { type ItemsMap } from '../types/field';
|
2
|
+
import { type MetricQuery } from '../types/metricQuery';
|
3
|
+
import { type CartesianChartConfig } from '../types/savedCharts';
|
4
|
+
export declare const mockItems: ItemsMap;
|
5
|
+
export declare const mockMetricQuery: MetricQuery;
|
6
|
+
export declare const mockCartesianChartConfig: CartesianChartConfig;
|
7
|
+
//# sourceMappingURL=derivePivotConfigFromChart.mock.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"derivePivotConfigFromChart.mock.d.ts","sourceRoot":"","sources":["../../../src/pivot/derivePivotConfigFromChart.mock.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,KAAK,QAAQ,EAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAa,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG5E,eAAO,MAAM,SAAS,EAAE,QA+CvB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,WAe7B,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,oBAWtC,CAAC"}
|
@@ -0,0 +1,79 @@
|
|
1
|
+
import { DimensionType, FieldType, MetricType, } from '../types/field';
|
2
|
+
import { ChartType } from '../types/savedCharts';
|
3
|
+
// Items (fields) map derived from issue description
|
4
|
+
export const mockItems = {
|
5
|
+
payments_payment_method: {
|
6
|
+
sql: '${TABLE}.payment_method',
|
7
|
+
name: 'payment_method',
|
8
|
+
type: DimensionType.STRING,
|
9
|
+
index: 2,
|
10
|
+
label: 'Payment method',
|
11
|
+
table: 'payments',
|
12
|
+
groups: [],
|
13
|
+
hidden: false,
|
14
|
+
fieldType: FieldType.DIMENSION,
|
15
|
+
tableLabel: 'Payments',
|
16
|
+
description: 'Method of payment used, for example credit card',
|
17
|
+
},
|
18
|
+
orders_status: {
|
19
|
+
sql: '${TABLE}.status',
|
20
|
+
name: 'status',
|
21
|
+
type: DimensionType.STRING,
|
22
|
+
index: 4,
|
23
|
+
label: 'Status',
|
24
|
+
table: 'orders',
|
25
|
+
groups: [],
|
26
|
+
hidden: false,
|
27
|
+
fieldType: FieldType.DIMENSION,
|
28
|
+
tableLabel: 'Orders',
|
29
|
+
description: '# Order Status\n\nOrders can be one of the following statuses:\n\n| status | description |\n| -------------- | ---------------------------------------------------------------------------------------------------------------------- |\n| placed | The order has been placed but has not yet left the warehouse |\n| shipped | The order has ben shipped to the customer and is currently in transit |\n| completed | The order has been received by the customer |\n| return_pending | The customer has indicated that they would like to return the order, but it has not yet been received at the warehouse |\n| returned | The order has been returned by the customer and received at the warehouse |',
|
30
|
+
},
|
31
|
+
payments_total_revenue: {
|
32
|
+
sql: '${TABLE}.amount',
|
33
|
+
name: 'total_revenue',
|
34
|
+
type: MetricType.SUM,
|
35
|
+
index: 1,
|
36
|
+
label: 'Total revenue',
|
37
|
+
table: 'payments',
|
38
|
+
groups: [],
|
39
|
+
hidden: false,
|
40
|
+
filters: [],
|
41
|
+
fieldType: FieldType.METRIC,
|
42
|
+
spotlight: {
|
43
|
+
categories: [],
|
44
|
+
visibility: 'show',
|
45
|
+
},
|
46
|
+
tableLabel: 'Payments',
|
47
|
+
description: 'Sum of all payments',
|
48
|
+
dimensionReference: 'payments_amount',
|
49
|
+
},
|
50
|
+
};
|
51
|
+
export const mockMetricQuery = {
|
52
|
+
exploreName: 'payments',
|
53
|
+
dimensions: ['payments_payment_method', 'orders_status'],
|
54
|
+
metrics: ['payments_total_revenue'],
|
55
|
+
filters: {},
|
56
|
+
sorts: [
|
57
|
+
{
|
58
|
+
fieldId: 'payments_payment_method',
|
59
|
+
descending: false,
|
60
|
+
},
|
61
|
+
],
|
62
|
+
limit: 500,
|
63
|
+
tableCalculations: [],
|
64
|
+
additionalMetrics: [],
|
65
|
+
metricOverrides: {},
|
66
|
+
};
|
67
|
+
export const mockCartesianChartConfig = {
|
68
|
+
type: ChartType.CARTESIAN,
|
69
|
+
config: {
|
70
|
+
layout: {
|
71
|
+
xField: 'payments_payment_method',
|
72
|
+
yField: ['payments_total_revenue'],
|
73
|
+
},
|
74
|
+
eChartsConfig: {
|
75
|
+
series: [],
|
76
|
+
},
|
77
|
+
},
|
78
|
+
};
|
79
|
+
//# sourceMappingURL=derivePivotConfigFromChart.mock.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"derivePivotConfigFromChart.mock.js","sourceRoot":"","sources":["../../../src/pivot/derivePivotConfigFromChart.mock.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,aAAa,EACb,SAAS,EACT,UAAU,GAEb,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,SAAS,EAA6B,MAAM,sBAAsB,CAAC;AAE5E,oDAAoD;AACpD,MAAM,CAAC,MAAM,SAAS,GAAa;IAC/B,uBAAuB,EAAE;QACrB,GAAG,EAAE,yBAAyB;QAC9B,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,aAAa,CAAC,MAAM;QAC1B,KAAK,EAAE,CAAC;QACR,KAAK,EAAE,gBAAgB;QACvB,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,KAAK;QACb,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,UAAU,EAAE,UAAU;QACtB,WAAW,EAAE,iDAAiD;KACjE;IACD,aAAa,EAAE;QACX,GAAG,EAAE,iBAAiB;QACtB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,aAAa,CAAC,MAAM;QAC1B,KAAK,EAAE,CAAC;QACR,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,QAAQ;QACf,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,KAAK;QACb,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,UAAU,EAAE,QAAQ;QACpB,WAAW,EACP,6hCAA6hC;KACpiC;IACD,sBAAsB,EAAE;QACpB,GAAG,EAAE,iBAAiB;QACtB,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,UAAU,CAAC,GAAG;QACpB,KAAK,EAAE,CAAC;QACR,KAAK,EAAE,eAAe;QACtB,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,EAAE;QACX,SAAS,EAAE,SAAS,CAAC,MAAM;QAC3B,SAAS,EAAE;YACP,UAAU,EAAE,EAAE;YACd,UAAU,EAAE,MAAM;SACrB;QACD,UAAU,EAAE,UAAU;QACtB,WAAW,EAAE,qBAAqB;QAClC,kBAAkB,EAAE,iBAAiB;KACxC;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAgB;IACxC,WAAW,EAAE,UAAU;IACvB,UAAU,EAAE,CAAC,yBAAyB,EAAE,eAAe,CAAC;IACxD,OAAO,EAAE,CAAC,wBAAwB,CAAC;IACnC,OAAO,EAAE,EAAE;IACX,KAAK,EAAE;QACH;YACI,OAAO,EAAE,yBAAyB;YAClC,UAAU,EAAE,KAAK;SACpB;KACJ;IACD,KAAK,EAAE,GAAG;IACV,iBAAiB,EAAE,EAAE;IACrB,iBAAiB,EAAE,EAAE;IACrB,eAAe,EAAE,EAAE;CACtB,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAyB;IAC1D,IAAI,EAAE,SAAS,CAAC,SAAS;IACzB,MAAM,EAAE;QACJ,MAAM,EAAE;YACJ,MAAM,EAAE,yBAAyB;YACjC,MAAM,EAAE,CAAC,wBAAwB,CAAC;SACrC;QACD,aAAa,EAAE;YACX,MAAM,EAAE,EAAE;SACb;KACJ;CACJ,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"derivePivotConfigFromChart.test.d.ts","sourceRoot":"","sources":["../../../src/pivot/derivePivotConfigFromChart.test.ts"],"names":[],"mappings":""}
|