Files
Server/frontend/src/lib/components/scripting/ScriptLineBlock.svelte
T
gisle f00575fd7f
continuous-integration/drone/push Build is passing
fix hue, some ui tweaks.
2023-10-15 21:23:11 +02:00

40 lines
990 B
Svelte

<script lang="ts">
import type { ScriptLineEditable } from "$lib/models/script";
import ScriptBlock from "./ScriptBlock.svelte";
import ScriptLine from "./ScriptLine.svelte";
export let label: string;
export let value: ScriptLineEditable[];
export let add: boolean = false;
function moveUp(i: number) {
value = [...value];
const temp = value[i];
value[i] = value[i - 1];
value[i - 1] = temp;
}
function moveDown(i: number) {
value = [...value];
const temp = value[i];
value[i] = value[i + 1];
value[i + 1] = temp;
}
function deleteLine(i: number) {
value = [...value.slice(0, i), ...value.slice(i + 1)];
}
</script>
<ScriptBlock on:add add={add} label={label}>
{#each value as line, i}
<ScriptLine
first={i === 0}
last={i === value.length - 1}
bind:value={line}
on:up={() => moveUp(i)}
on:down={() => moveDown(i)}
on:delete={() => deleteLine(i)}
/>
{/each}
</ScriptBlock>