From 6de696e859d5799c1607c930f08d2adccf456a56 Mon Sep 17 00:00:00 2001 From: Alex Tideman Date: Thu, 18 Jan 2024 15:50:00 -0600 Subject: [PATCH 1/4] WIP: multiselect component. Need to include initial selected options --- .../event/event-category-filter.svelte | 75 ------------- .../event-category-multiselect-filter.svelte | 46 ++++++++ .../event/event-history-timeline.svelte | 14 ++- .../event/event-summary-table.svelte | 5 +- src/lib/components/event/event-summary.svelte | 16 ++- src/lib/holocene/select/multi-select.svelte | 100 ++++++++++++++++++ .../get-event-categorization.test.ts | 56 +++++----- .../event-history/get-event-categorization.ts | 60 ++++------- src/lib/stores/filters.ts | 7 +- .../[run]/history/compact/+page.svelte | 5 +- .../[run]/history/feed/+page.svelte | 6 +- 11 files changed, 223 insertions(+), 167 deletions(-) delete mode 100644 src/lib/components/event/event-category-filter.svelte create mode 100644 src/lib/components/event/event-category-multiselect-filter.svelte create mode 100644 src/lib/holocene/select/multi-select.svelte diff --git a/src/lib/components/event/event-category-filter.svelte b/src/lib/components/event/event-category-filter.svelte deleted file mode 100644 index c92f451ba..000000000 --- a/src/lib/components/event/event-category-filter.svelte +++ /dev/null @@ -1,75 +0,0 @@ - - - - - {label} - - - - {#each options as { label, option }} - onOptionClick(option)} - > - {translate(label)} - - {/each} - - diff --git a/src/lib/components/event/event-category-multiselect-filter.svelte b/src/lib/components/event/event-category-multiselect-filter.svelte new file mode 100644 index 000000000..39f301399 --- /dev/null +++ b/src/lib/components/event/event-category-multiselect-filter.svelte @@ -0,0 +1,46 @@ + + + diff --git a/src/lib/components/event/event-history-timeline.svelte b/src/lib/components/event/event-history-timeline.svelte index a87dab4b5..2e6c5c38c 100644 --- a/src/lib/components/event/event-history-timeline.svelte +++ b/src/lib/components/event/event-history-timeline.svelte @@ -35,8 +35,6 @@ let visualizationRef; let timeline; - $: category = $eventCategoryFilter as EventTypeCategory; - function renderComponentToHTML(Component, props) { const container = document.createElement('div'); new Component({ target: container, props }); @@ -74,7 +72,7 @@ const firstEvent = sortedHistory[0]; const finalEvent = sortedHistory[sortedHistory.length - 1]; - if (!category) { + if (!$eventCategoryFilter) { groups.add({ id: 'workflow', content: renderExecutionName(), @@ -163,18 +161,18 @@ const filterHistory = ( history: CommonHistoryEvent[], - category: EventTypeCategory, + category: EventTypeCategory[], ): CommonHistoryEvent[] => { if (!category) return history; return history.filter((i) => { - if (category === CATEGORIES.LOCAL_ACTIVITY) { + if (category.includes(CATEGORIES.LOCAL_ACTIVITY)) { return isLocalActivityMarkerEvent(i); } - return i.category === category; + return category.includes(i.category); }); }; - const buildTimeline = (category: EventTypeCategory): void => { + const buildTimeline = (category: EventTypeCategory[]): void => { timeline = new Timeline( visualizationRef, new DataSet([]), @@ -210,7 +208,7 @@ if (timeline) { timeline.destroy(); } - buildTimeline(category); + buildTimeline($eventCategoryFilter); }; $: { diff --git a/src/lib/components/event/event-summary-table.svelte b/src/lib/components/event/event-summary-table.svelte index c0b7c76dc..b69fbc3fa 100644 --- a/src/lib/components/event/event-summary-table.svelte +++ b/src/lib/components/event/event-summary-table.svelte @@ -3,7 +3,6 @@ import { page } from '$app/stores'; - import EventCategoryFilter from '$lib/components/event/event-category-filter.svelte'; import EventDateFilter from '$lib/components/event/event-date-filter.svelte'; import Button from '$lib/holocene/button.svelte'; import TableHeaderRow from '$lib/holocene/table/table-header-row.svelte'; @@ -11,6 +10,8 @@ import { translate } from '$lib/i18n/translate'; import { expandAllEvents } from '$lib/stores/event-view'; + import EventCategoryMultiselectFilter from './event-category-multiselect-filter.svelte'; + export let compact = false; export let updating = false; @@ -41,7 +42,7 @@ - +