plotly.js 2.10.1 → 2.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/CONTRIBUTING.md +17 -0
  3. package/README.md +3 -3
  4. package/dist/README.md +22 -22
  5. package/dist/plotly-basic.js +2 -2
  6. package/dist/plotly-basic.min.js +2 -2
  7. package/dist/plotly-cartesian.js +2 -2
  8. package/dist/plotly-cartesian.min.js +2 -2
  9. package/dist/plotly-finance.js +2 -2
  10. package/dist/plotly-finance.min.js +2 -2
  11. package/dist/plotly-geo-assets.js +2 -2
  12. package/dist/plotly-geo.js +2 -2
  13. package/dist/plotly-geo.min.js +2 -2
  14. package/dist/plotly-gl2d.js +380 -344
  15. package/dist/plotly-gl2d.min.js +10 -10
  16. package/dist/plotly-gl3d.js +2 -2
  17. package/dist/plotly-gl3d.min.js +2 -2
  18. package/dist/plotly-mapbox.js +2 -2
  19. package/dist/plotly-mapbox.min.js +2 -2
  20. package/dist/plotly-strict.js +40193 -939
  21. package/dist/plotly-strict.min.js +11 -11
  22. package/dist/plotly-with-meta.js +656 -615
  23. package/dist/plotly.js +627 -586
  24. package/dist/plotly.min.js +3 -3
  25. package/lib/index-strict.js +5 -0
  26. package/package.json +5 -4
  27. package/src/generated/regl-codegen/0919c57b995304312da30a5af7873a319bfb7b7e22ff6b4fa203ecbd5774ebfc +1462 -0
  28. package/src/generated/regl-codegen/13c0ae156483f2bcbd7ff29404f0abfd8689ff43f41791a6c7469868690a4260 +3391 -0
  29. package/src/generated/regl-codegen/19769c875db736c08a744c0a6aabe28276ed06aa24fdb7c36506a9f4c1f56f13 +3375 -0
  30. package/src/generated/regl-codegen/21cec01aa93887c70e86d7f1bc84d6837da0b1f5c1ff4cadd42ac6eb37f9f316 +2488 -0
  31. package/src/generated/regl-codegen/4df455b48c9de7d9f1de4b9481b505c09613ba7f90d2b4e360e673839566688e +662 -0
  32. package/src/generated/regl-codegen/53f2bf051e4ba66c90f343d29aa8da9e4029454c0d428f8e46e94dfddc97c8c6 +459 -0
  33. package/src/generated/regl-codegen/59568c77bcbe6343ee6109df49ceeb78c8a8a8a81872e88fb077f9a3d6dc0567 +637 -0
  34. package/src/generated/regl-codegen/6c3ff5a68d2906faf59307b58a799389f916ebdd3f7732ce75967575041988fc +2226 -0
  35. package/src/generated/regl-codegen/7c8e7f36e693904898ece5f7f8b49b23c69d98397567c3915a45647209eb7da4 +2052 -0
  36. package/src/generated/regl-codegen/8a43b073e4f3e9c0e499c8ac9c253f2aa1e3d3de2febfccc6526b52295dbf770 +664 -0
  37. package/src/generated/regl-codegen/909861c036d6f1ef40ba2dfcc33ef32489d2fe05fa7b7984d5ff315ddceb17b1 +454 -0
  38. package/src/generated/regl-codegen/c759965c8d66b2b356ae7455825df829f2ba7d4e7e903236f8c8d3bc5f45bd44 +2116 -0
  39. package/src/generated/regl-codegen/f9448a214a3e3cd439b767559aa71a4d1ccf5a8f39b8b756973e71acd33ff956 +2755 -0
  40. package/src/generated/regl-codegen/ff8495670417d5d0e4caa9942ad63b4dff0242a390ac1cb807c78ca326d6f3ce +639 -0
  41. package/src/lib/prepare_regl.js +7 -3
  42. package/src/traces/parcoords/base_index.js +24 -0
  43. package/src/traces/parcoords/index.js +4 -22
  44. package/src/traces/parcoords/plot-strict.js +9 -0
  45. package/src/traces/parcoords/plot.js +5 -2
  46. package/src/traces/parcoords/regl_precompiled.js +12 -0
  47. package/src/traces/parcoords/strict.js +7 -0
  48. package/src/traces/scattergl/base_index.js +29 -0
  49. package/src/traces/scattergl/index.js +3 -26
  50. package/src/traces/scattergl/plot.js +5 -2
  51. package/src/traces/scattergl/plot_strict.js +9 -0
  52. package/src/traces/scattergl/regl_precompiled.js +24 -0
  53. package/src/traces/scattergl/strict.js +7 -0
  54. package/src/traces/scatterpolargl/base_index.js +29 -0
  55. package/src/traces/scatterpolargl/index.js +3 -26
  56. package/src/traces/scatterpolargl/plot.js +4 -0
  57. package/src/traces/scatterpolargl/plot_strict.js +13 -0
  58. package/src/traces/scatterpolargl/regl_precompiled.js +24 -0
  59. package/src/traces/scatterpolargl/strict.js +7 -0
  60. package/src/traces/splom/base_index.js +36 -0
  61. package/src/traces/splom/base_plot.js +5 -2
  62. package/src/traces/splom/base_plot_strict.js +9 -0
  63. package/src/traces/splom/index.js +3 -33
  64. package/src/traces/splom/regl_precompiled.js +24 -0
  65. package/src/traces/splom/strict.js +7 -0
  66. package/src/version.js +1 -1
  67. package/tasks/bundle.js +18 -0
  68. package/tasks/partial_bundle.js +26 -23
  69. package/tasks/stats.js +3 -3
  70. package/tasks/util/constants.js +13 -1
