diff --git a/src/lib/components/event/event-history-timeline-helpers.ts b/src/lib/components/event/event-history-timeline-helpers.ts deleted file mode 100644 index b585e52b9..000000000 --- a/src/lib/components/event/event-history-timeline-helpers.ts +++ /dev/null @@ -1,133 +0,0 @@ -import { get } from 'svelte/store'; - -import { endOfMinute, startOfMinute } from 'date-fns'; -import type { TimelineOptionsZoomKey } from 'vis-timeline'; -import { moment } from 'vis-timeline/standalone'; - -import { relativeTime, timeFormat } from '$lib/stores/time-format'; -import type { WorkflowExecution } from '$lib/types/workflows'; -import { formatDate } from '$lib/utilities/format-date'; -import { formatDistanceAbbreviated } from '$lib/utilities/format-time'; - -type TimelineOptionsTooltipOverflow = 'flip' | 'none' | 'cap'; - -export const getTimelineOptions = ( - workflow: WorkflowExecution, - { maxHeight = 520, offset }: { maxHeight: number; offset: string }, -) => ({ - stackSubgroups: true, - maxHeight, - min: startOfMinute(new Date(workflow.startTime)), - max: workflow?.endTime - ? endOfMinute(new Date(workflow?.endTime)) - : Date.now(), - moment: function (date) { - return moment(date).utcOffset(offset); - }, - horizontalScroll: true, - verticalScroll: true, - zoomKey: 'ctrlKey' as TimelineOptionsZoomKey, - orientation: { - axis: 'both', - item: 'center', - }, - tooltip: { - delay: 0, - overflowMethod: 'flip' as TimelineOptionsTooltipOverflow, - followMouse: false, - template: tooltipTemplate, - }, - rollingMode: { - follow: false, - }, - format: { - majorLabels: { - millisecond: 'D MMMM HH:mm:ss', - second: 'D MMMM HH:mm', - minute: 'ddd D MMMM', - hour: 'ddd D MMMM', - weekday: 'MMMM YYYY', - day: 'MMMM YYYY', - week: 'MMMM YYYY', - month: 'YYYY', - year: '', - }, - }, - xss: { - disabled: true, - filterOptions: { - whiteList: { - div: ['class'], - }, - }, - }, -}); - -export const tooltipTemplate = (item, _parsedItems): string => { - if (!item?.data?.eventList) return workflowExecutionTooltipTemplate(item); - if (item?.data.eventList.length === 1) - return singleEventTooltipTemplate(item); - return groupEventTooltipTemplate(item); -}; - -const workflowExecutionTooltipTemplate = (item): string => { - return `
-
Start
-
${formatDate(item.start, get(timeFormat), { - relative: get(relativeTime), - })} -
-
-
-
End
-
${formatDate(item.end, get(timeFormat), { - relative: get(relativeTime), - })}
-
-
Duration
${formatDistanceAbbreviated( - { - start: item.start, - end: item.end, - includeMilliseconds: true, - }, - )}
-
-
`; -}; - -const singleEventTooltipTemplate = (item): string => { - return `
-
Event Time
-
${formatDate(item.start, get(timeFormat), { - relative: get(relativeTime), - })} -
-
-
- `; -}; - -const groupEventTooltipTemplate = (item): string => { - return `
-
Start
-
${formatDate(item.start, get(timeFormat), { - relative: get(relativeTime), - })} -
-
-
-
End
-
${formatDate(item.end, get(timeFormat), { - relative: get(relativeTime), - })}
-
-
Duration
${formatDistanceAbbreviated( - { - start: item.start, - end: item.end, - includeMilliseconds: true, - }, - )}
-
-
`; -};