@equinor/esv-intersection 3.0.1 → 3.0.4

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 (109) hide show
  1. package/dist/index.cjs +2 -2
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.mjs +2241 -1938
  4. package/dist/index.mjs.map +1 -1
  5. package/dist/index.umd.js +2 -2
  6. package/dist/index.umd.js.map +1 -1
  7. package/package.json +21 -22
  8. package/dist/components/axis.d.ts +0 -47
  9. package/dist/components/index.d.ts +0 -1
  10. package/dist/control/ExtendedCurveInterpolator.d.ts +0 -58
  11. package/dist/control/IntersectionReferenceSystem.d.ts +0 -96
  12. package/dist/control/LayerManager.d.ts +0 -76
  13. package/dist/control/MainController.d.ts +0 -154
  14. package/dist/control/ZoomPanHandler.d.ts +0 -158
  15. package/dist/control/index.d.ts +0 -5
  16. package/dist/control/interfaces.d.ts +0 -37
  17. package/dist/control/overlay.d.ts +0 -20
  18. package/dist/datautils/colortable.d.ts +0 -1
  19. package/dist/datautils/findsample.d.ts +0 -2
  20. package/dist/datautils/index.d.ts +0 -6
  21. package/dist/datautils/interfaces.d.ts +0 -63
  22. package/dist/datautils/picks.d.ts +0 -74
  23. package/dist/datautils/schematicShapeGenerator.d.ts +0 -59
  24. package/dist/datautils/seismicimage.d.ts +0 -45
  25. package/dist/datautils/surfacedata.d.ts +0 -10
  26. package/dist/datautils/trajectory.d.ts +0 -14
  27. package/dist/layers/CalloutCanvasLayer.d.ts +0 -60
  28. package/dist/layers/CustomDisplayObjects/ComplexRope.d.ts +0 -22
  29. package/dist/layers/CustomDisplayObjects/ComplexRopeGeometry.d.ts +0 -27
  30. package/dist/layers/CustomDisplayObjects/FixedWidthSimpleRope.d.ts +0 -20
  31. package/dist/layers/CustomDisplayObjects/FixedWidthSimpleRopeGeometry.d.ts +0 -26
  32. package/dist/layers/CustomDisplayObjects/UniformTextureStretchRope.d.ts +0 -17
  33. package/dist/layers/CustomDisplayObjects/UniformTextureStretchRopeGeometry.d.ts +0 -24
  34. package/dist/layers/GeomodelCanvasLayer.d.ts +0 -28
  35. package/dist/layers/GeomodelLabelsLayer.d.ts +0 -49
  36. package/dist/layers/GeomodelLayerV2.d.ts +0 -12
  37. package/dist/layers/GridLayer.d.ts +0 -29
  38. package/dist/layers/ImageCanvasLayer.d.ts +0 -20
  39. package/dist/layers/ReferenceLineLayer.d.ts +0 -29
  40. package/dist/layers/SchematicLayer.d.ts +0 -113
  41. package/dist/layers/SeismicCanvasLayer.d.ts +0 -18
  42. package/dist/layers/WellborePathLayer.d.ts +0 -17
  43. package/dist/layers/base/CanvasLayer.d.ts +0 -19
  44. package/dist/layers/base/HTMLLayer.d.ts +0 -13
  45. package/dist/layers/base/Layer.d.ts +0 -69
  46. package/dist/layers/base/PixiLayer.d.ts +0 -32
  47. package/dist/layers/base/SVGLayer.d.ts +0 -13
  48. package/dist/layers/base/index.d.ts +0 -5
  49. package/dist/layers/index.d.ts +0 -16
  50. package/dist/layers/schematicInterfaces.d.ts +0 -208
  51. package/dist/utils/arc-length.d.ts +0 -23
  52. package/dist/utils/binary-search.d.ts +0 -8
  53. package/dist/utils/color.d.ts +0 -5
  54. package/dist/utils/index.d.ts +0 -1
  55. package/dist/utils/root-finder.d.ts +0 -34
  56. package/dist/utils/text.d.ts +0 -14
  57. package/dist/utils/vectorUtils.d.ts +0 -15
  58. package/dist/vendor/pixi-dashed-line/index.d.ts +0 -57
  59. package/src/components/axis.ts +0 -247
  60. package/src/components/index.ts +0 -1
  61. package/src/control/ExtendedCurveInterpolator.ts +0 -155
  62. package/src/control/IntersectionReferenceSystem.ts +0 -391
  63. package/src/control/LayerManager.ts +0 -294
  64. package/src/control/MainController.ts +0 -296
  65. package/src/control/ZoomPanHandler.ts +0 -436
  66. package/src/control/index.ts +0 -5
  67. package/src/control/interfaces.ts +0 -42
  68. package/src/control/overlay.ts +0 -118
  69. package/src/datautils/colortable.ts +0 -14
  70. package/src/datautils/findsample.ts +0 -64
  71. package/src/datautils/index.ts +0 -6
  72. package/src/datautils/interfaces.ts +0 -68
  73. package/src/datautils/picks.ts +0 -328
  74. package/src/datautils/schematicShapeGenerator.ts +0 -1007
  75. package/src/datautils/seismicimage.ts +0 -180
  76. package/src/datautils/surfacedata.ts +0 -318
  77. package/src/datautils/trajectory.ts +0 -206
  78. package/src/layers/CalloutCanvasLayer.ts +0 -338
  79. package/src/layers/CustomDisplayObjects/ComplexRope.ts +0 -45
  80. package/src/layers/CustomDisplayObjects/ComplexRopeGeometry.ts +0 -190
  81. package/src/layers/CustomDisplayObjects/FixedWidthSimpleRope.ts +0 -41
  82. package/src/layers/CustomDisplayObjects/FixedWidthSimpleRopeGeometry.ts +0 -149
  83. package/src/layers/CustomDisplayObjects/UniformTextureStretchRope.ts +0 -39
  84. package/src/layers/CustomDisplayObjects/UniformTextureStretchRopeGeometry.ts +0 -174
  85. package/src/layers/GeomodelCanvasLayer.ts +0 -176
  86. package/src/layers/GeomodelLabelsLayer.ts +0 -619
  87. package/src/layers/GeomodelLayerV2.ts +0 -110
  88. package/src/layers/GridLayer.ts +0 -145
  89. package/src/layers/ImageCanvasLayer.ts +0 -55
  90. package/src/layers/ReferenceLineLayer.ts +0 -185
  91. package/src/layers/SchematicLayer.ts +0 -871
  92. package/src/layers/SeismicCanvasLayer.ts +0 -46
  93. package/src/layers/WellborePathLayer.ts +0 -129
  94. package/src/layers/base/CanvasLayer.ts +0 -102
  95. package/src/layers/base/HTMLLayer.ts +0 -70
  96. package/src/layers/base/Layer.ts +0 -217
  97. package/src/layers/base/PixiLayer.ts +0 -190
  98. package/src/layers/base/SVGLayer.ts +0 -63
  99. package/src/layers/base/index.ts +0 -5
  100. package/src/layers/index.ts +0 -16
  101. package/src/layers/schematicInterfaces.ts +0 -470
  102. package/src/utils/arc-length.ts +0 -66
  103. package/src/utils/binary-search.ts +0 -26
  104. package/src/utils/color.ts +0 -22
  105. package/src/utils/index.ts +0 -1
  106. package/src/utils/root-finder.ts +0 -78
  107. package/src/utils/text.ts +0 -88
  108. package/src/utils/vectorUtils.ts +0 -67
  109. package/src/vendor/pixi-dashed-line/index.ts +0 -394
