@webviz/subsurface-viewer 1.17.8 → 1.18.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 (143) hide show
  1. package/dist/DashSubsurfaceViewer.js +2 -13
  2. package/dist/DashSubsurfaceViewer.js.map +1 -1
  3. package/dist/SubsurfaceViewer.js +10 -16
  4. package/dist/SubsurfaceViewer.js.map +1 -1
  5. package/dist/components/ColorLegend.js +3 -4
  6. package/dist/components/ColorLegend.js.map +1 -1
  7. package/dist/components/ColorLegends.js +6 -1
  8. package/dist/components/ColorLegends.js.map +1 -1
  9. package/dist/components/DistanceScale.js +5 -2
  10. package/dist/components/DistanceScale.js.map +1 -1
  11. package/dist/components/InfoCard.js +9 -13
  12. package/dist/components/InfoCard.js.map +1 -1
  13. package/dist/components/Map.d.ts +15 -1
  14. package/dist/components/Map.js +182 -151
  15. package/dist/components/Map.js.map +1 -1
  16. package/dist/components/settings/DrawModeSelector.js +2 -2
  17. package/dist/components/settings/DrawModeSelector.js.map +1 -1
  18. package/dist/components/settings/Settings.js +1 -1
  19. package/dist/components/settings/Settings.js.map +1 -1
  20. package/dist/extensions/side-projection-extension.js +2 -2
  21. package/dist/extensions/side-projection-extension.js.map +1 -1
  22. package/dist/hooks/useMultiViewCursorTracking/useMultiViewCursorTracking.js +11 -6
  23. package/dist/hooks/useMultiViewCursorTracking/useMultiViewCursorTracking.js.map +1 -1
  24. package/dist/hooks/useMultiViewPicking/MultiViewPickingInfoAssembler.js +83 -97
  25. package/dist/hooks/useMultiViewPicking/MultiViewPickingInfoAssembler.js.map +1 -1
  26. package/dist/hooks/useMultiViewPicking/useMultiViewPicking.js +4 -1
  27. package/dist/hooks/useMultiViewPicking/useMultiViewPicking.js.map +1 -1
  28. package/dist/layers/BoxSelectionLayer/boxSelectionLayer.js +2 -3
  29. package/dist/layers/BoxSelectionLayer/boxSelectionLayer.js.map +1 -1
  30. package/dist/layers/axes/axesLayer.js +11 -4
  31. package/dist/layers/axes/axesLayer.js.map +1 -1
  32. package/dist/layers/axes/boxLayer.js +17 -10
  33. package/dist/layers/axes/boxLayer.js.map +1 -1
  34. package/dist/layers/axes2d/axes2DLayer.js +56 -32
  35. package/dist/layers/axes2d/axes2DLayer.js.map +1 -1
  36. package/dist/layers/colormap/colormapLayer.js +33 -34
  37. package/dist/layers/colormap/colormapLayer.js.map +1 -1
  38. package/dist/layers/crosshair/crosshairLayer.js +2 -2
  39. package/dist/layers/crosshair/crosshairLayer.js.map +1 -1
  40. package/dist/layers/drawing/drawingLayer.js +6 -4
  41. package/dist/layers/drawing/drawingLayer.js.map +1 -1
  42. package/dist/layers/fault_polygons/faultPolygonsLayer.js +5 -6
  43. package/dist/layers/fault_polygons/faultPolygonsLayer.js.map +1 -1
  44. package/dist/layers/gpglLayers/gpglValueMappedSurfaceLayer.js +194 -168
  45. package/dist/layers/gpglLayers/gpglValueMappedSurfaceLayer.js.map +1 -1
  46. package/dist/layers/grid3d/grid3dLayer.js +46 -53
  47. package/dist/layers/grid3d/grid3dLayer.js.map +1 -1
  48. package/dist/layers/grid3d/privateGrid3dLayer.js +73 -48
  49. package/dist/layers/grid3d/privateGrid3dLayer.js.map +1 -1
  50. package/dist/layers/grid3d/webworker.js +17 -6
  51. package/dist/layers/grid3d/webworker.js.map +1 -1
  52. package/dist/layers/hillshading2d/hillshading2dLayer.js +15 -9
  53. package/dist/layers/hillshading2d/hillshading2dLayer.js.map +1 -1
  54. package/dist/layers/index.d.ts +2 -0
  55. package/dist/layers/index.js +1 -0
  56. package/dist/layers/index.js.map +1 -1
  57. package/dist/layers/map/mapLayer.js +49 -50
  58. package/dist/layers/map/mapLayer.js.map +1 -1
  59. package/dist/layers/map/privateMapLayer.js +52 -28
  60. package/dist/layers/map/privateMapLayer.js.map +1 -1
  61. package/dist/layers/map/webworker.js +1 -1
  62. package/dist/layers/map/webworker.js.map +1 -1
  63. package/dist/layers/northarrow/northArrow3DLayer.js +17 -10
  64. package/dist/layers/northarrow/northArrow3DLayer.js.map +1 -1
  65. package/dist/layers/piechart/pieChartLayer.js +26 -21
  66. package/dist/layers/piechart/pieChartLayer.js.map +1 -1
  67. package/dist/layers/points/pointsLayer.js +5 -3
  68. package/dist/layers/points/pointsLayer.js.map +1 -1
  69. package/dist/layers/points/privatePointsLayer.js +1 -2
  70. package/dist/layers/points/privatePointsLayer.js.map +1 -1
  71. package/dist/layers/polyline_group/polylineGroupLayer.d.ts +239 -0
  72. package/dist/layers/polyline_group/polylineGroupLayer.js +674 -0
  73. package/dist/layers/polyline_group/polylineGroupLayer.js.map +1 -0
  74. package/dist/layers/polylines/polylinesLayer.d.ts +4 -0
  75. package/dist/layers/polylines/polylinesLayer.js +9 -3
  76. package/dist/layers/polylines/polylinesLayer.js.map +1 -1
  77. package/dist/layers/polylines/privatePolylinesLayer.js +1 -2
  78. package/dist/layers/polylines/privatePolylinesLayer.js.map +1 -1
  79. package/dist/layers/seismic/seismicLayer.js +28 -23
  80. package/dist/layers/seismic/seismicLayer.js.map +1 -1
  81. package/dist/layers/shader_modules/phong-lighting/phong-material.js +2 -2
  82. package/dist/layers/shader_modules/phong-lighting/phong-material.js.map +1 -1
  83. package/dist/layers/shader_modules/test-precision/precisionForTests-shaders-glsl.js +4 -3
  84. package/dist/layers/shader_modules/test-precision/precisionForTests-shaders-glsl.js.map +1 -1
  85. package/dist/layers/triangle/privateTriangleLayer.js +66 -40
  86. package/dist/layers/triangle/privateTriangleLayer.js.map +1 -1
  87. package/dist/layers/triangle/triangleLayer.js +66 -66
  88. package/dist/layers/triangle/triangleLayer.js.map +1 -1
  89. package/dist/layers/utils/colormapTools.js +16 -3
  90. package/dist/layers/utils/colormapTools.js.map +1 -1
  91. package/dist/layers/utils/layerTools.js +5 -7
  92. package/dist/layers/utils/layerTools.js.map +1 -1
  93. package/dist/layers/well_markers/wellMarkersLayer.js +41 -16
  94. package/dist/layers/well_markers/wellMarkersLayer.js.map +1 -1
  95. package/dist/layers/wells/layers/dashedSectionsPathLayer.js +60 -31
  96. package/dist/layers/wells/layers/dashedSectionsPathLayer.js.map +1 -1
  97. package/dist/layers/wells/layers/flatWellMarkersLayer.js +79 -33
  98. package/dist/layers/wells/layers/flatWellMarkersLayer.js.map +1 -1
  99. package/dist/layers/wells/layers/logCurveLayer.js +80 -69
  100. package/dist/layers/wells/layers/logCurveLayer.js.map +1 -1
  101. package/dist/layers/wells/layers/mergedTextLayer.js +18 -12
  102. package/dist/layers/wells/layers/mergedTextLayer.js.map +1 -1
  103. package/dist/layers/wells/layers/wellLabelLayer.js +20 -13
  104. package/dist/layers/wells/layers/wellLabelLayer.js.map +1 -1
  105. package/dist/layers/wells/utils/abscissaTransform.js +10 -4
  106. package/dist/layers/wells/utils/abscissaTransform.js.map +1 -1
  107. package/dist/layers/wells/utils/features.js +2 -4
  108. package/dist/layers/wells/utils/features.js.map +1 -1
  109. package/dist/layers/wells/utils/log.js +11 -11
  110. package/dist/layers/wells/utils/log.js.map +1 -1
  111. package/dist/layers/wells/utils/readout.js +2 -4
  112. package/dist/layers/wells/utils/readout.js.map +1 -1
  113. package/dist/layers/wells/utils/spline.js +19 -25
  114. package/dist/layers/wells/utils/spline.js.map +1 -1
  115. package/dist/layers/wells/utils/trajectory.js +28 -22
  116. package/dist/layers/wells/utils/trajectory.js.map +1 -1
  117. package/dist/layers/wells/utils/wells.js +3 -4
  118. package/dist/layers/wells/utils/wells.js.map +1 -1
  119. package/dist/layers/wells/wellsLayer.js +232 -138
  120. package/dist/layers/wells/wellsLayer.js.map +1 -1
  121. package/dist/utils/BoundingBox2D.js +2 -2
  122. package/dist/utils/BoundingBox2D.js.map +1 -1
  123. package/dist/utils/BoundingBox3D.js +2 -2
  124. package/dist/utils/BoundingBox3D.js.map +1 -1
  125. package/dist/utils/Color.js +2 -3
  126. package/dist/utils/Color.js.map +1 -1
  127. package/dist/utils/camera.js +3 -5
  128. package/dist/utils/camera.js.map +1 -1
  129. package/dist/utils/configuration.d.ts +5 -5
  130. package/dist/utils/configuration.js +7 -2
  131. package/dist/utils/configuration.js.map +1 -1
  132. package/dist/utils/event.js +7 -7
  133. package/dist/utils/event.js.map +1 -1
  134. package/dist/utils/serialize.js +52 -68
  135. package/dist/utils/serialize.js.map +1 -1
  136. package/dist/utils/specExtractor.js +1 -1
  137. package/dist/utils/specExtractor.js.map +1 -1
  138. package/dist/views/sectionView.js +1 -1
  139. package/dist/views/sectionView.js.map +1 -1
  140. package/dist/views/viewport.d.ts +1 -0
  141. package/dist/views/viewport.js +10 -4
  142. package/dist/views/viewport.js.map +1 -1
  143. package/package.json +15 -16
