@windborne/grapher 1.0.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 (112) hide show
  1. package/.eslintrc.js +85 -0
  2. package/.idea/codeStyles/Project.xml +19 -0
  3. package/.idea/codeStyles/codeStyleConfig.xml +5 -0
  4. package/.idea/grapher.iml +12 -0
  5. package/.idea/inspectionProfiles/Project_Default.xml +6 -0
  6. package/.idea/misc.xml +6 -0
  7. package/.idea/modules.xml +8 -0
  8. package/.idea/vcs.xml +6 -0
  9. package/0.bundle.js +2 -0
  10. package/0.bundle.js.map +1 -0
  11. package/1767282193a714f63082.module.wasm +0 -0
  12. package/537.bundle.js +2 -0
  13. package/537.bundle.js.map +1 -0
  14. package/831.bundle.js +2 -0
  15. package/831.bundle.js.map +1 -0
  16. package/bundle.js +2 -0
  17. package/bundle.js.map +1 -0
  18. package/package.json +75 -0
  19. package/readme.md +129 -0
  20. package/src/components/annotations.js +62 -0
  21. package/src/components/context_menu.js +73 -0
  22. package/src/components/draggable_points.js +114 -0
  23. package/src/components/graph_body.js +292 -0
  24. package/src/components/graph_title.js +16 -0
  25. package/src/components/options.js +111 -0
  26. package/src/components/percentile_button.js +72 -0
  27. package/src/components/range_graph.js +352 -0
  28. package/src/components/range_selection.js +175 -0
  29. package/src/components/range_selection_button.js +26 -0
  30. package/src/components/range_selection_button_base.js +51 -0
  31. package/src/components/series_key.js +235 -0
  32. package/src/components/series_key_axis_container.js +70 -0
  33. package/src/components/series_key_item.js +52 -0
  34. package/src/components/sidebar.js +76 -0
  35. package/src/components/tooltip.js +244 -0
  36. package/src/components/vertical_lines.js +70 -0
  37. package/src/components/x_axis.js +124 -0
  38. package/src/components/y_axis.js +239 -0
  39. package/src/eventable.js +65 -0
  40. package/src/grapher.js +367 -0
  41. package/src/grapher.scss +914 -0
  42. package/src/helpers/axis_sizes.js +2 -0
  43. package/src/helpers/binary_search.js +67 -0
  44. package/src/helpers/color_to_vector.js +35 -0
  45. package/src/helpers/colors.js +27 -0
  46. package/src/helpers/custom_prop_types.js +159 -0
  47. package/src/helpers/flatten_simple_data.js +81 -0
  48. package/src/helpers/format.js +233 -0
  49. package/src/helpers/generator_params_equal.js +10 -0
  50. package/src/helpers/name_for_series.js +16 -0
  51. package/src/helpers/place_grid.js +257 -0
  52. package/src/helpers/pyodide_ready.js +13 -0
  53. package/src/multigrapher.js +105 -0
  54. package/src/renderer/background.frag +7 -0
  55. package/src/renderer/background.vert +7 -0
  56. package/src/renderer/background_program.js +48 -0
  57. package/src/renderer/circle.frag +26 -0
  58. package/src/renderer/circle.vert +12 -0
  59. package/src/renderer/create_gl_program.js +36 -0
  60. package/src/renderer/draw_area.js +159 -0
  61. package/src/renderer/draw_background.js +15 -0
  62. package/src/renderer/draw_bars.js +80 -0
  63. package/src/renderer/draw_line.js +69 -0
  64. package/src/renderer/draw_zero_line.js +24 -0
  65. package/src/renderer/extract_vertices.js +137 -0
  66. package/src/renderer/graph_body_renderer.js +293 -0
  67. package/src/renderer/line.frag +51 -0
  68. package/src/renderer/line.vert +32 -0
  69. package/src/renderer/line_program.js +125 -0
  70. package/src/renderer/paths_from.js +72 -0
  71. package/src/renderer/scale_bounds.js +28 -0
  72. package/src/renderer/size_canvas.js +59 -0
  73. package/src/rust/Cargo.lock +233 -0
  74. package/src/rust/Cargo.toml +35 -0
  75. package/src/rust/pkg/grapher_rs.d.ts +42 -0
  76. package/src/rust/pkg/grapher_rs.js +351 -0
  77. package/src/rust/pkg/grapher_rs_bg.d.ts +11 -0
  78. package/src/rust/pkg/grapher_rs_bg.wasm +0 -0
  79. package/src/rust/pkg/index.js +342 -0
  80. package/src/rust/pkg/index_bg.wasm +0 -0
  81. package/src/rust/pkg/package.json +14 -0
  82. package/src/rust/src/extract_vertices.rs +83 -0
  83. package/src/rust/src/get_point_number.rs +50 -0
  84. package/src/rust/src/lib.rs +15 -0
  85. package/src/rust/src/selected_space_to_render_space.rs +131 -0
  86. package/src/state/average_loop_times.js +15 -0
  87. package/src/state/bound_calculator_from_selection.js +36 -0
  88. package/src/state/bound_calculators.js +41 -0
  89. package/src/state/calculate_annotations_state.js +59 -0
  90. package/src/state/calculate_data_bounds.js +104 -0
  91. package/src/state/calculate_tooltip_state.js +241 -0
  92. package/src/state/data_types.js +13 -0
  93. package/src/state/expand_bounds.js +58 -0
  94. package/src/state/find_matching_axis.js +31 -0
  95. package/src/state/get_default_bounds_calculator.js +15 -0
  96. package/src/state/hooks.js +164 -0
  97. package/src/state/infer_type.js +74 -0
  98. package/src/state/merge_bounds.js +64 -0
  99. package/src/state/multigraph_state_controller.js +334 -0
  100. package/src/state/selection_from_global_bounds.js +25 -0
  101. package/src/state/space_conversions/condense_data_space.js +115 -0
  102. package/src/state/space_conversions/data_space_to_selected_space.js +328 -0
  103. package/src/state/space_conversions/selected_space_to_background_space.js +144 -0
  104. package/src/state/space_conversions/selected_space_to_render_space.js +161 -0
  105. package/src/state/space_conversions/simple_series_to_data_space.js +229 -0
  106. package/src/state/state_controller.js +1770 -0
  107. package/src/state/sync_pool.js +101 -0
  108. package/test/setup.js +15 -0
  109. package/test/space_conversions/data_space_to_selected_space.test.js +434 -0
  110. package/webpack.dev.config.js +109 -0
  111. package/webpack.prod.config.js +60 -0
  112. package/webpack.test.config.js +59 -0
