@grafana/scenes 6.9.1 → 6.10.0--canary.1095.14616202286.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/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js +38 -16
- package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js.map +1 -1
- package/dist/esm/variables/adhoc/AdHocFiltersVariable.js +93 -57
- package/dist/esm/variables/adhoc/AdHocFiltersVariable.js.map +1 -1
- package/dist/esm/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js +30 -19
- package/dist/esm/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js.map +1 -1
- package/dist/esm/variables/adhoc/getAdHocFiltersFromScopes.js +2 -3
- package/dist/esm/variables/adhoc/getAdHocFiltersFromScopes.js.map +1 -1
- package/dist/index.d.ts +6 -6
- package/dist/index.js +160 -93
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -3783,13 +3783,8 @@ class AdHocFiltersVariableUrlSyncHandler {
|
|
|
3783
3783
|
}
|
|
3784
3784
|
if (baseFilters == null ? void 0 : baseFilters.length) {
|
|
3785
3785
|
value.push(
|
|
3786
|
-
...baseFilters == null ? void 0 : baseFilters.filter(isFilterComplete).filter((filter) => !filter.hidden && filter.origin && filter.
|
|
3787
|
-
(filter) => {
|
|
3788
|
-
var _a, _b;
|
|
3789
|
-
return toArray(filter).map(escapeInjectedFilterUrlDelimiters).join("|").concat(
|
|
3790
|
-
`#${(_b = (_a = filter.originalValue) == null ? void 0 : _a.map(escapeInjectedFilterUrlDelimiters).join("|")) != null ? _b : ""}#${filter.origin}`
|
|
3791
|
-
);
|
|
3792
|
-
}
|
|
3786
|
+
...baseFilters == null ? void 0 : baseFilters.filter(isFilterComplete).filter((filter) => !filter.hidden && filter.origin && filter.restorable).map(
|
|
3787
|
+
(filter) => toArray(filter).map(escapeInjectedFilterUrlDelimiters).join("|").concat(`#${filter.origin}#restorable`)
|
|
3793
3788
|
)
|
|
3794
3789
|
);
|
|
3795
3790
|
}
|
|
@@ -3802,13 +3797,30 @@ class AdHocFiltersVariableUrlSyncHandler {
|
|
|
3802
3797
|
if (urlValue == null) {
|
|
3803
3798
|
return;
|
|
3804
3799
|
}
|
|
3805
|
-
|
|
3806
|
-
|
|
3807
|
-
|
|
3808
|
-
|
|
3809
|
-
|
|
3810
|
-
|
|
3811
|
-
|
|
3800
|
+
const filters = deserializeUrlToFilters(urlValue);
|
|
3801
|
+
const baseFilters = [...this._variable.state.baseFilters || []];
|
|
3802
|
+
for (let i = 0; i < filters.length; i++) {
|
|
3803
|
+
const foundBaseFilterIndex = baseFilters.findIndex((f) => f.key === filters[i].key);
|
|
3804
|
+
if (foundBaseFilterIndex > -1) {
|
|
3805
|
+
if (!filters[i].origin && baseFilters[foundBaseFilterIndex].origin === "dashboard") {
|
|
3806
|
+
filters[i].origin = "dashboard";
|
|
3807
|
+
filters[i].restorable = true;
|
|
3808
|
+
}
|
|
3809
|
+
if (isMatchAllFilter(filters[i])) {
|
|
3810
|
+
filters[i].matchAllFilter = true;
|
|
3811
|
+
}
|
|
3812
|
+
baseFilters[foundBaseFilterIndex] = filters[i];
|
|
3813
|
+
} else if (filters[i].origin === "dashboard") {
|
|
3814
|
+
delete filters[i].origin;
|
|
3815
|
+
delete filters[i].restorable;
|
|
3816
|
+
} else if (foundBaseFilterIndex === -1 && filters[i].origin === "scope" && filters[i].restorable) {
|
|
3817
|
+
baseFilters.push(filters[i]);
|
|
3818
|
+
}
|
|
3819
|
+
}
|
|
3820
|
+
this._variable.setState({
|
|
3821
|
+
filters: filters.filter((f) => !f.origin),
|
|
3822
|
+
baseFilters
|
|
3823
|
+
});
|
|
3812
3824
|
}
|
|
3813
3825
|
}
|
|
3814
3826
|
function deserializeUrlToFilters(value) {
|
|
@@ -3833,11 +3845,10 @@ function toArray(filter) {
|
|
|
3833
3845
|
return result;
|
|
3834
3846
|
}
|
|
3835
3847
|
function toFilter(urlValue) {
|
|
3836
|
-
var _a;
|
|
3837
3848
|
if (typeof urlValue !== "string" || urlValue.length === 0) {
|
|
3838
3849
|
return null;
|
|
3839
3850
|
}
|
|
3840
|
-
const [filter,
|
|
3851
|
+
const [filter, origin, restorable] = urlValue.split("#");
|
|
3841
3852
|
const [key, keyLabel, operator, _operatorLabel, ...values] = filter.split("|").reduce((acc, v) => {
|
|
3842
3853
|
const [key2, label] = v.split(",");
|
|
3843
3854
|
acc.push(key2, label != null ? label : key2);
|
|
@@ -3851,12 +3862,12 @@ function toFilter(urlValue) {
|
|
|
3851
3862
|
values: isMultiValueOperator(operator) ? values.filter((_, index) => index % 2 === 0) : void 0,
|
|
3852
3863
|
valueLabels: values.filter((_, index) => index % 2 === 1),
|
|
3853
3864
|
condition: "",
|
|
3854
|
-
|
|
3855
|
-
|
|
3865
|
+
...isFilterOrigin(origin) && { origin },
|
|
3866
|
+
...!!restorable && { restorable: true }
|
|
3856
3867
|
};
|
|
3857
3868
|
}
|
|
3858
3869
|
function isFilterOrigin(value) {
|
|
3859
|
-
return value ===
|
|
3870
|
+
return value === "scope" || value === "dashboard";
|
|
3860
3871
|
}
|
|
3861
3872
|
function isFilter(filter) {
|
|
3862
3873
|
return filter !== null && typeof filter.key === "string" && typeof filter.value === "string";
|
|
@@ -4947,7 +4958,11 @@ function AdHocFilterPill({ filter, model, readOnly, focusOnWipInputRef }) {
|
|
|
4947
4958
|
return /* @__PURE__ */ React__default.default.createElement(
|
|
4948
4959
|
"div",
|
|
4949
4960
|
{
|
|
4950
|
-
className: css.cx(
|
|
4961
|
+
className: css.cx(
|
|
4962
|
+
styles.combinedFilterPill,
|
|
4963
|
+
readOnly && styles.readOnlyCombinedFilter,
|
|
4964
|
+
isMatchAllFilter(filter) && styles.matchAllPill
|
|
4965
|
+
),
|
|
4951
4966
|
onClick: (e) => {
|
|
4952
4967
|
e.stopPropagation();
|
|
4953
4968
|
setPopulateInputOnEdit(true);
|
|
@@ -4965,19 +4980,27 @@ function AdHocFilterPill({ filter, model, readOnly, focusOnWipInputRef }) {
|
|
|
4965
4980
|
ref: pillWrapperRef
|
|
4966
4981
|
},
|
|
4967
4982
|
valueLabel.length < LABEL_MAX_VISIBLE_LENGTH ? pillText : /* @__PURE__ */ React__default.default.createElement(ui.Tooltip, { content: /* @__PURE__ */ React__default.default.createElement("div", { className: styles.tooltipText }, valueLabel), placement: "top" }, pillText),
|
|
4968
|
-
!readOnly && !filter.origin ? /* @__PURE__ */ React__default.default.createElement(
|
|
4983
|
+
!readOnly && !filter.matchAllFilter && (!filter.origin || filter.origin === "dashboard") ? /* @__PURE__ */ React__default.default.createElement(
|
|
4969
4984
|
ui.IconButton,
|
|
4970
4985
|
{
|
|
4971
4986
|
onClick: (e) => {
|
|
4972
4987
|
e.stopPropagation();
|
|
4973
|
-
|
|
4988
|
+
if (filter.origin && filter.origin === "dashboard") {
|
|
4989
|
+
model.updateToMatchAll(filter);
|
|
4990
|
+
} else {
|
|
4991
|
+
model._removeFilter(filter);
|
|
4992
|
+
}
|
|
4974
4993
|
setTimeout(() => focusOnWipInputRef == null ? void 0 : focusOnWipInputRef());
|
|
4975
4994
|
},
|
|
4976
4995
|
onKeyDownCapture: (e) => {
|
|
4977
4996
|
if (e.key === "Enter") {
|
|
4978
4997
|
e.preventDefault();
|
|
4979
4998
|
e.stopPropagation();
|
|
4980
|
-
|
|
4999
|
+
if (filter.origin && filter.origin === "dashboard") {
|
|
5000
|
+
model.updateToMatchAll(filter);
|
|
5001
|
+
} else {
|
|
5002
|
+
model._removeFilter(filter);
|
|
5003
|
+
}
|
|
4981
5004
|
setTimeout(() => focusOnWipInputRef == null ? void 0 : focusOnWipInputRef());
|
|
4982
5005
|
}
|
|
4983
5006
|
},
|
|
@@ -4987,16 +5010,8 @@ function AdHocFilterPill({ filter, model, readOnly, focusOnWipInputRef }) {
|
|
|
4987
5010
|
tooltip: `Remove filter with key ${keyLabel}`
|
|
4988
5011
|
}
|
|
4989
5012
|
) : null,
|
|
4990
|
-
filter.origin && !filter.
|
|
4991
|
-
|
|
4992
|
-
{
|
|
4993
|
-
name: "info-circle",
|
|
4994
|
-
size: "md",
|
|
4995
|
-
className: styles.pillIcon,
|
|
4996
|
-
tooltip: `This is a ${filter.origin} injected filter`
|
|
4997
|
-
}
|
|
4998
|
-
),
|
|
4999
|
-
filter.origin && filter.originalValue && /* @__PURE__ */ React__default.default.createElement(
|
|
5013
|
+
filter.origin && !filter.restorable && /* @__PURE__ */ React__default.default.createElement(ui.Tooltip, { content: `This is a ${filter.origin} injected filter`, placement: "bottom" }, /* @__PURE__ */ React__default.default.createElement(ui.Icon, { name: "info-circle", size: "md", className: styles.infoPillIcon })),
|
|
5014
|
+
filter.origin && filter.restorable && /* @__PURE__ */ React__default.default.createElement(
|
|
5000
5015
|
ui.IconButton,
|
|
5001
5016
|
{
|
|
5002
5017
|
onClick: (e) => {
|
|
@@ -5012,7 +5027,7 @@ function AdHocFilterPill({ filter, model, readOnly, focusOnWipInputRef }) {
|
|
|
5012
5027
|
},
|
|
5013
5028
|
name: "history",
|
|
5014
5029
|
size: "md",
|
|
5015
|
-
className: styles.pillIcon,
|
|
5030
|
+
className: isMatchAllFilter(filter) ? styles.matchAllPillIcon : styles.pillIcon,
|
|
5016
5031
|
tooltip: `Restore filter to its original value`
|
|
5017
5032
|
}
|
|
5018
5033
|
)
|
|
@@ -5070,6 +5085,23 @@ const getStyles$b = (theme) => ({
|
|
|
5070
5085
|
}),
|
|
5071
5086
|
tooltipText: css.css({
|
|
5072
5087
|
textAlign: "center"
|
|
5088
|
+
}),
|
|
5089
|
+
infoPillIcon: css.css({
|
|
5090
|
+
marginInline: theme.spacing(0.5),
|
|
5091
|
+
cursor: "pointer"
|
|
5092
|
+
}),
|
|
5093
|
+
matchAllPillIcon: css.css({
|
|
5094
|
+
marginInline: theme.spacing(0.5),
|
|
5095
|
+
cursor: "pointer",
|
|
5096
|
+
color: theme.colors.text.disabled
|
|
5097
|
+
}),
|
|
5098
|
+
matchAllPill: css.css({
|
|
5099
|
+
background: theme.colors.action.selected,
|
|
5100
|
+
color: theme.colors.text.disabled,
|
|
5101
|
+
border: 0,
|
|
5102
|
+
"&:hover": {
|
|
5103
|
+
background: theme.colors.action.selected
|
|
5104
|
+
}
|
|
5073
5105
|
})
|
|
5074
5106
|
});
|
|
5075
5107
|
|
|
@@ -5181,7 +5213,7 @@ function processFilter(formattedFilters, duplicatedFilters, filter) {
|
|
|
5181
5213
|
operator: reverseScopeFilterOperatorMap[filter.operator],
|
|
5182
5214
|
value: filter.value,
|
|
5183
5215
|
values: (_a = filter.values) != null ? _a : [filter.value],
|
|
5184
|
-
origin:
|
|
5216
|
+
origin: "scope"
|
|
5185
5217
|
});
|
|
5186
5218
|
} else {
|
|
5187
5219
|
duplicatedFilters.push({
|
|
@@ -5189,7 +5221,7 @@ function processFilter(formattedFilters, duplicatedFilters, filter) {
|
|
|
5189
5221
|
operator: reverseScopeFilterOperatorMap[filter.operator],
|
|
5190
5222
|
value: filter.value,
|
|
5191
5223
|
values: (_b = filter.values) != null ? _b : [filter.value],
|
|
5192
|
-
origin:
|
|
5224
|
+
origin: "scope"
|
|
5193
5225
|
});
|
|
5194
5226
|
}
|
|
5195
5227
|
}
|
|
@@ -5221,11 +5253,6 @@ function canValueBeMerged(adHocFilterOperator, filterOperator) {
|
|
|
5221
5253
|
return true;
|
|
5222
5254
|
}
|
|
5223
5255
|
|
|
5224
|
-
var FilterOrigin = /* @__PURE__ */ ((FilterOrigin2) => {
|
|
5225
|
-
FilterOrigin2["Scopes"] = "scopes";
|
|
5226
|
-
FilterOrigin2["Dashboards"] = "dashboards";
|
|
5227
|
-
return FilterOrigin2;
|
|
5228
|
-
})(FilterOrigin || {});
|
|
5229
5256
|
const OPERATORS = [
|
|
5230
5257
|
{
|
|
5231
5258
|
value: "=",
|
|
@@ -5266,7 +5293,7 @@ const OPERATORS = [
|
|
|
5266
5293
|
];
|
|
5267
5294
|
class AdHocFiltersVariable extends SceneObjectBase {
|
|
5268
5295
|
constructor(state) {
|
|
5269
|
-
var _a, _b, _c, _d, _e;
|
|
5296
|
+
var _a, _b, _c, _d, _e, _f;
|
|
5270
5297
|
super({
|
|
5271
5298
|
type: "adhoc",
|
|
5272
5299
|
name: (_a = state.name) != null ? _a : "Filters",
|
|
@@ -5281,6 +5308,10 @@ class AdHocFiltersVariable extends SceneObjectBase {
|
|
|
5281
5308
|
});
|
|
5282
5309
|
this._scopedVars = { __sceneObject: wrapInSafeSerializableSceneObject(this) };
|
|
5283
5310
|
this._dataSourceSrv = runtime.getDataSourceSrv();
|
|
5311
|
+
// holds the originalValues of all baseFilters in a map. The values
|
|
5312
|
+
// are set on construct and used to restore a baseFilter with an origin
|
|
5313
|
+
// to its original value if edited at some point
|
|
5314
|
+
this._originalValues = /* @__PURE__ */ new Map();
|
|
5284
5315
|
this._urlSync = new AdHocFiltersVariableUrlSyncHandler(this);
|
|
5285
5316
|
this._activationHandler = () => {
|
|
5286
5317
|
var _a, _b;
|
|
@@ -5290,52 +5321,75 @@ class AdHocFiltersVariable extends SceneObjectBase {
|
|
|
5290
5321
|
this._updateScopesFilters(scopes);
|
|
5291
5322
|
}
|
|
5292
5323
|
const sub = (_b = this._scopesBridge) == null ? void 0 : _b.subscribeToValue((n, _) => {
|
|
5293
|
-
|
|
5294
|
-
this._updateScopesFilters(n, (_a2 = this._scopesBridge) == null ? void 0 : _a2.isLoading());
|
|
5324
|
+
this._updateScopesFilters(n);
|
|
5295
5325
|
});
|
|
5296
5326
|
return () => {
|
|
5327
|
+
var _a2, _b2;
|
|
5297
5328
|
sub == null ? void 0 : sub.unsubscribe();
|
|
5298
|
-
|
|
5299
|
-
|
|
5300
|
-
|
|
5301
|
-
|
|
5302
|
-
|
|
5303
|
-
|
|
5304
|
-
|
|
5305
|
-
|
|
5306
|
-
|
|
5307
|
-
}
|
|
5308
|
-
const scopeFilters = getAdHocFiltersFromScopes(scopes);
|
|
5309
|
-
let finalFilters = scopeFilters;
|
|
5310
|
-
const scopeInjectedFilters = [];
|
|
5311
|
-
const remainingFilters = [];
|
|
5312
|
-
(_b = this.state.baseFilters) == null ? void 0 : _b.forEach((filter) => {
|
|
5313
|
-
if (filter.origin === "scopes" /* Scopes */) {
|
|
5314
|
-
scopeInjectedFilters.push(filter);
|
|
5315
|
-
} else {
|
|
5316
|
-
remainingFilters.push(filter);
|
|
5329
|
+
if ((_a2 = this.state.baseFilters) == null ? void 0 : _a2.length) {
|
|
5330
|
+
this.setState({
|
|
5331
|
+
baseFilters: [...this.state.baseFilters.filter((filter) => filter.origin !== "scope")]
|
|
5332
|
+
});
|
|
5333
|
+
(_b2 = this.state.baseFilters) == null ? void 0 : _b2.forEach((filter) => {
|
|
5334
|
+
if (filter.origin === "dashboard" && filter.restorable) {
|
|
5335
|
+
this.restoreOriginalFilter(filter);
|
|
5336
|
+
}
|
|
5337
|
+
});
|
|
5317
5338
|
}
|
|
5318
|
-
}
|
|
5319
|
-
if (!scopeFilters.length) {
|
|
5320
|
-
return;
|
|
5321
|
-
}
|
|
5322
|
-
const editedScopeFilters = scopeInjectedFilters.filter((filter) => {
|
|
5323
|
-
var _a2;
|
|
5324
|
-
return (_a2 = filter.originalValue) == null ? void 0 : _a2.length;
|
|
5325
|
-
});
|
|
5326
|
-
const editedScopeFilterKeys = editedScopeFilters.map((filter) => filter.key);
|
|
5327
|
-
const scopeFilterKeys = scopeFilters.map((filter) => filter.key);
|
|
5328
|
-
finalFilters = [
|
|
5329
|
-
...editedScopeFilters.filter((filter) => scopeFilterKeys.includes(filter.key)),
|
|
5330
|
-
...scopeFilters.filter((filter) => !editedScopeFilterKeys.includes(filter.key))
|
|
5331
|
-
];
|
|
5332
|
-
this.setState({ baseFilters: [...remainingFilters, ...finalFilters] });
|
|
5339
|
+
};
|
|
5333
5340
|
};
|
|
5334
5341
|
if (this.state.applyMode === "auto") {
|
|
5335
5342
|
patchGetAdhocFilters(this);
|
|
5336
5343
|
}
|
|
5344
|
+
(_f = this.state.baseFilters) == null ? void 0 : _f.forEach((baseFilter) => {
|
|
5345
|
+
var _a2;
|
|
5346
|
+
if (baseFilter.origin === "dashboard") {
|
|
5347
|
+
this._originalValues.set(baseFilter.key, {
|
|
5348
|
+
operator: baseFilter.operator,
|
|
5349
|
+
value: (_a2 = baseFilter.values) != null ? _a2 : [baseFilter.value]
|
|
5350
|
+
});
|
|
5351
|
+
}
|
|
5352
|
+
});
|
|
5337
5353
|
this.addActivationHandler(this._activationHandler);
|
|
5338
5354
|
}
|
|
5355
|
+
_updateScopesFilters(scopes) {
|
|
5356
|
+
var _a, _b;
|
|
5357
|
+
if (!scopes.length) {
|
|
5358
|
+
this.setState({
|
|
5359
|
+
baseFilters: (_a = this.state.baseFilters) == null ? void 0 : _a.filter((filter) => filter.origin !== "scope")
|
|
5360
|
+
});
|
|
5361
|
+
return;
|
|
5362
|
+
}
|
|
5363
|
+
const scopeFilters = getAdHocFiltersFromScopes(scopes);
|
|
5364
|
+
if (!scopeFilters.length) {
|
|
5365
|
+
return;
|
|
5366
|
+
}
|
|
5367
|
+
let finalFilters = scopeFilters;
|
|
5368
|
+
const scopeInjectedFilters = [];
|
|
5369
|
+
const remainingFilters = [];
|
|
5370
|
+
finalFilters.forEach((scopeFilter) => {
|
|
5371
|
+
var _a2;
|
|
5372
|
+
this._originalValues.set(scopeFilter.key, {
|
|
5373
|
+
value: (_a2 = scopeFilter.values) != null ? _a2 : [scopeFilter.value],
|
|
5374
|
+
operator: scopeFilter.operator
|
|
5375
|
+
});
|
|
5376
|
+
});
|
|
5377
|
+
(_b = this.state.baseFilters) == null ? void 0 : _b.forEach((filter) => {
|
|
5378
|
+
if (filter.origin === "scope") {
|
|
5379
|
+
scopeInjectedFilters.push(filter);
|
|
5380
|
+
} else {
|
|
5381
|
+
remainingFilters.push(filter);
|
|
5382
|
+
}
|
|
5383
|
+
});
|
|
5384
|
+
const editedScopeFilters = scopeInjectedFilters.filter((filter) => filter.restorable);
|
|
5385
|
+
const editedScopeFilterKeys = editedScopeFilters.map((filter) => filter.key);
|
|
5386
|
+
const scopeFilterKeys = scopeFilters.map((filter) => filter.key);
|
|
5387
|
+
finalFilters = [
|
|
5388
|
+
...editedScopeFilters.filter((filter) => scopeFilterKeys.includes(filter.key)),
|
|
5389
|
+
...scopeFilters.filter((filter) => !editedScopeFilterKeys.includes(filter.key))
|
|
5390
|
+
];
|
|
5391
|
+
this.setState({ baseFilters: [...finalFilters, ...remainingFilters] });
|
|
5392
|
+
}
|
|
5339
5393
|
setState(update) {
|
|
5340
5394
|
var _a, _b, _c;
|
|
5341
5395
|
let filterExpressionChanged = false;
|
|
@@ -5378,14 +5432,16 @@ class AdHocFiltersVariable extends SceneObjectBase {
|
|
|
5378
5432
|
}
|
|
5379
5433
|
}
|
|
5380
5434
|
restoreOriginalFilter(filter) {
|
|
5381
|
-
var _a;
|
|
5382
5435
|
const original = {
|
|
5383
|
-
|
|
5436
|
+
matchAllFilter: false,
|
|
5437
|
+
restorable: false
|
|
5384
5438
|
};
|
|
5385
|
-
if (
|
|
5386
|
-
|
|
5387
|
-
original.
|
|
5388
|
-
original.
|
|
5439
|
+
if (filter.restorable) {
|
|
5440
|
+
const originalFilter = this._originalValues.get(filter.key);
|
|
5441
|
+
original.value = originalFilter == null ? void 0 : originalFilter.value[0];
|
|
5442
|
+
original.values = originalFilter == null ? void 0 : originalFilter.value;
|
|
5443
|
+
original.valueLabels = originalFilter == null ? void 0 : originalFilter.value;
|
|
5444
|
+
original.operator = originalFilter == null ? void 0 : originalFilter.operator;
|
|
5389
5445
|
}
|
|
5390
5446
|
this._updateFilter(filter, original);
|
|
5391
5447
|
}
|
|
@@ -5396,14 +5452,13 @@ class AdHocFiltersVariable extends SceneObjectBase {
|
|
|
5396
5452
|
var _a;
|
|
5397
5453
|
const { baseFilters, filters, _wip } = this.state;
|
|
5398
5454
|
if (filter.origin) {
|
|
5399
|
-
const
|
|
5455
|
+
const originalValues = this._originalValues.get(filter.key);
|
|
5400
5456
|
const updateValues = update.values || (update.value ? [update.value] : void 0);
|
|
5401
|
-
const
|
|
5402
|
-
if (!
|
|
5403
|
-
update.
|
|
5404
|
-
}
|
|
5405
|
-
|
|
5406
|
-
update.originalValue = void 0;
|
|
5457
|
+
const isRestorableOverride = update.hasOwnProperty("restorable");
|
|
5458
|
+
if (!isRestorableOverride && (updateValues && !lodash.isEqual(updateValues, originalValues == null ? void 0 : originalValues.value) || update.operator && update.operator !== (originalValues == null ? void 0 : originalValues.operator))) {
|
|
5459
|
+
update.restorable = true;
|
|
5460
|
+
} else if (updateValues && lodash.isEqual(updateValues, originalValues == null ? void 0 : originalValues.value)) {
|
|
5461
|
+
update.restorable = false;
|
|
5407
5462
|
}
|
|
5408
5463
|
const updatedBaseFilters = (_a = baseFilters == null ? void 0 : baseFilters.map((f) => {
|
|
5409
5464
|
return f === filter ? { ...f, ...update } : f;
|
|
@@ -5424,6 +5479,16 @@ class AdHocFiltersVariable extends SceneObjectBase {
|
|
|
5424
5479
|
});
|
|
5425
5480
|
this.setState({ filters: updatedFilters });
|
|
5426
5481
|
}
|
|
5482
|
+
updateToMatchAll(filter) {
|
|
5483
|
+
this._updateFilter(filter, {
|
|
5484
|
+
operator: "=~",
|
|
5485
|
+
value: ".*",
|
|
5486
|
+
values: [".*"],
|
|
5487
|
+
valueLabels: ["All"],
|
|
5488
|
+
matchAllFilter: true,
|
|
5489
|
+
restorable: true
|
|
5490
|
+
});
|
|
5491
|
+
}
|
|
5427
5492
|
_removeFilter(filter) {
|
|
5428
5493
|
if (filter === this.state._wip) {
|
|
5429
5494
|
this.setState({ _wip: void 0 });
|
|
@@ -5542,7 +5607,7 @@ class AdHocFiltersVariable extends SceneObjectBase {
|
|
|
5542
5607
|
const timeRange = sceneGraph.getTimeRange(this).state.value;
|
|
5543
5608
|
const queries = this.state.useQueriesAsFilterForOptions ? getQueriesForVariables(this) : void 0;
|
|
5544
5609
|
let scopes = (_e = this._scopesBridge) == null ? void 0 : _e.getValue();
|
|
5545
|
-
if (filter.origin === "
|
|
5610
|
+
if (filter.origin === "scope") {
|
|
5546
5611
|
scopes = scopes == null ? void 0 : scopes.map((scope) => {
|
|
5547
5612
|
return {
|
|
5548
5613
|
...scope,
|
|
@@ -5629,6 +5694,9 @@ function toSelectableValue(input) {
|
|
|
5629
5694
|
}
|
|
5630
5695
|
return result;
|
|
5631
5696
|
}
|
|
5697
|
+
function isMatchAllFilter(filter) {
|
|
5698
|
+
return filter.operator === "=~" && filter.value === ".*";
|
|
5699
|
+
}
|
|
5632
5700
|
function isFilterComplete(filter) {
|
|
5633
5701
|
return filter.key !== "" && filter.operator !== "" && filter.value !== "";
|
|
5634
5702
|
}
|
|
@@ -13896,7 +13964,6 @@ exports.EmbeddedScene = EmbeddedScene;
|
|
|
13896
13964
|
exports.FieldConfigBuilder = FieldConfigBuilder;
|
|
13897
13965
|
exports.FieldConfigBuilders = FieldConfigBuilders;
|
|
13898
13966
|
exports.FieldConfigOverridesBuilder = FieldConfigOverridesBuilder;
|
|
13899
|
-
exports.FilterOrigin = FilterOrigin;
|
|
13900
13967
|
exports.GroupByVariable = GroupByVariable;
|
|
13901
13968
|
exports.IntervalVariable = IntervalVariable;
|
|
13902
13969
|
exports.LazyLoader = LazyLoader;
|