@@ -1,46 +0,0 @@
1
- import { CanvasLayer } from './base/CanvasLayer';
2
- import { OnUpdateEvent, OnMountEvent, OnRescaleEvent } from '../interfaces';
3
-
4
- export type SeismicCanvasDataOptions = {
5
- x: number;
6
- y: number;
7
- width: number;
8
- height: number;
9
- };
10
-
11
- export type SeismicCanvasData = {
12
- image: CanvasImageSource | OffscreenCanvas;
13
- options: SeismicCanvasDataOptions;
14
- };
15
-
16
- export class SeismicCanvasLayer extends CanvasLayer<SeismicCanvasData> {
17
- onMount(event: OnMountEvent): void {
18
- super.onMount(event);
19
- }
20
-
21
- onUpdate(event: OnUpdateEvent<SeismicCanvasData>): void {
22
- super.onUpdate(event);
23
-
24
- this.clearCanvas();
25
-
26
- this.render();
27
- }
28
-
29
- onRescale(event: OnRescaleEvent): void {
30
- super.onRescale(event);
31
- this.setTransform(event);
32
- this.render();
33
- }
34
-
35
- render(): void {
36
- if (!this.data || !this.ctx || !this.data.image) {
37
- return;
38
- }
39
- const { ctx } = this;
40
- const { options, image } = this.data;
41
-
42
- this.clearCanvas();
43
-
44
- ctx.drawImage(image, options.x, options.y, options.width, options.height);
45
- }
46
- }
@@ -1,129 +0,0 @@
1
- import {
2
- line,
3
- curveCatmullRom,
4
- curveLinear,
5
- curveBasis,
6
- curveBasisClosed,
7
- curveBundle,
8
- curveCardinal,
9
- curveMonotoneX,
10
- curveMonotoneY,
11
- curveNatural,
12
- curveStep,
13
- curveStepAfter,
14
- curveStepBefore,
15
- } from 'd3-shape';
16
- import { SVGLayer } from './base/SVGLayer';
17
- import { OnUpdateEvent, OnRescaleEvent } from '../interfaces';
18
- import { LayerOptions } from '..';
19
-
20
- const CURVE_CATMULL_ROM_ALPHA = 0.7;
21
- const CURVE_CARDINAL_TENSION = 0.9;
22
- const CURVE_BUNDLE_BETA = 1.0;
23
-
24
- export interface WellborepathLayerOptions<T extends [number, number][]> extends LayerOptions<T> {
25
- stroke: string;
26
- strokeWidth: string;
27
- curveType?: string;
28
- tension?: number;
29
- }
30
-
31
- export class WellborepathLayer<T extends [number, number][]> extends SVGLayer<T> {
32
- rescaleEvent: OnRescaleEvent;
33
-
34
- constructor(id?: string, options?: WellborepathLayerOptions<T>) {
35
- super(id, options);
36
- this.options = {
37
- ...this.options,
38
- ...options,
39
- };
40
- this.render = this.render.bind(this);
41
- }
42
-
43
- onUpdate(event: OnUpdateEvent<T>): void {
44
- super.onUpdate(event);
45
- this.render();
46
- }
47
-
48
- onRescale(event: OnRescaleEvent): void {
49
- super.onRescale(event);
50
- if (!this.elm) {
51
- return;
52
- }
53
- this.rescaleEvent = event;
54
- this.render();
55
- }
56
-
57
- render(): void {
58
- const { strokeWidth, stroke } = this.options as WellborepathLayerOptions<T>;
59
-
60
- if (!this.elm) {
61
- return;
62
- }
63
- this.elm.select('g').remove();
64
-
65
- const data = this.data || (this.referenceSystem && (this.referenceSystem.projectedPath as [number, number][]));
66
- if (!data || !this.rescaleEvent) {
67
- return;
68
- }
69
-
70
- this.elm
71
- .append('g')
72
- .attr('class', 'well-path')
73
- .append('path')
74
- .attr('d', this.renderWellborePath(data))
75
- .attr('stroke-width', strokeWidth || '2px')
76
- .attr('stroke', stroke || 'red')
77
- .attr('fill', 'none');
78
- }
79
-
80
- private renderWellborePath(data: [number, number][]): string {
81
- const { xScale, yScale } = this.rescaleEvent;
82
- const transformedData: [number, number][] = data.map((d) => [xScale(d[0]), yScale(d[1])]);
83
-
84
- // TODO: Might be a good idea to move something like this to a shared function in a base class
85
- let curveFactory;
86
- const { curveType, tension } = this.options as WellborepathLayerOptions<T>;
87
- switch (curveType) {
88
- default:
89
- case 'curveCatmullRom':
90
- curveFactory = curveCatmullRom.alpha(tension || CURVE_CATMULL_ROM_ALPHA);
91
- break;
92
- case 'curveLinear':
93
- curveFactory = curveLinear;
94
- break;
95
- case 'curveBasis':
96
- curveFactory = curveBasis;
97
- break;
98
- case 'curveBasisClosed':
99
- curveFactory = curveBasisClosed;
100
- break;
101
- case 'curveBundle':
102
- curveFactory = curveBundle.beta(tension || CURVE_BUNDLE_BETA);
103
- break;
104
- case 'curveCardinal':
105
- curveFactory = curveCardinal.tension(tension || CURVE_CARDINAL_TENSION);
106
- break;
107
- case 'curveMonotoneX':
108
- curveFactory = curveMonotoneX;
109
- break;
110
- case 'curveMonotoneY':
111
- curveFactory = curveMonotoneY;
112
- break;
113
- case 'curveNatural':
114
- curveFactory = curveNatural;
115
- break;
116
- case 'curveStep':
117
- curveFactory = curveStep;
118
- break;
119
- case 'curveStepAfter':
120
- curveFactory = curveStepAfter;
121
- break;
122
- case 'curveStepBefore':
123
- curveFactory = curveStepBefore;
124
- break;
125
- }
126
-
127
- return line().curve(curveFactory)(transformedData);
128
- }
129
- }
@@ -1,102 +0,0 @@
1
- import { Layer } from './Layer';
2
- import { OnMountEvent, OnUpdateEvent, OnResizeEvent, OnRescaleEvent } from '../../interfaces';
3
- import { DEFAULT_LAYER_HEIGHT, DEFAULT_LAYER_WIDTH } from '../../constants';
4
-
5
- export abstract class CanvasLayer<T> extends Layer<T> {
6
- ctx: CanvasRenderingContext2D;
7
- elm: HTMLElement;
8
- canvas: HTMLCanvasElement;
9
-
10
- onOpacityChanged(_opacity: number): void {
11
- if (this.canvas) {
12
- this.updateStyle();
13
- }
14
- }
15
-
16
- onOrderChanged(_order: number): void {
17
- if (this.canvas) {
18
- this.updateStyle();
19
- }
20
- }
21
-
22
- onInteractivityChanged(_interactive: boolean): void {
23
- if (this.canvas) {
24
- this.updateStyle();
25
- }
26
- }
27
-
28
- setVisibility(visible: boolean): void {
29
- super.setVisibility(visible);
30
- if (this.canvas) {
31
- this.updateStyle(visible);
32
- }
33
- }
34
-
35
- updateStyle(visible?: boolean): void {
36
- const isVisible = visible || this.isVisible;
37
- const visibility = isVisible ? 'visible' : 'hidden';
38
- const interactive = this.interactive ? 'auto' : 'none';
39
- this.canvas.setAttribute(
40
- 'style',
41
- `position:absolute;pointer-events:${interactive};z-index:${this.order};opacity:${this.opacity};visibility:${visibility}`,
42
- );
43
- }
44
-
45
- onMount(event: OnMountEvent): void {
46
- super.onMount(event);
47
- const { elm } = event;
48
- const width = event.width || parseInt(elm.getAttribute('width'), 10) || DEFAULT_LAYER_WIDTH;
49
- const height = event.height || parseInt(elm.getAttribute('height'), 10) || DEFAULT_LAYER_HEIGHT;
50
- this.elm = elm;
51
- let canvas;
52
- if (!this.canvas) {
53
- canvas = document.createElement('canvas');
54
- this.canvas = canvas;
55
- event.elm.appendChild(canvas);
56
- }
57
- this.canvas.setAttribute('id', `${this.id}`);
58
- this.canvas.setAttribute('width', `${width}px`);
59
- this.canvas.setAttribute('height', `${height}px`);
60
- this.canvas.setAttribute('class', 'canvas-layer');
61
- this.updateStyle();
62
- this.ctx = this.canvas.getContext('2d');
63
- }
64
-
65
- onUnmount(): void {
66
- super.onUnmount();
67
- this.canvas.remove();
68
- this.canvas = null;
69
- }
70
-
71
- onResize(event: OnResizeEvent): void {
72
- const { ctx } = this;
73
- const { width, height } = event;
74
-
75
- ctx.canvas.setAttribute('width', `${width}px`);
76
- ctx.canvas.setAttribute('height', `${height}px`);
77
- }
78
-
79
- onUpdate(event: OnUpdateEvent<T>): void {
80
- super.onUpdate(event);
81
- }
82
-
83
- resetTransform(): void {
84
- this.ctx.resetTransform();
85
- }
86
-
87
- setTransform(event: OnRescaleEvent): void {
88
- this.resetTransform();
89
- const flippedX = event.xBounds[0] > event.xBounds[1];
90
- const flippedY = event.yBounds[0] > event.yBounds[1];
91
- this.ctx.translate(event.xScale(0), event.yScale(0));
92
- this.ctx.scale(event.xRatio * (flippedX ? -1 : 1), event.yRatio * (flippedY ? -1 : 1));
93
- }
94
-
95
- clearCanvas(): void {
96
- const { ctx, canvas } = this;
97
- ctx.save();
98
- ctx.resetTransform();
99
- ctx.clearRect(0, 0, canvas.width, canvas.height);
100
- ctx.restore();
101
- }
102
- }
@@ -1,70 +0,0 @@
1
- import { select, Selection } from 'd3-selection';
2
- import { Layer } from './Layer';
3
- import { OnMountEvent, OnResizeEvent } from '../../interfaces';
4
- import { DEFAULT_LAYER_HEIGHT, DEFAULT_LAYER_WIDTH } from '../../constants';
5
-
6
- export abstract class HTMLLayer<T> extends Layer<T> {
7
- elm: Selection<HTMLElement, unknown, null, undefined>;
8
-
9
- onMount(event: OnMountEvent): void {
10
- super.onMount(event);
11
- const { elm } = event;
12
- const width = event.width || parseInt(elm.getAttribute('width'), 10) || DEFAULT_LAYER_WIDTH;
13
- const height = event.height || parseInt(elm.getAttribute('height'), 10) || DEFAULT_LAYER_HEIGHT;
14
-
15
- if (!this.elm) {
16
- this.elm = select(elm).append('div');
17
- this.elm.attr('id', `${this.id}`);
18
- this.elm.attr('class', 'html-layer');
19
- }
20
- const interactive = this.interactive ? 'auto' : 'none';
21
- this.elm
22
- .style('position', 'absolute')
23
- .style('height', `${height}px`)
24
- .style('width', `${width}px`)
25
- .style('opacity', this.opacity)
26
- .style('overflow', 'hidden')
27
- .style('pointer-events', interactive)
28
- .style('z-index', this.order);
29
- }
30
-
31
- onUnmount(): void {
32
- super.onUnmount();
33
- this.elm.remove();
34
- this.elm = null;
35
- }
36
-
37
- onResize(event: OnResizeEvent): void {
38
- if (!this.elm) {
39
- return;
40
- }
41
- super.onResize(event);
42
- this.elm.style('height', `${event.height}px`).style('width', `${event.width}px`);
43
- }
44
-
45
- setVisibility(visible: boolean): void {
46
- super.setVisibility(visible);
47
- if (this.elm) {
48
- this.elm.attr('visibility', visible ? 'visible' : 'hidden');
49
- }
50
- }
51
-
52
- onOpacityChanged(opacity: number): void {
53
- if (this.elm) {
54
- this.elm.style('opacity', opacity);
55
- }
56
- }
57
-
58
- onOrderChanged(order: number): void {
59
- if (this.elm) {
60
- this.elm.style('z-index', order);
61
- }
62
- }
63
-
64
- onInteractivityChanged(shouldBeInteractive: boolean): void {
65
- if (this.elm) {
66
- const interactive = shouldBeInteractive ? 'auto' : 'none';
67
- this.elm.style('pointer-events', interactive);
68
- }
69
- }
70
- }
@@ -1,217 +0,0 @@
1
- import { OnMountEvent, OnUnmountEvent, OnUpdateEvent, OnRescaleEvent, OnResizeEvent } from '../../interfaces';
2
- import { IntersectionReferenceSystem } from '../../control';
3
-
4
- const defaultOptions = {
5
- order: 1,
6
- layerOpacity: 1,
7
- interactive: false,
8
- };
9
-
10
- export interface LayerOptions<T> {
11
- order?: number;
12
- layerOpacity?: number;
13
- referenceSystem?: IntersectionReferenceSystem;
14
- data?: T;
15
- interactive?: boolean;
16
-
17
- onMount?(event: OnMountEvent, layer: Layer<T>): void;
18
- onUnmount?(event: OnUnmountEvent, layer: Layer<T>): void;
19
- onUpdate?(event: OnUpdateEvent<T>, layer: Layer<T>): void;
20
- onRescale?(event: OnRescaleEvent, layer: Layer<T>): void;
21
- onResize?(event: OnResizeEvent, layer: Layer<T>): void;
22
- }
23
-
24
- export abstract class Layer<T> {
25
- private _id: string;
26
- private _order: number;
27
- protected _options: LayerOptions<T>;
28
- private loading: boolean;
29
- private _element?: HTMLElement;
30
- private _opacity: number;
31
- private _referenceSystem?: IntersectionReferenceSystem = null;
32
- private _data?: T;
33
- private _visible: boolean;
34
- private _interactive: boolean = false;
35
-
36
- constructor(id?: string, options?: LayerOptions<T>) {
37
- this._id = id || `layer-${Math.floor(Math.random() * 1000)}`;
38
- const opts = options || defaultOptions;
39
- this._order = opts.order || 1;
40
- this._options = {
41
- ...opts,
42
- };
43
- this.loading = false;
44
- this._element = null;
45
- this._opacity = opts.layerOpacity || 1;
46
- this._visible = true;
47
- this._interactive = opts.interactive || false;
48
-
49
- if (options && options.data) {
50
- this.setData(options.data);
51
- }
52
- this._referenceSystem = options && options.referenceSystem;
53
-
54
- this.onMount = this.onMount.bind(this);
55
- this.onUnmount = this.onUnmount.bind(this);
56
- this.onUpdate = this.onUpdate.bind(this);
57
- this.onRescale = this.onRescale.bind(this);
58
- this.onResize = this.onResize.bind(this);
59
- this.onOrderChanged = this.onOrderChanged.bind(this);
60
- this.onOpacityChanged = this.onOpacityChanged.bind(this);
61
- this.setVisibility = this.setVisibility.bind(this);
62
- }
63
-
64
- get id(): string {
65
- return this._id;
66
- }
67
-
68
- get element(): HTMLElement {
69
- return this._element;
70
- }
71
-
72
- get options(): LayerOptions<T> {
73
- return this._options;
74
- }
75
-
76
- set options(options: LayerOptions<T>) {
77
- this._options = options;
78
- }
79
-
80
- set isLoading(loading: boolean) {
81
- this.loading = loading;
82
- }
83
-
84
- get isLoading(): boolean {
85
- return this.loading;
86
- }
87
-
88
- set opacity(opacity: number) {
89
- this._opacity = opacity;
90
- this.onOpacityChanged(opacity);
91
- }
92
-
93
- get opacity(): number {
94
- return this._opacity;
95
- }
96
-
97
- set order(order: number) {
98
- this._order = order;
99
- this.onOrderChanged(order);
100
- }
101
-
102
- get order(): number {
103
- return this._order;
104
- }
105
-
106
- set interactive(shouldBeInteractive: boolean) {
107
- this._interactive = shouldBeInteractive;
108
- this.onInteractivityChanged(shouldBeInteractive);
109
- }
110
-
111
- get interactive(): boolean {
112
- return this._interactive;
113
- }
114
-
115
- get referenceSystem(): IntersectionReferenceSystem {
116
- return this._referenceSystem;
117
- }
118
-
119
- set referenceSystem(referenceSystem: IntersectionReferenceSystem) {
120
- this._referenceSystem = referenceSystem;
121
- }
122
-
123
- get data(): T {
124
- return this.getData();
125
- }
126
-
127
- set data(data: T) {
128
- this.setData(data);
129
- }
130
-
131
- get isVisible(): boolean {
132
- return this._visible;
133
- }
134
-
135
- getData(): T {
136
- return this._data;
137
- }
138
-
139
- setData(data: T): void {
140
- this._data = data;
141
- // should not be called when there is no visual element to work with
142
- if (this.element) {
143
- this.onUpdate({ data });
144
- }
145
- }
146
-
147
- /**
148
- * Clears data and (optionally) the reference system
149
- * @param includeReferenceSystem - (optional) if true also removes reference system, default is true
150
- */
151
- clearData(includeReferenceSystem: boolean = true): void {
152
- this._data = null;
153
- if (includeReferenceSystem) {
154
- this.referenceSystem = null;
155
- }
156
- this.onUpdate({});
157
- }
158
-
159
- setVisibility(visible: boolean, _layerId?: string): void {
160
- this._visible = visible;
161
- }
162
-
163
- onMount(event: OnMountEvent): void {
164
- this._element = event.elm;
165
- if (this._options.onMount) {
166
- this._options.onMount(event, this);
167
- }
168
- }
169
-
170
- onUnmount(event?: OnUnmountEvent): void {
171
- if (this._options.onUnmount) {
172
- this._options.onUnmount(event, this);
173
- }
174
- }
175
-
176
- onResize(event: OnResizeEvent): void {
177
- if (this._options.onResize) {
178
- this._options.onResize(event, this);
179
- }
180
- }
181
-
182
- onUpdate(event: OnUpdateEvent<T>): void {
183
- if (event.data) {
184
- this._data = event.data;
185
- }
186
- if (this._options.onUpdate) {
187
- this._options.onUpdate(event, this);
188
- }
189
- }
190
-
191
- onRescale(event: OnRescaleEvent): void {
192
- this.optionsRescale(event);
193
- }
194
-
195
- optionsRescale(event: OnRescaleEvent): void {
196
- if (this._options.onRescale) {
197
- this._options.onRescale(event, this);
198
- }
199
- }
200
-
201
- abstract onOpacityChanged(opacity: number): void;
202
-
203
- abstract onOrderChanged(order: number): void;
204
-
205
- abstract onInteractivityChanged(interactive: boolean): void;
206
-
207
- /**
208
- *
209
- * Some layers might be built up of several internal layers that should individually be visibility-togglable.
210
- * Reasons for having multiple internal layers might be tightly related data between layers or need for sharing render context
211
- *
212
- * @returns list of internal layer ids
213
- */
214
- getInternalLayerIds(): string[] {
215
- return [];
216
- }
217
- }