@equinor/esv-intersection 4.0.0 → 4.1.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 (81) hide show
  1. package/dist/components/axis.d.ts.map +1 -1
  2. package/dist/control/ExtendedCurveInterpolator.d.ts.map +1 -1
  3. package/dist/control/IntersectionReferenceSystem.d.ts.map +1 -1
  4. package/dist/control/LayerManager.d.ts.map +1 -1
  5. package/dist/control/MainController.d.ts.map +1 -1
  6. package/dist/control/ZoomPanHandler.d.ts.map +1 -1
  7. package/dist/control/overlay.d.ts.map +1 -1
  8. package/dist/datautils/colortable.d.ts.map +1 -1
  9. package/dist/datautils/findsample.d.ts.map +1 -1
  10. package/dist/datautils/picks.d.ts.map +1 -1
  11. package/dist/datautils/schematicShapeGenerator.d.ts +5 -5
  12. package/dist/datautils/schematicShapeGenerator.d.ts.map +1 -1
  13. package/dist/datautils/seismicimage.d.ts.map +1 -1
  14. package/dist/datautils/surfacedata.d.ts.map +1 -1
  15. package/dist/datautils/trajectory.d.ts.map +1 -1
  16. package/dist/index.cjs +1 -14
  17. package/dist/index.cjs.map +1 -1
  18. package/dist/index.mjs +2168 -1290
  19. package/dist/index.mjs.map +1 -1
  20. package/dist/index.umd.js +1 -14
  21. package/dist/index.umd.js.map +1 -1
  22. package/dist/layers/CalloutCanvasLayer.d.ts.map +1 -1
  23. package/dist/layers/CustomDisplayObjects/ComplexRope.d.ts.map +1 -1
  24. package/dist/layers/CustomDisplayObjects/UniformTextureStretchRope.d.ts.map +1 -1
  25. package/dist/layers/GeomodelCanvasLayer.d.ts.map +1 -1
  26. package/dist/layers/GeomodelLabelsLayer.d.ts.map +1 -1
  27. package/dist/layers/GeomodelLayerV2.d.ts.map +1 -1
  28. package/dist/layers/GridLayer.d.ts.map +1 -1
  29. package/dist/layers/ImageCanvasLayer.d.ts.map +1 -1
  30. package/dist/layers/ReferenceLineLayer.d.ts.map +1 -1
  31. package/dist/layers/SchematicLayer.d.ts.map +1 -1
  32. package/dist/layers/WellborePathLayer.d.ts.map +1 -1
  33. package/dist/layers/base/CanvasLayer.d.ts.map +1 -1
  34. package/dist/layers/base/HTMLLayer.d.ts.map +1 -1
  35. package/dist/layers/base/Layer.d.ts.map +1 -1
  36. package/dist/layers/base/PixiLayer.d.ts.map +1 -1
  37. package/dist/layers/base/SVGLayer.d.ts.map +1 -1
  38. package/dist/layers/schematicInterfaces.d.ts.map +1 -1
  39. package/dist/utils/arc-length.d.ts.map +1 -1
  40. package/dist/utils/root-finder.d.ts.map +1 -1
  41. package/dist/utils/text.d.ts.map +1 -1
  42. package/dist/utils/vectorUtils.d.ts.map +1 -1
  43. package/dist/vendor/pixi-dashed-line/index.d.ts.map +1 -1
  44. package/package.json +15 -17
  45. package/src/components/axis.ts +40 -10
  46. package/src/control/ExtendedCurveInterpolator.ts +47 -9
  47. package/src/control/IntersectionReferenceSystem.ts +110 -30
  48. package/src/control/LayerManager.ts +76 -24
  49. package/src/control/MainController.ts +37 -8
  50. package/src/control/ZoomPanHandler.ts +76 -14
  51. package/src/control/overlay.ts +18 -6
  52. package/src/datautils/colortable.ts +7 -2
  53. package/src/datautils/findsample.ts +12 -2
  54. package/src/datautils/picks.ts +66 -18
  55. package/src/datautils/schematicShapeGenerator.ts +570 -146
  56. package/src/datautils/seismicimage.ts +36 -10
  57. package/src/datautils/surfacedata.ts +119 -40
  58. package/src/datautils/trajectory.ts +56 -17
  59. package/src/layers/CalloutCanvasLayer.ts +129 -26
  60. package/src/layers/CustomDisplayObjects/ComplexRope.ts +2 -1
  61. package/src/layers/CustomDisplayObjects/ComplexRopeGeometry.ts +5 -5
  62. package/src/layers/CustomDisplayObjects/UniformTextureStretchRope.ts +6 -2
  63. package/src/layers/GeomodelCanvasLayer.ts +10 -3
  64. package/src/layers/GeomodelLabelsLayer.ts +212 -87
  65. package/src/layers/GeomodelLayerV2.ts +8 -3
  66. package/src/layers/GridLayer.ts +14 -3
  67. package/src/layers/ImageCanvasLayer.ts +17 -3
  68. package/src/layers/ReferenceLineLayer.ts +31 -9
  69. package/src/layers/SchematicLayer.ts +499 -150
  70. package/src/layers/WellborePathLayer.ts +22 -7
  71. package/src/layers/base/CanvasLayer.ts +18 -4
  72. package/src/layers/base/HTMLLayer.ts +11 -3
  73. package/src/layers/base/Layer.ts +10 -2
  74. package/src/layers/base/PixiLayer.ts +27 -7
  75. package/src/layers/base/SVGLayer.ts +13 -3
  76. package/src/layers/schematicInterfaces.ts +16 -6
  77. package/src/utils/arc-length.ts +31 -5
  78. package/src/utils/root-finder.ts +32 -4
  79. package/src/utils/text.ts +34 -7
  80. package/src/utils/vectorUtils.ts +23 -6
  81. package/src/vendor/pixi-dashed-line/index.ts +66 -13
