UNPKG

@grafana/ui

Version:
33 lines (29 loc) 1.39 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); "use strict"; const calculateGridDimensions = (parentWidth, parentHeight, itemSpacing, numberOfChildren) => { const vertical = calculateSizeOfChild(parentWidth, parentHeight, numberOfChildren); const horizontal = calculateSizeOfChild(parentHeight, parentWidth, numberOfChildren); const square = Math.max(vertical, horizontal); let xCount = Math.floor(parentWidth / square); let yCount = Math.ceil(numberOfChildren / xCount); xCount = Math.ceil(numberOfChildren / yCount); const itemsOnLastRow = xCount - (xCount * yCount - numberOfChildren); const widthOnLastRow = parentWidth / itemsOnLastRow - itemSpacing + itemSpacing / itemsOnLastRow; return { width: parentWidth / xCount - itemSpacing + itemSpacing / xCount, height: parentHeight / yCount - itemSpacing + itemSpacing / yCount, widthOnLastRow, xCount, yCount }; }; function calculateSizeOfChild(parentWidth, parentHeight, numberOfChildren) { const parts = Math.ceil(Math.sqrt(numberOfChildren * parentWidth / parentHeight)); if (Math.floor(parts * parentHeight / parentWidth) * parts < numberOfChildren) { return parentHeight / Math.ceil(parts * parentHeight / parentWidth); } return parentWidth / parts; } exports.calculateGridDimensions = calculateGridDimensions; //# sourceMappingURL=squares.cjs.map