@@ -3,6 +3,7 @@
3
3
  var parcoords = require('./parcoords');
4
4
  var prepareRegl = require('../../lib/prepare_regl');
5
5
  var isVisible = require('./helpers').isVisible;
6
+ var reglPrecompiled = {};
6
7
 
7
8
  function newIndex(visibleIndices, orig, dim) {
8
9
  var origIndex = orig.indexOf(dim);
@@ -23,10 +24,10 @@ function sorter(visibleIndices, orig) {
23
24
  };
24
25
  }
25
26
 
26
- module.exports = function plot(gd, cdModule) {
27
+ var exports = module.exports = function plot(gd, cdModule) {
27
28
  var fullLayout = gd._fullLayout;
28
29
 
29
- var success = prepareRegl(gd);
30
+ var success = prepareRegl(gd, [], reglPrecompiled);
30
31
  if(!success) return;
31
32
 
32
33
  var currentDims = {};
@@ -143,3 +144,5 @@ module.exports = function plot(gd, cdModule) {
143
144
  }
144
145
  );
145
146
  };
147
+
148
+ exports.reglPrecompiled = reglPrecompiled;
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+ var v0 = require('../../generated/regl-codegen/909861c036d6f1ef40ba2dfcc33ef32489d2fe05fa7b7984d5ff315ddceb17b1');
3
+ var v1 = require('../../generated/regl-codegen/4df455b48c9de7d9f1de4b9481b505c09613ba7f90d2b4e360e673839566688e');
4
+ var v2 = require('../../generated/regl-codegen/59568c77bcbe6343ee6109df49ceeb78c8a8a8a81872e88fb077f9a3d6dc0567');
5
+ var v3 = require('../../generated/regl-codegen/c759965c8d66b2b356ae7455825df829f2ba7d4e7e903236f8c8d3bc5f45bd44');
6
+
7
+ module.exports = {
8
+ '909861c036d6f1ef40ba2dfcc33ef32489d2fe05fa7b7984d5ff315ddceb17b1': v0,
9
+ '4df455b48c9de7d9f1de4b9481b505c09613ba7f90d2b4e360e673839566688e': v1,
10
+ '59568c77bcbe6343ee6109df49ceeb78c8a8a8a81872e88fb077f9a3d6dc0567': v2,
11
+ 'c759965c8d66b2b356ae7455825df829f2ba7d4e7e903236f8c8d3bc5f45bd44': v3
12
+ };
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ var index = require('./base_index');
4
+
5
+ index.plot = require('./plot-strict');
6
+
7
+ module.exports = index;
@@ -0,0 +1,29 @@
1
+ 'use strict';
2
+
3
+ var hover = require('./hover');
4
+
5
+ module.exports = {
6
+ moduleType: 'trace',
7
+ name: 'scattergl',
8
+ basePlotModule: require('../../plots/cartesian'),
9
+ categories: ['gl', 'regl', 'cartesian', 'symbols', 'errorBarsOK', 'showLegend', 'scatter-like'],
10
+
11
+ attributes: require('./attributes'),
12
+ supplyDefaults: require('./defaults'),
13
+ crossTraceDefaults: require('../scatter/cross_trace_defaults'),
14
+ colorbar: require('../scatter/marker_colorbar'),
15
+ formatLabels: require('./format_labels'),
16
+ calc: require('./calc'),
17
+ hoverPoints: hover.hoverPoints,
18
+ selectPoints: require('./select'),
19
+
20
+ meta: {
21
+ hrName: 'scatter_gl',
22
+ description: [
23
+ 'The data visualized as scatter point or lines is set in `x` and `y`',
24
+ 'using the WebGL plotting engine.',
25
+ 'Bubble charts are achieved by setting `marker.size` and/or `marker.color`',
26
+ 'to a numerical arrays.'
27
+ ].join(' ')
28
+ }
29
+ };
@@ -1,30 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var hover = require('./hover');
3
+ var index = require('./base_index');
4
4
 
