diff --git a/src/lib/components/batch-operations/header.svelte b/src/lib/components/batch-operations/header.svelte index 2b74341774..56d12edd61 100644 --- a/src/lib/components/batch-operations/header.svelte +++ b/src/lib/components/batch-operations/header.svelte @@ -8,7 +8,11 @@ import { autoRefresh } from '$lib/stores/batch-operations'; import type { BatchOperation, BatchOperationState } from '$lib/types/batch'; - export let operation: BatchOperation; + interface Props { + operation: BatchOperation; + } + + let { operation }: Props = $props(); const dispatch = createEventDispatcher<{ toggleAutoRefresh: { checked: boolean }; diff --git a/src/lib/components/data-encoder-status.svelte b/src/lib/components/data-encoder-status.svelte index 0c9140cfe6..a73f195292 100644 --- a/src/lib/components/data-encoder-status.svelte +++ b/src/lib/components/data-encoder-status.svelte @@ -13,13 +13,9 @@ } }; - let variant: 'primary' | 'ghost' = 'ghost'; - - const updateVariant = (open: boolean) => { - variant = open ? 'primary' : 'ghost'; - }; - - $: updateVariant($viewDataEncoderSettings); + const variant = $derived<'primary' | 'ghost'>( + $viewDataEncoderSettings ? 'primary' : 'ghost', + );
diff --git a/src/lib/components/import/event-history-file-import.svelte b/src/lib/components/import/event-history-file-import.svelte index f2cf708e60..6b7139a4b2 100644 --- a/src/lib/components/import/event-history-file-import.svelte +++ b/src/lib/components/import/event-history-file-import.svelte @@ -13,8 +13,9 @@ import { parseWithBigInt } from '$lib/utilities/parse-with-big-int'; import { routeForEventHistoryImport } from '$lib/utilities/route-for'; - let rawEvents: HistoryEvent[] | { events: HistoryEvent[] }; - let fileLoaded = false; + let rawEvents: HistoryEvent[] | { events: HistoryEvent[] } | undefined = + $state(undefined); + let fileLoaded = $state(false); const onFileSelect = async (e: Event) => { const target = e.target as HTMLInputElement; @@ -70,7 +71,7 @@ class="import-input block border border-slate-200 p-2" type="file" accept=".json" - on:change={onFileSelect} + onchange={onFileSelect} /> + diff --git a/src/lib/components/lines-and-dots/svg/timeline-graph.svelte b/src/lib/components/lines-and-dots/svg/timeline-graph.svelte index 0048821884..dd2d181325 100644 --- a/src/lib/components/lines-and-dots/svg/timeline-graph.svelte +++ b/src/lib/components/lines-and-dots/svg/timeline-graph.svelte @@ -17,38 +17,64 @@ import TimelineGraphRow from './timeline-graph-row.svelte'; import WorkflowRow from './workflow-row.svelte'; - export let x = 0; - export let y = 0; - export let workflow: WorkflowExecution; - export let groups: EventGroups; - export let viewportHeight: number | undefined; - export let readOnly = false; - export let error: boolean = false; + interface Props { + x?: number; + y?: number; + workflow: WorkflowExecution; + groups: EventGroups; + viewportHeight: number | undefined; + readOnly?: boolean; + error?: boolean; + } + + let { + x = 0, + y = 0, + workflow, + groups, + viewportHeight, + readOnly = false, + error = false, + }: Props = $props(); const { height, gutter, radius } = TimelineConfig; - let canvasWidth = 0; - let scrollY = 0; + let canvasWidth = $state(0); + let scrollY = $state(0); + + const expandedGroupHeight = $derived(readOnly ? 0 : $activeGroupHeight); + const filteredGroups = $derived( + getFailedOrPendingGroups(groups, $eventStatusFilter), + ); + const firstStartTime = $derived.by(() => { + const firstEventTime = $fullEventHistory[0]?.eventTime; - $: expandedGroupHeight = readOnly ? 0 : $activeGroupHeight; - $: filteredGroups = getFailedOrPendingGroups(groups, $eventStatusFilter); - $: firstStartTime = - $fullEventHistory[0]?.eventTime < workflow.executionTime - ? $fullEventHistory[0]?.eventTime + if (!firstEventTime) { + return workflow.executionTime; + } + + return firstEventTime < workflow.executionTime + ? firstEventTime : workflow.executionTime; - $: startTime = - (!isWorkflowDelayed(workflow) && firstStartTime) || workflow.startTime; - $: timelineHeight = - Math.max(height * (filteredGroups.length + 2), 120) + expandedGroupHeight; - $: canvasHeight = timelineHeight + 120; + }); + + const startTime = $derived( + (!isWorkflowDelayed(workflow) && firstStartTime) || workflow.startTime, + ); + const timelineHeight = $derived( + Math.max(height * (filteredGroups.length + 2), 120) + expandedGroupHeight, + ); + const canvasHeight = $derived(timelineHeight + 120); - const handleScroll = (e) => { - scrollY = e?.target?.scrollTop; + const handleScroll = (e: Event) => { + scrollY = (e?.target as HTMLElement)?.scrollTop; }; - $: groupIndexMap = new Map(filteredGroups.map((g, i) => [g.id, i])); + const groupIndexMap = $derived( + new Map(filteredGroups.map((g, i) => [g.id, i])), + ); - $: activeGroupsHeightAboveGroup = (groupIndex: number) => { + const activeGroupsHeightAboveGroup = (groupIndex: number) => { const hasActiveAbove = $activeGroups?.some((id) => { const activeIndex = groupIndexMap.get(id); return activeIndex !== undefined && activeIndex < groupIndex; @@ -62,7 +88,7 @@ class="relative h-auto overflow-auto border border-t-0 border-subtle bg-primary" bind:clientWidth={canvasWidth} style={viewportHeight ? `max-height: ${viewportHeight}px;` : ''} - on:scroll={handleScroll} + onscroll={handleScroll} > {#each filteredGroups as group, index (group.id)} diff --git a/src/lib/components/search-attribute-filter/close-filter-button.svelte b/src/lib/components/search-attribute-filter/close-filter-button.svelte index 93b68eabd0..c44fdb399d 100644 --- a/src/lib/components/search-attribute-filter/close-filter-button.svelte +++ b/src/lib/components/search-attribute-filter/close-filter-button.svelte @@ -1,3 +1,5 @@ + + @@ -65,7 +71,7 @@ Available Columns (not in view) - {#each $availableColumns as { label }} + {#each $availableColumns as { label } (label)} addColumn(label, namespace, table)} @@ -86,7 +92,7 @@ {translate('events.custom-search-attributes')} (not in view) - {#each $availableCustomColumns as { label }} + {#each $availableCustomColumns as { label } (label)} addColumn(label, namespace, table)} diff --git a/src/lib/components/workflow/dropdown-filter/conditional.svelte b/src/lib/components/workflow/dropdown-filter/conditional.svelte index baffba2ed8..1e2f31ecc3 100644 --- a/src/lib/components/workflow/dropdown-filter/conditional.svelte +++ b/src/lib/components/workflow/dropdown-filter/conditional.svelte @@ -1,14 +1,18 @@
-