Skip to content

Commit 192d74b

Browse files
committed
allow titles to be string, this includes:
- layout titles and subtitles - cartesian axis titles - gl3d axis titles - polar axis titles - ternary axis titles - pie and funnelarea titles - colorbar titles - legend titles - shape titles - carpet titles - indicator titles
1 parent 85e3f73 commit 192d74b

File tree

15 files changed

+178
-14
lines changed

15 files changed

+178
-14
lines changed

src/components/colorbar/defaults.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,11 @@ module.exports = function colorbarDefaults(containerIn, containerOut, layout) {
123123
handleTickLabelDefaults(colorbarIn, colorbarOut, coerce, 'linear', opts);
124124
handleTickMarkDefaults(colorbarIn, colorbarOut, coerce, 'linear', opts);
125125

126-
coerce('title.text', layout._dfltTitle.colorbar);
126+
var titleIn = colorbarIn.title;
127+
var titleTextDflt = (typeof titleIn === 'string') ? titleIn :
128+
layout._dfltTitle.colorbar;
129+
130+
coerce('title.text', titleTextDflt);
127131

128132
var tickFont = colorbarOut.showticklabels ? colorbarOut.tickfont : font;
129133

src/components/legend/defaults.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,10 @@ function groupDefaults(legendId, layoutIn, layoutOut, fullData) {
191191
coerce('valign');
192192
Lib.noneOrAll(containerIn, containerOut, ['x', 'y']);
193193

194-
var titleText = coerce('title.text');
194+
var titleIn = containerIn.title;
195+
var titleTextDflt = (typeof titleIn === 'string') ? titleIn : undefined;
196+
197+
var titleText = coerce('title.text', titleTextDflt);
195198
if(titleText) {
196199
coerce('title.side', isHorizontal ? 'left' : 'top');
197200
var dfltTitleFont = Lib.extendFlat({}, itemFont, {

src/components/shapes/defaults.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,10 @@ function handleShapeDefaults(shapeIn, shapeOut, fullLayout) {
3939
coerce('legend');
4040
coerce('legendwidth');
4141
coerce('legendgroup');
42-
coerce('legendgrouptitle.text');
42+
43+
var legendgrouptitleIn = shapeIn.title;
44+
var legendgrouptitleTextDflt = (typeof titleIn === 'string') ? legendgrouptitleIn : undefined;
45+
coerce('legendgrouptitle.text', legendgrouptitleTextDflt);
4346
Lib.coerceFont(coerce, 'legendgrouptitle.font');
4447
coerce('legendrank');
4548
}

src/plots/cartesian/axis_defaults.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,9 @@ module.exports = function handleAxisDefaults(containerIn, containerOut, coerce,
109109
// template too.
110110
var dfltFontColor = (dfltColor !== layoutAttributes.color.dflt) ? dfltColor : font.color;
111111
// try to get default title from splom trace, fallback to graph-wide value
112-
var dfltTitle = splomStash.label || layoutOut._dfltTitle[letter];
112+
var titleIn = containerIn.title;
113+
var dfltTitle = (typeof titleIn === 'string') ? titleIn :
114+
splomStash.label || layoutOut._dfltTitle[letter];
113115

114116
handlePrefixSuffixDefaults(containerIn, containerOut, coerce, axType, options);
115117
if(!visible) return containerOut;

src/plots/gl3d/layout/axis_defaults.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,12 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, options) {
5757
options.fullLayout);
5858

5959
coerce('gridcolor', colorMix(containerOut.color, options.bgColor, gridLightness).toRgbString());
60-
coerce('title.text', axName[0]); // shouldn't this be on-par with 2D?
60+
61+
var titleIn = containerIn.title;
62+
var titleTextDflt = (typeof titleIn === 'string') ? titleIn :
63+
axName[0]; // shouldn't this be on-par with 2D?
64+
65+
coerce('title.text', titleTextDflt);
6166

6267
containerOut.setScale = Lib.noop;
6368

src/plots/plots.js

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1314,14 +1314,18 @@ plots.supplyLayoutGlobalDefaults = function(layoutIn, layoutOut, formatObj) {
13141314

13151315
coerce('autotypenumbers');
13161316

1317+
var titleIn = layoutIn.title;
1318+
var titleTextDflt = (typeof titleIn === 'string') ? titleIn :
1319+
layoutOut._dfltTitle.plot;
1320+
13171321
var font = Lib.coerceFont(coerce, 'font');
13181322
var fontSize = font.size;
13191323

13201324
Lib.coerceFont(coerce, 'title.font', font, { overrideDflt: {
13211325
size: Math.round(fontSize * 1.4)
13221326
}});
13231327

1324-
coerce('title.text', layoutOut._dfltTitle.plot);
1328+
coerce('title.text', titleTextDflt);
13251329
coerce('title.xref');
13261330
var titleYref = coerce('title.yref');
13271331
coerce('title.pad.t');
@@ -1335,7 +1339,11 @@ plots.supplyLayoutGlobalDefaults = function(layoutIn, layoutOut, formatObj) {
13351339
coerce('title.y');
13361340
coerce('title.yanchor');
13371341

1338-
coerce('title.subtitle.text', layoutOut._dfltTitle.subtitle);
1342+
var subtitleIn = layoutIn.title;
1343+
var subtitleTextDflt = (typeof subtitleIn === 'string') ? subtitleIn :
1344+
layoutOut._dfltTitle.subtitle;
1345+
1346+
coerce('title.subtitle.text', subtitleTextDflt);
13391347
Lib.coerceFont(coerce, 'title.subtitle.font', font, {
13401348
overrideDflt: {
13411349
size: Math.round(layoutOut.title.font.size * 0.7)

src/plots/ternary/layout_defaults.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,13 @@ function handleAxisDefaults(containerIn, containerOut, options, ternaryLayoutOut
7676

7777
var axName = containerOut._name;
7878
var letterUpper = axName.charAt(0).toUpperCase();
79-
var dfltTitle = 'Component ' + letterUpper;
8079

81-
var title = coerce('title.text', dfltTitle);
82-
containerOut._hovertitle = title === dfltTitle ? title : letterUpper;
80+
var titleIn = containerIn.title;
81+
var dfltTitleText = (typeof titleIn === 'string') ? titleIn :
82+
'Component ' + letterUpper;
83+
84+
var title = coerce('title.text', dfltTitleText);
85+
containerOut._hovertitle = title === dfltTitleText ? title : letterUpper;
8386

8487
Lib.coerceFont(coerce, 'title.font', options.font, { overrideDflt: {
8588
size: Lib.bigFont(options.font.size),

src/traces/carpet/axis_defaults.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,10 @@ module.exports = function handleAxisDefaults(containerIn, containerOut, options)
107107
// inherit from global font color in case that was provided.
108108
var dfltFontColor = (dfltColor === containerIn.color) ? dfltColor : font.color;
109109

110-
var title = coerce('title.text');
110+
var titleIn = containerIn.title;
111+
var titleTextDflt = (typeof titleIn === 'string') ? titleIn : undefined;
112+
113+
var title = coerce('title.text', titleTextDflt);
111114
if(title) {
112115
Lib.coerceFont(coerce, 'title.font', font, { overrideDflt: {
113116
size: Lib.bigFont(font.size),

src/traces/funnelarea/defaults.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,10 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
6161

6262
handleDomainDefaults(traceOut, layout, coerce);
6363

64-
var title = coerce('title.text');
64+
var titleIn = traceIn.title;
65+
var titleTextDflt = (typeof titleIn === 'string') ? titleIn : undefined;
66+
67+
var title = coerce('title.text', titleTextDflt);
6568
if(title) {
6669
coerce('title.position');
6770
Lib.coerceFont(coerce, 'title.font', layout.font);

src/traces/indicator/defaults.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,10 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
7373
var titleFontDflt = Lib.extendFlat({}, layout.font);
7474
titleFontDflt.size = 0.25 * (bignumberFontSize || deltaFontSize || cn.defaultNumberFontSize);
7575
Lib.coerceFont(coerce, 'title.font', titleFontDflt);
76-
coerce('title.text');
76+
77+
var titleIn = traceIn.title;
78+
var titleTextDflt = (typeof titleIn === 'string') ? titleIn : undefined;
79+
coerce('title.text', titleTextDflt);
7780

7881
// Gauge attributes
7982
var gaugeIn, gaugeOut, axisIn, axisOut;

0 commit comments

Comments
 (0)