mirror of
https://github.com/carbon-design-system/carbon-components-svelte.git
synced 2025-09-18 19:46:36 +00:00
63 lines
1.6 KiB
Svelte
63 lines
1.6 KiB
Svelte
<script>
|
|
import {
|
|
DataTable,
|
|
Toolbar,
|
|
ToolbarContent,
|
|
ToolbarBatchActions,
|
|
Button,
|
|
} from "carbon-components-svelte";
|
|
import TrashCan from "carbon-icons-svelte/lib/TrashCan.svelte";
|
|
|
|
const headers = [
|
|
{ key: "name", value: "Name" },
|
|
{ key: "port", value: "Port" },
|
|
{ key: "rule", value: "Rule" },
|
|
];
|
|
|
|
let rows = [
|
|
{ id: "a", name: "Load Balancer 3", port: 3000, rule: "Round robin" },
|
|
{ id: "b", name: "Load Balancer 1", port: 443, rule: "Round robin" },
|
|
{ id: "c", name: "Load Balancer 2", port: 80, rule: "DNS delegation" },
|
|
{ id: "d", name: "Load Balancer 6", port: 3000, rule: "Round robin" },
|
|
{ id: "e", name: "Load Balancer 4", port: 443, rule: "Round robin" },
|
|
{ id: "f", name: "Load Balancer 5", port: 80, rule: "DNS delegation" },
|
|
];
|
|
|
|
let active = false;
|
|
let selectedRowIds = [];
|
|
|
|
$: console.log("active", active);
|
|
$: console.log("selectedRowIds", selectedRowIds);
|
|
</script>
|
|
|
|
<DataTable
|
|
selectable
|
|
batchSelection="{active}"
|
|
bind:selectedRowIds
|
|
headers="{headers}"
|
|
rows="{rows}"
|
|
>
|
|
<Toolbar>
|
|
<ToolbarBatchActions
|
|
bind:active
|
|
on:cancel="{(e) => {
|
|
e.preventDefault();
|
|
active = false;
|
|
}}"
|
|
>
|
|
<Button
|
|
icon="{TrashCan}"
|
|
disabled="{selectedRowIds.length === 0}"
|
|
on:click="{() => {
|
|
rows = rows.filter((row) => !selectedRowIds.includes(row.id));
|
|
selectedRowIds = [];
|
|
}}"
|
|
>
|
|
Delete
|
|
</Button>
|
|
</ToolbarBatchActions>
|
|
<ToolbarContent>
|
|
<Button on:click="{() => (active = true)}">Edit rows</Button>
|
|
</ToolbarContent>
|
|
</Toolbar>
|
|
</DataTable>
|