@gooddata/sdk-ui-dashboard 10.15.0-alpha.0 → 10.15.0-alpha.2
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/esm/__version.d.ts +1 -1
- package/esm/__version.js +1 -1
- package/esm/presentation/alerting/DefaultAlertingDialog/DefaultAlertingDialog.d.ts.map +1 -1
- package/esm/presentation/alerting/DefaultAlertingDialog/DefaultAlertingDialog.js +2 -2
- package/esm/presentation/alerting/DefaultAlertingDialog/DefaultAlertingDialog.js.map +1 -1
- package/esm/presentation/alerting/DefaultAlertingManagementDialog/components/Alert.d.ts.map +1 -1
- package/esm/presentation/alerting/DefaultAlertingManagementDialog/components/Alert.js +2 -2
- package/esm/presentation/alerting/DefaultAlertingManagementDialog/components/Alert.js.map +1 -1
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/{AlertAttributeSelecxt.d.ts → AlertAttributeSelect.d.ts} +5 -4
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/AlertAttributeSelect.d.ts.map +1 -0
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/AlertAttributeSelect.js +133 -0
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/AlertAttributeSelect.js.map +1 -0
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/AlertMeasureSelect.d.ts.map +1 -1
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/AlertMeasureSelect.js +1 -1
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/AlertMeasureSelect.js.map +1 -1
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/AlertsListItem.d.ts.map +1 -1
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/AlertsListItem.js +3 -3
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/AlertsListItem.js.map +1 -1
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/CreateAlert.d.ts +3 -2
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/CreateAlert.d.ts.map +1 -1
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/CreateAlert.js +2 -2
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/CreateAlert.js.map +1 -1
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/EditAlert.d.ts +3 -2
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/EditAlert.d.ts.map +1 -1
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/EditAlert.js +10 -10
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/EditAlert.js.map +1 -1
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useAlertValidation.d.ts.map +1 -1
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useAlertValidation.js +2 -1
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useAlertValidation.js.map +1 -1
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useEditAlert.d.ts +3 -2
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useEditAlert.d.ts.map +1 -1
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useEditAlert.js +2 -1
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useEditAlert.js.map +1 -1
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useInsightAlerting.d.ts +3 -2
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useInsightAlerting.d.ts.map +1 -1
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useInsightAlerting.js +16 -18
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useInsightAlerting.js.map +1 -1
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/utils/convertors.d.ts +7 -0
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/utils/convertors.d.ts.map +1 -0
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/utils/convertors.js +43 -0
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/utils/convertors.js.map +1 -0
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/utils/getters.d.ts +90 -0
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/utils/getters.d.ts.map +1 -0
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/utils/getters.js +219 -0
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/utils/getters.js.map +1 -0
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/utils/guards.d.ts +22 -0
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/utils/guards.d.ts.map +1 -0
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/utils/guards.js +41 -0
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/utils/guards.js.map +1 -0
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/utils/items.d.ts +14 -0
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/utils/items.d.ts.map +1 -0
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/utils/items.js +202 -0
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/utils/items.js.map +1 -0
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/utils/transformation.d.ts +60 -0
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/utils/transformation.d.ts.map +1 -0
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/utils/transformation.js +303 -0
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/utils/transformation.js.map +1 -0
- package/esm/presentation/widget/insight/configuration/InsightAlerts.d.ts.map +1 -1
- package/esm/presentation/widget/insight/configuration/InsightAlerts.js +3 -3
- package/esm/presentation/widget/insight/configuration/InsightAlerts.js.map +1 -1
- package/esm/presentation/widget/insight/types.d.ts +1 -0
- package/esm/presentation/widget/insight/types.d.ts.map +1 -1
- package/package.json +15 -15
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/AlertAttributeSelecxt.d.ts.map +0 -1
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/AlertAttributeSelecxt.js +0 -139
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/AlertAttributeSelecxt.js.map +0 -1
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/utils.d.ts +0 -46
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/utils.d.ts.map +0 -1
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/utils.js +0 -712
- package/esm/presentation/widget/insight/configuration/InsightAlertConfig/utils.js.map +0 -1
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { ARITHMETIC_OPERATORS } from "../constants.js";
|
|
2
|
+
/**
|
|
3
|
+
* @internal
|
|
4
|
+
*/
|
|
5
|
+
export function isChangeOperator(alert) {
|
|
6
|
+
if (alert?.condition?.type === "relative") {
|
|
7
|
+
return alert.condition.measure.operator === ARITHMETIC_OPERATORS.ARITHMETIC_OPERATOR_CHANGE;
|
|
8
|
+
}
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* @internal
|
|
13
|
+
*/
|
|
14
|
+
export function isDifferenceOperator(alert) {
|
|
15
|
+
if (alert?.condition?.type === "relative") {
|
|
16
|
+
return alert.condition.measure.operator === ARITHMETIC_OPERATORS.ARITHMETIC_OPERATOR_DIFFERENCE;
|
|
17
|
+
}
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
23
|
+
export function isChangeOrDifferenceOperator(alert) {
|
|
24
|
+
return isChangeOperator(alert) || isDifferenceOperator(alert);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* @internal
|
|
28
|
+
*/
|
|
29
|
+
export function isAlertValueDefined(alert) {
|
|
30
|
+
if (alert?.condition?.type === "relative") {
|
|
31
|
+
return typeof alert.condition.threshold !== "undefined";
|
|
32
|
+
}
|
|
33
|
+
return typeof alert?.condition?.right !== "undefined";
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* @internal
|
|
37
|
+
*/
|
|
38
|
+
export function isAlertRecipientsValid(alert) {
|
|
39
|
+
return !!alert?.recipients?.length;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=guards.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guards.js","sourceRoot":"","sources":["../../../../../../../src/presentation/widget/insight/configuration/InsightAlertConfig/utils/guards.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEvD;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAwB;IACrD,IAAI,KAAK,EAAE,SAAS,EAAE,IAAI,KAAK,UAAU,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,KAAK,oBAAoB,CAAC,0BAA0B,CAAC;IAChG,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAwB;IACzD,IAAI,KAAK,EAAE,SAAS,EAAE,IAAI,KAAK,UAAU,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,KAAK,oBAAoB,CAAC,8BAA8B,CAAC;IACpG,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,4BAA4B,CAAC,KAAwB;IACjE,OAAO,gBAAgB,CAAC,KAAK,CAAC,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAwB;IACxD,IAAI,KAAK,EAAE,SAAS,EAAE,IAAI,KAAK,UAAU,EAAE,CAAC;QACxC,OAAO,OAAO,KAAK,CAAC,SAAS,CAAC,SAAS,KAAK,WAAW,CAAC;IAC5D,CAAC;IACD,OAAO,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,KAAK,WAAW,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAiC;IACpE,OAAO,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC;AACvC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ICatalogDateDataset, IInsight } from "@gooddata/sdk-model";
|
|
2
|
+
import { AlertAttribute, AlertMetric } from "../../../types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Get supported insight measures by insight
|
|
5
|
+
* @param insight - insight to get supported measures for
|
|
6
|
+
*/
|
|
7
|
+
export declare function getSupportedInsightMeasuresByInsight(insight: IInsight | null | undefined): AlertMetric[];
|
|
8
|
+
/**
|
|
9
|
+
* Get supported insight attributes by insight
|
|
10
|
+
* @param insight - insight to get supported attributes for
|
|
11
|
+
* @param dateDatasets - date datasets to filter out date attributes
|
|
12
|
+
*/
|
|
13
|
+
export declare function getSupportedInsightAttributesByInsight(insight: IInsight | null | undefined, dateDatasets?: ICatalogDateDataset[]): AlertAttribute[];
|
|
14
|
+
//# sourceMappingURL=items.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"items.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/widget/insight/configuration/InsightAlertConfig/utils/items.ts"],"names":[],"mappings":"AACA,OAAO,EAKH,mBAAmB,EACnB,QAAQ,EAUX,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,cAAc,EAAE,WAAW,EAA6B,MAAM,mBAAmB,CAAC;AA2B3F;;;GAGG;AACH,wBAAgB,oCAAoC,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,EAAE,CAqBxG;AAED;;;;GAIG;AACH,wBAAgB,sCAAsC,CAClD,OAAO,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,EACpC,YAAY,GAAE,mBAAmB,EAAO,GACzC,cAAc,EAAE,CAMlB"}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
// (C) 2022-2024 GoodData Corporation
|
|
2
|
+
import { bucketAttributes, bucketMeasures, insightBucket, insightVisualizationType, isArithmeticMeasure, isPoPMeasure, isPreviousPeriodMeasure, isSimpleMeasure, } from "@gooddata/sdk-model";
|
|
3
|
+
import { BucketNames } from "@gooddata/sdk-ui";
|
|
4
|
+
import { AlertMetricComparatorType } from "../../../types.js";
|
|
5
|
+
import { getCatalogAttribute } from "./getters.js";
|
|
6
|
+
/**
|
|
7
|
+
* Get supported insight measures by insight
|
|
8
|
+
* @param insight - insight to get supported measures for
|
|
9
|
+
*/
|
|
10
|
+
export function getSupportedInsightMeasuresByInsight(insight) {
|
|
11
|
+
const insightType = insight ? insightVisualizationType(insight) : null;
|
|
12
|
+
const { primaries, others } = collectAllMetric(insight);
|
|
13
|
+
const simpleMetrics = [
|
|
14
|
+
...primaries.map(mapMeasure(true)).filter(Boolean),
|
|
15
|
+
...others.map(mapMeasure(false)).filter(Boolean),
|
|
16
|
+
];
|
|
17
|
+
//NOTE: For now only headline insight support previous period and same period previous year,
|
|
18
|
+
// if we want to support other insight types, just add the logic here or remove the condition at
|
|
19
|
+
// all to support all insight types
|
|
20
|
+
if (insightType === "headline") {
|
|
21
|
+
mapPreviousPeriodMeasure(primaries, simpleMetrics, true);
|
|
22
|
+
mapPreviousPeriodMeasure(others, simpleMetrics, false);
|
|
23
|
+
mapPoPMeasure(primaries, simpleMetrics, true);
|
|
24
|
+
mapPoPMeasure(others, simpleMetrics, false);
|
|
25
|
+
}
|
|
26
|
+
return simpleMetrics;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Get supported insight attributes by insight
|
|
30
|
+
* @param insight - insight to get supported attributes for
|
|
31
|
+
* @param dateDatasets - date datasets to filter out date attributes
|
|
32
|
+
*/
|
|
33
|
+
export function getSupportedInsightAttributesByInsight(insight, dateDatasets = []) {
|
|
34
|
+
const attrs = collectAllAttributes(insight);
|
|
35
|
+
return attrs
|
|
36
|
+
.map(mapAttribute(dateDatasets))
|
|
37
|
+
.filter(Boolean);
|
|
38
|
+
}
|
|
39
|
+
//utils
|
|
40
|
+
function mapMeasure(isPrimary) {
|
|
41
|
+
return (measure) => {
|
|
42
|
+
if (isSimpleMeasure(measure) || isArithmeticMeasure(measure)) {
|
|
43
|
+
return {
|
|
44
|
+
measure,
|
|
45
|
+
isPrimary,
|
|
46
|
+
comparators: [],
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
return undefined;
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
function mapAttribute(dateDatasets) {
|
|
53
|
+
const dateAttributes = dateDatasets.flatMap((dataset) => dataset.dateAttributes);
|
|
54
|
+
return (attribute) => {
|
|
55
|
+
const foundDate = getCatalogAttribute(dateAttributes, attribute);
|
|
56
|
+
return {
|
|
57
|
+
type: foundDate ? "dateAttribute" : "attribute",
|
|
58
|
+
attribute,
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
function mapPreviousPeriodMeasure(metrics, simpleMetrics, isPrimary) {
|
|
63
|
+
const previousPeriodMetrics = metrics.filter((measure) => isPreviousPeriodMeasure(measure));
|
|
64
|
+
previousPeriodMetrics.forEach((measure) => {
|
|
65
|
+
const found = simpleMetrics.find((simpleMetric) => simpleMetric.measure.measure.localIdentifier ===
|
|
66
|
+
measure.measure.definition.previousPeriodMeasure.measureIdentifier);
|
|
67
|
+
if (found) {
|
|
68
|
+
found.comparators.push({
|
|
69
|
+
measure,
|
|
70
|
+
isPrimary,
|
|
71
|
+
comparator: AlertMetricComparatorType.PreviousPeriod,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
function mapPoPMeasure(metrics, simpleMetrics, isPrimary) {
|
|
77
|
+
const popMetrics = metrics.filter((measure) => isPoPMeasure(measure));
|
|
78
|
+
popMetrics.forEach((measure) => {
|
|
79
|
+
const found = simpleMetrics.find((simpleMetric) => simpleMetric.measure.measure.localIdentifier ===
|
|
80
|
+
measure.measure.definition.popMeasureDefinition.measureIdentifier);
|
|
81
|
+
if (found) {
|
|
82
|
+
found.comparators.push({
|
|
83
|
+
measure,
|
|
84
|
+
isPrimary,
|
|
85
|
+
comparator: AlertMetricComparatorType.SamePeriodPreviousYear,
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
function collectAllMetric(insight) {
|
|
91
|
+
const insightType = insight ? insightVisualizationType(insight) : null;
|
|
92
|
+
if (!insight) {
|
|
93
|
+
return {
|
|
94
|
+
primaries: [],
|
|
95
|
+
others: [],
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
switch (insightType) {
|
|
99
|
+
case "headline":
|
|
100
|
+
case "bar":
|
|
101
|
+
case "column":
|
|
102
|
+
case "line":
|
|
103
|
+
case "area":
|
|
104
|
+
case "combo2":
|
|
105
|
+
case "scatter":
|
|
106
|
+
case "bubble":
|
|
107
|
+
case "bullet":
|
|
108
|
+
case "pie":
|
|
109
|
+
case "donut":
|
|
110
|
+
case "treemap":
|
|
111
|
+
case "funnel":
|
|
112
|
+
case "pyramid":
|
|
113
|
+
case "heatmap":
|
|
114
|
+
case "waterfall":
|
|
115
|
+
case "dependencywheel":
|
|
116
|
+
case "sankey":
|
|
117
|
+
case "table": {
|
|
118
|
+
return collectAllMetricsFrom(insight, [BucketNames.MEASURES], [BucketNames.SECONDARY_MEASURES, BucketNames.TERTIARY_MEASURES]);
|
|
119
|
+
}
|
|
120
|
+
case "pushpin": {
|
|
121
|
+
return collectAllMetricsFrom(insight, [BucketNames.SIZE, BucketNames.COLOR]);
|
|
122
|
+
}
|
|
123
|
+
case "repeater": {
|
|
124
|
+
return collectAllMetricsFrom(insight, [BucketNames.COLUMNS]);
|
|
125
|
+
}
|
|
126
|
+
default: {
|
|
127
|
+
return {
|
|
128
|
+
primaries: [],
|
|
129
|
+
others: [],
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
function collectAllAttributes(insight) {
|
|
135
|
+
const insightType = insight ? insightVisualizationType(insight) : null;
|
|
136
|
+
if (!insight) {
|
|
137
|
+
return [];
|
|
138
|
+
}
|
|
139
|
+
switch (insightType) {
|
|
140
|
+
case "headline":
|
|
141
|
+
case "bar":
|
|
142
|
+
case "column":
|
|
143
|
+
case "line":
|
|
144
|
+
case "area":
|
|
145
|
+
case "combo2":
|
|
146
|
+
case "scatter":
|
|
147
|
+
case "bubble":
|
|
148
|
+
case "bullet":
|
|
149
|
+
case "pie":
|
|
150
|
+
case "donut":
|
|
151
|
+
case "treemap":
|
|
152
|
+
case "funnel":
|
|
153
|
+
case "pyramid":
|
|
154
|
+
case "heatmap":
|
|
155
|
+
case "waterfall":
|
|
156
|
+
case "dependencywheel":
|
|
157
|
+
case "sankey":
|
|
158
|
+
case "table": {
|
|
159
|
+
return collectAllAttributesFrom(insight, [
|
|
160
|
+
BucketNames.ATTRIBUTE,
|
|
161
|
+
BucketNames.ATTRIBUTES,
|
|
162
|
+
BucketNames.TREND,
|
|
163
|
+
BucketNames.SEGMENT,
|
|
164
|
+
BucketNames.COLUMNS,
|
|
165
|
+
BucketNames.VIEW,
|
|
166
|
+
BucketNames.STACK,
|
|
167
|
+
BucketNames.ATTRIBUTE_FROM,
|
|
168
|
+
BucketNames.ATTRIBUTE_TO,
|
|
169
|
+
]);
|
|
170
|
+
}
|
|
171
|
+
case "repeater": {
|
|
172
|
+
return collectAllAttributesFrom(insight, [BucketNames.ATTRIBUTE]);
|
|
173
|
+
}
|
|
174
|
+
case "pushpin": {
|
|
175
|
+
return collectAllAttributesFrom(insight, [BucketNames.LOCATION]);
|
|
176
|
+
}
|
|
177
|
+
default: {
|
|
178
|
+
return [];
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
function collectAllAttributesFrom(insight, buckets) {
|
|
183
|
+
return buckets.reduce((acc, bucket) => {
|
|
184
|
+
const items = insight ? insightBucket(insight, bucket) : undefined;
|
|
185
|
+
return [...acc, ...(items ? bucketAttributes(items) : [])];
|
|
186
|
+
}, []);
|
|
187
|
+
}
|
|
188
|
+
function collectAllMetricsFrom(insight, primaryBuckets, secondaryBuckets = []) {
|
|
189
|
+
const primaries = primaryBuckets.reduce((acc, bucket) => {
|
|
190
|
+
const items = insight ? insightBucket(insight, bucket) : undefined;
|
|
191
|
+
return [...acc, ...(items ? bucketMeasures(items) : [])];
|
|
192
|
+
}, []);
|
|
193
|
+
const others = secondaryBuckets.reduce((acc, bucket) => {
|
|
194
|
+
const items = insight ? insightBucket(insight, bucket) : undefined;
|
|
195
|
+
return [...acc, ...(items ? bucketMeasures(items) : [])];
|
|
196
|
+
}, []);
|
|
197
|
+
return {
|
|
198
|
+
primaries,
|
|
199
|
+
others,
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
//# sourceMappingURL=items.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"items.js","sourceRoot":"","sources":["../../../../../../../src/presentation/widget/insight/configuration/InsightAlertConfig/utils/items.ts"],"names":[],"mappings":"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"}
|
package/esm/presentation/widget/insight/configuration/InsightAlertConfig/utils/transformation.d.ts
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { IAlertComparisonOperator, IAlertRelativeArithmeticOperator, IAlertRelativeOperator, IAutomationAlertCondition, IAutomationAlertExecutionDefinition, IAutomationMetadataObject, IAutomationRecipient, ICatalogMeasure } from "@gooddata/sdk-model";
|
|
2
|
+
import { AlertAttribute, AlertMetric } from "../../../types.js";
|
|
3
|
+
/**
|
|
4
|
+
* This function transforms alert by metric. It changes title, condition and execution based on selected metric.
|
|
5
|
+
* @param metrics - all available metrics
|
|
6
|
+
* @param alert - alert to transform
|
|
7
|
+
* @param measure - selected metric
|
|
8
|
+
* @param catalogMeasures - all available measures from catalog
|
|
9
|
+
*/
|
|
10
|
+
export declare function transformAlertByMetric(metrics: AlertMetric[], alert: IAutomationMetadataObject, measure: AlertMetric, catalogMeasures?: ICatalogMeasure[]): IAutomationMetadataObject;
|
|
11
|
+
/**
|
|
12
|
+
* This function get selected attributed and optionally value amd added this attribute to execution.
|
|
13
|
+
* If value is provided, it creates positive attribute filter with this value, otherwise it creates negative attribute filter
|
|
14
|
+
* that is empty for now.
|
|
15
|
+
* @param attributes - all available attributes
|
|
16
|
+
* @param alert - alert to transform
|
|
17
|
+
* @param attr - optionally selected attribute
|
|
18
|
+
* @param value - optionally selected value
|
|
19
|
+
*/
|
|
20
|
+
export declare function transformAlertByAttribute(attributes: AlertAttribute[], alert: IAutomationMetadataObject, attr: AlertAttribute | undefined, value: string | undefined): IAutomationMetadataObject;
|
|
21
|
+
/**
|
|
22
|
+
* This function transforms alert by comparison operator. It changes operator in condition.
|
|
23
|
+
* @param metrics - all available metrics
|
|
24
|
+
* @param alert - alert to transform
|
|
25
|
+
* @param measure - selected metric
|
|
26
|
+
* @param comparisonOperator - selected comparison operator
|
|
27
|
+
*/
|
|
28
|
+
export declare function transformAlertByComparisonOperator(metrics: AlertMetric[], alert: IAutomationMetadataObject, measure: AlertMetric, comparisonOperator: IAlertComparisonOperator): IAutomationMetadataObject;
|
|
29
|
+
/**
|
|
30
|
+
* This function transforms alert by relative operator. It changes operator in condition and measure in condition.
|
|
31
|
+
* @param metrics - all available metrics
|
|
32
|
+
* @param alert - alert to transform
|
|
33
|
+
* @param measure - selected metric
|
|
34
|
+
* @param relativeOperator - selected relative operator
|
|
35
|
+
* @param arithmeticOperator - selected arithmetic operator
|
|
36
|
+
* @param catalogMeasures - all available measures from catalog
|
|
37
|
+
*/
|
|
38
|
+
export declare function transformAlertByRelativeOperator(metrics: AlertMetric[], alert: IAutomationMetadataObject, measure: AlertMetric, relativeOperator: IAlertRelativeOperator, arithmeticOperator: IAlertRelativeArithmeticOperator, catalogMeasures?: ICatalogMeasure[]): IAutomationMetadataObject;
|
|
39
|
+
/**
|
|
40
|
+
* This function transforms alert by threshold value. It changes threshold in condition.
|
|
41
|
+
* @param alert - alert to transform
|
|
42
|
+
* @param value - selected threshold value
|
|
43
|
+
*/
|
|
44
|
+
export declare function transformAlertByValue(alert: IAutomationMetadataObject, value: number): IAutomationMetadataObject;
|
|
45
|
+
/**
|
|
46
|
+
* This function transforms alert by notification channel. It changes notification channel in alert.
|
|
47
|
+
* @param alert - alert to transform
|
|
48
|
+
* @param notificationChannel - selected notification channel
|
|
49
|
+
* @param recipients - optionally selected recipients
|
|
50
|
+
*/
|
|
51
|
+
export declare function transformAlertByDestination(alert: IAutomationMetadataObject, notificationChannel: string, recipients?: IAutomationRecipient[]): IAutomationMetadataObject;
|
|
52
|
+
/**
|
|
53
|
+
* This function transforms alert execution by metric. It changes measures and auxMeasures in execution based on selected metric.
|
|
54
|
+
* @param metrics - all available metrics
|
|
55
|
+
* @param condition - alert condition
|
|
56
|
+
* @param execution - alert execution
|
|
57
|
+
* @param measure - selected metric
|
|
58
|
+
*/
|
|
59
|
+
export declare function transformAlertExecutionByMetric(metrics: AlertMetric[], condition: IAutomationAlertCondition, execution: IAutomationAlertExecutionDefinition, measure: AlertMetric): IAutomationAlertExecutionDefinition;
|
|
60
|
+
//# sourceMappingURL=transformation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformation.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/widget/insight/configuration/InsightAlertConfig/utils/transformation.ts"],"names":[],"mappings":"AACA,OAAO,EACH,wBAAwB,EACxB,gCAAgC,EAChC,sBAAsB,EAEtB,yBAAyB,EACzB,mCAAmC,EAEnC,yBAAyB,EACzB,oBAAoB,EACpB,eAAe,EAGlB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACH,cAAc,EACd,WAAW,EAGd,MAAM,mBAAmB,CAAC;AAO3B;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAClC,OAAO,EAAE,WAAW,EAAE,EACtB,KAAK,EAAE,yBAAyB,EAChC,OAAO,EAAE,WAAW,EACpB,eAAe,CAAC,EAAE,eAAe,EAAE,GACpC,yBAAyB,CAkD3B;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACrC,UAAU,EAAE,cAAc,EAAE,EAC5B,KAAK,EAAE,yBAAyB,EAChC,IAAI,EAAE,cAAc,GAAG,SAAS,EAChC,KAAK,EAAE,MAAM,GAAG,SAAS,GAC1B,yBAAyB,CA8C3B;AAED;;;;;;GAMG;AACH,wBAAgB,kCAAkC,CAC9C,OAAO,EAAE,WAAW,EAAE,EACtB,KAAK,EAAE,yBAAyB,EAChC,OAAO,EAAE,WAAW,EACpB,kBAAkB,EAAE,wBAAwB,GAC7C,yBAAyB,CAc3B;AAED;;;;;;;;GAQG;AACH,wBAAgB,gCAAgC,CAC5C,OAAO,EAAE,WAAW,EAAE,EACtB,KAAK,EAAE,yBAAyB,EAChC,OAAO,EAAE,WAAW,EACpB,gBAAgB,EAAE,sBAAsB,EACxC,kBAAkB,EAAE,gCAAgC,EACpD,eAAe,CAAC,EAAE,eAAe,EAAE,GACpC,yBAAyB,CAyB3B;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACjC,KAAK,EAAE,yBAAyB,EAChC,KAAK,EAAE,MAAM,GACd,yBAAyB,CAuB3B;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACvC,KAAK,EAAE,yBAAyB,EAChC,mBAAmB,EAAE,MAAM,EAC3B,UAAU,CAAC,EAAE,oBAAoB,EAAE,GACpC,yBAAyB,CAM3B;AAED;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAC3C,OAAO,EAAE,WAAW,EAAE,EACtB,SAAS,EAAE,yBAAyB,EACpC,SAAS,EAAE,mCAAmC,EAC9C,OAAO,EAAE,WAAW,GACrB,mCAAmC,CAuBrC"}
|
package/esm/presentation/widget/insight/configuration/InsightAlertConfig/utils/transformation.js
ADDED
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
// (C) 2022-2024 GoodData Corporation
|
|
2
|
+
import { isArithmeticMeasure, } from "@gooddata/sdk-model";
|
|
3
|
+
import { AlertMetricComparatorType, } from "../../../types.js";
|
|
4
|
+
import { ARITHMETIC_OPERATORS, COMPARISON_OPERATORS, RELATIVE_OPERATORS } from "../constants.js";
|
|
5
|
+
import { getAttributeRelatedFilterInfo, getMeasureFormat, getMeasureTitle } from "./getters.js";
|
|
6
|
+
//alerts transformations
|
|
7
|
+
/**
|
|
8
|
+
* This function transforms alert by metric. It changes title, condition and execution based on selected metric.
|
|
9
|
+
* @param metrics - all available metrics
|
|
10
|
+
* @param alert - alert to transform
|
|
11
|
+
* @param measure - selected metric
|
|
12
|
+
* @param catalogMeasures - all available measures from catalog
|
|
13
|
+
*/
|
|
14
|
+
export function transformAlertByMetric(metrics, alert, measure, catalogMeasures) {
|
|
15
|
+
const periodMeasure = measure.comparators.find((c) => c.comparator === AlertMetricComparatorType.PreviousPeriod ||
|
|
16
|
+
c.comparator === AlertMetricComparatorType.SamePeriodPreviousYear);
|
|
17
|
+
if (alert.alert?.condition.type === "relative" && periodMeasure) {
|
|
18
|
+
const cond = transformToRelativeCondition(alert.alert.condition);
|
|
19
|
+
const condition = {
|
|
20
|
+
...cond,
|
|
21
|
+
measure: {
|
|
22
|
+
...cond.measure,
|
|
23
|
+
...transformRelativeCondition(measure, periodMeasure, catalogMeasures),
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
return {
|
|
27
|
+
...alert,
|
|
28
|
+
title: getMeasureTitle(measure.measure) ?? "",
|
|
29
|
+
alert: {
|
|
30
|
+
...alert.alert,
|
|
31
|
+
condition,
|
|
32
|
+
execution: transformAlertExecutionByMetric(metrics, condition, alert.alert.execution, measure),
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
const cond = transformToComparisonCondition(alert.alert.condition);
|
|
37
|
+
const condition = {
|
|
38
|
+
...cond,
|
|
39
|
+
left: {
|
|
40
|
+
id: measure.measure.measure.localIdentifier,
|
|
41
|
+
format: getMeasureFormat(measure.measure, catalogMeasures),
|
|
42
|
+
title: getMeasureTitle(measure.measure),
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
return {
|
|
46
|
+
...alert,
|
|
47
|
+
title: getMeasureTitle(measure.measure) ?? "",
|
|
48
|
+
alert: {
|
|
49
|
+
...alert.alert,
|
|
50
|
+
condition,
|
|
51
|
+
execution: transformAlertExecutionByMetric(metrics, condition, alert.alert.execution, measure),
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* This function get selected attributed and optionally value amd added this attribute to execution.
|
|
57
|
+
* If value is provided, it creates positive attribute filter with this value, otherwise it creates negative attribute filter
|
|
58
|
+
* that is empty for now.
|
|
59
|
+
* @param attributes - all available attributes
|
|
60
|
+
* @param alert - alert to transform
|
|
61
|
+
* @param attr - optionally selected attribute
|
|
62
|
+
* @param value - optionally selected value
|
|
63
|
+
*/
|
|
64
|
+
export function transformAlertByAttribute(attributes, alert, attr, value) {
|
|
65
|
+
const { filterDefinition } = getAttributeRelatedFilterInfo(attributes, alert, alert.alert?.execution.attributes[0]);
|
|
66
|
+
const originalFilters = alert.alert?.execution.filters.filter((f) => f !== filterDefinition) ?? [];
|
|
67
|
+
const customFilters = [];
|
|
68
|
+
if (attr) {
|
|
69
|
+
if (value !== undefined) {
|
|
70
|
+
customFilters.push({
|
|
71
|
+
positiveAttributeFilter: {
|
|
72
|
+
displayForm: {
|
|
73
|
+
localIdentifier: attr.attribute.attribute.localIdentifier,
|
|
74
|
+
},
|
|
75
|
+
in: {
|
|
76
|
+
values: [value],
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
customFilters.push({
|
|
83
|
+
negativeAttributeFilter: {
|
|
84
|
+
displayForm: {
|
|
85
|
+
localIdentifier: attr.attribute.attribute.localIdentifier,
|
|
86
|
+
},
|
|
87
|
+
notIn: {
|
|
88
|
+
values: [],
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return {
|
|
95
|
+
...alert,
|
|
96
|
+
alert: {
|
|
97
|
+
...alert.alert,
|
|
98
|
+
execution: {
|
|
99
|
+
...alert.alert.execution,
|
|
100
|
+
attributes: attr ? [attr.attribute] : [],
|
|
101
|
+
filters: [...originalFilters, ...customFilters],
|
|
102
|
+
},
|
|
103
|
+
},
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* This function transforms alert by comparison operator. It changes operator in condition.
|
|
108
|
+
* @param metrics - all available metrics
|
|
109
|
+
* @param alert - alert to transform
|
|
110
|
+
* @param measure - selected metric
|
|
111
|
+
* @param comparisonOperator - selected comparison operator
|
|
112
|
+
*/
|
|
113
|
+
export function transformAlertByComparisonOperator(metrics, alert, measure, comparisonOperator) {
|
|
114
|
+
const cond = transformToComparisonCondition(alert.alert.condition);
|
|
115
|
+
const condition = {
|
|
116
|
+
...cond,
|
|
117
|
+
operator: comparisonOperator,
|
|
118
|
+
};
|
|
119
|
+
return {
|
|
120
|
+
...alert,
|
|
121
|
+
alert: {
|
|
122
|
+
...alert.alert,
|
|
123
|
+
condition,
|
|
124
|
+
execution: transformAlertExecutionByMetric(metrics, condition, alert.alert.execution, measure),
|
|
125
|
+
},
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* This function transforms alert by relative operator. It changes operator in condition and measure in condition.
|
|
130
|
+
* @param metrics - all available metrics
|
|
131
|
+
* @param alert - alert to transform
|
|
132
|
+
* @param measure - selected metric
|
|
133
|
+
* @param relativeOperator - selected relative operator
|
|
134
|
+
* @param arithmeticOperator - selected arithmetic operator
|
|
135
|
+
* @param catalogMeasures - all available measures from catalog
|
|
136
|
+
*/
|
|
137
|
+
export function transformAlertByRelativeOperator(metrics, alert, measure, relativeOperator, arithmeticOperator, catalogMeasures) {
|
|
138
|
+
const periodMeasure = measure.comparators.find((c) => c.comparator === AlertMetricComparatorType.PreviousPeriod ||
|
|
139
|
+
c.comparator === AlertMetricComparatorType.SamePeriodPreviousYear);
|
|
140
|
+
const cond = transformToRelativeCondition(alert.alert.condition);
|
|
141
|
+
const condition = {
|
|
142
|
+
...cond,
|
|
143
|
+
measure: {
|
|
144
|
+
...cond.measure,
|
|
145
|
+
operator: arithmeticOperator,
|
|
146
|
+
...transformRelativeCondition(measure, periodMeasure, catalogMeasures),
|
|
147
|
+
},
|
|
148
|
+
operator: relativeOperator,
|
|
149
|
+
};
|
|
150
|
+
return {
|
|
151
|
+
...alert,
|
|
152
|
+
alert: {
|
|
153
|
+
...alert.alert,
|
|
154
|
+
condition,
|
|
155
|
+
execution: transformAlertExecutionByMetric(metrics, condition, alert.alert.execution, measure),
|
|
156
|
+
},
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* This function transforms alert by threshold value. It changes threshold in condition.
|
|
161
|
+
* @param alert - alert to transform
|
|
162
|
+
* @param value - selected threshold value
|
|
163
|
+
*/
|
|
164
|
+
export function transformAlertByValue(alert, value) {
|
|
165
|
+
if (alert.alert?.condition.type === "relative") {
|
|
166
|
+
return {
|
|
167
|
+
...alert,
|
|
168
|
+
alert: {
|
|
169
|
+
...alert.alert,
|
|
170
|
+
condition: {
|
|
171
|
+
...alert.alert.condition,
|
|
172
|
+
threshold: value,
|
|
173
|
+
},
|
|
174
|
+
},
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
return {
|
|
178
|
+
...alert,
|
|
179
|
+
alert: {
|
|
180
|
+
...alert.alert,
|
|
181
|
+
condition: {
|
|
182
|
+
...alert.alert.condition,
|
|
183
|
+
right: value,
|
|
184
|
+
},
|
|
185
|
+
},
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* This function transforms alert by notification channel. It changes notification channel in alert.
|
|
190
|
+
* @param alert - alert to transform
|
|
191
|
+
* @param notificationChannel - selected notification channel
|
|
192
|
+
* @param recipients - optionally selected recipients
|
|
193
|
+
*/
|
|
194
|
+
export function transformAlertByDestination(alert, notificationChannel, recipients) {
|
|
195
|
+
return {
|
|
196
|
+
...alert,
|
|
197
|
+
...(recipients ? { recipients } : {}),
|
|
198
|
+
notificationChannel,
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* This function transforms alert execution by metric. It changes measures and auxMeasures in execution based on selected metric.
|
|
203
|
+
* @param metrics - all available metrics
|
|
204
|
+
* @param condition - alert condition
|
|
205
|
+
* @param execution - alert execution
|
|
206
|
+
* @param measure - selected metric
|
|
207
|
+
*/
|
|
208
|
+
export function transformAlertExecutionByMetric(metrics, condition, execution, measure) {
|
|
209
|
+
const periodMeasure = measure.comparators.find((c) => c.comparator === AlertMetricComparatorType.PreviousPeriod ||
|
|
210
|
+
c.comparator === AlertMetricComparatorType.SamePeriodPreviousYear);
|
|
211
|
+
if (condition.type === "relative" && periodMeasure) {
|
|
212
|
+
return {
|
|
213
|
+
...execution,
|
|
214
|
+
measures: [measure.measure, periodMeasure.measure],
|
|
215
|
+
auxMeasures: [
|
|
216
|
+
...collectAllRelatedMeasures(metrics, measure.measure),
|
|
217
|
+
...collectAllRelatedMeasures(metrics, periodMeasure.measure),
|
|
218
|
+
],
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
return {
|
|
222
|
+
...execution,
|
|
223
|
+
measures: [measure.measure],
|
|
224
|
+
auxMeasures: collectAllRelatedMeasures(metrics, measure.measure),
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
//alerts transformations utils
|
|
228
|
+
function transformToComparisonCondition(condition) {
|
|
229
|
+
if (condition.type === "relative") {
|
|
230
|
+
return {
|
|
231
|
+
type: "comparison",
|
|
232
|
+
operator: COMPARISON_OPERATORS.COMPARISON_OPERATOR_GREATER_THAN,
|
|
233
|
+
left: condition.measure.left,
|
|
234
|
+
right: condition.threshold,
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
return {
|
|
238
|
+
type: "comparison",
|
|
239
|
+
operator: condition.operator,
|
|
240
|
+
right: condition.right,
|
|
241
|
+
left: condition.left,
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
function transformToRelativeCondition(condition) {
|
|
245
|
+
if (condition.type === "comparison") {
|
|
246
|
+
return {
|
|
247
|
+
type: "relative",
|
|
248
|
+
operator: RELATIVE_OPERATORS.RELATIVE_OPERATOR_INCREASE_BY,
|
|
249
|
+
measure: {
|
|
250
|
+
operator: ARITHMETIC_OPERATORS.ARITHMETIC_OPERATOR_CHANGE,
|
|
251
|
+
left: condition.left,
|
|
252
|
+
right: undefined,
|
|
253
|
+
},
|
|
254
|
+
threshold: condition.right,
|
|
255
|
+
};
|
|
256
|
+
}
|
|
257
|
+
return {
|
|
258
|
+
type: "relative",
|
|
259
|
+
operator: condition.operator,
|
|
260
|
+
measure: condition.measure,
|
|
261
|
+
threshold: condition.threshold,
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
function transformRelativeCondition(measure, periodMeasure, catalogMeasures) {
|
|
265
|
+
return {
|
|
266
|
+
...(periodMeasure?.isPrimary && {
|
|
267
|
+
left: {
|
|
268
|
+
id: periodMeasure.measure.measure.localIdentifier,
|
|
269
|
+
format: getMeasureFormat(periodMeasure.measure, catalogMeasures),
|
|
270
|
+
title: getMeasureTitle(periodMeasure.measure),
|
|
271
|
+
},
|
|
272
|
+
right: {
|
|
273
|
+
id: measure.measure.measure.localIdentifier,
|
|
274
|
+
format: getMeasureFormat(measure.measure, catalogMeasures),
|
|
275
|
+
title: getMeasureTitle(measure.measure),
|
|
276
|
+
},
|
|
277
|
+
}),
|
|
278
|
+
...(!periodMeasure?.isPrimary && {
|
|
279
|
+
left: {
|
|
280
|
+
id: measure.measure.measure.localIdentifier,
|
|
281
|
+
format: getMeasureFormat(measure.measure, catalogMeasures),
|
|
282
|
+
title: getMeasureTitle(measure.measure),
|
|
283
|
+
},
|
|
284
|
+
right: {
|
|
285
|
+
id: periodMeasure?.measure.measure.localIdentifier,
|
|
286
|
+
format: getMeasureFormat(periodMeasure?.measure, catalogMeasures),
|
|
287
|
+
title: periodMeasure?.measure ? getMeasureTitle(periodMeasure?.measure) : undefined,
|
|
288
|
+
},
|
|
289
|
+
}),
|
|
290
|
+
};
|
|
291
|
+
}
|
|
292
|
+
//utils
|
|
293
|
+
function collectAllRelatedMeasures(metrics, measure) {
|
|
294
|
+
if (isArithmeticMeasure(measure)) {
|
|
295
|
+
const included = measure.measure.definition.arithmeticMeasure.measureIdentifiers;
|
|
296
|
+
const related = metrics.filter((m) => {
|
|
297
|
+
return included.includes(m.measure.measure.localIdentifier);
|
|
298
|
+
});
|
|
299
|
+
return related.map((m) => m.measure);
|
|
300
|
+
}
|
|
301
|
+
return [];
|
|
302
|
+
}
|
|
303
|
+
//# sourceMappingURL=transformation.js.map
|
package/esm/presentation/widget/insight/configuration/InsightAlertConfig/utils/transformation.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformation.js","sourceRoot":"","sources":["../../../../../../../src/presentation/widget/insight/configuration/InsightAlertConfig/utils/transformation.ts"],"names":[],"mappings":"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"}
|