(boxes)
| 83 | } |
| 84 | |
| 85 | function buildLayoutBoxes(boxes) { |
| 86 | const layoutBoxes = wrapBoxes(boxes); |
| 87 | const fullSize = sortByWeight(layoutBoxes.filter(wrap => wrap.box.fullSize), true); |
| 88 | const left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true); |
| 89 | const right = sortByWeight(filterByPosition(layoutBoxes, 'right')); |
| 90 | const top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true); |
| 91 | const bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom')); |
| 92 | const centerHorizontal = filterDynamicPositionByAxis(layoutBoxes, 'x'); |
| 93 | const centerVertical = filterDynamicPositionByAxis(layoutBoxes, 'y'); |
| 94 | |
| 95 | return { |
| 96 | fullSize, |
| 97 | leftAndTop: left.concat(top), |
| 98 | rightAndBottom: right.concat(centerVertical).concat(bottom).concat(centerHorizontal), |
| 99 | chartArea: filterByPosition(layoutBoxes, 'chartArea'), |
| 100 | vertical: left.concat(right).concat(centerVertical), |
| 101 | horizontal: top.concat(bottom).concat(centerHorizontal) |
| 102 | }; |
| 103 | } |
| 104 | |
| 105 | function getCombinedMax(maxPadding, chartArea, a, b) { |
| 106 | return Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]); |
no test coverage detected