@equinor/esv-intersection 3.0.6 → 3.0.8

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@equinor/esv-intersection",
3
- "version": "3.0.6",
3
+ "version": "3.0.8",
4
4
  "description": "Intersection component package with testing and automatic documentation.",
5
5
  "type": "module",
6
6
  "exports": {
@@ -29,7 +29,8 @@
29
29
  "build-storybook": "storybook build",
30
30
  "prepare": "husky install",
31
31
  "version": "changeset version && npm install --package-lock-only",
32
- "release": "npm run build && changeset publish"
32
+ "release:npm": "npm run build && changeset publish",
33
+ "release:github": "npm run build && changeset publish --no-git-tag"
33
34
  },
34
35
  "lint-staged": {
35
36
  "*": "prettier --write --ignore-unknown"
@@ -1,26 +1,34 @@
1
1
  export function findIndexOfSample(data: number[][], pos: number): number {
2
+ if (data.length < 2) {
3
+ return -1;
4
+ }
5
+
6
+ const linearSearchLimit = 20;
2
7
  let a = 0;
3
8
  let b = data.length - 1;
4
- const linearSearchLimit = 20;
5
- let aPos = data[a][0];
6
- let bPos = data[b][0];
9
+ let aPos = data[a]?.[0];
10
+ let bPos = data[b]?.[0];
7
11
 
8
12
  while (b - a > linearSearchLimit) {
9
13
  const splitAt = Math.floor((b + a) / 2);
10
- const splitPos = data[splitAt][0];
14
+ const splitPos = data[splitAt]?.[0];
15
+
16
+ if (aPos == null || bPos == null || splitPos == null) {
17
+ return -1;
18
+ }
11
19
 
12
20
  if (pos >= aPos && pos < splitPos) {
13
21
  b = splitAt;
14
- bPos = data[b][0];
22
+ bPos = data[b]?.[0];
15
23
  } else if (pos >= splitPos && pos <= bPos) {
16
24
  a = splitAt;
17
- aPos = data[a][0];
25
+ aPos = data[a]?.[0];
18
26
  } else if (pos <= aPos && pos > splitPos) {
19
27
  b = splitAt;
20
- bPos = data[b][0];
28
+ bPos = data[b]?.[0];
21
29
  } else if (pos <= splitPos && pos >= bPos) {
22
30
  a = splitAt;
23
- aPos = data[a][0];
31
+ aPos = data[a]?.[0];
24
32
  } else {
25
33
  return -1;
26
34
  }
@@ -28,9 +36,9 @@ export function findIndexOfSample(data: number[][], pos: number): number {
28
36
 
29
37
  let index = -1;
30
38
  for (let i = a; i < b; i++) {
31
- const v1 = data[i][0];
32
- const v2 = data[i + 1][0];
33
- if (Math.min(v1, v2) <= pos && pos <= Math.max(v1, v2)) {
39
+ const v1 = data[i]?.[0];
40
+ const v2 = data[i + 1]?.[0];
41
+ if (v1 != null && v2 != null && Math.min(v1, v2) <= pos && pos <= Math.max(v1, v2)) {
34
42
  index = i;
35
43
  break;
36
44
  }
@@ -91,12 +91,12 @@ export async function generateSeismicSliceImage(
91
91
  data: { datapoints: number[][]; yAxisValues: number[] },
92
92
  trajectory: number[][],
93
93
  colormap: string[],
94
- options?: {
95
- isLeftToRight: true;
94
+ options: {
95
+ isLeftToRight: boolean;
96
96
  seismicRange?: number;
97
97
  seismicMin?: number;
98
98
  seismicMax?: number;
99
- },
99
+ } = { isLeftToRight: true },
100
100
  ): Promise<ImageBitmap | undefined> {
101
101
  if (!(data && data.datapoints && data.datapoints.length > 0)) {
102
102
  return undefined;
@@ -132,7 +132,7 @@ export async function generateSeismicSliceImage(
132
132
  let offset = 0;
133
133
  const colorFactor = (colorTableSize - 1) / domain.difference;
134
134
 
135
- let pos = options?.isLeftToRight ? trajectory[0][0] : trajectory[trajectory.length - 1][0];
135
+ let pos = options?.isLeftToRight == null ? trajectory[0][0] : trajectory[trajectory.length - 1][0];
136
136
 
137
137
  const step = (length / width) * (options?.isLeftToRight ? -1 : 1);
138
138