addHiddenColumns
addHiddenColumns hides table columns dynamically.
Options
Information:
Options passed into
addHiddenColumns.const table = createTable(data, {
hide: addHiddenColumns({ ... }),
});const table = createTable(data, {
hide: addHiddenColumns({ ... }),
});initialHiddenColumnIds?: string[]
Initial hidden column ids. Default [].
const table = createTable(data, {
hide: addHiddenColumns({
initialHiddenColumnIds: ['internalId', 'createdAt'],
}),
});const table = createTable(data, {
hide: addHiddenColumns({
initialHiddenColumnIds: ['internalId', 'createdAt'],
}),
});Column Options
Note:
addHiddenColumns does not accept any column options.Prop Set
Note:
addHiddenColumns does not extend the view model with any props.Plugin State
Information:
State provided by
addHiddenColumns.const { headerRows, rows, pluginStates } = table.createViewModel(columns);
const { hiddenColumnIds } = pluginStates.hide;const { headerRows, rows, pluginStates } = table.createViewModel(columns);
const { hiddenColumnIds } = pluginStates.hide;hiddenColumnIds: Writable<string[]>
Active hidden column ids. Update this store to show or hide columns dynamically — columns whose ids are in the array are removed from the view model.
// Hide a column.
hiddenColumnIds.update((ids) => [...ids, 'createdAt']);
// Show a column.
hiddenColumnIds.update((ids) => ids.filter((id) => id !== 'createdAt'));// Hide a column.
hiddenColumnIds.update((ids) => [...ids, 'createdAt']);
// Show a column.
hiddenColumnIds.update((ids) => ids.filter((id) => id !== 'createdAt'));A common pattern drives visibility with a checkbox per column:
<script>
const { flatColumns, pluginStates } = table.createViewModel(columns);
const { hiddenColumnIds } = pluginStates.hide;
const toggle = (id, visible) => {
hiddenColumnIds.update((ids) =>
visible ? ids.filter((i) => i !== id) : [...ids, id]
);
};
</script>
{#each flatColumns as col (col.id)}
<label>
<input
type="checkbox"
checked={!$hiddenColumnIds.includes(col.id)}
onchange={(e) => toggle(col.id, e.currentTarget.checked)}
/>
{col.header}
</label>
{/each}<script>
const { flatColumns, pluginStates } = table.createViewModel(columns);
const { hiddenColumnIds } = pluginStates.hide;
const toggle = (id, visible) => {
hiddenColumnIds.update((ids) =>
visible ? ids.filter((i) => i !== id) : [...ids, id]
);
};
</script>
{#each flatColumns as col (col.id)}
<label>
<input
type="checkbox"
checked={!$hiddenColumnIds.includes(col.id)}
onchange={(e) => toggle(col.id, e.currentTarget.checked)}
/>
{col.header}
</label>
{/each}