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