@@ -34,7 +34,6 @@ const DEFAULT_VIEWS = {
34
34
  viewports: [{ id: "main-view", viewType: OrthographicView }],
35
35
  };
36
36
  function parseLights(lights) {
37
- var _a, _b, _c, _d;
38
37
  if (!lights) {
39
38
  return undefined;
40
39
  }
@@ -43,22 +42,26 @@ function parseLights(lights) {
43
42
  if (lights.ambientLight) {
44
43
  lightsObj["AmbientLight"] = new AmbientLight({
45
44
  intensity: lights.ambientLight.intensity,
46
- color: (_a = lights.ambientLight.color) !== null && _a !== void 0 ? _a : [255, 255, 255],
45
+ color: lights.ambientLight.color ?? [255, 255, 255],
47
46
  });
48
47
  }
49
48
  if (lights.headLight) {
50
49
  lightsObj["HeadLight"] = new CameraLight({
51
50
  intensity: lights.headLight.intensity,
52
- color: (_b = lights.headLight.color) !== null && _b !== void 0 ? _b : [255, 255, 255],
51
+ color: lights.headLight.color ?? [255, 255, 255],
53
52
  });
54
53
  }
55
- (_c = lights.pointLights) === null || _c === void 0 ? void 0 : _c.forEach((light, index) => {
56
- var _a;
57
- lightsObj[`PointLight_${index}`] = new PointLight(Object.assign(Object.assign({}, light), { color: (_a = light.color) !== null && _a !== void 0 ? _a : [255, 255, 255] }));
54
+ lights.pointLights?.forEach((light, index) => {
55
+ lightsObj[`PointLight_${index}`] = new PointLight({
56
+ ...light,
57
+ color: light.color ?? [255, 255, 255],
58
+ });
58
59
  });
59
- (_d = lights.directionalLights) === null || _d === void 0 ? void 0 : _d.forEach((light, index) => {
60
- var _a;
61
- lightsObj[`DirectionalLight_${index}`] = new DirectionalLight(Object.assign(Object.assign({}, light), { color: (_a = light.color) !== null && _a !== void 0 ? _a : [255, 255, 255] }));
60
+ lights.directionalLights?.forEach((light, index) => {
61
+ lightsObj[`DirectionalLight_${index}`] = new DirectionalLight({
62
+ ...light,
63
+ color: light.color ?? [255, 255, 255],
64
+ });
62
65
  });
63
66
  const lightingEffect = new LightingEffect(lightsObj);
64
67
  effects.push(lightingEffect);
@@ -84,31 +87,31 @@ function show3D(viewPort) {
84
87
  return viewPort.viewType === OrbitView;
85
88
  }
86
89
  function defaultTooltip(info) {
87
- var _a, _b, _c, _d, _e, _f, _g;
88
- if ((((_a = info.layer) === null || _a === void 0 ? void 0 : _a.constructor) === WellLabelLayer ||
89
- ((_b = info.sourceLayer) === null || _b === void 0 ? void 0 : _b.constructor) === WellLabelLayer) &&
90
- ((_c = info.object) === null || _c === void 0 ? void 0 : _c.wellLabels)) {
91
- return (_d = info.object.wellLabels) === null || _d === void 0 ? void 0 : _d.join("\n");
90
+ if ((info.layer?.constructor === WellLabelLayer ||
91
+ info.sourceLayer?.constructor === WellLabelLayer) &&
92
+ info.object?.wellLabels) {
93
+ return info.object.wellLabels?.join("\n");
92
94
  }
93
- else if (info === null || info === void 0 ? void 0 : info.logName) {
94
- return info === null || info === void 0 ? void 0 : info.logName;
95
+ else if (info?.logName) {
96
+ return info?.logName;
95
97
  }
96
- else if (((_e = info.layer) === null || _e === void 0 ? void 0 : _e.id) === "drawing-layer") {
97
- return (_f = info.propertyValue) === null || _f === void 0 ? void 0 : _f.toFixed(2);
98
+ else if (info.layer?.id === "drawing-layer") {
99
+ return info.propertyValue?.toFixed(2);
98
100
  }
99
101
  const feat = info.object;
100
- return (_g = feat === null || feat === void 0 ? void 0 : feat.properties) === null || _g === void 0 ? void 0 : _g["name"];
102
+ return feat?.properties?.["name"];
101
103
  }
102
104
  function makeExtendedPickingInfo(info) {
103
105
  const scaledCoordinate = info.coordinate
104
106
  ? [...info.coordinate]
105
107
  : undefined;
106
- const extendedPickInfo = Object.assign(Object.assign({}, info), { scaledCoordinate });
108
+ const extendedPickInfo = {
109
+ ...info,
110
+ scaledCoordinate,
111
+ };
107
112
  return extendedPickInfo;
108
113
  }
109
- const Map = (_a) => {
110
- var _b, _c, _d, _e, _f, _g, _h;
111
- var { id, layers, bounds, cameraPosition, triggerHome, views = DEFAULT_VIEWS, scale = { visible: true, cssStyle: { top: 10, left: 10 } }, coords, showReadout = (_b = coords === null || coords === void 0 ? void 0 : coords.visible) !== null && _b !== void 0 ? _b : true, pickingDepth = (_c = coords === null || coords === void 0 ? void 0 : coords.pickDepth) !== null && _c !== void 0 ? _c : 2, coordinateUnit = "m", colorTables = defaultColorTables, setEditedData, checkDatafileSchema = false, onMouseEvent, selection, children, getTooltip = defaultTooltip, getCameraPosition, onRenderingProgress, onDragStart, onDragEnd, onDrag, getCursor, lights, triggerResetMultipleWells, verticalScale, innerRef, pickingRadius, deckGlRef, } = _a;
114
+ const Map = ({ id, layers, bounds, cameraPosition, triggerHome, views = DEFAULT_VIEWS, scale = { visible: true, cssStyle: { top: 10, left: 10 } }, coords, showReadout = coords?.visible ?? true, pickingDepth = coords?.pickDepth ?? 2, coordinateUnit = "m", colorTables = defaultColorTables, setEditedData, checkDatafileSchema = false, onMouseEvent, selection, children, getTooltip = defaultTooltip, getCameraPosition, onRenderingProgress, onDragStart, onDragEnd, onDrag, getCursor, lights, triggerResetMultipleWells, verticalScale, innerRef, pickingRadius, deckGlRef, }) => {
112
115
  // From react doc, ref should not be read nor modified during rendering.
113
116
  const deckRef = React.useRef(null);
114
117
  React.useImperativeHandle(deckGlRef, () => deckRef.current);
@@ -120,8 +123,8 @@ const Map = (_a) => {
120
123
  // exclude {0, 0} size (when rendered hidden pages)
121
124
  if (size.width > 0 && size.height > 0) {
122
125
  setDeckSize((prevSize) => {
123
- if ((prevSize === null || prevSize === void 0 ? void 0 : prevSize.width) !== size.width ||
124
- (prevSize === null || prevSize === void 0 ? void 0 : prevSize.height) !== size.height) {
126
+ if (prevSize?.width !== size.width ||
127
+ prevSize?.height !== size.height) {
125
128
  return size;
126
129
  }
127
130
  return prevSize;
@@ -131,19 +134,18 @@ const Map = (_a) => {
131
134
  // 3d bounding box computed from the layers
132
135
  const [dataBoundingBox3d, dispatchBoundingBox] = React.useReducer(mapBoundingBoxReducer, undefined);
133
136
  // Get vertical scaling factor defined in viewports.
134
- const viewportVerticalScale = useVerticalScale(views === null || views === void 0 ? void 0 : views.viewports);
137
+ const viewportVerticalScale = useVerticalScale(views?.viewports);
135
138
  // Used for scaling in z direction using arrow keys.
136
139
  const { factor: zReScale, elementRef: zScaleRef } = useScaleFactor();
137
140
  const { shiftHeld, divRef: shiftHeldRef } = useShiftHeld();
138
141
  // Prevent using internal hook for manipulating vertical scale when the vertical
139
142
  // scale is explicitly defined.
140
- const overrideVerticalScaling = verticalScale !== null && verticalScale !== void 0 ? verticalScale : viewportVerticalScale;
143
+ const overrideVerticalScaling = verticalScale ?? viewportVerticalScale;
141
144
  const divRef = mergeRefs(overrideVerticalScaling ? undefined : zScaleRef, shiftHeldRef, innerRef);
142
- const zScale = (_d = verticalScale !== null && verticalScale !== void 0 ? verticalScale : viewportVerticalScale) !== null && _d !== void 0 ? _d : zReScale;
145
+ const zScale = verticalScale ?? viewportVerticalScale ?? zReScale;
143
146
  // compute the viewport margins
144
147
  const viewPortMargins = React.useMemo(() => {
145
- var _a, _b;
146
- if (!(layers === null || layers === void 0 ? void 0 : layers.length)) {
148
+ if (!layers?.length) {
147
149
  return {
148
150
  left: 0,
149
151
  right: 0,
@@ -152,37 +154,35 @@ const Map = (_a) => {
152
154
  };
153
155
  }
154
156
  // Margins on the viewport are extracted from a potential axes2D layer.
155
- const axes2DLayer = layers === null || layers === void 0 ? void 0 : layers.find((e) => {
156
- return (e === null || e === void 0 ? void 0 : e.constructor) === Axes2DLayer;
157
+ const axes2DLayer = layers?.find((e) => {
158
+ return e?.constructor === Axes2DLayer;
157
159
  });
158
- const axes2DProps = axes2DLayer === null || axes2DLayer === void 0 ? void 0 : axes2DLayer.props;
159
- const marginV = (_a = axes2DProps === null || axes2DProps === void 0 ? void 0 : axes2DProps.minimalMarginV) !== null && _a !== void 0 ? _a : axes2DProps === null || axes2DProps === void 0 ? void 0 : axes2DProps.marginV;
160
- const marginH = (_b = axes2DProps === null || axes2DProps === void 0 ? void 0 : axes2DProps.minimalMarginH) !== null && _b !== void 0 ? _b : axes2DProps === null || axes2DProps === void 0 ? void 0 : axes2DProps.marginH;
160
+ const axes2DProps = axes2DLayer?.props;
161
+ const marginV = axes2DProps?.minimalMarginV ?? axes2DProps?.marginV;
162
+ const marginH = axes2DProps?.minimalMarginH ?? axes2DProps?.marginH;
161
163
  return {
162
- left: (axes2DProps === null || axes2DProps === void 0 ? void 0 : axes2DProps.isLeftRuler) ? marginH : 0,
163
- right: (axes2DProps === null || axes2DProps === void 0 ? void 0 : axes2DProps.isRightRuler) ? marginH : 0,
164
- top: (axes2DProps === null || axes2DProps === void 0 ? void 0 : axes2DProps.isTopRuler) ? marginV : 0,
165
- bottom: (axes2DProps === null || axes2DProps === void 0 ? void 0 : axes2DProps.isBottomRuler) ? marginV : 0,
164
+ left: axes2DProps?.isLeftRuler ? marginH : 0,
165
+ right: axes2DProps?.isRightRuler ? marginH : 0,
166
+ top: axes2DProps?.isTopRuler ? marginV : 0,
167
+ bottom: axes2DProps?.isBottomRuler ? marginV : 0,
166
168
  };
167
169
  }, [layers]);
168
170
  // selection
169
171
  useEffect(() => {
170
- var _a, _b, _c;
171
- const layers = (_b = (_a = deckRef.current) === null || _a === void 0 ? void 0 : _a.deck) === null || _b === void 0 ? void 0 : _b.props.layers;
172
+ const layers = deckRef.current?.deck?.props.layers;
172
173
  if (layers) {
173
- const wellslayer = (_c = getLayersByType(layers, WellsLayer.name)) === null || _c === void 0 ? void 0 : _c[0];
174
- wellslayer === null || wellslayer === void 0 ? void 0 : wellslayer.setSelection(selection === null || selection === void 0 ? void 0 : selection.well, selection === null || selection === void 0 ? void 0 : selection.selection);
174
+ const wellslayer = getLayersByType(layers, WellsLayer.name)?.[0];
175
+ wellslayer?.setSelection(selection?.well, selection?.selection);
175
176
  }
176
177
  }, [selection]);
177
178
  // multiple well layers
178
179
  const [multipleWells, setMultipleWells] = useState([]);
179
180
  const [selectedWell, setSelectedWell] = useState("");
180
181
  useEffect(() => {
181
- var _a, _b, _c;
182
- const layers = (_b = (_a = deckRef.current) === null || _a === void 0 ? void 0 : _a.deck) === null || _b === void 0 ? void 0 : _b.props.layers;
182
+ const layers = deckRef.current?.deck?.props.layers;
183
183
  if (layers) {
184
- const wellslayer = (_c = getWellLayerByTypeAndSelectedWells(layers, "WellsLayer", selectedWell)) === null || _c === void 0 ? void 0 : _c[0];
185
- wellslayer === null || wellslayer === void 0 ? void 0 : wellslayer.setMultiSelection(multipleWells);
184
+ const wellslayer = getWellLayerByTypeAndSelectedWells(layers, "WellsLayer", selectedWell)?.[0];
185
+ wellslayer?.setMultiSelection(multipleWells);
186
186
  }
187
187
  }, [multipleWells, selectedWell]);
188
188
  useEffect(() => {
@@ -191,7 +191,6 @@ const Map = (_a) => {
191
191
  }
192
192
  }, [triggerResetMultipleWells]);
193
193
  const getPickingInfos = useCallback((type, pickInfo, event) => {
194
- var _a;
195
194
  const depth = isFunction(pickingDepth)
196
195
  ? pickingDepth(type)
197
196
  : pickingDepth;
@@ -199,7 +198,7 @@ const Map = (_a) => {
199
198
  throw new Error(`Expected a picking depth to be positive. Received ${depth}`);
200
199
  if (depth === 0)
201
200
  return [];
202
- if (!((_a = pickInfo.layer) === null || _a === void 0 ? void 0 : _a.context.deck)) {
201
+ if (!pickInfo.layer?.context.deck) {
203
202
  const extendedPickInfo = makeExtendedPickingInfo(pickInfo);
204
203
  // Z value should not take into account the Z scale factor.
205
204
  viewController.unscaledTarget(pickInfo.coordinate);
@@ -213,14 +212,13 @@ const Map = (_a) => {
213
212
  radius: pickingRadius,
214
213
  });
215
214
  const extendedPickInfos = pickInfos.map((itemPick) => {
216
- var _a, _b, _c, _d;
217
215
  const extItemPick = makeExtendedPickingInfo(itemPick);
218
216
  // Z value should not take into account the Z scale factor.
219
217
  viewController.unscaledTarget(extItemPick.coordinate);
220
218
  if (extItemPick.layer instanceof WellsLayer) {
221
219
  const wellsPickInfo = extItemPick;
222
- const unit = (_c = (_b = (_a = extItemPick.layer) === null || _a === void 0 ? void 0 : _a.state.data) === null || _b === void 0 ? void 0 : _b.unit) !== null && _c !== void 0 ? _c : " ";
223
- (_d = wellsPickInfo.properties) === null || _d === void 0 ? void 0 : _d.forEach((property) => {
220
+ const unit = extItemPick.layer?.state.data?.unit ?? " ";
221
+ wellsPickInfo.properties?.forEach((property) => {
224
222
  if (property.name.includes("MD") ||
225
223
  property.name.includes("TVD")) {
226
224
  const fixedNumber = Number(property.value).toFixed(2);
@@ -256,11 +254,11 @@ const Map = (_a) => {
256
254
  const onHover = useCallback((pickInfo, event) => {
257
255
  const infos = getPickingInfos("hover", pickInfo, event);
258
256
  setHoverInfo(infos);
259
- callOnMouseEvent === null || callOnMouseEvent === void 0 ? void 0 : callOnMouseEvent("hover", infos, event);
257
+ callOnMouseEvent?.("hover", infos, event);
260
258
  }, [callOnMouseEvent, getPickingInfos]);
261
259
  const onClick = useCallback((pickInfo, event) => {
262
260
  const infos = getPickingInfos("click", pickInfo, event);
263
- callOnMouseEvent === null || callOnMouseEvent === void 0 ? void 0 : callOnMouseEvent("click", infos, event);
261
+ callOnMouseEvent?.("click", infos, event);
264
262
  }, [callOnMouseEvent, getPickingInfos]);
265
263
  const deckGLLayers = React.useMemo(() => {
266
264
  if (!layers) {
@@ -276,7 +274,7 @@ const Map = (_a) => {
276
274
  layers.push(dummy_layer);
277
275
  }
278
276
  return layers.map((item) => {
279
- if ((item === null || item === void 0 ? void 0 : item.constructor.name) === NorthArrow3DLayer.name) {
277
+ if (item?.constructor.name === NorthArrow3DLayer.name) {
280
278
  return item;
281
279
  }
282
280
  let m;
@@ -299,14 +297,15 @@ const Map = (_a) => {
299
297
  }, [layers, zScale]);
300
298
  const [loadingProgress, setLoadingProgress] = useState(0);
301
299
  const onAfterRender = useCallback(() => {
302
- var _a, _b;
303
300
  if (deckGLLayers) {
304
301
  let progress = 100;
305
302
  // get all the layers ids used in the views, to consider only visible layers
306
- const layersIdsPresentInViews = (_b = (_a = views === null || views === void 0 ? void 0 : views.viewports) === null || _a === void 0 ? void 0 : _a.map((viewport) => viewport === null || viewport === void 0 ? void 0 : viewport.layerIds)) === null || _b === void 0 ? void 0 : _b.flat();
307
- const someViewportHasUndefinedLayerIds = layersIdsPresentInViews === null || layersIdsPresentInViews === void 0 ? void 0 : layersIdsPresentInViews.includes(undefined);
303
+ const layersIdsPresentInViews = views?.viewports
304
+ ?.map((viewport) => viewport?.layerIds)
305
+ ?.flat();
306
+ const someViewportHasUndefinedLayerIds = layersIdsPresentInViews?.includes(undefined);
308
307
  const allViewportsHaveAnEmptyListOfLayerIds = !someViewportHasUndefinedLayerIds &&
309
- (layersIdsPresentInViews === null || layersIdsPresentInViews === void 0 ? void 0 : layersIdsPresentInViews.length) === 0;
308
+ layersIdsPresentInViews?.length === 0;
310
309
  const emptyLayers = // There will always be a dummy layer. Deck.gl does not like empty array of layers.
311
310
  deckGLLayers.length === 1 &&
312
311
  deckGLLayers[0].id ===
@@ -314,28 +313,26 @@ const Map = (_a) => {
314
313
  if (!emptyLayers && !allViewportsHaveAnEmptyListOfLayerIds) {
315
314
  // compute #done layers / #visible layers percentage
316
315
  const visibleLayers = deckGLLayers.filter((layer) => {
317
- var _a;
318
316
  const layerWithType = layer;
319
317
  const filterByLayersInViews = !someViewportHasUndefinedLayerIds
320
- ? layersIdsPresentInViews === null || layersIdsPresentInViews === void 0 ? void 0 : layersIdsPresentInViews.includes(layerWithType.id)
318
+ ? layersIdsPresentInViews?.includes(layerWithType.id)
321
319
  : true;
322
- return (((_a = layerWithType === null || layerWithType === void 0 ? void 0 : layerWithType.props) === null || _a === void 0 ? void 0 : _a.visible) && filterByLayersInViews);
320
+ return (layerWithType?.props?.visible && filterByLayersInViews);
323
321
  });
324
- const loaded = visibleLayers === null || visibleLayers === void 0 ? void 0 : visibleLayers.filter((layer) => layer === null || layer === void 0 ? void 0 : layer.isLoaded).length;
322
+ const loaded = visibleLayers?.filter((layer) => layer?.isLoaded).length;
325
323
  // ceil to ensure reaching 100 (important to check if done)
326
- progress = Math.ceil((100 * loaded) / (visibleLayers === null || visibleLayers === void 0 ? void 0 : visibleLayers.length));
324
+ progress = Math.ceil((100 * loaded) / visibleLayers?.length);
327
325
  }
328
326
  setLoadingProgress(progress);
329
327
  if (onRenderingProgress) {
330
328
  onRenderingProgress(progress);
331
329
  }
332
330
  }
333
- }, [deckGLLayers, onRenderingProgress, views === null || views === void 0 ? void 0 : views.viewports]);
331
+ }, [deckGLLayers, onRenderingProgress, views?.viewports]);
334
332
  // validate layers data
335
333
  const [errorText, setErrorText] = useState();
336
334
  useEffect(() => {
337
- var _a, _b;
338
- const layers = (_b = (_a = deckRef.current) === null || _a === void 0 ? void 0 : _a.deck) === null || _b === void 0 ? void 0 : _b.props.layers;
335
+ const layers = deckRef.current?.deck?.props.layers;
339
336
  // this ensures to validate the schemas only once
340
337
  if (checkDatafileSchema && layers && loadingProgress === 100) {
341
338
  try {
@@ -353,19 +350,19 @@ const Map = (_a) => {
353
350
  }, [
354
351
  checkDatafileSchema,
355
352
  colorTables,
356
- (_f = (_e = deckRef === null || deckRef === void 0 ? void 0 : deckRef.current) === null || _e === void 0 ? void 0 : _e.deck) === null || _f === void 0 ? void 0 : _f.props.layers,
353
+ deckRef?.current?.deck?.props.layers,
357
354
  loadingProgress,
358
355
  ]);
359
356
  const layerFilter = useCallback((args) => {
360
357
  // display all the layers if views are not specified correctly
361
- if (!(views === null || views === void 0 ? void 0 : views.viewports) || !(views === null || views === void 0 ? void 0 : views.layout)) {
358
+ if (!views?.viewports || !views?.layout) {
362
359
  return true;
363
360
  }
364
361
  const cur_view = views.viewports.find(({ id }) => args.viewport.id && id === args.viewport.id);
365
- if ((cur_view === null || cur_view === void 0 ? void 0 : cur_view.layerIds) === undefined) {
362
+ if (cur_view?.layerIds === undefined) {
366
363
  return true;
367
364
  }
368
- if ((cur_view === null || cur_view === void 0 ? void 0 : cur_view.layerIds) && cur_view.layerIds.length > 0) {
365
+ if (cur_view?.layerIds && cur_view.layerIds.length > 0) {
369
366
  const layer_ids = cur_view.layerIds;
370
367
  return layer_ids.some((layer_id) => {
371
368
  const t = layer_id === args.layer.id;
@@ -385,7 +382,7 @@ const Map = (_a) => {
385
382
  }
386
383
  return cursorState.isDragging ? "grabbing" : "default";
387
384
  }, [getCursor]);
388
- const effects = (_g = parseLights(lights)) !== null && _g !== void 0 ? _g : [];
385
+ const effects = parseLights(lights) ?? [];
389
386
  const [deckGlViews, deckGlViewState] = useMemo(() => {
390
387
  const state = {
391
388
  triggerHome,
@@ -437,11 +434,11 @@ const Map = (_a) => {
437
434
  setMultipleWells([]);
438
435
  }
439
436
  }
440
- setEditedData === null || setEditedData === void 0 ? void 0 : setEditedData(updated_prop);
437
+ setEditedData?.(updated_prop);
441
438
  },
442
439
  colorTables: colorTables,
443
440
  }, getCursor: getCursorFunc, getTooltip: getTooltip, ref: deckRef, onViewStateChange: onViewStateChange, onHover: onHover, onClick: onClick, onAfterRender: onAfterRender, effects: effects, onDragStart: onDragStart, onDragEnd: onDragEnd, onDrag: onDrag, onResize: onResize, pickingRadius: pickingRadius }, children),
444
- (scale === null || scale === void 0 ? void 0 : scale.visible) ? (React.createElement(DistanceScale, Object.assign({}, scale, { zoom: lateralZoom, scaleUnit: coordinateUnit, style: (_h = scale.cssStyle) !== null && _h !== void 0 ? _h : {} }))) : null,
441
+ scale?.visible ? (React.createElement(DistanceScale, { ...scale, zoom: lateralZoom, scaleUnit: coordinateUnit, style: scale.cssStyle ?? {} })) : null,
445
442
  !onRenderingProgress && loadingProgress < 100 && (React.createElement("div", { style: {
446
443
  display: "flex",
447
444
  alignItems: "flex-end",
@@ -508,25 +505,27 @@ export function createLayers(layers, enums = undefined) {
508
505
  }
509
506
  function createConfiguration(enums = undefined) {
510
507
  const configuration = new JSONConfiguration(JSON_CONVERTER_CONFIG);
511
- enums === null || enums === void 0 ? void 0 : enums.forEach((enumeration) => {
508
+ enums?.forEach((enumeration) => {
512
509
  if (enumeration) {
513
510
  configuration.merge({
514
- enumerations: Object.assign({}, enumeration),
511
+ enumerations: {
512
+ ...enumeration,
513
+ },
515
514
  });
516
515
  }
517
516
  });
518
517
  return configuration;
519
518
  }
520
519
  function createLayer(layerData, configuration) {
521
- const typeKey = configuration.typeKey;
522
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
523
- const classes = configuration.classes;
524
- if (layerData[typeKey]) {
520
+ const configProps = configuration.getProps();
521
+ const typeKey = configProps.typeKey;
522
+ const classes = configProps.classes;
523
+ if (typeKey && classes && layerData[typeKey]) {
525
524
  const type = layerData[typeKey];
526
525
  if (type in classes) {
527
526
  const Class = classes[type];
528
527
  // Prepare a props object
529
- const props = Object.assign({}, layerData);
528
+ const props = { ...layerData };
530
529
  delete props[typeKey];
531
530
  return new Class(props);
532
531
  }
@@ -542,40 +541,54 @@ function createLayer(layerData, configuration) {
542
541
  * to set targets, get views, and handle view state changes.
543
542
  */
544
543
  class ViewController {
544
+ /**
545
+ * Function to trigger a re-render.
546
+ */
547
+ rerender_;
548
+ /**
549
+ * Derived state for interaction readiness and view state changes.
550
+ */
551
+ derivedState_ = {
552
+ readyForInteraction: false,
553
+ viewStateChanged: false,
554
+ };
555
+ /**
556
+ * Full state including camera settings, bounds, and deck size.
557
+ */
558
+ state_ = {
559
+ triggerHome: undefined,
560
+ camera: undefined,
561
+ bounds: undefined,
562
+ boundingBox3d: undefined,
563
+ deckSize: { width: 0, height: 0 },
564
+ zScale: 1,
565
+ viewPortMargins: {
566
+ left: 0,
567
+ right: 0,
568
+ top: 0,
569
+ bottom: 0,
570
+ },
571
+ // Derived state
572
+ ...this.derivedState_,
573
+ };
574
+ /**
575
+ * The current views being managed.
576
+ */
577
+ views_ = undefined;
578
+ /**
579
+ * The result object containing views and view states.
580
+ */
581
+ result_ = {
582
+ views: [],
583
+ deckglViewStates: {},
584
+ viewStates: {},
585
+ };
545
586
  /**
546
587
  * Constructs a new instance of the Map component.
547
588
  *
548
589
  * @param rerender - A function to trigger a re-render of the component.
549
590
  */
550
591
  constructor(rerender) {
551
- /**
552
- * Derived state for interaction readiness and view state changes.
553
- */
554
- this.derivedState_ = {
555
- readyForInteraction: false,
556
- viewStateChanged: false,
557
- };
558
- /**
559
- * Full state including camera settings, bounds, and deck size.
560
- */
561
- this.state_ = Object.assign({ triggerHome: undefined, camera: undefined, bounds: undefined, boundingBox3d: undefined, deckSize: { width: 0, height: 0 }, zScale: 1, viewPortMargins: {
562
- left: 0,
563
- right: 0,
564
- top: 0,
565
- bottom: 0,
566
- } }, this.derivedState_);
567
- /**
568
- * The current views being managed.
569
- */
570
- this.views_ = undefined;
571
- /**
572
- * The result object containing views and view states.
573
- */
574
- this.result_ = {
575
- views: [],
576
- deckglViewStates: {},
577
- viewStates: {},
578
- };
579
592
  this.rerender_ = rerender;
580
593
  }
581
594
  /**
@@ -627,7 +640,7 @@ class ViewController {
627
640
  * @returns The consolidated state.
628
641
  */
629
642
  consolidateState(state) {
630
- return Object.assign(Object.assign({}, state), this.derivedState_);
643
+ return { ...state, ...this.derivedState_ };
631
644
  }
632
645
  /**
633
646
  * Returns the DeckGL views (ie. view position and viewport) based on the input views and current state.
@@ -651,10 +664,9 @@ class ViewController {
651
664
  * @returns The DeckGL view states and the corresponding view states in user space.
652
665
  */
653
666
  getDeckGlAndUserViewStates(views, state) {
654
- var _a;
655
667
  const viewsChanged = views != this.views_;
656
668
  const triggerHome = state.triggerHome !== this.state_.triggerHome;
657
- const updateZScale = viewsChanged || state.zScale !== ((_a = this.state_) === null || _a === void 0 ? void 0 : _a.zScale) || triggerHome;
669
+ const updateZScale = viewsChanged || state.zScale !== this.state_?.zScale || triggerHome;
658
670
  const updateViewState = viewsChanged ||
659
671
  triggerHome ||
660
672
  state.camera != this.state_.camera ||
@@ -706,33 +718,52 @@ class ViewController {
706
718
  * @param getCameraPosition - A function to get the camera position.
707
719
  */
708
720
  onViewStateChange(viewId, viewState, getCameraPosition) {
709
- var _a, _b, _c, _d, _e, _f;
710
721
  if (!this.derivedState_.readyForInteraction) {
711
722
  // disable interaction if the camera is not defined
712
723
  return;
713
724
  }
714
- const viewports = (_b = (_a = this.views_) === null || _a === void 0 ? void 0 : _a.viewports) !== null && _b !== void 0 ? _b : [];
715
- if (((_c = viewState.target) === null || _c === void 0 ? void 0 : _c.length) === 2) {
725
+ const viewports = this.views_?.viewports ?? [];
726
+ if (viewState.target?.length === 2) {
716
727
  // In orthographic mode viewState.target contains only x and y. Add existing z value.
717
- viewState.target.push((_e = (_d = this.result_.deckglViewStates[viewId].target) === null || _d === void 0 ? void 0 : _d[2]) !== null && _e !== void 0 ? _e : 1);
728
+ viewState.target.push(this.result_.deckglViewStates[viewId].target?.[2] ?? 1);
718
729
  }
719
730
  const isSyncIds = viewports
720
731
  .filter((item) => item.isSync)
721
732
  .map((item) => item.id);
722
- if (isSyncIds === null || isSyncIds === void 0 ? void 0 : isSyncIds.includes(viewId)) {
723
- const syncedViewStates = (_f = this.views_) === null || _f === void 0 ? void 0 : _f.viewports.filter((item) => item.isSync).map((item) => [item.id, viewState]);
724
- const tempViewStates = Object.fromEntries(syncedViewStates !== null && syncedViewStates !== void 0 ? syncedViewStates : []);
725
- this.result_.deckglViewStates = Object.assign(Object.assign({}, this.result_.deckglViewStates), tempViewStates);
733
+ if (isSyncIds?.includes(viewId)) {
734
+ const syncedViewStates = this.views_?.viewports
735
+ .filter((item) => item.isSync)
736
+ .map((item) => [item.id, viewState]);
737
+ const tempViewStates = Object.fromEntries(syncedViewStates ?? []);
738
+ this.result_.deckglViewStates = {
739
+ ...this.result_.deckglViewStates,
740
+ ...tempViewStates,
741
+ };
726
742
  // update corresponding view state
727
743
  const keys = Object.keys(tempViewStates);
728
744
  keys.forEach((key) => {
729
- this.result_.viewStates = Object.assign(Object.assign({}, this.result_.viewStates), { [key]: Object.assign(Object.assign({}, tempViewStates[key]), { target: inversedZScaled(tempViewStates[key].target, this.state_.zScale, this.result_.viewStates[key].target) }) });
745
+ this.result_.viewStates = {
746
+ ...this.result_.viewStates,
747
+ [key]: {
748
+ ...tempViewStates[key],
749
+ target: inversedZScaled(tempViewStates[key].target, this.state_.zScale, this.result_.viewStates[key].target),
750
+ },
751
+ };
730
752
  });
731
753
  }
732
754
  else {
733
- this.result_.deckglViewStates = Object.assign(Object.assign({}, this.result_.deckglViewStates), { [viewId]: viewState });
755
+ this.result_.deckglViewStates = {
756
+ ...this.result_.deckglViewStates,
757
+ [viewId]: viewState,
758
+ };
734
759
  // update corresponding view state
735
- this.result_.viewStates = Object.assign(Object.assign({}, this.result_.viewStates), { [viewId]: Object.assign(Object.assign({}, viewState), { target: inversedZScaled(viewState.target, this.state_.zScale, this.result_.viewStates[viewId].target) }) });
760
+ this.result_.viewStates = {
761
+ ...this.result_.viewStates,
762
+ [viewId]: {
763
+ ...viewState,
764
+ target: inversedZScaled(viewState.target, this.state_.zScale, this.result_.viewStates[viewId].target),
765
+ },
766
+ };
736
767
  }
737
768
  if (getCameraPosition) {
738
769
  getCameraPosition(this.result_.viewStates[viewId]);
@@ -810,7 +841,6 @@ function computeCameraZoom(camera, boundingBox, size, fovy = 50) {
810
841
  ///////////////////////////////////////////////////////////////////////////////////////////
811
842
  // return viewstate with computed bounds to fit the data in viewport
812
843
  function getViewStateFromBounds(viewPortMargins, bounds_accessor, target, views, viewPort, size) {
813
- var _a, _b;
814
844
  const bounds = typeof bounds_accessor == "function"
815
845
  ? bounds_accessor()
816
846
  : bounds_accessor;
@@ -836,11 +866,11 @@ function getViewStateFromBounds(viewPortMargins, bounds_accessor, target, views,
836
866
  h = size.height - marginV;
837
867
  // Special case if matrix views.
838
868
  // Use width and height for a sub-view instead of full viewport.
839
- if (views === null || views === void 0 ? void 0 : views.layout) {
869
+ if (views?.layout) {
840
870
  const [nY, nX] = views.layout;
841
871
  const isMatrixViews = nX !== 1 || nY !== 1;
842
872
  if (isMatrixViews) {
843
- const mPixels = (_a = views === null || views === void 0 ? void 0 : views.marginPixels) !== null && _a !== void 0 ? _a : 0;
873
+ const mPixels = views?.marginPixels ?? 0;
844
874
  const w_ = 99.5 / nX; // Using 99.5% of viewport to avoid flickering of deckgl canvas
845
875
  const h_ = 99.5 / nY;
846
876
  const marginHorPercentage = 100 * 100 * (mPixels / (w_ * size.width)); //percentage of sub view
@@ -878,7 +908,7 @@ function getViewStateFromBounds(viewPortMargins, bounds_accessor, target, views,
878
908
  const isLarge = Math.max(bounds[0], bounds[1]) > 99999;
879
909
  const max2DZoom = isLarge ? 3 : maxZoom2D;
880
910
  const view_state = {
881
- target: (_b = viewPort.target) !== null && _b !== void 0 ? _b : fb_target,
911
+ target: viewPort.target ?? fb_target,
882
912
  zoom: getZoom(viewPort, fb_zoom),
883
913
  rotationX: 90, // look down z -axis
884
914
  rotationOrbit: 0,
@@ -909,11 +939,10 @@ function getViewType(viewport) {
909
939
  return [OrthographicView, OrthographicController];
910
940
  }
911
941
  function areViewsValid(views, size) {
912
- var _a, _b;
913
- const isInvalid = (views === null || views === void 0 ? void 0 : views.viewports) == undefined ||
914
- (views === null || views === void 0 ? void 0 : views.layout) == undefined ||
915
- !((_a = views === null || views === void 0 ? void 0 : views.layout) === null || _a === void 0 ? void 0 : _a[0]) ||
916
- !((_b = views === null || views === void 0 ? void 0 : views.layout) === null || _b === void 0 ? void 0 : _b[1]) ||
942
+ const isInvalid = views?.viewports == undefined ||
943
+ views?.layout == undefined ||
944
+ !views?.layout?.[0] ||
945
+ !views?.layout?.[1] ||
917
946
  !size.width ||
918
947
  !size.height;
919
948
  return !isInvalid;
@@ -923,9 +952,12 @@ function newView(viewport, x, y, width, height) {
923
952
  const far = 9999;
924
953
  const near = show3D(viewport) ? 0.1 : -1000;
925
954
  const [ViewType, Controller] = getViewType(viewport);
955
+ const controllerConfig = Controller === OrbitController
956
+ ? defineController(OrbitController, viewport?.controller)
957
+ : defineController(OrthographicController, viewport?.controller);
926
958
  return new ViewType({
927
959
  id: viewport.id,
928
- controller: defineController(Controller, viewport === null || viewport === void 0 ? void 0 : viewport.controller),
960
+ controller: controllerConfig,
929
961
  x,
930
962
  y,
931
963
  width,
@@ -936,7 +968,6 @@ function newView(viewport, x, y, width, height) {
936
968
  });
937
969
  }
938
970
  function buildDeckGlViews(views, size) {
939
- var _a;
940
971
  const isOk = areViewsValid(views, size);
941
972
  if (!views || !isOk) {
942
973
  return [
@@ -965,7 +996,7 @@ function buildDeckGlViews(views, size) {
965
996
  const result = [];
966
997
  const w = 99.5 / nX; // Using 99.5% of viewport to avoid flickering of deckgl canvas
967
998
  const h = 99.5 / nY;
968
- const marginPixels = (_a = views.marginPixels) !== null && _a !== void 0 ? _a : 0;
999
+ const marginPixels = views.marginPixels ?? 0;
969
1000
  const marginHorPercentage = 100 * 100 * (marginPixels / (w * size.width));
970
1001
  const marginVerPercentage = 100 * 100 * (marginPixels / (h * size.height));
971
1002
  let yPos = 0;
@@ -994,7 +1025,7 @@ function buildDeckGlViews(views, size) {
994
1025
  * @returns true if the camera camera zoom is set.
995
1026
  */
996
1027
  function cameraHasZoom(camera) {
997
- const zoom = camera === null || camera === void 0 ? void 0 : camera.zoom;
1028
+ const zoom = camera?.zoom;
998
1029
  const isNumber = typeof zoom === "number" && !Number.isNaN(zoom);
999
1030
  const isXy = Array.isArray(zoom) && zoom.length == 2;
1000
1031
  return isNumber || isXy;
@@ -1005,7 +1036,7 @@ function cameraHasZoom(camera) {
1005
1036
  * @returns true if the camera camera target is set.
1006
1037
  */
1007
1038
  function cameraHasTarget(camera) {
1008
- return (Array.isArray(camera === null || camera === void 0 ? void 0 : camera.target) &&
1039
+ return (Array.isArray(camera?.target) &&
1009
1040
  camera.target.length >= 2 &&
1010
1041
  camera.target.length <= 3);
1011
1042
  }
@@ -1025,7 +1056,7 @@ function isCameraDefined(camera) {
1025
1056
  * @returns true if the camera is fully defined.
1026
1057
  */
1027
1058
  function cameraDefinesBoundingBox(camera) {
1028
- return (Array.isArray(camera === null || camera === void 0 ? void 0 : camera.zoom) &&
1059
+ return (Array.isArray(camera?.zoom) &&
1029
1060
  !isEmptyBox3D(camera.zoom));
1030
1061
  }
1031
1062
  /**
@@ -1054,7 +1085,7 @@ function canCameraBeDefined(camera, boundingBox, bounds, size) {
1054
1085
  * @param zScale Z scale.
1055
1086
  */
1056
1087
  function applyZScale(target, zScale) {
1057
- if ((target === null || target === void 0 ? void 0 : target[2]) != undefined) {
1088
+ if (target?.[2] != undefined) {
1058
1089
  target[2] = target[2] * zScale;
1059
1090
  }
1060
1091
  }
@@ -1084,7 +1115,7 @@ function zScaledTarget(target, zScale) {
1084
1115
  * @param zScale Z scale.
1085
1116
  */
1086
1117
  function applyInverseZScale(target, zScale) {
1087
- if ((target === null || target === void 0 ? void 0 : target[2]) != undefined && zScale != 0) {
1118
+ if (target?.[2] != undefined && zScale != 0) {
1088
1119
  target[2] = target[2] / zScale;
1089
1120
  }
1090
1121
  }
@@ -1107,9 +1138,9 @@ function inversedZScaled(target, zScale, unscaledTarget) {
1107
1138
  if (zScale != 0) {
1108
1139
  return [target[0], target[1], target[2] / zScale];
1109
1140
  }
1110
- if ((unscaledTarget === null || unscaledTarget === void 0 ? void 0 : unscaledTarget[2]) != undefined &&
1111
- target[0] === (unscaledTarget === null || unscaledTarget === void 0 ? void 0 : unscaledTarget[0]) &&
1112
- target[1] === (unscaledTarget === null || unscaledTarget === void 0 ? void 0 : unscaledTarget[1])) {
1141
+ if (unscaledTarget?.[2] != undefined &&
1142
+ target[0] === unscaledTarget?.[0] &&
1143
+ target[1] === unscaledTarget?.[1]) {
1113
1144
  return [
1114
1145
  target[0],
1115
1146
  target[1],
@@ -1126,7 +1157,6 @@ function inversedZScaled(target, zScale, unscaledTarget) {
1126
1157
  * @param size widget size in pixels.
1127
1158
  */
1128
1159
  function updateViewState(camera, boundingBox, size, is3D = true) {
1129
- var _a, _b;
1130
1160
  if (isCameraDefined(camera)) {
1131
1161
  return camera;
1132
1162
  }
@@ -1146,8 +1176,8 @@ function updateViewState(camera, boundingBox, size, is3D = true) {
1146
1176
  if (!cameraHasTarget(camera)) {
1147
1177
  camera.target = boxCenter(boundingBox);
1148
1178
  }
1149
- camera.minZoom = (_a = camera.minZoom) !== null && _a !== void 0 ? _a : minZoom3D;
1150
- camera.maxZoom = (_b = camera.maxZoom) !== null && _b !== void 0 ? _b : maxZoom3D;
1179
+ camera.minZoom = camera.minZoom ?? minZoom3D;
1180
+ camera.maxZoom = camera.maxZoom ?? maxZoom3D;
1151
1181
  return camera;
1152
1182
  }
1153
1183
  /**
@@ -1236,9 +1266,11 @@ function buildViewStates(views, viewPortMargins, scaledCamera, boundingBox, boun
1236
1266
  const currentViewport = views.viewports[resultLength];
1237
1267
  const currentViewState = computeViewState(currentViewport, scaledCamera, boundingBox, bounds, viewPortMargins, views, size);
1238
1268
  if (currentViewState) {
1239
- result = Object.assign(Object.assign({}, result), {
1269
+ result = {
1270
+ ...result,
1240
1271
  // Each viewport should have distinct state objects, so we clone to avoid any shared object references
1241
- [currentViewport.id]: cloneDeep(currentViewState) });
1272
+ [currentViewport.id]: cloneDeep(currentViewState),
1273
+ };
1242
1274
  }
1243
1275
  }
1244
1276
  }
@@ -1263,7 +1295,6 @@ function buildScaledViewStates(viewStates, zScale) {
1263
1295
  return result;
1264
1296
  }
1265
1297
  function handleMouseEvent(type, infos, event) {
1266
- var _a;
1267
1298
  const ev = {
1268
1299
  type: type,
1269
1300
  infos: infos,
@@ -1282,7 +1313,7 @@ function handleMouseEvent(type, infos, event) {
1282
1313
  {
1283
1314
  // try to use Object info (see DeckGL getToolTip callback)
1284
1315
  const feat = info.object;
1285
- const properties = feat === null || feat === void 0 ? void 0 : feat.properties;
1316
+ const properties = feat?.properties;
1286
1317
  if (properties) {
1287
1318
  ev.wellname = properties["name"];
1288
1319
  ev.wellcolor = properties["color"];
@@ -1290,7 +1321,7 @@ function handleMouseEvent(type, infos, event) {
1290
1321
  }
1291
1322
  if (!ev.wellname)
1292
1323
  if (info.object) {
1293
- ev.wellname = (_a = info.object.header) === null || _a === void 0 ? void 0 : _a["well"]; // object is WellLog
1324
+ ev.wellname = info.object.header?.["well"]; // object is WellLog
1294
1325
  }
1295
1326
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
1296
1327
  if (info.properties) {