mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-19 07:16:01 +00:00
45 lines
1.0 KiB
Svelte
45 lines
1.0 KiB
Svelte
<script lang="ts">
|
|
import FormStyledButton from '../buttons/FormStyledButton.svelte';
|
|
|
|
export let selectedColumns;
|
|
export let allColumns;
|
|
export let disabled = false;
|
|
|
|
function toggleColumn(column) {
|
|
if (selectedColumns.includes(column)) selectedColumns = selectedColumns.filter(x => x != column);
|
|
else selectedColumns = [...selectedColumns, column];
|
|
}
|
|
</script>
|
|
|
|
<div>
|
|
<FormStyledButton value="All" on:click={() => (selectedColumns = allColumns)} {disabled} />
|
|
<FormStyledButton value="None" on:click={() => (selectedColumns = [])} {disabled} />
|
|
</div>
|
|
<div class="list">
|
|
{#each allColumns as column}
|
|
<div>
|
|
<input
|
|
type="checkbox"
|
|
{disabled}
|
|
checked={selectedColumns.includes(column)}
|
|
on:change={() => toggleColumn(column)}
|
|
/>
|
|
|
|
<span on:click={() => toggleColumn(column)} class="label">
|
|
{column}
|
|
</span>
|
|
</div>
|
|
{/each}
|
|
</div>
|
|
|
|
<style>
|
|
.list {
|
|
max-height: 25vh;
|
|
overflow: scroll;
|
|
user-select: none;
|
|
}
|
|
.label {
|
|
cursor: pointer;
|
|
}
|
|
</style>
|