@grafana/scenes 4.11.3--canary.690.8783271240.0 → 4.12.0--canary.702.8784241126.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/components/VizPanel/VizPanel.js +5 -0
- package/dist/esm/components/VizPanel/VizPanel.js.map +1 -1
- package/dist/esm/variables/adhoc/AdHocFilterRenderer.js +20 -12
- package/dist/esm/variables/adhoc/AdHocFilterRenderer.js.map +1 -1
- package/dist/esm/variables/adhoc/AdHocFiltersVariable.js +5 -8
- package/dist/esm/variables/adhoc/AdHocFiltersVariable.js.map +1 -1
- package/dist/esm/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js +12 -36
- package/dist/esm/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js.map +1 -1
- package/dist/index.d.ts +8 -12
- package/dist/index.js +39 -55
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -3145,18 +3145,24 @@ var __spreadValues$y = (a, b) => {
|
|
|
3145
3145
|
return a;
|
|
3146
3146
|
};
|
|
3147
3147
|
var __spreadProps$m = (a, b) => __defProps$m(a, __getOwnPropDescs$m(b));
|
|
3148
|
-
function keyLabelToOption(key, label) {
|
|
3149
|
-
return key !== "" ? {
|
|
3150
|
-
value: key,
|
|
3151
|
-
label: label || key
|
|
3152
|
-
} : null;
|
|
3153
|
-
}
|
|
3154
3148
|
function AdHocFilterRenderer({ filter, model }) {
|
|
3155
3149
|
var _a, _b;
|
|
3156
3150
|
const styles = ui.useStyles2(getStyles$7);
|
|
3157
3151
|
const [state, setState] = React.useState({});
|
|
3158
|
-
const keyValue =
|
|
3159
|
-
|
|
3152
|
+
const keyValue = React.useMemo(() => {
|
|
3153
|
+
if (filter.key !== "") {
|
|
3154
|
+
if (model.state.defaultKeys) {
|
|
3155
|
+
const matchingDefaultKey = model.state.defaultKeys.find((option) => option.value === filter.key);
|
|
3156
|
+
if (matchingDefaultKey) {
|
|
3157
|
+
return toSelectableValue(matchingDefaultKey);
|
|
3158
|
+
}
|
|
3159
|
+
} else {
|
|
3160
|
+
return data.toOption(filter.key);
|
|
3161
|
+
}
|
|
3162
|
+
}
|
|
3163
|
+
return null;
|
|
3164
|
+
}, [filter.key, model.state.defaultKeys]);
|
|
3165
|
+
const valueValue = filter.value !== "" ? data.toOption(filter.value) : null;
|
|
3160
3166
|
const valueSelect = /* @__PURE__ */ React__default["default"].createElement(ui.Select, {
|
|
3161
3167
|
allowCustomValue: true,
|
|
3162
3168
|
formatCreateLabel: (inputValue) => `Use custom value: ${inputValue}`,
|
|
@@ -3166,7 +3172,7 @@ function AdHocFilterRenderer({ filter, model }) {
|
|
|
3166
3172
|
value: valueValue,
|
|
3167
3173
|
placeholder: "Select value",
|
|
3168
3174
|
options: state.values,
|
|
3169
|
-
onChange: (v) => model._updateFilter(filter, "value", v),
|
|
3175
|
+
onChange: (v) => model._updateFilter(filter, "value", v.value),
|
|
3170
3176
|
isOpen: state.isValuesOpen,
|
|
3171
3177
|
isLoading: state.isValuesLoading,
|
|
3172
3178
|
autoFocus: filter.key !== "" && filter.value === "",
|
|
@@ -3188,7 +3194,7 @@ function AdHocFilterRenderer({ filter, model }) {
|
|
|
3188
3194
|
value: keyValue,
|
|
3189
3195
|
placeholder: "Select label",
|
|
3190
3196
|
options: state.keys,
|
|
3191
|
-
onChange: (v) => model._updateFilter(filter, "key", v),
|
|
3197
|
+
onChange: (v) => model._updateFilter(filter, "key", v.value),
|
|
3192
3198
|
autoFocus: filter.key === "",
|
|
3193
3199
|
isOpen: state.isKeysOpen,
|
|
3194
3200
|
isLoading: state.isKeysLoading,
|
|
@@ -3235,7 +3241,7 @@ function AdHocFilterRenderer({ filter, model }) {
|
|
|
3235
3241
|
disabled: model.state.readOnly,
|
|
3236
3242
|
options: model._getOperators(),
|
|
3237
3243
|
width: "auto",
|
|
3238
|
-
onChange: (v) => model._updateFilter(filter, "operator", v)
|
|
3244
|
+
onChange: (v) => model._updateFilter(filter, "operator", v.value)
|
|
3239
3245
|
}), valueSelect, /* @__PURE__ */ React__default["default"].createElement(ui.Button, {
|
|
3240
3246
|
variant: "secondary",
|
|
3241
3247
|
"aria-label": "Remove filter",
|
|
@@ -3322,7 +3328,7 @@ class AdHocFiltersVariableUrlSyncHandler {
|
|
|
3322
3328
|
if (filters.length === 0) {
|
|
3323
3329
|
return { [this.getKey()]: [""] };
|
|
3324
3330
|
}
|
|
3325
|
-
const value = filters.map((filter) => toArray(filter).map(
|
|
3331
|
+
const value = filters.map((filter) => toArray(filter).map(escapeDelimiter).join("|"));
|
|
3326
3332
|
return { [this.getKey()]: value };
|
|
3327
3333
|
}
|
|
3328
3334
|
updateFromUrl(values) {
|
|
@@ -3342,54 +3348,30 @@ function deserializeUrlToFilters(value) {
|
|
|
3342
3348
|
const filter = toFilter(value);
|
|
3343
3349
|
return filter === null ? [] : [filter];
|
|
3344
3350
|
}
|
|
3345
|
-
function
|
|
3351
|
+
function escapeDelimiter(value) {
|
|
3346
3352
|
if (value === null || value === void 0) {
|
|
3347
3353
|
return "";
|
|
3348
3354
|
}
|
|
3349
|
-
return
|
|
3355
|
+
return /\|/g[Symbol.replace](value, "__gfp__");
|
|
3350
3356
|
}
|
|
3351
|
-
function
|
|
3357
|
+
function unescapeDelimiter(value) {
|
|
3352
3358
|
if (value === null || value === void 0) {
|
|
3353
3359
|
return "";
|
|
3354
3360
|
}
|
|
3355
|
-
return
|
|
3356
|
-
}
|
|
3357
|
-
function unescapeDelimiters(value) {
|
|
3358
|
-
if (value === null || value === void 0) {
|
|
3359
|
-
return "";
|
|
3360
|
-
}
|
|
3361
|
-
value = /__gfp__/g[Symbol.replace](value, "|");
|
|
3362
|
-
value = /__gfc__/g[Symbol.replace](value, ",");
|
|
3363
|
-
return value;
|
|
3361
|
+
return /__gfp__/g[Symbol.replace](value, "|");
|
|
3364
3362
|
}
|
|
3365
3363
|
function toArray(filter) {
|
|
3366
|
-
return [
|
|
3367
|
-
toCommaDelimitedString(filter.key, filter.keyLabel),
|
|
3368
|
-
filter.operator,
|
|
3369
|
-
toCommaDelimitedString(filter.value, filter.valueLabel)
|
|
3370
|
-
];
|
|
3364
|
+
return [filter.key, filter.operator, filter.value];
|
|
3371
3365
|
}
|
|
3372
|
-
function
|
|
3373
|
-
if (
|
|
3374
|
-
return escapeCommaDelimiters(key);
|
|
3375
|
-
}
|
|
3376
|
-
return [key, label].map(escapeCommaDelimiters).join(",");
|
|
3377
|
-
}
|
|
3378
|
-
function toFilter(urlValue) {
|
|
3379
|
-
if (typeof urlValue !== "string" || urlValue.length === 0) {
|
|
3366
|
+
function toFilter(value) {
|
|
3367
|
+
if (typeof value !== "string" || value.length === 0) {
|
|
3380
3368
|
return null;
|
|
3381
3369
|
}
|
|
3382
|
-
const
|
|
3383
|
-
const [key2, label] = v.split(",");
|
|
3384
|
-
acc.push(key2, label != null ? label : key2);
|
|
3385
|
-
return acc;
|
|
3386
|
-
}, []).map(unescapeDelimiters);
|
|
3370
|
+
const parts = value.split("|").map(unescapeDelimiter);
|
|
3387
3371
|
return {
|
|
3388
|
-
key,
|
|
3389
|
-
|
|
3390
|
-
|
|
3391
|
-
value,
|
|
3392
|
-
valueLabel,
|
|
3372
|
+
key: parts[0],
|
|
3373
|
+
operator: parts[1],
|
|
3374
|
+
value: parts[2],
|
|
3393
3375
|
condition: ""
|
|
3394
3376
|
};
|
|
3395
3377
|
}
|
|
@@ -3448,23 +3430,22 @@ class AdHocFiltersVariable extends SceneObjectBase {
|
|
|
3448
3430
|
getValue() {
|
|
3449
3431
|
return this.state.filterExpression;
|
|
3450
3432
|
}
|
|
3451
|
-
_updateFilter(filter, prop,
|
|
3433
|
+
_updateFilter(filter, prop, value) {
|
|
3452
3434
|
if (value == null) {
|
|
3453
3435
|
return;
|
|
3454
3436
|
}
|
|
3455
3437
|
const { filters, _wip } = this.state;
|
|
3456
|
-
const propLabelKey = `${prop}Label`;
|
|
3457
3438
|
if (filter === _wip) {
|
|
3458
3439
|
if (prop === "value") {
|
|
3459
|
-
this.setState({ filters: [...filters, __spreadProps$l(__spreadValues$x({}, _wip), { [prop]: value
|
|
3440
|
+
this.setState({ filters: [...filters, __spreadProps$l(__spreadValues$x({}, _wip), { [prop]: value })], _wip: void 0 });
|
|
3460
3441
|
} else {
|
|
3461
|
-
this.setState({ _wip: __spreadProps$l(__spreadValues$x({}, filter), { [prop]: value
|
|
3442
|
+
this.setState({ _wip: __spreadProps$l(__spreadValues$x({}, filter), { [prop]: value }) });
|
|
3462
3443
|
}
|
|
3463
3444
|
return;
|
|
3464
3445
|
}
|
|
3465
3446
|
const updatedFilters = this.state.filters.map((f) => {
|
|
3466
3447
|
if (f === filter) {
|
|
3467
|
-
return __spreadProps$l(__spreadValues$x({}, f), { [prop]: value
|
|
3448
|
+
return __spreadProps$l(__spreadValues$x({}, f), { [prop]: value });
|
|
3468
3449
|
}
|
|
3469
3450
|
return f;
|
|
3470
3451
|
});
|
|
@@ -3523,9 +3504,7 @@ class AdHocFiltersVariable extends SceneObjectBase {
|
|
|
3523
3504
|
return values.map(toSelectableValue);
|
|
3524
3505
|
}
|
|
3525
3506
|
_addWip() {
|
|
3526
|
-
this.setState({
|
|
3527
|
-
_wip: { key: "", keyLabel: "", value: "", valueLabel: "", operator: "=", condition: "" }
|
|
3528
|
-
});
|
|
3507
|
+
this.setState({ _wip: { key: "", value: "", operator: "=", condition: "" } });
|
|
3529
3508
|
}
|
|
3530
3509
|
_getOperators() {
|
|
3531
3510
|
return ["=", "!=", "<", ">", "=~", "!~"].map((value) => ({
|
|
@@ -4766,6 +4745,11 @@ class VizPanel extends SceneObjectBase {
|
|
|
4766
4745
|
);
|
|
4767
4746
|
};
|
|
4768
4747
|
this._onInstanceStateChange = (state) => {
|
|
4748
|
+
if (this._panelContext) {
|
|
4749
|
+
this._panelContext = __spreadProps$g(__spreadValues$s({}, this._panelContext), {
|
|
4750
|
+
instanceState: this.state._pluginInstanceState
|
|
4751
|
+
});
|
|
4752
|
+
}
|
|
4769
4753
|
this.setState({ _pluginInstanceState: state });
|
|
4770
4754
|
};
|
|
4771
4755
|
this._onToggleLegendSort = (sortKey) => {
|