UNPKG

@sanity/desk-tool

Version:

Tool for managing all sorts of content in a structured manner

43 lines (40 loc) 1.56 kB
"use strict"; 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 }; }