diff --git a/packages/safe-ds-eda/src/App.svelte b/packages/safe-ds-eda/src/App.svelte
index e254a06d6..3f18b3204 100644
--- a/packages/safe-ds-eda/src/App.svelte
+++ b/packages/safe-ds-eda/src/App.svelte
@@ -2,7 +2,7 @@
import TableView from './components/TableView.svelte';
import Sidebar from './components/Sidebar.svelte';
import { throttle } from 'lodash';
- import { currentTabIndex, tabs } from './webviewState';
+ import { currentTabIndex, tableKey, tabs } from './webviewState';
import TabContent from './components/tabs/TabContent.svelte';
let sidebarWidth = 307; // Initial width of the sidebar in pixels
@@ -45,15 +45,19 @@
-
+ {#key $tableKey}
+
+ {/key}
- {#if $tabs.length > 0}
- {#each $tabs as tab, index}
-
-
-
- {/each}
- {/if}
+ {#key $tableKey}
+ {#if $tabs.length > 0}
+ {#each $tabs as tab, index}
+
+
+
+ {/each}
+ {/if}
+ {/key}
diff --git a/packages/safe-ds-eda/src/apis/extensionApi.ts b/packages/safe-ds-eda/src/apis/extensionApi.ts
index fdb5a0b05..6fa3b238a 100644
--- a/packages/safe-ds-eda/src/apis/extensionApi.ts
+++ b/packages/safe-ds-eda/src/apis/extensionApi.ts
@@ -1,6 +1,8 @@
import { get } from 'svelte/store';
import type { HistoryEntry } from '../../types/state';
import { table } from '../webviewState';
+import type { ExecuteRunnerAllEntry } from '../../types/messaging';
+import { filterHistoryOnlyInternal } from './historyApi';
export const createInfoToast = function (message: string) {
window.injVscode.postMessage({ command: 'setInfo', value: message });
@@ -21,6 +23,64 @@ const executeRunnerExcludingHiddenColumns = function (
});
};
+export const executeRunnerAll = function (entries: HistoryEntry[], jumpedToHistoryId: number) {
+ const currentEntries: HistoryEntry[] = [];
+ const finalEntries: ExecuteRunnerAllEntry[] = entries.map((entry) => {
+ currentEntries.push(entry);
+ if (entry.type === 'external-visualizing' && entry.columnNumber === 'none') {
+ // If the entry is a tab where you do not select columns => don't include hidden columns in visualization
+ // Hidden columns calculated by filtering the history for not overriden hide column calls up to this point
+ return {
+ type: 'excludingHiddenColumns',
+ entry,
+ hiddenColumns: filterHistoryOnlyInternal(currentEntries).reduce