@grafana/scenes 6.18.2--canary.1144.15561582453.0 → 6.19.0--canary.1132.15579595251.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/querying/SceneQueryRunner.js +4 -6
- package/dist/esm/querying/SceneQueryRunner.js.map +1 -1
- package/dist/esm/querying/layers/annotations/standardAnnotationQuery.js +0 -2
- package/dist/esm/querying/layers/annotations/standardAnnotationQuery.js.map +1 -1
- package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js +2 -2
- package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js.map +1 -1
- package/dist/esm/variables/adhoc/AdHocFiltersVariable.js +43 -51
- package/dist/esm/variables/adhoc/AdHocFiltersVariable.js.map +1 -1
- package/dist/esm/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js +32 -28
- package/dist/esm/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js.map +1 -1
- package/dist/esm/variables/utils.js +2 -2
- package/dist/esm/variables/utils.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.js +80 -87
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
@@ -3957,20 +3957,20 @@ class AdHocFiltersVariableUrlSyncHandler {
|
|
3957
3957
|
}
|
3958
3958
|
getUrlState() {
|
3959
3959
|
const filters = this._variable.state.filters;
|
3960
|
-
const
|
3960
|
+
const originFilters = this._variable.state.originFilters;
|
3961
3961
|
let value = [];
|
3962
|
-
if (filters.length === 0 && (
|
3962
|
+
if (filters.length === 0 && (originFilters == null ? void 0 : originFilters.length) === 0) {
|
3963
3963
|
return { [this.getKey()]: [""] };
|
3964
3964
|
}
|
3965
3965
|
if (filters.length) {
|
3966
3966
|
value.push(
|
3967
|
-
...filters.filter(isFilterComplete).filter((filter) => !filter.hidden).map((filter) => toArray(filter).map(
|
3967
|
+
...filters.filter(isFilterComplete).filter((filter) => !filter.hidden).map((filter) => toArray(filter).map(escapeOriginFilterUrlDelimiters).join("|"))
|
3968
3968
|
);
|
3969
3969
|
}
|
3970
|
-
if (
|
3970
|
+
if (originFilters == null ? void 0 : originFilters.length) {
|
3971
3971
|
value.push(
|
3972
|
-
...
|
3973
|
-
(filter) => toArray(filter).map(
|
3972
|
+
...originFilters == null ? void 0 : originFilters.filter(isFilterComplete).filter((filter) => !filter.hidden && filter.origin && filter.restorable).map(
|
3973
|
+
(filter) => toArray(filter).map(escapeOriginFilterUrlDelimiters).join("|").concat(`#${filter.origin}#restorable`)
|
3974
3974
|
)
|
3975
3975
|
);
|
3976
3976
|
}
|
@@ -3984,31 +3984,35 @@ class AdHocFiltersVariableUrlSyncHandler {
|
|
3984
3984
|
return;
|
3985
3985
|
}
|
3986
3986
|
const filters = deserializeUrlToFilters(urlValue);
|
3987
|
-
const
|
3988
|
-
for (let i = 0; i < filters.length; i++) {
|
3989
|
-
const foundBaseFilterIndex = baseFilters.findIndex((f) => f.key === filters[i].key);
|
3990
|
-
if (foundBaseFilterIndex > -1) {
|
3991
|
-
if (!filters[i].origin && baseFilters[foundBaseFilterIndex].origin === "dashboard") {
|
3992
|
-
filters[i].origin = "dashboard";
|
3993
|
-
filters[i].restorable = true;
|
3994
|
-
}
|
3995
|
-
if (isMatchAllFilter(filters[i])) {
|
3996
|
-
filters[i].matchAllFilter = true;
|
3997
|
-
}
|
3998
|
-
baseFilters[foundBaseFilterIndex] = filters[i];
|
3999
|
-
} else if (filters[i].origin === "dashboard") {
|
4000
|
-
delete filters[i].origin;
|
4001
|
-
delete filters[i].restorable;
|
4002
|
-
} else if (foundBaseFilterIndex === -1 && filters[i].origin === "scope" && filters[i].restorable) {
|
4003
|
-
baseFilters.push(filters[i]);
|
4004
|
-
}
|
4005
|
-
}
|
3987
|
+
const originFilters = updateOriginFilters([...this._variable.state.originFilters || []], filters);
|
4006
3988
|
this._variable.setState({
|
4007
3989
|
filters: filters.filter((f) => !f.origin),
|
4008
|
-
|
3990
|
+
originFilters
|
4009
3991
|
});
|
4010
3992
|
}
|
4011
3993
|
}
|
3994
|
+
function updateOriginFilters(prevOriginFilters, filters) {
|
3995
|
+
const updatedOriginFilters = [...prevOriginFilters];
|
3996
|
+
for (let i = 0; i < filters.length; i++) {
|
3997
|
+
const foundOriginFilterIndex = prevOriginFilters.findIndex((f) => f.key === filters[i].key);
|
3998
|
+
if (foundOriginFilterIndex > -1) {
|
3999
|
+
if (!filters[i].origin && prevOriginFilters[foundOriginFilterIndex].origin === "dashboard") {
|
4000
|
+
filters[i].origin = "dashboard";
|
4001
|
+
filters[i].restorable = true;
|
4002
|
+
}
|
4003
|
+
if (isMatchAllFilter(filters[i])) {
|
4004
|
+
filters[i].matchAllFilter = true;
|
4005
|
+
}
|
4006
|
+
updatedOriginFilters[foundOriginFilterIndex] = filters[i];
|
4007
|
+
} else if (filters[i].origin === "dashboard") {
|
4008
|
+
delete filters[i].origin;
|
4009
|
+
delete filters[i].restorable;
|
4010
|
+
} else if (foundOriginFilterIndex === -1 && filters[i].origin === "scope" && filters[i].restorable) {
|
4011
|
+
updatedOriginFilters.push(filters[i]);
|
4012
|
+
}
|
4013
|
+
}
|
4014
|
+
return updatedOriginFilters;
|
4015
|
+
}
|
4012
4016
|
function deserializeUrlToFilters(value) {
|
4013
4017
|
if (Array.isArray(value)) {
|
4014
4018
|
const values = value;
|
@@ -5336,7 +5340,7 @@ const AdHocFiltersAlwaysWipCombobox = React.forwardRef(function AdHocFiltersAlwa
|
|
5336
5340
|
});
|
5337
5341
|
|
5338
5342
|
const AdHocFiltersComboboxRenderer = React.memo(function AdHocFiltersComboboxRenderer2({ model }) {
|
5339
|
-
const {
|
5343
|
+
const { originFilters, filters, readOnly } = model.useState();
|
5340
5344
|
const styles = ui.useStyles2(getStyles$a);
|
5341
5345
|
const focusOnWipInputRef = React.useRef();
|
5342
5346
|
return /* @__PURE__ */ React__default.default.createElement(
|
@@ -5349,7 +5353,7 @@ const AdHocFiltersComboboxRenderer = React.memo(function AdHocFiltersComboboxRen
|
|
5349
5353
|
}
|
5350
5354
|
},
|
5351
5355
|
/* @__PURE__ */ React__default.default.createElement(ui.Icon, { name: "filter", className: styles.filterIcon, size: "lg" }),
|
5352
|
-
|
5356
|
+
originFilters == null ? void 0 : originFilters.map(
|
5353
5357
|
(filter, index) => filter.origin ? /* @__PURE__ */ React__default.default.createElement(
|
5354
5358
|
AdHocFilterPill,
|
5355
5359
|
{
|
@@ -5513,17 +5517,14 @@ const OPERATORS = [
|
|
5513
5517
|
];
|
5514
5518
|
class AdHocFiltersVariable extends SceneObjectBase {
|
5515
5519
|
constructor(state) {
|
5516
|
-
var _a, _b, _c, _d, _e
|
5520
|
+
var _a, _b, _c, _d, _e;
|
5517
5521
|
super({
|
5518
5522
|
type: "adhoc",
|
5519
5523
|
name: (_a = state.name) != null ? _a : "Filters",
|
5520
5524
|
filters: [],
|
5521
5525
|
datasource: null,
|
5522
5526
|
applyMode: "auto",
|
5523
|
-
filterExpression: (
|
5524
|
-
...(_c = (_b = state.baseFilters) == null ? void 0 : _b.filter((filter) => filter.origin)) != null ? _c : [],
|
5525
|
-
...(_d = state.filters) != null ? _d : []
|
5526
|
-
]),
|
5527
|
+
filterExpression: (_d = state.filterExpression) != null ? _d : renderExpression(state.expressionBuilder, [...(_b = state.originFilters) != null ? _b : [], ...(_c = state.filters) != null ? _c : []]),
|
5527
5528
|
...state
|
5528
5529
|
});
|
5529
5530
|
this._scopedVars = { __sceneObject: wrapInSafeSerializableSceneObject(this) };
|
@@ -5532,6 +5533,7 @@ class AdHocFiltersVariable extends SceneObjectBase {
|
|
5532
5533
|
// are set on construct and used to restore a baseFilter with an origin
|
5533
5534
|
// to its original value if edited at some point
|
5534
5535
|
this._originalValues = /* @__PURE__ */ new Map();
|
5536
|
+
this._prevScopes = [];
|
5535
5537
|
/** Needed for scopes dependency */
|
5536
5538
|
this._variableDependency = new VariableDependencyConfig(this, {
|
5537
5539
|
dependsOnScopes: true,
|
@@ -5539,44 +5541,33 @@ class AdHocFiltersVariable extends SceneObjectBase {
|
|
5539
5541
|
});
|
5540
5542
|
this._urlSync = new AdHocFiltersVariableUrlSyncHandler(this);
|
5541
5543
|
this._activationHandler = () => {
|
5542
|
-
this._updateScopesFilters();
|
5543
5544
|
return () => {
|
5544
|
-
var _a
|
5545
|
-
|
5546
|
-
|
5547
|
-
|
5548
|
-
}
|
5549
|
-
|
5550
|
-
if (filter.origin === "dashboard" && filter.restorable) {
|
5551
|
-
this.restoreOriginalFilter(filter);
|
5552
|
-
}
|
5553
|
-
});
|
5554
|
-
}
|
5545
|
+
var _a;
|
5546
|
+
(_a = this.state.originFilters) == null ? void 0 : _a.forEach((filter) => {
|
5547
|
+
if (filter.restorable) {
|
5548
|
+
this.restoreOriginalFilter(filter);
|
5549
|
+
}
|
5550
|
+
});
|
5555
5551
|
};
|
5556
5552
|
};
|
5557
5553
|
if (this.state.applyMode === "auto") {
|
5558
5554
|
patchGetAdhocFilters(this);
|
5559
5555
|
}
|
5560
|
-
(
|
5556
|
+
(_e = this.state.originFilters) == null ? void 0 : _e.forEach((filter) => {
|
5561
5557
|
var _a2;
|
5562
|
-
|
5563
|
-
|
5564
|
-
|
5565
|
-
|
5566
|
-
});
|
5567
|
-
}
|
5558
|
+
this._originalValues.set(filter.key, {
|
5559
|
+
operator: filter.operator,
|
5560
|
+
value: (_a2 = filter.values) != null ? _a2 : [filter.value]
|
5561
|
+
});
|
5568
5562
|
});
|
5569
5563
|
this.addActivationHandler(this._activationHandler);
|
5570
5564
|
}
|
5571
5565
|
_updateScopesFilters() {
|
5572
5566
|
var _a, _b;
|
5573
5567
|
const scopes = sceneGraph.getScopes(this);
|
5574
|
-
if (!scopes) {
|
5575
|
-
return;
|
5576
|
-
}
|
5577
|
-
if (!scopes.length) {
|
5568
|
+
if (!scopes || !scopes.length) {
|
5578
5569
|
this.setState({
|
5579
|
-
|
5570
|
+
originFilters: (_a = this.state.originFilters) == null ? void 0 : _a.filter((filter) => filter.origin !== "scope")
|
5580
5571
|
});
|
5581
5572
|
return;
|
5582
5573
|
}
|
@@ -5594,13 +5585,18 @@ class AdHocFiltersVariable extends SceneObjectBase {
|
|
5594
5585
|
operator: scopeFilter.operator
|
5595
5586
|
});
|
5596
5587
|
});
|
5597
|
-
(_b = this.state.
|
5588
|
+
(_b = this.state.originFilters) == null ? void 0 : _b.forEach((filter) => {
|
5598
5589
|
if (filter.origin === "scope") {
|
5599
5590
|
scopeInjectedFilters.push(filter);
|
5600
5591
|
} else {
|
5601
5592
|
remainingFilters.push(filter);
|
5602
5593
|
}
|
5603
5594
|
});
|
5595
|
+
if (this._prevScopes.length) {
|
5596
|
+
this.setState({ originFilters: [...finalFilters, ...remainingFilters] });
|
5597
|
+
this._prevScopes = scopes;
|
5598
|
+
return;
|
5599
|
+
}
|
5604
5600
|
const editedScopeFilters = scopeInjectedFilters.filter((filter) => filter.restorable);
|
5605
5601
|
const editedScopeFilterKeys = editedScopeFilters.map((filter) => filter.key);
|
5606
5602
|
const scopeFilterKeys = scopeFilters.map((filter) => filter.key);
|
@@ -5608,18 +5604,16 @@ class AdHocFiltersVariable extends SceneObjectBase {
|
|
5608
5604
|
...editedScopeFilters.filter((filter) => scopeFilterKeys.includes(filter.key)),
|
5609
5605
|
...scopeFilters.filter((filter) => !editedScopeFilterKeys.includes(filter.key))
|
5610
5606
|
];
|
5611
|
-
this.setState({
|
5607
|
+
this.setState({ originFilters: [...finalFilters, ...remainingFilters] });
|
5608
|
+
this._prevScopes = scopes;
|
5612
5609
|
}
|
5613
5610
|
setState(update) {
|
5614
|
-
var _a, _b
|
5611
|
+
var _a, _b;
|
5615
5612
|
let filterExpressionChanged = false;
|
5616
|
-
if ((update.filters && update.filters !== this.state.filters || update.
|
5613
|
+
if ((update.filters && update.filters !== this.state.filters || update.originFilters && update.originFilters !== this.state.originFilters) && !update.filterExpression) {
|
5617
5614
|
const filters = (_a = update.filters) != null ? _a : this.state.filters;
|
5618
|
-
const
|
5619
|
-
update.filterExpression = renderExpression(this.state.expressionBuilder, [
|
5620
|
-
...(_c = baseFilters == null ? void 0 : baseFilters.filter((filter) => filter.origin)) != null ? _c : [],
|
5621
|
-
...filters != null ? filters : []
|
5622
|
-
]);
|
5615
|
+
const originFilters = (_b = update.originFilters) != null ? _b : this.state.originFilters;
|
5616
|
+
update.filterExpression = renderExpression(this.state.expressionBuilder, [...originFilters != null ? originFilters : [], ...filters]);
|
5623
5617
|
filterExpressionChanged = update.filterExpression !== this.state.filterExpression;
|
5624
5618
|
}
|
5625
5619
|
super.setState(update);
|
@@ -5633,12 +5627,12 @@ class AdHocFiltersVariable extends SceneObjectBase {
|
|
5633
5627
|
* allowing consumers to update the filters without triggering dependent data providers.
|
5634
5628
|
*/
|
5635
5629
|
updateFilters(filters, options) {
|
5636
|
-
var _a
|
5630
|
+
var _a;
|
5637
5631
|
let filterExpressionChanged = false;
|
5638
5632
|
let filterExpression = void 0;
|
5639
5633
|
if (filters && filters !== this.state.filters) {
|
5640
5634
|
filterExpression = renderExpression(this.state.expressionBuilder, [
|
5641
|
-
...(
|
5635
|
+
...(_a = this.state.originFilters) != null ? _a : [],
|
5642
5636
|
...filters
|
5643
5637
|
]);
|
5644
5638
|
filterExpressionChanged = filterExpression !== this.state.filterExpression;
|
@@ -5658,32 +5652,34 @@ class AdHocFiltersVariable extends SceneObjectBase {
|
|
5658
5652
|
};
|
5659
5653
|
if (filter.restorable) {
|
5660
5654
|
const originalFilter = this._originalValues.get(filter.key);
|
5655
|
+
if (!originalFilter) {
|
5656
|
+
return;
|
5657
|
+
}
|
5661
5658
|
original.value = originalFilter == null ? void 0 : originalFilter.value[0];
|
5662
5659
|
original.values = originalFilter == null ? void 0 : originalFilter.value;
|
5663
5660
|
original.valueLabels = originalFilter == null ? void 0 : originalFilter.value;
|
5664
5661
|
original.operator = originalFilter == null ? void 0 : originalFilter.operator;
|
5662
|
+
this._updateFilter(filter, original);
|
5665
5663
|
}
|
5666
|
-
this._updateFilter(filter, original);
|
5667
5664
|
}
|
5668
5665
|
getValue() {
|
5669
5666
|
return this.state.filterExpression;
|
5670
5667
|
}
|
5671
5668
|
_updateFilter(filter, update) {
|
5672
5669
|
var _a;
|
5673
|
-
const {
|
5670
|
+
const { originFilters, filters, _wip } = this.state;
|
5674
5671
|
if (filter.origin) {
|
5675
5672
|
const originalValues = this._originalValues.get(filter.key);
|
5676
5673
|
const updateValues = update.values || (update.value ? [update.value] : void 0);
|
5677
|
-
|
5678
|
-
if (!isRestorableOverride && (updateValues && !lodash.isEqual(updateValues, originalValues == null ? void 0 : originalValues.value) || update.operator && update.operator !== (originalValues == null ? void 0 : originalValues.operator))) {
|
5674
|
+
if (updateValues && !lodash.isEqual(updateValues, originalValues == null ? void 0 : originalValues.value) || update.operator && update.operator !== (originalValues == null ? void 0 : originalValues.operator)) {
|
5679
5675
|
update.restorable = true;
|
5680
5676
|
} else if (updateValues && lodash.isEqual(updateValues, originalValues == null ? void 0 : originalValues.value)) {
|
5681
5677
|
update.restorable = false;
|
5682
5678
|
}
|
5683
|
-
const
|
5679
|
+
const updatedFilters2 = (_a = originFilters == null ? void 0 : originFilters.map((f) => {
|
5684
5680
|
return f === filter ? { ...f, ...update } : f;
|
5685
5681
|
})) != null ? _a : [];
|
5686
|
-
this.setState({
|
5682
|
+
this.setState({ originFilters: updatedFilters2 });
|
5687
5683
|
return;
|
5688
5684
|
}
|
5689
5685
|
if (filter === _wip) {
|
@@ -5746,13 +5742,13 @@ class AdHocFiltersVariable extends SceneObjectBase {
|
|
5746
5742
|
return [...acc, f];
|
5747
5743
|
}, [])
|
5748
5744
|
});
|
5749
|
-
} else if ((_a = this.state.
|
5750
|
-
let filterToForceIndex = this.state.
|
5745
|
+
} else if ((_a = this.state.originFilters) == null ? void 0 : _a.length) {
|
5746
|
+
let filterToForceIndex = this.state.originFilters.length - 1;
|
5751
5747
|
if (filter !== this.state._wip) {
|
5752
5748
|
filterToForceIndex = -1;
|
5753
5749
|
}
|
5754
5750
|
this.setState({
|
5755
|
-
|
5751
|
+
originFilters: this.state.originFilters.reduce((acc, f, index) => {
|
5756
5752
|
if (index === filterToForceIndex && !f.readOnly) {
|
5757
5753
|
return [
|
5758
5754
|
...acc,
|
@@ -5822,8 +5818,8 @@ class AdHocFiltersVariable extends SceneObjectBase {
|
|
5822
5818
|
if (!ds || !ds.getTagValues) {
|
5823
5819
|
return [];
|
5824
5820
|
}
|
5825
|
-
const
|
5826
|
-
const otherFilters = this.state.filters.filter((f) => f.key !== filter.key).concat(
|
5821
|
+
const originFilters = (_d = (_c = this.state.originFilters) == null ? void 0 : _c.filter((f) => f.key !== filter.key)) != null ? _d : [];
|
5822
|
+
const otherFilters = this.state.filters.filter((f) => f.key !== filter.key).concat(originFilters);
|
5827
5823
|
const timeRange = sceneGraph.getTimeRange(this).state.value;
|
5828
5824
|
const queries = this.state.useQueriesAsFilterForOptions ? getQueriesForVariables(this) : void 0;
|
5829
5825
|
let scopes = sceneGraph.getScopes(this);
|
@@ -6307,12 +6303,10 @@ class SceneQueryRunner extends SceneObjectBase {
|
|
6307
6303
|
...getEnrichedDataRequest(this)
|
6308
6304
|
};
|
6309
6305
|
if (this._adhocFiltersVar) {
|
6310
|
-
request.filters = [
|
6311
|
-
|
6312
|
-
|
6313
|
-
|
6314
|
-
}
|
6315
|
-
request.filters = request.filters.concat(this._adhocFiltersVar.state.filters.filter(isFilterComplete));
|
6306
|
+
request.filters = [
|
6307
|
+
...(_a = this._adhocFiltersVar.state.originFilters) != null ? _a : [],
|
6308
|
+
...this._adhocFiltersVar.state.filters
|
6309
|
+
].filter(isFilterComplete);
|
6316
6310
|
}
|
6317
6311
|
if (this._groupByVar) {
|
6318
6312
|
request.groupByKeys = this._groupByVar.state.value;
|
@@ -6549,7 +6543,7 @@ function escapeUrlHashDelimiters(value) {
|
|
6549
6543
|
}
|
6550
6544
|
return /#/g[Symbol.replace](value, "__gfh__");
|
6551
6545
|
}
|
6552
|
-
function
|
6546
|
+
function escapeOriginFilterUrlDelimiters(value) {
|
6553
6547
|
return escapeUrlHashDelimiters(escapeUrlPipeDelimiters(value));
|
6554
6548
|
}
|
6555
6549
|
function escapeURLDelimiters(value) {
|
@@ -9052,7 +9046,6 @@ function executeAnnotationQuery(datasource, timeRange, query, layer) {
|
|
9052
9046
|
refId: "Anno"
|
9053
9047
|
}
|
9054
9048
|
],
|
9055
|
-
scopes: sceneGraph.getScopes(layer),
|
9056
9049
|
...getEnrichedDataRequest(layer)
|
9057
9050
|
};
|
9058
9051
|
const runRequest = runtime.getRunRequest();
|