|
16 | 16 | ToggleGroupItem
|
17 | 17 | } from '@nais/ds-svelte-community';
|
18 | 18 | import { format } from 'date-fns';
|
| 19 | + import type { CallbackDataParams } from 'echarts/types/dist/shared'; |
19 | 20 | import prettyBytes from 'pretty-bytes';
|
20 | 21 | import type { PageProps } from './$houdini';
|
21 | 22 |
|
|
43 | 44 | animation: false,
|
44 | 45 | tooltip: {
|
45 | 46 | trigger: 'axis',
|
46 |
| - formatter: (value: any) => { |
| 47 | + formatter: (value: CallbackDataParams[]) => { |
47 | 48 | const dot = (color: string) =>
|
48 | 49 | `<div style="height: 8px; width: 8px; border-radius: 50%; background-color: ${color};"></div>`;
|
49 | 50 | const div = document.createElement('div');
|
50 |
| - div.innerHTML = ` |
51 |
| - <div>${format(value[0].axisValueLabel, 'dd/MM/yyyy HH:mm')}</div> |
52 |
| - <hr style="border: none; height: 1px; background-color: var(--a-border-subtle);" /> |
53 |
| - <div style="display: grid; grid-template-columns: auto auto; column-gap: 0.5rem;"> |
54 |
| - <div style="display: flex; align-items: center; gap: 0.25rem;">${dot(color)}${value[0].seriesName}:</div><div style="text-align: right;">${valueFormatter(value[0].value[1])}</div> |
55 |
| - <div style="display: flex; align-items: center; gap: 0.25rem;">${dot(requestColor)}${value[1].seriesName}:</div><div style="text-align: right;">${valueFormatter(value[1].value[1])}</div> |
56 |
| - ${value.at(2)?.seriesName ? `<div style="display: flex; align-items: center; gap: 0.25rem;">${dot(limitColor)}${value[2].seriesName}:</div><div style="text-align: right;">${valueFormatter(value[2].value[1])}</div>` : ''} |
57 |
| - </div> |
58 |
| - `; |
| 51 | +
|
| 52 | + const [usage, request, limit] = value; |
| 53 | + if (Array.isArray(usage.value) && Array.isArray(request.value)) { |
| 54 | + div.innerHTML = ` |
| 55 | + <div>${format(usage.value.at(0) as number, 'dd/MM/yyyy HH:mm')}</div> |
| 56 | + <hr style="border: none; height: 1px; background-color: var(--a-border-subtle);" /> |
| 57 | + <div style="display: grid; grid-template-columns: auto auto; column-gap: 0.5rem;"> |
| 58 | + <div style="display: flex; align-items: center; gap: 0.25rem;">${dot(color)}${usage.seriesName}:</div><div style="text-align: right;">${valueFormatter(usage.value.at(1) as number)}</div> |
| 59 | + <div style="display: flex; align-items: center; gap: 0.25rem;">${dot(requestColor)}${request.seriesName}:</div><div style="text-align: right;">${valueFormatter(request.value.at(1) as number)}</div> |
| 60 | + ${Array.isArray(limit?.value) ? `<div style="display: flex; align-items: center; gap: 0.25rem;">${dot(limitColor)}${limit.seriesName}:</div><div style="text-align: right;">${valueFormatter(limit.value.at(1) as number)}</div>` : ''} |
| 61 | + </div> |
| 62 | + `; |
| 63 | + } |
59 | 64 | return div;
|
60 | 65 | },
|
61 | 66 | axisPointer: {
|
|
0 commit comments