UNPKG

@shopify/polaris

Version:

Shopify’s product component library

43 lines (39 loc) 1.27 kB
function measureColumn(tableData) { return function (column, index) { var { firstVisibleColumnIndex, tableLeftVisibleEdge: tableStart, tableRightVisibleEdge: tableEnd } = tableData; var leftEdge = column.offsetLeft; var rightEdge = leftEdge + column.offsetWidth; var isVisibleLeft = isEdgeVisible(leftEdge, tableStart, tableEnd); var isVisibleRight = isEdgeVisible(rightEdge, tableStart, tableEnd); var isVisible = isVisibleLeft || isVisibleRight; if (isVisible) { tableData.firstVisibleColumnIndex = Math.min(firstVisibleColumnIndex, index); } return { leftEdge, rightEdge, isVisible }; }; } function isEdgeVisible(position, start, end) { var minVisiblePixels = 30; return position >= start + minVisiblePixels && position <= end - minVisiblePixels; } function getPrevAndCurrentColumns(tableData, columnData) { var { firstVisibleColumnIndex } = tableData; var previousColumnIndex = Math.max(firstVisibleColumnIndex - 1, 0); var previousColumn = columnData[previousColumnIndex]; var currentColumn = columnData[firstVisibleColumnIndex]; return { previousColumn, currentColumn }; } export { getPrevAndCurrentColumns, isEdgeVisible, measureColumn };