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

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 (171) hide show
  1. package/dist/package.json +5 -2
  2. package/package.json +6 -3
  3. package/src/DashSubsurfaceViewer.tsx +0 -270
  4. package/src/SubsurfaceViewer.stories.tsx +0 -449
  5. package/src/SubsurfaceViewer.test.tsx +0 -98
  6. package/src/SubsurfaceViewer.tsx +0 -356
  7. package/src/__snapshots__/SubsurfaceViewer.test.tsx.snap +0 -178
  8. package/src/assets/glTF/north_arrow/scene.bin +0 -0
  9. package/src/assets/glTF/north_arrow/scene.gltf +0 -315
  10. package/src/assets/glTF/north_arrow/textures/Arrow5_baseColor.png +0 -0
  11. package/src/assets/glTF/north_arrow/textures/Arrow5_metallicRoughness.png +0 -0
  12. package/src/assets/glTF/north_arrow/textures/Arrow5_normal.png +0 -0
  13. package/src/components/ColorLegend.test.tsx +0 -32
  14. package/src/components/ColorLegend.tsx +0 -80
  15. package/src/components/ColorLegends.test.tsx +0 -97
  16. package/src/components/ColorLegends.tsx +0 -46
  17. package/src/components/DistanceScale.stories.tsx +0 -28
  18. package/src/components/DistanceScale.test.tsx +0 -36
  19. package/src/components/DistanceScale.tsx +0 -84
  20. package/src/components/InfoCard.test.tsx +0 -110
  21. package/src/components/InfoCard.tsx +0 -263
  22. package/src/components/Map.test.tsx +0 -142
  23. package/src/components/Map.tsx +0 -1435
  24. package/src/components/StatusIndicator.test.tsx +0 -14
  25. package/src/components/StatusIndicator.tsx +0 -38
  26. package/src/components/ViewAnnotation.tsx +0 -16
  27. package/src/components/ViewFooter.test.tsx +0 -12
  28. package/src/components/ViewFooter.tsx +0 -30
  29. package/src/components/__snapshots__/ColorLegends.test.tsx.snap +0 -15
  30. package/src/components/__snapshots__/DistanceScale.test.tsx.snap +0 -33
  31. package/src/components/__snapshots__/InfoCard.test.tsx.snap +0 -561
  32. package/src/components/__snapshots__/Map.test.tsx.snap +0 -119
  33. package/src/components/__snapshots__/StatusIndicator.test.tsx.snap +0 -3
  34. package/src/components/__snapshots__/ViewFooter.test.tsx.snap +0 -7
  35. package/src/components/settings/DrawModeSelector.test.tsx +0 -45
  36. package/src/components/settings/DrawModeSelector.tsx +0 -58
  37. package/src/components/settings/DrawModeSelector_performance.test.tsx +0 -35
  38. package/src/components/settings/LayerProperty.test.tsx +0 -35
  39. package/src/components/settings/LayerProperty.tsx +0 -153
  40. package/src/components/settings/LayerProperty_performance.test.tsx +0 -39
  41. package/src/components/settings/LayerSettingsButton.test.tsx +0 -133
  42. package/src/components/settings/LayerSettingsButton.tsx +0 -95
  43. package/src/components/settings/LayersButton.test.tsx +0 -102
  44. package/src/components/settings/LayersButton.tsx +0 -97
  45. package/src/components/settings/NumericInput.test.tsx +0 -25
  46. package/src/components/settings/NumericInput.tsx +0 -67
  47. package/src/components/settings/Settings.tsx +0 -71
  48. package/src/components/settings/SliderInput.test.tsx +0 -28
  49. package/src/components/settings/SliderInput.tsx +0 -71
  50. package/src/components/settings/ToggleButton.test.tsx +0 -25
  51. package/src/components/settings/ToggleButton.tsx +0 -53
  52. package/src/components/settings/__snapshots__/DrawModeSelector.test.tsx.snap +0 -124
  53. package/src/components/settings/__snapshots__/LayerProperty.test.tsx.snap +0 -124
  54. package/src/components/settings/__snapshots__/LayerSettingsButton.test.tsx.snap +0 -36
  55. package/src/components/settings/__snapshots__/LayersButton.test.tsx.snap +0 -83
  56. package/src/components/settings/__snapshots__/NumericInput.test.tsx.snap +0 -123
  57. package/src/components/settings/__snapshots__/SliderInput.test.tsx.snap +0 -244
  58. package/src/components/settings/__snapshots__/ToggleButton.test.tsx.snap +0 -182
  59. package/src/custom.d.ts +0 -9
  60. package/src/index.ts +0 -5
  61. package/src/inputSchema/ColorTables.json +0 -51
  62. package/src/inputSchema/FaultPolygons.json +0 -80
  63. package/src/inputSchema/Grid.json +0 -39
  64. package/src/inputSchema/PieChart.json +0 -72
  65. package/src/inputSchema/WellLog.json +0 -126
  66. package/src/inputSchema/WellLogTemplate.json +0 -136
  67. package/src/inputSchema/WellLogs.json +0 -5
  68. package/src/inputSchema/Wells.json +0 -106
  69. package/src/inputSchema/schemaValidationUtil.tsx +0 -55
  70. package/src/inputSchema/validator.tsx +0 -72
  71. package/src/inputSchema/wellCompletions.json +0 -108
  72. package/src/layers/BoxSelectionLayer/boxSelectionLayer.stories.tsx +0 -172
  73. package/src/layers/BoxSelectionLayer/boxSelectionLayer.tsx +0 -136
  74. package/src/layers/axes/axes-fragment.glsl.ts +0 -15
  75. package/src/layers/axes/axesLayer.stories.tsx +0 -87
  76. package/src/layers/axes/axesLayer.ts +0 -692
  77. package/src/layers/axes/boxLayer.ts +0 -71
  78. package/src/layers/axes/grid-vertex.glsl.ts +0 -14
  79. package/src/layers/axes2d/axes2DLayer.stories.tsx +0 -150
  80. package/src/layers/axes2d/axes2DLayer.ts +0 -841
  81. package/src/layers/axes2d/font-atlas.png +0 -0
  82. package/src/layers/axes2d/label-fragment.glsl.js +0 -37
  83. package/src/layers/axes2d/label-vertex.glsl.js +0 -20
  84. package/src/layers/axes2d/line-fragment.glsl.js +0 -14
  85. package/src/layers/axes2d/line-vertex.glsl.js +0 -13
  86. package/src/layers/colormap/colormap.fs.glsl.ts +0 -42
  87. package/src/layers/colormap/colormapLayer.ts +0 -247
  88. package/src/layers/drawing/drawingLayer.tsx +0 -256
  89. package/src/layers/fault_polygons/faultPolygonsLayer.ts +0 -54
  90. package/src/layers/grid3d/fragment.fs.glsl.ts +0 -109
  91. package/src/layers/grid3d/fragment_lines.glsl.ts +0 -21
  92. package/src/layers/grid3d/grid3dLayer.stories.tsx +0 -172
  93. package/src/layers/grid3d/grid3dLayer.ts +0 -248
  94. package/src/layers/grid3d/privateLayer.ts +0 -292
  95. package/src/layers/grid3d/vertex.glsl.ts +0 -43
  96. package/src/layers/grid3d/vertex_lines.glsl.ts +0 -15
  97. package/src/layers/grid3d/webworker.ts +0 -173
  98. package/src/layers/hillshading2d/hillshading2d.fs.glsl.ts +0 -62
  99. package/src/layers/hillshading2d/hillshading2dLayer.ts +0 -172
  100. package/src/layers/index.ts +0 -35
  101. package/src/layers/intersection/intersectionView.stories.tsx +0 -294
  102. package/src/layers/intersection/unfoldedGeoJsonLayer.ts +0 -92
  103. package/src/layers/map/fragment.fs.glsl.ts +0 -127
  104. package/src/layers/map/fragment_lines.glsl.ts +0 -21
  105. package/src/layers/map/mapLayer.stories.tsx +0 -1369
  106. package/src/layers/map/mapLayer.ts +0 -470
  107. package/src/layers/map/privateMapLayer.ts +0 -317
  108. package/src/layers/map/vertex.glsl.ts +0 -45
  109. package/src/layers/map/vertex_lines.glsl.ts +0 -15
  110. package/src/layers/map/webworker.ts +0 -479
  111. package/src/layers/northarrow/northArrow.stories.tsx +0 -108
  112. package/src/layers/northarrow/northArrow3DLayer.ts +0 -204
  113. package/src/layers/northarrow/northarrow-fragment.glsl.js +0 -14
  114. package/src/layers/northarrow/northarrow-vertex.glsl.js +0 -13
  115. package/src/layers/piechart/fragment.glsl.js +0 -42
  116. package/src/layers/piechart/pieChartLayer.ts +0 -246
  117. package/src/layers/piechart/vertex.glsl.js +0 -42
  118. package/src/layers/points/pointsLayer.stories.tsx +0 -141
  119. package/src/layers/points/pointsLayer.ts +0 -143
  120. package/src/layers/polylines/polylinesLayer.stories.tsx +0 -144
  121. package/src/layers/polylines/polylinesLayer.ts +0 -263
  122. package/src/layers/selectable_geojson/selectableGeoJsonLayer.ts +0 -25
  123. package/src/layers/shader_modules/decoder.fs.glsl.ts +0 -41
  124. package/src/layers/shader_modules/decoder.ts +0 -46
  125. package/src/layers/shader_modules/index.ts +0 -1
  126. package/src/layers/terrain/map3DLayer.stories.tsx +0 -340
  127. package/src/layers/terrain/map3DLayer.ts +0 -556
  128. package/src/layers/terrain/terrainMapLayer.ts +0 -334
  129. package/src/layers/terrain/terrainmap.fs.glsl.ts +0 -134
  130. package/src/layers/triangle/fragment.fs.glsl.ts +0 -126
  131. package/src/layers/triangle/fragment_lines.glsl.ts +0 -21
  132. package/src/layers/triangle/privateTriangleLayer.ts +0 -203
  133. package/src/layers/triangle/test_data/surfacePoints.ts +0 -4344
  134. package/src/layers/triangle/test_data/surfaceTriangles.ts +0 -7392
  135. package/src/layers/triangle/triangleLayer.stories.tsx +0 -191
  136. package/src/layers/triangle/triangleLayer.ts +0 -273
  137. package/src/layers/triangle/vertex.glsl.ts +0 -35
  138. package/src/layers/triangle/vertex_lines.glsl.ts +0 -15
  139. package/src/layers/triangle/webworker.ts +0 -165
  140. package/src/layers/utils/glsl.d.ts +0 -4
  141. package/src/layers/utils/layerTools.ts +0 -182
  142. package/src/layers/utils/propertyMapTools.ts +0 -43
  143. package/src/layers/wells/utils/spline.ts +0 -318
  144. package/src/layers/wells/wellsLayer.stories.tsx +0 -625
  145. package/src/layers/wells/wellsLayer.ts +0 -1377
  146. package/src/redux/actions.ts +0 -8
  147. package/src/redux/reducer.ts +0 -43
  148. package/src/redux/store.ts +0 -15
  149. package/src/redux/types.ts +0 -114
  150. package/src/storybook/SubsurfaceViewer.stories.jsx +0 -644
  151. package/src/storybook/components/InfoCard.stories.jsx +0 -39
  152. package/src/storybook/components/colorLegends/ContinuousLegend.stories.jsx +0 -32
  153. package/src/storybook/components/colorLegends/DiscreteLegend.stories.jsx +0 -33
  154. package/src/storybook/components/colorLegends/IndividualScaleForMap.stories.jsx +0 -99
  155. package/src/storybook/components/colorLegends/SingleScaleForMap.stories.jsx +0 -120
  156. package/src/storybook/components/settings/LayerSettingsButton.stories.jsx +0 -34
  157. package/src/storybook/components/settings/NumericInput.stories.jsx +0 -17
  158. package/src/storybook/components/settings/ToggleButton.stories.jsx +0 -16
  159. package/src/storybook/schemaValidation/sampleData.js +0 -177
  160. package/src/storybook/schemaValidation/schemaValidation.stories.jsx +0 -91
  161. package/src/test/TestWrapper.tsx +0 -13
  162. package/src/utils/configuration.ts +0 -61
  163. package/src/utils/fit-bounds.js +0 -85
  164. package/src/utils/measurement.ts +0 -61
  165. package/src/utils/northArrow.ts +0 -4
  166. package/src/utils/specExtractor.ts +0 -36
  167. package/src/viewports/index.js +0 -1
  168. package/src/viewports/intersectionViewport.ts +0 -137
  169. package/src/views/index.js +0 -1
  170. package/src/views/intersectionView.ts +0 -38
  171. 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
- });