@@ -77,9 +77,13 @@ export class IntersectionReferenceSystem {
77
77
  this.getTrajectory = this.getTrajectory.bind(this);
78
78
  }
79
79
 
80
- private setPath(path: number[][], options: ReferenceSystemOptions = {}): void {
80
+ private setPath(
81
+ path: number[][],
82
+ options: ReferenceSystemOptions = {},
83
+ ): void {
81
84
  this.options = { ...defaultOptions, ...options };
82
- const { arcDivisions, tension, calculateDisplacementFromBottom } = this.options;
85
+ const { arcDivisions, tension, calculateDisplacementFromBottom } =
86
+ this.options;
83
87
 
84
88
  this.path = path;
85
89
 
@@ -94,11 +98,17 @@ export class IntersectionReferenceSystem {
94
98
  options.trajectoryInterpolator ||
95
99
  new ExtendedCurveInterpolator(
96
100
  path.map((d: number[]) => [d[0]!, d[1]!]),
97
- { tension: tension || TENSION, arcDivisions: arcDivisions || ARC_DIVISIONS },
101
+ {
102
+ tension: tension || TENSION,
103
+ arcDivisions: arcDivisions || ARC_DIVISIONS,
104
+ },
98
105
  ),
99
106
  curtain:
100
107
  options.curtainInterpolator ||
101
- new ExtendedCurveInterpolator(this.projectedPath, { tension: tension || TENSION, arcDivisions: arcDivisions || ARC_DIVISIONS }),
108
+ new ExtendedCurveInterpolator(this.projectedPath, {
109
+ tension: tension || TENSION,
110
+ arcDivisions: arcDivisions || ARC_DIVISIONS,
111
+ }),
102
112
  };
103
113
 
104
114
  const trajVector = this.getTrajectoryVector();
@@ -122,7 +132,13 @@ export class IntersectionReferenceSystem {
122
132
  project(length: number): number[] {
123
133
  const { curtain } = this.interpolators;
124
134
  const { calculateDisplacementFromBottom } = this.options;
125
- const cl = clamp(calculateDisplacementFromBottom ? this.length - (length - this._offset) : length - this._offset, 0, this.length);
135
+ const cl = clamp(
136
+ calculateDisplacementFromBottom
137
+ ? this.length - (length - this._offset)
138
+ : length - this._offset,
139
+ 0,
140
+ this.length,
141
+ );
126
142
  const p = curtain.getPointAtArcLength(cl, this.options);
127
143
  return p as number[];
128
144
  }
@@ -146,11 +162,19 @@ export class IntersectionReferenceSystem {
146
162
  * @param endMd in MD
147
163
  * @param includeStartEnd guarantee to include the starting and end points
148
164
  */
149
- getCurtainPath(startMd: number, endMd: number, includeStartEnd = false): MDPoint[] {
165
+ getCurtainPath(
166
+ startMd: number,
167
+ endMd: number,
168
+ includeStartEnd = false,
169
+ ): MDPoint[] {
150
170
  if (!this._curtainPathCache) {
151
171
  const points: MDPoint[] = [];
152
172
  let prevAngle = Math.PI * 2; // Always add first point
153
- for (let i = this._offset; i <= this.length + this._offset; i += CURTAIN_SAMPLING_INTERVAL) {
173
+ for (
174
+ let i = this._offset;
175
+ i <= this.length + this._offset;
176
+ i += CURTAIN_SAMPLING_INTERVAL
177
+ ) {
154
178
  const point = this.project(i);
155
179
  const angle = Math.atan2(point[1]!, point[0]!);
156
180
 
@@ -165,11 +189,13 @@ export class IntersectionReferenceSystem {
165
189
 
166
190
  if (includeStartEnd) {
167
191
  const startPoint = { point: this.project(startMd), md: startMd };
168
- const pointsBetween = this._curtainPathCache.filter((p) => p.md > startMd && p.md < endMd);
192
+ const pointsBetween = this._curtainPathCache.filter(
193
+ p => p.md > startMd && p.md < endMd,
194
+ );
169
195
  const endPoint = { point: this.project(endMd), md: endMd };
170
196
  return [startPoint, ...pointsBetween, endPoint];
171
197
  }
172
- return this._curtainPathCache.filter((p) => p.md >= startMd && p.md <= endMd);
198
+ return this._curtainPathCache.filter(p => p.md >= startMd && p.md <= endMd);
173
199
  }
174
200
 
175
201
  /**
@@ -177,7 +203,9 @@ export class IntersectionReferenceSystem {
177
203
  */
178
204
  unproject(displacement: number): number | undefined {
179
205
  const { normalizedLength, calculateDisplacementFromBottom } = this.options;
180
- const displacementFromStart = calculateDisplacementFromBottom ? this.displacement - displacement : displacement;
206
+ const displacementFromStart = calculateDisplacementFromBottom
207
+ ? this.displacement - displacement
208
+ : displacement;
181
209
  const length = normalizedLength || this.length;
182
210
 
183
211
  if (displacementFromStart < 0) {
@@ -187,7 +215,11 @@ export class IntersectionReferenceSystem {
187
215
  return length + (displacementFromStart - this.displacement);
188
216
  }
189
217
 
190
- const ls = this.interpolators.curtain.getIntersectsAsPositions(displacementFromStart, 0, 1);
218
+ const ls = this.interpolators.curtain.getIntersectsAsPositions(
219
+ displacementFromStart,
220
+ 0,
221
+ 1,
222
+ );
191
223
  if (ls && ls.length) {
192
224
  return ls[0]! * length + this._offset;
193
225
  }
@@ -221,8 +253,14 @@ export class IntersectionReferenceSystem {
221
253
  const extensionStart = from < 0 ? -from : 0;
222
254
  const extensionEnd = to > 1 ? to - 1 : 0;
223
255
 
224
- const refStart = this.interpolators.trajectory.getPointAt(0) as [number, number];
225
- const refEnd = this.interpolators.trajectory.getPointAt(1) as [number, number];
256
+ const refStart = this.interpolators.trajectory.getPointAt(0) as [
257
+ number,
258
+ number,
259
+ ];
260
+ const refEnd = this.interpolators.trajectory.getPointAt(1) as [
261
+ number,
262
+ number,
263
+ ];
226
264
 
227
265
  let p0: [number, number];
228
266
  let p3: [number, number];
@@ -243,7 +281,10 @@ export class IntersectionReferenceSystem {
243
281
  }
244
282
 
245
283
  if (extensionEnd) {
246
- p3 = [refEnd[0] + this.endVector[0]! * extensionEnd * this.displacement, refEnd[1] + this.endVector[1]! * extensionEnd * this.displacement];
284
+ p3 = [
285
+ refEnd[0] + this.endVector[0]! * extensionEnd * this.displacement,
286
+ refEnd[1] + this.endVector[1]! * extensionEnd * this.displacement,
287
+ ];
247
288
  }
248
289
  const points = [];
249
290
  const tl = to - from;
@@ -255,15 +296,26 @@ export class IntersectionReferenceSystem {
255
296
  points.push(p0);
256
297
  for (let i = 1; i < preSteps; i++) {
257
298
  const f = (i / preSteps) * extensionStart * this.displacement;
258
- points.push([p0[0] - this.startVector[0]! * f, p0[1] - this.startVector[1]! * f]);
299
+ points.push([
300
+ p0[0] - this.startVector[0]! * f,
301
+ p0[1] - this.startVector[1]! * f,
302
+ ]);
259
303
  }
260
304
  }
261
- const curvePoints = this.interpolators.trajectory.getPoints(curveSteps - 1, null, t0, t1) as number[][]; // returns steps + 1 points
305
+ const curvePoints = this.interpolators.trajectory.getPoints(
306
+ curveSteps - 1,
307
+ null,
308
+ t0,
309
+ t1,
310
+ ) as number[][]; // returns steps + 1 points
262
311
  points.push(...curvePoints);
263
312
  if (p3!) {
264
313
  for (let i = 1; i < postSteps - 1; i++) {
265
314
  const f = (i / postSteps) * extensionEnd * this.displacement;
266
- points.push([p2[0] + this.endVector[0]! * f, p2[1] + this.endVector[1]! * f]);
315
+ points.push([
316
+ p2[0] + this.endVector[0]! * f,
317
+ p2[1] + this.endVector[1]! * f,
318
+ ]);
267
319
  }
268
320
  points.push(p3);
269
321
  }
@@ -279,34 +331,56 @@ export class IntersectionReferenceSystem {
279
331
  endExtensionLength = DEFAULT_END_EXTEND_LENGTH,
280
332
  ): Trajectory {
281
333
  if (!isFinite(startExtensionLength) || startExtensionLength < 0.0) {
282
- throw new Error('Invalid parameter, getExtendedTrajectory() must be called with a valid and positive startExtensionLength parameter');
334
+ throw new Error(
335
+ 'Invalid parameter, getExtendedTrajectory() must be called with a valid and positive startExtensionLength parameter',
336
+ );
283
337
  }
284
338
  if (!isFinite(endExtensionLength) || endExtensionLength < 0.0) {
285
- throw new Error('Invalid parameter, getExtendedTrajectory() must be called with a valid and positive endExtensionLength parameter');
339
+ throw new Error(
340
+ 'Invalid parameter, getExtendedTrajectory() must be called with a valid and positive endExtensionLength parameter',
341
+ );
286
342
  }
287
343
 
288
- const totalLength = this.displacement + startExtensionLength + endExtensionLength;
289
- const startExtensionNumPoints = Math.floor((startExtensionLength / totalLength) * numPoints);
290
- const curveSteps = Math.max(Math.ceil((this.displacement / totalLength) * numPoints), 1);
291
- const endExtensionNumPoints = numPoints - curveSteps - startExtensionNumPoints;
344
+ const totalLength =
345
+ this.displacement + startExtensionLength + endExtensionLength;
346
+ const startExtensionNumPoints = Math.floor(
347
+ (startExtensionLength / totalLength) * numPoints,
348
+ );
349
+ const curveSteps = Math.max(
350
+ Math.ceil((this.displacement / totalLength) * numPoints),
351
+ 1,
352
+ );
353
+ const endExtensionNumPoints =
354
+ numPoints - curveSteps - startExtensionNumPoints;
292
355
 
293
356
  const points = [];
294
357
 
295
- const refStart = new Vector2(this.interpolators.trajectory.getPointAt(0.0) as number[]);
358
+ const refStart = new Vector2(
359
+ this.interpolators.trajectory.getPointAt(0.0) as number[],
360
+ );
296
361
  const startVec = new Vector2(this.startVector);
297
- const startExtensionStepLength = startExtensionLength / startExtensionNumPoints;
362
+ const startExtensionStepLength =
363
+ startExtensionLength / startExtensionNumPoints;
298
364
  for (let i = startExtensionNumPoints; i > 0; i--) {
299
365
  const f = i * startExtensionStepLength;
300
366
  const point = refStart.add(startVec.scale(f));
301
367
  points.push(point.toArray());
302
368
  }
303
369
 
304
- const curveStepPoints = this.interpolators.trajectory.getPoints(curveSteps, null, 0.0, 1.0) as number[][];
370
+ const curveStepPoints = this.interpolators.trajectory.getPoints(
371
+ curveSteps,
372
+ null,
373
+ 0.0,
374
+ 1.0,
375
+ ) as number[][];
305
376
  points.push(...curveStepPoints);
306
377
 
307
- const refEnd = new Vector2(this.interpolators.trajectory.getPointAt(1.0) as number[]);
378
+ const refEnd = new Vector2(
379
+ this.interpolators.trajectory.getPointAt(1.0) as number[],
380
+ );
308
381
  const endVec = new Vector2(this.endVector);
309
- const endExtensionStepLength = endExtensionLength / (endExtensionNumPoints - 1); // -1 so last point is at end of extension
382
+ const endExtensionStepLength =
383
+ endExtensionLength / (endExtensionNumPoints - 1); // -1 so last point is at end of extension
310
384
  for (let i = 1; i < endExtensionNumPoints; i++) {
311
385
  const f = i * endExtensionStepLength;
312
386
  const point = refEnd.add(endVec.scale(f));
@@ -329,7 +403,9 @@ export class IntersectionReferenceSystem {
329
403
 
330
404
  const trajectoryVec = IntersectionReferenceSystem.getDirectionVector(
331
405
  this.interpolators.trajectory,
332
- calculateDisplacementFromBottom ? THRESHOLD_DIRECTION_DISTANCE : 1 - THRESHOLD_DIRECTION_DISTANCE,
406
+ calculateDisplacementFromBottom
407
+ ? THRESHOLD_DIRECTION_DISTANCE
408
+ : 1 - THRESHOLD_DIRECTION_DISTANCE,
333
409
  calculateDisplacementFromBottom ? 0 : 1,
334
410
  );
335
411
  return trajectoryVec;
@@ -361,7 +437,11 @@ export class IntersectionReferenceSystem {
361
437
  * @param from number between 0 and 1
362
438
  * @param to number between 0 and 1
363
439
  */
364
- static getDirectionVector(interpolator: CurveInterpolator, from: number, to: number): number[] {
440
+ static getDirectionVector(
441
+ interpolator: CurveInterpolator,
442
+ from: number,
443
+ to: number,
444
+ ): number[] {
365
445
  const p1 = interpolator.getPointAt(to);
366
446
  const p2 = interpolator.getPointAt(from);
367
447
 
@@ -17,7 +17,9 @@ export class LayerManager {
17
17
  private layers: Layer<unknown>[] = [];
18
18
 
19
19
  private _axis: Axis | undefined;
20
- private _svgContainer: Selection<HTMLDivElement, unknown, null, undefined> | undefined;
20
+ private _svgContainer:
21
+ | Selection<HTMLDivElement, unknown, null, undefined>
22
+ | undefined;
21
23
 
22
24
  /**
23
25
  * Handles layers and axis also holds a zoom and pan handler object
@@ -25,16 +27,30 @@ export class LayerManager {
25
27
  * @param scaleOptions
26
28
  * @param axisOptions
27
29
  */
28
- constructor(container: HTMLElement, scaleOptions?: ScaleOptions, axisOptions?: AxisOptions) {
30
+ constructor(
31
+ container: HTMLElement,
32
+ scaleOptions?: ScaleOptions,
33
+ axisOptions?: AxisOptions,
34
+ ) {
29
35
  this.container = container;
30
36
  this.layerContainer = document.createElement('div');
31
37
  this.layerContainer.className = 'layer-container';
32
38
  this.container.appendChild(this.layerContainer);
33
- this.adjustToSize(+(this.container.getAttribute('width') ?? 0), +(this.container.getAttribute('height') ?? 0));
34
- this._zoomPanHandler = new ZoomPanHandler(container, (event) => this.rescale(event));
39
+ this.adjustToSize(
40
+ +(this.container.getAttribute('width') ?? 0),
41
+ +(this.container.getAttribute('height') ?? 0),
42
+ );
43
+ this._zoomPanHandler = new ZoomPanHandler(container, event =>
44
+ this.rescale(event),
45
+ );
35
46
  if (scaleOptions) {
36
47
  const { xMin, xMax, yMin, yMax, xBounds, yBounds } = scaleOptions;
37
- if (xMin !== undefined && xMax !== undefined && yMin !== undefined && yMax !== undefined) {
48
+ if (
49
+ xMin !== undefined &&
50
+ xMax !== undefined &&
51
+ yMin !== undefined &&
52
+ yMax !== undefined
53
+ ) {
38
54
  this._zoomPanHandler.setBounds([xMin, xMax], [yMin, yMax]);
39
55
  }
40
56
  if (xBounds && yBounds) {
@@ -56,7 +72,7 @@ export class LayerManager {
56
72
  * @param layers array of layers
57
73
  */
58
74
  addLayers(layers: Layer<unknown>[]): LayerManager {
59
- layers.forEach((layer) => this.addLayer(layer));
75
+ layers.forEach(layer => this.addLayer(layer));
60
76
  return this;
61
77
  }
62
78
 
@@ -72,7 +88,7 @@ export class LayerManager {
72
88
  * @param includeReferenceSystem - (optional) if true also removes reference system, default is true
73
89
  */
74
90
  clearAllData(includeReferenceSystem = true): LayerManager {
75
- this.layers.forEach((l) => l.clearData(includeReferenceSystem));
91
+ this.layers.forEach(l => l.clearData(includeReferenceSystem));
76
92
  return this;
77
93
  }
78
94
 
@@ -81,7 +97,10 @@ export class LayerManager {
81
97
  * @param layer Layer
82
98
  * @param params extra params to pass to the onUpdate method
83
99
  */
84
- addLayer(layer: Layer<unknown>, params?: LayerOptions<unknown>): LayerManager {
100
+ addLayer(
101
+ layer: Layer<unknown>,
102
+ params?: LayerOptions<unknown>,
103
+ ): LayerManager {
85
104
  this.layers.push(layer);
86
105
  this.initLayer(layer, params);
87
106
 
@@ -93,10 +112,10 @@ export class LayerManager {
93
112
  * @param layerId name of layer
94
113
  */
95
114
  removeLayer(layerId: string): LayerManager {
96
- const layer = this.layers.find((l) => l.id === layerId);
115
+ const layer = this.layers.find(l => l.id === layerId);
97
116
  if (layer) {
98
117
  layer.onUnmount();
99
- this.layers = this.layers.filter((l) => l.id !== layerId);
118
+ this.layers = this.layers.filter(l => l.id !== layerId);
100
119
  }
101
120
 
102
121
  return this;
@@ -107,17 +126,22 @@ export class LayerManager {
107
126
  */
108
127
  removeAllLayers(): LayerManager {
109
128
  const { layers } = this;
110
- layers.forEach((layer) => {
129
+ layers.forEach(layer => {
111
130
  this.removeLayer(layer.id);
112
131
  });
113
132
  return this;
114
133
  }
115
134
 
116
135
  getLayer(layerId: string): Layer<unknown> | undefined {
117
- return this.layers.find((l) => l.id === layerId || l.getInternalLayerIds().includes(layerId));
136
+ return this.layers.find(
137
+ l => l.id === layerId || l.getInternalLayerIds().includes(layerId),
138
+ );
118
139
  }
119
140
 
120
- initLayer(layer: Layer<unknown>, params?: LayerOptions<unknown>): LayerManager {
141
+ initLayer(
142
+ layer: Layer<unknown>,
143
+ params?: LayerOptions<unknown>,
144
+ ): LayerManager {
121
145
  const event: OnMountEvent = {
122
146
  elm: this.layerContainer,
123
147
  };
@@ -127,7 +151,12 @@ export class LayerManager {
127
151
  layer.onRescale(rescaleEvent);
128
152
 
129
153
  if (this._svgContainer) {
130
- const highestZIndex = this.layers.length > 0 ? this.layers.reduce((max, layers) => (max.order > layers.order ? max : layers)).order : 1;
154
+ const highestZIndex =
155
+ this.layers.length > 0
156
+ ? this.layers.reduce((max, layers) =>
157
+ max.order > layers.order ? max : layers,
158
+ ).order
159
+ : 1;
131
160
  this._svgContainer.style('z-index', `${highestZIndex + 1}`);
132
161
  }
133
162
 
@@ -160,8 +189,14 @@ export class LayerManager {
160
189
  * @param height (required)
161
190
  */
162
191
  adjustToSize(width: number, height: number): void {
163
- const layersWidth = Math.max(this._axis ? width - HORIZONTAL_AXIS_MARGIN : width, 0);
164
- const layersHeight = Math.max(this._axis ? height - VERTICAL_AXIS_MARGIN : height, 0);
192
+ const layersWidth = Math.max(
193
+ this._axis ? width - HORIZONTAL_AXIS_MARGIN : width,
194
+ 0,
195
+ );
196
+ const layersHeight = Math.max(
197
+ this._axis ? height - VERTICAL_AXIS_MARGIN : height,
198
+ 0,
199
+ );
165
200
 
166
201
  if (this._axis) {
167
202
  const resizeEvent = { width, height };
@@ -169,7 +204,7 @@ export class LayerManager {
169
204
  }
170
205
  if (this.layers) {
171
206
  const resizeEvent = { width: layersWidth, height: layersHeight };
172
- this.layers.forEach((layer) => layer.onResize(resizeEvent));
207
+ this.layers.forEach(layer => layer.onResize(resizeEvent));
173
208
  }
174
209
  if (this._zoomPanHandler) {
175
210
  this._zoomPanHandler.adjustToSize(layersWidth, layersHeight, true);
@@ -177,7 +212,7 @@ export class LayerManager {
177
212
  }
178
213
 
179
214
  setReferenceSystem(irs: IntersectionReferenceSystem): void {
180
- this.layers.forEach((layer) => (layer.referenceSystem = irs));
215
+ this.layers.forEach(layer => (layer.referenceSystem = irs));
181
216
  }
182
217
 
183
218
  showAxis(): LayerManager {
@@ -204,7 +239,9 @@ export class LayerManager {
204
239
  if (this._axis) {
205
240
  this._axis.offsetX = x;
206
241
  this._axis.offsetY = y;
207
- const gridLayers = this.layers.filter((l: Layer<unknown>): l is GridLayer<unknown> => l instanceof GridLayer);
242
+ const gridLayers = this.layers.filter(
243
+ (l: Layer<unknown>): l is GridLayer<unknown> => l instanceof GridLayer,
244
+ );
208
245
  gridLayers.forEach((l: GridLayer<unknown>) => {
209
246
  l.offsetX = x;
210
247
  l.offsetY = y;
@@ -216,7 +253,9 @@ export class LayerManager {
216
253
  setXAxisOffset(x: number): LayerManager {
217
254
  if (this._axis) {
218
255
  this._axis.offsetX = x;
219
- const gridLayers = this.layers.filter((l: Layer<unknown>): l is GridLayer<unknown> => l instanceof GridLayer);
256
+ const gridLayers = this.layers.filter(
257
+ (l: Layer<unknown>): l is GridLayer<unknown> => l instanceof GridLayer,
258
+ );
220
259
  gridLayers.forEach((l: GridLayer<unknown>) => {
221
260
  l.offsetX = x;
222
261
  });
@@ -227,7 +266,9 @@ export class LayerManager {
227
266
  setYAxisOffset(y: number): LayerManager {
228
267
  if (this._axis) {
229
268
  this._axis.offsetY = y;
230
- const gridLayers = this.layers.filter((l: Layer<unknown>): l is GridLayer<unknown> => l instanceof GridLayer);
269
+ const gridLayers = this.layers.filter(
270
+ (l: Layer<unknown>): l is GridLayer<unknown> => l instanceof GridLayer,
271
+ );
231
272
  gridLayers.forEach((l: GridLayer<unknown>) => {
232
273
  l.offsetY = y;
233
274
  });
@@ -272,7 +313,9 @@ export class LayerManager {
272
313
  this._axis.onRescale(event);
273
314
  }
274
315
  if (this.layers) {
275
- this.layers.forEach((layer) => (layer.isVisible === true ? layer.onRescale(event) : {}));
316
+ this.layers.forEach(layer =>
317
+ layer.isVisible === true ? layer.onRescale(event) : {},
318
+ );
276
319
  }
277
320
  }
278
321
 
@@ -285,11 +328,20 @@ export class LayerManager {
285
328
  .style('z-index', '10')
286
329
  .style('pointer-events', 'none');
287
330
 
288
- const svg = this._svgContainer.append('svg').attr('height', `${container.offsetHeight}px`).attr('width', `${container.offsetWidth}px`);
331
+ const svg = this._svgContainer
332
+ .append('svg')
333
+ .attr('height', `${container.offsetHeight}px`)
334
+ .attr('width', `${container.offsetWidth}px`);
289
335
 
290
336
  const showLabels = true;
291
337
 
292
- const axis = new Axis(svg, showLabels, options.xLabel, options.yLabel, options.unitOfMeasure);
338
+ const axis = new Axis(
339
+ svg,
340
+ showLabels,
341
+ options.xLabel,
342
+ options.yLabel,
343
+ options.unitOfMeasure,
344
+ );
293
345
 
294
346
  return axis;
295
347
  };
@@ -30,13 +30,25 @@ export class Controller {
30
30
  * @param options.referenceSystem (optional) sets reference system, takes priority over path if both are supplied
31
31
  */
32
32
  constructor(options: ControllerOptions) {
33
- const { container, axisOptions, scaleOptions, referenceSystem, layers, path } = options;
34
-
35
- this._referenceSystem = referenceSystem || (path && new IntersectionReferenceSystem(path));
33
+ const {
34
+ container,
35
+ axisOptions,
36
+ scaleOptions,
37
+ referenceSystem,
38
+ layers,
39
+ path,
40
+ } = options;
41
+
42
+ this._referenceSystem =
43
+ referenceSystem || (path && new IntersectionReferenceSystem(path));
36
44
 
37
45
  this._overlay = overlay(this, container);
38
46
 
39
- this.layerManager = new LayerManager(this._overlay.elm.node() as HTMLElement, scaleOptions, axisOptions);
47
+ this.layerManager = new LayerManager(
48
+ this._overlay.elm.node() as HTMLElement,
49
+ scaleOptions,
50
+ axisOptions,
51
+ );
40
52
  if (layers) {
41
53
  this.layerManager.addLayers(layers);
42
54
  this.setOverlayZIndex(layers);
@@ -136,8 +148,15 @@ export class Controller {
136
148
  adjustToSize(width: number, height: number): Controller {
137
149
  this.layerManager.adjustToSize(width, height);
138
150
 
139
- const dimensions = { width: Math.max(width - HORIZONTAL_AXIS_MARGIN, 0), height: Math.max(height - VERTICAL_AXIS_MARGIN, 0) };
140
- this.overlay.elm.dispatch('resize', { detail: dimensions, bubbles: true, cancelable: true });
151
+ const dimensions = {
152
+ width: Math.max(width - HORIZONTAL_AXIS_MARGIN, 0),
153
+ height: Math.max(height - VERTICAL_AXIS_MARGIN, 0),
154
+ };
155
+ this.overlay.elm.dispatch('resize', {
156
+ detail: dimensions,
157
+ bubbles: true,
158
+ cancelable: true,
159
+ });
141
160
 
142
161
  return this;
143
162
  }
@@ -149,7 +168,12 @@ export class Controller {
149
168
  * @param displ - displacement
150
169
  * @param duration - duration of transition
151
170
  */
152
- setViewport(cx?: number, cy?: number, displacement?: number, duration?: number): Controller {
171
+ setViewport(
172
+ cx?: number,
173
+ cy?: number,
174
+ displacement?: number,
175
+ duration?: number,
176
+ ): Controller {
153
177
  this.zoomPanHandler.setViewport(cx, cy, displacement, duration);
154
178
  return this;
155
179
  }
@@ -263,7 +287,12 @@ export class Controller {
263
287
  }
264
288
 
265
289
  private getHighestZIndex(layers: Layer<unknown>[]): number {
266
- const highestZIndex = layers.length > 0 ? layers.reduce((max, layers) => (max.order > layers.order ? max : layers)).order : 1;
290
+ const highestZIndex =
291
+ layers.length > 0
292
+ ? layers.reduce((max, layers) =>
293
+ max.order > layers.order ? max : layers,
294
+ ).order
295
+ : 1;
267
296
  return highestZIndex;
268
297
  }
269
298