(gd, legendId, lx, ly)
| 1087 | } |
| 1088 | |
| 1089 | function expandMargin(gd, legendId, lx, ly) { |
| 1090 | var fullLayout = gd._fullLayout; |
| 1091 | var legendObj = fullLayout[legendId]; |
| 1092 | var xanchor = getXanchor(legendObj); |
| 1093 | var yanchor = getYanchor(legendObj); |
| 1094 | |
| 1095 | var isPaperX = legendObj.xref === 'paper'; |
| 1096 | var isPaperY = legendObj.yref === 'paper'; |
| 1097 | |
| 1098 | gd._fullLayout._reservedMargin[legendId] = {}; |
| 1099 | var sideY = legendObj.y < 0.5 ? 'b' : 't'; |
| 1100 | var sideX = legendObj.x < 0.5 ? 'l' : 'r'; |
| 1101 | var possibleReservedMargins = { |
| 1102 | r: (fullLayout.width - lx), |
| 1103 | l: lx + legendObj._width, |
| 1104 | b: (fullLayout.height - ly), |
| 1105 | t: ly + legendObj._effHeight |
| 1106 | }; |
| 1107 | |
| 1108 | if(isPaperX && isPaperY) { |
| 1109 | return Plots.autoMargin(gd, legendId, { |
| 1110 | x: legendObj.x, |
| 1111 | y: legendObj.y, |
| 1112 | l: legendObj._width * (FROM_TL[xanchor]), |
| 1113 | r: legendObj._width * (FROM_BR[xanchor]), |
| 1114 | b: legendObj._effHeight * (FROM_BR[yanchor]), |
| 1115 | t: legendObj._effHeight * (FROM_TL[yanchor]) |
| 1116 | }); |
| 1117 | } else if(isPaperX) { |
| 1118 | gd._fullLayout._reservedMargin[legendId][sideY] = possibleReservedMargins[sideY]; |
| 1119 | } else if(isPaperY) { |
| 1120 | gd._fullLayout._reservedMargin[legendId][sideX] = possibleReservedMargins[sideX]; |
| 1121 | } else { |
| 1122 | if(legendObj.orientation === 'v') { |
| 1123 | gd._fullLayout._reservedMargin[legendId][sideX] = possibleReservedMargins[sideX]; |
| 1124 | } else { |
| 1125 | gd._fullLayout._reservedMargin[legendId][sideY] = possibleReservedMargins[sideY]; |
| 1126 | } |
| 1127 | } |
| 1128 | } |
| 1129 | |
| 1130 | function getXanchor(legendObj) { |
| 1131 | return Lib.isRightAnchor(legendObj) ? 'right' : |
no test coverage detected
searching dependent graphs…