@webviz/subsurface-viewer 0.0.1-alpha.1 → 0.0.2-alpha.2

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 (177) hide show
  1. package/dist/index.d.ts +0 -1
  2. package/dist/index.js +0 -1
  3. package/dist/index.js.map +1 -1
  4. package/dist/package.json +5 -2
  5. package/package.json +6 -3
  6. package/dist/DashSubsurfaceViewer.d.ts +0 -56
  7. package/dist/DashSubsurfaceViewer.js +0 -160
  8. package/dist/DashSubsurfaceViewer.js.map +0 -1
  9. package/src/DashSubsurfaceViewer.tsx +0 -270
  10. package/src/SubsurfaceViewer.stories.tsx +0 -449
  11. package/src/SubsurfaceViewer.test.tsx +0 -98
  12. package/src/SubsurfaceViewer.tsx +0 -356
  13. package/src/__snapshots__/SubsurfaceViewer.test.tsx.snap +0 -178
  14. package/src/assets/glTF/north_arrow/scene.bin +0 -0
  15. package/src/assets/glTF/north_arrow/scene.gltf +0 -315
  16. package/src/assets/glTF/north_arrow/textures/Arrow5_baseColor.png +0 -0
  17. package/src/assets/glTF/north_arrow/textures/Arrow5_metallicRoughness.png +0 -0
  18. package/src/assets/glTF/north_arrow/textures/Arrow5_normal.png +0 -0
  19. package/src/components/ColorLegend.test.tsx +0 -32
  20. package/src/components/ColorLegend.tsx +0 -80
  21. package/src/components/ColorLegends.test.tsx +0 -97
  22. package/src/components/ColorLegends.tsx +0 -46
  23. package/src/components/DistanceScale.stories.tsx +0 -28
  24. package/src/components/DistanceScale.test.tsx +0 -36
  25. package/src/components/DistanceScale.tsx +0 -84
  26. package/src/components/InfoCard.test.tsx +0 -110
  27. package/src/components/InfoCard.tsx +0 -263
  28. package/src/components/Map.test.tsx +0 -142
  29. package/src/components/Map.tsx +0 -1435
  30. package/src/components/StatusIndicator.test.tsx +0 -14
  31. package/src/components/StatusIndicator.tsx +0 -38
  32. package/src/components/ViewAnnotation.tsx +0 -16
  33. package/src/components/ViewFooter.test.tsx +0 -12
  34. package/src/components/ViewFooter.tsx +0 -30
  35. package/src/components/__snapshots__/ColorLegends.test.tsx.snap +0 -15
  36. package/src/components/__snapshots__/DistanceScale.test.tsx.snap +0 -33
  37. package/src/components/__snapshots__/InfoCard.test.tsx.snap +0 -561
  38. package/src/components/__snapshots__/Map.test.tsx.snap +0 -119
  39. package/src/components/__snapshots__/StatusIndicator.test.tsx.snap +0 -3
  40. package/src/components/__snapshots__/ViewFooter.test.tsx.snap +0 -7
  41. package/src/components/settings/DrawModeSelector.test.tsx +0 -45
  42. package/src/components/settings/DrawModeSelector.tsx +0 -58
  43. package/src/components/settings/DrawModeSelector_performance.test.tsx +0 -35
  44. package/src/components/settings/LayerProperty.test.tsx +0 -35
  45. package/src/components/settings/LayerProperty.tsx +0 -153
  46. package/src/components/settings/LayerProperty_performance.test.tsx +0 -39
  47. package/src/components/settings/LayerSettingsButton.test.tsx +0 -133
  48. package/src/components/settings/LayerSettingsButton.tsx +0 -95
  49. package/src/components/settings/LayersButton.test.tsx +0 -102
  50. package/src/components/settings/LayersButton.tsx +0 -97
  51. package/src/components/settings/NumericInput.test.tsx +0 -25
  52. package/src/components/settings/NumericInput.tsx +0 -67
  53. package/src/components/settings/Settings.tsx +0 -71
  54. package/src/components/settings/SliderInput.test.tsx +0 -28
  55. package/src/components/settings/SliderInput.tsx +0 -71
  56. package/src/components/settings/ToggleButton.test.tsx +0 -25
  57. package/src/components/settings/ToggleButton.tsx +0 -53
  58. package/src/components/settings/__snapshots__/DrawModeSelector.test.tsx.snap +0 -124
  59. package/src/components/settings/__snapshots__/LayerProperty.test.tsx.snap +0 -124
  60. package/src/components/settings/__snapshots__/LayerSettingsButton.test.tsx.snap +0 -36
  61. package/src/components/settings/__snapshots__/LayersButton.test.tsx.snap +0 -83
  62. package/src/components/settings/__snapshots__/NumericInput.test.tsx.snap +0 -123
  63. package/src/components/settings/__snapshots__/SliderInput.test.tsx.snap +0 -244
  64. package/src/components/settings/__snapshots__/ToggleButton.test.tsx.snap +0 -182
  65. package/src/custom.d.ts +0 -9
  66. package/src/index.ts +0 -5
  67. package/src/inputSchema/ColorTables.json +0 -51
  68. package/src/inputSchema/FaultPolygons.json +0 -80
  69. package/src/inputSchema/Grid.json +0 -39
  70. package/src/inputSchema/PieChart.json +0 -72
  71. package/src/inputSchema/WellLog.json +0 -126
  72. package/src/inputSchema/WellLogTemplate.json +0 -136
  73. package/src/inputSchema/WellLogs.json +0 -5
  74. package/src/inputSchema/Wells.json +0 -106
  75. package/src/inputSchema/schemaValidationUtil.tsx +0 -55
  76. package/src/inputSchema/validator.tsx +0 -72
  77. package/src/inputSchema/wellCompletions.json +0 -108
  78. package/src/layers/BoxSelectionLayer/boxSelectionLayer.stories.tsx +0 -172
  79. package/src/layers/BoxSelectionLayer/boxSelectionLayer.tsx +0 -136
  80. package/src/layers/axes/axes-fragment.glsl.ts +0 -15
  81. package/src/layers/axes/axesLayer.stories.tsx +0 -87
  82. package/src/layers/axes/axesLayer.ts +0 -692
  83. package/src/layers/axes/boxLayer.ts +0 -71
  84. package/src/layers/axes/grid-vertex.glsl.ts +0 -14
  85. package/src/layers/axes2d/axes2DLayer.stories.tsx +0 -150
  86. package/src/layers/axes2d/axes2DLayer.ts +0 -841
  87. package/src/layers/axes2d/font-atlas.png +0 -0
  88. package/src/layers/axes2d/label-fragment.glsl.js +0 -37
  89. package/src/layers/axes2d/label-vertex.glsl.js +0 -20
  90. package/src/layers/axes2d/line-fragment.glsl.js +0 -14
  91. package/src/layers/axes2d/line-vertex.glsl.js +0 -13
  92. package/src/layers/colormap/colormap.fs.glsl.ts +0 -42
  93. package/src/layers/colormap/colormapLayer.ts +0 -247
  94. package/src/layers/drawing/drawingLayer.tsx +0 -256
  95. package/src/layers/fault_polygons/faultPolygonsLayer.ts +0 -54
  96. package/src/layers/grid3d/fragment.fs.glsl.ts +0 -109
  97. package/src/layers/grid3d/fragment_lines.glsl.ts +0 -21
  98. package/src/layers/grid3d/grid3dLayer.stories.tsx +0 -172
  99. package/src/layers/grid3d/grid3dLayer.ts +0 -248
  100. package/src/layers/grid3d/privateLayer.ts +0 -292
  101. package/src/layers/grid3d/vertex.glsl.ts +0 -43
  102. package/src/layers/grid3d/vertex_lines.glsl.ts +0 -15
  103. package/src/layers/grid3d/webworker.ts +0 -173
  104. package/src/layers/hillshading2d/hillshading2d.fs.glsl.ts +0 -62
  105. package/src/layers/hillshading2d/hillshading2dLayer.ts +0 -172
  106. package/src/layers/index.ts +0 -35
  107. package/src/layers/intersection/intersectionView.stories.tsx +0 -294
  108. package/src/layers/intersection/unfoldedGeoJsonLayer.ts +0 -92
  109. package/src/layers/map/fragment.fs.glsl.ts +0 -127
  110. package/src/layers/map/fragment_lines.glsl.ts +0 -21
  111. package/src/layers/map/mapLayer.stories.tsx +0 -1369
  112. package/src/layers/map/mapLayer.ts +0 -470
  113. package/src/layers/map/privateMapLayer.ts +0 -317
  114. package/src/layers/map/vertex.glsl.ts +0 -45
  115. package/src/layers/map/vertex_lines.glsl.ts +0 -15
  116. package/src/layers/map/webworker.ts +0 -479
  117. package/src/layers/northarrow/northArrow.stories.tsx +0 -108
  118. package/src/layers/northarrow/northArrow3DLayer.ts +0 -204
  119. package/src/layers/northarrow/northarrow-fragment.glsl.js +0 -14
  120. package/src/layers/northarrow/northarrow-vertex.glsl.js +0 -13
  121. package/src/layers/piechart/fragment.glsl.js +0 -42
  122. package/src/layers/piechart/pieChartLayer.ts +0 -246
  123. package/src/layers/piechart/vertex.glsl.js +0 -42
  124. package/src/layers/points/pointsLayer.stories.tsx +0 -141
  125. package/src/layers/points/pointsLayer.ts +0 -143
  126. package/src/layers/polylines/polylinesLayer.stories.tsx +0 -144
  127. package/src/layers/polylines/polylinesLayer.ts +0 -263
  128. package/src/layers/selectable_geojson/selectableGeoJsonLayer.ts +0 -25
  129. package/src/layers/shader_modules/decoder.fs.glsl.ts +0 -41
  130. package/src/layers/shader_modules/decoder.ts +0 -46
  131. package/src/layers/shader_modules/index.ts +0 -1
  132. package/src/layers/terrain/map3DLayer.stories.tsx +0 -340
  133. package/src/layers/terrain/map3DLayer.ts +0 -556
  134. package/src/layers/terrain/terrainMapLayer.ts +0 -334
  135. package/src/layers/terrain/terrainmap.fs.glsl.ts +0 -134
  136. package/src/layers/triangle/fragment.fs.glsl.ts +0 -126
  137. package/src/layers/triangle/fragment_lines.glsl.ts +0 -21
  138. package/src/layers/triangle/privateTriangleLayer.ts +0 -203
  139. package/src/layers/triangle/test_data/surfacePoints.ts +0 -4344
  140. package/src/layers/triangle/test_data/surfaceTriangles.ts +0 -7392
  141. package/src/layers/triangle/triangleLayer.stories.tsx +0 -191
  142. package/src/layers/triangle/triangleLayer.ts +0 -273
  143. package/src/layers/triangle/vertex.glsl.ts +0 -35
  144. package/src/layers/triangle/vertex_lines.glsl.ts +0 -15
  145. package/src/layers/triangle/webworker.ts +0 -165
  146. package/src/layers/utils/glsl.d.ts +0 -4
  147. package/src/layers/utils/layerTools.ts +0 -182
  148. package/src/layers/utils/propertyMapTools.ts +0 -43
  149. package/src/layers/wells/utils/spline.ts +0 -318
  150. package/src/layers/wells/wellsLayer.stories.tsx +0 -625
  151. package/src/layers/wells/wellsLayer.ts +0 -1377
  152. package/src/redux/actions.ts +0 -8
  153. package/src/redux/reducer.ts +0 -43
  154. package/src/redux/store.ts +0 -15
  155. package/src/redux/types.ts +0 -114
  156. package/src/storybook/SubsurfaceViewer.stories.jsx +0 -644
  157. package/src/storybook/components/InfoCard.stories.jsx +0 -39
  158. package/src/storybook/components/colorLegends/ContinuousLegend.stories.jsx +0 -32
  159. package/src/storybook/components/colorLegends/DiscreteLegend.stories.jsx +0 -33
  160. package/src/storybook/components/colorLegends/IndividualScaleForMap.stories.jsx +0 -99
  161. package/src/storybook/components/colorLegends/SingleScaleForMap.stories.jsx +0 -120
  162. package/src/storybook/components/settings/LayerSettingsButton.stories.jsx +0 -34
  163. package/src/storybook/components/settings/NumericInput.stories.jsx +0 -17
  164. package/src/storybook/components/settings/ToggleButton.stories.jsx +0 -16
  165. package/src/storybook/schemaValidation/sampleData.js +0 -177
  166. package/src/storybook/schemaValidation/schemaValidation.stories.jsx +0 -91
  167. package/src/test/TestWrapper.tsx +0 -13
  168. package/src/utils/configuration.ts +0 -61
  169. package/src/utils/fit-bounds.js +0 -85
  170. package/src/utils/measurement.ts +0 -61
  171. package/src/utils/northArrow.ts +0 -4
  172. package/src/utils/specExtractor.ts +0 -36
  173. package/src/viewports/index.js +0 -1
  174. package/src/viewports/intersectionViewport.ts +0 -137
  175. package/src/views/index.js +0 -1
  176. package/src/views/intersectionView.ts +0 -38
  177. package/tsconfig.json +0 -7
