From d1d654ebac2d51e3841675faeb56480e440f622f Mon Sep 17 00:00:00 2001
From: Wolfgang Müller
Date: Tue, 5 Mar 2024 18:08:09 +0100
Subject: Initial commit

---
 .../lib/scraper/components/SelectorGroup.svelte    | 35 ++++++++++++++++++++++
 1 file changed, 35 insertions(+)
 create mode 100644 frontend/src/lib/scraper/components/SelectorGroup.svelte

(limited to 'frontend/src/lib/scraper/components/SelectorGroup.svelte')

diff --git a/frontend/src/lib/scraper/components/SelectorGroup.svelte b/frontend/src/lib/scraper/components/SelectorGroup.svelte
new file mode 100644
index 0000000..ae7287a
--- /dev/null
+++ b/frontend/src/lib/scraper/components/SelectorGroup.svelte
@@ -0,0 +1,35 @@
+<script lang="ts">
+	import { Selector } from '$lib/Scraper';
+	import SelectorButton from './SelectorButton.svelte';
+
+	export let title: string;
+	export let selectors: Selector<string>[];
+
+	function invert() {
+		for (let selector of selectors) {
+			selector.keep = !selector.keep;
+		}
+		selectors = selectors;
+	}
+</script>
+
+{#if selectors.length > 0}
+	<div class="group col-span-6 flex flex-col gap-1">
+		<div class="flex gap-2">
+			<h2>{title}</h2>
+			<button
+				type="button"
+				class="flex items-end opacity-0 brightness-75 transition-opacity hover:brightness-110 group-hover:opacity-100"
+				on:click={invert}
+				title="Invert selection"
+			>
+				<span class="icon-xs icon-[material-symbols--compare-arrows]"></span>
+			</button>
+		</div>
+		<div class="flex flex-wrap gap-y-1">
+			{#each selectors as selector}
+				<SelectorButton {selector} />
+			{/each}
+		</div>
+	</div>
+{/if}
-- 
cgit v1.2.3-2-gb3c3