5
- module.exports = {
6
- moduleType: 'trace',
7
- name: 'scattergl',
8
- basePlotModule: require('../../plots/cartesian'),
9
- categories: ['gl', 'regl', 'cartesian', 'symbols', 'errorBarsOK', 'showLegend', 'scatter-like'],
5
+ index.plot = require('./plot');
10
6
 
11
- attributes: require('./attributes'),
12
- supplyDefaults: require('./defaults'),
13
- crossTraceDefaults: require('../scatter/cross_trace_defaults'),
14
- colorbar: require('../scatter/marker_colorbar'),
15
- formatLabels: require('./format_labels'),
16
- calc: require('./calc'),
17
- plot: require('./plot'),
18
- hoverPoints: hover.hoverPoints,
19
- selectPoints: require('./select'),
20
-
21
- meta: {
22
- hrName: 'scatter_gl',
23
- description: [
24
- 'The data visualized as scatter point or lines is set in `x` and `y`',
25
- 'using the WebGL plotting engine.',
26
- 'Bubble charts are achieved by setting `marker.size` and/or `marker.color`',
27
- 'to a numerical arrays.'
28
- ].join(' ')
29
- }
30
- };
7
+ module.exports = index;
@@ -14,6 +14,7 @@ var linkTraces = require('../scatter/link_traces');
14
14
 
15
15
  var styleTextSelection = require('./edit_style').styleTextSelection;
16
16
 
17
+ var reglPrecompiled = {};
17
18
 
18
19
  function getViewport(fullLayout, xaxis, yaxis, plotGlPixelRatio) {
19
20
  var gs = fullLayout._size;
@@ -34,7 +35,7 @@ function getViewport(fullLayout, xaxis, yaxis, plotGlPixelRatio) {
34
35
  ];
35
36
  }
36
37
 
