@grafana/scenes 4.19.0 → 4.20.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/CHANGELOG.md +16 -0
- package/dist/esm/components/layout/grid/SceneGridLayoutRenderer.js +18 -2
- package/dist/esm/components/layout/grid/SceneGridLayoutRenderer.js.map +1 -1
- package/dist/esm/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js +5 -30
- package/dist/esm/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js.map +1 -1
- package/dist/esm/variables/groupby/GroupByVariable.js +22 -7
- package/dist/esm/variables/groupby/GroupByVariable.js.map +1 -1
- package/dist/esm/variables/groupby/GroupByVariableUrlSyncHandler.js +63 -0
- package/dist/esm/variables/groupby/GroupByVariableUrlSyncHandler.js.map +1 -0
- package/dist/esm/variables/utils.js +27 -1
- package/dist/esm/variables/utils.js.map +1 -1
- package/dist/index.d.ts +24 -23
- package/dist/index.js +127 -38
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -927,6 +927,7 @@ type getTagKeysProvider = (set: GroupByVariable, currentKey: string | null) => P
|
|
|
927
927
|
declare class GroupByVariable extends MultiValueVariable<GroupByVariableState> {
|
|
928
928
|
static Component: typeof GroupByVariableRenderer;
|
|
929
929
|
isLazy: boolean;
|
|
930
|
+
protected _urlSync: SceneObjectUrlSyncHandler;
|
|
930
931
|
validateAndUpdate(): Observable<ValidateAndUpdateResult>;
|
|
931
932
|
private _updateValueGivenNewOptions;
|
|
932
933
|
getValueOptions(args: VariableGetOptionsArgs): Observable<VariableValueOption[]>;
|
|
@@ -1130,7 +1131,7 @@ declare class LiveNowTimer extends SceneObjectBase<LiveNowTimerState> {
|
|
|
1130
1131
|
private timerId;
|
|
1131
1132
|
private static REFRESH_RATE;
|
|
1132
1133
|
constructor({ enabled }: {
|
|
1133
|
-
enabled?: boolean;
|
|
1134
|
+
enabled?: boolean | undefined;
|
|
1134
1135
|
});
|
|
1135
1136
|
private _activationHandler;
|
|
1136
1137
|
enable(): void;
|
|
@@ -1225,18 +1226,18 @@ declare class AnnotationsDataLayer extends SceneDataLayerBase<AnnotationsDataLay
|
|
|
1225
1226
|
protected processEvents(query: AnnotationQuery, events: AnnotationQueryResults): {
|
|
1226
1227
|
state: LoadingState;
|
|
1227
1228
|
series: _grafana_data.DataFrame[];
|
|
1228
|
-
structureRev?: number;
|
|
1229
|
-
annotations?: _grafana_data.DataFrame[];
|
|
1230
|
-
alertState?: _grafana_data.AlertStateInfo;
|
|
1231
|
-
request?: _grafana_data.DataQueryRequest<_grafana_data.DataQuery
|
|
1232
|
-
timings?: _grafana_data.DataQueryTimings;
|
|
1233
|
-
errors?: _grafana_data.DataQueryError[];
|
|
1234
|
-
error?: _grafana_data.DataQueryError;
|
|
1229
|
+
structureRev?: number | undefined;
|
|
1230
|
+
annotations?: _grafana_data.DataFrame[] | undefined;
|
|
1231
|
+
alertState?: _grafana_data.AlertStateInfo | undefined;
|
|
1232
|
+
request?: _grafana_data.DataQueryRequest<_grafana_data.DataQuery> | undefined;
|
|
1233
|
+
timings?: _grafana_data.DataQueryTimings | undefined;
|
|
1234
|
+
errors?: _grafana_data.DataQueryError[] | undefined;
|
|
1235
|
+
error?: _grafana_data.DataQueryError | undefined;
|
|
1235
1236
|
timeRange: _grafana_data.TimeRange;
|
|
1236
|
-
traceIds?: string[];
|
|
1237
|
+
traceIds?: string[] | undefined;
|
|
1237
1238
|
};
|
|
1238
1239
|
}
|
|
1239
|
-
declare function AnnotationsDataLayerRenderer({ model }: SceneComponentProps<AnnotationsDataLayer>): React__default.JSX.Element;
|
|
1240
|
+
declare function AnnotationsDataLayerRenderer({ model }: SceneComponentProps<AnnotationsDataLayer>): React__default.JSX.Element | null;
|
|
1240
1241
|
|
|
1241
1242
|
type index_AnnotationsDataLayer = AnnotationsDataLayer;
|
|
1242
1243
|
declare const index_AnnotationsDataLayer: typeof AnnotationsDataLayer;
|
|
@@ -1343,7 +1344,7 @@ declare class SceneDataLayerControls extends SceneObjectBase<SceneDataLayerContr
|
|
|
1343
1344
|
static Component: typeof SceneDataLayerControlsRenderer;
|
|
1344
1345
|
constructor();
|
|
1345
1346
|
}
|
|
1346
|
-
declare function SceneDataLayerControlsRenderer({ model }: SceneComponentProps<SceneDataLayerControls>): React__default.JSX.Element;
|
|
1347
|
+
declare function SceneDataLayerControlsRenderer({ model }: SceneComponentProps<SceneDataLayerControls>): React__default.JSX.Element | null;
|
|
1347
1348
|
|
|
1348
1349
|
interface SceneDataTransformerState extends SceneDataState {
|
|
1349
1350
|
/**
|
|
@@ -1401,7 +1402,7 @@ interface VariableValueControlState extends SceneObjectState {
|
|
|
1401
1402
|
declare class VariableValueControl extends SceneObjectBase<VariableValueControlState> {
|
|
1402
1403
|
static Component: typeof VariableValueControlRenderer;
|
|
1403
1404
|
}
|
|
1404
|
-
declare function VariableValueControlRenderer({ model }: SceneComponentProps<VariableValueControl>): React__default.JSX.Element;
|
|
1405
|
+
declare function VariableValueControlRenderer({ model }: SceneComponentProps<VariableValueControl>): React__default.JSX.Element | null;
|
|
1405
1406
|
|
|
1406
1407
|
declare class SceneVariableSet extends SceneObjectBase<SceneVariableSetState> implements SceneVariables {
|
|
1407
1408
|
/** Variables that have changed in since the activation or since the first manual value change */
|
|
@@ -1737,7 +1738,7 @@ declare class SceneTimePicker extends SceneObjectBase<SceneTimePickerState> {
|
|
|
1737
1738
|
onMoveBackward: () => void;
|
|
1738
1739
|
onMoveForward: () => void;
|
|
1739
1740
|
}
|
|
1740
|
-
declare function SceneTimePickerRenderer({ model }: SceneComponentProps<SceneTimePicker>): React__default.JSX.Element;
|
|
1741
|
+
declare function SceneTimePickerRenderer({ model }: SceneComponentProps<SceneTimePicker>): React__default.JSX.Element | null;
|
|
1741
1742
|
|
|
1742
1743
|
interface SceneRefreshPickerState extends SceneObjectState {
|
|
1743
1744
|
refresh: string;
|
|
@@ -1834,7 +1835,7 @@ declare class SceneFlexLayout extends SceneObjectBase<SceneFlexLayoutState> impl
|
|
|
1834
1835
|
toggleDirection(): void;
|
|
1835
1836
|
isDraggable(): boolean;
|
|
1836
1837
|
}
|
|
1837
|
-
declare function SceneFlexLayoutRenderer({ model, parentState }: SceneFlexItemRenderProps$1<SceneFlexLayout>): React__default.JSX.Element;
|
|
1838
|
+
declare function SceneFlexLayoutRenderer({ model, parentState }: SceneFlexItemRenderProps$1<SceneFlexLayout>): React__default.JSX.Element | null;
|
|
1838
1839
|
interface SceneFlexItemPlacement {
|
|
1839
1840
|
wrap?: CSSProperties['flexWrap'];
|
|
1840
1841
|
direction?: CSSProperties['flexDirection'];
|
|
@@ -1866,7 +1867,7 @@ interface SceneFlexItemRenderProps$1<T> extends SceneComponentProps<T> {
|
|
|
1866
1867
|
declare class SceneFlexItem extends SceneObjectBase<SceneFlexItemState> {
|
|
1867
1868
|
static Component: typeof SceneFlexItemRenderer;
|
|
1868
1869
|
}
|
|
1869
|
-
declare function SceneFlexItemRenderer({ model, parentState }: SceneFlexItemRenderProps$1<SceneFlexItem>): React__default.JSX.Element;
|
|
1870
|
+
declare function SceneFlexItemRenderer({ model, parentState }: SceneFlexItemRenderProps$1<SceneFlexItem>): React__default.JSX.Element | null;
|
|
1870
1871
|
|
|
1871
1872
|
interface SceneCSSGridLayoutState extends SceneObjectState, SceneCSSGridLayoutOptions {
|
|
1872
1873
|
children: Array<SceneCSSGridItem | SceneObject>;
|
|
@@ -1910,7 +1911,7 @@ declare class SceneCSSGridLayout extends SceneObjectBase<SceneCSSGridLayoutState
|
|
|
1910
1911
|
constructor(state: Partial<SceneCSSGridLayoutState>);
|
|
1911
1912
|
isDraggable(): boolean;
|
|
1912
1913
|
}
|
|
1913
|
-
declare function SceneCSSGridLayoutRenderer({ model }: SceneCSSGridItemRenderProps<SceneCSSGridLayout>): React__default.JSX.Element;
|
|
1914
|
+
declare function SceneCSSGridLayoutRenderer({ model }: SceneCSSGridItemRenderProps<SceneCSSGridLayout>): React__default.JSX.Element | null;
|
|
1914
1915
|
interface SceneCSSGridItemPlacement {
|
|
1915
1916
|
/**
|
|
1916
1917
|
* True when the item should rendered but not visible.
|
|
@@ -1932,7 +1933,7 @@ interface SceneCSSGridItemRenderProps<T> extends SceneComponentProps<T> {
|
|
|
1932
1933
|
declare class SceneCSSGridItem extends SceneObjectBase<SceneCSSGridItemState> {
|
|
1933
1934
|
static Component: typeof SceneCSSGridItemRenderer;
|
|
1934
1935
|
}
|
|
1935
|
-
declare function SceneCSSGridItemRenderer({ model, parentState }: SceneCSSGridItemRenderProps<SceneCSSGridItem>): React__default.JSX.Element;
|
|
1936
|
+
declare function SceneCSSGridItemRenderer({ model, parentState }: SceneCSSGridItemRenderProps<SceneCSSGridItem>): React__default.JSX.Element | null;
|
|
1936
1937
|
|
|
1937
1938
|
declare function SceneGridLayoutRenderer({ model }: SceneComponentProps<SceneGridLayout>): React__default.JSX.Element;
|
|
1938
1939
|
|
|
@@ -2029,9 +2030,9 @@ interface SceneGridItemState extends SceneGridItemStateLike {
|
|
|
2029
2030
|
declare class SceneGridItem extends SceneObjectBase<SceneGridItemState> implements SceneGridItemLike {
|
|
2030
2031
|
static Component: typeof SceneGridItemRenderer;
|
|
2031
2032
|
}
|
|
2032
|
-
declare function SceneGridItemRenderer({ model }: SceneComponentProps<SceneGridItem>): React__default.JSX.Element;
|
|
2033
|
+
declare function SceneGridItemRenderer({ model }: SceneComponentProps<SceneGridItem>): React__default.JSX.Element | null;
|
|
2033
2034
|
|
|
2034
|
-
declare function SplitLayoutRenderer({ model }: SceneFlexItemRenderProps<SplitLayout>): React__default.JSX.Element;
|
|
2035
|
+
declare function SplitLayoutRenderer({ model }: SceneFlexItemRenderProps<SplitLayout>): React__default.JSX.Element | null;
|
|
2035
2036
|
interface SceneFlexItemRenderProps<T> extends SceneComponentProps<T> {
|
|
2036
2037
|
parentState?: SceneFlexItemPlacement;
|
|
2037
2038
|
}
|
|
@@ -2149,7 +2150,7 @@ declare class SceneAppPage extends SceneObjectBase<SceneAppPageState> implements
|
|
|
2149
2150
|
initializeScene(scene: EmbeddedScene): void;
|
|
2150
2151
|
getScene(routeMatch: SceneRouteMatch): EmbeddedScene;
|
|
2151
2152
|
getDrilldownPage(drilldown: SceneAppDrilldownView, routeMatch: SceneRouteMatch<{}>): SceneAppPageLike;
|
|
2152
|
-
enrichDataRequest(source: SceneObject): Partial<_grafana_data.DataQueryRequest<_grafana_data.DataQuery
|
|
2153
|
+
enrichDataRequest(source: SceneObject): Partial<_grafana_data.DataQueryRequest<_grafana_data.DataQuery>> | null;
|
|
2153
2154
|
}
|
|
2154
2155
|
interface SceneAppPageRendererProps extends SceneComponentProps<SceneAppPage> {
|
|
2155
2156
|
routeProps: RouteComponentProps;
|
|
@@ -2174,7 +2175,7 @@ interface SceneReactObjectState<TProps = {}> extends SceneObjectState {
|
|
|
2174
2175
|
* A utility object that can be used to render any React component or ReactNode
|
|
2175
2176
|
*/
|
|
2176
2177
|
declare class SceneReactObject<TProps = {}> extends SceneObjectBase<SceneReactObjectState<TProps>> {
|
|
2177
|
-
static Component: ({ model }: SceneComponentProps<SceneReactObject>) => string | number | true | Iterable<React__default.ReactNode> | React__default.JSX.Element;
|
|
2178
|
+
static Component: ({ model }: SceneComponentProps<SceneReactObject>) => string | number | true | Iterable<React__default.ReactNode> | React__default.JSX.Element | null;
|
|
2178
2179
|
}
|
|
2179
2180
|
|
|
2180
2181
|
type StandardFieldConfigInterface<T, C, Prefix extends string> = {
|
|
@@ -2327,7 +2328,7 @@ declare class VizPanelBuilder<TOptions extends {}, TFieldConfig extends {}> impl
|
|
|
2327
2328
|
declare class PanelOptionsBuilder<TOptions extends {} = {}> {
|
|
2328
2329
|
private defaultOptions?;
|
|
2329
2330
|
private _options;
|
|
2330
|
-
constructor(defaultOptions?: () => Partial<TOptions>);
|
|
2331
|
+
constructor(defaultOptions?: (() => Partial<TOptions>) | undefined);
|
|
2331
2332
|
private setDefaults;
|
|
2332
2333
|
/**
|
|
2333
2334
|
* Set an individual panel option. This will merge the value with the existing options.
|
|
@@ -2364,7 +2365,7 @@ declare class FieldConfigBuilder<TFieldConfig extends {}> implements StandardFie
|
|
|
2364
2365
|
private defaultFieldConfig?;
|
|
2365
2366
|
private _fieldConfig;
|
|
2366
2367
|
private _overridesBuilder;
|
|
2367
|
-
constructor(defaultFieldConfig?: () => TFieldConfig);
|
|
2368
|
+
constructor(defaultFieldConfig?: (() => TFieldConfig) | undefined);
|
|
2368
2369
|
private setDefaults;
|
|
2369
2370
|
/**
|
|
2370
2371
|
* Set color.
|
package/dist/index.js
CHANGED
|
@@ -3045,6 +3045,65 @@ function renderSelectForVariable(model) {
|
|
|
3045
3045
|
}
|
|
3046
3046
|
}
|
|
3047
3047
|
|
|
3048
|
+
class GroupByVariableUrlSyncHandler {
|
|
3049
|
+
constructor(_sceneObject) {
|
|
3050
|
+
this._sceneObject = _sceneObject;
|
|
3051
|
+
}
|
|
3052
|
+
getKey() {
|
|
3053
|
+
return `var-${this._sceneObject.state.name}`;
|
|
3054
|
+
}
|
|
3055
|
+
getKeys() {
|
|
3056
|
+
if (this._sceneObject.state.skipUrlSync) {
|
|
3057
|
+
return [];
|
|
3058
|
+
}
|
|
3059
|
+
return [this.getKey()];
|
|
3060
|
+
}
|
|
3061
|
+
getUrlState() {
|
|
3062
|
+
if (this._sceneObject.state.skipUrlSync) {
|
|
3063
|
+
return {};
|
|
3064
|
+
}
|
|
3065
|
+
return { [this.getKey()]: toUrlValues(this._sceneObject.state.value, this._sceneObject.state.text) };
|
|
3066
|
+
}
|
|
3067
|
+
updateFromUrl(values) {
|
|
3068
|
+
let urlValue = values[this.getKey()];
|
|
3069
|
+
if (urlValue != null) {
|
|
3070
|
+
if (!this._sceneObject.isActive) {
|
|
3071
|
+
this._sceneObject.skipNextValidation = true;
|
|
3072
|
+
}
|
|
3073
|
+
const { values: values2, texts } = fromUrlValues(urlValue);
|
|
3074
|
+
this._sceneObject.changeValueTo(values2, texts);
|
|
3075
|
+
}
|
|
3076
|
+
}
|
|
3077
|
+
}
|
|
3078
|
+
function toUrlValues(values, texts) {
|
|
3079
|
+
values = Array.isArray(values) ? values : [values];
|
|
3080
|
+
texts = Array.isArray(texts) ? texts : [texts];
|
|
3081
|
+
return values.map((value, idx) => {
|
|
3082
|
+
if (value === void 0 || value === null) {
|
|
3083
|
+
return "";
|
|
3084
|
+
}
|
|
3085
|
+
value = String(value);
|
|
3086
|
+
let text = texts[idx];
|
|
3087
|
+
text = text === void 0 || text === null ? value : String(text);
|
|
3088
|
+
return toUrlCommaDelimitedString(value, text);
|
|
3089
|
+
});
|
|
3090
|
+
}
|
|
3091
|
+
function fromUrlValues(urlValues) {
|
|
3092
|
+
urlValues = Array.isArray(urlValues) ? urlValues : [urlValues];
|
|
3093
|
+
return urlValues.reduce(
|
|
3094
|
+
(acc, urlValue) => {
|
|
3095
|
+
const [value, label] = (urlValue != null ? urlValue : "").split(",");
|
|
3096
|
+
acc.values.push(unescapeUrlDelimiters(value));
|
|
3097
|
+
acc.texts.push(unescapeUrlDelimiters(label != null ? label : value));
|
|
3098
|
+
return acc;
|
|
3099
|
+
},
|
|
3100
|
+
{
|
|
3101
|
+
values: [],
|
|
3102
|
+
texts: []
|
|
3103
|
+
}
|
|
3104
|
+
);
|
|
3105
|
+
}
|
|
3106
|
+
|
|
3048
3107
|
var __defProp$y = Object.defineProperty;
|
|
3049
3108
|
var __defProps$m = Object.defineProperties;
|
|
3050
3109
|
var __getOwnPropDescs$m = Object.getOwnPropertyDescriptors;
|
|
@@ -3081,6 +3140,7 @@ class GroupByVariable extends MultiValueVariable {
|
|
|
3081
3140
|
noValueOnClear: true
|
|
3082
3141
|
}));
|
|
3083
3142
|
this.isLazy = true;
|
|
3143
|
+
this._urlSync = new GroupByVariableUrlSyncHandler(this);
|
|
3084
3144
|
this._getKeys = async (ds) => {
|
|
3085
3145
|
var _a, _b, _c;
|
|
3086
3146
|
const override = await ((_b = (_a = this.state).getTagKeysProvider) == null ? void 0 : _b.call(_a, this, null));
|
|
@@ -3166,15 +3226,25 @@ class GroupByVariable extends MultiValueVariable {
|
|
|
3166
3226
|
}
|
|
3167
3227
|
GroupByVariable.Component = GroupByVariableRenderer;
|
|
3168
3228
|
function GroupByVariableRenderer({ model }) {
|
|
3169
|
-
const { value, key, maxVisibleValues, noValueOnClear } = model.useState();
|
|
3170
|
-
const
|
|
3229
|
+
const { value, text, key, maxVisibleValues, noValueOnClear } = model.useState();
|
|
3230
|
+
const values = React.useMemo(() => {
|
|
3231
|
+
const arrayValue = lodash.isArray(value) ? value : [value];
|
|
3232
|
+
const arrayText = lodash.isArray(text) ? text : [text];
|
|
3233
|
+
return arrayValue.map((value2, idx) => {
|
|
3234
|
+
var _a;
|
|
3235
|
+
return {
|
|
3236
|
+
value: value2,
|
|
3237
|
+
label: String((_a = arrayText[idx]) != null ? _a : value2)
|
|
3238
|
+
};
|
|
3239
|
+
});
|
|
3240
|
+
}, [value, text]);
|
|
3171
3241
|
const [isFetchingOptions, setIsFetchingOptions] = React.useState(false);
|
|
3172
3242
|
const [isOptionsOpen, setIsOptionsOpen] = React.useState(false);
|
|
3173
3243
|
const [inputValue, setInputValue] = React.useState("");
|
|
3174
|
-
const [uncommittedValue, setUncommittedValue] = React.useState(
|
|
3244
|
+
const [uncommittedValue, setUncommittedValue] = React.useState(values);
|
|
3175
3245
|
React.useEffect(() => {
|
|
3176
|
-
setUncommittedValue(
|
|
3177
|
-
}, [
|
|
3246
|
+
setUncommittedValue(values);
|
|
3247
|
+
}, [values]);
|
|
3178
3248
|
const onInputChange = (value2, { action }) => {
|
|
3179
3249
|
if (action === "input-change") {
|
|
3180
3250
|
setInputValue(value2);
|
|
@@ -3211,13 +3281,16 @@ function GroupByVariableRenderer({ model }) {
|
|
|
3211
3281
|
components: { Option: OptionWithCheckbox },
|
|
3212
3282
|
onInputChange,
|
|
3213
3283
|
onBlur: () => {
|
|
3214
|
-
model.changeValueTo(
|
|
3284
|
+
model.changeValueTo(
|
|
3285
|
+
uncommittedValue.map((x) => x.value),
|
|
3286
|
+
uncommittedValue.map((x) => x.label)
|
|
3287
|
+
);
|
|
3215
3288
|
},
|
|
3216
3289
|
onChange: (newValue, action) => {
|
|
3217
3290
|
if (action.action === "clear" && noValueOnClear) {
|
|
3218
3291
|
model.changeValueTo([]);
|
|
3219
3292
|
}
|
|
3220
|
-
setUncommittedValue(newValue
|
|
3293
|
+
setUncommittedValue(newValue);
|
|
3221
3294
|
},
|
|
3222
3295
|
onOpenMenu: async () => {
|
|
3223
3296
|
setIsFetchingOptions(true);
|
|
@@ -3532,7 +3605,7 @@ class AdHocFiltersVariableUrlSyncHandler {
|
|
|
3532
3605
|
if (filters.length === 0) {
|
|
3533
3606
|
return { [this.getKey()]: [""] };
|
|
3534
3607
|
}
|
|
3535
|
-
const value = filters.filter(isFilterComplete).map((filter) => toArray(filter).map(
|
|
3608
|
+
const value = filters.filter(isFilterComplete).map((filter) => toArray(filter).map(escapeUrlPipeDelimiters).join("|"));
|
|
3536
3609
|
return { [this.getKey()]: value };
|
|
3537
3610
|
}
|
|
3538
3611
|
updateFromUrl(values) {
|
|
@@ -3552,39 +3625,13 @@ function deserializeUrlToFilters(value) {
|
|
|
3552
3625
|
const filter = toFilter(value);
|
|
3553
3626
|
return filter === null ? [] : [filter];
|
|
3554
3627
|
}
|
|
3555
|
-
function escapePipeDelimiters(value) {
|
|
3556
|
-
if (value === null || value === void 0) {
|
|
3557
|
-
return "";
|
|
3558
|
-
}
|
|
3559
|
-
return value = /\|/g[Symbol.replace](value, "__gfp__");
|
|
3560
|
-
}
|
|
3561
|
-
function escapeCommaDelimiters(value) {
|
|
3562
|
-
if (value === null || value === void 0) {
|
|
3563
|
-
return "";
|
|
3564
|
-
}
|
|
3565
|
-
return /,/g[Symbol.replace](value, "__gfc__");
|
|
3566
|
-
}
|
|
3567
|
-
function unescapeDelimiters(value) {
|
|
3568
|
-
if (value === null || value === void 0) {
|
|
3569
|
-
return "";
|
|
3570
|
-
}
|
|
3571
|
-
value = /__gfp__/g[Symbol.replace](value, "|");
|
|
3572
|
-
value = /__gfc__/g[Symbol.replace](value, ",");
|
|
3573
|
-
return value;
|
|
3574
|
-
}
|
|
3575
3628
|
function toArray(filter) {
|
|
3576
3629
|
return [
|
|
3577
|
-
|
|
3630
|
+
toUrlCommaDelimitedString(filter.key, filter.keyLabel),
|
|
3578
3631
|
filter.operator,
|
|
3579
|
-
|
|
3632
|
+
toUrlCommaDelimitedString(filter.value, filter.valueLabel)
|
|
3580
3633
|
];
|
|
3581
3634
|
}
|
|
3582
|
-
function toCommaDelimitedString(key, label) {
|
|
3583
|
-
if (!label || key === label) {
|
|
3584
|
-
return escapeCommaDelimiters(key);
|
|
3585
|
-
}
|
|
3586
|
-
return [key, label].map(escapeCommaDelimiters).join(",");
|
|
3587
|
-
}
|
|
3588
3635
|
function toFilter(urlValue) {
|
|
3589
3636
|
if (typeof urlValue !== "string" || urlValue.length === 0) {
|
|
3590
3637
|
return null;
|
|
@@ -3593,7 +3640,7 @@ function toFilter(urlValue) {
|
|
|
3593
3640
|
const [key2, label] = v.split(",");
|
|
3594
3641
|
acc.push(key2, label != null ? label : key2);
|
|
3595
3642
|
return acc;
|
|
3596
|
-
}, []).map(
|
|
3643
|
+
}, []).map(unescapeUrlDelimiters);
|
|
3597
3644
|
return {
|
|
3598
3645
|
key,
|
|
3599
3646
|
keyLabel,
|
|
@@ -4314,6 +4361,32 @@ function filterOutInactiveRunnerDuplicates(runners) {
|
|
|
4314
4361
|
return activeItems;
|
|
4315
4362
|
});
|
|
4316
4363
|
}
|
|
4364
|
+
function escapeUrlPipeDelimiters(value) {
|
|
4365
|
+
if (value === null || value === void 0) {
|
|
4366
|
+
return "";
|
|
4367
|
+
}
|
|
4368
|
+
return value = /\|/g[Symbol.replace](value, "__gfp__");
|
|
4369
|
+
}
|
|
4370
|
+
function escapeUrlCommaDelimiters(value) {
|
|
4371
|
+
if (value === null || value === void 0) {
|
|
4372
|
+
return "";
|
|
4373
|
+
}
|
|
4374
|
+
return /,/g[Symbol.replace](value, "__gfc__");
|
|
4375
|
+
}
|
|
4376
|
+
function unescapeUrlDelimiters(value) {
|
|
4377
|
+
if (value === null || value === void 0) {
|
|
4378
|
+
return "";
|
|
4379
|
+
}
|
|
4380
|
+
value = /__gfp__/g[Symbol.replace](value, "|");
|
|
4381
|
+
value = /__gfc__/g[Symbol.replace](value, ",");
|
|
4382
|
+
return value;
|
|
4383
|
+
}
|
|
4384
|
+
function toUrlCommaDelimitedString(key, label) {
|
|
4385
|
+
if (!label || key === label) {
|
|
4386
|
+
return escapeUrlCommaDelimiters(key);
|
|
4387
|
+
}
|
|
4388
|
+
return [key, label].map(escapeUrlCommaDelimiters).join(",");
|
|
4389
|
+
}
|
|
4317
4390
|
|
|
4318
4391
|
function isAdHocVariable(variable) {
|
|
4319
4392
|
return variable.state.type === "adhoc";
|
|
@@ -7952,6 +8025,10 @@ var __objRest = (source, exclude) => {
|
|
|
7952
8025
|
};
|
|
7953
8026
|
function SceneGridLayoutRenderer({ model }) {
|
|
7954
8027
|
const { children, isLazy, isDraggable, isResizable } = model.useState();
|
|
8028
|
+
const ref = React.useRef(null);
|
|
8029
|
+
React.useEffect(() => {
|
|
8030
|
+
updateAnimationClass(ref, !!isDraggable);
|
|
8031
|
+
}, [isDraggable]);
|
|
7955
8032
|
validateChildrenSize(children);
|
|
7956
8033
|
return /* @__PURE__ */ React__default["default"].createElement(AutoSizer__default["default"], null, ({ width, height }) => {
|
|
7957
8034
|
if (width === 0) {
|
|
@@ -7959,8 +8036,9 @@ function SceneGridLayoutRenderer({ model }) {
|
|
|
7959
8036
|
}
|
|
7960
8037
|
const layout = model.buildGridLayout(width, height);
|
|
7961
8038
|
return /* @__PURE__ */ React__default["default"].createElement("div", {
|
|
8039
|
+
ref,
|
|
7962
8040
|
style: { width: `${width}px`, height: "100%", position: "relative", zIndex: 1 },
|
|
7963
|
-
className:
|
|
8041
|
+
className: "react-grid-layout"
|
|
7964
8042
|
}, /* @__PURE__ */ React__default["default"].createElement(ReactGridLayout__default["default"], {
|
|
7965
8043
|
width,
|
|
7966
8044
|
isDraggable: isDraggable && width > 768,
|
|
@@ -8023,6 +8101,17 @@ function validateChildrenSize(children) {
|
|
|
8023
8101
|
throw new Error("All children must have a size specified");
|
|
8024
8102
|
}
|
|
8025
8103
|
}
|
|
8104
|
+
function updateAnimationClass(ref, isDraggable, retry) {
|
|
8105
|
+
if (ref.current) {
|
|
8106
|
+
if (isDraggable) {
|
|
8107
|
+
ref.current.classList.add("react-grid-layout--enable-move-animations");
|
|
8108
|
+
} else {
|
|
8109
|
+
ref.current.classList.remove("react-grid-layout--enable-move-animations");
|
|
8110
|
+
}
|
|
8111
|
+
} else if (!retry) {
|
|
8112
|
+
setTimeout(() => updateAnimationClass(ref, isDraggable, true), 50);
|
|
8113
|
+
}
|
|
8114
|
+
}
|
|
8026
8115
|
const ResizeHandle = React__default["default"].forwardRef((_a, ref) => {
|
|
8027
8116
|
var _b = _a, divProps = __objRest(_b, ["handleAxis"]);
|
|
8028
8117
|
const customCssClass = ui.useStyles2(getResizeHandleStyles);
|