diff --git a/frontend/src/lib/components/flows/previousResults.ts b/frontend/src/lib/components/flows/previousResults.ts index e922c55978..51a09ff699 100644 --- a/frontend/src/lib/components/flows/previousResults.ts +++ b/frontend/src/lib/components/flows/previousResults.ts @@ -283,11 +283,8 @@ export function filterNestedObject(obj: any, nestedKeys: string[]) { if (nestedKeys[0] === '') { return obj } - const regexes = buildPrefixRegex(Object.keys(obj)) - const matches = regexes.filter(({ regex }) => regex.test(nestedKeys[0])) - return Object.fromEntries( - Object.entries(obj).filter(([key]) => matches.some(({ word }) => word === key)) - ) + + return Object.fromEntries(Object.entries(obj).filter(([key]) => key.startsWith(nestedKeys[0]))) } const [key, ...rest] = nestedKeys if (obj && typeof obj === 'object' && key in obj) { diff --git a/frontend/src/lib/components/propertyPicker/PropPicker.svelte b/frontend/src/lib/components/propertyPicker/PropPicker.svelte index 0abd608811..981ece1feb 100644 --- a/frontend/src/lib/components/propertyPicker/PropPicker.svelte +++ b/frontend/src/lib/components/propertyPicker/PropPicker.svelte @@ -2,7 +2,7 @@ import { ResourceService, VariableService } from '$lib/gen' import { workspaceStore } from '$lib/stores' import { getContext } from 'svelte' - import { Button } from '../common' + import { Badge, Button } from '../common' import type { PropPickerWrapperContext } from '../flows/propPicker/PropPickerWrapper.svelte' import ObjectViewer from './ObjectViewer.svelte' @@ -44,8 +44,8 @@ const { pickablePropertiesFiltered } = getContext('PropPickerContext') $: $pickablePropertiesFiltered = pickableProperties - let flowInputsFiltered = pickableProperties.flow_input - let resultByIdFiltered = pickableProperties.priorIds + let flowInputsFiltered: any = pickableProperties.flow_input + let resultByIdFiltered: any = pickableProperties.priorIds let timeout: NodeJS.Timeout function onSearch(search: string) { @@ -90,18 +90,23 @@ ) } + let filteringFlowInputsOrResult = '' async function filterPickableProperties() { - if (!filterActive) { + if (!$propPickerConfig || !filterActive) { + flowInputsFiltered = pickableProperties.flow_input + resultByIdFiltered = pickableProperties.priorIds + filteringFlowInputsOrResult = '' return } if (!$inputMatches?.some((match) => match.word === 'flow_input')) { - flowInputsFiltered = [] + flowInputsFiltered = {} } if (!$inputMatches?.some((match) => match.word === 'results')) { - resultByIdFiltered = [] + resultByIdFiltered = {} } if ($inputMatches?.length == 1) { + filteringFlowInputsOrResult = $inputMatches[0].value if ($inputMatches[0].word === 'flow_input') { flowInputsFiltered = pickableProperties.flow_input let [, ...nestedKeys] = $inputMatches[0].value.split('.') @@ -117,12 +122,14 @@ resultByIdFiltered = filtered } } + } else { + filteringFlowInputsOrResult = '' } - if ($pickablePropertiesFiltered) { - resultByIdFiltered && ($pickablePropertiesFiltered.priorIds = resultByIdFiltered) - flowInputsFiltered && ($pickablePropertiesFiltered.flow_input = flowInputsFiltered) - } + // if ($pickablePropertiesFiltered) { + // resultByIdFiltered && ($pickablePropertiesFiltered.priorIds = resultByIdFiltered) + // flowInputsFiltered && ($pickablePropertiesFiltered.flow_input = flowInputsFiltered) + // } } async function updateCollapsable() { @@ -189,10 +196,18 @@
- {#if flowInputsFiltered && (Object.keys(flowInputsFiltered).length > 0 || !filterActive)} + + {#if filteringFlowInputsOrResult} +
+ filter: {filteringFlowInputsOrResult} +
+ {/if} + {#if flowInputsFiltered && (Object.keys(flowInputsFiltered ?? {}).length > 0 || !filterActive)}
Flow Input
@@ -252,7 +267,7 @@ {/if} {:else} {@const json = Object.fromEntries( - Object.entries(resultByIdFiltered).filter(([k, v]) => k == previousId) + Object.entries(resultByIdFiltered ?? {}).filter(([k, v]) => k == previousId) )} {#if previousId && Object.keys(json).length > 0} Previous Result @@ -261,7 +276,7 @@ {allowCopy} pureViewer={!$propPickerConfig} json={Object.fromEntries( - Object.entries(resultByIdFiltered).filter(([k, v]) => k == previousId) + Object.entries(resultByIdFiltered ?? {}).filter(([k, v]) => k == previousId) )} prefix="results" on:select @@ -297,7 +312,7 @@ />
{/if} - {#if Object.keys(resultByIdFiltered).length > 0} + {#if Object.keys(resultByIdFiltered ?? {}).length > 0}
All Results