@@ -1,449 +0,0 @@
1
- import React, { useCallback, useMemo, useState } from "react";
2
- import { ComponentStory, ComponentMeta } from "@storybook/react";
3
- import { format } from "d3-format";
4
- import { PickingInfo } from "@deck.gl/core/typed";
5
- import { ContinuousLegend } from "@emerson-eps/color-tables";
6
- import SubsurfaceViewer from "./SubsurfaceViewer";
7
- import {
8
- TooltipCallback,
9
- LayerPickInfo,
10
- WellsPickInfo,
11
- ExtendedLayerProps,
12
- PropertyDataType,
13
- FeatureCollection,
14
- ViewFooter,
15
- View,
16
- } from "../..";
17
- import { MapMouseEvent, ViewStateType, ViewsType } from "./components/Map";
18
- import { WellsLayer, MapLayer } from "./layers";
19
- import InfoCard from "./components/InfoCard";
20
-
21
- export default {
22
- component: SubsurfaceViewer,
23
- title: "SubsurfaceViewer",
24
- } as ComponentMeta<typeof SubsurfaceViewer>;
25
-
26
- const defaultWellsProps = {
27
- id: "volve-wells",
28
- data: "./volve_wells.json",
29
- };
30
-
31
- const defaultWellsLayer = new WellsLayer({
32
- ...defaultWellsProps,
33
- });
34
-
35
- const defaultProps = {
36
- id: "volve-wells",
37
- bounds: [432150, 6475800, 439400, 6481500] as [
38
- number,
39
- number,
40
- number,
41
- number
42
- ],
43
- layers: [defaultWellsLayer],
44
- };
45
-
46
- const wellsLayerWithlogs = new WellsLayer({
47
- ...defaultWellsProps,
48
- logData: "./volve_logs.json",
49
- logrunName: "BLOCKING",
50
- logName: "PORO",
51
- logColor: "Physics",
52
- });
53
-
54
- const Template: ComponentStory<typeof SubsurfaceViewer> = (args) => (
55
- <SubsurfaceViewer {...args} />
56
- );
57
-
58
- function mdTooltip(info: PickingInfo) {
59
- if (!info.picked) return null;
60
- const value = (info as WellsPickInfo)?.properties?.[0].value;
61
- if (!value) return null;
62
- const f = format(".2f");
63
- const niceValue = f(+value);
64
- return "MD: " + niceValue;
65
- }
66
-
67
- export const TooltipApi = Template.bind({});
68
- TooltipApi.args = {
69
- ...defaultProps,
70
- layers: [
71
- new WellsLayer({
72
- ...defaultWellsProps,
73
- lineStyle: { width: 7 },
74
- }),
75
- ],
76
- getTooltip: mdTooltip,
77
- bounds: [433000, 6476000, 439000, 6480000],
78
- };
79
-
80
- TooltipApi.parameters = {
81
- docs: {
82
- description: {
83
- story: "Example of overriding the default tooltip, showing measured depth (MD) instead of the default bahaviour, which is to show the well name.",
84
- },
85
- inlineStories: false,
86
- iframeHeight: 500,
87
- },
88
- };
89
-
90
- export const TooltipStyle = Template.bind({});
91
-
92
- const processPropInfo = (
93
- properties: PropertyDataType[] | undefined,
94
- filter: string[] | boolean
95
- ): string => {
96
- if (!properties) {
97
- return "";
98
- }
99
-
100
- let outputString = "";
101
-
102
- if (typeof filter == "boolean") {
103
- if (filter) {
104
- properties.forEach((ppobj) => {
105
- outputString += `\n${ppobj["name"]} : ${ppobj["value"]}`;
106
- });
107
- }
108
- } else {
109
- // filter is not boolean - thus it is a string array and we should check each property
110
- properties.forEach((ppobj) => {
111
- if (filter.includes(ppobj["name"] as string)) {
112
- outputString += `\n${ppobj["name"]} : ${ppobj["value"]}`;
113
- }
114
- });
115
- }
116
- return outputString;
117
- };
118
-
119
- const tooltipImpFunc: TooltipCallback = (
120
- info: PickingInfo
121
- ): Record<string, unknown> | string | null => {
122
- if (!info.picked || !info.layer) {
123
- return null;
124
- }
125
- const outputObject: Record<string, unknown> = {};
126
- const layerName = info.layer.constructor.name;
127
- let outputString = "";
128
- if (layerName === "Map3DLayer") {
129
- const layerProps = info.layer
130
- .props as unknown as ExtendedLayerProps<unknown>;
131
- const layerName = layerProps.name;
132
- const properties = (info as LayerPickInfo).properties;
133
- outputString += `Property: ${layerName}`;
134
- outputString += processPropInfo(properties, true);
135
- } else if (layerName === "WellsLayer") {
136
- const wellsPickInfo = info as WellsPickInfo;
137
- const wellsPickInfoObject = info.object as FeatureCollection;
138
- const wellProperties = wellsPickInfoObject.properties;
139
- const name = (wellProperties as { name: string }).name;
140
- outputString += `Well: ${name || ""}`;
141
- if (wellsPickInfo.featureType !== "points") {
142
- outputString += processPropInfo(wellsPickInfo.properties, true);
143
- }
144
- }
145
- outputObject["text"] = outputString;
146
- outputObject["style"] = { color: "yellow" };
147
- return outputObject;
148
- };
149
-
150
- TooltipStyle.args = {
151
- ...defaultProps,
152
- layers: [
153
- new WellsLayer({
154
- ...defaultWellsProps,
155
- lineStyle: { width: 7 },
156
- }),
157
- ],
158
- getTooltip: tooltipImpFunc,
159
- bounds: [433000, 6476000, 439000, 6480000],
160
- };
161
-
162
- TooltipStyle.parameters = {
163
- docs: {
164
- description: {
165
- story: "Example of overriding tooltip style.",
166
- },
167
- inlineStories: false,
168
- iframeHeight: 500,
169
- },
170
- };
171
-
172
- const CustomTemplate: ComponentStory<typeof SubsurfaceViewer> = (args) => {
173
- const [state, setState] = React.useState(args.cameraPosition);
174
-
175
- const getCameraPosition = React.useCallback((input: ViewStateType) => {
176
- setState(input);
177
- return input;
178
- }, []);
179
- return (
180
- <>
181
- <SubsurfaceViewer
182
- {...args}
183
- cameraPosition={args.cameraPosition}
184
- getCameraPosition={getCameraPosition}
185
- />
186
- <div
187
- style={{
188
- position: "absolute",
189
- marginLeft: 200,
190
- }}
191
- >
192
- <div>zoom: {state?.zoom}</div>
193
- <div>rotationX: {state?.rotationX}</div>
194
- <div>rotationOrbit: {state?.rotationOrbit}</div>
195
- <div>targetX: {state?.target[0]}</div>
196
- <div>targetY: {state?.target[1]}</div>
197
- </div>
198
- </>
199
- );
200
- };
201
-
202
- export const customizedCameraPosition = CustomTemplate.bind({});
203
-
204
- const cameraPosition: ViewStateType = {
205
- target: [437500, 6475000],
206
- zoom: -5.0,
207
- rotationX: 90,
208
- rotationOrbit: 0,
209
- };
210
-
211
- customizedCameraPosition.args = {
212
- ...defaultProps,
213
- cameraPosition,
214
- };
215
-
216
- const mapProps = {
217
- id: "kh_netmap",
218
- meshData: "hugin_depth_25_m.float32",
219
- frame: {
220
- origin: [432150, 6475800] as [number, number],
221
- count: [291, 229] as [number, number],
222
- increment: [25, 25] as [number, number],
223
- rotDeg: 0,
224
- },
225
- propertiesData: "kh_netmap_25_m.float32",
226
- contours: [0, 100] as [number, number],
227
- material: false,
228
- };
229
-
230
- const netmapLayer = new MapLayer({ ...mapProps });
231
- const huginLayer = new MapLayer({
232
- ...mapProps,
233
- id: "hugin",
234
- propertiesData: "hugin_depth_25_m.float32",
235
- });
236
-
237
- const MultiViewAnnotationTemplate: ComponentStory<typeof SubsurfaceViewer> = (
238
- args
239
- ) => (
240
- <SubsurfaceViewer {...args}>
241
- {
242
- <View id="view_1">
243
- <ContinuousLegend min={-3071} max={41048} />
244
- <ViewFooter>kH netmap</ViewFooter>
245
- </View>
246
- }
247
- {
248
- <View id="view_2">
249
- <ContinuousLegend min={2725} max={3396} />
250
- <ViewFooter>Hugin</ViewFooter>
251
- </View>
252
- }
253
- </SubsurfaceViewer>
254
- );
255
-
256
- export const MultiViewAnnotation = MultiViewAnnotationTemplate.bind({});
257
-
258
- MultiViewAnnotation.args = {
259
- id: "multi_view_annotation",
260
- layers: [netmapLayer, huginLayer],
261
- views: {
262
- layout: [1, 2],
263
- showLabel: true,
264
- viewports: [
265
- {
266
- id: "view_1",
267
- layerIds: ["hugin"],
268
- },
269
- {
270
- id: "view_2",
271
- layerIds: ["kh_netmap"],
272
- },
273
- ],
274
- },
275
- };
276
-
277
- export const ViewObjectInitializedAsEmpty = MultiViewAnnotationTemplate.bind(
278
- {}
279
- );
280
-
281
- ViewObjectInitializedAsEmpty.args = {
282
- id: "view_initialized_as_empty",
283
- layers: [netmapLayer, huginLayer],
284
- views: {} as ViewsType,
285
- };
286
-
287
- const wellsLayerNoDepthTest = new WellsLayer({
288
- ...defaultWellsProps,
289
- id: "wells-layer-no-depth-test",
290
- depthTest: false,
291
- });
292
-
293
- export const DepthTest: ComponentStory<typeof SubsurfaceViewer> = (args) => {
294
- const props = {
295
- ...args,
296
- layers: [netmapLayer, defaultWellsLayer, wellsLayerNoDepthTest],
297
- };
298
-
299
- return (
300
- <>
301
- <div>
302
- <SubsurfaceViewer {...props} />
303
- </div>
304
- <h4>
305
- View on the right depthTest for the wells layer property is set
306
- to false and wells layer is given last so that it will be
307
- painted on top. On the left parts of the wells are hidden
308
- beneath the surface.
309
- </h4>
310
- </>
311
- );
312
- };
313
-
314
- DepthTest.args = {
315
- id: "DepthTest",
316
- views: {
317
- layout: [1, 2],
318
- viewports: [
319
- {
320
- id: "view_1",
321
- layerIds: ["hugin", "wells-layer"],
322
- show3D: false,
323
- isSync: true,
324
- },
325
- {
326
- id: "view_2",
327
- layerIds: ["hugin", "wells-layer-no-depth-test"],
328
- show3D: false,
329
- isSync: true,
330
- },
331
- ],
332
- },
333
- };
334
-
335
- DepthTest.parameters = {
336
- docs: {
337
- description: {
338
- story: "Example using the depthTest property. If this is set to false it will disable depth testing for the layer",
339
- },
340
- },
341
- };
342
-
343
- function getReadout(event: MapMouseEvent) {
344
- const pickInfo = event.infos;
345
- return <InfoCard pickInfos={pickInfo} />;
346
- }
347
-
348
- const MouseEventStory = (args: { show3d: boolean }) => {
349
- const [event, setEvent] = useState<MapMouseEvent>({
350
- type: "click",
351
- infos: [],
352
- });
353
-
354
- const handleEvent = useCallback(
355
- (event: MapMouseEvent) => {
356
- setEvent(event);
357
- },
358
- [setEvent]
359
- );
360
-
361
- const useProps = useMemo(() => {
362
- const props = {
363
- ...defaultProps,
364
- layers: [wellsLayerWithlogs, netmapLayer],
365
- onMouseEvent: handleEvent,
366
- views: {
367
- layout: [1, 1] as [number, number],
368
- viewports: [{ id: "test", show3D: args.show3d }],
369
- },
370
- coords: { visible: false },
371
- };
372
- return props;
373
- }, [handleEvent, args.show3d]);
374
-
375
- return (
376
- <SubsurfaceViewer {...useProps}>
377
- <View id="test">
378
- {getReadout(event)}
379
- <ViewFooter>Mouse event example</ViewFooter>
380
- </View>
381
- </SubsurfaceViewer>
382
- );
383
- };
384
-
385
- export const MouseEvent: ComponentStory<typeof MouseEventStory> = (args) => {
386
- return <MouseEventStory {...args} />;
387
- };
388
-
389
- MouseEvent.args = {
390
- show3d: true,
391
- };
392
-
393
- const ViewStateSynchronizationStory = (args: {
394
- show3d: boolean;
395
- sync: string[];
396
- }) => {
397
- const subsurfaceViewerArgs = {
398
- id: "view_state_synchronization",
399
- layers: [netmapLayer, huginLayer, defaultWellsLayer],
400
- views: {
401
- layout: [2, 2] as [number, number],
402
- viewports: [
403
- {
404
- id: "view_1",
405
- layerIds: ["hugin"],
406
- show3D: args.show3d,
407
- isSync: args.sync.includes("view_1"),
408
- },
409
- {
410
- id: "view_2",
411
- layerIds: ["kh_netmap"],
412
- show3D: args.show3d,
413
- isSync: args.sync.includes("view_2"),
414
- },
415
- {
416
- id: "view_3",
417
- layerIds: ["volve-wells"],
418
- show3D: args.show3d,
419
- isSync: args.sync.includes("view_3"),
420
- },
421
- {
422
- id: "view_4",
423
- layerIds: ["volve-wells", "hugin"],
424
- show3D: args.show3d,
425
- isSync: args.sync.includes("view_4"),
426
- },
427
- ],
428
- },
429
- };
430
- return <SubsurfaceViewer {...subsurfaceViewerArgs} />;
431
- };
432
-
433
- export const ViewStateSynchronization: ComponentStory<
434
- typeof ViewStateSynchronizationStory
435
- > = (args) => {
436
- return <ViewStateSynchronizationStory {...args} />;
437
- };
438
-
439
- ViewStateSynchronization.args = {
440
- show3d: false,
441
- sync: ["view_1", "view_2", "view_3", "view_4"],
442
- };
443
-
444
- ViewStateSynchronization.argTypes = {
445
- sync: {
446
- options: ["view_1", "view_2", "view_3", "view_4"],
447
- control: "check",
448
- },
449
- };
@@ -1,98 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-var-requires */
2
- import "@testing-library/jest-dom/extend-expect";
3
- import { render } from "@testing-library/react";
4
- import "jest-styled-components";
5
- import "@testing-library/jest-dom";
6
- import React from "react";
7
- import SubsurfaceViewer from "./SubsurfaceViewer";
8
- import { colorTables } from "@emerson-eps/color-tables";
9
-
10
- import mapData from "../../../demo/example-data/deckgl-map.json";
11
- import { Unit } from "convert-units";
12
-
13
- const colorTablesData = colorTables;
14
-
15
- describe("Test Map component", () => {
16
- it("snapshot test", () => {
17
- const { container } = render(
18
- <SubsurfaceViewer
19
- id={mapData[0].id}
20
- resources={mapData[0].resources}
21
- layers={mapData[0].layers}
22
- bounds={mapData[0].bounds as [number, number, number, number]}
23
- coords={mapData[0].coords}
24
- scale={mapData[0].scale}
25
- coordinateUnit={mapData[0].coordinateUnit as Unit}
26
- legend={mapData[0].legend}
27
- editedData={mapData[0].editedData}
28
- views={{
29
- layout: [1, 1],
30
- viewports: [
31
- {
32
- id: "view_1",
33
- show3D: false,
34
- layerIds: [],
35
- },
36
- ],
37
- }}
38
- colorTables={[colorTablesData[0]]}
39
- />
40
- );
41
- expect(container.firstChild).toMatchSnapshot();
42
- });
43
- it("snapshot test with edited data", () => {
44
- const { container } = render(
45
- <SubsurfaceViewer
46
- id={mapData[0].id}
47
- resources={mapData[0].resources}
48
- layers={mapData[0].layers}
49
- bounds={mapData[0].bounds as [number, number, number, number]}
50
- coords={mapData[0].coords}
51
- scale={mapData[0].scale}
52
- coordinateUnit={mapData[0].coordinateUnit as Unit}
53
- legend={mapData[0].legend}
54
- editedData={{}}
55
- views={{
56
- layout: [1, 1],
57
- viewports: [
58
- {
59
- id: "view_1",
60
- show3D: false,
61
- layerIds: [],
62
- },
63
- ],
64
- }}
65
- colorTables={[colorTablesData[0]]}
66
- />
67
- );
68
- expect(container.firstChild).toMatchSnapshot();
69
- });
70
- it("snapshot test with invalid array length", () => {
71
- const { container } = render(
72
- <SubsurfaceViewer
73
- id={mapData[0].id}
74
- resources={mapData[0].resources}
75
- layers={mapData[0].layers}
76
- // @ts-expect-error: Ignore a compile error for "bounds" prop for the sake of running a scenario
77
- bounds={[0, 0, 0]}
78
- coords={mapData[0].coords}
79
- scale={mapData[0].scale}
80
- coordinateUnit={mapData[0].coordinateUnit as Unit}
81
- legend={mapData[0].legend}
82
- editedData={mapData[0].editedData}
83
- views={{
84
- layout: [1, 1],
85
- viewports: [
86
- {
87
- id: "view_1",
88
- show3D: false,
89
- layerIds: [],
90
- },
91
- ],
92
- }}
93
- colorTables={[colorTablesData[0]]}
94
- />
95
- );
96
- expect(container.firstChild).toMatchSnapshot();
97
- });
98
- });