@grafana/scenes 4.17.2--canary.714.9000579577.0 → 4.18.0--canary.724.9001989710.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/DataLayersMerger.js +46 -0
- package/dist/esm/querying/DataLayersMerger.js.map +1 -0
- package/dist/esm/querying/SceneDataLayerSet.js +4 -3
- package/dist/esm/querying/SceneDataLayerSet.js.map +1 -1
- package/dist/esm/querying/SceneQueryRunner.js +23 -8
- package/dist/esm/querying/SceneQueryRunner.js.map +1 -1
- package/dist/esm/querying/layers/SceneDataLayerBase.js +1 -1
- package/dist/esm/querying/layers/SceneDataLayerBase.js.map +1 -1
- package/dist/esm/querying/layers/annotations/AnnotationsDataLayer.js.map +1 -1
- package/dist/esm/variables/adhoc/AdHocFiltersVariable.js +2 -10
- package/dist/esm/variables/adhoc/AdHocFiltersVariable.js.map +1 -1
- package/dist/esm/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js +1 -3
- package/dist/esm/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js.map +1 -1
- package/dist/index.d.ts +3 -13
- package/dist/index.js +66 -35
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/dist/esm/querying/mergeMultipleDataLayers.js +0 -23
- package/dist/esm/querying/mergeMultipleDataLayers.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdHocFiltersVariableUrlSyncHandler.js","sources":["../../../../src/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.ts"],"sourcesContent":["import { SceneObjectUrlSyncHandler, SceneObjectUrlValue, SceneObjectUrlValues } from '../../core/types';\nimport { AdHocFiltersVariable, AdHocFilterWithLabels
|
|
1
|
+
{"version":3,"file":"AdHocFiltersVariableUrlSyncHandler.js","sources":["../../../../src/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.ts"],"sourcesContent":["import { SceneObjectUrlSyncHandler, SceneObjectUrlValue, SceneObjectUrlValues } from '../../core/types';\nimport { AdHocFiltersVariable, AdHocFilterWithLabels } from './AdHocFiltersVariable';\n\nexport class AdHocFiltersVariableUrlSyncHandler implements SceneObjectUrlSyncHandler {\n public constructor(private _variable: AdHocFiltersVariable) {}\n\n private getKey(): string {\n return `var-${this._variable.state.name}`;\n }\n\n public getKeys(): string[] {\n return [this.getKey()];\n }\n\n public getUrlState(): SceneObjectUrlValues {\n const filters = this._variable.state.filters;\n\n if (filters.length === 0) {\n return { [this.getKey()]: [''] };\n }\n\n const value = filters.map((filter) => toArray(filter).map(escapePipeDelimiters).join('|'));\n return { [this.getKey()]: value };\n }\n\n public updateFromUrl(values: SceneObjectUrlValues): void {\n const urlValue = values[this.getKey()];\n\n if (urlValue == null) {\n return;\n }\n\n const filters = deserializeUrlToFilters(urlValue);\n this._variable.setState({ filters });\n }\n}\n\nfunction deserializeUrlToFilters(value: SceneObjectUrlValue): AdHocFilterWithLabels[] {\n if (Array.isArray(value)) {\n const values = value;\n return values.map(toFilter).filter(isFilter);\n }\n\n const filter = toFilter(value);\n return filter === null ? [] : [filter];\n}\n\nfunction escapePipeDelimiters(value: string | undefined): string {\n if (value === null || value === undefined) {\n return '';\n }\n\n // Replace the pipe due to using it as a filter separator\n return (value = /\\|/g[Symbol.replace](value, '__gfp__'));\n}\n\nfunction escapeCommaDelimiters(value: string | undefined): string {\n if (value === null || value === undefined) {\n return '';\n }\n\n // Replace the comma due to using it as a value/label separator\n return /,/g[Symbol.replace](value, '__gfc__');\n}\n\nfunction unescapeDelimiters(value: string | undefined): string {\n if (value === null || value === undefined) {\n return '';\n }\n\n value = /__gfp__/g[Symbol.replace](value, '|');\n value = /__gfc__/g[Symbol.replace](value, ',');\n\n return value;\n}\n\nfunction toArray(filter: AdHocFilterWithLabels): string[] {\n return [\n toCommaDelimitedString(filter.key, filter.keyLabel),\n filter.operator,\n toCommaDelimitedString(filter.value, filter.valueLabel),\n ];\n}\n\nfunction toCommaDelimitedString(key: string, label?: string): string {\n // Omit for identical key/label or when label is not set at all\n if (!label || key === label) {\n return escapeCommaDelimiters(key);\n }\n\n return [key, label].map(escapeCommaDelimiters).join(',');\n}\n\nfunction toFilter(urlValue: string | number | boolean | undefined | null): AdHocFilterWithLabels | null {\n if (typeof urlValue !== 'string' || urlValue.length === 0) {\n return null;\n }\n\n const [key, keyLabel, operator, _operatorLabel, value, valueLabel] = urlValue\n .split('|')\n .reduce<string[]>((acc, v) => {\n const [key, label] = v.split(',');\n\n acc.push(key, label ?? key);\n\n return acc;\n }, [])\n .map(unescapeDelimiters);\n\n return {\n key,\n keyLabel,\n operator,\n value,\n valueLabel,\n condition: '',\n };\n}\n\nfunction isFilter(filter: AdHocFilterWithLabels | null): filter is AdHocFilterWithLabels {\n return filter !== null && typeof filter.key === 'string' && typeof filter.value === 'string';\n}\n"],"names":["key"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -549,6 +549,7 @@ interface DataQueryExtended extends DataQuery$1 {
|
|
|
549
549
|
declare class SceneQueryRunner extends SceneObjectBase<QueryRunnerState> implements SceneDataProvider {
|
|
550
550
|
private _querySub?;
|
|
551
551
|
private _dataLayersSub?;
|
|
552
|
+
private _dataLayersMerger;
|
|
552
553
|
private _timeSub?;
|
|
553
554
|
private _timeSubRange?;
|
|
554
555
|
private _containerWidth?;
|
|
@@ -1220,19 +1221,7 @@ declare class AnnotationsDataLayer extends SceneDataLayerBase<AnnotationsDataLay
|
|
|
1220
1221
|
runLayer(): void;
|
|
1221
1222
|
private runWithTimeRange;
|
|
1222
1223
|
protected resolveDataSource(query: AnnotationQuery): Promise<_grafana_data.DataSourceApi<_grafana_data.DataQuery, _grafana_data.DataSourceJsonData, {}>>;
|
|
1223
|
-
protected processEvents(query: AnnotationQuery, events: AnnotationQueryResults):
|
|
1224
|
-
state: LoadingState;
|
|
1225
|
-
series: _grafana_data.DataFrame[];
|
|
1226
|
-
structureRev?: number;
|
|
1227
|
-
annotations?: _grafana_data.DataFrame[];
|
|
1228
|
-
alertState?: _grafana_data.AlertStateInfo;
|
|
1229
|
-
request?: _grafana_data.DataQueryRequest<_grafana_data.DataQuery>;
|
|
1230
|
-
timings?: _grafana_data.DataQueryTimings;
|
|
1231
|
-
errors?: _grafana_data.DataQueryError[];
|
|
1232
|
-
error?: _grafana_data.DataQueryError;
|
|
1233
|
-
timeRange: _grafana_data.TimeRange;
|
|
1234
|
-
traceIds?: string[];
|
|
1235
|
-
};
|
|
1224
|
+
protected processEvents(query: AnnotationQuery, events: AnnotationQueryResults): PanelData;
|
|
1236
1225
|
}
|
|
1237
1226
|
declare function AnnotationsDataLayerRenderer({ model }: SceneComponentProps<AnnotationsDataLayer>): React__default.JSX.Element;
|
|
1238
1227
|
|
|
@@ -1317,6 +1306,7 @@ declare abstract class SceneDataLayerSetBase<T extends SceneDataLayerProviderSta
|
|
|
1317
1306
|
* Subject to emit results to.
|
|
1318
1307
|
*/
|
|
1319
1308
|
private _results;
|
|
1309
|
+
private _dataLayersMerger;
|
|
1320
1310
|
protected subscribeToAllLayers(layers: SceneDataLayerProvider[]): void;
|
|
1321
1311
|
private _onLayerUpdateReceived;
|
|
1322
1312
|
getResultsStream(): Observable<SceneDataProviderResult>;
|
package/dist/index.js
CHANGED
|
@@ -3493,7 +3493,7 @@ class AdHocFiltersVariableUrlSyncHandler {
|
|
|
3493
3493
|
if (filters.length === 0) {
|
|
3494
3494
|
return { [this.getKey()]: [""] };
|
|
3495
3495
|
}
|
|
3496
|
-
const value = filters.
|
|
3496
|
+
const value = filters.map((filter) => toArray(filter).map(escapePipeDelimiters).join("|"));
|
|
3497
3497
|
return { [this.getKey()]: value };
|
|
3498
3498
|
}
|
|
3499
3499
|
updateFromUrl(values) {
|
|
@@ -3635,12 +3635,7 @@ class AdHocFiltersVariable extends SceneObjectBase {
|
|
|
3635
3635
|
}
|
|
3636
3636
|
const updatedFilters = this.state.filters.map((f) => {
|
|
3637
3637
|
if (f === filter) {
|
|
3638
|
-
|
|
3639
|
-
if (prop === "key" && filter[prop] !== value) {
|
|
3640
|
-
updatedFilter.value = "";
|
|
3641
|
-
updatedFilter.valueLabel = "";
|
|
3642
|
-
}
|
|
3643
|
-
return updatedFilter;
|
|
3638
|
+
return __spreadProps$l(__spreadValues$x({}, f), { [prop]: value, [propLabelKey]: label });
|
|
3644
3639
|
}
|
|
3645
3640
|
return f;
|
|
3646
3641
|
});
|
|
@@ -3749,27 +3744,47 @@ function toSelectableValue({ text, value }) {
|
|
|
3749
3744
|
value: String(value != null ? value : text)
|
|
3750
3745
|
};
|
|
3751
3746
|
}
|
|
3752
|
-
function isFilterComplete(filter) {
|
|
3753
|
-
return filter.key !== "" && filter.operator !== "" && filter.value !== "";
|
|
3754
|
-
}
|
|
3755
3747
|
|
|
3756
|
-
|
|
3757
|
-
|
|
3758
|
-
|
|
3759
|
-
|
|
3760
|
-
|
|
3761
|
-
|
|
3748
|
+
class DataLayersMerger {
|
|
3749
|
+
constructor() {
|
|
3750
|
+
this._resultsMap = /* @__PURE__ */ new Map();
|
|
3751
|
+
this._prevLayers = [];
|
|
3752
|
+
}
|
|
3753
|
+
getMergedStream(layers) {
|
|
3754
|
+
if (areDifferentLayers(layers, this._prevLayers)) {
|
|
3755
|
+
this._resultsMap = /* @__PURE__ */ new Map();
|
|
3756
|
+
this._prevLayers = layers;
|
|
3757
|
+
}
|
|
3758
|
+
const resultStreams = layers.map((l) => l.getResultsStream());
|
|
3759
|
+
const deactivationHandlers = [];
|
|
3760
|
+
for (const layer of layers) {
|
|
3761
|
+
deactivationHandlers.push(layer.activate());
|
|
3762
|
+
}
|
|
3763
|
+
return rxjs.merge(resultStreams).pipe(
|
|
3764
|
+
rxjs.mergeAll(),
|
|
3765
|
+
rxjs.filter((v) => {
|
|
3766
|
+
return this._resultsMap.get(v.origin.state.key) !== v;
|
|
3767
|
+
}),
|
|
3768
|
+
rxjs.map((v) => {
|
|
3769
|
+
this._resultsMap.set(v.origin.state.key, v);
|
|
3770
|
+
return this._resultsMap.values();
|
|
3771
|
+
}),
|
|
3772
|
+
rxjs.finalize(() => {
|
|
3773
|
+
deactivationHandlers.forEach((handler) => handler());
|
|
3774
|
+
})
|
|
3775
|
+
);
|
|
3762
3776
|
}
|
|
3763
|
-
|
|
3764
|
-
|
|
3765
|
-
|
|
3766
|
-
|
|
3767
|
-
|
|
3768
|
-
|
|
3769
|
-
|
|
3770
|
-
|
|
3771
|
-
}
|
|
3772
|
-
|
|
3777
|
+
}
|
|
3778
|
+
function areDifferentLayers(a, b) {
|
|
3779
|
+
if (a.length !== b.length) {
|
|
3780
|
+
return true;
|
|
3781
|
+
}
|
|
3782
|
+
for (let i = 0; i < a.length; i++) {
|
|
3783
|
+
if (a[i] !== b[i]) {
|
|
3784
|
+
return true;
|
|
3785
|
+
}
|
|
3786
|
+
}
|
|
3787
|
+
return false;
|
|
3773
3788
|
}
|
|
3774
3789
|
|
|
3775
3790
|
var __defProp$w = Object.defineProperty;
|
|
@@ -3798,6 +3813,7 @@ function getNextRequestId$1() {
|
|
|
3798
3813
|
class SceneQueryRunner extends SceneObjectBase {
|
|
3799
3814
|
constructor(initialState) {
|
|
3800
3815
|
super(initialState);
|
|
3816
|
+
this._dataLayersMerger = new DataLayersMerger();
|
|
3801
3817
|
this._variableValueRecorder = new VariableValueRecorder();
|
|
3802
3818
|
this._results = new rxjs.ReplaySubject(1);
|
|
3803
3819
|
this._scopedVars = { __sceneObject: { value: this, text: "__sceneObject" } };
|
|
@@ -3831,7 +3847,7 @@ class SceneQueryRunner extends SceneObjectBase {
|
|
|
3831
3847
|
queryCachingTTL: this.state.queryCachingTTL
|
|
3832
3848
|
}, getEnrichedDataRequest(this));
|
|
3833
3849
|
if (this._adhocFiltersVar) {
|
|
3834
|
-
request.filters = this._adhocFiltersVar.state.filters
|
|
3850
|
+
request.filters = this._adhocFiltersVar.state.filters;
|
|
3835
3851
|
}
|
|
3836
3852
|
if (this._groupByVar) {
|
|
3837
3853
|
request.groupByKeys = this._groupByVar.state.value;
|
|
@@ -3912,10 +3928,10 @@ class SceneQueryRunner extends SceneObjectBase {
|
|
|
3912
3928
|
if (dataLayers.length === 0) {
|
|
3913
3929
|
return;
|
|
3914
3930
|
}
|
|
3915
|
-
this._dataLayersSub =
|
|
3931
|
+
this._dataLayersSub = this._dataLayersMerger.getMergedStream(dataLayers).subscribe(this._onLayersReceived.bind(this));
|
|
3916
3932
|
}
|
|
3917
3933
|
_onLayersReceived(results) {
|
|
3918
|
-
var _a, _b, _c, _d;
|
|
3934
|
+
var _a, _b, _c, _d, _e;
|
|
3919
3935
|
const timeRange = sceneGraph.getTimeRange(this);
|
|
3920
3936
|
const { dataLayerFilter } = this.state;
|
|
3921
3937
|
let annotations = [];
|
|
@@ -3947,12 +3963,15 @@ class SceneQueryRunner extends SceneObjectBase {
|
|
|
3947
3963
|
}
|
|
3948
3964
|
}
|
|
3949
3965
|
}
|
|
3950
|
-
|
|
3966
|
+
if (alertState === ((_c = this.state.data) == null ? void 0 : _c.alertState) && allFramesEmpty(annotations) && allFramesEmpty(this._layerAnnotations)) {
|
|
3967
|
+
return;
|
|
3968
|
+
}
|
|
3951
3969
|
this._layerAnnotations = annotations;
|
|
3970
|
+
const baseStateUpdate = this.state.data ? this.state.data : __spreadProps$k(__spreadValues$w({}, emptyPanelData), { timeRange: timeRange.state.value });
|
|
3952
3971
|
this.setState({
|
|
3953
3972
|
data: __spreadProps$k(__spreadValues$w({}, baseStateUpdate), {
|
|
3954
|
-
annotations: [...(
|
|
3955
|
-
alertState: alertState != null ? alertState : (
|
|
3973
|
+
annotations: [...(_d = this._resultAnnotations) != null ? _d : [], ...annotations],
|
|
3974
|
+
alertState: alertState != null ? alertState : (_e = this.state.data) == null ? void 0 : _e.alertState
|
|
3956
3975
|
})
|
|
3957
3976
|
});
|
|
3958
3977
|
}
|
|
@@ -4188,6 +4207,17 @@ function findFirstDatasource(targets) {
|
|
|
4188
4207
|
var _a, _b;
|
|
4189
4208
|
return (_b = (_a = targets.find((t) => t.datasource !== null)) == null ? void 0 : _a.datasource) != null ? _b : void 0;
|
|
4190
4209
|
}
|
|
4210
|
+
function allFramesEmpty(frames) {
|
|
4211
|
+
if (!frames) {
|
|
4212
|
+
return true;
|
|
4213
|
+
}
|
|
4214
|
+
for (let i = 0; i < frames.length; i++) {
|
|
4215
|
+
if (frames[i].length > 0) {
|
|
4216
|
+
return false;
|
|
4217
|
+
}
|
|
4218
|
+
}
|
|
4219
|
+
return true;
|
|
4220
|
+
}
|
|
4191
4221
|
|
|
4192
4222
|
function isVariableValueEqual(a, b) {
|
|
4193
4223
|
if (a === b) {
|
|
@@ -5256,7 +5286,7 @@ class SceneDataLayerBase extends SceneObjectBase {
|
|
|
5256
5286
|
super(__spreadValues$r({
|
|
5257
5287
|
isEnabled: true
|
|
5258
5288
|
}, initialState));
|
|
5259
|
-
this._results = new rxjs.ReplaySubject();
|
|
5289
|
+
this._results = new rxjs.ReplaySubject(1);
|
|
5260
5290
|
this.isDataLayer = true;
|
|
5261
5291
|
this._variableValueRecorder = new VariableValueRecorder();
|
|
5262
5292
|
this._variableDependency = new VariableDependencyConfig(this, {
|
|
@@ -5980,11 +6010,12 @@ class SceneDataLayerSetBase extends SceneObjectBase {
|
|
|
5980
6010
|
constructor() {
|
|
5981
6011
|
super(...arguments);
|
|
5982
6012
|
this.isDataLayer = true;
|
|
5983
|
-
this._results = new rxjs.ReplaySubject();
|
|
6013
|
+
this._results = new rxjs.ReplaySubject(1);
|
|
6014
|
+
this._dataLayersMerger = new DataLayersMerger();
|
|
5984
6015
|
}
|
|
5985
6016
|
subscribeToAllLayers(layers) {
|
|
5986
6017
|
if (layers.length > 0) {
|
|
5987
|
-
this.querySub =
|
|
6018
|
+
this.querySub = this._dataLayersMerger.getMergedStream(layers).subscribe(this._onLayerUpdateReceived.bind(this));
|
|
5988
6019
|
} else {
|
|
5989
6020
|
this._results.next({ origin: this, data: emptyPanelData });
|
|
5990
6021
|
this.setStateHelper({ data: emptyPanelData });
|