@grafana/scenes 6.4.0--canary.1062.13918599453.0 → 6.4.0
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/CHANGELOG.md +12 -0
- package/dist/esm/components/VizPanel/VizPanelExploreButton.js +6 -4
- package/dist/esm/components/VizPanel/VizPanelExploreButton.js.map +1 -1
- package/dist/esm/utils/explore.js +5 -1
- package/dist/esm/utils/explore.js.map +1 -1
- package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js +3 -12
- package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js.map +1 -1
- package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +5 -19
- package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js.map +1 -1
- package/dist/esm/variables/adhoc/AdHocFiltersVariable.js +9 -125
- package/dist/esm/variables/adhoc/AdHocFiltersVariable.js.map +1 -1
- package/dist/esm/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js +9 -41
- package/dist/esm/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js.map +1 -1
- package/dist/esm/variables/utils.js +1 -11
- package/dist/esm/variables/utils.js.map +1 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.js +35 -275
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/dist/esm/variables/adhoc/getAdHocFiltersFromScopes.js +0 -72
- package/dist/esm/variables/adhoc/getAdHocFiltersFromScopes.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@grafana/scenes",
|
|
3
|
-
"version": "6.4.0
|
|
3
|
+
"version": "6.4.0",
|
|
4
4
|
"description": "Grafana framework for building dynamic dashboards",
|
|
5
5
|
"author": "Grafana Labs",
|
|
6
6
|
"license": "AGPL-3.0-only",
|
|
@@ -116,5 +116,5 @@
|
|
|
116
116
|
"prettier --write"
|
|
117
117
|
]
|
|
118
118
|
},
|
|
119
|
-
"gitHead": "
|
|
119
|
+
"gitHead": "be853abcbd8f24639bee0590054c253dd01cfaa1"
|
|
120
120
|
}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { scopeFilterOperatorMap } from '@grafana/data';
|
|
2
|
-
import { FilterOrigin } from './AdHocFiltersVariable.js';
|
|
3
|
-
|
|
4
|
-
const reverseScopeFilterOperatorMap = Object.fromEntries(
|
|
5
|
-
Object.entries(scopeFilterOperatorMap).map(([symbol, operator]) => [operator, symbol])
|
|
6
|
-
);
|
|
7
|
-
function isEqualityOrMultiOperator(value) {
|
|
8
|
-
const operators = /* @__PURE__ */ new Set(["equals", "not-equals", "one-of", "not-one-of"]);
|
|
9
|
-
return operators.has(value);
|
|
10
|
-
}
|
|
11
|
-
function getAdHocFiltersFromScopes(scopes) {
|
|
12
|
-
const formattedFilters = /* @__PURE__ */ new Map();
|
|
13
|
-
const duplicatedFilters = [];
|
|
14
|
-
const allFilters = scopes.flatMap((scope) => scope.spec.filters);
|
|
15
|
-
for (const filter of allFilters) {
|
|
16
|
-
processFilter(formattedFilters, duplicatedFilters, filter);
|
|
17
|
-
}
|
|
18
|
-
return [...formattedFilters.values(), ...duplicatedFilters];
|
|
19
|
-
}
|
|
20
|
-
function processFilter(formattedFilters, duplicatedFilters, filter) {
|
|
21
|
-
var _a, _b;
|
|
22
|
-
const existingFilter = formattedFilters.get(filter.key);
|
|
23
|
-
if (existingFilter && canValueBeMerged(existingFilter.operator, filter.operator)) {
|
|
24
|
-
mergeFilterValues(existingFilter, filter);
|
|
25
|
-
} else if (!existingFilter) {
|
|
26
|
-
formattedFilters.set(filter.key, {
|
|
27
|
-
key: filter.key,
|
|
28
|
-
operator: reverseScopeFilterOperatorMap[filter.operator],
|
|
29
|
-
value: filter.value,
|
|
30
|
-
values: (_a = filter.values) != null ? _a : [filter.value],
|
|
31
|
-
origin: FilterOrigin.Scopes
|
|
32
|
-
});
|
|
33
|
-
} else {
|
|
34
|
-
duplicatedFilters.push({
|
|
35
|
-
key: filter.key,
|
|
36
|
-
operator: reverseScopeFilterOperatorMap[filter.operator],
|
|
37
|
-
value: filter.value,
|
|
38
|
-
values: (_b = filter.values) != null ? _b : [filter.value],
|
|
39
|
-
origin: FilterOrigin.Scopes
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
function mergeFilterValues(adHocFilter, filter) {
|
|
44
|
-
var _a, _b, _c, _d;
|
|
45
|
-
const values = (_a = filter.values) != null ? _a : [filter.value];
|
|
46
|
-
for (const value of values) {
|
|
47
|
-
if (!((_b = adHocFilter.values) == null ? void 0 : _b.includes(value))) {
|
|
48
|
-
(_c = adHocFilter.values) == null ? void 0 : _c.push(value);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
if (((_d = adHocFilter.values) == null ? void 0 : _d.length) === 1) {
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
54
|
-
if (filter.operator === "equals" && adHocFilter.operator === reverseScopeFilterOperatorMap["equals"]) {
|
|
55
|
-
adHocFilter.operator = reverseScopeFilterOperatorMap["one-of"];
|
|
56
|
-
} else if (filter.operator === "not-equals" && adHocFilter.operator === reverseScopeFilterOperatorMap["not-equals"]) {
|
|
57
|
-
adHocFilter.operator = reverseScopeFilterOperatorMap["not-one-of"];
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
function canValueBeMerged(adHocFilterOperator, filterOperator) {
|
|
61
|
-
const scopeConvertedOperator = scopeFilterOperatorMap[adHocFilterOperator];
|
|
62
|
-
if (!isEqualityOrMultiOperator(scopeConvertedOperator) || !isEqualityOrMultiOperator(filterOperator)) {
|
|
63
|
-
return false;
|
|
64
|
-
}
|
|
65
|
-
if (scopeConvertedOperator.includes("not") && !filterOperator.includes("not") || !scopeConvertedOperator.includes("not") && filterOperator.includes("not")) {
|
|
66
|
-
return false;
|
|
67
|
-
}
|
|
68
|
-
return true;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
export { getAdHocFiltersFromScopes, isEqualityOrMultiOperator, reverseScopeFilterOperatorMap };
|
|
72
|
-
//# sourceMappingURL=getAdHocFiltersFromScopes.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getAdHocFiltersFromScopes.js","sources":["../../../../src/variables/adhoc/getAdHocFiltersFromScopes.ts"],"sourcesContent":["import { Scope, ScopeFilterOperator, ScopeSpecFilter, scopeFilterOperatorMap } from '@grafana/data';\nimport { AdHocFilterWithLabels, FilterOrigin } from './AdHocFiltersVariable';\n\nexport type EqualityOrMultiOperator = Extract<ScopeFilterOperator, 'equals' | 'not-equals' | 'one-of' | 'not-one-of'>;\n\nexport const reverseScopeFilterOperatorMap: Record<ScopeFilterOperator, string> = Object.fromEntries(\n Object.entries(scopeFilterOperatorMap).map(([symbol, operator]) => [operator, symbol])\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n) as Record<ScopeFilterOperator, string>;\n\nexport function isEqualityOrMultiOperator(value: string): value is EqualityOrMultiOperator {\n const operators = new Set(['equals', 'not-equals', 'one-of', 'not-one-of']);\n return operators.has(value);\n}\n\nexport function getAdHocFiltersFromScopes(scopes: Scope[]): AdHocFilterWithLabels[] {\n const formattedFilters: Map<string, AdHocFilterWithLabels> = new Map();\n // duplicated filters that could not be processed in any way are just appended to the list\n const duplicatedFilters: AdHocFilterWithLabels[] = [];\n const allFilters = scopes.flatMap((scope) => scope.spec.filters);\n\n for (const filter of allFilters) {\n processFilter(formattedFilters, duplicatedFilters, filter);\n }\n\n return [...formattedFilters.values(), ...duplicatedFilters];\n}\n\nfunction processFilter(\n formattedFilters: Map<string, AdHocFilterWithLabels>,\n duplicatedFilters: AdHocFilterWithLabels[],\n filter: ScopeSpecFilter\n) {\n const existingFilter = formattedFilters.get(filter.key);\n\n if (existingFilter && canValueBeMerged(existingFilter.operator, filter.operator)) {\n mergeFilterValues(existingFilter, filter);\n } else if (!existingFilter) {\n // Add filter to map either only if it is new.\n // Otherwise it is an existing filter that cannot be converted to multi-value\n // and thus will be moved to the duplicatedFilters list\n formattedFilters.set(filter.key, {\n key: filter.key,\n operator: reverseScopeFilterOperatorMap[filter.operator],\n value: filter.value,\n values: filter.values ?? [filter.value],\n origin: FilterOrigin.Scopes,\n });\n } else {\n duplicatedFilters.push({\n key: filter.key,\n operator: reverseScopeFilterOperatorMap[filter.operator],\n value: filter.value,\n values: filter.values ?? [filter.value],\n origin: FilterOrigin.Scopes,\n });\n }\n}\n\nfunction mergeFilterValues(adHocFilter: AdHocFilterWithLabels, filter: ScopeSpecFilter) {\n const values = filter.values ?? [filter.value];\n\n for (const value of values) {\n if (!adHocFilter.values?.includes(value)) {\n adHocFilter.values?.push(value);\n }\n }\n\n // If there's only one value, there's no need to update the\n // operator to its multi-value equivalent\n if (adHocFilter.values?.length === 1) {\n return;\n }\n\n // Otherwise update it to the equivalent multi-value operator\n if (filter.operator === 'equals' && adHocFilter.operator === reverseScopeFilterOperatorMap['equals']) {\n adHocFilter.operator = reverseScopeFilterOperatorMap['one-of'];\n } else if (filter.operator === 'not-equals' && adHocFilter.operator === reverseScopeFilterOperatorMap['not-equals']) {\n adHocFilter.operator = reverseScopeFilterOperatorMap['not-one-of'];\n }\n}\n\nfunction canValueBeMerged(adHocFilterOperator: string, filterOperator: string) {\n const scopeConvertedOperator = scopeFilterOperatorMap[adHocFilterOperator];\n\n if (!isEqualityOrMultiOperator(scopeConvertedOperator) || !isEqualityOrMultiOperator(filterOperator)) {\n return false;\n }\n\n if (\n (scopeConvertedOperator.includes('not') && !filterOperator.includes('not')) ||\n (!scopeConvertedOperator.includes('not') && filterOperator.includes('not'))\n ) {\n return false;\n }\n\n return true;\n}\n"],"names":[],"mappings":"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"}
|