Skip to content

Commit ba1ae6f

Browse files
committed
move all uniformtext functions to bar/uniform_text.js
1 parent 2a7721c commit ba1ae6f

File tree

15 files changed

+109
-90
lines changed

15 files changed

+109
-90
lines changed

src/traces/bar/plot.js

Lines changed: 4 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ var Drawing = require('../../components/drawing');
1919
var Registry = require('../../registry');
2020
var tickText = require('../../plots/cartesian/axes').tickText;
2121

22+
var uniformText = require('./uniform_text');
2223
var style = require('./style');
2324
var helpers = require('./helpers');
2425
var constants = require('./constants');
@@ -93,7 +94,7 @@ function plot(gd, plotinfo, cdModule, traceLayer, opts, makeOnCompleteCallback)
9394
};
9495

9596
// don't clear bar when this is called from waterfall or funnel
96-
clearMinTextSize('bar', fullLayout);
97+
uniformText.clearMinTextSize('bar', fullLayout);
9798
}
9899

99100
var bartraces = Lib.makeTraceGroups(traceLayer, cdModule, 'trace bars').each(function(cd) {
@@ -409,47 +410,13 @@ function appendBarText(gd, plotinfo, bar, cd, i, x0, x1, y0, y1, opts, makeOnCom
409410
}
410411

411412
transform.fontSize = font.size;
412-
recordMinTextSize(trace.type, transform, fullLayout);
413+
uniformText.recordMinTextSize(trace.type, transform, fullLayout);
413414
calcBar.transform = transform;
414415

415416
transition(textSelection, fullLayout, opts, makeOnCompleteCallback)
416417
.attr('transform', Lib.getTextTransform(transform));
417418
}
418419

419-
function recordMinTextSize(
420-
traceType, // in
421-
transform, // inout
422-
fullLayout // inout
423-
) {
424-
if(fullLayout.uniformtext.mode) {
425-
var minKey = getMinKey(traceType);
426-
var minSize = fullLayout.uniformtext.minsize;
427-
var size = transform.scale * transform.fontSize;
428-
429-
transform.hide = size < minSize;
430-
431-
fullLayout[minKey] = fullLayout[minKey] || Infinity;
432-
if(!transform.hide) {
433-
fullLayout[minKey] = Math.min(
434-
fullLayout[minKey],
435-
Math.max(size, minSize)
436-
);
437-
}
438-
}
439-
}
440-
441-
function clearMinTextSize(
442-
traceType, // in
443-
fullLayout // inout
444-
) {
445-
var minKey = getMinKey(traceType);
446-
fullLayout[minKey] = undefined;
447-
}
448-
449-
function getMinKey(traceType) {
450-
return '_' + traceType + 'Text_minsize';
451-
}
452-
453420
function getRotateFromAngle(angle) {
454421
return (angle === 'auto') ? 0 : angle;
455422
}
@@ -769,7 +736,5 @@ function calcTextinfo(cd, index, xa, ya) {
769736

770737
module.exports = {
771738
plot: plot,
772-
toMoveInsideBar: toMoveInsideBar,
773-
recordMinTextSize: recordMinTextSize,
774-
clearMinTextSize: clearMinTextSize
739+
toMoveInsideBar: toMoveInsideBar
775740
};

src/traces/bar/style.js

Lines changed: 1 addition & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -14,44 +14,13 @@ var Drawing = require('../../components/drawing');
1414
var Lib = require('../../lib');
1515
var Registry = require('../../registry');
1616

17+
var resizeText = require('./uniform_text').resizeText;
1718
var attributes = require('./attributes');
1819
var attributeTextFont = attributes.textfont;
1920
var attributeInsideTextFont = attributes.insidetextfont;
2021
var attributeOutsideTextFont = attributes.outsidetextfont;
2122
var helpers = require('./helpers');
2223

23-
function resizeText(gd, gTrace, traceType) {
24-
var fullLayout = gd._fullLayout;
25-
var minSize = fullLayout['_' + traceType + 'Text_minsize'];
26-
if(minSize) {
27-
var shouldHide = fullLayout.uniformtext.mode === 'hide';
28-
29-
var selector;
30-
switch(traceType) {
31-
case 'funnelarea' :
32-
case 'pie' :
33-
case 'sunburst' :
34-
selector = 'g.slice';
35-
break;
36-
case 'treemap' :
37-
selector = 'g.slice, g.pathbar';
38-
break;
39-
default :
40-
selector = 'g.points > g.point';
41-
}
42-
43-
gTrace.selectAll(selector).each(function(d) {
44-
var transform = d.transform;
45-
if(transform) {
46-
transform.scale = (shouldHide && transform.hide) ? 0 : minSize / transform.fontSize;
47-
48-
var el = d3.select(this).select('text');
49-
el.attr('transform', Lib.getTextTransform(transform));
50-
}
51-
});
52-
}
53-
}
54-
5524
function style(gd) {
5625
var s = d3.select(gd).selectAll('g.barlayer').selectAll('g.trace');
5726
resizeText(gd, s, 'bar');

src/traces/bar/uniform_text.js

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
/**
2+
* Copyright 2012-2020, Plotly, Inc.
3+
* All rights reserved.
4+
*
5+
* This source code is licensed under the MIT license found in the
6+
* LICENSE file in the root directory of this source tree.
7+
*/
8+
9+
'use strict';
10+
11+
var d3 = require('d3');
12+
var Lib = require('../../lib');
13+
14+
function resizeText(gd, gTrace, traceType) {
15+
var fullLayout = gd._fullLayout;
16+
var minSize = fullLayout['_' + traceType + 'Text_minsize'];
17+
if(minSize) {
18+
var shouldHide = fullLayout.uniformtext.mode === 'hide';
19+
20+
var selector;
21+
switch(traceType) {
22+
case 'funnelarea' :
23+
case 'pie' :
24+
case 'sunburst' :
25+
selector = 'g.slice';
26+
break;
27+
case 'treemap' :
28+
selector = 'g.slice, g.pathbar';
29+
break;
30+
default :
31+
selector = 'g.points > g.point';
32+
}
33+
34+
gTrace.selectAll(selector).each(function(d) {
35+
var transform = d.transform;
36+
if(transform) {
37+
transform.scale = (shouldHide && transform.hide) ? 0 : minSize / transform.fontSize;
38+
39+
var el = d3.select(this).select('text');
40+
el.attr('transform', Lib.getTextTransform(transform));
41+
}
42+
});
43+
}
44+
}
45+
46+
function recordMinTextSize(
47+
traceType, // in
48+
transform, // inout
49+
fullLayout // inout
50+
) {
51+
if(fullLayout.uniformtext.mode) {
52+
var minKey = getMinKey(traceType);
53+
var minSize = fullLayout.uniformtext.minsize;
54+
var size = transform.scale * transform.fontSize;
55+
56+
transform.hide = size < minSize;
57+
58+
fullLayout[minKey] = fullLayout[minKey] || Infinity;
59+
if(!transform.hide) {
60+
fullLayout[minKey] = Math.min(
61+
fullLayout[minKey],
62+
Math.max(size, minSize)
63+
);
64+
}
65+
}
66+
}
67+
68+
function clearMinTextSize(
69+
traceType, // in
70+
fullLayout // inout
71+
) {
72+
var minKey = getMinKey(traceType);
73+
fullLayout[minKey] = undefined;
74+
}
75+
76+
function getMinKey(traceType) {
77+
return '_' + traceType + 'Text_minsize';
78+
}
79+
80+
module.exports = {
81+
recordMinTextSize: recordMinTextSize,
82+
clearMinTextSize: clearMinTextSize,
83+
resizeText: resizeText
84+
};

src/traces/funnel/plot.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ var d3 = require('d3');
1212
var Lib = require('../../lib');
1313
var Drawing = require('../../components/drawing');
1414
var barPlot = require('../bar/plot');
15-
var clearMinTextSize = barPlot.clearMinTextSize;
15+
var clearMinTextSize = require('../bar/uniform_text').clearMinTextSize;
1616

1717
module.exports = function plot(gd, plotinfo, cdModule, traceLayer) {
1818
var fullLayout = gd._fullLayout;

src/traces/funnel/style.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ var Drawing = require('../../components/drawing');
1414
var Color = require('../../components/color');
1515
var DESELECTDIM = require('../../constants/interactions').DESELECTDIM;
1616
var barStyle = require('../bar/style');
17-
var resizeText = barStyle.resizeText;
17+
var resizeText = require('../bar/uniform_text').resizeText;
1818
var styleTextPoints = barStyle.styleTextPoints;
1919

2020
function style(gd, cd, sel) {

src/traces/funnelarea/plot.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ var svgTextUtils = require('../../lib/svg_text_utils');
1616

1717
var barPlot = require('../bar/plot');
1818
var toMoveInsideBar = barPlot.toMoveInsideBar;
19-
var recordMinTextSize = barPlot.recordMinTextSize;
20-
var clearMinTextSize = barPlot.clearMinTextSize;
21-
19+
var uniformText = require('../bar/uniform_text');
20+
var recordMinTextSize = uniformText.recordMinTextSize;
21+
var clearMinTextSize = uniformText.clearMinTextSize;
2222
var pieHelpers = require('../pie/helpers');
2323
var piePlot = require('../pie/plot');
2424

src/traces/funnelarea/style.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
var d3 = require('d3');
1212

1313
var styleOne = require('../pie/style_one');
14-
var resizeText = require('../bar/style').resizeText;
14+
var resizeText = require('../bar/uniform_text').resizeText;
1515

1616
module.exports = function style(gd) {
1717
var s = gd._fullLayout._funnelarealayer.selectAll('.trace');

src/traces/pie/plot.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ var Color = require('../../components/color');
1616
var Drawing = require('../../components/drawing');
1717
var Lib = require('../../lib');
1818
var svgTextUtils = require('../../lib/svg_text_utils');
19-
var barPlot = require('../bar/plot');
20-
var recordMinTextSize = barPlot.recordMinTextSize;
21-
var clearMinTextSize = barPlot.clearMinTextSize;
19+
var uniformText = require('../bar/uniform_text');
20+
var recordMinTextSize = uniformText.recordMinTextSize;
21+
var clearMinTextSize = uniformText.clearMinTextSize;
2222

2323
var helpers = require('./helpers');
2424
var eventData = require('./event_data');

src/traces/pie/style.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
var d3 = require('d3');
1212

1313
var styleOne = require('./style_one');
14-
var resizeText = require('../bar/style').resizeText;
14+
var resizeText = require('../bar/uniform_text').resizeText;
1515

1616
module.exports = function style(gd) {
1717
var s = gd._fullLayout._pielayer.selectAll('.trace');

src/traces/sunburst/plot.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ var d3Hierarchy = require('d3-hierarchy');
1414
var Drawing = require('../../components/drawing');
1515
var Lib = require('../../lib');
1616
var svgTextUtils = require('../../lib/svg_text_utils');
17-
var barPlot = require('../bar/plot');
18-
var recordMinTextSize = barPlot.recordMinTextSize;
19-
var clearMinTextSize = barPlot.clearMinTextSize;
17+
var uniformText = require('../bar/uniform_text');
18+
var recordMinTextSize = uniformText.recordMinTextSize;
19+
var clearMinTextSize = uniformText.clearMinTextSize;
2020
var piePlot = require('../pie/plot');
2121
var computeTransform = piePlot.computeTransform;
2222
var transformInsideText = piePlot.transformInsideText;

0 commit comments

Comments
 (0)