@webviz/subsurface-viewer 1.11.3 → 1.11.5

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 (165) hide show
  1. package/dist/components/Map.js +179 -157
  2. package/dist/components/Map.js.map +1 -1
  3. package/dist/layers/axes/axesLayer.d.ts +1 -1
  4. package/dist/layers/axes/axesLayer.js +6 -6
  5. package/dist/layers/axes/axesLayer.js.map +1 -1
  6. package/dist/layers/axes/box.fs.glsl.d.ts +2 -0
  7. package/dist/layers/axes/{axes-fragment.glsl.js → box.fs.glsl.js} +2 -3
  8. package/dist/layers/axes/box.fs.glsl.js.map +1 -0
  9. package/dist/layers/axes/box.vs.glsl.d.ts +2 -0
  10. package/dist/layers/axes/{grid-vertex.glsl.js → box.vs.glsl.js} +2 -3
  11. package/dist/layers/axes/box.vs.glsl.js.map +1 -0
  12. package/dist/layers/axes/boxLayer.js +3 -3
  13. package/dist/layers/axes/boxLayer.js.map +1 -1
  14. package/dist/layers/axes2d/axes2DLayer.js +46 -20
  15. package/dist/layers/axes2d/axes2DLayer.js.map +1 -1
  16. package/dist/layers/axes2d/{label-fragment.glsl.js → label.fs.glsl.js} +1 -1
  17. package/dist/layers/axes2d/label.fs.glsl.js.map +1 -0
  18. package/dist/layers/axes2d/{label-vertex.glsl.js → label.vs.glsl.js} +1 -1
  19. package/dist/layers/axes2d/label.vs.glsl.js.map +1 -0
  20. package/dist/layers/axes2d/{line-fragment.glsl.js → line.fs.glsl.js} +1 -1
  21. package/dist/layers/axes2d/line.fs.glsl.js.map +1 -0
  22. package/dist/layers/axes2d/{line-vertex.glsl.js → line.vs.glsl.js} +1 -1
  23. package/dist/layers/axes2d/line.vs.glsl.js.map +1 -0
  24. package/dist/layers/colormap/colormap.fs.glsl.d.ts +2 -2
  25. package/dist/layers/colormap/colormap.fs.glsl.js +1 -2
  26. package/dist/layers/colormap/colormap.fs.glsl.js.map +1 -1
  27. package/dist/layers/grid3d/cellProperty.fs.glsl.d.ts +2 -2
  28. package/dist/layers/grid3d/cellProperty.fs.glsl.js +1 -2
  29. package/dist/layers/grid3d/cellProperty.fs.glsl.js.map +1 -1
  30. package/dist/layers/grid3d/cellProperty.vs.glsl.d.ts +2 -2
  31. package/dist/layers/grid3d/cellProperty.vs.glsl.js +1 -2
  32. package/dist/layers/grid3d/cellProperty.vs.glsl.js.map +1 -1
  33. package/dist/layers/grid3d/line.fs.glsl.d.ts +2 -0
  34. package/dist/layers/grid3d/{fragment_lines.glsl.js → line.fs.glsl.js} +2 -3
  35. package/dist/layers/grid3d/line.fs.glsl.js.map +1 -0
  36. package/dist/layers/grid3d/{vertex_lines.glsl.js → line.vs.glsl.js} +1 -1
  37. package/dist/layers/grid3d/line.vs.glsl.js.map +1 -0
  38. package/dist/layers/grid3d/nodeProperty.fs.glsl.d.ts +2 -2
  39. package/dist/layers/grid3d/nodeProperty.fs.glsl.js +1 -2
  40. package/dist/layers/grid3d/nodeProperty.fs.glsl.js.map +1 -1
  41. package/dist/layers/grid3d/nodeProperty.vs.glsl.d.ts +2 -2
  42. package/dist/layers/grid3d/nodeProperty.vs.glsl.js +1 -2
  43. package/dist/layers/grid3d/nodeProperty.vs.glsl.js.map +1 -1
  44. package/dist/layers/grid3d/privateGrid3dLayer.js +2 -2
  45. package/dist/layers/grid3d/privateGrid3dLayer.js.map +1 -1
  46. package/dist/layers/hillshading2d/hillshading2d.fs.glsl.d.ts +2 -2
  47. package/dist/layers/hillshading2d/hillshading2d.fs.glsl.js +1 -2
  48. package/dist/layers/hillshading2d/hillshading2d.fs.glsl.js.map +1 -1
  49. package/dist/layers/map/line.fs.glsl.d.ts +2 -0
  50. package/dist/layers/map/{fragment_lines.glsl.js → line.fs.glsl.js} +2 -3
  51. package/dist/layers/map/line.fs.glsl.js.map +1 -0
  52. package/dist/layers/map/{vertex_lines.glsl.js → line.vs.glsl.js} +1 -1
  53. package/dist/layers/map/line.vs.glsl.js.map +1 -0
  54. package/dist/layers/map/map.fs.glsl.d.ts +2 -0
  55. package/dist/layers/map/{fragment.glsl.js → map.fs.glsl.js} +2 -3
  56. package/dist/layers/map/map.fs.glsl.js.map +1 -0
  57. package/dist/layers/map/map.vs.glsl.d.ts +2 -0
  58. package/dist/layers/map/{vertex.glsl.js → map.vs.glsl.js} +2 -3
  59. package/dist/layers/map/map.vs.glsl.js.map +1 -0
  60. package/dist/layers/map/privateMapLayer.js +4 -4
  61. package/dist/layers/map/privateMapLayer.js.map +1 -1
  62. package/dist/layers/northarrow/northArrow3DLayer.js +2 -2
  63. package/dist/layers/northarrow/northArrow3DLayer.js.map +1 -1
  64. package/dist/layers/northarrow/{northarrow-fragment.glsl.js → northarrow.fs.glsl.js} +1 -1
  65. package/dist/layers/northarrow/northarrow.fs.glsl.js.map +1 -0
  66. package/dist/layers/northarrow/{northarrow-vertex.glsl.js → northarrow.vs.glsl.js} +1 -1
  67. package/dist/layers/northarrow/northarrow.vs.glsl.js.map +1 -0
  68. package/dist/layers/piechart/pieChartLayer.js +2 -2
  69. package/dist/layers/piechart/pieChartLayer.js.map +1 -1
  70. package/dist/layers/piechart/{fragment.glsl.js → piechart.fs.glsl.js} +1 -1
  71. package/dist/layers/piechart/piechart.fs.glsl.js.map +1 -0
  72. package/dist/layers/piechart/{vertex.glsl.js → piechart.vs.glsl.js} +1 -1
  73. package/dist/layers/piechart/piechart.vs.glsl.js.map +1 -0
  74. package/dist/layers/points/{vertex.glsl.js → point.vs.glsl.js} +1 -1
  75. package/dist/layers/points/point.vs.glsl.js.map +1 -0
  76. package/dist/layers/points/privatePointsLayer.js +1 -1
  77. package/dist/layers/points/privatePointsLayer.js.map +1 -1
  78. package/dist/layers/polylines/{path-layer-fragment.glsl.js → polyline.fs.glsl.js} +1 -1
  79. package/dist/layers/polylines/polyline.fs.glsl.js.map +1 -0
  80. package/dist/layers/polylines/{path-layer-vertex.glsl.js → polyline.vs.glsl.js} +1 -1
  81. package/dist/layers/polylines/polyline.vs.glsl.js.map +1 -0
  82. package/dist/layers/polylines/privatePolylinesLayer.js +2 -2
  83. package/dist/layers/polylines/privatePolylinesLayer.js.map +1 -1
  84. package/dist/layers/shader_modules/decoder.fs.glsl.d.ts +2 -2
  85. package/dist/layers/shader_modules/decoder.fs.glsl.js +1 -2
  86. package/dist/layers/shader_modules/decoder.fs.glsl.js.map +1 -1
  87. package/dist/layers/triangle/line.fs.glsl.d.ts +2 -0
  88. package/dist/layers/triangle/{fragment_lines.glsl.js → line.fs.glsl.js} +2 -3
  89. package/dist/layers/triangle/line.fs.glsl.js.map +1 -0
  90. package/dist/layers/triangle/{vertex_lines.glsl.js → line.vs.glsl.js} +1 -1
  91. package/dist/layers/triangle/line.vs.glsl.js.map +1 -0
  92. package/dist/layers/triangle/privateTriangleLayer.js +4 -4
  93. package/dist/layers/triangle/privateTriangleLayer.js.map +1 -1
  94. package/dist/layers/triangle/triangle.fs.glsl.d.ts +2 -0
  95. package/dist/layers/triangle/{fragment.fs.glsl.js → triangle.fs.glsl.js} +2 -3
  96. package/dist/layers/triangle/triangle.fs.glsl.js.map +1 -0
  97. package/dist/layers/triangle/triangle.vs.glsl.d.ts +2 -0
  98. package/dist/layers/triangle/{vertex.glsl.js → triangle.vs.glsl.js} +2 -3
  99. package/dist/layers/triangle/triangle.vs.glsl.js.map +1 -0
  100. package/dist/layers/well_markers/marker.fs.glsl.d.ts +2 -0
  101. package/dist/layers/well_markers/{fragment.glsl.js → marker.fs.glsl.js} +2 -2
  102. package/dist/layers/well_markers/marker.fs.glsl.js.map +1 -0
  103. package/dist/layers/well_markers/marker.vs.glsl.d.ts +2 -0
  104. package/dist/layers/well_markers/{vertex.glsl.js → marker.vs.glsl.js} +2 -2
  105. package/dist/layers/well_markers/marker.vs.glsl.js.map +1 -0
  106. package/dist/layers/well_markers/wellMarkersLayer.js +2 -2
  107. package/dist/layers/well_markers/wellMarkersLayer.js.map +1 -1
  108. package/dist/utils/fitBounds.d.ts +24 -0
  109. package/dist/utils/{fit-bounds.js → fitBounds.js} +9 -10
  110. package/dist/utils/fitBounds.js.map +1 -0
  111. package/dist/viewports/index.js.map +1 -1
  112. package/dist/views/index.js.map +1 -1
  113. package/package.json +83 -84
  114. package/dist/layers/axes/axes-fragment.glsl.d.ts +0 -2
  115. package/dist/layers/axes/axes-fragment.glsl.js.map +0 -1
  116. package/dist/layers/axes/grid-vertex.glsl.d.ts +0 -2
  117. package/dist/layers/axes/grid-vertex.glsl.js.map +0 -1
  118. package/dist/layers/axes2d/label-fragment.glsl.js.map +0 -1
  119. package/dist/layers/axes2d/label-vertex.glsl.js.map +0 -1
  120. package/dist/layers/axes2d/line-fragment.glsl.js.map +0 -1
  121. package/dist/layers/axes2d/line-vertex.glsl.js.map +0 -1
  122. package/dist/layers/grid3d/fragment_lines.glsl.d.ts +0 -2
  123. package/dist/layers/grid3d/fragment_lines.glsl.js.map +0 -1
  124. package/dist/layers/grid3d/vertex_lines.glsl.js.map +0 -1
  125. package/dist/layers/map/fragment.glsl.d.ts +0 -2
  126. package/dist/layers/map/fragment.glsl.js.map +0 -1
  127. package/dist/layers/map/fragment_lines.glsl.d.ts +0 -2
  128. package/dist/layers/map/fragment_lines.glsl.js.map +0 -1
  129. package/dist/layers/map/vertex.glsl.d.ts +0 -2
  130. package/dist/layers/map/vertex.glsl.js.map +0 -1
  131. package/dist/layers/map/vertex_lines.glsl.js.map +0 -1
  132. package/dist/layers/northarrow/northarrow-fragment.glsl.js.map +0 -1
  133. package/dist/layers/northarrow/northarrow-vertex.glsl.js.map +0 -1
  134. package/dist/layers/piechart/fragment.glsl.js.map +0 -1
  135. package/dist/layers/piechart/vertex.glsl.js.map +0 -1
  136. package/dist/layers/points/vertex.glsl.js.map +0 -1
  137. package/dist/layers/polylines/path-layer-fragment.glsl.js.map +0 -1
  138. package/dist/layers/polylines/path-layer-vertex.glsl.js.map +0 -1
  139. package/dist/layers/triangle/fragment.fs.glsl.d.ts +0 -2
  140. package/dist/layers/triangle/fragment.fs.glsl.js.map +0 -1
  141. package/dist/layers/triangle/fragment_lines.glsl.d.ts +0 -2
  142. package/dist/layers/triangle/fragment_lines.glsl.js.map +0 -1
  143. package/dist/layers/triangle/vertex.glsl.d.ts +0 -2
  144. package/dist/layers/triangle/vertex.glsl.js.map +0 -1
  145. package/dist/layers/triangle/vertex_lines.glsl.js.map +0 -1
  146. package/dist/layers/well_markers/fragment.glsl.d.ts +0 -1
  147. package/dist/layers/well_markers/fragment.glsl.js.map +0 -1
  148. package/dist/layers/well_markers/vertex.glsl.d.ts +0 -1
  149. package/dist/layers/well_markers/vertex.glsl.js.map +0 -1
  150. package/dist/utils/fit-bounds.d.ts +0 -14
  151. package/dist/utils/fit-bounds.js.map +0 -1
  152. /package/dist/layers/axes2d/{label-fragment.glsl.d.ts → label.fs.glsl.d.ts} +0 -0
  153. /package/dist/layers/axes2d/{label-vertex.glsl.d.ts → label.vs.glsl.d.ts} +0 -0
  154. /package/dist/layers/axes2d/{line-fragment.glsl.d.ts → line.fs.glsl.d.ts} +0 -0
  155. /package/dist/layers/axes2d/{line-vertex.glsl.d.ts → line.vs.glsl.d.ts} +0 -0
  156. /package/dist/layers/grid3d/{vertex_lines.glsl.d.ts → line.vs.glsl.d.ts} +0 -0
  157. /package/dist/layers/map/{vertex_lines.glsl.d.ts → line.vs.glsl.d.ts} +0 -0
  158. /package/dist/layers/northarrow/{northarrow-fragment.glsl.d.ts → northarrow.fs.glsl.d.ts} +0 -0
  159. /package/dist/layers/northarrow/{northarrow-vertex.glsl.d.ts → northarrow.vs.glsl.d.ts} +0 -0
  160. /package/dist/layers/piechart/{fragment.glsl.d.ts → piechart.fs.glsl.d.ts} +0 -0
  161. /package/dist/layers/piechart/{vertex.glsl.d.ts → piechart.vs.glsl.d.ts} +0 -0
  162. /package/dist/layers/points/{vertex.glsl.d.ts → point.vs.glsl.d.ts} +0 -0
  163. /package/dist/layers/polylines/{path-layer-fragment.glsl.d.ts → polyline.fs.glsl.d.ts} +0 -0
  164. /package/dist/layers/polylines/{path-layer-vertex.glsl.d.ts → polyline.vs.glsl.d.ts} +0 -0
  165. /package/dist/layers/triangle/{vertex_lines.glsl.d.ts → line.vs.glsl.d.ts} +0 -0
