@orchestrator-ui/orchestrator-ui-components 8.7.1 → 8.7.3

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/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // src/components/WfoAutoExpandableTextArea/WfoAutoExpandableTextArea.tsx
2
- import { useCallback as useCallback5, useEffect as useEffect8, useRef as useRef3 } from "react";
2
+ import { useCallback as useCallback5, useEffect as useEffect8, useRef as useRef4 } from "react";
3
3
  import { EuiTextArea as EuiTextArea2 } from "@elastic/eui";
4
4
 
5
5
  // src/hooks/useCheckEngineStatus.ts
@@ -61,7 +61,7 @@ var PolicyResource = /* @__PURE__ */ ((PolicyResource2) => {
61
61
  })(PolicyResource || {});
62
62
 
63
63
  // src/configuration/version.ts
64
- var ORCHESTRATOR_UI_LIBRARY_VERSION = "8.7.1";
64
+ var ORCHESTRATOR_UI_LIBRARY_VERSION = "8.7.3";
65
65
 
66
66
  // src/types/types.ts
67
67
  var EngineStatus = /* @__PURE__ */ ((EngineStatus2) => {
@@ -3117,6 +3117,7 @@ var {
3117
3117
  useLazySearchQuery,
3118
3118
  useSearchWithPaginationMutation,
3119
3119
  useSearchPathsQuery,
3120
+ useLazySearchPathsQuery,
3120
3121
  useSearchDefinitionsQuery
3121
3122
  } = searchApi;
3122
3123
 
@@ -5348,7 +5349,7 @@ var useGetWorkflowNameById = (workflowId) => {
5348
5349
  };
5349
5350
 
5350
5351
  // src/hooks/usePathAutoComplete.ts
5351
- import { useEffect as useEffect3, useState as useState9 } from "react";
5352
+ import { useEffect as useEffect3, useRef as useRef2, useState as useState9 } from "react";
5352
5353
 
5353
5354
  // src/hooks/useDebounce.ts
5354
5355
  import { useEffect as useEffect2, useState as useState8 } from "react";
@@ -5408,6 +5409,40 @@ var FALLBACK_DEFINITIONS = {
5408
5409
  }
5409
5410
  }
5410
5411
  };
5412
+ var mapPathAutocompleteResponseToPathInfos = (pathData, definitions) => {
5413
+ const enrichedPaths = [];
5414
+ (pathData.leaves || []).forEach((leaf) => {
5415
+ const primaryType = leaf.ui_types[0] || "string";
5416
+ const typeDefinition = definitions[primaryType];
5417
+ enrichedPaths.push({
5418
+ path: leaf.name,
5419
+ type: primaryType,
5420
+ operators: typeDefinition?.operators || [],
5421
+ value_schema: typeDefinition?.value_schema || {},
5422
+ group: "leaf",
5423
+ displayLabel: leaf.name,
5424
+ ui_types: leaf.ui_types,
5425
+ availablePaths: leaf.paths || [],
5426
+ pathCount: leaf.paths ? leaf.paths?.length : 0
5427
+ });
5428
+ });
5429
+ (pathData.components || []).forEach((component) => {
5430
+ const primaryType = component.ui_types[0] || "string";
5431
+ const typeDefinition = definitions[primaryType];
5432
+ enrichedPaths.push({
5433
+ path: component.name,
5434
+ type: "component",
5435
+ operators: typeDefinition?.operators || [],
5436
+ value_schema: typeDefinition?.value_schema || {},
5437
+ group: "component",
5438
+ displayLabel: component.name,
5439
+ ui_types: component.ui_types,
5440
+ availablePaths: component.paths || [],
5441
+ pathCount: component.paths ? component.paths?.length : 0
5442
+ });
5443
+ });
5444
+ return enrichedPaths;
5445
+ };
5411
5446
  var usePathAutocomplete = (prefix, entityType) => {
5412
5447
  const [paths, setPaths] = useState9([]);
5413
5448
  const debouncedPrefix = useDebounce(prefix, 300);
@@ -5425,42 +5460,39 @@ var usePathAutocomplete = (prefix, entityType) => {
5425
5460
  if (!pathData) {
5426
5461
  return;
5427
5462
  }
5428
- const enrichedPaths = [];
5429
- (pathData.leaves || []).forEach((leaf) => {
5430
- const primaryType = leaf.ui_types[0] || "string";
5431
- const typeDefinition = definitions[primaryType];
5432
- enrichedPaths.push({
5433
- path: leaf.name,
5434
- type: primaryType,
5435
- operators: typeDefinition?.operators || [],
5436
- value_schema: typeDefinition?.value_schema || {},
5437
- group: "leaf",
5438
- displayLabel: leaf.name,
5439
- ui_types: leaf.ui_types,
5440
- availablePaths: leaf.paths || [],
5441
- pathCount: leaf.paths ? leaf.paths?.length : 0
5442
- });
5443
- });
5444
- (pathData.components || []).forEach((component) => {
5445
- const primaryType = component.ui_types[0] || "string";
5446
- const typeDefinition = definitions[primaryType];
5447
- enrichedPaths.push({
5448
- path: component.name,
5449
- type: "component",
5450
- operators: typeDefinition?.operators || [],
5451
- value_schema: typeDefinition?.value_schema || {},
5452
- group: "component",
5453
- displayLabel: component.name,
5454
- ui_types: component.ui_types,
5455
- availablePaths: component.paths || [],
5456
- pathCount: component.paths ? component.paths?.length : 0
5457
- });
5458
- });
5459
- setPaths(enrichedPaths);
5463
+ setPaths(mapPathAutocompleteResponseToPathInfos(pathData, definitions));
5460
5464
  }, [pathData, definitions, debouncedPrefix?.length]);
5461
5465
  const errorMessage = isError ? "Failed to load paths" : defError ? "Failed to load definitions" : null;
5462
5466
  return { paths, loading: isLoading, error: errorMessage };
5463
5467
  };
5468
+ var useFieldsPathInfo = (fields, entityType) => {
5469
+ const [fieldsPathInfo, setFieldsPathInfo] = useState9(/* @__PURE__ */ new Map());
5470
+ const requestedFieldsRef = useRef2(/* @__PURE__ */ new Set());
5471
+ const [fetchPaths] = useLazySearchPathsQuery();
5472
+ const { data: definitions, isError: definitionsFailed } = useSearchDefinitionsQuery();
5473
+ const settledDefinitions = definitions ?? (definitionsFailed ? FALLBACK_DEFINITIONS : void 0);
5474
+ useEffect3(() => {
5475
+ requestedFieldsRef.current = /* @__PURE__ */ new Set();
5476
+ setFieldsPathInfo(/* @__PURE__ */ new Map());
5477
+ }, [entityType]);
5478
+ useEffect3(() => {
5479
+ if (!settledDefinitions) {
5480
+ return;
5481
+ }
5482
+ const newFields = fields.filter((field) => field && !requestedFieldsRef.current.has(field));
5483
+ newFields.forEach((field) => {
5484
+ requestedFieldsRef.current.add(field);
5485
+ fetchPaths({ q: field, entity_type: entityType }, true).unwrap().then((pathData) => {
5486
+ const pathInfos = mapPathAutocompleteResponseToPathInfos(pathData, settledDefinitions);
5487
+ const match = pathInfos.find((pathInfo) => pathInfo.path === field) ?? pathInfos.find((pathInfo) => pathInfo.availablePaths?.includes(field));
5488
+ setFieldsPathInfo((previous) => new Map(previous).set(field, match ?? null));
5489
+ }).catch(() => {
5490
+ requestedFieldsRef.current.delete(field);
5491
+ });
5492
+ });
5493
+ }, [fields, entityType, fetchPaths, settledDefinitions]);
5494
+ return fieldsPathInfo;
5495
+ };
5464
5496
 
5465
5497
  // src/hooks/useGetPydanticFormsConfig.tsx
5466
5498
  import { useCallback as useCallback4 } from "react";
