@grafana/scenes 6.3.2--canary.1073.13788678829.0 → 6.4.0--canary.1062.13788998678.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/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js +12 -3
- package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js.map +1 -1
- package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +11 -4
- package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js.map +1 -1
- package/dist/esm/variables/adhoc/AdHocFiltersVariable.js +65 -29
- package/dist/esm/variables/adhoc/AdHocFiltersVariable.js.map +1 -1
- package/dist/esm/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js +41 -9
- package/dist/esm/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js.map +1 -1
- package/dist/esm/variables/utils.js +11 -1
- package/dist/esm/variables/utils.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +136 -109
- 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/dist/index.js
CHANGED
|
@@ -3972,19 +3972,44 @@ class AdHocFiltersVariableUrlSyncHandler {
|
|
|
3972
3972
|
}
|
|
3973
3973
|
getUrlState() {
|
|
3974
3974
|
const filters = this._variable.state.filters;
|
|
3975
|
-
|
|
3975
|
+
const baseFilters = this._variable.state.baseFilters;
|
|
3976
|
+
let value = [];
|
|
3977
|
+
if (filters.length === 0 && (baseFilters == null ? void 0 : baseFilters.length) === 0) {
|
|
3976
3978
|
return { [this.getKey()]: [""] };
|
|
3977
3979
|
}
|
|
3978
|
-
|
|
3979
|
-
|
|
3980
|
+
if (filters.length) {
|
|
3981
|
+
value.push(
|
|
3982
|
+
...filters.filter(isFilterComplete).filter((filter) => !filter.hidden).map((filter) => toArray(filter).map(escapeUrlPipeDelimiters).join("|"))
|
|
3983
|
+
);
|
|
3984
|
+
}
|
|
3985
|
+
if (baseFilters == null ? void 0 : baseFilters.length) {
|
|
3986
|
+
value.push(
|
|
3987
|
+
...baseFilters == null ? void 0 : baseFilters.filter(isFilterComplete).filter((filter) => !filter.hidden && filter.origin && filter.originalValue).map(
|
|
3988
|
+
(filter) => {
|
|
3989
|
+
var _a, _b;
|
|
3990
|
+
return toArray(filter).map(escapeInjectedFilterUrlDelimiters).join("|").concat(
|
|
3991
|
+
`#${(_b = (_a = filter.originalValue) == null ? void 0 : _a.map(escapeInjectedFilterUrlDelimiters).join("|")) != null ? _b : ""}#${filter.origin}`
|
|
3992
|
+
);
|
|
3993
|
+
}
|
|
3994
|
+
)
|
|
3995
|
+
);
|
|
3996
|
+
}
|
|
3997
|
+
return {
|
|
3998
|
+
[this.getKey()]: value.length ? value : [""]
|
|
3999
|
+
};
|
|
3980
4000
|
}
|
|
3981
4001
|
updateFromUrl(values) {
|
|
3982
4002
|
const urlValue = values[this.getKey()];
|
|
3983
4003
|
if (urlValue == null) {
|
|
3984
4004
|
return;
|
|
3985
4005
|
}
|
|
3986
|
-
|
|
3987
|
-
|
|
4006
|
+
if (urlValue) {
|
|
4007
|
+
const filters = deserializeUrlToFilters(urlValue);
|
|
4008
|
+
this._variable.setState({
|
|
4009
|
+
filters: filters.filter((f) => !f.origin),
|
|
4010
|
+
baseFilters: filters.filter((f) => f.origin)
|
|
4011
|
+
});
|
|
4012
|
+
}
|
|
3988
4013
|
}
|
|
3989
4014
|
}
|
|
3990
4015
|
function deserializeUrlToFilters(value) {
|
|
@@ -4009,10 +4034,12 @@ function toArray(filter) {
|
|
|
4009
4034
|
return result;
|
|
4010
4035
|
}
|
|
4011
4036
|
function toFilter(urlValue) {
|
|
4037
|
+
var _a;
|
|
4012
4038
|
if (typeof urlValue !== "string" || urlValue.length === 0) {
|
|
4013
4039
|
return null;
|
|
4014
4040
|
}
|
|
4015
|
-
const [
|
|
4041
|
+
const [filter, originalValues, origin] = urlValue.split("#");
|
|
4042
|
+
const [key, keyLabel, operator, _operatorLabel, ...values] = filter.split("|").reduce((acc, v) => {
|
|
4016
4043
|
const [key2, label] = v.split(",");
|
|
4017
4044
|
acc.push(key2, label != null ? label : key2);
|
|
4018
4045
|
return acc;
|
|
@@ -4024,9 +4051,14 @@ function toFilter(urlValue) {
|
|
|
4024
4051
|
value: values[0],
|
|
4025
4052
|
values: isMultiValueOperator(operator) ? values.filter((_, index) => index % 2 === 0) : void 0,
|
|
4026
4053
|
valueLabels: values.filter((_, index) => index % 2 === 1),
|
|
4027
|
-
condition: ""
|
|
4054
|
+
condition: "",
|
|
4055
|
+
origin: isFilterOrigin(origin) ? origin : void 0,
|
|
4056
|
+
originalValue: originalValues && originalValues.length ? (_a = originalValues.split("|")) != null ? _a : [originalValues] : void 0
|
|
4028
4057
|
};
|
|
4029
4058
|
}
|
|
4059
|
+
function isFilterOrigin(value) {
|
|
4060
|
+
return value === FilterOrigin.Scopes || value === FilterOrigin.Dashboards;
|
|
4061
|
+
}
|
|
4030
4062
|
function isFilter(filter) {
|
|
4031
4063
|
return filter !== null && typeof filter.key === "string" && typeof filter.value === "string";
|
|
4032
4064
|
}
|
|
@@ -4874,13 +4906,20 @@ const AdHocCombobox = React.forwardRef(function AdHocCombobox2({ filter, model,
|
|
|
4874
4906
|
className: styles.pillWrapper
|
|
4875
4907
|
}, (filter == null ? void 0 : filter.key) ? /* @__PURE__ */ React__default["default"].createElement("div", {
|
|
4876
4908
|
className: css.cx(styles.basePill, styles.keyPill)
|
|
4877
|
-
}, keyLabel) : null, (filter == null ? void 0 : filter.key) && (filter == null ? void 0 : filter.operator) && filterInputType !== "operator" ? /* @__PURE__ */ React__default["default"].createElement("div", {
|
|
4909
|
+
}, keyLabel) : null, (filter == null ? void 0 : filter.key) && (filter == null ? void 0 : filter.operator) && filterInputType !== "operator" ? /* @__PURE__ */ React__default["default"].createElement("div", __spreadValues$B({
|
|
4878
4910
|
id: operatorIdentifier,
|
|
4879
|
-
className: css.cx(
|
|
4880
|
-
|
|
4911
|
+
className: css.cx(
|
|
4912
|
+
styles.basePill,
|
|
4913
|
+
!filter.origin && styles.operatorPill,
|
|
4914
|
+
filter.origin && styles.keyPill,
|
|
4915
|
+
operatorIdentifier
|
|
4916
|
+
),
|
|
4881
4917
|
"aria-label": "Edit filter operator",
|
|
4882
4918
|
tabIndex: 0,
|
|
4883
4919
|
onClick: (event) => {
|
|
4920
|
+
if (filter.origin) {
|
|
4921
|
+
return;
|
|
4922
|
+
}
|
|
4884
4923
|
event.stopPropagation();
|
|
4885
4924
|
setInputValue("");
|
|
4886
4925
|
switchInputType("operator", setInputType, void 0, refs.domReference.current);
|
|
@@ -4892,7 +4931,7 @@ const AdHocCombobox = React.forwardRef(function AdHocCombobox2({ filter, model,
|
|
|
4892
4931
|
switchInputType("operator", setInputType, void 0, refs.domReference.current);
|
|
4893
4932
|
}
|
|
4894
4933
|
}
|
|
4895
|
-
}, filter.operator) : null, /* @__PURE__ */ React__default["default"].createElement("div", {
|
|
4934
|
+
}, !filter.origin && { role: "button" }), filter.operator) : null, /* @__PURE__ */ React__default["default"].createElement("div", {
|
|
4896
4935
|
ref: multiValuePillWrapperRef
|
|
4897
4936
|
}), isMultiValueEdit ? filterMultiValues.map((item, i) => /* @__PURE__ */ React__default["default"].createElement(MultiValuePill, {
|
|
4898
4937
|
key: `${item.value}-${i}`,
|
|
@@ -5139,13 +5178,13 @@ function AdHocFilterPill({ filter, model, readOnly, focusOnWipInputRef }) {
|
|
|
5139
5178
|
const handleChangeViewMode = React.useCallback(
|
|
5140
5179
|
(event, shouldFocusOnPillWrapperOverride) => {
|
|
5141
5180
|
event == null ? void 0 : event.stopPropagation();
|
|
5142
|
-
if (readOnly
|
|
5181
|
+
if (readOnly) {
|
|
5143
5182
|
return;
|
|
5144
5183
|
}
|
|
5145
5184
|
setShouldFocusOnPillWrapper(shouldFocusOnPillWrapperOverride != null ? shouldFocusOnPillWrapperOverride : !viewMode);
|
|
5146
5185
|
setViewMode(!viewMode);
|
|
5147
5186
|
},
|
|
5148
|
-
[readOnly, viewMode
|
|
5187
|
+
[readOnly, viewMode]
|
|
5149
5188
|
);
|
|
5150
5189
|
React.useEffect(() => {
|
|
5151
5190
|
var _a2;
|
|
@@ -5209,11 +5248,20 @@ function AdHocFilterPill({ filter, model, readOnly, focusOnWipInputRef }) {
|
|
|
5209
5248
|
size: "md",
|
|
5210
5249
|
className: styles.pillIcon,
|
|
5211
5250
|
tooltip: `Remove filter with key ${keyLabel}`
|
|
5212
|
-
}) : null, filter.origin && /* @__PURE__ */ React__default["default"].createElement(ui.IconButton, {
|
|
5251
|
+
}) : null, filter.origin && !filter.originalValue && /* @__PURE__ */ React__default["default"].createElement(ui.IconButton, {
|
|
5213
5252
|
name: "info-circle",
|
|
5214
5253
|
size: "md",
|
|
5215
5254
|
className: styles.pillIcon,
|
|
5216
5255
|
tooltip: `This is a ${filter.origin} injected filter`
|
|
5256
|
+
}), filter.origin && filter.originalValue && /* @__PURE__ */ React__default["default"].createElement(ui.IconButton, {
|
|
5257
|
+
onClick: (e) => {
|
|
5258
|
+
e.stopPropagation();
|
|
5259
|
+
model.restoreOriginalFilter(filter);
|
|
5260
|
+
},
|
|
5261
|
+
name: "history",
|
|
5262
|
+
size: "md",
|
|
5263
|
+
className: styles.pillIcon,
|
|
5264
|
+
tooltip: `Restore filter to its original value`
|
|
5217
5265
|
}));
|
|
5218
5266
|
}
|
|
5219
5267
|
return /* @__PURE__ */ React__default["default"].createElement(AdHocCombobox, {
|
|
@@ -5347,73 +5395,6 @@ const getStyles$a = (theme) => ({
|
|
|
5347
5395
|
})
|
|
5348
5396
|
});
|
|
5349
5397
|
|
|
5350
|
-
const reverseScopeFilterOperatorMap = Object.fromEntries(
|
|
5351
|
-
Object.entries(data.scopeFilterOperatorMap).map(([symbol, operator]) => [operator, symbol])
|
|
5352
|
-
);
|
|
5353
|
-
function isEqualityOrMultiOperator(value) {
|
|
5354
|
-
const operators = /* @__PURE__ */ new Set(["equals", "not-equals", "one-of", "not-one-of"]);
|
|
5355
|
-
return operators.has(value);
|
|
5356
|
-
}
|
|
5357
|
-
function getAdHocFiltersFromScopes(scopes) {
|
|
5358
|
-
const formattedFilters = /* @__PURE__ */ new Map();
|
|
5359
|
-
const duplicatedFilters = [];
|
|
5360
|
-
const allFilters = scopes.flatMap((scope) => scope.spec.filters);
|
|
5361
|
-
for (const filter of allFilters) {
|
|
5362
|
-
processFilter(formattedFilters, duplicatedFilters, filter);
|
|
5363
|
-
}
|
|
5364
|
-
return [...formattedFilters.values(), ...duplicatedFilters];
|
|
5365
|
-
}
|
|
5366
|
-
function processFilter(formattedFilters, duplicatedFilters, filter) {
|
|
5367
|
-
var _a, _b;
|
|
5368
|
-
const existingFilter = formattedFilters.get(filter.key);
|
|
5369
|
-
if (existingFilter && canValueBeMerged(existingFilter.operator, filter.operator)) {
|
|
5370
|
-
mergeFilterValues(existingFilter, filter);
|
|
5371
|
-
} else if (!existingFilter) {
|
|
5372
|
-
formattedFilters.set(filter.key, {
|
|
5373
|
-
key: filter.key,
|
|
5374
|
-
operator: reverseScopeFilterOperatorMap[filter.operator],
|
|
5375
|
-
value: filter.value,
|
|
5376
|
-
values: (_a = filter.values) != null ? _a : [filter.value],
|
|
5377
|
-
origin: FilterOrigin.Scopes
|
|
5378
|
-
});
|
|
5379
|
-
} else {
|
|
5380
|
-
duplicatedFilters.push({
|
|
5381
|
-
key: filter.key,
|
|
5382
|
-
operator: reverseScopeFilterOperatorMap[filter.operator],
|
|
5383
|
-
value: filter.value,
|
|
5384
|
-
values: (_b = filter.values) != null ? _b : [filter.value],
|
|
5385
|
-
origin: FilterOrigin.Scopes
|
|
5386
|
-
});
|
|
5387
|
-
}
|
|
5388
|
-
}
|
|
5389
|
-
function mergeFilterValues(adHocFilter, filter) {
|
|
5390
|
-
var _a, _b, _c, _d;
|
|
5391
|
-
const values = (_a = filter.values) != null ? _a : [filter.value];
|
|
5392
|
-
for (const value of values) {
|
|
5393
|
-
if (!((_b = adHocFilter.values) == null ? void 0 : _b.includes(value))) {
|
|
5394
|
-
(_c = adHocFilter.values) == null ? void 0 : _c.push(value);
|
|
5395
|
-
}
|
|
5396
|
-
}
|
|
5397
|
-
if (((_d = adHocFilter.values) == null ? void 0 : _d.length) === 1) {
|
|
5398
|
-
return;
|
|
5399
|
-
}
|
|
5400
|
-
if (filter.operator === "equals" && adHocFilter.operator === reverseScopeFilterOperatorMap["equals"]) {
|
|
5401
|
-
adHocFilter.operator = reverseScopeFilterOperatorMap["one-of"];
|
|
5402
|
-
} else if (filter.operator === "not-equals" && adHocFilter.operator === reverseScopeFilterOperatorMap["not-equals"]) {
|
|
5403
|
-
adHocFilter.operator = reverseScopeFilterOperatorMap["not-one-of"];
|
|
5404
|
-
}
|
|
5405
|
-
}
|
|
5406
|
-
function canValueBeMerged(adHocFilterOperator, filterOperator) {
|
|
5407
|
-
const scopeConvertedOperator = data.scopeFilterOperatorMap[adHocFilterOperator];
|
|
5408
|
-
if (!isEqualityOrMultiOperator(scopeConvertedOperator) || !isEqualityOrMultiOperator(filterOperator)) {
|
|
5409
|
-
return false;
|
|
5410
|
-
}
|
|
5411
|
-
if (scopeConvertedOperator.includes("not") && !filterOperator.includes("not") || !scopeConvertedOperator.includes("not") && filterOperator.includes("not")) {
|
|
5412
|
-
return false;
|
|
5413
|
-
}
|
|
5414
|
-
return true;
|
|
5415
|
-
}
|
|
5416
|
-
|
|
5417
5398
|
var __defProp$z = Object.defineProperty;
|
|
5418
5399
|
var __defProps$n = Object.defineProperties;
|
|
5419
5400
|
var __getOwnPropDescs$n = Object.getOwnPropertyDescriptors;
|
|
@@ -5478,39 +5459,23 @@ const OPERATORS = [
|
|
|
5478
5459
|
];
|
|
5479
5460
|
class AdHocFiltersVariable extends SceneObjectBase {
|
|
5480
5461
|
constructor(state) {
|
|
5481
|
-
var _a, _b;
|
|
5462
|
+
var _a, _b, _c, _d, _e;
|
|
5482
5463
|
super(__spreadValues$z({
|
|
5483
5464
|
type: "adhoc",
|
|
5484
5465
|
name: (_a = state.name) != null ? _a : "Filters",
|
|
5485
5466
|
filters: [],
|
|
5486
5467
|
datasource: null,
|
|
5487
5468
|
applyMode: "auto",
|
|
5488
|
-
filterExpression: (
|
|
5469
|
+
filterExpression: (_e = state.filterExpression) != null ? _e : renderExpression(state.expressionBuilder, [
|
|
5470
|
+
...(_c = (_b = state.baseFilters) == null ? void 0 : _b.filter((filter) => filter.origin)) != null ? _c : [],
|
|
5471
|
+
...(_d = state.filters) != null ? _d : []
|
|
5472
|
+
])
|
|
5489
5473
|
}, state));
|
|
5490
5474
|
this._scopedVars = { __sceneObject: wrapInSafeSerializableSceneObject(this) };
|
|
5491
5475
|
this._dataSourceSrv = runtime.getDataSourceSrv();
|
|
5492
5476
|
this._urlSync = new AdHocFiltersVariableUrlSyncHandler(this);
|
|
5493
5477
|
this._activationHandler = () => {
|
|
5494
|
-
var _a, _b;
|
|
5495
5478
|
this._scopesBridge = sceneGraph.getScopesBridge(this);
|
|
5496
|
-
const scopes = (_a = this._scopesBridge) == null ? void 0 : _a.getValue();
|
|
5497
|
-
if (scopes) {
|
|
5498
|
-
this._updateScopesFilters(scopes);
|
|
5499
|
-
}
|
|
5500
|
-
const sub = (_b = this._scopesBridge) == null ? void 0 : _b.subscribeToValue((n, _) => {
|
|
5501
|
-
this._updateScopesFilters(n);
|
|
5502
|
-
});
|
|
5503
|
-
return () => {
|
|
5504
|
-
sub == null ? void 0 : sub.unsubscribe();
|
|
5505
|
-
};
|
|
5506
|
-
};
|
|
5507
|
-
this._updateScopesFilters = (scopes) => {
|
|
5508
|
-
var _a, _b;
|
|
5509
|
-
const newFilters = [
|
|
5510
|
-
...(_b = (_a = this.state.baseFilters) == null ? void 0 : _a.filter((f) => f.origin && f.origin !== "scopes" /* Scopes */)) != null ? _b : [],
|
|
5511
|
-
...getAdHocFiltersFromScopes(scopes)
|
|
5512
|
-
];
|
|
5513
|
-
this.setState({ baseFilters: newFilters });
|
|
5514
5479
|
};
|
|
5515
5480
|
if (this.state.applyMode === "auto") {
|
|
5516
5481
|
patchGetAdhocFilters(this);
|
|
@@ -5518,9 +5483,15 @@ class AdHocFiltersVariable extends SceneObjectBase {
|
|
|
5518
5483
|
this.addActivationHandler(this._activationHandler);
|
|
5519
5484
|
}
|
|
5520
5485
|
setState(update) {
|
|
5486
|
+
var _a, _b, _c;
|
|
5521
5487
|
let filterExpressionChanged = false;
|
|
5522
|
-
if (update.filters && update.filters !== this.state.filters && !update.filterExpression) {
|
|
5523
|
-
update.
|
|
5488
|
+
if ((update.filters && update.filters !== this.state.filters || update.baseFilters && update.baseFilters !== this.state.baseFilters) && !update.filterExpression) {
|
|
5489
|
+
const filters = (_a = update.filters) != null ? _a : this.state.filters;
|
|
5490
|
+
const baseFilters = (_b = update.baseFilters) != null ? _b : this.state.baseFilters;
|
|
5491
|
+
update.filterExpression = renderExpression(this.state.expressionBuilder, [
|
|
5492
|
+
...(_c = baseFilters == null ? void 0 : baseFilters.filter((filter) => filter.origin)) != null ? _c : [],
|
|
5493
|
+
...filters != null ? filters : []
|
|
5494
|
+
]);
|
|
5524
5495
|
filterExpressionChanged = update.filterExpression !== this.state.filterExpression;
|
|
5525
5496
|
}
|
|
5526
5497
|
super.setState(update);
|
|
@@ -5529,10 +5500,14 @@ class AdHocFiltersVariable extends SceneObjectBase {
|
|
|
5529
5500
|
}
|
|
5530
5501
|
}
|
|
5531
5502
|
updateFilters(filters, options) {
|
|
5503
|
+
var _a, _b;
|
|
5532
5504
|
let filterExpressionChanged = false;
|
|
5533
5505
|
let filterExpression = void 0;
|
|
5534
5506
|
if (filters && filters !== this.state.filters) {
|
|
5535
|
-
filterExpression = renderExpression(this.state.expressionBuilder,
|
|
5507
|
+
filterExpression = renderExpression(this.state.expressionBuilder, [
|
|
5508
|
+
...(_b = (_a = this.state.baseFilters) == null ? void 0 : _a.filter((filter) => filter.origin)) != null ? _b : [],
|
|
5509
|
+
...filters
|
|
5510
|
+
]);
|
|
5536
5511
|
filterExpressionChanged = filterExpression !== this.state.filterExpression;
|
|
5537
5512
|
}
|
|
5538
5513
|
super.setState({
|
|
@@ -5543,11 +5518,40 @@ class AdHocFiltersVariable extends SceneObjectBase {
|
|
|
5543
5518
|
this.publishEvent(new SceneVariableValueChangedEvent(this), true);
|
|
5544
5519
|
}
|
|
5545
5520
|
}
|
|
5521
|
+
restoreOriginalFilter(filter) {
|
|
5522
|
+
var _a;
|
|
5523
|
+
const original = {
|
|
5524
|
+
originalValue: void 0
|
|
5525
|
+
};
|
|
5526
|
+
if ((_a = filter.originalValue) == null ? void 0 : _a.length) {
|
|
5527
|
+
original.value = filter.originalValue[0];
|
|
5528
|
+
original.values = filter.originalValue;
|
|
5529
|
+
original.valueLabels = filter.originalValue;
|
|
5530
|
+
}
|
|
5531
|
+
this._updateFilter(filter, original);
|
|
5532
|
+
}
|
|
5546
5533
|
getValue() {
|
|
5547
5534
|
return this.state.filterExpression;
|
|
5548
5535
|
}
|
|
5549
5536
|
_updateFilter(filter, update) {
|
|
5550
|
-
|
|
5537
|
+
var _a;
|
|
5538
|
+
const { baseFilters, filters, _wip } = this.state;
|
|
5539
|
+
if (filter.origin) {
|
|
5540
|
+
const currentValues = filter.values ? filter.values : [filter.value];
|
|
5541
|
+
const updateValues = update.values || (update.value ? [update.value] : void 0);
|
|
5542
|
+
const originalValueOverride = update.hasOwnProperty("originalValue");
|
|
5543
|
+
if (!originalValueOverride && updateValues && !filter.originalValue && !lodash.isEqual(currentValues, updateValues)) {
|
|
5544
|
+
update.originalValue = currentValues;
|
|
5545
|
+
}
|
|
5546
|
+
if (!originalValueOverride && lodash.isEqual(updateValues, filter.originalValue)) {
|
|
5547
|
+
update.originalValue = void 0;
|
|
5548
|
+
}
|
|
5549
|
+
const updatedBaseFilters = (_a = baseFilters == null ? void 0 : baseFilters.map((f) => {
|
|
5550
|
+
return f === filter ? __spreadValues$z(__spreadValues$z({}, f), update) : f;
|
|
5551
|
+
})) != null ? _a : [];
|
|
5552
|
+
this.setState({ baseFilters: updatedBaseFilters });
|
|
5553
|
+
return;
|
|
5554
|
+
}
|
|
5551
5555
|
if (filter === _wip) {
|
|
5552
5556
|
if ("value" in update && update["value"] !== "") {
|
|
5553
5557
|
this.setState({ filters: [...filters, __spreadValues$z(__spreadValues$z({}, _wip), update)], _wip: void 0 });
|
|
@@ -5634,7 +5638,7 @@ class AdHocFiltersVariable extends SceneObjectBase {
|
|
|
5634
5638
|
return keys.map(toSelectableValue);
|
|
5635
5639
|
}
|
|
5636
5640
|
async _getValuesFor(filter) {
|
|
5637
|
-
var _a, _b, _c, _d;
|
|
5641
|
+
var _a, _b, _c, _d, _e;
|
|
5638
5642
|
const override = await ((_b = (_a = this.state).getTagValuesProvider) == null ? void 0 : _b.call(_a, this, filter));
|
|
5639
5643
|
if (override && override.replace) {
|
|
5640
5644
|
return dataFromResponse(override.values).map(toSelectableValue);
|
|
@@ -5643,15 +5647,28 @@ class AdHocFiltersVariable extends SceneObjectBase {
|
|
|
5643
5647
|
if (!ds || !ds.getTagValues) {
|
|
5644
5648
|
return [];
|
|
5645
5649
|
}
|
|
5646
|
-
const
|
|
5650
|
+
const filteredBaseFilters = (_d = (_c = this.state.baseFilters) == null ? void 0 : _c.filter((f) => f.origin && f.key !== filter.key)) != null ? _d : [];
|
|
5651
|
+
const otherFilters = this.state.filters.filter((f) => f.key !== filter.key).concat(filteredBaseFilters);
|
|
5647
5652
|
const timeRange = sceneGraph.getTimeRange(this).state.value;
|
|
5648
5653
|
const queries = this.state.useQueriesAsFilterForOptions ? getQueriesForVariables(this) : void 0;
|
|
5654
|
+
const scopes = (_e = this._scopesBridge) == null ? void 0 : _e.getValue().map((scope) => {
|
|
5655
|
+
return __spreadProps$n(__spreadValues$z({}, scope), {
|
|
5656
|
+
spec: __spreadProps$n(__spreadValues$z({}, scope.spec), {
|
|
5657
|
+
filters: scope.spec.filters.filter(
|
|
5658
|
+
(f) => {
|
|
5659
|
+
var _a2;
|
|
5660
|
+
return !((_a2 = this.state.baseFilters) == null ? void 0 : _a2.find((bf) => bf.key === f.key && "scopes" /* Scopes */));
|
|
5661
|
+
}
|
|
5662
|
+
)
|
|
5663
|
+
})
|
|
5664
|
+
});
|
|
5665
|
+
});
|
|
5649
5666
|
const response = await ds.getTagValues(__spreadValues$z({
|
|
5650
5667
|
key: filter.key,
|
|
5651
5668
|
filters: otherFilters,
|
|
5652
5669
|
timeRange,
|
|
5653
5670
|
queries,
|
|
5654
|
-
scopes
|
|
5671
|
+
scopes
|
|
5655
5672
|
}, getEnrichedFiltersRequest(this)));
|
|
5656
5673
|
if (responseHasError(response)) {
|
|
5657
5674
|
this.setState({ error: response.error.message });
|
|
@@ -6370,6 +6387,15 @@ function escapeUrlCommaDelimiters(value) {
|
|
|
6370
6387
|
}
|
|
6371
6388
|
return /,/g[Symbol.replace](value, "__gfc__");
|
|
6372
6389
|
}
|
|
6390
|
+
function escapeUrlHashDelimiters(value) {
|
|
6391
|
+
if (value === null || value === void 0) {
|
|
6392
|
+
return "";
|
|
6393
|
+
}
|
|
6394
|
+
return /#/g[Symbol.replace](value, "__gfh__");
|
|
6395
|
+
}
|
|
6396
|
+
function escapeInjectedFilterUrlDelimiters(value) {
|
|
6397
|
+
return escapeUrlHashDelimiters(escapeUrlPipeDelimiters(value));
|
|
6398
|
+
}
|
|
6373
6399
|
function escapeURLDelimiters(value) {
|
|
6374
6400
|
return escapeUrlCommaDelimiters(escapeUrlPipeDelimiters(value));
|
|
6375
6401
|
}
|
|
@@ -6379,6 +6405,7 @@ function unescapeUrlDelimiters(value) {
|
|
|
6379
6405
|
}
|
|
6380
6406
|
value = /__gfp__/g[Symbol.replace](value, "|");
|
|
6381
6407
|
value = /__gfc__/g[Symbol.replace](value, ",");
|
|
6408
|
+
value = /__gfh__/g[Symbol.replace](value, "#");
|
|
6382
6409
|
return value;
|
|
6383
6410
|
}
|
|
6384
6411
|
function toUrlCommaDelimitedString(key, label) {
|