Skip to content

Commit 9834144

Browse files
authored
Merge pull request #6413 from plotly/refactor-grouping-defaults
separate file for grouping defaults
2 parents 9446de6 + 8eea1ad commit 9834144

File tree

6 files changed

+47
-45
lines changed

6 files changed

+47
-45
lines changed

src/traces/bar/defaults.js

Lines changed: 1 addition & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ var Registry = require('../../registry');
77
var handleXYDefaults = require('../scatter/xy_defaults');
88
var handlePeriodDefaults = require('../scatter/period_defaults');
99
var handleStyleDefaults = require('./style_defaults');
10-
var getAxisGroup = require('../../plots/cartesian/constraints').getAxisGroup;
10+
var handleGroupingDefaults = require('./grouping_defaults');
1111
var attributes = require('./attributes');
1212

1313
var coerceFont = Lib.coerceFont;
@@ -58,45 +58,6 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
5858
Lib.coerceSelectionMarkerOpacity(traceOut, coerce);
5959
}
6060

61-
function handleGroupingDefaults(traceIn, traceOut, fullLayout, coerce) {
62-
var orientation = traceOut.orientation;
63-
// N.B. grouping is done across all trace types that support it
64-
var posAxId = traceOut[{v: 'x', h: 'y'}[orientation] + 'axis'];
65-
var groupId = getAxisGroup(fullLayout, posAxId) + orientation;
66-
67-
var alignmentOpts = fullLayout._alignmentOpts || {};
68-
var alignmentgroup = coerce('alignmentgroup');
69-
70-
var alignmentGroups = alignmentOpts[groupId];
71-
if(!alignmentGroups) alignmentGroups = alignmentOpts[groupId] = {};
72-
73-
var alignmentGroupOpts = alignmentGroups[alignmentgroup];
74-
75-
if(alignmentGroupOpts) {
76-
alignmentGroupOpts.traces.push(traceOut);
77-
} else {
78-
alignmentGroupOpts = alignmentGroups[alignmentgroup] = {
79-
traces: [traceOut],
80-
alignmentIndex: Object.keys(alignmentGroups).length,
81-
offsetGroups: {}
82-
};
83-
}
84-
85-
var offsetgroup = coerce('offsetgroup');
86-
var offsetGroups = alignmentGroupOpts.offsetGroups;
87-
var offsetGroupOpts = offsetGroups[offsetgroup];
88-
89-
if(offsetgroup) {
90-
if(!offsetGroupOpts) {
91-
offsetGroupOpts = offsetGroups[offsetgroup] = {
92-
offsetIndex: Object.keys(offsetGroups).length
93-
};
94-
}
95-
96-
traceOut._offsetIndex = offsetGroupOpts.offsetIndex;
97-
}
98-
}
99-
10061
function crossTraceDefaults(fullData, fullLayout) {
10162
var traceIn, traceOut;
10263

@@ -172,6 +133,5 @@ function handleText(traceIn, traceOut, layout, coerce, textposition, opts) {
172133
module.exports = {
173134
supplyDefaults: supplyDefaults,
174135
crossTraceDefaults: crossTraceDefaults,
175-
handleGroupingDefaults: handleGroupingDefaults,
176136
handleText: handleText
177137
};

src/traces/bar/grouping_defaults.js

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
'use strict';
2+
3+
var getAxisGroup = require('../../plots/cartesian/constraints').getAxisGroup;
4+
5+
module.exports = function handleGroupingDefaults(traceIn, traceOut, fullLayout, coerce) {
6+
var orientation = traceOut.orientation;
7+
// N.B. grouping is done across all trace types that support it
8+
var posAxId = traceOut[{v: 'x', h: 'y'}[orientation] + 'axis'];
9+
var groupId = getAxisGroup(fullLayout, posAxId) + orientation;
10+
11+
var alignmentOpts = fullLayout._alignmentOpts || {};
12+
var alignmentgroup = coerce('alignmentgroup');
13+
14+
var alignmentGroups = alignmentOpts[groupId];
15+
if(!alignmentGroups) alignmentGroups = alignmentOpts[groupId] = {};
16+
17+
var alignmentGroupOpts = alignmentGroups[alignmentgroup];
18+
19+
if(alignmentGroupOpts) {
20+
alignmentGroupOpts.traces.push(traceOut);
21+
} else {
22+
alignmentGroupOpts = alignmentGroups[alignmentgroup] = {
23+
traces: [traceOut],
24+
alignmentIndex: Object.keys(alignmentGroups).length,
25+
offsetGroups: {}
26+
};
27+
}
28+
29+
var offsetgroup = coerce('offsetgroup');
30+
var offsetGroups = alignmentGroupOpts.offsetGroups;
31+
var offsetGroupOpts = offsetGroups[offsetgroup];
32+
33+
if(offsetgroup) {
34+
if(!offsetGroupOpts) {
35+
offsetGroupOpts = offsetGroups[offsetgroup] = {
36+
offsetIndex: Object.keys(offsetGroups).length
37+
};
38+
}
39+
40+
traceOut._offsetIndex = offsetGroupOpts.offsetIndex;
41+
}
42+
};

src/traces/box/defaults.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ var Lib = require('../../lib');
44
var Registry = require('../../registry');
55
var Color = require('../../components/color');
66
var handlePeriodDefaults = require('../scatter/period_defaults');
7-
var handleGroupingDefaults = require('../bar/defaults').handleGroupingDefaults;
7+
var handleGroupingDefaults = require('../bar/grouping_defaults');
88
var autoType = require('../../plots/cartesian/axis_autotype');
99
var attributes = require('./attributes');
1010

src/traces/funnel/defaults.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
var Lib = require('../../lib');
44

5-
var handleGroupingDefaults = require('../bar/defaults').handleGroupingDefaults;
5+
var handleGroupingDefaults = require('../bar/grouping_defaults');
66
var handleText = require('../bar/defaults').handleText;
77
var handleXYDefaults = require('../scatter/xy_defaults');
88
var handlePeriodDefaults = require('../scatter/period_defaults');

src/traces/histogram/cross_trace_defaults.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ var Lib = require('../../lib');
44
var axisIds = require('../../plots/cartesian/axis_ids');
55

66
var traceIs = require('../../registry').traceIs;
7-
var handleGroupingDefaults = require('../bar/defaults').handleGroupingDefaults;
7+
var handleGroupingDefaults = require('../bar/grouping_defaults');
88

99
var nestedProperty = Lib.nestedProperty;
1010
var getAxisGroup = require('../../plots/cartesian/constraints').getAxisGroup;

src/traces/waterfall/defaults.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
var Lib = require('../../lib');
44

5-
var handleGroupingDefaults = require('../bar/defaults').handleGroupingDefaults;
5+
var handleGroupingDefaults = require('../bar/grouping_defaults');
66
var handleText = require('../bar/defaults').handleText;
77
var handleXYDefaults = require('../scatter/xy_defaults');
88
var handlePeriodDefaults = require('../scatter/period_defaults');

0 commit comments

Comments
 (0)