Introduce getDimWithMargin helper
This commit is contained in:
@@ -70,6 +70,12 @@ function computeLayout(node) {
|
|||||||
return node.style.flex === 1;
|
return node.style.flex === 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getDimWithMargin(node, axis) {
|
||||||
|
return node.layout[dim[axis]] +
|
||||||
|
getMargin(leading[axis], node) +
|
||||||
|
getMargin(trailing[axis], node);
|
||||||
|
}
|
||||||
|
|
||||||
var axis = {
|
var axis = {
|
||||||
left: 'horizontal',
|
left: 'horizontal',
|
||||||
right: 'horizontal',
|
right: 'horizontal',
|
||||||
@@ -115,9 +121,7 @@ function computeLayout(node) {
|
|||||||
children.forEach(function(child) {
|
children.forEach(function(child) {
|
||||||
if (node.layout[dim[mainAxis]] === undefined || !getFlex(child)) {
|
if (node.layout[dim[mainAxis]] === undefined || !getFlex(child)) {
|
||||||
layoutNode(child);
|
layoutNode(child);
|
||||||
mainContentDim += child.layout[dim[mainAxis]] +
|
mainContentDim += getDimWithMargin(child, mainAxis);
|
||||||
getMargin(leading[mainAxis], child) +
|
|
||||||
getMargin(trailing[mainAxis], child);
|
|
||||||
} else {
|
} else {
|
||||||
flexibleChildrenCount++;
|
flexibleChildrenCount++;
|
||||||
}
|
}
|
||||||
@@ -156,16 +160,10 @@ function computeLayout(node) {
|
|||||||
var mainPos = leadingMainDim;
|
var mainPos = leadingMainDim;
|
||||||
children.forEach(function(child) {
|
children.forEach(function(child) {
|
||||||
child.layout[pos[mainAxis]] += mainPos;
|
child.layout[pos[mainAxis]] += mainPos;
|
||||||
mainPos += child.layout[dim[mainAxis]] +
|
mainPos += getDimWithMargin(child, mainAxis) + betweenMainDim;
|
||||||
getMargin(leading[mainAxis], child) +
|
|
||||||
getMargin(trailing[mainAxis], child) +
|
|
||||||
betweenMainDim;
|
|
||||||
|
|
||||||
if (child.layout[dim[crossAxis]] !== undefined) {
|
if (child.layout[dim[crossAxis]] !== undefined) {
|
||||||
var childCrossDim = child.layout[dim[crossAxis]] +
|
var childCrossDim = getDimWithMargin(child, crossAxis);
|
||||||
getMargin(leading[crossAxis], child) +
|
|
||||||
getMargin(trailing[crossAxis], child);
|
|
||||||
|
|
||||||
if (childCrossDim > crossDim) {
|
if (childCrossDim > crossDim) {
|
||||||
crossDim = childCrossDim;
|
crossDim = childCrossDim;
|
||||||
}
|
}
|
||||||
@@ -182,9 +180,7 @@ function computeLayout(node) {
|
|||||||
children.forEach(function(child) {
|
children.forEach(function(child) {
|
||||||
var alignItem = getAlignItem(node, child);
|
var alignItem = getAlignItem(node, child);
|
||||||
var remainingCrossDim = node.layout[dim[crossAxis]] -
|
var remainingCrossDim = node.layout[dim[crossAxis]] -
|
||||||
child.layout[dim[crossAxis]] -
|
getDimWithMargin(child, crossAxis);
|
||||||
getMargin(leading[crossAxis], child) -
|
|
||||||
getMargin(trailing[crossAxis], child);
|
|
||||||
var leadingCrossDim = 0;
|
var leadingCrossDim = 0;
|
||||||
if (alignItem === 'flex-start') {
|
if (alignItem === 'flex-start') {
|
||||||
// Do nothing
|
// Do nothing
|
||||||
@@ -193,9 +189,7 @@ function computeLayout(node) {
|
|||||||
} else if (alignItem === 'flex-end') {
|
} else if (alignItem === 'flex-end') {
|
||||||
leadingCrossDim = remainingCrossDim;
|
leadingCrossDim = remainingCrossDim;
|
||||||
} else if (alignItem === 'stretch') {
|
} else if (alignItem === 'stretch') {
|
||||||
child.layout[dim[crossAxis]] = node.layout[dim[crossAxis]] -
|
child.layout[dim[crossAxis]] = getDimWithMargin(node, crossAxis);
|
||||||
getMargin(leading[crossAxis], child) -
|
|
||||||
getMargin(trailing[crossAxis], child);
|
|
||||||
}
|
}
|
||||||
child.layout[pos[crossAxis]] += leadingCrossDim;
|
child.layout[pos[crossAxis]] += leadingCrossDim;
|
||||||
});
|
});
|
||||||
|
Reference in New Issue
Block a user