bentogreed
Version:
A lightweight, framework-agnostic library for generating bento grid layouts
20 lines (19 loc) • 556 B
JavaScript
import { squarifiedLayout } from './squarified';
import { binaryLayout } from './binary';
/**
* Strategy registry - makes it easy to add new algorithms
*/
const strategies = {
squarified: squarifiedLayout,
binary: binaryLayout,
};
/**
* Apply a layout strategy to tiles within a rectangle
*/
export function applyLayoutStrategy(strategy, tiles, rect, gutter = 0) {
const layoutFn = strategies[strategy];
if (!layoutFn) {
throw new Error(`Unknown layout strategy: ${strategy}`);
}
return layoutFn(tiles, rect, gutter);
}