37
- module.exports = function plot(gd, subplot, cdata) {
38
+ var exports = module.exports = function plot(gd, subplot, cdata) {
38
39
  if(!cdata.length) return;
39
40
 
40
41
  var fullLayout = gd._fullLayout;
@@ -46,7 +47,7 @@ module.exports = function plot(gd, subplot, cdata) {
46
47
  // we may have more subplots than initialized data due to Axes.getSubplots method
47
48
  if(!scene) return;
48
49
 
49
- var success = prepareRegl(gd, ['ANGLE_instanced_arrays', 'OES_element_index_uint']);
50
+ var success = prepareRegl(gd, ['ANGLE_instanced_arrays', 'OES_element_index_uint'], reglPrecompiled);
50
51
  if(!success) {
51
52
  scene.init();
52
53
  return;
@@ -369,3 +370,5 @@ module.exports = function plot(gd, subplot, cdata) {
369
370
  scene.glText.forEach(function(text) { text.update(vpRange0); });
370
371
  }
371
372
  };
373
+
374
+ exports.reglPrecompiled = reglPrecompiled;
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ var plot = require('./plot');
4
+
5
+ var reglPrecompiled = require('./regl_precompiled');
6
+
7
+ Object.assign(plot.reglPrecompiled, reglPrecompiled);
8
+
9
+ module.exports = plot;
@@ -0,0 +1,24 @@
1
+ 'use strict';
2
+ var v0 = require('../../generated/regl-codegen/53f2bf051e4ba66c90f343d29aa8da9e4029454c0d428f8e46e94dfddc97c8c6');
3
+ var v1 = require('../../generated/regl-codegen/8a43b073e4f3e9c0e499c8ac9c253f2aa1e3d3de2febfccc6526b52295dbf770');
4
+ var v2 = require('../../generated/regl-codegen/ff8495670417d5d0e4caa9942ad63b4dff0242a390ac1cb807c78ca326d6f3ce');
5
+ var v3 = require('../../generated/regl-codegen/21cec01aa93887c70e86d7f1bc84d6837da0b1f5c1ff4cadd42ac6eb37f9f316');
6
+ var v4 = require('../../generated/regl-codegen/f9448a214a3e3cd439b767559aa71a4d1ccf5a8f39b8b756973e71acd33ff956');
7
+ var v5 = require('../../generated/regl-codegen/0919c57b995304312da30a5af7873a319bfb7b7e22ff6b4fa203ecbd5774ebfc');
8
+ var v6 = require('../../generated/regl-codegen/13c0ae156483f2bcbd7ff29404f0abfd8689ff43f41791a6c7469868690a4260');
9
+ var v7 = require('../../generated/regl-codegen/19769c875db736c08a744c0a6aabe28276ed06aa24fdb7c36506a9f4c1f56f13');
10
+ var v8 = require('../../generated/regl-codegen/6c3ff5a68d2906faf59307b58a799389f916ebdd3f7732ce75967575041988fc');
11
+ var v9 = require('../../generated/regl-codegen/7c8e7f36e693904898ece5f7f8b49b23c69d98397567c3915a45647209eb7da4');
12
+
13
+ module.exports = {
14
+ '53f2bf051e4ba66c90f343d29aa8da9e4029454c0d428f8e46e94dfddc97c8c6': v0,
15
+ '8a43b073e4f3e9c0e499c8ac9c253f2aa1e3d3de2febfccc6526b52295dbf770': v1,
16
+ 'ff8495670417d5d0e4caa9942ad63b4dff0242a390ac1cb807c78ca326d6f3ce': v2,
17
+ '21cec01aa93887c70e86d7f1bc84d6837da0b1f5c1ff4cadd42ac6eb37f9f316': v3,
18
+ 'f9448a214a3e3cd439b767559aa71a4d1ccf5a8f39b8b756973e71acd33ff956': v4,
19
+ '0919c57b995304312da30a5af7873a319bfb7b7e22ff6b4fa203ecbd5774ebfc': v5,
20
+ '13c0ae156483f2bcbd7ff29404f0abfd8689ff43f41791a6c7469868690a4260': v6,
21
+ '19769c875db736c08a744c0a6aabe28276ed06aa24fdb7c36506a9f4c1f56f13': v7,
22
+ '6c3ff5a68d2906faf59307b58a799389f916ebdd3f7732ce75967575041988fc': v8,
23
+ '7c8e7f36e693904898ece5f7f8b49b23c69d98397567c3915a45647209eb7da4': v9
24
+ };
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ var index = require('./base_index');
4
+
5
+ index.plot = require('./plot_strict');
6
+
7
+ module.exports = index;
@@ -0,0 +1,29 @@
1
+ 'use strict';
2
+
3
+ module.exports = {
4
+ moduleType: 'trace',
5
+ name: 'scatterpolargl',
6
+ basePlotModule: require('../../plots/polar'),
7
+ categories: ['gl', 'regl', 'polar', 'symbols', 'showLegend', 'scatter-like'],
8
+
9
+ attributes: require('./attributes'),
10
+ supplyDefaults: require('./defaults'),
11
+ colorbar: require('../scatter/marker_colorbar'),
12
+ formatLabels: require('./format_labels'),
13
+
14
+ calc: require('./calc'),
15
+ hoverPoints: require('./hover').hoverPoints,
16
+ selectPoints: require('../scattergl/select'),
17
+
18
+ meta: {
19
+ hrName: 'scatter_polar_gl',
20
+ description: [
21
+ 'The scatterpolargl trace type encompasses line charts, scatter charts, and bubble charts',
22
+ 'in polar coordinates using the WebGL plotting engine.',
23
+ 'The data visualized as scatter point or lines is set in',
24
+ '`r` (radial) and `theta` (angular) coordinates',
25
+ 'Bubble charts are achieved by setting `marker.size` and/or `marker.color`',
26
+ 'to numerical arrays.'
27
+ ].join(' ')
28
+ }
29
+ };
@@ -1,30 +1,7 @@
1
1
  'use strict';
2
2
 
3
- module.exports = {
4
- moduleType: 'trace',
5
- name: 'scatterpolargl',
6
- basePlotModule: require('../../plots/polar'),
7
- categories: ['gl', 'regl', 'polar', 'symbols', 'showLegend', 'scatter-like'],
3
+ var index = require('./base_index');
8
4
 
9
- attributes: require('./attributes'),
10
- supplyDefaults: require('./defaults'),
11
- colorbar: require('../scatter/marker_colorbar'),
12
- formatLabels: require('./format_labels'),
5
+ index.plot = require('./plot');
13
6
 
14
- calc: require('./calc'),
15
- plot: require('./plot'),
16
- hoverPoints: require('./hover').hoverPoints,
17
- selectPoints: require('../scattergl/select'),
18
-
19
- meta: {
20
- hrName: 'scatter_polar_gl',
21
- description: [
22
- 'The scatterpolargl trace type encompasses line charts, scatter charts, and bubble charts',
23
- 'in polar coordinates using the WebGL plotting engine.',
24
- 'The data visualized as scatter point or lines is set in',
25
- '`r` (radial) and `theta` (angular) coordinates',
26
- 'Bubble charts are achieved by setting `marker.size` and/or `marker.color`',
27
- 'to numerical arrays.'
28
- ].join(' ')
29
- }
30
- };
7
+ module.exports = index;
@@ -11,6 +11,8 @@ var Lib = require('../../lib');
11
11
 
12
12
  var TOO_MANY_POINTS = require('../scattergl/constants').TOO_MANY_POINTS;
13
13
 
14
+ var reglPrecompiled = {};
15
+
14
16
  module.exports = function plot(gd, subplot, cdata) {
15
17
  if(!cdata.length) return;
16
18
 
@@ -126,3 +128,5 @@ module.exports = function plot(gd, subplot, cdata) {
126
128
 
127
129
  return scatterglPlot(gd, subplot, cdata);
128
130
  };
131
+
132
+ module.exports.reglPrecompiled = reglPrecompiled;
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ var plot = require('./plot');
4
+
5
+ var reglPrecompiled = require('./regl_precompiled');
6
+
7
+ var reglPrecompiledDep = require('../scattergl/regl_precompiled');
8
+
9
+ Object.assign(plot.reglPrecompiled, reglPrecompiled);
10
+
11
+ Object.assign(plot.reglPrecompiled, reglPrecompiledDep);
12
+
13
+ module.exports = plot;
@@ -0,0 +1,24 @@
1
+ 'use strict';
2
+ var v0 = require('../../generated/regl-codegen/53f2bf051e4ba66c90f343d29aa8da9e4029454c0d428f8e46e94dfddc97c8c6');
3
+ var v1 = require('../../generated/regl-codegen/8a43b073e4f3e9c0e499c8ac9c253f2aa1e3d3de2febfccc6526b52295dbf770');
4
+ var v2 = require('../../generated/regl-codegen/ff8495670417d5d0e4caa9942ad63b4dff0242a390ac1cb807c78ca326d6f3ce');
5
+ var v3 = require('../../generated/regl-codegen/21cec01aa93887c70e86d7f1bc84d6837da0b1f5c1ff4cadd42ac6eb37f9f316');
6
+ var v4 = require('../../generated/regl-codegen/f9448a214a3e3cd439b767559aa71a4d1ccf5a8f39b8b756973e71acd33ff956');
7
+ var v5 = require('../../generated/regl-codegen/0919c57b995304312da30a5af7873a319bfb7b7e22ff6b4fa203ecbd5774ebfc');
8
+ var v6 = require('../../generated/regl-codegen/13c0ae156483f2bcbd7ff29404f0abfd8689ff43f41791a6c7469868690a4260');
9
+ var v7 = require('../../generated/regl-codegen/19769c875db736c08a744c0a6aabe28276ed06aa24fdb7c36506a9f4c1f56f13');
10
+ var v8 = require('../../generated/regl-codegen/6c3ff5a68d2906faf59307b58a799389f916ebdd3f7732ce75967575041988fc');
11
+ var v9 = require('../../generated/regl-codegen/7c8e7f36e693904898ece5f7f8b49b23c69d98397567c3915a45647209eb7da4');
12
+
13
+ module.exports = {
14
+ '53f2bf051e4ba66c90f343d29aa8da9e4029454c0d428f8e46e94dfddc97c8c6': v0,
15
+ '8a43b073e4f3e9c0e499c8ac9c253f2aa1e3d3de2febfccc6526b52295dbf770': v1,
16
+ 'ff8495670417d5d0e4caa9942ad63b4dff0242a390ac1cb807c78ca326d6f3ce': v2,
17
+ '21cec01aa93887c70e86d7f1bc84d6837da0b1f5c1ff4cadd42ac6eb37f9f316': v3,
18
+ 'f9448a214a3e3cd439b767559aa71a4d1ccf5a8f39b8b756973e71acd33ff956': v4,
19
+ '0919c57b995304312da30a5af7873a319bfb7b7e22ff6b4fa203ecbd5774ebfc': v5,
20
+ '13c0ae156483f2bcbd7ff29404f0abfd8689ff43f41791a6c7469868690a4260': v6,
21
+ '19769c875db736c08a744c0a6aabe28276ed06aa24fdb7c36506a9f4c1f56f13': v7,
22
+ '6c3ff5a68d2906faf59307b58a799389f916ebdd3f7732ce75967575041988fc': v8,
23
+ '7c8e7f36e693904898ece5f7f8b49b23c69d98397567c3915a45647209eb7da4': v9
24
+ };
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ var index = require('./base_index');
4
+
5
+ index.plot = require('./plot_strict');
6
+
7
+ module.exports = index;
@@ -0,0 +1,36 @@
1
+ 'use strict';
2
+
3
+ var Registry = require('../../registry');
4
+ var Grid = require('../../components/grid');
5
+
6
+ module.exports = {
7
+ moduleType: 'trace',
8
+ name: 'splom',
9
+
10
+ categories: ['gl', 'regl', 'cartesian', 'symbols', 'showLegend', 'scatter-like'],
11
+
12
+ attributes: require('./attributes'),
13
+ supplyDefaults: require('./defaults'),
14
+ colorbar: require('../scatter/marker_colorbar'),
15
+
16
+ calc: require('./calc'),
17
+ plot: require('./plot'),
18
+ hoverPoints: require('./hover').hoverPoints,
19
+ selectPoints: require('./select'),
20
+ editStyle: require('./edit_style'),
21
+
22
+ meta: {
23
+ description: [
24
+ 'Splom traces generate scatter plot matrix visualizations.',
25
+ 'Each splom `dimensions` items correspond to a generated axis.',
26
+ 'Values for each of those dimensions are set in `dimensions[i].values`.',
27
+ 'Splom traces support all `scattergl` marker style attributes.',
28
+ 'Specify `layout.grid` attributes and/or layout x-axis and y-axis attributes',
29
+ 'for more control over the axis positioning and style. '
30
+ ].join(' ')
31
+ }
32
+ };
33
+
34
+ // splom traces use the 'grid' component to generate their axes,
35
+ // register it here
36
+ Registry.register(Grid);
@@ -11,12 +11,14 @@ var shouldShowZeroLine = require('../../plots/cartesian/axes').shouldShowZeroLin
11
11
 
12
12
  var SPLOM = 'splom';
13
13
 
14
+ var reglPrecompiled = {};
15
+
14
16
  function plot(gd) {
15
17
  var fullLayout = gd._fullLayout;
16
18
  var _module = Registry.getModule(SPLOM);
17
19
  var splomCalcData = getModuleCalcData(gd.calcdata, _module)[0];
18
20
 
19
- var success = prepareRegl(gd, ['ANGLE_instanced_arrays', 'OES_element_index_uint']);
21
+ var success = prepareRegl(gd, ['ANGLE_instanced_arrays', 'OES_element_index_uint'], reglPrecompiled);
20
22
  if(!success) return;
21
23
 
22
24
  if(fullLayout._hasOnlyLargeSploms) {
@@ -219,5 +221,6 @@ module.exports = {
219
221
  updateGrid: updateGrid,
220
222
  clean: clean,
221
223
  updateFx: Cartesian.updateFx,
222
- toSVG: Cartesian.toSVG
224
+ toSVG: Cartesian.toSVG,
225
+ reglPrecompiled: reglPrecompiled
223
226
  };
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ var basePlot = require('./base_plot');
4
+ var reglPrecompiled = require('./regl_precompiled');
5
+
6
+ Object.assign(basePlot.reglPrecompiled, reglPrecompiled);
7
+
8
+
9
+ module.exports = basePlot;
@@ -1,37 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var Registry = require('../../registry');
4
- var Grid = require('../../components/grid');
3
+ var index = require('./base_index');
5
4
 
6
- module.exports = {
7
- moduleType: 'trace',
8
- name: 'splom',
5
+ index.basePlotModule = require('./base_plot'),
9
6
 
10
- basePlotModule: require('./base_plot'),
11
- categories: ['gl', 'regl', 'cartesian', 'symbols', 'showLegend', 'scatter-like'],
12
-
13
- attributes: require('./attributes'),
14
- supplyDefaults: require('./defaults'),
15
- colorbar: require('../scatter/marker_colorbar'),
16
-
17
- calc: require('./calc'),
18
- plot: require('./plot'),
19
- hoverPoints: require('./hover').hoverPoints,
20
- selectPoints: require('./select'),
21
- editStyle: require('./edit_style'),
22
-
23
- meta: {
24
- description: [
25
- 'Splom traces generate scatter plot matrix visualizations.',
26
- 'Each splom `dimensions` items correspond to a generated axis.',
27
- 'Values for each of those dimensions are set in `dimensions[i].values`.',
28
- 'Splom traces support all `scattergl` marker style attributes.',
29
- 'Specify `layout.grid` attributes and/or layout x-axis and y-axis attributes',
30
- 'for more control over the axis positioning and style. '
31
- ].join(' ')
32
- }
33
- };
34
-
35
- // splom traces use the 'grid' component to generate their axes,
36
- // register it here
37
- Registry.register(Grid);
7
+ module.exports = index;
@@ -0,0 +1,24 @@
1
+ 'use strict';
2
+ var v0 = require('../../generated/regl-codegen/53f2bf051e4ba66c90f343d29aa8da9e4029454c0d428f8e46e94dfddc97c8c6');
3
+ var v1 = require('../../generated/regl-codegen/8a43b073e4f3e9c0e499c8ac9c253f2aa1e3d3de2febfccc6526b52295dbf770');
4
+ var v2 = require('../../generated/regl-codegen/ff8495670417d5d0e4caa9942ad63b4dff0242a390ac1cb807c78ca326d6f3ce');
5
+ var v3 = require('../../generated/regl-codegen/13c0ae156483f2bcbd7ff29404f0abfd8689ff43f41791a6c7469868690a4260');
6
+ var v4 = require('../../generated/regl-codegen/19769c875db736c08a744c0a6aabe28276ed06aa24fdb7c36506a9f4c1f56f13');
7
+ var v5 = require('../../generated/regl-codegen/21cec01aa93887c70e86d7f1bc84d6837da0b1f5c1ff4cadd42ac6eb37f9f316');
8
+ var v6 = require('../../generated/regl-codegen/f9448a214a3e3cd439b767559aa71a4d1ccf5a8f39b8b756973e71acd33ff956');
9
+ var v7 = require('../../generated/regl-codegen/0919c57b995304312da30a5af7873a319bfb7b7e22ff6b4fa203ecbd5774ebfc');
10
+ var v8 = require('../../generated/regl-codegen/6c3ff5a68d2906faf59307b58a799389f916ebdd3f7732ce75967575041988fc');
11
+ var v9 = require('../../generated/regl-codegen/7c8e7f36e693904898ece5f7f8b49b23c69d98397567c3915a45647209eb7da4');
12
+
13
+ module.exports = {
14
+ '53f2bf051e4ba66c90f343d29aa8da9e4029454c0d428f8e46e94dfddc97c8c6': v0,
15
+ '8a43b073e4f3e9c0e499c8ac9c253f2aa1e3d3de2febfccc6526b52295dbf770': v1,
16
+ 'ff8495670417d5d0e4caa9942ad63b4dff0242a390ac1cb807c78ca326d6f3ce': v2,
17
+ '13c0ae156483f2bcbd7ff29404f0abfd8689ff43f41791a6c7469868690a4260': v3,
18
+ '19769c875db736c08a744c0a6aabe28276ed06aa24fdb7c36506a9f4c1f56f13': v4,
19
+ '21cec01aa93887c70e86d7f1bc84d6837da0b1f5c1ff4cadd42ac6eb37f9f316': v5,
20
+ 'f9448a214a3e3cd439b767559aa71a4d1ccf5a8f39b8b756973e71acd33ff956': v6,
21
+ '0919c57b995304312da30a5af7873a319bfb7b7e22ff6b4fa203ecbd5774ebfc': v7,
22
+ '6c3ff5a68d2906faf59307b58a799389f916ebdd3f7732ce75967575041988fc': v8,
23
+ '7c8e7f36e693904898ece5f7f8b49b23c69d98397567c3915a45647209eb7da4': v9
24
+ };
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ var index = require('./base_index');
4
+
5
+ index.basePlotModule = require('./base_plot_strict'),
6
+
7
+ module.exports = index;
package/src/version.js CHANGED
@@ -1,4 +1,4 @@
1
1
  'use strict';
2
2
 
3
3
  // package version injected by `npm run preprocess`
4
- exports.version = '2.10.1';
4
+ exports.version = '2.11.0';
package/tasks/bundle.js CHANGED
@@ -10,6 +10,11 @@ var pathToPlotlyDist = constants.pathToPlotlyDist;
10
10
  var pathToPlotlyIndex = constants.pathToPlotlyIndex;
11
11
  var pathToPlotlyDistMin = constants.pathToPlotlyDistMin;
12
12
  var pathToPlotlyDistWithMeta = constants.pathToPlotlyDistWithMeta;
13
+
14
+ var pathToPlotlyStrict = constants.pathToPlotlyStrict;
15
+ var pathToPlotlyStrictDist = constants.pathToPlotlyStrictDist;
16
+ var pathToPlotlyStrictDistMin = constants.pathToPlotlyStrictDistMin;
17
+
13
18
  var pathToPlotlyGeoAssetsSrc = constants.pathToPlotlyGeoAssetsSrc;
14
19
  var pathToPlotlyGeoAssetsDist = constants.pathToPlotlyGeoAssetsDist;
15
20
 
@@ -39,6 +44,19 @@ tasks.push(function(done) {
39
44
  });
40
45
  });
41
46
 
47
+ // Browserify plotly.js-strict
48
+ tasks.push(function(done) {
49
+ _bundle(pathToPlotlyStrict, pathToPlotlyStrictDist, {
50
+ standalone: 'Plotly',
51
+ pathToMinBundle: pathToPlotlyStrictDistMin
52
+ }, function() {
53
+ prependFile(pathToPlotlyStrictDist, header, common.throwOnError);
54
+ prependFile(pathToPlotlyStrictDistMin, header, common.throwOnError);
55
+
56
+ done();
57
+ });
58
+ });
59
+
42
60
  // Browserify the geo assets
43
61
  tasks.push(function(done) {
44
62
  _bundle(pathToPlotlyGeoAssetsSrc, pathToPlotlyGeoAssetsDist, {
@@ -20,34 +20,37 @@ module.exports = function partialBundle(tasks, opts) {
20
20
  var transformList = opts.transformList;
21
21
  var calendars = opts.calendars;
22
22
 
23
- tasks.push(function(done) {
24
- var partialIndex = mainIndex;
23
+ // skip strict bundle which is no longer a partial bundle and has a special index file for regl traces
24
+ if(name !== 'strict') {
25
+ tasks.push(function(done) {
26
+ var partialIndex = mainIndex;
25
27
 
26
- var all = ['calendars'].concat(allTransforms).concat(allTraces);
27
- var includes = (calendars ? ['calendars'] : []).concat(transformList).concat(traceList);
28
- var excludes = all.filter(function(e) { return includes.indexOf(e) === -1; });
28
+ var all = ['calendars'].concat(allTransforms).concat(allTraces);
29
+ var includes = (calendars ? ['calendars'] : []).concat(transformList).concat(traceList);
30
+ var excludes = all.filter(function(e) { return includes.indexOf(e) === -1; });
29
31
 
30
- excludes.forEach(function(t) {
31
- var WHITESPACE_BEFORE = '\\s*';
32
- // remove require
33
- var newCode = partialIndex.replace(
34
- new RegExp(
35
- WHITESPACE_BEFORE +
36
- 'require\\(\'\\./' + t + '\'\\),',
37
- 'g'), ''
38
- );
32
+ excludes.forEach(function(t) {
33
+ var WHITESPACE_BEFORE = '\\s*';
34
+ // remove require
35
+ var newCode = partialIndex.replace(
36
+ new RegExp(
37
+ WHITESPACE_BEFORE +
38
+ 'require\\(\'\\./' + t + '\'\\),',
39
+ 'g'), ''
40
+ );
39
41
 
40
- // test removal
41
- if(newCode === partialIndex) {
42
- console.error('Unable to find and drop require for ' + t);
43
- throw 'Error generating index for partial bundle!';
44
- }
42
+ // test removal
43
+ if(newCode === partialIndex) {
44
+ console.error('Unable to find and drop require for ' + t);
45
+ throw 'Error generating index for partial bundle!';
46
+ }
45
47
 
46
- partialIndex = newCode;
47
- });
48
+ partialIndex = newCode;
49
+ });
48
50
 
49
- common.writeFile(index, partialIndex, done);
50
- });
51
+ common.writeFile(index, partialIndex, done);
52
+ });
53
+ }
51
54
 
52
55
  tasks.push(function(done) {
53
56
  var bundleOpts = {
package/tasks/stats.js CHANGED
@@ -123,9 +123,9 @@ function getMainBundleInfo() {
123
123
  '> The minified version of each partial bundle is also published to npm in a separate "dist-min" package.',
124
124
  '',
125
125
  [
126
- '> The strict partial bundle includes everything except the traces that require function constructors.',
127
- 'Over time we hope to include more of the remaining trace types here, after which we intend to work on other strict CSP issues',
128
- 'such as inline CSS that we may not be able to include in the main bundle.',
126
+ '> The strict bundle now includes all traces, but the regl-based traces are built differently to avoid function constructors.',
127
+ 'This results in about a 10% larger bundle size, which is why this method is not used by default.',
128
+ 'Over time we intend to use the strict bundle to work on other strict CSP issues such as inline CSS.'
129
129
  ].join(' '),
130
130
  '',
131
131
  '---',
@@ -16,11 +16,13 @@ function startsWithLowerCase(v) {
16
16
  return v.charAt(0) !== v.charAt(0).toUpperCase();
17
17
  }
18
18
 
19
+
19
20
  var pathToPlotlyIndex = path.join(pathToLib, 'index.js');
20
21
  var pathToPlotlyStrict = path.join(pathToLib, 'index-strict.js');
21
22
  var mainIndex = fs.readFileSync(pathToPlotlyIndex, 'utf-8');
22
23
  var allTraces = fs.readdirSync(path.join(pathToSrc, 'traces'))
23
24
  .filter(startsWithLowerCase);
25
+
24
26
  var allTransforms = fs.readdirSync(path.join(pathToSrc, 'transforms'))
25
27
  .filter(function(v) {
26
28
  return startsWithLowerCase(v) && v !== 'helpers.js';
@@ -133,17 +135,21 @@ var partialBundleTraces = {
133
135
  'mesh3d',
134
136
  'ohlc',
135
137
  'parcats',
138
+ 'parcoords',
136
139
  'pie',
137
140
  'pointcloud',
138
141
  'sankey',
139
142
  'scatter',
140
- 'scatter',
143
+ 'scattergl',
141
144
  'scatter3d',
142
145
  'scattercarpet',
143
146
  'scattergeo',
144
147
  'scattermapbox',
145
148
  'scatterpolar',
149
+ 'scatterpolargl',
150
+ 'scattersmith',
146
151
  'scatterternary',
152
+ 'splom',
147
153
  'streamtube',
148
154
  'sunburst',
149
155
  'surface',
@@ -194,6 +200,8 @@ module.exports = {
194
200
  pathToPlotlyDist: path.join(pathToDist, 'plotly.js'),
195
201
  pathToPlotlyDistMin: path.join(pathToDist, 'plotly.min.js'),
196
202
  pathToPlotlyDistWithMeta: path.join(pathToDist, 'plotly-with-meta.js'),
203
+ pathToPlotlyStrictDist: path.join(pathToDist, 'plotly-strict.js'),
204
+ pathToPlotlyStrictDistMin: path.join(pathToDist, 'plotly-strict.min.js'),
197
205
 
198
206
  pathToSchemaDiff: path.join(pathToTest, 'plot-schema.json'),
199
207
  pathToSchemaDist: path.join(pathToDist, 'plot-schema.json'),
@@ -201,6 +209,9 @@ module.exports = {
201
209
 
202
210
  partialBundleNames: partialBundleNames,
203
211
 
212
+ reglCodegenSubdir: path.join('generated', 'regl-codegen'),
213
+ pathToReglCodegenSrc: path.join(pathToSrc, 'generated', 'regl-codegen'),
214
+
204
215
  pathToTopojsonSrc: pathToTopojsonSrc,
205
216
  pathToTopojsonDist: path.join(pathToDist, 'topojson/'),
206
217
  pathToPlotlyGeoAssetsSrc: path.join(pathToSrc, 'assets/geo_assets.js'),
@@ -210,6 +221,7 @@ module.exports = {
210
221
  pathToCSSBuild: path.join(pathToBuild, 'plotcss.js'),
211
222
 
212
223
  pathToTestDashboardBundle: path.join(pathToBuild, 'test_dashboard-bundle.js'),
224
+ pathToReglCodegenBundle: path.join(pathToBuild, 'regl_codegen-bundle.js'),
213
225
 
214
226
  pathToImageTest: pathToImageTest,
215
227
  pathToTestImageMocks: path.join(pathToImageTest, 'mocks/'),