diff --git a/packages/web/src/celldata/JsonCellView.svelte b/packages/web/src/celldata/JsonCellView.svelte index 13e651081..9d00e59a9 100644 --- a/packages/web/src/celldata/JsonCellView.svelte +++ b/packages/web/src/celldata/JsonCellView.svelte @@ -4,13 +4,22 @@ import ErrorInfo from '../elements/ErrorInfo.svelte'; export let selection; + export let showWholeRow = false; let json = null; let error = null; $: try { - const value = selection[0].value; - json = _.isPlainObject(value) || _.isArray(value) ? value : JSON.parse(value); + if (showWholeRow) { + if (selection?.length == 1) { + json = selection[0].rowData; + } else { + json = selection.map(x => x.rowData); + } + } else { + const value = selection[0].value; + json = _.isPlainObject(value) || _.isArray(value) ? value : JSON.parse(value); + } error = null; } catch (err) { error = err.message; diff --git a/packages/web/src/celldata/JsonRowView.svelte b/packages/web/src/celldata/JsonRowView.svelte new file mode 100644 index 000000000..1bc1a72c0 --- /dev/null +++ b/packages/web/src/celldata/JsonRowView.svelte @@ -0,0 +1,6 @@ + + + diff --git a/packages/web/src/widgets/CellDataWidget.svelte b/packages/web/src/widgets/CellDataWidget.svelte index b82de4d01..953877279 100644 --- a/packages/web/src/widgets/CellDataWidget.svelte +++ b/packages/web/src/widgets/CellDataWidget.svelte @@ -18,6 +18,12 @@ component: JsonCellView, single: true, }, + { + type: 'jsonRow', + title: 'Json - Row', + component: JsonRowView, + single: false, + }, ]; function autodetect(selection) { @@ -41,6 +47,7 @@ import { onMount } from 'svelte'; import JsonCellView from '../celldata/JsonCellView.svelte'; + import JsonRowView from '../celldata/JsonRowView.svelte'; import TextCellViewNoWrap from '../celldata/TextCellViewNoWrap.svelte'; import TextCellViewWrap from '../celldata/TextCellViewWrap.svelte'; import ErrorInfo from '../elements/ErrorInfo.svelte';