diff --git a/webui/src/components/widgets/Table.svelte b/webui/src/components/widgets/Table.svelte index 78c80d9..1203656 100644 --- a/webui/src/components/widgets/Table.svelte +++ b/webui/src/components/widgets/Table.svelte @@ -11,6 +11,7 @@ import type { IValue } from "upend/types"; import Editable from "../utils/Editable.svelte"; import { query } from "../../lib/entity"; + import { readable } from "svelte/store"; const dispatch = createEventDispatcher(); export let columns: string; @@ -57,12 +58,25 @@ } // Labelling - $: labelListing = query( - () => - `(matches (in ${entries - .map((e) => '"' + e.entity + '"') - .join(" ")}) "LBL" ? )` - ).result; + let labelListing = readable(undefined); + $: { + const addresses = []; + entries + .flatMap((e) => + e.value.t === "Address" ? [e.entity, e.value.c] : [e.entity] + ) + .forEach((addr) => { + if (!addresses.includes(addr)) { + addresses.push(addr); + } + }); + + const addressesString = addresses.map((addr) => `"${addr}"`).join(" "); + + labelListing = query( + () => `(matches (in ${addressesString}) "LBL" ? )` + ).result; + } // Sorting let sortedAttributes = entries; @@ -238,7 +252,9 @@ { addSortKeys(entry.entity, event.detail); @@ -269,7 +285,7 @@ address={String(entry.value.c)} labels={$labelListing ?.getObject(String(entry.value.c)) - ?.identify()} + ?.identify() || []} on:resolved={(event) => { addSortKeys(String(entry.value.c), event.detail); }}