@@ -17,61 +17,45 @@ var orientText = require('./orient_text');
1717var svgTextUtils = require ( '../../lib/svg_text_utils' ) ;
1818var Lib = require ( '../../lib' ) ;
1919var alignmentConstants = require ( '../../constants/alignment' ) ;
20- var getUidsFromCalcData = require ( '../../plots/get_data' ) . getUidsFromCalcData ;
2120
2221module . exports = function plot ( gd , plotinfo , cdcarpet , carpetLayer ) {
23- var uidLookup = getUidsFromCalcData ( cdcarpet ) ;
24-
25- carpetLayer . selectAll ( 'g.trace' ) . each ( function ( ) {
26- var classString = d3 . select ( this ) . attr ( 'class' ) ;
27- var oldUid = classString . split ( 'carpet' ) [ 1 ] . split ( / \s / ) [ 0 ] ;
28-
29- if ( ! uidLookup [ oldUid ] ) {
30- d3 . select ( this ) . remove ( ) ;
31- }
32- } ) ;
33-
34- for ( var i = 0 ; i < cdcarpet . length ; i ++ ) {
35- plotOne ( gd , plotinfo , cdcarpet [ i ] , carpetLayer ) ;
36- }
37- } ;
38-
39- function plotOne ( gd , plotinfo , cd , carpetLayer ) {
40- var t = cd [ 0 ] ;
41- var trace = cd [ 0 ] . trace ,
42- xa = plotinfo . xaxis ,
43- ya = plotinfo . yaxis ,
44- aax = trace . aaxis ,
45- bax = trace . baxis ,
46- fullLayout = gd . _fullLayout ;
47-
22+ var xa = plotinfo . xaxis ;
23+ var ya = plotinfo . yaxis ;
24+ var fullLayout = gd . _fullLayout ;
4825 var clipLayer = fullLayout . _clips ;
4926
50- var axisLayer = Lib . ensureSingle ( carpetLayer , 'g' , 'carpet' + trace . uid ) . classed ( 'trace' , true ) ;
51- var minorLayer = Lib . ensureSingle ( axisLayer , 'g' , 'minorlayer' ) ;
52- var majorLayer = Lib . ensureSingle ( axisLayer , 'g' , 'majorlayer' ) ;
53- var boundaryLayer = Lib . ensureSingle ( axisLayer , 'g' , 'boundarylayer' ) ;
54- var labelLayer = Lib . ensureSingle ( axisLayer , 'g' , 'labellayer' ) ;
27+ Lib . makeTraceGroups ( carpetLayer , cdcarpet , 'trace' ) . each ( function ( cd ) {
28+ var axisLayer = d3 . select ( this ) ;
29+ var cd0 = cd [ 0 ] ;
30+ var trace = cd0 . trace ;
31+ var aax = trace . aaxis ;
32+ var bax = trace . baxis ;
5533
56- axisLayer . style ( 'opacity' , trace . opacity ) ;
34+ var minorLayer = Lib . ensureSingle ( axisLayer , 'g' , 'minorlayer' ) ;
35+ var majorLayer = Lib . ensureSingle ( axisLayer , 'g' , 'majorlayer' ) ;
36+ var boundaryLayer = Lib . ensureSingle ( axisLayer , 'g' , 'boundarylayer' ) ;
37+ var labelLayer = Lib . ensureSingle ( axisLayer , 'g' , 'labellayer' ) ;
5738
58- drawGridLines ( xa , ya , majorLayer , aax , 'a' , aax . _gridlines , true ) ;
59- drawGridLines ( xa , ya , majorLayer , bax , 'b' , bax . _gridlines , true ) ;
60- drawGridLines ( xa , ya , minorLayer , aax , 'a' , aax . _minorgridlines , true ) ;
61- drawGridLines ( xa , ya , minorLayer , bax , 'b' , bax . _minorgridlines , true ) ;
39+ axisLayer . style ( 'opacity' , trace . opacity ) ;
6240
63- // NB: These are not ommitted if the lines are not active. The joins must be executed
64- // in order for them to get cleaned up without a full redraw
65- drawGridLines ( xa , ya , boundaryLayer , aax , 'a-boundary ' , aax . _boundarylines ) ;
66- drawGridLines ( xa , ya , boundaryLayer , bax , 'b-boundary ' , bax . _boundarylines ) ;
41+ drawGridLines ( xa , ya , majorLayer , aax , 'a' , aax . _gridlines , true ) ;
42+ drawGridLines ( xa , ya , majorLayer , bax , 'b' , bax . _gridlines , true ) ;
43+ drawGridLines ( xa , ya , minorLayer , aax , 'a' , aax . _minorgridlines , true ) ;
44+ drawGridLines ( xa , ya , minorLayer , bax , 'b' , bax . _minorgridlines , true ) ;
6745
68- var labelOrientationA = drawAxisLabels ( gd , xa , ya , trace , t , labelLayer , aax . _labels , 'a-label' ) ;
69- var labelOrientationB = drawAxisLabels ( gd , xa , ya , trace , t , labelLayer , bax . _labels , 'b-label' ) ;
46+ // NB: These are not ommitted if the lines are not active. The joins must be executed
47+ // in order for them to get cleaned up without a full redraw
48+ drawGridLines ( xa , ya , boundaryLayer , aax , 'a-boundary' , aax . _boundarylines ) ;
49+ drawGridLines ( xa , ya , boundaryLayer , bax , 'b-boundary' , bax . _boundarylines ) ;
7050
71- drawAxisTitles ( gd , labelLayer , trace , t , xa , ya , labelOrientationA , labelOrientationB ) ;
51+ var labelOrientationA = drawAxisLabels ( gd , xa , ya , trace , cd0 , labelLayer , aax . _labels , 'a-label' ) ;
52+ var labelOrientationB = drawAxisLabels ( gd , xa , ya , trace , cd0 , labelLayer , bax . _labels , 'b-label' ) ;
7253
73- drawClipPath ( trace , t , clipLayer , xa , ya ) ;
74- }
54+ drawAxisTitles ( gd , labelLayer , trace , cd0 , xa , ya , labelOrientationA , labelOrientationB ) ;
55+
56+ drawClipPath ( trace , cd0 , clipLayer , xa , ya ) ;
57+ } ) ;
58+ } ;
7559
7660function drawClipPath ( trace , t , layer , xaxis , yaxis ) {
7761 var seg , xp , yp , i ;
0 commit comments