@grafana/scenes 6.4.0--canary.1062.13918599453.0 → 6.4.1
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 +24 -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 +16 -112
- 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 -2
- package/dist/index.js +42 -196
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -878,7 +878,6 @@ interface AdHocFilterWithLabels<M extends Record<string, any> = {}> extends AdHo
|
|
|
878
878
|
hidden?: boolean;
|
|
879
879
|
meta?: M;
|
|
880
880
|
origin?: FilterOrigin;
|
|
881
|
-
originalValue?: string[];
|
|
882
881
|
}
|
|
883
882
|
type AdHocControlsLayout = ControlsLayout | 'combobox';
|
|
884
883
|
declare enum FilterOrigin {
|
|
@@ -1000,7 +999,6 @@ declare class AdHocFiltersVariable extends SceneObjectBase<AdHocFiltersVariableS
|
|
|
1000
999
|
skipPublish?: boolean;
|
|
1001
1000
|
forcePublish?: boolean;
|
|
1002
1001
|
}): void;
|
|
1003
|
-
restoreOriginalFilter(filter: AdHocFilterWithLabels): void;
|
|
1004
1002
|
getValue(): VariableValue | undefined;
|
|
1005
1003
|
_updateFilter(filter: AdHocFilterWithLabels, update: Partial<AdHocFilterWithLabels>): void;
|
|
1006
1004
|
_removeFilter(filter: AdHocFilterWithLabels): void;
|
package/dist/index.js
CHANGED
|
@@ -3972,44 +3972,19 @@ class AdHocFiltersVariableUrlSyncHandler {
|
|
|
3972
3972
|
}
|
|
3973
3973
|
getUrlState() {
|
|
3974
3974
|
const filters = this._variable.state.filters;
|
|
3975
|
-
|
|
3976
|
-
let value = [];
|
|
3977
|
-
if (filters.length === 0 && (baseFilters == null ? void 0 : baseFilters.length) === 0) {
|
|
3975
|
+
if (filters.length === 0) {
|
|
3978
3976
|
return { [this.getKey()]: [""] };
|
|
3979
3977
|
}
|
|
3980
|
-
|
|
3981
|
-
|
|
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
|
-
};
|
|
3978
|
+
const value = filters.filter(isFilterComplete).filter((filter) => !filter.hidden).map((filter) => toArray(filter).map(escapeUrlPipeDelimiters).join("|"));
|
|
3979
|
+
return { [this.getKey()]: value };
|
|
4000
3980
|
}
|
|
4001
3981
|
updateFromUrl(values) {
|
|
4002
3982
|
const urlValue = values[this.getKey()];
|
|
4003
3983
|
if (urlValue == null) {
|
|
4004
3984
|
return;
|
|
4005
3985
|
}
|
|
4006
|
-
|
|
4007
|
-
|
|
4008
|
-
this._variable.setState({
|
|
4009
|
-
filters: filters.filter((f) => !f.origin),
|
|
4010
|
-
baseFilters: filters.filter((f) => f.origin)
|
|
4011
|
-
});
|
|
4012
|
-
}
|
|
3986
|
+
const filters = deserializeUrlToFilters(urlValue);
|
|
3987
|
+
this._variable.setState({ filters });
|
|
4013
3988
|
}
|
|
4014
3989
|
}
|
|
4015
3990
|
function deserializeUrlToFilters(value) {
|
|
@@ -4034,12 +4009,10 @@ function toArray(filter) {
|
|
|
4034
4009
|
return result;
|
|
4035
4010
|
}
|
|
4036
4011
|
function toFilter(urlValue) {
|
|
4037
|
-
var _a;
|
|
4038
4012
|
if (typeof urlValue !== "string" || urlValue.length === 0) {
|
|
4039
4013
|
return null;
|
|
4040
4014
|
}
|
|
4041
|
-
const [
|
|
4042
|
-
const [key, keyLabel, operator, _operatorLabel, ...values] = filter.split("|").reduce((acc, v) => {
|
|
4015
|
+
const [key, keyLabel, operator, _operatorLabel, ...values] = urlValue.split("|").reduce((acc, v) => {
|
|
4043
4016
|
const [key2, label] = v.split(",");
|
|
4044
4017
|
acc.push(key2, label != null ? label : key2);
|
|
4045
4018
|
return acc;
|
|
@@ -4051,14 +4024,9 @@ function toFilter(urlValue) {
|
|
|
4051
4024
|
value: values[0],
|
|
4052
4025
|
values: isMultiValueOperator(operator) ? values.filter((_, index) => index % 2 === 0) : void 0,
|
|
4053
4026
|
valueLabels: values.filter((_, index) => index % 2 === 1),
|
|
4054
|
-
condition: ""
|
|
4055
|
-
origin: isFilterOrigin(origin) ? origin : void 0,
|
|
4056
|
-
originalValue: originalValues && originalValues.length ? (_a = originalValues.split("|")) != null ? _a : [originalValues] : void 0
|
|
4027
|
+
condition: ""
|
|
4057
4028
|
};
|
|
4058
4029
|
}
|
|
4059
|
-
function isFilterOrigin(value) {
|
|
4060
|
-
return value === FilterOrigin.Scopes || value === FilterOrigin.Dashboards;
|
|
4061
|
-
}
|
|
4062
4030
|
function isFilter(filter) {
|
|
4063
4031
|
return filter !== null && typeof filter.key === "string" && typeof filter.value === "string";
|
|
4064
4032
|
}
|
|
@@ -4720,9 +4688,6 @@ const AdHocCombobox = React.forwardRef(function AdHocCombobox2({ filter, model,
|
|
|
4720
4688
|
return;
|
|
4721
4689
|
}
|
|
4722
4690
|
}
|
|
4723
|
-
if (filter == null ? void 0 : filter.origin) {
|
|
4724
|
-
return;
|
|
4725
|
-
}
|
|
4726
4691
|
setInputType("operator");
|
|
4727
4692
|
return;
|
|
4728
4693
|
}
|
|
@@ -4909,36 +4874,25 @@ const AdHocCombobox = React.forwardRef(function AdHocCombobox2({ filter, model,
|
|
|
4909
4874
|
className: styles.pillWrapper
|
|
4910
4875
|
}, (filter == null ? void 0 : filter.key) ? /* @__PURE__ */ React__default["default"].createElement("div", {
|
|
4911
4876
|
className: css.cx(styles.basePill, styles.keyPill)
|
|
4912
|
-
}, keyLabel) : null, (filter == null ? void 0 : filter.key) && (filter == null ? void 0 : filter.operator) && filterInputType !== "operator" ? /* @__PURE__ */ React__default["default"].createElement("div",
|
|
4877
|
+
}, keyLabel) : null, (filter == null ? void 0 : filter.key) && (filter == null ? void 0 : filter.operator) && filterInputType !== "operator" ? /* @__PURE__ */ React__default["default"].createElement("div", {
|
|
4913
4878
|
id: operatorIdentifier,
|
|
4914
|
-
className: css.cx(
|
|
4915
|
-
|
|
4916
|
-
!filter.origin && styles.operatorPill,
|
|
4917
|
-
filter.origin && styles.keyPill,
|
|
4918
|
-
operatorIdentifier
|
|
4919
|
-
),
|
|
4879
|
+
className: css.cx(styles.basePill, styles.operatorPill, operatorIdentifier),
|
|
4880
|
+
role: "button",
|
|
4920
4881
|
"aria-label": "Edit filter operator",
|
|
4921
|
-
tabIndex:
|
|
4882
|
+
tabIndex: 0,
|
|
4922
4883
|
onClick: (event) => {
|
|
4923
|
-
if (filter.origin) {
|
|
4924
|
-
handleChangeViewMode == null ? void 0 : handleChangeViewMode();
|
|
4925
|
-
return;
|
|
4926
|
-
}
|
|
4927
4884
|
event.stopPropagation();
|
|
4928
4885
|
setInputValue("");
|
|
4929
4886
|
switchInputType("operator", setInputType, void 0, refs.domReference.current);
|
|
4930
4887
|
},
|
|
4931
4888
|
onKeyDown: (event) => {
|
|
4932
|
-
if (filter.origin) {
|
|
4933
|
-
return;
|
|
4934
|
-
}
|
|
4935
4889
|
handleShiftTabInput(event, hasMultiValueOperator);
|
|
4936
4890
|
if (event.key === "Enter") {
|
|
4937
4891
|
setInputValue("");
|
|
4938
4892
|
switchInputType("operator", setInputType, void 0, refs.domReference.current);
|
|
4939
4893
|
}
|
|
4940
4894
|
}
|
|
4941
|
-
},
|
|
4895
|
+
}, filter.operator) : null, /* @__PURE__ */ React__default["default"].createElement("div", {
|
|
4942
4896
|
ref: multiValuePillWrapperRef
|
|
4943
4897
|
}), isMultiValueEdit ? filterMultiValues.map((item, i) => /* @__PURE__ */ React__default["default"].createElement(MultiValuePill, {
|
|
4944
4898
|
key: `${item.value}-${i}`,
|
|
@@ -5185,13 +5139,13 @@ function AdHocFilterPill({ filter, model, readOnly, focusOnWipInputRef }) {
|
|
|
5185
5139
|
const handleChangeViewMode = React.useCallback(
|
|
5186
5140
|
(event, shouldFocusOnPillWrapperOverride) => {
|
|
5187
5141
|
event == null ? void 0 : event.stopPropagation();
|
|
5188
|
-
if (readOnly) {
|
|
5142
|
+
if (readOnly || filter.origin) {
|
|
5189
5143
|
return;
|
|
5190
5144
|
}
|
|
5191
5145
|
setShouldFocusOnPillWrapper(shouldFocusOnPillWrapperOverride != null ? shouldFocusOnPillWrapperOverride : !viewMode);
|
|
5192
5146
|
setViewMode(!viewMode);
|
|
5193
5147
|
},
|
|
5194
|
-
[readOnly, viewMode]
|
|
5148
|
+
[readOnly, viewMode, filter.origin]
|
|
5195
5149
|
);
|
|
5196
5150
|
React.useEffect(() => {
|
|
5197
5151
|
var _a2;
|
|
@@ -5255,20 +5209,11 @@ function AdHocFilterPill({ filter, model, readOnly, focusOnWipInputRef }) {
|
|
|
5255
5209
|
size: "md",
|
|
5256
5210
|
className: styles.pillIcon,
|
|
5257
5211
|
tooltip: `Remove filter with key ${keyLabel}`
|
|
5258
|
-
}) : null, filter.origin &&
|
|
5212
|
+
}) : null, filter.origin && /* @__PURE__ */ React__default["default"].createElement(ui.IconButton, {
|
|
5259
5213
|
name: "info-circle",
|
|
5260
5214
|
size: "md",
|
|
5261
5215
|
className: styles.pillIcon,
|
|
5262
5216
|
tooltip: `This is a ${filter.origin} injected filter`
|
|
5263
|
-
}), filter.origin && filter.originalValue && /* @__PURE__ */ React__default["default"].createElement(ui.IconButton, {
|
|
5264
|
-
onClick: (e) => {
|
|
5265
|
-
e.stopPropagation();
|
|
5266
|
-
model.restoreOriginalFilter(filter);
|
|
5267
|
-
},
|
|
5268
|
-
name: "history",
|
|
5269
|
-
size: "md",
|
|
5270
|
-
className: styles.pillIcon,
|
|
5271
|
-
tooltip: `Restore filter to its original value`
|
|
5272
5217
|
}));
|
|
5273
5218
|
}
|
|
5274
5219
|
return /* @__PURE__ */ React__default["default"].createElement(AdHocCombobox, {
|
|
@@ -5533,17 +5478,14 @@ const OPERATORS = [
|
|
|
5533
5478
|
];
|
|
5534
5479
|
class AdHocFiltersVariable extends SceneObjectBase {
|
|
5535
5480
|
constructor(state) {
|
|
5536
|
-
var _a, _b
|
|
5481
|
+
var _a, _b;
|
|
5537
5482
|
super(__spreadValues$z({
|
|
5538
5483
|
type: "adhoc",
|
|
5539
5484
|
name: (_a = state.name) != null ? _a : "Filters",
|
|
5540
5485
|
filters: [],
|
|
5541
5486
|
datasource: null,
|
|
5542
5487
|
applyMode: "auto",
|
|
5543
|
-
filterExpression: (
|
|
5544
|
-
...(_c = (_b = state.baseFilters) == null ? void 0 : _b.filter((filter) => filter.origin)) != null ? _c : [],
|
|
5545
|
-
...(_d = state.filters) != null ? _d : []
|
|
5546
|
-
])
|
|
5488
|
+
filterExpression: (_b = state.filterExpression) != null ? _b : renderExpression(state.expressionBuilder, state.filters)
|
|
5547
5489
|
}, state));
|
|
5548
5490
|
this._scopedVars = { __sceneObject: wrapInSafeSerializableSceneObject(this) };
|
|
5549
5491
|
this._dataSourceSrv = runtime.getDataSourceSrv();
|
|
@@ -5556,38 +5498,18 @@ class AdHocFiltersVariable extends SceneObjectBase {
|
|
|
5556
5498
|
this._updateScopesFilters(scopes);
|
|
5557
5499
|
}
|
|
5558
5500
|
const sub = (_b = this._scopesBridge) == null ? void 0 : _b.subscribeToValue((n, _) => {
|
|
5559
|
-
this._updateScopesFilters(n
|
|
5501
|
+
this._updateScopesFilters(n);
|
|
5560
5502
|
});
|
|
5561
5503
|
return () => {
|
|
5562
5504
|
sub == null ? void 0 : sub.unsubscribe();
|
|
5563
5505
|
};
|
|
5564
5506
|
};
|
|
5565
|
-
this._updateScopesFilters = (scopes
|
|
5566
|
-
var _a;
|
|
5567
|
-
const
|
|
5568
|
-
|
|
5569
|
-
|
|
5570
|
-
|
|
5571
|
-
scopeInjectedFilters.push(filter);
|
|
5572
|
-
} else {
|
|
5573
|
-
remainingFilters.push(filter);
|
|
5574
|
-
}
|
|
5575
|
-
});
|
|
5576
|
-
const scopeFilters = getAdHocFiltersFromScopes(scopes);
|
|
5577
|
-
let finalFilters = scopeFilters;
|
|
5578
|
-
if (!overwrite) {
|
|
5579
|
-
const editedScopeFilters = scopeInjectedFilters.filter((filter) => {
|
|
5580
|
-
var _a2;
|
|
5581
|
-
return (_a2 = filter.originalValue) == null ? void 0 : _a2.length;
|
|
5582
|
-
});
|
|
5583
|
-
const editedScopeFilterKeys = editedScopeFilters.map((filter) => filter.key);
|
|
5584
|
-
const scopeFilterKeys = scopeFilters.map((filter) => filter.key);
|
|
5585
|
-
finalFilters = [
|
|
5586
|
-
...editedScopeFilters.filter((filter) => scopeFilterKeys.includes(filter.key)),
|
|
5587
|
-
...scopeFilters.filter((filter) => !editedScopeFilterKeys.includes(filter.key))
|
|
5588
|
-
];
|
|
5589
|
-
}
|
|
5590
|
-
const newFilters = [...remainingFilters, ...finalFilters];
|
|
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
|
+
];
|
|
5591
5513
|
this.setState({ baseFilters: newFilters });
|
|
5592
5514
|
};
|
|
5593
5515
|
if (this.state.applyMode === "auto") {
|
|
@@ -5596,15 +5518,9 @@ class AdHocFiltersVariable extends SceneObjectBase {
|
|
|
5596
5518
|
this.addActivationHandler(this._activationHandler);
|
|
5597
5519
|
}
|
|
5598
5520
|
setState(update) {
|
|
5599
|
-
var _a, _b, _c;
|
|
5600
5521
|
let filterExpressionChanged = false;
|
|
5601
|
-
if (
|
|
5602
|
-
|
|
5603
|
-
const baseFilters = (_b = update.baseFilters) != null ? _b : this.state.baseFilters;
|
|
5604
|
-
update.filterExpression = renderExpression(this.state.expressionBuilder, [
|
|
5605
|
-
...(_c = baseFilters == null ? void 0 : baseFilters.filter((filter) => filter.origin)) != null ? _c : [],
|
|
5606
|
-
...filters != null ? filters : []
|
|
5607
|
-
]);
|
|
5522
|
+
if (update.filters && update.filters !== this.state.filters && !update.filterExpression) {
|
|
5523
|
+
update.filterExpression = renderExpression(this.state.expressionBuilder, update.filters);
|
|
5608
5524
|
filterExpressionChanged = update.filterExpression !== this.state.filterExpression;
|
|
5609
5525
|
}
|
|
5610
5526
|
super.setState(update);
|
|
@@ -5613,14 +5529,10 @@ class AdHocFiltersVariable extends SceneObjectBase {
|
|
|
5613
5529
|
}
|
|
5614
5530
|
}
|
|
5615
5531
|
updateFilters(filters, options) {
|
|
5616
|
-
var _a, _b;
|
|
5617
5532
|
let filterExpressionChanged = false;
|
|
5618
5533
|
let filterExpression = void 0;
|
|
5619
5534
|
if (filters && filters !== this.state.filters) {
|
|
5620
|
-
filterExpression = renderExpression(this.state.expressionBuilder,
|
|
5621
|
-
...(_b = (_a = this.state.baseFilters) == null ? void 0 : _a.filter((filter) => filter.origin)) != null ? _b : [],
|
|
5622
|
-
...filters
|
|
5623
|
-
]);
|
|
5535
|
+
filterExpression = renderExpression(this.state.expressionBuilder, filters);
|
|
5624
5536
|
filterExpressionChanged = filterExpression !== this.state.filterExpression;
|
|
5625
5537
|
}
|
|
5626
5538
|
super.setState({
|
|
@@ -5631,40 +5543,11 @@ class AdHocFiltersVariable extends SceneObjectBase {
|
|
|
5631
5543
|
this.publishEvent(new SceneVariableValueChangedEvent(this), true);
|
|
5632
5544
|
}
|
|
5633
5545
|
}
|
|
5634
|
-
restoreOriginalFilter(filter) {
|
|
5635
|
-
var _a;
|
|
5636
|
-
const original = {
|
|
5637
|
-
originalValue: void 0
|
|
5638
|
-
};
|
|
5639
|
-
if ((_a = filter.originalValue) == null ? void 0 : _a.length) {
|
|
5640
|
-
original.value = filter.originalValue[0];
|
|
5641
|
-
original.values = filter.originalValue;
|
|
5642
|
-
original.valueLabels = filter.originalValue;
|
|
5643
|
-
}
|
|
5644
|
-
this._updateFilter(filter, original);
|
|
5645
|
-
}
|
|
5646
5546
|
getValue() {
|
|
5647
5547
|
return this.state.filterExpression;
|
|
5648
5548
|
}
|
|
5649
5549
|
_updateFilter(filter, update) {
|
|
5650
|
-
|
|
5651
|
-
const { baseFilters, filters, _wip } = this.state;
|
|
5652
|
-
if (filter.origin) {
|
|
5653
|
-
const currentValues = filter.values ? filter.values : [filter.value];
|
|
5654
|
-
const updateValues = update.values || (update.value ? [update.value] : void 0);
|
|
5655
|
-
const originalValueOverride = update.hasOwnProperty("originalValue");
|
|
5656
|
-
if (!originalValueOverride && updateValues && !filter.originalValue && !lodash.isEqual(currentValues, updateValues)) {
|
|
5657
|
-
update.originalValue = currentValues;
|
|
5658
|
-
}
|
|
5659
|
-
if (!originalValueOverride && lodash.isEqual(updateValues, filter.originalValue)) {
|
|
5660
|
-
update.originalValue = void 0;
|
|
5661
|
-
}
|
|
5662
|
-
const updatedBaseFilters = (_a = baseFilters == null ? void 0 : baseFilters.map((f) => {
|
|
5663
|
-
return f === filter ? __spreadValues$z(__spreadValues$z({}, f), update) : f;
|
|
5664
|
-
})) != null ? _a : [];
|
|
5665
|
-
this.setState({ baseFilters: updatedBaseFilters });
|
|
5666
|
-
return;
|
|
5667
|
-
}
|
|
5550
|
+
const { filters, _wip } = this.state;
|
|
5668
5551
|
if (filter === _wip) {
|
|
5669
5552
|
if ("value" in update && update["value"] !== "") {
|
|
5670
5553
|
this.setState({ filters: [...filters, __spreadValues$z(__spreadValues$z({}, _wip), update)], _wip: void 0 });
|
|
@@ -5692,7 +5575,6 @@ class AdHocFiltersVariable extends SceneObjectBase {
|
|
|
5692
5575
|
}
|
|
5693
5576
|
}
|
|
5694
5577
|
_handleComboboxBackspace(filter) {
|
|
5695
|
-
var _a;
|
|
5696
5578
|
if (this.state.filters.length) {
|
|
5697
5579
|
let filterToForceIndex = this.state.filters.length - 1;
|
|
5698
5580
|
if (filter !== this.state._wip) {
|
|
@@ -5714,27 +5596,6 @@ class AdHocFiltersVariable extends SceneObjectBase {
|
|
|
5714
5596
|
return [...acc, f];
|
|
5715
5597
|
}, [])
|
|
5716
5598
|
});
|
|
5717
|
-
} else if ((_a = this.state.baseFilters) == null ? void 0 : _a.length) {
|
|
5718
|
-
let filterToForceIndex = this.state.baseFilters.length - 1;
|
|
5719
|
-
if (filter !== this.state._wip) {
|
|
5720
|
-
filterToForceIndex = -1;
|
|
5721
|
-
}
|
|
5722
|
-
this.setState({
|
|
5723
|
-
baseFilters: this.state.baseFilters.reduce((acc, f, index) => {
|
|
5724
|
-
if (index === filterToForceIndex) {
|
|
5725
|
-
return [
|
|
5726
|
-
...acc,
|
|
5727
|
-
__spreadProps$n(__spreadValues$z({}, f), {
|
|
5728
|
-
forceEdit: true
|
|
5729
|
-
})
|
|
5730
|
-
];
|
|
5731
|
-
}
|
|
5732
|
-
if (f === filter) {
|
|
5733
|
-
return acc;
|
|
5734
|
-
}
|
|
5735
|
-
return [...acc, f];
|
|
5736
|
-
}, [])
|
|
5737
|
-
});
|
|
5738
5599
|
}
|
|
5739
5600
|
}
|
|
5740
5601
|
async _getKeys(currentKey) {
|
|
@@ -5773,7 +5634,7 @@ class AdHocFiltersVariable extends SceneObjectBase {
|
|
|
5773
5634
|
return keys.map(toSelectableValue);
|
|
5774
5635
|
}
|
|
5775
5636
|
async _getValuesFor(filter) {
|
|
5776
|
-
var _a, _b, _c, _d
|
|
5637
|
+
var _a, _b, _c, _d;
|
|
5777
5638
|
const override = await ((_b = (_a = this.state).getTagValuesProvider) == null ? void 0 : _b.call(_a, this, filter));
|
|
5778
5639
|
if (override && override.replace) {
|
|
5779
5640
|
return dataFromResponse(override.values).map(toSelectableValue);
|
|
@@ -5782,26 +5643,15 @@ class AdHocFiltersVariable extends SceneObjectBase {
|
|
|
5782
5643
|
if (!ds || !ds.getTagValues) {
|
|
5783
5644
|
return [];
|
|
5784
5645
|
}
|
|
5785
|
-
const
|
|
5786
|
-
const otherFilters = this.state.filters.filter((f) => f.key !== filter.key).concat(filteredBaseFilters);
|
|
5646
|
+
const otherFilters = this.state.filters.filter((f) => f.key !== filter.key).concat((_c = this.state.baseFilters) != null ? _c : []);
|
|
5787
5647
|
const timeRange = sceneGraph.getTimeRange(this).state.value;
|
|
5788
5648
|
const queries = this.state.useQueriesAsFilterForOptions ? getQueriesForVariables(this) : void 0;
|
|
5789
|
-
let scopes = (_e = this._scopesBridge) == null ? void 0 : _e.getValue();
|
|
5790
|
-
if (filter.origin === "scopes" /* Scopes */) {
|
|
5791
|
-
scopes = scopes == null ? void 0 : scopes.map((scope) => {
|
|
5792
|
-
return __spreadProps$n(__spreadValues$z({}, scope), {
|
|
5793
|
-
spec: __spreadProps$n(__spreadValues$z({}, scope.spec), {
|
|
5794
|
-
filters: scope.spec.filters.filter((f) => f.key !== filter.key)
|
|
5795
|
-
})
|
|
5796
|
-
});
|
|
5797
|
-
});
|
|
5798
|
-
}
|
|
5799
5649
|
const response = await ds.getTagValues(__spreadValues$z({
|
|
5800
5650
|
key: filter.key,
|
|
5801
5651
|
filters: otherFilters,
|
|
5802
5652
|
timeRange,
|
|
5803
5653
|
queries,
|
|
5804
|
-
scopes
|
|
5654
|
+
scopes: (_d = this._scopesBridge) == null ? void 0 : _d.getValue()
|
|
5805
5655
|
}, getEnrichedFiltersRequest(this)));
|
|
5806
5656
|
if (responseHasError(response)) {
|
|
5807
5657
|
this.setState({ error: response.error.message });
|
|
@@ -6520,15 +6370,6 @@ function escapeUrlCommaDelimiters(value) {
|
|
|
6520
6370
|
}
|
|
6521
6371
|
return /,/g[Symbol.replace](value, "__gfc__");
|
|
6522
6372
|
}
|
|
6523
|
-
function escapeUrlHashDelimiters(value) {
|
|
6524
|
-
if (value === null || value === void 0) {
|
|
6525
|
-
return "";
|
|
6526
|
-
}
|
|
6527
|
-
return /#/g[Symbol.replace](value, "__gfh__");
|
|
6528
|
-
}
|
|
6529
|
-
function escapeInjectedFilterUrlDelimiters(value) {
|
|
6530
|
-
return escapeUrlHashDelimiters(escapeUrlPipeDelimiters(value));
|
|
6531
|
-
}
|
|
6532
6373
|
function escapeURLDelimiters(value) {
|
|
6533
6374
|
return escapeUrlCommaDelimiters(escapeUrlPipeDelimiters(value));
|
|
6534
6375
|
}
|
|
@@ -6538,7 +6379,6 @@ function unescapeUrlDelimiters(value) {
|
|
|
6538
6379
|
}
|
|
6539
6380
|
value = /__gfp__/g[Symbol.replace](value, "|");
|
|
6540
6381
|
value = /__gfc__/g[Symbol.replace](value, ",");
|
|
6541
|
-
value = /__gfh__/g[Symbol.replace](value, "#");
|
|
6542
6382
|
return value;
|
|
6543
6383
|
}
|
|
6544
6384
|
function toUrlCommaDelimitedString(key, label) {
|
|
@@ -10984,7 +10824,11 @@ async function getExploreURL(data, model, timeRange, transform) {
|
|
|
10984
10824
|
return (_a2 = transform == null ? void 0 : transform(q)) != null ? _a2 : q;
|
|
10985
10825
|
});
|
|
10986
10826
|
const queries = interpolatedQueries != null ? interpolatedQueries : [];
|
|
10987
|
-
const
|
|
10827
|
+
const hasMixedDatasources = new Set(queries.map((q) => {
|
|
10828
|
+
var _a2;
|
|
10829
|
+
return (_a2 = q.datasource) == null ? void 0 : _a2.uid;
|
|
10830
|
+
})).size > 1;
|
|
10831
|
+
let datasource = hasMixedDatasources ? "-- Mixed --" : (_d = (_c = queries.find((query) => {
|
|
10988
10832
|
var _a2;
|
|
10989
10833
|
return !!((_a2 = query.datasource) == null ? void 0 : _a2.uid);
|
|
10990
10834
|
})) == null ? void 0 : _c.datasource) == null ? void 0 : _d.uid;
|
|
@@ -11014,10 +10858,12 @@ function VizPanelExploreButtonComponent({ model }) {
|
|
|
11014
10858
|
const { options } = model.useState();
|
|
11015
10859
|
const { data } = sceneGraph.getData(model).useState();
|
|
11016
10860
|
const { from, to } = sceneGraph.getTimeRange(model).useState();
|
|
11017
|
-
const { value: exploreLink } = reactUse.useAsync(
|
|
11018
|
-
|
|
11019
|
-
|
|
11020
|
-
|
|
10861
|
+
const { value: exploreLink } = reactUse.useAsync(async () => {
|
|
10862
|
+
if (!data) {
|
|
10863
|
+
return "";
|
|
10864
|
+
}
|
|
10865
|
+
return getExploreURL(data, model, { from, to }, options.transform);
|
|
10866
|
+
}, [data, model, from, to]);
|
|
11021
10867
|
const returnToPrevious = runtime.useReturnToPrevious();
|
|
11022
10868
|
if (exploreLink) {
|
|
11023
10869
|
return /* @__PURE__ */ React__default["default"].createElement(ui.LinkButton, {
|