plotly.js icon indicating copy to clipboard operation
plotly.js copied to clipboard

Special characters in plotly.js causing minification and packaging issues

Open chdominguez opened this issue 2 years ago • 3 comments

I have identified an issue in the plotly.js library where special characters, such as σ and μ, are used in a function. This leads to problems during the minification/packaging process, causing certain package managers to fail as they do not correctly interpret these characters.

I found a related issue in the Parcel bundler repository, which has been addressed and fixed. The details can be found here: Parcel Issue #9370

I propose modifying the original plotly.js function to replace the special characters with safer alternatives. Below is the suggested modification:

normal: function(mu, sigma) {
  var n = arguments.length;
  if (n < 2) sigma = 1;
  if (n < 1) mu = 0;
  return function() {
    var x, y, r;
    do {
      x = Math.random() * 2 - 1;
      y = Math.random() * 2 - 1;
      r = x * x + y * y;
    } while (!r || r > 1);
    return mu + sigma * x * Math.sqrt(-2 * Math.log(r) / r);
  };
},

I will try to push a PR myself

chdominguez avatar Nov 24 '23 10:11 chdominguez

IIRC these characters are in D3 code that we import, not in the plotly.js codebase itself, which may make it harder to edit.

alexcjohnson avatar Nov 24 '23 14:11 alexcjohnson

I have noticed upon trying to edit the code. This is why I haven't pushed any PR yet. For now I will wait till a parcel.js version is released with the fix to see if the issue is completely gone.

chdominguez avatar Nov 24 '23 15:11 chdominguez

If you want to open a PR, please fork this repository: https://github.com/plotly/d3 and submit to it.

archmoj avatar Nov 24 '23 15:11 archmoj