42 lines
1.4 KiB
JavaScript
42 lines
1.4 KiB
JavaScript
|
import { l as log } from "./config-389b86ff.js";
|
||
|
const d3Attrs = function(d3Elem, attrs) {
|
||
|
for (let attr of attrs) {
|
||
|
d3Elem.attr(attr[0], attr[1]);
|
||
|
}
|
||
|
};
|
||
|
const calculateSvgSizeAttrs = function(height, width, useMaxWidth) {
|
||
|
let attrs = /* @__PURE__ */ new Map();
|
||
|
if (useMaxWidth) {
|
||
|
attrs.set("width", "100%");
|
||
|
attrs.set("style", `max-width: ${width}px;`);
|
||
|
} else {
|
||
|
attrs.set("height", height);
|
||
|
attrs.set("width", width);
|
||
|
}
|
||
|
return attrs;
|
||
|
};
|
||
|
const configureSvgSize = function(svgElem, height, width, useMaxWidth) {
|
||
|
const attrs = calculateSvgSizeAttrs(height, width, useMaxWidth);
|
||
|
d3Attrs(svgElem, attrs);
|
||
|
};
|
||
|
const setupGraphViewbox = function(graph, svgElem, padding, useMaxWidth) {
|
||
|
const svgBounds = svgElem.node().getBBox();
|
||
|
const sWidth = svgBounds.width;
|
||
|
const sHeight = svgBounds.height;
|
||
|
log.info(`SVG bounds: ${sWidth}x${sHeight}`, svgBounds);
|
||
|
let width = 0;
|
||
|
let height = 0;
|
||
|
log.info(`Graph bounds: ${width}x${height}`, graph);
|
||
|
width = sWidth + padding * 2;
|
||
|
height = sHeight + padding * 2;
|
||
|
log.info(`Calculated bounds: ${width}x${height}`);
|
||
|
configureSvgSize(svgElem, height, width, useMaxWidth);
|
||
|
const vBox = `${svgBounds.x - padding} ${svgBounds.y - padding} ${svgBounds.width + 2 * padding} ${svgBounds.height + 2 * padding}`;
|
||
|
svgElem.attr("viewBox", vBox);
|
||
|
};
|
||
|
export {
|
||
|
configureSvgSize as c,
|
||
|
setupGraphViewbox as s
|
||
|
};
|
||
|
//# sourceMappingURL=setupGraphViewbox-e35e4124.js.map
|