diff --git a/packages/web/src/jsontree/JSONObjectNode.svelte b/packages/web/src/jsontree/JSONObjectNode.svelte index c818dc51f..4bb2c1e6d 100644 --- a/packages/web/src/jsontree/JSONObjectNode.svelte +++ b/packages/web/src/jsontree/JSONObjectNode.svelte @@ -23,4 +23,5 @@ label={labelOverride || `${nodeType} `} bracketOpen={'{'} bracketClose={'}'} + elementValue={value} /> diff --git a/packages/web/src/jsontree/JSONTree.svelte b/packages/web/src/jsontree/JSONTree.svelte index 89abfcfdd..ee031f95d 100644 --- a/packages/web/src/jsontree/JSONTree.svelte +++ b/packages/web/src/jsontree/JSONTree.svelte @@ -4,6 +4,7 @@ import contextMenu, { getContextMenu } from '../utility/contextMenu'; import openNewTab from '../utility/openNewTab'; import _ from 'lodash'; + import { copyTextToClipboard } from '../utility/clipboard'; setContext('json-tree-context-key', {}); @@ -34,8 +35,17 @@ if (!closest) return; const value = elementData.get(closest); + const res = []; + + res.push({ + text: 'Copy JSON', + onClick: () => { + copyTextToClipboard(JSON.stringify(value, null, 2)); + }, + }); + if (value && _.isArray(value)) { - return { + res.push({ text: 'Open as data sheet', onClick: () => { openNewTab( @@ -53,8 +63,9 @@ } ); }, - }; + }); } + return res; }