diff --git a/frontend/src/lib/components/propertyPicker/ObjectViewer.svelte b/frontend/src/lib/components/propertyPicker/ObjectViewer.svelte index afb93eb1a4..612c3501d6 100644 --- a/frontend/src/lib/components/propertyPicker/ObjectViewer.svelte +++ b/frontend/src/lib/components/propertyPicker/ObjectViewer.svelte @@ -6,7 +6,7 @@ import { NEVER_TESTED_THIS_FAR } from '../flows/models' import Portal from '$lib/components/Portal.svelte' import { Button } from '$lib/components/common' - + import Popover from '$lib/components/Popover.svelte' import { Download, PanelRightOpen } from 'lucide-svelte' import S3FilePicker from '../S3FilePicker.svelte' import { workspaceStore } from '$lib/stores' @@ -20,6 +20,7 @@ export let topBrackets = false export let allowCopy = true export let collapseLevel: number | undefined = undefined + export let prefix = '' let s3FileViewer: S3FilePicker @@ -48,17 +49,29 @@ const dispatch = createEventDispatcher() + function computeFullKey(key: string, rawKey: boolean) { + if (rawKey) { + return `${prefix}('${key}')` + } + const keyToSelect = computeKey(key, isArray, currentPath) + const separator = !prefix || keyToSelect.startsWith('[') ? '' : '.' + return prefix + separator + keyToSelect + } + function selectProp(key: string, value: any | undefined = undefined) { + const fullKey = computeFullKey(key, rawKey) if (pureViewer && allowCopy) { - const valueToCopy = value !== undefined ? value : computeKey(key, isArray, currentPath) + const valueToCopy = value !== undefined ? value : fullKey copyToClipboard(valueToCopy) } - dispatch('select', rawKey ? key : computeKey(key, isArray, currentPath)) + dispatch('select', fullKey) } $: keyLimit = isArray ? 1 : 100 $: fullyCollapsed = keys.length > 1 && collapsed + + $: console.log('dbg current path : ', currentPath) @@ -84,24 +97,27 @@