@@ -6341,7 +6373,7 @@ var WfoTimestampField = ({
6341
6373
  };
6342
6374
 
6343
6375
  // src/components/WfoPydanticForm/fields/WfoCron.tsx
6344
- import React15, { useMemo as useMemo2, useRef as useRef2, useState as useState13 } from "react";
6376
+ import React15, { useMemo as useMemo2, useRef as useRef3, useState as useState13 } from "react";
6345
6377
  import { CronExpressionParser } from "cron-parser";
6346
6378
  import cronstrue from "cronstrue/i18n";
6347
6379
  import _3 from "lodash";
@@ -6415,7 +6447,7 @@ var WfoCron = ({ onChange, value, disabled, pydanticFormField }) => {
6415
6447
  const t = useTranslations10("pydanticForms.widgets.cron");
6416
6448
  const cronstrueLocale = useLanguageCode();
6417
6449
  const [activeFieldIndex, setActiveFieldIndex] = useState13(null);
6418
- const inputRef = useRef2(null);
6450
+ const inputRef = useRef3(null);
6419
6451
  const fieldName = getFormFieldIdWithPath3(pydanticFormField.id);
6420
6452
  const fieldValue = _3.isObject(value) && _3.has(value, fieldName) ? _3.get(value, fieldName) : value;
6421
6453
  const { description, parseError, nextOccurrences } = useMemo2(() => {
@@ -6786,7 +6818,7 @@ var getStyles2 = ({ theme, toSecondaryColor }) => {
6786
6818
  import { jsx as jsx93 } from "@emotion/react/jsx-runtime";
6787
6819
  var WfoAutoExpandableTextArea = ({ inputRef, onChange, ...restProps }) => {
6788
6820
  const { autoExpandableTextAreaStyles } = useWithOrchestratorTheme(getStyles2);
6789
- const textAreaRef = useRef3(null);
6821
+ const textAreaRef = useRef4(null);
6790
6822
  const adjustTextAreaHeight = (textArea) => {
6791
6823
  if (!textArea) {
6792
6824
  return;
@@ -7731,7 +7763,7 @@ var WfoValueOnlyTable = ({ values, showCopyToClipboardIcon = false }) => {
7731
7763
  };
7732
7764
 
7733
7765
  // src/components/WfoSearchBar/WfoSearchField.tsx
7734
- import { useEffect as useEffect10, useRef as useRef4, useState as useState14 } from "react";
7766
+ import { useEffect as useEffect10, useRef as useRef5, useState as useState14 } from "react";
7735
7767
  import { useTranslations as useTranslations19 } from "next-intl";
7736
7768
  import { EuiFieldSearch, EuiFormRow as EuiFormRow3 } from "@elastic/eui";
7737
7769
  import { jsx as jsx120 } from "@emotion/react/jsx-runtime";
@@ -7739,7 +7771,7 @@ var WfoSearchField = ({ queryString, queryIsValid = true, onUpdateQueryString })
7739
7771
  const t = useTranslations19("common");
7740
7772
  const tError = useTranslations19("errors");
7741
7773
  const { formFieldBaseStyle } = useWithOrchestratorTheme(getFormFieldsBaseStyle);
7742
- const handleSearch = useRef4((queryText) => onUpdateQueryString?.(queryText));
7774
+ const handleSearch = useRef5((queryText) => onUpdateQueryString?.(queryText));
7743
7775
  const [currentQuery, setCurrentQuery] = useState14(queryString ?? "");
7744
7776
  useEffect10(() => {
7745
7777
  setCurrentQuery(queryString ?? "");
@@ -8607,7 +8639,7 @@ var graphQlRelatedSubscriptionsTerminatedSubscriptionsFilterMapper = (data) => d
8607
8639
  } : void 0;
8608
8640
 
8609
8641
  // src/components/WfoTable/WfoTable/WfoTable.tsx
8610
- import { useRef as useRef8, useState as useState18 } from "react";
8642
+ import { useRef as useRef9, useState as useState18 } from "react";
8611
8643
  import { useTranslations as useTranslations28 } from "next-intl";
8612
8644
  import { EuiSpacer as EuiSpacer12, EuiTablePagination, useEuiScrollBar } from "@elastic/eui";
8613
8645
  import { useVirtualizer } from "@tanstack/react-virtual";
@@ -9082,15 +9114,15 @@ var WfoTableDataRows = ({
9082
9114
  };
9083
9115
 
9084
9116
  // src/components/WfoTable/WfoTable/WfoTableHeaderRow.tsx
9085
- import { useRef as useRef7 } from "react";
9117
+ import { useRef as useRef8 } from "react";
9086
9118
 
9087
9119
  // src/components/WfoTable/WfoTable/WfoDragHandler.tsx
9088
- import { useRef as useRef5, useState as useState16 } from "react";
9120
+ import { useRef as useRef6, useState as useState16 } from "react";
9089
9121
  import Draggable from "react-draggable";
9090
9122
  import { jsx as jsx135 } from "@emotion/react/jsx-runtime";
9091
9123
  var MINIMUM_COLUMN_WIDTH = 50;
9092
9124
  var WfoDragHandler = ({ headerRowRef, fieldName, onUpdateColumWidth }) => {
9093
- const nodeRef = useRef5(null);
9125
+ const nodeRef = useRef6(null);
9094
9126
  const [position, setPosition] = useState16({ x: 0, y: 0 });
9095
9127
  const [isDragging, setIsDragging] = useState16(false);
9096
9128
  const { dragAndDropStyle } = useWithOrchestratorTheme(getWfoTableStyles);
@@ -9159,14 +9191,14 @@ import { useState as useState17 } from "react";
9159
9191
  import { EuiHorizontalRule as EuiHorizontalRule3, EuiPopover as EuiPopover3, EuiText as EuiText10, useGeneratedHtmlId } from "@elastic/eui";
9160
9192
 
9161
9193
  // src/components/WfoTable/WfoTable/WfoTableHeaderCell/WfoPopoverContent.tsx
9162
- import { useRef as useRef6 } from "react";
9194
+ import { useRef as useRef7 } from "react";
9163
9195
  import { useTranslations as useTranslations27 } from "next-intl";
9164
9196
  import { EuiFieldSearch as EuiFieldSearch2, EuiForm, EuiFormRow as EuiFormRow4 } from "@elastic/eui";
9165
9197
  import { jsx as jsx137 } from "@emotion/react/jsx-runtime";
9166
9198
  var WfoPopoverContent = ({ onSearch, closePopover, fieldName }) => {
9167
9199
  const { headerCellPopoverContentStyle } = useWithOrchestratorTheme(getWfoBasicTableStyles);
9168
9200
  const t = useTranslations27("common");
9169
- const inputRef = useRef6(null);
9201
+ const inputRef = useRef7(null);
9170
9202
  const handleSubmit = (e) => {
9171
9203
  e.preventDefault();
9172
9204
  const newValue = inputRef.current?.value || "";
@@ -9261,7 +9293,7 @@ var WfoTableHeaderRow = ({
9261
9293
  }) => {
9262
9294
  const { cellStyle, headerCellContainer, sortableHeaderCellStyle, rowStyle, setWidth } = useWithOrchestratorTheme(getWfoTableStyles);
9263
9295
  const sortedVisibleColumns = getSortedVisibleColumns(columnConfig, columnOrder, hiddenColumns);
9264
- const headerRowRef = useRef7(null);
9296
+ const headerRowRef = useRef8(null);
9265
9297
  return /* @__PURE__ */ jsx139("tr", { className, css: rowStyle, ref: headerRowRef, children: sortedVisibleColumns.map(([fieldName, columnConfig2], index) => {
9266
9298
  const dataSortingConfiguration = dataSorting.find((dataSorting2) => dataSorting2.field === fieldName);
9267
9299
  if (columnConfig2.columnType === "data" /* DATA */) {
@@ -9353,7 +9385,7 @@ var WfoTable = ({
9353
9385
  );
9354
9386
  const dataLength = data.length;
9355
9387
  usePageIndexBoundsGuard({ dataLength, isLoading, pagination });
9356
- const parentRef = useRef8(null);
9388
+ const parentRef = useRef9(null);
9357
9389
  const columnConfigWithFiller = appendFillerColumn ? {
9358
9390
  ...columnConfig,
9359
9391
  filler: {
@@ -9494,7 +9526,7 @@ import { useTranslations as useTranslations30 } from "next-intl";
9494
9526
  import { EuiButtonEmpty as EuiButtonEmpty4, EuiFlexGroup as EuiFlexGroup11, EuiSpacer as EuiSpacer13 } from "@elastic/eui";
9495
9527
 
9496
9528
  // src/components/WfoTable/WfoTable/WfoGroupedTable/useGroupedTableConfig.tsx
9497
- import { useEffect as useEffect13, useRef as useRef9, useState as useState19 } from "react";
9529
+ import { useEffect as useEffect13, useRef as useRef10, useState as useState19 } from "react";
9498
9530
 
9499
9531
  // src/components/WfoTable/WfoTable/WfoGroupedTable/WfoExpandableRow.tsx
9500
9532
  import { useTranslations as useTranslations29 } from "next-intl";
@@ -9667,7 +9699,7 @@ var useGroupedTableConfig = ({
9667
9699
  nestingLevel = 0,
9668
9700
  notifyParent
9669
9701
  }) => {
9670
- const groupReferences = useRef9(/* @__PURE__ */ new Map());
9702
+ const groupReferences = useRef10(/* @__PURE__ */ new Map());
9671
9703
  const [expandedRowIds, setExpandedRowIds] = useState19([]);
9672
9704
  const [isAllGroupsExpanded, setIsAllGroupsExpanded] = useState19(false);
9673
9705
  const [isAllSubgroupsExpanded, setIsAllSubgroupsExpanded] = useState19([]);
@@ -9676,8 +9708,8 @@ var useGroupedTableConfig = ({
9676
9708
  groupName: key.toString()
9677
9709
  }));
9678
9710
  const numberOfColumnsInnerTable = Object.keys(columnConfig).length;
9679
- const notifyParentRef = useRef9(notifyParent);
9680
- const groupsRef = useRef9(groups);
9711
+ const notifyParentRef = useRef10(notifyParent);
9712
+ const groupsRef = useRef10(groups);
9681
9713
  useEffect13(() => {
9682
9714
  if (isExpanding) {
9683
9715
  groupReferences.current.forEach((ref) => {
@@ -11742,12 +11774,12 @@ var WfoInlineJson = ({ data }) => {
11742
11774
  };
11743
11775
 
11744
11776
  // src/components/WfoTable/WfoRowContextMenu/WfoRowContextMenu.tsx
11745
- import { useEffect as useEffect18, useRef as useRef10, useState as useState29 } from "react";
11777
+ import { useEffect as useEffect18, useRef as useRef11, useState as useState29 } from "react";
11746
11778
  import { EuiButtonIcon as EuiButtonIcon10, EuiContextMenu as EuiContextMenu2, EuiPopover as EuiPopover5 } from "@elastic/eui";
11747
11779
  import { jsx as jsx176 } from "@emotion/react/jsx-runtime";
11748
11780
  var WfoRowContextMenu = ({ items, onOpenContextMenu }) => {
11749
11781
  const [isOpen, setIsOpen] = useState29(false);
11750
- const onOpenContextMenuRef = useRef10(onOpenContextMenu);
11782
+ const onOpenContextMenuRef = useRef11(onOpenContextMenu);
11751
11783
  useEffect18(() => {
11752
11784
  if (isOpen) {
11753
11785
  onOpenContextMenuRef.current?.();
@@ -11926,12 +11958,12 @@ var WfoAdvancedTable = ({
11926
11958
  };
11927
11959
 
11928
11960
  // src/components/WfoTable/WfoStructuredSearchTable/WfoStructuredSearchTable.tsx
11929
- import { useEffect as useEffect24, useState as useState35 } from "react";
11961
+ import { useEffect as useEffect25, useState as useState35 } from "react";
11930
11962
  import { useTranslations as useTranslations49 } from "next-intl";
11931
11963
  import { EuiButton as EuiButton11, EuiFlexGroup as EuiFlexGroup22, EuiFlexItem as EuiFlexItem23, EuiFormRow as EuiFormRow7, EuiSelect as EuiSelect3, EuiSpacer as EuiSpacer19, EuiText as EuiText18 } from "@elastic/eui";
11932
11964
 
11933
11965
  // src/components/WfoTable/WfoStructuredSearchTable/WfoFilterBuilder.tsx
11934
- import { useRef as useRef13, useState as useState34 } from "react";
11966
+ import { useEffect as useEffect24, useMemo as useMemo4, useRef as useRef14, useState as useState34 } from "react";
11935
11967
  import { QueryBuilder, generateID } from "react-querybuilder";
11936
11968
  import "react-querybuilder/dist/query-builder.css";
11937
11969
  import { useTranslations as useTranslations47 } from "next-intl";
@@ -12148,7 +12180,7 @@ var WfoCombinatorSelector = (props) => {
12148
12180
  };
12149
12181
 
12150
12182
  // src/components/WfoTable/WfoStructuredSearchTable/WfoFieldSelector.tsx
12151
- import { useEffect as useEffect20, useRef as useRef11, useState as useState31 } from "react";
12183
+ import { useEffect as useEffect20, useRef as useRef12, useState as useState31 } from "react";
12152
12184
  import { useTranslations as useTranslations41 } from "next-intl";
12153
12185
  import { EuiComboBox } from "@elastic/eui";
12154
12186
  import { jsx as jsx180 } from "@emotion/react/jsx-runtime";
@@ -12171,8 +12203,8 @@ var WfoFieldSelector = ({ handleOnChange, disabled, rule, context }) => {
12171
12203
  const prefilledFieldOptions2 = context.prefilledFieldOptions;
12172
12204
  const [selectedValue, setSelectedValue] = useState31(field);
12173
12205
  const [searchInput, setSearchInput] = useState31(null);
12174
- const optionsRef = useRef11([]);
12175
- const handleFieldSelectionRef = useRef11(() => {
12206
+ const optionsRef = useRef12([]);
12207
+ const handleFieldSelectionRef = useRef12(() => {
12176
12208
  });
12177
12209
  const t = useTranslations41("search.page");
12178
12210
  const getOption = (path) => ({
@@ -12209,7 +12241,7 @@ var WfoFieldSelector = ({ handleOnChange, disabled, rule, context }) => {
12209
12241
  const storeFieldOperators = (selectedValue2) => {
12210
12242
  const matchingPath = paths.find((path) => path.path === selectedValue2) ?? paths.find((path) => path.availablePaths?.includes(selectedValue2));
12211
12243
  const operators = matchingPath?.operators ?? prefilledFieldOptions2.get(selectedValue2) ?? [];
12212
- context?.onFieldSelected?.(selectedValue2, operators);
12244
+ context?.onFieldSelected?.(selectedValue2, operators, matchingPath);
12213
12245
  };
12214
12246
  const handleFieldSelection = (selectedOptions) => {
12215
12247
  const selectedOption = selectedOptions[0];
@@ -12276,33 +12308,53 @@ var WfoInlineCombinator = (props) => {
12276
12308
  };
12277
12309
 
12278
12310
  // src/components/WfoTable/WfoStructuredSearchTable/WfoOperatorSelector.tsx
12279
- import { useEffect as useEffect21, useMemo as useMemo3, useRef as useRef12 } from "react";
12311
+ import { useEffect as useEffect21, useMemo as useMemo3, useRef as useRef13 } from "react";
12280
12312
  import { defaultOperators } from "react-querybuilder";
12281
12313
  import { EuiSelect as EuiSelect2 } from "@elastic/eui";
12282
12314
  import { jsx as jsx182 } from "@emotion/react/jsx-runtime";
12283
12315
  var isOptionGroup = (operator) => "options" in operator;
12316
+ var FALLBACK_OPERATOR_LABELS = {
12317
+ notNull: "\u2713 has component",
12318
+ null: "\u2717 does not have component"
12319
+ };
12320
+ var getDefaultOperator = (options) => (options.find((option) => option.arity !== "unary") ?? options[0]).name;
12284
12321
  var WfoOperatorSelector = (props) => {
12285
12322
  const { value, handleOnChange } = props;
12286
- const flatOptions = props.options.flatMap(
12287
- (option) => isOptionGroup(option) ? option.options : [option]
12323
+ const flatOptions = useMemo3(
12324
+ () => props.options.flatMap(
12325
+ (option) => isOptionGroup(option) ? option.options : [option]
12326
+ ),
12327
+ [props.options]
12288
12328
  );
12289
12329
  const selectOptions = useMemo3(
12290
12330
  () => flatOptions.map((option) => ({ value: option.name, text: option.label })),
12291
12331
  [flatOptions]
12292
12332
  );
12293
12333
  const optionsKey = selectOptions.map((option) => option.value).join("|");
12294
- const previousOptionsKeyRef = useRef12(optionsKey);
12334
+ const previousOptionsKeyRef = useRef13(optionsKey);
12295
12335
  useEffect21(() => {
12296
12336
  const optionsChanged = previousOptionsKeyRef.current !== optionsKey;
12297
12337
  previousOptionsKeyRef.current = optionsKey;
12298
- if (!optionsChanged || selectOptions.length === 0) return;
12338
+ if (!optionsChanged) return;
12339
+ if (flatOptions.length === 0) {
12340
+ if (value === "null" || value === "notNull") {
12341
+ handleOnChange("=");
12342
+ }
12343
+ return;
12344
+ }
12299
12345
  const currentValueIsValid = selectOptions.some((option) => option.value === value);
12300
12346
  if (!currentValueIsValid) {
12301
- handleOnChange(selectOptions[0].value);
12347
+ handleOnChange(getDefaultOperator(flatOptions));
12302
12348
  }
12303
- }, [optionsKey, selectOptions, value, handleOnChange]);
12349
+ }, [optionsKey, flatOptions, selectOptions, value, handleOnChange]);
12304
12350
  const currentValueIsListed = !value || selectOptions.some((option) => option.value === value);
12305
- const displayOptions = currentValueIsListed ? selectOptions : [...selectOptions, { value, text: defaultOperators.find((operator) => operator.name === value)?.label ?? value }];
12351
+ const displayOptions = currentValueIsListed ? selectOptions : [
12352
+ ...selectOptions,
12353
+ {
12354
+ value,
12355
+ text: FALLBACK_OPERATOR_LABELS[value] ?? defaultOperators.find((operator) => operator.name === value)?.label ?? value
12356
+ }
12357
+ ];
12306
12358
  return /* @__PURE__ */ jsx182(
12307
12359
  EuiSelect2,
12308
12360
  {
@@ -12438,48 +12490,56 @@ import { EuiButtonGroup as EuiButtonGroup2, EuiDatePicker as EuiDatePicker2, Eui
12438
12490
  import { useEffect as useEffect22, useState as useState32 } from "react";
12439
12491
  import { EuiFlexGroup as EuiFlexGroup20 } from "@elastic/eui";
12440
12492
  import { jsx as jsx189, jsxs as jsxs95 } from "@emotion/react/jsx-runtime";
12441
- var WfoRangeEditor = ({ handleOnChange, operator, Element, value: currentValue }) => {
12442
- const [currentOperator, setCurrentOperator] = useState32(operator);
12493
+ var WfoRangeEditor = ({ handleOnChange, InputElement, value: currentValue }) => {
12443
12494
  const startValue = currentValue ? currentValue?.toString().split(",") : [];
12444
12495
  const [value, setValue] = useState32(startValue);
12496
+ const handleRangeChange = (newValue, rangeIndex) => {
12497
+ setValue((currentValues) => {
12498
+ const next = [...currentValues];
12499
+ const isCleared = newValue === void 0 || typeof newValue === "number" && Number.isNaN(newValue);
12500
+ next[rangeIndex] = isCleared ? void 0 : String(newValue);
12501
+ return next;
12502
+ });
12503
+ };
12445
12504
  useEffect22(() => {
12446
- if (operator !== currentOperator && (operator === "between" || currentOperator === "between")) {
12447
- setValue([]);
12448
- handleOnChange("");
12449
- setCurrentOperator(operator);
12450
- }
12451
- }, [currentOperator, handleOnChange, operator]);
12452
- const handleChange = (value2, rangeIndex = 0) => {
12453
- if (operator === "between") {
12454
- setValue((currentDates) => {
12455
- if (value2 === null) {
12456
- return currentDates.filter((_7, index) => index !== rangeIndex);
12457
- }
12458
- currentDates[rangeIndex] = value2;
12459
- if (currentDates.length === 2) {
12460
- handleOnChange(`${currentDates[0]},${currentDates[1]}`);
12461
- }
12462
- return currentDates;
12463
- });
12464
- } else {
12465
- handleOnChange(value2);
12505
+ if (value[0] !== void 0 && value[1] !== void 0) {
12506
+ handleOnChange(`${value[0]},${value[1]}`);
12466
12507
  }
12467
- };
12468
- if (operator === "between") {
12469
- return /* @__PURE__ */ jsxs95(EuiFlexGroup20, { direction: "row", gutterSize: "s", children: [
12470
- /* @__PURE__ */ jsx189(Element, { handleOnChange: handleChange, rangeIndex: 0, value: value[0] }),
12471
- /* @__PURE__ */ jsx189(Element, { handleOnChange: handleChange, rangeIndex: 1, value: value[1] })
12472
- ] });
12473
- }
12474
- return /* @__PURE__ */ jsx189(Element, { handleOnChange, value: value[0] });
12508
+ }, [value]);
12509
+ return /* @__PURE__ */ jsxs95(EuiFlexGroup20, { direction: "row", gutterSize: "s", children: [
12510
+ /* @__PURE__ */ jsx189(
12511
+ InputElement,
12512
+ {
12513
+ handleOnChange: (value2) => {
12514
+ handleRangeChange(value2, 0);
12515
+ },
12516
+ value: value[0]
12517
+ }
12518
+ ),
12519
+ /* @__PURE__ */ jsx189(
12520
+ InputElement,
12521
+ {
12522
+ handleOnChange: (value2) => {
12523
+ handleRangeChange(value2, 1);
12524
+ },
12525
+ value: value[1]
12526
+ }
12527
+ )
12528
+ ] });
12475
12529
  };
12476
12530
 
12477
12531
  // src/components/WfoTable/WfoStructuredSearchTable/WfoValueEditor.tsx
12478
12532
  import { jsx as jsx190 } from "@emotion/react/jsx-runtime";
12479
- var BooleanEditor = ({ handleOnChange, value: currentValue = true }) => {
12480
- const [value, setValue] = useState33(currentValue.toString());
12533
+ var BooleanEditor = ({
12534
+ handleOnChange,
12535
+ value: currentValue
12536
+ }) => {
12537
+ const initialValue = typeof currentValue === "boolean" ? currentValue : true;
12538
+ const [value, setValue] = useState33(initialValue.toString());
12481
12539
  useEffect23(() => {
12482
- handleOnChange(true);
12540
+ if (currentValue === void 0 || currentValue === "") {
12541
+ handleOnChange(initialValue);
12542
+ }
12483
12543
  }, []);
12484
12544
  const { buttonGroupStyles } = useWithOrchestratorTheme(getWfoStructuredSearchTableStyles);
12485
12545
  const options = [
@@ -12524,14 +12584,14 @@ var TextEditor = ({ handleOnChange, value: currentValue = "" }) => {
12524
12584
  };
12525
12585
  return /* @__PURE__ */ jsx190(EuiFieldText3, { value, onChange: handleTextChange, onBlur: handleOnBlur, onKeyDown: handleOnKeyDown });
12526
12586
  };
12527
- var NumberEditor = ({ handleOnChange, rangeIndex, value: currentValue }) => {
12587
+ var NumberEditor = ({ handleOnChange, value: currentValue }) => {
12528
12588
  const [value, setValue] = useState33(currentValue?.toString() || "");
12529
12589
  const handleNumberChange = (e) => {
12530
12590
  setValue(e.target.value || "");
12531
12591
  };
12532
12592
  const handleOnBlur = () => {
12533
12593
  const numberValue = parseFloat(value);
12534
- handleOnChange(numberValue, rangeIndex);
12594
+ handleOnChange(numberValue);
12535
12595
  };
12536
12596
  const handleOnKeyDown = (e) => {
12537
12597
  if (e.key === "Enter") {
@@ -12548,7 +12608,7 @@ var NumberEditor = ({ handleOnChange, rangeIndex, value: currentValue }) => {
12548
12608
  }
12549
12609
  );
12550
12610
  };
12551
- var DatePicker = ({ handleOnChange, rangeIndex, value: currentValue }) => {
12611
+ var DatePicker = ({ handleOnChange, value: currentValue }) => {
12552
12612
  const [date, setDate] = useState33(currentValue || "");
12553
12613
  const t = useTranslations46("search.page");
12554
12614
  return /* @__PURE__ */ jsx190(
@@ -12558,9 +12618,8 @@ var DatePicker = ({ handleOnChange, rangeIndex, value: currentValue }) => {
12558
12618
  onChange: (date2) => {
12559
12619
  const utcDate = date2 ? moment3.utc(date2) : void 0;
12560
12620
  setDate(utcDate?.toISOString() || "");
12561
- handleOnChange(utcDate?.toISOString(), rangeIndex);
12621
+ handleOnChange(utcDate?.toISOString());
12562
12622
  },
12563
- id: rangeIndex ? `date-range-${rangeIndex}` : "date-range",
12564
12623
  css: { width: "330px" },
12565
12624
  showTimeSelect: true,
12566
12625
  dateFormat: "yyyy-MM-dd HH:mm",
@@ -12579,20 +12638,24 @@ var WfoValueEditor = ({
12579
12638
  value,
12580
12639
  className
12581
12640
  }) => {
12641
+ if (operator === "null" || operator === "notNull") {
12642
+ return null;
12643
+ }
12644
+ const getComponentByType = () => {
12645
+ if (uiFieldType === "boolean" /* boolean */) return BooleanEditor;
12646
+ if (uiFieldType === "datetime" /* datetime */) return DatePicker;
12647
+ if (uiFieldType === "number" /* number */) return NumberEditor;
12648
+ return TextEditor;
12649
+ };
12582
12650
  const fieldPathInfoMap = context?.fieldPathInfoMap;
12583
12651
  const fieldInfo = fieldPathInfoMap && fieldPathInfoMap.has(fieldName) ? fieldPathInfoMap.get(fieldName) : void 0;
12584
- const uiFieldType = fieldInfo?.ui_types[0] || "text" /* text */;
12652
+ const uiFieldType = fieldInfo?.ui_types?.[0] || "text" /* text */;
12585
12653
  const getEditor = () => {
12586
- if (uiFieldType === "boolean" /* boolean */) {
12587
- return /* @__PURE__ */ jsx190(BooleanEditor, { handleOnChange, value });
12588
- }
12589
- if (uiFieldType === "datetime" /* datetime */) {
12590
- return /* @__PURE__ */ jsx190(WfoRangeEditor, { handleOnChange, operator, Element: DatePicker, value });
12591
- }
12592
- if (uiFieldType === "number" /* number */) {
12593
- return /* @__PURE__ */ jsx190(WfoRangeEditor, { handleOnChange, operator, Element: NumberEditor, value });
12654
+ const InputElement = getComponentByType();
12655
+ if (operator === "between") {
12656
+ return /* @__PURE__ */ jsx190(WfoRangeEditor, { handleOnChange, value, InputElement });
12594
12657
  }
12595
- return /* @__PURE__ */ jsx190(TextEditor, { handleOnChange, value });
12658
+ return /* @__PURE__ */ jsx190(InputElement, { handleOnChange, value });
12596
12659
  };
12597
12660
  const handleWrapperKeyDown = (event) => {
12598
12661
  if (event.key !== "Enter") return;
@@ -12602,6 +12665,61 @@ var WfoValueEditor = ({
12602
12665
  return /* @__PURE__ */ jsx190("div", { className, style: { display: "contents" }, onKeyDown: handleWrapperKeyDown, children: getEditor() });
12603
12666
  };
12604
12667
 
12668
+ // src/components/WfoTable/WfoStructuredSearchTable/utils.ts
12669
+ import { prepareRuleGroup } from "react-querybuilder";
12670
+ import { parseCEL } from "react-querybuilder/parseCEL";
12671
+ var collectRuleFields = (ruleGroup) => {
12672
+ const fields = ruleGroup.rules.flatMap((rule) => {
12673
+ if (typeof rule === "string") {
12674
+ return [];
12675
+ }
12676
+ if ("rules" in rule) {
12677
+ return collectRuleFields(rule);
12678
+ }
12679
+ return [rule.field];
12680
+ });
12681
+ return [...new Set(fields)];
12682
+ };
12683
+ var dropFieldValueSources = (ruleGroup) => ({
12684
+ ...ruleGroup,
12685
+ rules: ruleGroup.rules.map((rule) => {
12686
+ if (typeof rule === "string" || "rules" in rule) {
12687
+ return typeof rule === "string" ? rule : dropFieldValueSources(rule);
12688
+ }
12689
+ if (rule.valueSource === "field") {
12690
+ const ruleWithoutValueSource = { ...rule };
12691
+ delete ruleWithoutValueSource.valueSource;
12692
+ return ruleWithoutValueSource;
12693
+ }
12694
+ return rule;
12695
+ })
12696
+ });
12697
+ var parseCelToRuleGroup = (celString) => {
12698
+ if (!celString) {
12699
+ return void 0;
12700
+ }
12701
+ try {
12702
+ const ruleGroup = parseCEL(celString);
12703
+ return ruleGroup?.rules?.length > 0 ? prepareRuleGroup(dropFieldValueSources(ruleGroup)) : void 0;
12704
+ } catch {
12705
+ return void 0;
12706
+ }
12707
+ };
12708
+ var buildColumnFilter = (field, searchText, currentFilter, getColumnSearchFieldName) => {
12709
+ if (!searchText || searchText.includes('"')) {
12710
+ return void 0;
12711
+ }
12712
+ const searchFieldName = getColumnSearchFieldName?.(field) ?? String(field);
12713
+ const columnFilterCondition = `${searchFieldName} == "${searchText}"`;
12714
+ const trimmedCurrentFilter = currentFilter?.trim();
12715
+ const filterString = trimmedCurrentFilter ? `(${trimmedCurrentFilter}) && ${columnFilterCondition}` : columnFilterCondition;
12716
+ const ruleGroup = parseCelToRuleGroup(filterString);
12717
+ if (!ruleGroup) {
12718
+ return void 0;
12719
+ }
12720
+ return { filterString, ruleGroup };
12721
+ };
12722
+
12605
12723
  // src/components/WfoTable/WfoStructuredSearchTable/WfoFilterBuilder.tsx
12606
12724
  import { jsx as jsx191, jsxs as jsxs96 } from "@emotion/react/jsx-runtime";
12607
12725
  var SEARCH_OPERATOR_TO_RQB_OPERATOR_MAP = {
@@ -12612,8 +12730,11 @@ var SEARCH_OPERATOR_TO_RQB_OPERATOR_MAP = {
12612
12730
  gt: ">",
12613
12731
  gte: ">=",
12614
12732
  between: "between",
12615
- like: "contains"
12733
+ like: "contains",
12734
+ has_component: "notNull",
12735
+ not_has_component: "null"
12616
12736
  };
12737
+ var RQB_UNARY_OPERATORS = ["null", "notNull"];
12617
12738
  var OPERATOR_MAP2 = {
12618
12739
  eq: { symbol: "=", description: "equals" },
12619
12740
  neq: { symbol: "\u2260", description: "not equals" },
@@ -12649,22 +12770,47 @@ var WfoFilterBuilder = ({
12649
12770
  return (operators ?? []).map((operator) => {
12650
12771
  const { symbol, description } = OPERATOR_MAP2[operator] || { symbol: operator, description: operator };
12651
12772
  const rqbOperator = SEARCH_OPERATOR_TO_RQB_OPERATOR_MAP[operator] ?? operator;
12652
- return { name: rqbOperator, label: `${symbol} ${description}`, value: rqbOperator };
12773
+ return {
12774
+ name: rqbOperator,
12775
+ label: `${symbol} ${description}`,
12776
+ value: rqbOperator,
12777
+ ...RQB_UNARY_OPERATORS.includes(rqbOperator) && { arity: "unary" }
12778
+ };
12653
12779
  });
12654
12780
  };
12655
12781
  const t = useTranslations47("common");
12656
12782
  const { queryBuilderContainerStyles } = useWithOrchestratorTheme(getWfoStructuredSearchTableStyles);
12657
12783
  const [fieldToOperatorMap, setFieldToOperatorMap] = useState34(prefilledFieldOptions2);
12658
- const latestRuleGroupRef = useRef13(queryBuilderRuleGroup);
12784
+ const [fieldPathInfoMap, setFieldPathInfoMap] = useState34(/* @__PURE__ */ new Map());
12785
+ const latestRuleGroupRef = useRef14(queryBuilderRuleGroup);
12659
12786
  latestRuleGroupRef.current = queryBuilderRuleGroup;
12660
12787
  const handleValueEditorEnter = () => {
12661
12788
  handleSearch({ ruleGroup: latestRuleGroupRef.current });
12662
12789
  };
12663
- const handleFieldSelected = (field, operators) => {
12790
+ const handleFieldSelected = (field, operators, pathInfo) => {
12664
12791
  setFieldToOperatorMap((previousMap) => {
12665
12792
  return new Map(previousMap).set(field, operators);
12666
12793
  });
12794
+ if (pathInfo) {
12795
+ setFieldPathInfoMap((previousMap) => {
12796
+ return new Map(previousMap).set(field, pathInfo);
12797
+ });
12798
+ }
12667
12799
  };
12800
+ const unresolvedFields = useMemo4(
12801
+ () => collectRuleFields(queryBuilderRuleGroup).filter(
12802
+ (field) => field && field !== "~" && !fieldPathInfoMap.has(field)
12803
+ ),
12804
+ [queryBuilderRuleGroup, fieldPathInfoMap]
12805
+ );
12806
+ const resolvedFieldsPathInfo = useFieldsPathInfo(unresolvedFields, "SUBSCRIPTION" /* SUBSCRIPTION */);
12807
+ useEffect24(() => {
12808
+ resolvedFieldsPathInfo.forEach((pathInfo, field) => {
12809
+ if (pathInfo && !fieldPathInfoMap.has(field)) {
12810
+ handleFieldSelected(field, pathInfo.operators, pathInfo);
12811
+ }
12812
+ });
12813
+ }, [fieldPathInfoMap, resolvedFieldsPathInfo]);
12668
12814
  return /* @__PURE__ */ jsx191(EuiFlexGroup21, { css: queryBuilderContainerStyles, children: /* @__PURE__ */ jsxs96(EuiFlexGroup21, { direction: "column", children: [
12669
12815
  /* @__PURE__ */ jsx191(EuiFlexItem21, { children: /* @__PURE__ */ jsx191(
12670
12816
  QueryBuilder,
@@ -12678,6 +12824,7 @@ var WfoFilterBuilder = ({
12678
12824
  context: {
12679
12825
  onFieldSelected: handleFieldSelected,
12680
12826
  prefilledFieldOptions: prefilledFieldOptions2,
12827
+ fieldPathInfoMap,
12681
12828
  onValueEditorEnter: handleValueEditorEnter
12682
12829
  },
12683
12830
  getOperators: (field) => {
@@ -12695,7 +12842,12 @@ var WfoFilterBuilder = ({
12695
12842
  addRuleAction: null,
12696
12843
  addGroupAction: null,
12697
12844
  removeGroupAction: null,
12698
- removeRuleAction: WfoRemoveRuleAction
12845
+ removeRuleAction: WfoRemoveRuleAction,
12846
+ // Field-to-field comparisons are not supported, but a rule can briefly hold
12847
+ // valueSource 'field' while a CEL literal is being typed in the textarea
12848
+ // ('lldp == fals' parses 'fals' as an identifier) — without this override
12849
+ // react-querybuilder's default value source selector flashes into the rule.
12850
+ valueSourceSelector: null
12699
12851
  },
12700
12852
  addRuleToNewGroups: true,
12701
12853
  onAddGroup: onAddGroupHandler,
@@ -12792,34 +12944,6 @@ var WfoSearchFieldWithActions = ({
12792
12944
  ] });
12793
12945
  };
12794
12946
 
12795
- // src/components/WfoTable/WfoStructuredSearchTable/utils.ts
12796
- import { parseCEL } from "react-querybuilder/parseCEL";
12797
- var parseCelToRuleGroup = (celString) => {
12798
- if (!celString) {
12799
- return void 0;
12800
- }
12801
- try {
12802
- const ruleGroup = parseCEL(celString);
12803
- return ruleGroup?.rules?.length > 0 ? ruleGroup : void 0;
12804
- } catch {
12805
- return void 0;
12806
- }
12807
- };
12808
- var buildColumnFilter = (field, searchText, currentFilter, getColumnSearchFieldName) => {
12809
- if (!searchText || searchText.includes('"')) {
12810
- return void 0;
12811
- }
12812
- const searchFieldName = getColumnSearchFieldName?.(field) ?? String(field);
12813
- const columnFilterCondition = `${searchFieldName} == "${searchText}"`;
12814
- const trimmedCurrentFilter = currentFilter?.trim();
12815
- const filterString = trimmedCurrentFilter ? `(${trimmedCurrentFilter}) && ${columnFilterCondition}` : columnFilterCondition;
12816
- const ruleGroup = parseCelToRuleGroup(filterString);
12817
- if (!ruleGroup) {
12818
- return void 0;
12819
- }
12820
- return { filterString, ruleGroup };
12821
- };
12822
-
12823
12947
  // src/components/WfoTable/WfoStructuredSearchTable/WfoStructuredSearchTable.tsx
12824
12948
  import { Fragment as Fragment38, jsx as jsx193, jsxs as jsxs98 } from "@emotion/react/jsx-runtime";
12825
12949
  var WfoStructuredSearchTable = ({
@@ -12862,12 +12986,12 @@ var WfoStructuredSearchTable = ({
12862
12986
  const [rowDetailModalData, setRowDetailModalData] = useState35(void 0);
12863
12987
  const [showInformationModal, setShowInformationModal] = useState35(false);
12864
12988
  const t = useTranslations49("common");
12865
- useEffect24(() => {
12989
+ useEffect25(() => {
12866
12990
  if (defaultHiddenColumns) {
12867
12991
  setHiddenColumns(defaultHiddenColumns);
12868
12992
  }
12869
12993
  }, [defaultHiddenColumns]);
12870
- useEffect24(() => {
12994
+ useEffect25(() => {
12871
12995
  if (filterString) {
12872
12996
  setIsFilterBuilderVisible(true);
12873
12997
  }
@@ -13013,7 +13137,7 @@ var WfoStructuredSearchTable = ({
13013
13137
  };
13014
13138
 
13015
13139
  // src/components/WfoSearchPage/WfoSearchResults/WfoHighlightedText.tsx
13016
- import { useMemo as useMemo4 } from "react";
13140
+ import { useMemo as useMemo5 } from "react";
13017
13141
  import { css as css32 } from "@emotion/react";
13018
13142
  import { Fragment as Fragment39, jsx as jsx194 } from "@emotion/react/jsx-runtime";
13019
13143
  var WfoHighlightedText = ({ text, highlight_indices }) => {
@@ -13026,7 +13150,7 @@ var WfoHighlightedText = ({ text, highlight_indices }) => {
13026
13150
  font-weight: ${theme.font.weight.bold};
13027
13151
  border-radius: ${theme.size.xs};
13028
13152
  `;
13029
- const highlightedParts = useMemo4(() => {
13153
+ const highlightedParts = useMemo5(() => {
13030
13154
  if (!highlight_indices || highlight_indices.length === 0) {
13031
13155
  return text;
13032
13156
  }
@@ -13418,7 +13542,7 @@ import Link14 from "next/link";
13418
13542
  import { useRouter as useRouter17 } from "next/router";
13419
13543
 
13420
13544
  // src/pages/metadata/WfoProductBlocksPage.tsx
13421
- import { useEffect as useEffect25, useState as useState37 } from "react";
13545
+ import { useEffect as useEffect26, useState as useState37 } from "react";
13422
13546
  import { useTranslations as useTranslations52 } from "next-intl";
13423
13547
  import { EuiBadgeGroup as EuiBadgeGroup2 } from "@elastic/eui";
13424
13548
 
@@ -13489,7 +13613,7 @@ var WfoProductBlocksPage = () => {
13489
13613
  METADATA_PRODUCT_BLOCKS_TABLE_LOCAL_STORAGE_KEY
13490
13614
  );
13491
13615
  const [updateProductBlock] = useUpdateProductBlockMutation();
13492
- useEffect25(() => {
13616
+ useEffect26(() => {
13493
13617
  const storedConfig = getStoredTableConfig();
13494
13618
  if (storedConfig) {
13495
13619
  setTableDefaults(storedConfig);
@@ -13674,7 +13798,7 @@ var WfoProductBlocksPage = () => {
13674
13798
  };
13675
13799
 
13676
13800
  // src/pages/metadata/WfoResourceTypesPage.tsx
13677
- import { useEffect as useEffect26, useState as useState38 } from "react";
13801
+ import { useEffect as useEffect27, useState as useState38 } from "react";
13678
13802
  import { useTranslations as useTranslations53 } from "next-intl";
13679
13803
  import { EuiBadgeGroup as EuiBadgeGroup3 } from "@elastic/eui";
13680
13804
  import { Fragment as Fragment44, jsx as jsx208, jsxs as jsxs102 } from "@emotion/react/jsx-runtime";
@@ -13688,7 +13812,7 @@ var WfoResourceTypesPage = () => {
13688
13812
  METADATA_RESOURCE_TYPES_TABLE_LOCAL_STORAGE_KEY
13689
13813
  );
13690
13814
  const [updateResourceType] = useUpdateResourceTypeMutation();
13691
- useEffect26(() => {
13815
+ useEffect27(() => {
13692
13816
  const storedConfig = getStoredTableConfig();
13693
13817
  if (storedConfig) {
13694
13818
  setTableDefaults(storedConfig);
@@ -13824,7 +13948,7 @@ var WfoResourceTypesPage = () => {
13824
13948
  };
13825
13949
 
13826
13950
  // src/pages/metadata/WfoProductsPage.tsx
13827
- import { useEffect as useEffect27, useState as useState40 } from "react";
13951
+ import { useEffect as useEffect28, useState as useState40 } from "react";
13828
13952
  import { useTranslations as useTranslations54 } from "next-intl";
13829
13953
 
13830
13954
  // src/components/WfoMetadata/WfoMetadataStatusField.tsx
@@ -13900,7 +14024,7 @@ var WfoProductsPage = () => {
13900
14024
  const getStoredTableConfig = useStoredTableConfig(METADATA_PRODUCT_TABLE_LOCAL_STORAGE_KEY);
13901
14025
  const [updateProductDescription] = useUpdateProductDescriptionMutation();
13902
14026
  const [updateProductStatus] = useUpdateProductStatusMutation();
13903
- useEffect27(() => {
14027
+ useEffect28(() => {
13904
14028
  const storedConfig = getStoredTableConfig();
13905
14029
  if (storedConfig) {
13906
14030
  setTableDefaults(storedConfig);
@@ -14078,7 +14202,7 @@ var WfoProductsPage = () => {
14078
14202
  };
14079
14203
 
14080
14204
  // src/pages/metadata/WfoWorkflowsPage.tsx
14081
- import { useEffect as useEffect28, useState as useState41 } from "react";
14205
+ import { useEffect as useEffect29, useState as useState41 } from "react";
14082
14206
  import { useTranslations as useTranslations55 } from "next-intl";
14083
14207
  import { EuiBadgeGroup as EuiBadgeGroup4 } from "@elastic/eui";
14084
14208
 
@@ -14117,7 +14241,7 @@ var WfoWorkflowsPage = () => {
14117
14241
  const [tableDefaults, setTableDefaults] = useState41();
14118
14242
  const getStoredTableConfig = useStoredTableConfig(METADATA_WORKFLOWS_TABLE_LOCAL_STORAGE_KEY);
14119
14243
  const [updateWorkflow] = useUpdateWorkflowMutation();
14120
- useEffect28(() => {
14244
+ useEffect29(() => {
14121
14245
  const storedConfig = getStoredTableConfig();
14122
14246
  if (storedConfig) {
14123
14247
  setTableDefaults(storedConfig);
@@ -14272,7 +14396,7 @@ var WfoWorkflowsPage = () => {
14272
14396
  };
14273
14397
 
14274
14398
  // src/pages/metadata/WfoTasksPage.tsx
14275
- import { useEffect as useEffect29, useState as useState42 } from "react";
14399
+ import { useEffect as useEffect30, useState as useState42 } from "react";
14276
14400
  import { useTranslations as useTranslations56 } from "next-intl";
14277
14401
  import { useRouter as useRouter8 } from "next/router";
14278
14402
  import { EuiBadgeGroup as EuiBadgeGroup5, EuiButtonIcon as EuiButtonIcon13, EuiContextMenuItem as EuiContextMenuItem3 } from "@elastic/eui";
@@ -14356,7 +14480,7 @@ var WfoTasksPage = () => {
14356
14480
  const [tableDefaults, setTableDefaults] = useState42();
14357
14481
  const getStoredTableConfig = useStoredTableConfig(METADATA_TASKS_TABLE_LOCAL_STORAGE_KEY);
14358
14482
  const [updateWorkflow] = useUpdateWorkflowMutation();
14359
- useEffect29(() => {
14483
+ useEffect30(() => {
14360
14484
  const storedConfig = getStoredTableConfig();
14361
14485
  if (storedConfig) {
14362
14486
  setTableDefaults(storedConfig);
@@ -14525,7 +14649,7 @@ var WfoTasksPage = () => {
14525
14649
  };
14526
14650
 
14527
14651
  // src/pages/metadata/WfoScheduledTasksPage.tsx
14528
- import { useEffect as useEffect30, useState as useState43 } from "react";
14652
+ import { useEffect as useEffect31, useState as useState43 } from "react";
14529
14653
  import { useTranslations as useTranslations57 } from "next-intl";
14530
14654
  import { useRouter as useRouter9 } from "next/router";
14531
14655
  import { EuiButton as EuiButton12, EuiFlexGroup as EuiFlexGroup23, EuiFlexItem as EuiFlexItem24 } from "@elastic/eui";
@@ -14547,7 +14671,7 @@ var WfoScheduledTasksPage = () => {
14547
14671
  showToastMessage("ERROR" /* ERROR */, "", tError("failedDeletingScheduledTask"));
14548
14672
  console.error("Failed to delete scheduled task.", mutationState.error);
14549
14673
  }
14550
- useEffect30(() => {
14674
+ useEffect31(() => {
14551
14675
  const storedConfig = getStoredTableConfig();
14552
14676
  if (storedConfig) {
14553
14677
  setTableDefaults(storedConfig);
@@ -14678,13 +14802,13 @@ var WfoScheduledTasksPage = () => {
14678
14802
  };
14679
14803
 
14680
14804
  // src/pages/metadata/WfoScheduleTaskFormPage.tsx
14681
- import { useCallback as useCallback8, useMemo as useMemo5 } from "react";
14805
+ import { useCallback as useCallback8, useMemo as useMemo6 } from "react";
14682
14806
  import _5 from "lodash";
14683
14807
  import { useRouter as useRouter10 } from "next/router";
14684
14808
  import { PydanticForm as PydanticForm2 } from "pydantic-forms";
14685
14809
 
14686
14810
  // src/components/WfoPydanticForm/Footer.tsx
14687
- import { useCallback as useCallback7, useContext as useContext8, useEffect as useEffect31 } from "react";
14811
+ import { useCallback as useCallback7, useContext as useContext8, useEffect as useEffect32 } from "react";
14688
14812
  import { useTranslations as useTranslations59 } from "next-intl";
14689
14813
  import { EuiButton as EuiButton13, EuiFlexGroup as EuiFlexGroup24, EuiHorizontalRule as EuiHorizontalRule5 } from "@elastic/eui";
14690
14814
 
@@ -14728,7 +14852,7 @@ var Footer = ({ onCancel, onPrevious, hasNext, hasPrevious, isTask = false, butt
14728
14852
  }
14729
14853
  }, [onCancel, showConfirmDialog, t]);
14730
14854
  const { next, previous } = buttons || {};
14731
- useEffect31(() => {
14855
+ useEffect32(() => {
14732
14856
  const handleKeyDown = (event) => {
14733
14857
  const isPrimary = event.metaKey || event.ctrlKey;
14734
14858
  if (isPrimary && event.key === "ArrowLeft") {
@@ -14832,7 +14956,7 @@ import { jsx as jsx217 } from "@emotion/react/jsx-runtime";
14832
14956
  var START_SCHEDULE_PAYLOAD = {};
14833
14957
  var WfoScheduleTaskFormPage = () => {
14834
14958
  const { showToastMessage } = useShowToastMessage();
14835
- const generateFormId = useMemo5(() => {
14959
+ const generateFormId = useMemo6(() => {
14836
14960
  return `${JSON.stringify(START_SCHEDULE_PAYLOAD)}`;
14837
14961
  }, []);
14838
14962
  const [startForm] = useStartFormMutation();
@@ -14974,10 +15098,10 @@ var WfoProcessListSubscriptionsCell = ({
14974
15098
  };
14975
15099
 
14976
15100
  // src/pages/processes/WfoProcessDetailPage.tsx
14977
- import { useRef as useRef15 } from "react";
15101
+ import { useRef as useRef16 } from "react";
14978
15102
 
14979
15103
  // src/pages/processes/WfoProcessDetail.tsx
14980
- import { useContext as useContext9, useEffect as useEffect32, useRef as useRef14 } from "react";
15104
+ import { useContext as useContext9, useEffect as useEffect33, useRef as useRef15 } from "react";
14981
15105
  import { useTranslations as useTranslations61 } from "next-intl";
14982
15106
  import { useRouter as useRouter11 } from "next/router";
14983
15107
  import { EuiButton as EuiButton14, EuiFlexGroup as EuiFlexGroup26, EuiPanel as EuiPanel3, EuiSpacer as EuiSpacer21, EuiText as EuiText19 } from "@elastic/eui";
@@ -15080,8 +15204,8 @@ var ProcessHeaderValue = ({ translationKey, value = "" }) => {
15080
15204
  );
15081
15205
  };
15082
15206
  function useHasPreviousRoute() {
15083
- const hasPrev = useRef14(false);
15084
- useEffect32(() => {
15207
+ const hasPrev = useRef15(false);
15208
+ useEffect33(() => {
15085
15209
  if (document.referrer && document.referrer !== window.location.href) {
15086
15210
  hasPrev.current = true;
15087
15211
  }
@@ -15280,7 +15404,7 @@ var WfoProcessDetail = ({
15280
15404
  // src/pages/processes/WfoProcessDetailPage.tsx
15281
15405
  import { jsx as jsx220 } from "@emotion/react/jsx-runtime";
15282
15406
  var WfoProcessDetailPage = ({ processId }) => {
15283
- const stepListRef = useRef15(null);
15407
+ const stepListRef = useRef16(null);
15284
15408
  const { data, isLoading, isError } = useGetProcessDetailQuery({
15285
15409
  processId
15286
15410
  });
@@ -15330,20 +15454,20 @@ var WfoProcessDetailPage = ({ processId }) => {
15330
15454
  };
15331
15455
 
15332
15456
  // src/pages/processes/WfoStartProcessPage.tsx
15333
- import { useMemo as useMemo9, useState as useState49 } from "react";
15457
+ import { useMemo as useMemo10, useState as useState49 } from "react";
15334
15458
  import { useTranslations as useTranslations70 } from "next-intl";
15335
15459
  import { useRouter as useRouter13 } from "next/router";
15336
15460
  import { EuiFlexGroup as EuiFlexGroup30, EuiFlexItem as EuiFlexItem29, EuiHorizontalRule as EuiHorizontalRule7, EuiPanel as EuiPanel5, EuiText as EuiText25 } from "@elastic/eui";
15337
15461
 
15338
15462
  // src/components/WfoPydanticForm/WfoPydanticForm.tsx
15339
- import { useCallback as useCallback9, useMemo as useMemo6 } from "react";
15463
+ import { useCallback as useCallback9, useMemo as useMemo7 } from "react";
15340
15464
  import _6 from "lodash";
15341
15465
  import { useTranslations as useTranslations62 } from "next-intl";
15342
15466
  import { useRouter as useRouter12 } from "next/router";
15343
15467
  import { PydanticForm as PydanticForm3 } from "pydantic-forms";
15344
15468
  import { jsx as jsx221 } from "@emotion/react/jsx-runtime";
15345
15469
  var WfoPydanticForm = ({ processName, startProcessPayload, isTask }) => {
15346
- const generateFormId = useMemo6(() => {
15470
+ const generateFormId = useMemo7(() => {
15347
15471
  return `${JSON.stringify(startProcessPayload)}`;
15348
15472
  }, [startProcessPayload]);
15349
15473
  const [startProcess] = useStartProcessMutation();
@@ -15684,7 +15808,7 @@ var WfoCodeViewSelector = ({ codeView, handleCodeViewChange }) => {
15684
15808
  };
15685
15809
 
15686
15810
  // src/components/WfoWorkflowSteps/WfoStep/WfoStepForm.tsx
15687
- import { useCallback as useCallback11, useMemo as useMemo7 } from "react";
15811
+ import { useCallback as useCallback11, useMemo as useMemo8 } from "react";
15688
15812
  import { PydanticForm as PydanticForm4 } from "pydantic-forms";
15689
15813
  import { EuiFlexItem as EuiFlexItem26 } from "@elastic/eui";
15690
15814
 
@@ -15725,7 +15849,7 @@ import { jsx as jsx225 } from "@emotion/react/jsx-runtime";
15725
15849
  var WfoStepForm = ({ userInputForm, isTask, processId, userPermissions }) => {
15726
15850
  const { theme } = useOrchestratorTheme();
15727
15851
  const [resumeProcess] = useResumeProcessMutation();
15728
- const getInitialStepInput = useMemo7(() => userInputForm, [userInputForm]);
15852
+ const getInitialStepInput = useMemo8(() => userInputForm, [userInputForm]);
15729
15853
  const getStepFormProvider = useCallback11(
15730
15854
  () => async ({ requestBody = [] }) => {
15731
15855
  if (requestBody.length === 0) {
@@ -15874,7 +15998,7 @@ var WfoStep = React72.forwardRef(
15874
15998
  WfoStep.displayName = "WfoStep";
15875
15999
 
15876
16000
  // src/components/WfoWorkflowSteps/WfoStepList/WfoStepList.tsx
15877
- import React73, { useImperativeHandle as useImperativeHandle2, useRef as useRef16 } from "react";
16001
+ import React73, { useImperativeHandle as useImperativeHandle2, useRef as useRef17 } from "react";
15878
16002
  import { Fragment as Fragment52, jsx as jsx227, jsxs as jsxs114 } from "@emotion/react/jsx-runtime";
15879
16003
  var WfoStepList = React73.forwardRef(
15880
16004
  ({
@@ -15891,7 +16015,7 @@ var WfoStepList = React73.forwardRef(
15891
16015
  const { TIMELINE_HEIGHT, TIMELINE_OUTLINE_WIDTH } = useWithOrchestratorTheme(getTimelineStyles);
15892
16016
  const { SPACE_BETWEEN_STEPS, stepSpacerStyle } = useWithOrchestratorTheme(getWorkflowStepsStyles);
15893
16017
  const scrollOffset = NAVIGATION_HEIGHT + TIMELINE_HEIGHT + TIMELINE_OUTLINE_WIDTH + SPACE_BETWEEN_STEPS;
15894
- const stepReferences = useRef16(/* @__PURE__ */ new Map());
16018
+ const stepReferences = useRef17(/* @__PURE__ */ new Map());
15895
16019
  const { contentRef } = useContentRef();
15896
16020
  useImperativeHandle2(reference, () => ({
15897
16021
  scrollToStep: async (stepId) => {
@@ -15947,11 +16071,11 @@ var WfoStepList = React73.forwardRef(
15947
16071
  WfoStepList.displayName = "WfoStepList";
15948
16072
 
15949
16073
  // src/components/WfoWorkflowSteps/WfoWorkflowStepList/WfoWorkflowStepList.tsx
15950
- import React75, { useEffect as useEffect34, useState as useState47 } from "react";
16074
+ import React75, { useEffect as useEffect35, useState as useState47 } from "react";
15951
16075
  import { useTranslations as useTranslations68 } from "next-intl";
15952
16076
 
15953
16077
  // src/components/WfoDiff/WfoDiff.tsx
15954
- import { useCallback as useCallback13, useEffect as useEffect33, useMemo as useMemo8, useState as useState46 } from "react";
16078
+ import { useCallback as useCallback13, useEffect as useEffect34, useMemo as useMemo9, useState as useState46 } from "react";
15955
16079
  import { Diff, Hunk, parseDiff, tokenize } from "react-diff-view";
15956
16080
  import "react-diff-view/style/index.css";
15957
16081
  import { useTranslations as useTranslations66 } from "next-intl";
@@ -16024,7 +16148,7 @@ var WfoDiff = ({ oldText, newText, syntax }) => {
16024
16148
  const [diff] = parseDiff(diffText, { nearbySequences: "zip" });
16025
16149
  setDiff(diff);
16026
16150
  }, [oldText, newText, setDiff, showFull]);
16027
- const tokens = useMemo8(() => {
16151
+ const tokens = useMemo9(() => {
16028
16152
  if (!hunks) {
16029
16153
  return void 0;
16030
16154
  }
@@ -16039,7 +16163,7 @@ var WfoDiff = ({ oldText, newText, syntax }) => {
16039
16163
  return void 0;
16040
16164
  }
16041
16165
  }, [hunks, syntax]);
16042
- useEffect33(() => {
16166
+ useEffect34(() => {
16043
16167
  updateDiffText();
16044
16168
  }, [updateDiffText, showFull]);
16045
16169
  return /* @__PURE__ */ jsxs115("div", { children: [
@@ -16154,7 +16278,7 @@ var WfoWorkflowStepList = React75.forwardRef(
16154
16278
  };
16155
16279
  });
16156
16280
  };
16157
- useEffect34(() => {
16281
+ useEffect35(() => {
16158
16282
  setStepListItems(
16159
16283
  (previousStepListItems) => persistStepListItemState(previousStepListItems, steps, userInputForm)
16160
16284
  );
@@ -16369,7 +16493,7 @@ var WfoStartProcessPage = ({ processName, isTask = false }) => {
16369
16493
  const { data: workflowMetadata, isError: isErrorWorkflowDescription } = useGetDescriptionForWorkflowNameQuery({
16370
16494
  workflowName: processName
16371
16495
  });
16372
- const startProcessPayload = useMemo9(
16496
+ const startProcessPayload = useMemo10(
16373
16497
  () => getInitialProcessPayload({
16374
16498
  productId,
16375
16499
  subscriptionId
@@ -16446,7 +16570,7 @@ var WfoProductInformationWithLink = ({ workflowName, productNames }) => {
16446
16570
  };
16447
16571
 
16448
16572
  // src/pages/settings/WfoSettingsPage.tsx
16449
- import { useMemo as useMemo10 } from "react";
16573
+ import { useMemo as useMemo11 } from "react";
16450
16574
  import { useTranslations as useTranslations73 } from "next-intl";
16451
16575
  import { StringParam as StringParam3, useQueryParam as useQueryParam2, withDefault as withDefault3 } from "use-query-params";
16452
16576
  import { EuiCodeBlock as EuiCodeBlock2, EuiFlexItem as EuiFlexItem31, EuiPanel as EuiPanel7, EuiSpacer as EuiSpacer24, EuiTab as EuiTab3, EuiTabs as EuiTabs3, EuiText as EuiText28 } from "@elastic/eui";
@@ -16559,7 +16683,7 @@ var WfoSettingsPage = () => {
16559
16683
  "activeTab",
16560
16684
  withDefault3(StringParam3, "ACTIONS" /* ACTIONS */)
16561
16685
  );
16562
- const selectedTabContent = useMemo10(() => {
16686
+ const selectedTabContent = useMemo11(() => {
16563
16687
  return settingsTabs.find((obj) => obj.id === selectedTabId)?.content;
16564
16688
  }, [selectedTabId]);
16565
16689
  const onSelectedTabChanged = (id) => {
@@ -16647,7 +16771,7 @@ var WfoSubscriptionDetailPage = () => {
16647
16771
  };
16648
16772
 
16649
16773
  // src/pages/subscriptions/WfoSubscriptionsListPage.tsx
16650
- import { useEffect as useEffect35, useState as useState50 } from "react";
16774
+ import { useEffect as useEffect36, useState as useState50 } from "react";
16651
16775
  import { useTranslations as useTranslations75 } from "next-intl";
16652
16776
  import { StringParam as StringParam4, useQueryParam as useQueryParam3, withDefault as withDefault4 } from "use-query-params";
16653
16777
  import { EuiSpacer as EuiSpacer25 } from "@elastic/eui";
@@ -16656,7 +16780,7 @@ var WfoSubscriptionsListPage = () => {
16656
16780
  const t = useTranslations75("subscriptions.detail");
16657
16781
  const [tableDefaults, setTableDefaults] = useState50();
16658
16782
  const getStoredTableConfig = useStoredTableConfig(SUBSCRIPTIONS_TABLE_LOCAL_STORAGE_KEY);
16659
- useEffect35(() => {
16783
+ useEffect36(() => {
16660
16784
  const storedConfig = getStoredTableConfig();
16661
16785
  if (storedConfig) {
16662
16786
  setTableDefaults(storedConfig);
@@ -16707,7 +16831,7 @@ var WfoSubscriptionsListPage = () => {
16707
16831
  };
16708
16832
 
16709
16833
  // src/pages/tasks/WfoTasksListPage.tsx
16710
- import { useContext as useContext10, useEffect as useEffect36, useState as useState51 } from "react";
16834
+ import { useContext as useContext10, useEffect as useEffect37, useState as useState51 } from "react";
16711
16835
  import { useTranslations as useTranslations76 } from "next-intl";
16712
16836
  import Link12 from "next/link";
16713
16837
  import { useRouter as useRouter15 } from "next/router";
@@ -16790,7 +16914,7 @@ var WfoTasksListPage = () => {
16790
16914
  const { showConfirmDialog } = useContext10(ConfirmationDialogContext);
16791
16915
  const [retryAllProcesses] = useRetryAllProcessesMutation();
16792
16916
  const { isEngineRunningNow } = useCheckEngineStatus();
16793
- useEffect36(() => {
16917
+ useEffect37(() => {
16794
16918
  const storedConfig = getStoredTableConfig();
16795
16919
  if (storedConfig) {
16796
16920
  setTableDefaults(storedConfig);
@@ -16883,7 +17007,7 @@ var WfoTasksListPage = () => {
16883
17007
  };
16884
17008
 
16885
17009
  // src/pages/workflows/WfoWorkflowsListPage.tsx
16886
- import { useEffect as useEffect37, useState as useState52 } from "react";
17010
+ import { useEffect as useEffect38, useState as useState52 } from "react";
16887
17011
  import { useTranslations as useTranslations77 } from "next-intl";
16888
17012
  import { useRouter as useRouter16 } from "next/router";
16889
17013
  import { StringParam as StringParam6, useQueryParam as useQueryParam5, withDefault as withDefault6 } from "use-query-params";
@@ -16964,7 +17088,7 @@ var WfoWorkflowsListPage = () => {
16964
17088
  const selectedWorkflowsListTab = getWorkflowsListTabTypeFromString(activeTab);
16965
17089
  const localStorageKey = selectedWorkflowsListTab === "ACTIVE" /* ACTIVE */ ? ACTIVE_PROCESSES_LIST_TABLE_LOCAL_STORAGE_KEY : COMPLETED_PROCESSES_LIST_TABLE_LOCAL_STORAGE_KEY;
16966
17090
  const getStoredTableConfig = useStoredTableConfig(localStorageKey);
16967
- useEffect37(() => {
17091
+ useEffect38(() => {
16968
17092
  const storedConfig = getStoredTableConfig();
16969
17093
  if (storedConfig) {
16970
17094
  setTableDefaults(storedConfig);
@@ -17014,9 +17138,8 @@ var WfoWorkflowsListPage = () => {
17014
17138
  };
17015
17139
 
17016
17140
  // src/pages/WfoSearchPocPage.tsx
17017
- import { useCallback as useCallback14, useEffect as useEffect38, useMemo as useMemo11, useRef as useRef17, useState as useState53 } from "react";
17141
+ import { useCallback as useCallback14, useEffect as useEffect39, useMemo as useMemo12, useRef as useRef18, useState as useState53 } from "react";
17018
17142
  import { formatQuery as formatQuery2 } from "react-querybuilder/formatQuery";
17019
- import { parseCEL as parseCEL2 } from "react-querybuilder/parseCEL";
17020
17143
  import { useTranslations as useTranslations78 } from "next-intl";
17021
17144
  import Link13 from "next/link";
17022
17145
  import { StringParam as StringParam7, useQueryParam as useQueryParam6, withDefault as withDefault7 } from "use-query-params";
@@ -17109,19 +17232,19 @@ var WfoSearchPocPage = () => {
17109
17232
  const [queryText, setQueryText] = useState53("");
17110
17233
  const [committedSearchQuery, setCommittedSearchQuery] = useQueryParam6("queryString", withDefault7(StringParam7, ""));
17111
17234
  const [committedFilterString, setCommittedFilterString] = useQueryParam6("filterString", withDefault7(StringParam7, ""));
17112
- const lastSelfCommittedFilter = useRef17("");
17235
+ const lastSelfCommittedFilter = useRef18("");
17113
17236
  const commitFilterString = (celString) => {
17114
17237
  lastSelfCommittedFilter.current = celString;
17115
17238
  setCommittedFilterString(celString || void 0);
17116
17239
  };
17117
- const lastSelfCommittedQuery = useRef17("");
17240
+ const lastSelfCommittedQuery = useRef18("");
17118
17241
  const commitSearchQuery = (queryText2) => {
17119
17242
  lastSelfCommittedQuery.current = queryText2;
17120
17243
  setCommittedSearchQuery(queryText2 || void 0);
17121
17244
  };
17122
17245
  const [filterString, setFilterString] = useState53("");
17123
17246
  const [queryBuilderRuleGroup, setQueryBuilderRuleGroup] = useState53();
17124
- const committedRuleGroup = useMemo11(
17247
+ const committedRuleGroup = useMemo12(
17125
17248
  () => parseCelToRuleGroup(committedFilterString),
17126
17249
  [committedFilterString]
17127
17250
  );
@@ -17142,7 +17265,7 @@ var WfoSearchPocPage = () => {
17142
17265
  dataSorting
17143
17266
  ]);
17144
17267
  const cursor = pageCursor?.searchKey === committedSearchKey ? pageCursor.cursor : void 0;
17145
- const searchPayload = useMemo11(() => {
17268
+ const searchPayload = useMemo12(() => {
17146
17269
  const filters = addStatusFilterFromTab(committedRuleGroup, selectedTab);
17147
17270
  const order_by = {
17148
17271
  element: getKeyByValueFromMap(resultColumToPropertyMap, dataSorting.field),
@@ -17162,7 +17285,7 @@ var WfoSearchPocPage = () => {
17162
17285
  const { data, isFetching } = useSearchQuery(searchPayload);
17163
17286
  const [getSubscriptionListTrigger] = useLazySearchQuery();
17164
17287
  const getSubscriptionListForExport = () => getSubscriptionListTrigger(searchPayload).unwrap();
17165
- useEffect38(() => {
17288
+ useEffect39(() => {
17166
17289
  const storedConfig = getStoredTableConfig();
17167
17290
  if (storedConfig) {
17168
17291
  setTableDefaults(storedConfig);
@@ -17306,28 +17429,26 @@ var WfoSearchPocPage = () => {
17306
17429
  setPageCursor(void 0);
17307
17430
  };
17308
17431
  const safeCelParse = useCallback14((celString) => {
17309
- try {
17310
- const ruleGroup = parseCEL2(celString);
17311
- if (celString === "") {
17312
- setIsValidFilterString(true);
17313
- } else if (ruleGroup?.rules?.length > 0) {
17314
- setIsValidFilterString(true);
17315
- setQueryBuilderRuleGroup(ruleGroup);
17316
- } else {
17317
- setIsValidFilterString(false);
17318
- }
17319
- } catch {
17432
+ if (celString === "") {
17433
+ setIsValidFilterString(true);
17434
+ return;
17435
+ }
17436
+ const ruleGroup = parseCelToRuleGroup(celString);
17437
+ if (ruleGroup) {
17438
+ setIsValidFilterString(true);
17439
+ setQueryBuilderRuleGroup(ruleGroup);
17440
+ } else {
17320
17441
  setIsValidFilterString(false);
17321
17442
  }
17322
17443
  }, []);
17323
- useEffect38(() => {
17444
+ useEffect39(() => {
17324
17445
  if (committedSearchQuery === lastSelfCommittedQuery.current) {
17325
17446
  return;
17326
17447
  }
17327
17448
  lastSelfCommittedQuery.current = committedSearchQuery;
17328
17449
  setQueryText(committedSearchQuery);
17329
17450
  }, [committedSearchQuery]);
17330
- useEffect38(() => {
17451
+ useEffect39(() => {
17331
17452
  if (committedFilterString === lastSelfCommittedFilter.current) {
17332
17453
  return;
17333
17454
  }
@@ -17353,7 +17474,7 @@ var WfoSearchPocPage = () => {
17353
17474
  setIsValidFilterString(true);
17354
17475
  } else {
17355
17476
  setFilterString(celQuery);
17356
- setIsValidFilterString(true);
17477
+ setIsValidFilterString(!!parseCelToRuleGroup(celQuery));
17357
17478
  }
17358
17479
  }
17359
17480
  };
@@ -19124,12 +19245,12 @@ var WfoSubscriptionDetailNoteEdit = ({
19124
19245
  };
19125
19246
 
19126
19247
  // src/components/WfoInlineNoteEdit/WfoProcessListNoteEdit.tsx
19127
- import { useEffect as useEffect39, useState as useState57 } from "react";
19248
+ import { useEffect as useEffect40, useState as useState57 } from "react";
19128
19249
  import { jsx as jsx273 } from "@emotion/react/jsx-runtime";
19129
19250
  var WfoProcessListNoteEdit = ({ processId, note }) => {
19130
19251
  const [patchProcess] = usePatchProcessMutation();
19131
19252
  const [noteValue, setNoteValue] = useState57(note);
19132
- useEffect39(() => {
19253
+ useEffect40(() => {
19133
19254
  if (note !== noteValue) {
19134
19255
  setNoteValue(note);
19135
19256
  }
@@ -19175,7 +19296,7 @@ var WfoTableCodeBlock = ({ stepState: data }) => {
19175
19296
  };
19176
19297
 
19177
19298
  // src/components/WfoSearchPage/WfoSearch/WfoSearch.tsx
19178
- import { useEffect as useEffect42, useState as useState61 } from "react";
19299
+ import { useEffect as useEffect43, useState as useState61 } from "react";
19179
19300
  import { useTranslations as useTranslations95 } from "next-intl";
19180
19301
  import {
19181
19302
  EuiButton as EuiButton23,
@@ -19192,7 +19313,7 @@ import {
19192
19313
  } from "@elastic/eui";
19193
19314
 
19194
19315
  // src/hooks/useSearch.ts
19195
- import { useEffect as useEffect40, useState as useState58 } from "react";
19316
+ import { useEffect as useEffect41, useState as useState58 } from "react";
19196
19317
  var emptyResult = {
19197
19318
  data: [],
19198
19319
  page_info: { has_next_page: false, next_page_cursor: null },
@@ -19206,7 +19327,7 @@ var emptyResult = {
19206
19327
  var useSearch = (query, entityType, filterGroup, limit, retriever = "auto" /* Auto */) => {
19207
19328
  const [results, setResults] = useState58({ ...emptyResult });
19208
19329
  const [triggerSearch, { isLoading, isError }] = useLazySearchQuery();
19209
- useEffect40(() => {
19330
+ useEffect41(() => {
19210
19331
  const queryText = typeof query === "string" ? query : query.text?.trim() || "";
19211
19332
  const hasFilters = filterGroup && filterGroup.children.length > 0;
19212
19333
  if (queryText.length < 2 && !hasFilters) {
@@ -19355,7 +19476,7 @@ var useSearchPagination = (debouncedQuery, selectedEntityTab, filterGroup, pageS
19355
19476
  };
19356
19477
 
19357
19478
  // src/hooks/useUrlParams.ts
19358
- import { useCallback as useCallback16, useEffect as useEffect41, useState as useState60 } from "react";
19479
+ import { useCallback as useCallback16, useEffect as useEffect42, useState as useState60 } from "react";
19359
19480
  var useUrlParams = () => {
19360
19481
  const [urlParams, setUrlParams] = useState60(() => {
19361
19482
  if (typeof window !== "undefined") {
@@ -19403,7 +19524,7 @@ var useUrlParams = () => {
19403
19524
  window.history.replaceState({}, "", newUrl);
19404
19525
  setUrlParams(newParams);
19405
19526
  }, [query, selectedEntityTab, showFilters, selectedRecordIndex, selectedRecordId]);
19406
- useEffect41(() => {
19527
+ useEffect42(() => {
19407
19528
  updateUrl();
19408
19529
  }, [updateUrl]);
19409
19530
  return {
@@ -19464,7 +19585,7 @@ var WfoSearch = () => {
19464
19585
  retrieverType
19465
19586
  );
19466
19587
  const [hasSearchBeenAttempted, setHasSearchBeenAttempted] = useState61(false);
19467
- useEffect42(() => {
19588
+ useEffect43(() => {
19468
19589
  const queryText = typeof debouncedQuery === "string" ? debouncedQuery : debouncedQuery?.text?.trim() || "";
19469
19590
  const hasFilters = filterGroup && filterGroup.children.length > 0;
19470
19591
  if (queryText.length >= 2 || hasFilters) {
@@ -19512,7 +19633,7 @@ var WfoSearch = () => {
19512
19633
  setSearchValue(searchText);
19513
19634
  setQuery(searchText);
19514
19635
  };
19515
- useEffect42(() => {
19636
+ useEffect43(() => {
19516
19637
  if (typeof query === "string") {
19517
19638
  if (query !== searchValue) {
19518
19639
  setSearchValue(query);
@@ -19529,7 +19650,7 @@ var WfoSearch = () => {
19529
19650
  const shouldShowNoResults = (() => {
19530
19651
  return hasSearchBeenAttempted && !loading && results.data.length === 0;
19531
19652
  })();
19532
- useEffect42(() => {
19653
+ useEffect43(() => {
19533
19654
  if (results.data.length > 0) {
19534
19655
  if (selectedRecordId) {
19535
19656
  const foundIndex = results.data.findIndex((result) => result.entity_id === selectedRecordId);
@@ -19547,10 +19668,10 @@ var WfoSearch = () => {
19547
19668
  }
19548
19669
  }
19549
19670
  }, [results.data, selectedRecordId, setSelectedRecordId, setSelectedRecordIndex, urlParams]);
19550
- useEffect42(() => {
19671
+ useEffect43(() => {
19551
19672
  setShowDetailPanel(results?.data?.length > 0 && selectedRecordIndex >= 0 && selectedEntityTab === "SUBSCRIPTION");
19552
19673
  }, [results?.data?.length, selectedRecordIndex, selectedEntityTab]);
19553
- useEffect42(() => {
19674
+ useEffect43(() => {
19554
19675
  resetPagination();
19555
19676
  }, [debouncedQuery, selectedEntityTab, filterGroup, resetPagination]);
19556
19677
  const { RESULTS_GROW, DETAIL_GROW } = LAYOUT_RATIOS;
@@ -19711,7 +19832,7 @@ var WfoSearchLoadingState = () => {
19711
19832
  };
19712
19833
 
19713
19834
  // src/components/WfoSearchPage/WfoSearchResults/WfoSearchResultItem.tsx
19714
- import { useEffect as useEffect43, useRef as useRef18 } from "react";
19835
+ import { useEffect as useEffect44, useRef as useRef19 } from "react";
19715
19836
  import { useTranslations as useTranslations98 } from "next-intl";
19716
19837
  import { EuiButtonIcon as EuiButtonIcon17, EuiFlexGroup as EuiFlexGroup43, EuiFlexItem as EuiFlexItem45, EuiPanel as EuiPanel18, EuiSpacer as EuiSpacer34, EuiText as EuiText37 } from "@elastic/eui";
19717
19838
 
@@ -19758,8 +19879,8 @@ var WfoSearchResultItem = ({
19758
19879
  const { theme } = useOrchestratorTheme();
19759
19880
  const baseUrl = `${window.location.protocol}//${window.location.host}`;
19760
19881
  const detailUrl = getDetailUrl(result, baseUrl);
19761
- const itemRef = useRef18(null);
19762
- useEffect43(() => {
19882
+ const itemRef = useRef19(null);
19883
+ useEffect44(() => {
19763
19884
  if (isSelected && onPositionChange && itemRef.current) {
19764
19885
  onPositionChange(index, itemRef.current);
19765
19886
  }
@@ -21077,7 +21198,7 @@ var WfoPageWithUserGuide = ({ workflowName, children }) => {
21077
21198
  };
21078
21199
 
21079
21200
  // src/components/WfoMonacoCodeBlock/WfoMonacoCodeBlock.tsx
21080
- import { useCallback as useCallback17, useEffect as useEffect44, useState as useState64 } from "react";
21201
+ import { useCallback as useCallback17, useEffect as useEffect45, useState as useState64 } from "react";
21081
21202
  import { EuiFlexItem as EuiFlexItem55 } from "@elastic/eui";
21082
21203
  import Editor from "@monaco-editor/react";
21083
21204
 
@@ -21121,7 +21242,7 @@ var WfoMonacoCodeBlock = ({ data }) => {
21121
21242
  },
21122
21243
  [theme, isDarkModeActive]
21123
21244
  );
21124
- useEffect44(() => {
21245
+ useEffect45(() => {
21125
21246
  if (monacoInstance) {
21126
21247
  addThemeToEditor(monacoInstance);
21127
21248
  }
@@ -22988,6 +23109,7 @@ export {
22988
23109
  useDataDisplayParams,
22989
23110
  useDeleteProcessMutation,
22990
23111
  useDeleteScheduledTaskMutation,
23112
+ useFieldsPathInfo,
22991
23113
  useGetCacheNamesQuery,
22992
23114
  useGetCustomerQuery,
22993
23115
  useGetCustomersQuery,
@@ -23033,6 +23155,7 @@ export {
23033
23155
  useLazyGetSubscriptionListQuery,
23034
23156
  useLazyGetTasksQuery,
23035
23157
  useLazyGetWorkflowsQuery,
23158
+ useLazySearchPathsQuery,
23036
23159
  useLazySearchQuery,
23037
23160
  useLazyStreamMessagesQuery,
23038
23161
  useOrchestratorConfig,