@gooddata/sdk-code-convertors 11.68.0-alpha.0 → 11.68.0-alpha.10
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/NOTICE +2007 -0
- package/esm/configs/barChart.d.ts +5 -46
- package/esm/configs/barChart.d.ts.map +1 -1
- package/esm/configs/barChart.js +9 -2
- package/esm/configs/columnChart.d.ts +5 -46
- package/esm/configs/columnChart.d.ts.map +1 -1
- package/esm/configs/columnChart.js +9 -2
- package/esm/configs/lineChart.d.ts +5 -46
- package/esm/configs/lineChart.d.ts.map +1 -1
- package/esm/configs/lineChart.js +9 -2
- package/esm/configs/secondaryAxis.d.ts +43 -0
- package/esm/configs/secondaryAxis.d.ts.map +1 -0
- package/esm/configs/secondaryAxis.js +62 -0
- package/esm/configs/utils.d.ts +2 -1
- package/esm/configs/utils.d.ts.map +1 -1
- package/esm/from/declarativeDashboardToYaml.d.ts +5 -2
- package/esm/from/declarativeDashboardToYaml.d.ts.map +1 -1
- package/esm/from/declarativeDashboardToYaml.js +41 -2
- package/esm/from/declarativeVisualisationToYaml.d.ts.map +1 -1
- package/esm/from/declarativeVisualisationToYaml.js +17 -3
- package/esm/index.d.ts +1 -0
- package/esm/index.d.ts.map +1 -1
- package/esm/sdk-code-convertors.d.ts +37 -138
- package/esm/to/yamlDashboardToDeclarative.d.ts +1 -1
- package/esm/to/yamlDashboardToDeclarative.d.ts.map +1 -1
- package/esm/to/yamlDashboardToDeclarative.js +19 -2
- package/esm/to/yamlVisualisationToDeclarative.js +3 -3
- package/esm/types.d.ts +1 -0
- package/esm/types.d.ts.map +1 -1
- package/esm/utils/errors.js +1 -1
- package/esm/utils/yamlUtils.d.ts +1 -1
- package/esm/utils/yamlUtils.d.ts.map +1 -1
- package/esm/validateDeclarativePublisherEntityV2.d.ts.map +1 -1
- package/esm/validateDeclarativePublisherEntityV2.js +35 -6
- package/package.json +8 -7
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { Visualisation } from "@gooddata/sdk-code-schemas/v1";
|
|
1
|
+
import type { Bucket, Visualisation } from "@gooddata/sdk-code-schemas/v1";
|
|
2
|
+
import { type SecondaryAxisProperties } from "./secondaryAxis.js";
|
|
2
3
|
import { type ChartFillType, type ColorMapping, type ICustomTooltip, type PatternFillName } from "./types.js";
|
|
3
4
|
import { type ConfigDefaults, type VisualisationConfig } from "./utils.js";
|
|
4
5
|
/** @internal */
|
|
@@ -40,6 +41,7 @@ export type BarChartConfigProperties = {
|
|
|
40
41
|
rotation: "0" | "30" | "60" | "90" | "auto";
|
|
41
42
|
visible: boolean;
|
|
42
43
|
};
|
|
44
|
+
secondary_xaxis: SecondaryAxisProperties;
|
|
43
45
|
grid: {
|
|
44
46
|
enabled: boolean;
|
|
45
47
|
};
|
|
@@ -55,7 +57,7 @@ export declare const BAR_CHART_DEFAULTS: ConfigDefaults<BarChartConfigProperties
|
|
|
55
57
|
/** @internal */
|
|
56
58
|
export declare function barChartLoad(props: VisualisationConfig<BarChartConfigProperties>): import("yaml").Pair<import("yaml").Scalar<string>, any> | null;
|
|
57
59
|
/** @internal */
|
|
58
|
-
export declare function barChartSave(_fields: Visualisation["query"]["fields"] | undefined,
|
|
60
|
+
export declare function barChartSave(_fields: Visualisation["query"]["fields"] | undefined, inputConfig: Visualisation["config"] | undefined, metrics?: Bucket[]): {
|
|
59
61
|
colorMapping: ColorMapping[] | undefined;
|
|
60
62
|
dataLabels: {
|
|
61
63
|
totalsVisible: "auto" | boolean | undefined;
|
|
@@ -93,6 +95,7 @@ export declare function barChartSave(_fields: Visualisation["query"]["fields"] |
|
|
|
93
95
|
visible: boolean | undefined;
|
|
94
96
|
labelsEnabled: boolean | undefined;
|
|
95
97
|
} | undefined;
|
|
98
|
+
secondary_xaxis: SecondaryAxisProperties | undefined;
|
|
96
99
|
grid: {
|
|
97
100
|
enabled: boolean | undefined;
|
|
98
101
|
} | undefined;
|
|
@@ -102,50 +105,6 @@ export declare function barChartSave(_fields: Visualisation["query"]["fields"] |
|
|
|
102
105
|
disableScheduledExports: boolean | undefined;
|
|
103
106
|
disableKeyDriveAnalysisOn: {
|
|
104
107
|
[k: string]: boolean;
|
|
105
|
-
} | {
|
|
106
|
-
[k: string]: boolean;
|
|
107
|
-
} | {
|
|
108
|
-
[k: string]: boolean;
|
|
109
|
-
} | {
|
|
110
|
-
[k: string]: boolean;
|
|
111
|
-
} | {
|
|
112
|
-
[k: string]: boolean;
|
|
113
|
-
} | {
|
|
114
|
-
[k: string]: boolean;
|
|
115
|
-
} | {
|
|
116
|
-
[k: string]: boolean;
|
|
117
|
-
} | {
|
|
118
|
-
[k: string]: boolean;
|
|
119
|
-
} | {
|
|
120
|
-
[k: string]: boolean;
|
|
121
|
-
} | {
|
|
122
|
-
[k: string]: boolean;
|
|
123
|
-
} | {
|
|
124
|
-
[k: string]: boolean;
|
|
125
|
-
} | {
|
|
126
|
-
[k: string]: boolean;
|
|
127
|
-
} | {
|
|
128
|
-
[k: string]: boolean;
|
|
129
|
-
} | {
|
|
130
|
-
[k: string]: boolean;
|
|
131
|
-
} | {
|
|
132
|
-
[k: string]: boolean;
|
|
133
|
-
} | {
|
|
134
|
-
[k: string]: boolean;
|
|
135
|
-
} | {
|
|
136
|
-
[k: string]: boolean;
|
|
137
|
-
} | {
|
|
138
|
-
[k: string]: boolean;
|
|
139
|
-
} | {
|
|
140
|
-
[k: string]: boolean;
|
|
141
|
-
} | {
|
|
142
|
-
[k: string]: boolean;
|
|
143
|
-
} | {
|
|
144
|
-
[k: string]: boolean;
|
|
145
|
-
} | {
|
|
146
|
-
[k: string]: boolean;
|
|
147
|
-
} | {
|
|
148
|
-
[k: string]: boolean;
|
|
149
108
|
} | undefined;
|
|
150
109
|
customTooltip: ICustomTooltip | undefined;
|
|
151
110
|
} | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"barChart.d.ts","sourceRoot":"","sources":["../../src/configs/barChart.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"barChart.d.ts","sourceRoot":"","sources":["../../src/configs/barChart.ts"],"names":[],"mappings":"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"}
|
package/esm/configs/barChart.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// (C) 2023-2026 GoodData Corporation
|
|
2
2
|
import { DEFAULT_CUSTOM_TOOLTIP, loadChartFill, loadColorMapping, loadCustomTooltip, loadDisableKda, saveChartFill, saveColorMapping, saveCustomTooltip, } from "../utils/configUtils.js";
|
|
3
|
+
import { SECONDARY_AXIS_DEFAULTS, loadSecondaryAxis, saveSecondaryAxis, } from "./secondaryAxis.js";
|
|
3
4
|
import { getValueOrDefault, loadConfig, saveConfigObject, } from "./utils.js";
|
|
4
5
|
/** @internal */
|
|
5
6
|
const DEFAULTS = {
|
|
@@ -39,6 +40,7 @@ const DEFAULTS = {
|
|
|
39
40
|
rotation: "auto",
|
|
40
41
|
visible: true,
|
|
41
42
|
},
|
|
43
|
+
secondary_xaxis: SECONDARY_AXIS_DEFAULTS,
|
|
42
44
|
grid: {
|
|
43
45
|
enabled: true,
|
|
44
46
|
},
|
|
@@ -127,6 +129,8 @@ export function barChartLoad(props) {
|
|
|
127
129
|
],
|
|
128
130
|
];
|
|
129
131
|
}
|
|
132
|
+
case "secondary_xaxis":
|
|
133
|
+
return [...loadSecondaryAxis(value, "xaxis_secondary")];
|
|
130
134
|
case "grid": {
|
|
131
135
|
return [["grid_enabled", getValueOrDefault(value.enabled, DEFAULTS.grid.enabled, "bool")]];
|
|
132
136
|
}
|
|
@@ -155,8 +159,10 @@ export function barChartLoad(props) {
|
|
|
155
159
|
});
|
|
156
160
|
}
|
|
157
161
|
/** @internal */
|
|
158
|
-
export function barChartSave(_fields,
|
|
159
|
-
|
|
162
|
+
export function barChartSave(_fields, inputConfig, metrics = []) {
|
|
163
|
+
const config = inputConfig ?? {};
|
|
164
|
+
const secondaryXAxis = saveSecondaryAxis(config, "xaxis_secondary", metrics);
|
|
165
|
+
if (!inputConfig && !secondaryXAxis) {
|
|
160
166
|
return undefined;
|
|
161
167
|
}
|
|
162
168
|
return saveConfigObject({
|
|
@@ -194,6 +200,7 @@ export function barChartSave(_fields, config) {
|
|
|
194
200
|
visible: getValueOrDefault(config.yaxis_visible, DEFAULTS.yaxis.visible, "bool"),
|
|
195
201
|
labelsEnabled: getValueOrDefault(config.yaxis_labels, DEFAULTS.yaxis.labelsEnabled, "bool"),
|
|
196
202
|
}),
|
|
203
|
+
secondary_xaxis: secondaryXAxis,
|
|
197
204
|
grid: saveConfigObject({
|
|
198
205
|
enabled: getValueOrDefault(config.grid_enabled, DEFAULTS.grid.enabled, "bool"),
|
|
199
206
|
}),
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { Visualisation } from "@gooddata/sdk-code-schemas/v1";
|
|
1
|
+
import type { Bucket, Visualisation } from "@gooddata/sdk-code-schemas/v1";
|
|
2
|
+
import { type SecondaryAxisProperties } from "./secondaryAxis.js";
|
|
2
3
|
import { type ChartFillType, type ColorMapping, type ICustomTooltip, type PatternFillName } from "./types.js";
|
|
3
4
|
import { type ConfigDefaults, type VisualisationConfig } from "./utils.js";
|
|
4
5
|
/** @internal */
|
|
@@ -40,6 +41,7 @@ export type ColumnChartConfigProperties = {
|
|
|
40
41
|
rotation: "0" | "30" | "60" | "90" | "auto";
|
|
41
42
|
visible: boolean;
|
|
42
43
|
};
|
|
44
|
+
secondary_yaxis: SecondaryAxisProperties;
|
|
43
45
|
grid: {
|
|
44
46
|
enabled: boolean;
|
|
45
47
|
};
|
|
@@ -55,7 +57,7 @@ export declare const COLUMN_CHART_DEFAULTS: ConfigDefaults<ColumnChartConfigProp
|
|
|
55
57
|
/** @internal */
|
|
56
58
|
export declare function columnChartLoad(props: VisualisationConfig<ColumnChartConfigProperties>): import("yaml").Pair<import("yaml").Scalar<string>, any> | null;
|
|
57
59
|
/** @internal */
|
|
58
|
-
export declare function columnChartSave(_fields: Visualisation["query"]["fields"] | undefined,
|
|
60
|
+
export declare function columnChartSave(_fields: Visualisation["query"]["fields"] | undefined, inputConfig: Visualisation["config"] | undefined, metrics?: Bucket[]): {
|
|
59
61
|
colorMapping: ColorMapping[] | undefined;
|
|
60
62
|
dataLabels: {
|
|
61
63
|
totalsVisible: "auto" | boolean | undefined;
|
|
@@ -93,6 +95,7 @@ export declare function columnChartSave(_fields: Visualisation["query"]["fields"
|
|
|
93
95
|
visible: boolean | undefined;
|
|
94
96
|
labelsEnabled: boolean | undefined;
|
|
95
97
|
} | undefined;
|
|
98
|
+
secondary_yaxis: SecondaryAxisProperties | undefined;
|
|
96
99
|
grid: {
|
|
97
100
|
enabled: boolean | undefined;
|
|
98
101
|
} | undefined;
|
|
@@ -102,50 +105,6 @@ export declare function columnChartSave(_fields: Visualisation["query"]["fields"
|
|
|
102
105
|
disableScheduledExports: boolean | undefined;
|
|
103
106
|
disableKeyDriveAnalysisOn: {
|
|
104
107
|
[k: string]: boolean;
|
|
105
|
-
} | {
|
|
106
|
-
[k: string]: boolean;
|
|
107
|
-
} | {
|
|
108
|
-
[k: string]: boolean;
|
|
109
|
-
} | {
|
|
110
|
-
[k: string]: boolean;
|
|
111
|
-
} | {
|
|
112
|
-
[k: string]: boolean;
|
|
113
|
-
} | {
|
|
114
|
-
[k: string]: boolean;
|
|
115
|
-
} | {
|
|
116
|
-
[k: string]: boolean;
|
|
117
|
-
} | {
|
|
118
|
-
[k: string]: boolean;
|
|
119
|
-
} | {
|
|
120
|
-
[k: string]: boolean;
|
|
121
|
-
} | {
|
|
122
|
-
[k: string]: boolean;
|
|
123
|
-
} | {
|
|
124
|
-
[k: string]: boolean;
|
|
125
|
-
} | {
|
|
126
|
-
[k: string]: boolean;
|
|
127
|
-
} | {
|
|
128
|
-
[k: string]: boolean;
|
|
129
|
-
} | {
|
|
130
|
-
[k: string]: boolean;
|
|
131
|
-
} | {
|
|
132
|
-
[k: string]: boolean;
|
|
133
|
-
} | {
|
|
134
|
-
[k: string]: boolean;
|
|
135
|
-
} | {
|
|
136
|
-
[k: string]: boolean;
|
|
137
|
-
} | {
|
|
138
|
-
[k: string]: boolean;
|
|
139
|
-
} | {
|
|
140
|
-
[k: string]: boolean;
|
|
141
|
-
} | {
|
|
142
|
-
[k: string]: boolean;
|
|
143
|
-
} | {
|
|
144
|
-
[k: string]: boolean;
|
|
145
|
-
} | {
|
|
146
|
-
[k: string]: boolean;
|
|
147
|
-
} | {
|
|
148
|
-
[k: string]: boolean;
|
|
149
108
|
} | undefined;
|
|
150
109
|
customTooltip: ICustomTooltip | undefined;
|
|
151
110
|
} | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columnChart.d.ts","sourceRoot":"","sources":["../../src/configs/columnChart.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"columnChart.d.ts","sourceRoot":"","sources":["../../src/configs/columnChart.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// (C) 2023-2026 GoodData Corporation
|
|
2
2
|
import { DEFAULT_CUSTOM_TOOLTIP, loadChartFill, loadColorMapping, loadCustomTooltip, loadDisableKda, saveChartFill, saveColorMapping, saveCustomTooltip, } from "../utils/configUtils.js";
|
|
3
|
+
import { SECONDARY_AXIS_DEFAULTS, loadSecondaryAxis, saveSecondaryAxis, } from "./secondaryAxis.js";
|
|
3
4
|
import { getValueOrDefault, loadConfig, saveConfigObject, } from "./utils.js";
|
|
4
5
|
/** @internal */
|
|
5
6
|
const DEFAULTS = {
|
|
@@ -39,6 +40,7 @@ const DEFAULTS = {
|
|
|
39
40
|
rotation: "auto",
|
|
40
41
|
visible: false,
|
|
41
42
|
},
|
|
43
|
+
secondary_yaxis: SECONDARY_AXIS_DEFAULTS,
|
|
42
44
|
grid: {
|
|
43
45
|
enabled: true,
|
|
44
46
|
},
|
|
@@ -127,6 +129,8 @@ export function columnChartLoad(props) {
|
|
|
127
129
|
["yaxis_visible", getValueOrDefault(value.visible, DEFAULTS.yaxis.visible, "bool")],
|
|
128
130
|
];
|
|
129
131
|
}
|
|
132
|
+
case "secondary_yaxis":
|
|
133
|
+
return [...loadSecondaryAxis(value, "yaxis_secondary")];
|
|
130
134
|
case "grid": {
|
|
131
135
|
return [["grid_enabled", getValueOrDefault(value.enabled, DEFAULTS.grid.enabled, "bool")]];
|
|
132
136
|
}
|
|
@@ -155,8 +159,10 @@ export function columnChartLoad(props) {
|
|
|
155
159
|
});
|
|
156
160
|
}
|
|
157
161
|
/** @internal */
|
|
158
|
-
export function columnChartSave(_fields,
|
|
159
|
-
|
|
162
|
+
export function columnChartSave(_fields, inputConfig, metrics = []) {
|
|
163
|
+
const config = inputConfig ?? {};
|
|
164
|
+
const secondaryYAxis = saveSecondaryAxis(config, "yaxis_secondary", metrics);
|
|
165
|
+
if (!inputConfig && !secondaryYAxis) {
|
|
160
166
|
return undefined;
|
|
161
167
|
}
|
|
162
168
|
return saveConfigObject({
|
|
@@ -194,6 +200,7 @@ export function columnChartSave(_fields, config) {
|
|
|
194
200
|
visible: getValueOrDefault(config.yaxis_visible, DEFAULTS.yaxis.visible, "bool"),
|
|
195
201
|
labelsEnabled: getValueOrDefault(config.yaxis_labels, DEFAULTS.yaxis.labelsEnabled, "bool"),
|
|
196
202
|
}),
|
|
203
|
+
secondary_yaxis: secondaryYAxis,
|
|
197
204
|
grid: saveConfigObject({
|
|
198
205
|
enabled: getValueOrDefault(config.grid_enabled, DEFAULTS.grid.enabled, "bool"),
|
|
199
206
|
}),
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { Visualisation } from "@gooddata/sdk-code-schemas/v1";
|
|
1
|
+
import type { Bucket, Visualisation } from "@gooddata/sdk-code-schemas/v1";
|
|
2
|
+
import { type SecondaryAxisProperties } from "./secondaryAxis.js";
|
|
2
3
|
import { type ColorMapping, type ICustomTooltip, type LineStyleMapping, type PointShapeSymbol } from "./types.js";
|
|
3
4
|
import { type ConfigDefaults, type VisualisationConfig } from "./utils.js";
|
|
4
5
|
/** @internal */
|
|
@@ -43,6 +44,7 @@ export type LineChartConfigProperties = {
|
|
|
43
44
|
rotation: "0" | "30" | "60" | "90" | "auto";
|
|
44
45
|
visible: boolean;
|
|
45
46
|
};
|
|
47
|
+
secondary_yaxis: SecondaryAxisProperties;
|
|
46
48
|
grid: {
|
|
47
49
|
enabled: boolean;
|
|
48
50
|
};
|
|
@@ -74,7 +76,7 @@ export declare const LINE_CHART_DEFAULTS: ConfigDefaults<LineChartConfigProperti
|
|
|
74
76
|
/** @internal */
|
|
75
77
|
export declare function lineChartLoad(props: VisualisationConfig<LineChartConfigProperties>): import("yaml").Pair<import("yaml").Scalar<string>, any> | null;
|
|
76
78
|
/** @internal */
|
|
77
|
-
export declare function lineChartSave(_fields: Visualisation["query"]["fields"] | undefined,
|
|
79
|
+
export declare function lineChartSave(_fields: Visualisation["query"]["fields"] | undefined, inputConfig: Visualisation["config"] | undefined, metrics?: Bucket[]): {
|
|
78
80
|
colorMapping: ColorMapping[] | undefined;
|
|
79
81
|
continuousLine: {
|
|
80
82
|
enabled: boolean | undefined;
|
|
@@ -115,6 +117,7 @@ export declare function lineChartSave(_fields: Visualisation["query"]["fields"]
|
|
|
115
117
|
visible: boolean | undefined;
|
|
116
118
|
labelsEnabled: boolean | undefined;
|
|
117
119
|
} | undefined;
|
|
120
|
+
secondary_yaxis: SecondaryAxisProperties | undefined;
|
|
118
121
|
grid: {
|
|
119
122
|
enabled: boolean | undefined;
|
|
120
123
|
} | undefined;
|
|
@@ -136,50 +139,6 @@ export declare function lineChartSave(_fields: Visualisation["query"]["fields"]
|
|
|
136
139
|
disableScheduledExports: boolean | undefined;
|
|
137
140
|
disableKeyDriveAnalysisOn: {
|
|
138
141
|
[k: string]: boolean;
|
|
139
|
-
} | {
|
|
140
|
-
[k: string]: boolean;
|
|
141
|
-
} | {
|
|
142
|
-
[k: string]: boolean;
|
|
143
|
-
} | {
|
|
144
|
-
[k: string]: boolean;
|
|
145
|
-
} | {
|
|
146
|
-
[k: string]: boolean;
|
|
147
|
-
} | {
|
|
148
|
-
[k: string]: boolean;
|
|
149
|
-
} | {
|
|
150
|
-
[k: string]: boolean;
|
|
151
|
-
} | {
|
|
152
|
-
[k: string]: boolean;
|
|
153
|
-
} | {
|
|
154
|
-
[k: string]: boolean;
|
|
155
|
-
} | {
|
|
156
|
-
[k: string]: boolean;
|
|
157
|
-
} | {
|
|
158
|
-
[k: string]: boolean;
|
|
159
|
-
} | {
|
|
160
|
-
[k: string]: boolean;
|
|
161
|
-
} | {
|
|
162
|
-
[k: string]: boolean;
|
|
163
|
-
} | {
|
|
164
|
-
[k: string]: boolean;
|
|
165
|
-
} | {
|
|
166
|
-
[k: string]: boolean;
|
|
167
|
-
} | {
|
|
168
|
-
[k: string]: boolean;
|
|
169
|
-
} | {
|
|
170
|
-
[k: string]: boolean;
|
|
171
|
-
} | {
|
|
172
|
-
[k: string]: boolean;
|
|
173
|
-
} | {
|
|
174
|
-
[k: string]: boolean;
|
|
175
|
-
} | {
|
|
176
|
-
[k: string]: boolean;
|
|
177
|
-
} | {
|
|
178
|
-
[k: string]: boolean;
|
|
179
|
-
} | {
|
|
180
|
-
[k: string]: boolean;
|
|
181
|
-
} | {
|
|
182
|
-
[k: string]: boolean;
|
|
183
142
|
} | undefined;
|
|
184
143
|
customTooltip: ICustomTooltip | undefined;
|
|
185
144
|
thresholdMeasures: string[] | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lineChart.d.ts","sourceRoot":"","sources":["../../src/configs/lineChart.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"lineChart.d.ts","sourceRoot":"","sources":["../../src/configs/lineChart.ts"],"names":[],"mappings":"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"}
|
package/esm/configs/lineChart.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// (C) 2023-2026 GoodData Corporation
|
|
2
2
|
import { DEFAULT_CUSTOM_TOOLTIP, loadColorMapping, loadCustomTooltip, loadDisableKda, loadLineStyleMapping, saveColorMapping, saveCustomTooltip, saveLineStyleMapping, } from "../utils/configUtils.js";
|
|
3
|
+
import { SECONDARY_AXIS_DEFAULTS, loadSecondaryAxis, saveSecondaryAxis, } from "./secondaryAxis.js";
|
|
3
4
|
import { getValueOrDefault, loadConfig, saveConfigObject, } from "./utils.js";
|
|
4
5
|
/** @internal */
|
|
5
6
|
const DEFAULTS = {
|
|
@@ -42,6 +43,7 @@ const DEFAULTS = {
|
|
|
42
43
|
rotation: "auto",
|
|
43
44
|
visible: true,
|
|
44
45
|
},
|
|
46
|
+
secondary_yaxis: SECONDARY_AXIS_DEFAULTS,
|
|
45
47
|
grid: {
|
|
46
48
|
enabled: true,
|
|
47
49
|
},
|
|
@@ -153,6 +155,8 @@ export function lineChartLoad(props) {
|
|
|
153
155
|
],
|
|
154
156
|
];
|
|
155
157
|
}
|
|
158
|
+
case "secondary_yaxis":
|
|
159
|
+
return [...loadSecondaryAxis(value, "yaxis_secondary")];
|
|
156
160
|
case "grid": {
|
|
157
161
|
return [["grid_enabled", getValueOrDefault(value.enabled, DEFAULTS.grid.enabled, "bool")]];
|
|
158
162
|
}
|
|
@@ -229,8 +233,10 @@ export function lineChartLoad(props) {
|
|
|
229
233
|
});
|
|
230
234
|
}
|
|
231
235
|
/** @internal */
|
|
232
|
-
export function lineChartSave(_fields,
|
|
233
|
-
|
|
236
|
+
export function lineChartSave(_fields, inputConfig, metrics = []) {
|
|
237
|
+
const config = inputConfig ?? {};
|
|
238
|
+
const secondaryYAxis = saveSecondaryAxis(config, "yaxis_secondary", metrics);
|
|
239
|
+
if (!inputConfig && !secondaryYAxis) {
|
|
234
240
|
return undefined;
|
|
235
241
|
}
|
|
236
242
|
return saveConfigObject({
|
|
@@ -275,6 +281,7 @@ export function lineChartSave(_fields, config) {
|
|
|
275
281
|
visible: getValueOrDefault(config.yaxis_visible, DEFAULTS.yaxis.visible, "bool"),
|
|
276
282
|
labelsEnabled: getValueOrDefault(config.yaxis_labels, DEFAULTS.yaxis.labelsEnabled, "bool"),
|
|
277
283
|
}),
|
|
284
|
+
secondary_yaxis: secondaryYAxis,
|
|
278
285
|
grid: saveConfigObject({
|
|
279
286
|
enabled: getValueOrDefault(config.grid_enabled, DEFAULTS.grid.enabled, "bool"),
|
|
280
287
|
}),
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { Bucket, Visualisation } from "@gooddata/sdk-code-schemas/v1";
|
|
2
|
+
import { type ConfigDefaults, type ConfigEntry } from "./utils.js";
|
|
3
|
+
/**
|
|
4
|
+
* Secondary axis of a dual-axis line, column or bar chart. It is the right axis of line and column
|
|
5
|
+
* charts (`secondary_yaxis`) and the top axis of bar charts (`secondary_xaxis`).
|
|
6
|
+
*
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
export type SecondaryAxisProperties = {
|
|
10
|
+
measures: string[];
|
|
11
|
+
format: "inherit" | "auto";
|
|
12
|
+
max: number | string;
|
|
13
|
+
min: number | string;
|
|
14
|
+
name: {
|
|
15
|
+
visible: boolean;
|
|
16
|
+
position: "center" | "left" | "right" | "auto";
|
|
17
|
+
};
|
|
18
|
+
labelsEnabled: boolean;
|
|
19
|
+
rotation: "0" | "30" | "60" | "90" | "auto";
|
|
20
|
+
visible: boolean;
|
|
21
|
+
};
|
|
22
|
+
/** @internal */
|
|
23
|
+
export declare const SECONDARY_AXIS_DEFAULTS: ConfigDefaults<SecondaryAxisProperties>;
|
|
24
|
+
/**
|
|
25
|
+
* Prefix of the AAC config keys that hold the secondary axis settings.
|
|
26
|
+
*/
|
|
27
|
+
type SecondaryAxisConfigPrefix = "yaxis_secondary" | "xaxis_secondary";
|
|
28
|
+
/**
|
|
29
|
+
* Converts the stored secondary axis settings to AAC config entries. The measures on the axis are not
|
|
30
|
+
* part of the config, they are expressed as `axis: secondary` on the metrics instead.
|
|
31
|
+
*
|
|
32
|
+
* @internal
|
|
33
|
+
*/
|
|
34
|
+
export declare function loadSecondaryAxis(value: Partial<SecondaryAxisProperties>, prefix: SecondaryAxisConfigPrefix): ConfigEntry[];
|
|
35
|
+
/**
|
|
36
|
+
* Builds the stored secondary axis settings from the AAC config and from the metrics marked with
|
|
37
|
+
* `axis: secondary`.
|
|
38
|
+
*
|
|
39
|
+
* @internal
|
|
40
|
+
*/
|
|
41
|
+
export declare function saveSecondaryAxis(config: NonNullable<Visualisation["config"]>, prefix: SecondaryAxisConfigPrefix, metrics?: Bucket[]): SecondaryAxisProperties | undefined;
|
|
42
|
+
export {};
|
|
43
|
+
//# sourceMappingURL=secondaryAxis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secondaryAxis.d.ts","sourceRoot":"","sources":["../../src/configs/secondaryAxis.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAI3E,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,WAAW,EAAuC,MAAM,YAAY,CAAC;AAExG;;;;;GAKG;AACH,MAAM,MAAM,uBAAuB,GAAG;IAClC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC;IAC3B,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,IAAI,EAAE;QACF,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;KAClD,CAAC;IACF,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;IAC5C,OAAO,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,gBAAgB;AAChB,eAAO,MAAM,uBAAuB,EAAE,cAAc,CAAC,uBAAuB,CAY3E,CAAC;AAEF;;GAEG;AACH,KAAK,yBAAyB,GAAG,iBAAiB,GAAG,iBAAiB,CAAC;AAEvE;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC7B,KAAK,EAAE,OAAO,CAAC,uBAAuB,CAAC,EACvC,MAAM,EAAE,yBAAyB,GAClC,WAAW,EAAE,CAYf;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC7B,MAAM,EAAE,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,EAC5C,MAAM,EAAE,yBAAyB,EACjC,OAAO,GAAE,MAAM,EAAO,GACvB,uBAAuB,GAAG,SAAS,CAoBrC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
// (C) 2026 GoodData Corporation
|
|
2
|
+
import { getFullBucket } from "../utils/sharedUtils.js";
|
|
3
|
+
import { getValueOrDefault, saveConfigObject } from "./utils.js";
|
|
4
|
+
/** @internal */
|
|
5
|
+
export const SECONDARY_AXIS_DEFAULTS = {
|
|
6
|
+
measures: [],
|
|
7
|
+
format: "auto",
|
|
8
|
+
max: "",
|
|
9
|
+
min: "",
|
|
10
|
+
name: {
|
|
11
|
+
visible: true,
|
|
12
|
+
position: "auto",
|
|
13
|
+
},
|
|
14
|
+
labelsEnabled: true,
|
|
15
|
+
rotation: "auto",
|
|
16
|
+
visible: true,
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Converts the stored secondary axis settings to AAC config entries. The measures on the axis are not
|
|
20
|
+
* part of the config, they are expressed as `axis: secondary` on the metrics instead.
|
|
21
|
+
*
|
|
22
|
+
* @internal
|
|
23
|
+
*/
|
|
24
|
+
export function loadSecondaryAxis(value, prefix) {
|
|
25
|
+
const defaults = SECONDARY_AXIS_DEFAULTS;
|
|
26
|
+
return [
|
|
27
|
+
[`${prefix}_format`, getValueOrDefault(value.format, defaults.format)],
|
|
28
|
+
[`${prefix}_max`, getValueOrDefault(value.max, defaults.max, "number")],
|
|
29
|
+
[`${prefix}_min`, getValueOrDefault(value.min, defaults.min, "number")],
|
|
30
|
+
[`${prefix}_name_position`, getValueOrDefault(value.name?.position, defaults.name.position)],
|
|
31
|
+
[`${prefix}_name_visible`, getValueOrDefault(value.name?.visible, defaults.name.visible, "bool")],
|
|
32
|
+
[`${prefix}_rotation`, getValueOrDefault(value.rotation, defaults.rotation)],
|
|
33
|
+
[`${prefix}_visible`, getValueOrDefault(value.visible, defaults.visible, "bool")],
|
|
34
|
+
[`${prefix}_labels`, getValueOrDefault(value.labelsEnabled, defaults.labelsEnabled, "bool")],
|
|
35
|
+
];
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Builds the stored secondary axis settings from the AAC config and from the metrics marked with
|
|
39
|
+
* `axis: secondary`.
|
|
40
|
+
*
|
|
41
|
+
* @internal
|
|
42
|
+
*/
|
|
43
|
+
export function saveSecondaryAxis(config, prefix, metrics = []) {
|
|
44
|
+
const defaults = SECONDARY_AXIS_DEFAULTS;
|
|
45
|
+
const measures = metrics
|
|
46
|
+
.map(getFullBucket)
|
|
47
|
+
.filter((bucket) => bucket.axis === "secondary" && bucket.field)
|
|
48
|
+
.map((bucket) => bucket.field);
|
|
49
|
+
return saveConfigObject({
|
|
50
|
+
measures: measures.length > 0 ? measures : undefined,
|
|
51
|
+
format: getValueOrDefault(config[`${prefix}_format`], defaults.format),
|
|
52
|
+
max: getValueOrDefault(config[`${prefix}_max`], defaults.max),
|
|
53
|
+
min: getValueOrDefault(config[`${prefix}_min`], defaults.min),
|
|
54
|
+
name: saveConfigObject({
|
|
55
|
+
position: getValueOrDefault(config[`${prefix}_name_position`], defaults.name.position),
|
|
56
|
+
visible: getValueOrDefault(config[`${prefix}_name_visible`], defaults.name.visible, "bool"),
|
|
57
|
+
}),
|
|
58
|
+
rotation: getValueOrDefault(config[`${prefix}_rotation`], defaults.rotation),
|
|
59
|
+
visible: getValueOrDefault(config[`${prefix}_visible`], defaults.visible, "bool"),
|
|
60
|
+
labelsEnabled: getValueOrDefault(config[`${prefix}_labels`], defaults.labelsEnabled, "bool"),
|
|
61
|
+
});
|
|
62
|
+
}
|
package/esm/configs/utils.d.ts
CHANGED
|
@@ -21,7 +21,8 @@ type KnownKeys<T> = {
|
|
|
21
21
|
[K in keyof T as string extends K ? never : number extends K ? never : K]: T[K];
|
|
22
22
|
};
|
|
23
23
|
type YamlConfig = KnownKeys<NonNullable<Visualisation["config"]>>;
|
|
24
|
-
|
|
24
|
+
/** @internal */
|
|
25
|
+
export type ConfigEntry = {
|
|
25
26
|
[K in keyof YamlConfig]-?: [key: K, value: unknown];
|
|
26
27
|
}[keyof YamlConfig];
|
|
27
28
|
type LoaderArgs<T> = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/configs/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAW,MAAM,MAAM,CAAC;AAErC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAInE,cAAc;AACd,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI;IACjC,QAAQ,CAAC,EAAE,CAAC,CAAC;CAChB,CAAC;AAEF,gBAAgB;AAChB,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;KAC3B,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;CAC3B,CAAC;AAEF,cAAc;AACd,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,CAAC;AAE7E,cAAc;AACd,wBAAgB,iBAAiB,CAAC,CAAC,EAC/B,KAAK,EAAE,CAAC,EACR,YAAY,EAAE,CAAC,EACf,IAAI,GAAE,SAAoB,EAC1B,kBAAkB,GAAE,OAAe,GACpC,CAAC,GAAG,SAAS,CAuBf;AAED;;;;GAIG;AACH,KAAK,SAAS,CAAC,CAAC,IAAI;KACf,CAAC,IAAI,MAAM,CAAC,IAAI,MAAM,SAAS,CAAC,GAAG,KAAK,GAAG,MAAM,SAAS,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAClF,CAAC;AACF,KAAK,UAAU,GAAG,SAAS,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAClE,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/configs/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAW,MAAM,MAAM,CAAC;AAErC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAInE,cAAc;AACd,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI;IACjC,QAAQ,CAAC,EAAE,CAAC,CAAC;CAChB,CAAC;AAEF,gBAAgB;AAChB,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;KAC3B,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;CAC3B,CAAC;AAEF,cAAc;AACd,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,CAAC;AAE7E,cAAc;AACd,wBAAgB,iBAAiB,CAAC,CAAC,EAC/B,KAAK,EAAE,CAAC,EACR,YAAY,EAAE,CAAC,EACf,IAAI,GAAE,SAAoB,EAC1B,kBAAkB,GAAE,OAAe,GACpC,CAAC,GAAG,SAAS,CAuBf;AAED;;;;GAIG;AACH,KAAK,SAAS,CAAC,CAAC,IAAI;KACf,CAAC,IAAI,MAAM,CAAC,IAAI,MAAM,SAAS,CAAC,GAAG,KAAK,GAAG,MAAM,SAAS,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAClF,CAAC;AACF,KAAK,UAAU,GAAG,SAAS,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAClE,gBAAgB;AAChB,MAAM,MAAM,WAAW,GAAG;KAAG,CAAC,IAAI,MAAM,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC;CAAE,CAAC,MAAM,UAAU,CAAC,CAAC;AACpG,KAAK,UAAU,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAExE,wBAAgB,UAAU,CAAC,CAAC,EACxB,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAC7B,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE,mDAyBpD;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,CAUpF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Document, YAMLMap, YAMLSeq } from "yaml";
|
|
2
2
|
import { type AfmObjectIdentifier, type DeclarativeAnalyticalDashboard, type DeclarativeAnalyticalDashboardExtension, type DeclarativeFilterContext } from "@gooddata/api-client-tiger";
|
|
3
3
|
import type { Dashboard } from "@gooddata/sdk-code-schemas/v1";
|
|
4
|
-
import { type IDashboardAttributeFilterConfig, type IDashboardDateFilterConfig, type IDashboardDateFilterConfigItem, type IDashboardDefinition, type IDashboardLayout, type IDashboardLayoutItem, type IDashboardLayoutWidget, type IDashboardMeasureValueFilterConfig, type IDashboardWidget, type IDrillDownIntersectionIgnoredAttributes, type IDrillDownReference, type IFilterContextDefinition, type IInsightWidget, type IRichTextWidget, type IVisualizationSwitcherWidget, type InsightDrillDefinition } from "@gooddata/sdk-model";
|
|
4
|
+
import { type IDashboardAttributeFilterConfig, type IDashboardDateFilterConfig, type IDashboardDateFilterConfigItem, type IDashboardDefinition, type IDashboardLayout, type IDashboardLayoutItem, type IDashboardLayoutWidget, type IDashboardMeasureValueFilterConfig, type IDashboardParameter, type IDashboardWidget, type IDrillDownIntersectionIgnoredAttributes, type IDrillDownReference, type IFilterContextDefinition, type IInsightWidget, type IRichTextWidget, type IVisualizationSwitcherWidget, type InsightDrillDefinition } from "@gooddata/sdk-model";
|
|
5
5
|
import { type DashboardTab, type FromEntities } from "../types.js";
|
|
6
6
|
import { type IErrorContext } from "../utils/errors.js";
|
|
7
7
|
/** @internal */
|
|
@@ -16,7 +16,10 @@ export declare function declarativeDashboardToYaml(entities: FromEntities, dashb
|
|
|
16
16
|
json: Dashboard;
|
|
17
17
|
};
|
|
18
18
|
/** @internal */
|
|
19
|
-
export declare function declarativeTabsToYaml(tabs: DashboardTab[],
|
|
19
|
+
export declare function declarativeTabsToYaml(tabs: DashboardTab[], dependencies?: {
|
|
20
|
+
filterContexts?: DeclarativeFilterContext[];
|
|
21
|
+
rootParameters?: IDashboardParameter[];
|
|
22
|
+
}, entities?: FromEntities, errorContext?: IErrorContext): YAMLSeq | undefined;
|
|
20
23
|
/** @internal */
|
|
21
24
|
export declare function declarativeSectionsToYaml(layout?: IDashboardLayout, entities?: FromEntities, errorContext?: IErrorContext): YAMLSeq<unknown> | undefined;
|
|
22
25
|
/** @internal */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"declarativeDashboardToYaml.d.ts","sourceRoot":"","sources":["../../src/from/declarativeDashboardToYaml.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAQ,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAExD,OAAO,EACH,KAAK,mBAAmB,EACxB,KAAK,8BAA8B,EACnC,KAAK,uCAAuC,EAC5C,KAAK,wBAAwB,EAChC,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,SAAS,EAAyB,MAAM,+BAA+B,CAAC;AACtF,OAAO,EAGH,KAAK,+BAA+B,EAEpC,KAAK,0BAA0B,EAC/B,KAAK,8BAA8B,EACnC,KAAK,oBAAoB,EAEzB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAG3B,KAAK,kCAAkC,
|
|
1
|
+
{"version":3,"file":"declarativeDashboardToYaml.d.ts","sourceRoot":"","sources":["../../src/from/declarativeDashboardToYaml.ts"],"names":[],"mappings":"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"}
|