(function (exports) {
"use strict";
function makeTimePanelLayout(pw, labelW, scrollbarW, viewStart, viewEnd) {
const sb = scrollbarW || 0;
const drawW = pw - labelW - sb;
const span = (viewEnd - viewStart) || 1;
return {
pw,
labelW,
drawW,
nsToPanelX(ns) {
return labelW + ((ns - viewStart) / span) * drawW;
},
nsToPanelXClamped(ns) {
const raw = ((ns - viewStart) / span) * drawW;
return labelW + Math.max(0, Math.min(drawW, raw));
},
panelXToNs(x) {
return viewStart + ((x - labelW) / drawW) * span;
},
};
}
exports.makeTimePanelLayout = makeTimePanelLayout;
})(
typeof module !== "undefined" && module.exports
? module.exports
: (typeof window !== "undefined"
? (window.PanelLayout = window.PanelLayout || {})
: (this.PanelLayout = this.PanelLayout || {})),
);