@@ -1,2 +0,0 @@
1
- declare const fragmentShader = "#version 300 es\n#define SHADER_NAME triangle-lines-fragment-shader\n\nprecision highp float;\n\nout vec4 fragColor;\n\nvoid main(void) {\n\n // Picking pass.\n if (picking.isActive > 0.5) {\n discard;\n return;\n }\n\n fragColor = vec4(0.0, 0.0, 0.0, 1.0);\n}\n";
2
- export default fragmentShader;
@@ -1 +0,0 @@
1
- {"version":3,"file":"fragment_lines.glsl.js","sourceRoot":"","sources":["../../../src/layers/triangle/fragment_lines.glsl.ts"],"names":[],"mappings":"AAAA,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;CAkBtB,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -1,2 +0,0 @@
1
- declare const vsShader = "#version 300 es\n#define SHADER_NAME triangle-vertex-shader\n\nprecision highp float;\n\n// Primitive attributes\nin vec3 positions;\nin float properties;\nin vec3 normals;\n\n// Outputs to fragment shader\nout vec3 cameraPosition;\nout vec3 normals_commonspace;\nout vec4 position_commonspace;\nout vec3 worldPos;\nout float property;\n\nconst vec3 pickingColor = vec3(1.0, 1.0, 0.0);\n\nvoid main(void) {\n geometry.pickingColor = pickingColor;\n\n cameraPosition = project.cameraPosition;\n\n vec3 position = positions;\n position[2] *= triangles.ZIncreasingDownwards ? -1.0 : 1.0;\n\n worldPos = position;\n\n normals_commonspace = normals;\n\n property = properties;\n\n position_commonspace = vec4(project_position(position), 0.0);\n gl_Position = project_common_position_to_clipspace(position_commonspace);\n\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n\n vec4 color = vec4(0.0);\n DECKGL_FILTER_COLOR(color, geometry);\n}\n";
2
- export default vsShader;
@@ -1 +0,0 @@
1
- {"version":3,"file":"vertex.glsl.js","sourceRoot":"","sources":["../../../src/layers/triangle/vertex.glsl.ts"],"names":[],"mappings":"AAAA,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0ChB,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"vertex_lines.glsl.js","sourceRoot":"","sources":["../../../src/layers/triangle/vertex_lines.glsl.ts"],"names":[],"mappings":"AAAA,eAAe;;;;;;;;;;;;;;;;;CAiBd,CAAC"}
@@ -1 +0,0 @@
1
- export declare const fsShader = "#version 300 es\n#define SHADER_NAME well-markers-fragment-shader\n\nprecision highp float;\n\nin vec4 color;\n\nout vec4 fragColor;\n\nvoid main(void) {\n fragColor = vec4(color.rgba * (1.0 / 255.0));\n DECKGL_FILTER_COLOR(fragColor, geometry);\n}\n";
@@ -1 +0,0 @@
1
- {"version":3,"file":"fragment.glsl.js","sourceRoot":"","sources":["../../../src/layers/well_markers/fragment.glsl.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG;;;;;;;;;;;;;CAavB,CAAC"}
@@ -1 +0,0 @@
1
- export declare const vsShader = "#version 300 es\n#define SHADER_NAME well-markers-vertex-shader\nprecision highp float;\n\nin vec3 positions;\nin vec3 instancePositions;\nin float instanceSizes;\nin float instanceAzimuths;\nin float instanceInclinations;\nin vec4 instanceColors;\nin vec4 instanceOutlineColors;\nin vec3 instancePickingColors;\n\nout vec4 color;\n\nvoid main(void) {\n vec3 position = instancePositions;\n position.z *= (wellMarkers.ZIncreasingDownwards? -1.0 : 1.0);\n\n geometry.worldPosition = position;\n geometry.pickingColor = instancePickingColors;\n\n color = wellMarkers.useOutlineColor ? instanceOutlineColors : instanceColors;\n\n float sizeInPixels = project_size_to_pixel(instanceSizes, wellMarkers.sizeUnits);\n float projectedSize = project_pixel_size(sizeInPixels);\n\n float sinA = sin (PI / 180.0 * instanceAzimuths);\n float cosA = cos (PI / 180.0 * instanceAzimuths);\n\n float sinI = sin (PI / 180.0 * instanceInclinations);\n float cosI = cos (PI / 180.0 * instanceInclinations);\n\n mat3 azimuthMatrix = mat3(vec3(cosA, sinA, 0.0), vec3(-sinA, cosA, 0.0), vec3(0.0, 0.0, 1.0));\n mat3 inclMatrix = mat3(vec3(1.0, 0.0, 0.0), vec3(0.0, cosI, sinI), vec3(0.0, -sinI, cosI));\n mat3 sizeMatrix = mat3(vec3(projectedSize, 0.0, 0.0), vec3(0.0, projectedSize, 0.0), vec3(0.0, 0.0, 1.0));\n vec3 rotatedPos = azimuthMatrix * inclMatrix * sizeMatrix *positions;\n\n vec4 position_commonspace = vec4(project_position(rotatedPos + position), 0.0);\n gl_Position = project_common_position_to_clipspace(position_commonspace);\n\n vec4 dummyColor = vec4(0.0);\n\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n DECKGL_FILTER_COLOR(dummyColor, geometry);\n}\n";
@@ -1 +0,0 @@
1
- {"version":3,"file":"vertex.glsl.js","sourceRoot":"","sources":["../../../src/layers/well_markers/vertex.glsl.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8CvB,CAAC"}
@@ -1,14 +0,0 @@
1
- export default function fitBounds({ width, height, bounds, minExtent, maxZoom, padding, offset, }: {
2
- width: any;
3
- height: any;
4
- bounds: any;
5
- minExtent?: number | undefined;
6
- maxZoom?: number | undefined;
7
- padding?: number | undefined;
8
- offset?: number[] | undefined;
9
- }): {
10
- x: number;
11
- y: number;
12
- zoom: number;
13
- };
14
- export const log2: (x: number) => number;
@@ -1 +0,0 @@
1
- {"version":3,"file":"fit-bounds.js","sourceRoot":"","sources":["../../src/utils/fit-bounds.js"],"names":[],"mappings":"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"}