Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | 18x 18x 106x 18x 4x 4x 4x 4x 4x 4x 104x 104x 104x 104x 4x 18x | /*
* Copyright 2021 Harness Inc. All rights reserved.
* Use of this source code is governed by the PolyForm Shield 1.0.0 license
* that can be found in the licenses directory at the root of this repository, also available at
* https://polyformproject.org/wp-content/uploads/2020/06/PolyForm-Shield-1.0.0.txt.
*/
import type { ColumnData } from './ColumnChart.types'
import { LOADING_COLUMN_HEIGHTS } from './ColumnChart.constants'
export function calculatePositionForTimestamp({
endOfTimestamps,
startTime,
startOfTimestamps,
containerWidth
}: {
endOfTimestamps: number
startTime: number
startOfTimestamps: number
containerWidth: number
}): number {
return (1 - (endOfTimestamps - startTime) / (endOfTimestamps - startOfTimestamps)) * containerWidth
}
export function getColumnPositions(containerWidth: number, timestamps?: ColumnData[]): number[] {
Iif (!timestamps?.length) {
return []
}
const startOfTimestamps = timestamps[0]?.timeRange?.startTime
const endOfTimestamps = timestamps[timestamps?.length - 1]?.timeRange?.endTime
Iif (!startOfTimestamps || !endOfTimestamps) {
return []
}
const barLeftOffset: number[] = []
for (const timestamp of timestamps) {
const { startTime } = timestamp?.timeRange || {}
Iif (!startTime) continue
const position = calculatePositionForTimestamp({ endOfTimestamps, startTime, startOfTimestamps, containerWidth })
barLeftOffset.push(position)
}
return barLeftOffset
}
export function getLoadingColumnPositions(containerWidth: number): number[] {
return LOADING_COLUMN_HEIGHTS.map((_, index) => (containerWidth / LOADING_COLUMN_HEIGHTS.length) * index)
}
|