Skip to content

Commit d8629ce

Browse files
committed
add multiple legends to layout based on legendgroup
1 parent 3f8cfe7 commit d8629ce

File tree

1 file changed

+20
-4
lines changed

1 file changed

+20
-4
lines changed

src/components/legend/defaults.js

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ var attributes = require('./attributes');
99
var basePlotLayoutAttributes = require('../../plots/layout_attributes');
1010
var helpers = require('./helpers');
1111

12-
13-
module.exports = function legendDefaults(layoutIn, layoutOut, fullData) {
14-
var containerIn = layoutIn.legend || {};
15-
var containerOut = Template.newContainer(layoutOut, 'legend');
12+
function groupDefaults(legendGroup, layoutIn, layoutOut, fullData) {
13+
var name = 'legend' + legendGroup;
14+
var containerIn = layoutIn[name] || {};
15+
var containerOut = Template.newContainer(layoutOut, name);
1616

1717
function coerce(attr, dflt) {
1818
return Lib.coerce(containerIn, containerOut, attributes, attr, dflt);
@@ -147,4 +147,20 @@ module.exports = function legendDefaults(layoutIn, layoutOut, fullData) {
147147

148148
Lib.coerceFont(coerce, 'title.font', dfltTitleFont);
149149
}
150+
}
151+
152+
module.exports = function legendDefaults(layoutIn, layoutOut, fullData) {
153+
var i;
154+
var groups = [''];
155+
156+
for(i = 0; i < fullData.length; i++) {
157+
Lib.pushUnique(groups, fullData[i].legendgroup);
158+
}
159+
160+
for(i = 0; i < groups.length; i++) {
161+
var groupName = groups[i];
162+
groupDefaults(groupName, layoutIn, layoutOut, fullData);
163+
164+
layoutOut['legend' + groupName]._id = groupName;
165+
}
150166
};

0 commit comments

Comments
 (0)