UNPKG

@gooddata/react-components

Version:

GoodData.UI - A powerful JavaScript library for building analytical applications

40 lines (31 loc) 1.19 kB
// (C) 2007-2019 GoodData Corporation import { IPositions } from "../../../../interfaces/Table"; import { DEFAULT_ROW_HEIGHT } from "../constants/layout"; function setPosition(element: HTMLElement, position: string, top: number, isSticking: boolean = false): void { const { style, classList } = element; classList[isSticking ? "add" : "remove"]("sticking"); style.position = position; style.top = `${Math.round(top)}px`; } export function updatePosition( element: HTMLElement, positions: IPositions, isDefaultPosition: boolean, isEdgePosition: boolean, isScrollingStopped: boolean, ): void { const { defaultTop, edgeTop, fixedTop, absoluteTop } = positions; if (isDefaultPosition) { return setPosition(element, "absolute", defaultTop); } if (isEdgePosition) { return setPosition(element, "absolute", edgeTop, true); } if (isScrollingStopped) { return setPosition(element, "absolute", absoluteTop, true); } return setPosition(element, "fixed", fixedTop, true); } export function getHiddenRowsOffset(hasHiddenRows: boolean): number { return hasHiddenRows ? 0.5 * DEFAULT_ROW_HEIGHT : 0; }