@@ -9,10 +9,10 @@ var attributes = require('./attributes');
9
9
var basePlotLayoutAttributes = require ( '../../plots/layout_attributes' ) ;
10
10
var helpers = require ( './helpers' ) ;
11
11
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 ) ;
16
16
17
17
function coerce ( attr , dflt ) {
18
18
return Lib . coerce ( containerIn , containerOut , attributes , attr , dflt ) ;
@@ -147,4 +147,20 @@ module.exports = function legendDefaults(layoutIn, layoutOut, fullData) {
147
147
148
148
Lib . coerceFont ( coerce , 'title.font' , dfltTitleFont ) ;
149
149
}
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
+ }
150
166
} ;
0 commit comments