@sanity/desk-tool
Version:
Tool for managing all sorts of content in a structured manner
43 lines (40 loc) • 1.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports._calcPaneResize = _calcPaneResize;
var _constants = require("../constants");
function _calcPaneResize(cache, left, right, deltaX) {
var _left$minWidth, _right$minWidth;
var sum = {
flex: cache.left.flex + cache.right.flex,
width: cache.left.width + cache.right.width
};
var leftMinWidth = (_left$minWidth = left.minWidth) !== null && _left$minWidth !== void 0 ? _left$minWidth : _constants.PANE_DEFAULT_MIN_WIDTH;
var rightMinWidth = (_right$minWidth = right.minWidth) !== null && _right$minWidth !== void 0 ? _right$minWidth : _constants.PANE_DEFAULT_MIN_WIDTH;
var leftMaxWidth = Math.min(left.maxWidth || Infinity, sum.width - rightMinWidth);
var rightMaxWidth = Math.min(right.maxWidth || Infinity, sum.width - leftMinWidth);
// Get min. delta X
var minDeltaX = leftMinWidth - cache.left.width;
var rightMinDeltaX = cache.right.width - rightMaxWidth;
if (minDeltaX < rightMinDeltaX) {
minDeltaX = rightMinDeltaX;
}
// Get max. delta X
var maxDeltaX = cache.right.width - rightMinWidth;
var leftMaxDeltaX = leftMaxWidth - cache.left.width;
if (maxDeltaX > leftMaxDeltaX) {
maxDeltaX = leftMaxDeltaX;
}
var _deltaX = Math.min(Math.max(deltaX, minDeltaX), maxDeltaX);
var leftW = cache.left.width + _deltaX;
var rightW = cache.right.width - _deltaX;
var leftFlex = leftW / sum.width * sum.flex;
var rightFlex = rightW / sum.width * sum.flex;
return {
leftFlex,
leftW,
rightFlex,
rightW
};
}