From 3c3b8397bc0e881b2378cb58e83b388604b2b4a3 Mon Sep 17 00:00:00 2001 From: archmoj Date: Fri, 9 Oct 2020 11:04:49 -0400 Subject: [PATCH 1/4] provide the list of all valid export formats in toImage warning --- src/lib/index.js | 17 +++++++++++++++++ src/plot_api/to_image.js | 2 +- test/jasmine/tests/toimage_test.js | 2 +- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/lib/index.js b/src/lib/index.js index 157dd15542b..3189f785b8b 100644 --- a/src/lib/index.js +++ b/src/lib/index.js @@ -1244,3 +1244,20 @@ lib.ensureUniformFontSize = function(gd, baseFont) { ); return out; }; + +/** + * provide a human-readable lists with an optional ending separator such as A, B, C and D + * + * @param {array} arr : the array to join + * @param {string} mainSeparator : main separator + * @param {string} lastSeparator : optional last separator + * + * @return {string} : joined list + */ +lib.join2 = function(arr, mainSeparator, lastSeparator) { + var len = arr.length; + if(len > 2 && lastSeparator) { + return arr.slice(0, -1).join(mainSeparator) + lastSeparator + arr[len - 1]; + } + return arr.join(mainSeparator); +}; diff --git a/src/plot_api/to_image.js b/src/plot_api/to_image.js index 11491416f01..e0e3f4c18bd 100644 --- a/src/plot_api/to_image.js +++ b/src/plot_api/to_image.js @@ -116,7 +116,7 @@ function toImage(gd, opts) { } if(!isImpliedOrValid('format')) { - throw new Error('Image format is not jpeg, png, svg or webp.'); + throw new Error('Export format is not ' + Lib.join2(attrs.format.values, ', ', ' or ') + '.'); } var fullOpts = {}; diff --git a/test/jasmine/tests/toimage_test.js b/test/jasmine/tests/toimage_test.js index 5baac3d2445..fdbe1ce6bdf 100644 --- a/test/jasmine/tests/toimage_test.js +++ b/test/jasmine/tests/toimage_test.js @@ -65,7 +65,7 @@ describe('Plotly.toImage', function() { Plotly.plot(gd, fig.data, fig.layout) .then(function(gd) { expect(function() { Plotly.toImage(gd, {format: 'x'}); }) - .toThrow(new Error('Image format is not jpeg, png, svg or webp.')); + .toThrow(new Error('Export format is not png, jpeg, webp, svg or full-json.')); }) .catch(failTest) .then(done); From 5d91aa404c39521d50f55a7bf02e6c9703821ad7 Mon Sep 17 00:00:00 2001 From: Mojtaba Samimi <33888540+archmoj@users.noreply.github.com> Date: Wed, 14 Oct 2020 10:53:44 -0400 Subject: [PATCH 2/4] correct length check Co-authored-by: Alex Johnson --- src/lib/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/index.js b/src/lib/index.js index 3189f785b8b..c06d46a5381 100644 --- a/src/lib/index.js +++ b/src/lib/index.js @@ -1256,7 +1256,7 @@ lib.ensureUniformFontSize = function(gd, baseFont) { */ lib.join2 = function(arr, mainSeparator, lastSeparator) { var len = arr.length; - if(len > 2 && lastSeparator) { + if(len > 1 && lastSeparator) { return arr.slice(0, -1).join(mainSeparator) + lastSeparator + arr[len - 1]; } return arr.join(mainSeparator); From c5dc44439e00d87942aa45c5723cb3949142437e Mon Sep 17 00:00:00 2001 From: archmoj Date: Wed, 14 Oct 2020 11:00:06 -0400 Subject: [PATCH 3/4] revise help for last separator --- src/lib/index.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/lib/index.js b/src/lib/index.js index c06d46a5381..205b264de3a 100644 --- a/src/lib/index.js +++ b/src/lib/index.js @@ -1246,11 +1246,10 @@ lib.ensureUniformFontSize = function(gd, baseFont) { }; /** - * provide a human-readable lists with an optional ending separator such as A, B, C and D + * provide a human-readable list e.g. "A, B, C and D" with an ending separator * * @param {array} arr : the array to join * @param {string} mainSeparator : main separator - * @param {string} lastSeparator : optional last separator * * @return {string} : joined list */ From 9ce11aaa9d14149f2f835910fdf8190748424aa2 Mon Sep 17 00:00:00 2001 From: archmoj Date: Wed, 14 Oct 2020 11:07:06 -0400 Subject: [PATCH 4/4] fixup last separator condition --- src/lib/index.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lib/index.js b/src/lib/index.js index 205b264de3a..17342b1a649 100644 --- a/src/lib/index.js +++ b/src/lib/index.js @@ -1250,12 +1250,13 @@ lib.ensureUniformFontSize = function(gd, baseFont) { * * @param {array} arr : the array to join * @param {string} mainSeparator : main separator + * @param {string} lastSeparator : last separator * * @return {string} : joined list */ lib.join2 = function(arr, mainSeparator, lastSeparator) { var len = arr.length; - if(len > 1 && lastSeparator) { + if(len > 1) { return arr.slice(0, -1).join(mainSeparator) + lastSeparator + arr[len - 1]; } return arr.join(mainSeparator);