@@ -0,0 +1,60 @@
1
+ const path = require('path');
2
+ const WasmPackPlugin = require('@wasm-tool/wasm-pack-plugin');
3
+
4
+ module.exports = {
5
+ mode: 'production',
6
+ entry: './src/grapher.js',
7
+ devtool: 'source-map',
8
+ output: {
9
+ path: path.resolve(__dirname), // string
10
+ filename: 'bundle.js',
11
+ publicPath: '/assets/',
12
+ library: 'Grapher',
13
+ libraryTarget: 'umd',
14
+ },
15
+ optimization: {
16
+ minimize: true
17
+ },
18
+ externals: {
19
+ react: 'react'
20
+ },
21
+ experiments: {
22
+ syncWebAssembly: true
23
+ },
24
+ resolve: {
25
+ fallback: {
26
+ util: require.resolve("util/")
27
+ }
28
+ },
29
+ module: {
30
+ rules: [
31
+ {
32
+ test:/\.s?css$/,
33
+ exclude: /(node_modules|bower_components|build)/,
34
+ use:['style-loader', 'css-loader', 'sass-loader']
35
+ },
36
+ {
37
+ test: /\.js$/,
38
+ exclude: /(node_modules|bower_components|build)/,
39
+ use: {
40
+ loader: 'babel-loader',
41
+ options: {
42
+ presets: ["@babel/preset-env", "@babel/preset-react"]
43
+ }
44
+ }
45
+ },
46
+ {
47
+ test: /\.(vert|frag|glsl)$/,
48
+ use: 'webpack-glsl-loader'
49
+ }
50
+ ]
51
+ },
52
+ plugins: [
53
+ new WasmPackPlugin({
54
+ crateDirectory: path.resolve(__dirname, 'src', 'rust'),
55
+ outDir: path.resolve(__dirname, 'src', 'rust', 'pkg'),
56
+ extraArgs: '--no-typescript',
57
+ forceMode: 'production'
58
+ })
59
+ ]
60
+ };
@@ -0,0 +1,59 @@
1
+ const path = require('path');
2
+ const WasmPackPlugin = require('@wasm-tool/wasm-pack-plugin');
3
+ const nodeExternals = require('webpack-node-externals');
4
+ const isCoverage = process.env.NODE_ENV === 'coverage';
5
+
6
+ module.exports = {
7
+ target: 'node',
8
+ mode: 'development',
9
+ devtool: 'inline-cheap-module-source-map',
10
+ externals: [nodeExternals()],
11
+ output: {
12
+ devtoolModuleFilenameTemplate: '[absolute-resource-path]',
13
+ devtoolFallbackModuleFilenameTemplate: '[absolute-resource-path]?[hash]'
14
+ },
15
+ experiments: {
16
+ syncWebAssembly: true
17
+ },
18
+ resolve: {
19
+ fallback: {
20
+ util: require.resolve("util/")
21
+ }
22
+ },
23
+ module: {
24
+ rules: [
25
+ isCoverage ? {
26
+ test: /\.(js|ts)/,
27
+ include: path.resolve('src'),
28
+ loader: 'istanbul-instrumenter-loader'
29
+ } : [],
30
+ {
31
+ test:/\.s?css$/,
32
+ exclude: /(node_modules|bower_components|build)/,
33
+ use:['style-loader', 'css-loader', 'sass-loader']
34
+ },
35
+ {
36
+ test: /\.js$/,
37
+ exclude: /(node_modules|bower_components|build)/,
38
+ use: {
39
+ loader: 'babel-loader',
40
+ options: {
41
+ presets: ["@babel/preset-env", "@babel/preset-react"]
42
+ }
43
+ }
44
+ },
45
+ {
46
+ test: /\.(vert|frag|glsl)$/,
47
+ use: 'webpack-glsl-loader'
48
+ }
49
+ ].flat()
50
+ },
51
+ plugins: [
52
+ new WasmPackPlugin({
53
+ crateDirectory: path.resolve(__dirname, 'src', 'rust'),
54
+ outDir: path.resolve(__dirname, 'src', 'rust', 'pkg'),
55
+ extraArgs: '--no-typescript',
56
+ forceMode: 'production'
57
+ })
58
+ ]
59
+ };