react-spatial 1.1.5 → 1.2.0-beta.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.
- package/components/BaseLayerSwitcher/BaseLayerSwitcher.test.js +28 -26
- package/components/BaseLayerSwitcher/BaseLayerSwitcher.test.js.map +1 -1
- package/components/BaseLayerToggler/BaseLayerToggler.test.js +48 -80
- package/components/BaseLayerToggler/BaseLayerToggler.test.js.map +1 -1
- package/components/BasicMap/BasicMap.js +7 -14
- package/components/BasicMap/BasicMap.js.map +1 -1
- package/components/BasicMap/BasicMap.test.js +62 -73
- package/components/BasicMap/BasicMap.test.js.map +1 -1
- package/components/RouteSchedule/RouteSchedule.test.js +0 -3
- package/components/RouteSchedule/RouteSchedule.test.js.map +1 -1
- package/components/Search/Search.test.js +0 -4
- package/components/Search/Search.test.js.map +1 -1
- package/components/StopsFinder/StopsFinder.test.js +0 -4
- package/components/StopsFinder/StopsFinder.test.js.map +1 -1
- package/components/TrackerControl/TrackerControl.test.js +0 -4
- package/components/TrackerControl/TrackerControl.test.js.map +1 -1
- package/package.json +6 -3
- package/styleguidist/StyleGuide.js +1 -1
- package/styleguidist/StyleGuide.js.map +1 -1
- package/utils/KML.test.js +0 -3
- package/utils/KML.test.js.map +1 -1
- package/utils/KMLFormat.test.js +0 -3
- package/utils/KMLFormat.test.js.map +1 -1
|
@@ -1,14 +1,8 @@
|
|
|
1
|
-
/* eslint-disable react/jsx-props-no-spreading */
|
|
2
1
|
import React from 'react';
|
|
3
|
-
import { configure, mount } from 'enzyme';
|
|
4
|
-
import Adapter from 'enzyme-adapter-react-16';
|
|
5
|
-
import 'jest-canvas-mock';
|
|
6
|
-
import renderer from 'react-test-renderer';
|
|
7
2
|
import { Layer } from 'mobility-toolbox-js/ol';
|
|
3
|
+
import { fireEvent, render } from '@testing-library/react';
|
|
8
4
|
import BaseLayerSwitcher from './BaseLayerSwitcher';
|
|
9
5
|
|
|
10
|
-
configure({ adapter: new Adapter() });
|
|
11
|
-
|
|
12
6
|
describe('BaseLayerSwitcher', function () {
|
|
13
7
|
var layers;
|
|
14
8
|
var layerImages = {
|
|
@@ -37,49 +31,57 @@ describe('BaseLayerSwitcher', function () {
|
|
|
37
31
|
|
|
38
32
|
describe('matches snapshots', function () {
|
|
39
33
|
test('using default properties.', function () {
|
|
40
|
-
var
|
|
34
|
+
var ref = render(
|
|
41
35
|
React.createElement( BaseLayerSwitcher, { layers: layers, layerImages: layerImages })
|
|
42
36
|
);
|
|
43
|
-
var
|
|
44
|
-
expect(
|
|
37
|
+
var container = ref.container;
|
|
38
|
+
expect(container.innerHTML).toMatchSnapshot();
|
|
45
39
|
});
|
|
46
40
|
});
|
|
47
41
|
|
|
48
42
|
test('the correct baselayer is visible on mount', function () {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
);
|
|
52
|
-
expect(comp.props().layers[0].visible).toBe(true);
|
|
43
|
+
render(React.createElement( BaseLayerSwitcher, { layers: layers, layerImages: layerImages }));
|
|
44
|
+
expect(layers[0].visible).toBe(true);
|
|
53
45
|
});
|
|
54
46
|
|
|
55
|
-
test('removes open class and switches layer on click', function () {
|
|
56
|
-
var
|
|
47
|
+
test('removes open class and switches layer on click', async function () {
|
|
48
|
+
var ref = render(
|
|
57
49
|
React.createElement( BaseLayerSwitcher, { layers: layers, layerImages: layerImages })
|
|
58
50
|
);
|
|
59
|
-
|
|
60
|
-
|
|
51
|
+
var container = ref.container;
|
|
52
|
+
await fireEvent.click(container.querySelector('.rs-opener'));
|
|
53
|
+
await fireEvent.click(
|
|
54
|
+
container.querySelectorAll('.rs-base-layer-switcher-button')[3]
|
|
55
|
+
);
|
|
61
56
|
expect(
|
|
62
|
-
|
|
57
|
+
layers.filter(function (layer) {
|
|
63
58
|
return layer.isBaseLayer;
|
|
64
59
|
})[2].visible
|
|
65
60
|
).toBe(true);
|
|
66
|
-
expect(
|
|
61
|
+
expect(!!container.querySelector('.rs-base-layer-switcher rs-open')).toBe(
|
|
62
|
+
false
|
|
63
|
+
);
|
|
67
64
|
});
|
|
68
65
|
|
|
69
|
-
test('toggles base map instead of opening when only two base layers', function () {
|
|
70
|
-
var
|
|
66
|
+
test('toggles base map instead of opening when only two base layers', async function () {
|
|
67
|
+
var ref = render(
|
|
68
|
+
React.createElement( BaseLayerSwitcher, { layers: layers.slice(0, 2) })
|
|
69
|
+
);
|
|
70
|
+
var container = ref.container;
|
|
71
71
|
expect(
|
|
72
|
-
|
|
72
|
+
layers.filter(function (layer) {
|
|
73
73
|
return layer.isBaseLayer;
|
|
74
74
|
})[0].visible
|
|
75
75
|
).toBe(true);
|
|
76
|
-
|
|
76
|
+
await fireEvent.click(container.querySelector('.rs-opener'));
|
|
77
77
|
expect(
|
|
78
|
-
|
|
78
|
+
layers.filter(function (layer) {
|
|
79
79
|
return layer.isBaseLayer;
|
|
80
80
|
})[1].visible
|
|
81
81
|
).toBe(true);
|
|
82
|
-
expect(
|
|
82
|
+
expect(!!container.querySelector('.rs-base-layer-switcher rs-open')).toBe(
|
|
83
|
+
false
|
|
84
|
+
);
|
|
83
85
|
});
|
|
84
86
|
});
|
|
85
87
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseLayerSwitcher.test.js","sources":["../../../src/components/BaseLayerSwitcher/BaseLayerSwitcher.test.js"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"BaseLayerSwitcher.test.js","sources":["../../../src/components/BaseLayerSwitcher/BaseLayerSwitcher.test.js"],"sourcesContent":["import React from 'react';\nimport { Layer } from 'mobility-toolbox-js/ol';\nimport { fireEvent, render } from '@testing-library/react';\nimport BaseLayerSwitcher from './BaseLayerSwitcher';\n\ndescribe('BaseLayerSwitcher', () => {\n let layers;\n const layerImages = {\n layerFoo: 'foo',\n layerBar: 'bar',\n layerFoobar: 'foobar',\n };\n\n beforeEach(() => {\n layers = [\n new Layer({\n name: 'bl1',\n isBaseLayer: true,\n }),\n new Layer({\n name: 'bl2',\n isBaseLayer: true,\n visible: false,\n }),\n new Layer({\n name: 'bl3',\n isBaseLayer: true,\n visible: false,\n }),\n ];\n });\n\n describe('matches snapshots', () => {\n test('using default properties.', () => {\n const { container } = render(\n <BaseLayerSwitcher layers={layers} layerImages={layerImages} />,\n );\n expect(container.innerHTML).toMatchSnapshot();\n });\n });\n\n test('the correct baselayer is visible on mount', () => {\n render(<BaseLayerSwitcher layers={layers} layerImages={layerImages} />);\n expect(layers[0].visible).toBe(true);\n });\n\n test('removes open class and switches layer on click', async () => {\n const { container } = render(\n <BaseLayerSwitcher layers={layers} layerImages={layerImages} />,\n );\n await fireEvent.click(container.querySelector('.rs-opener'));\n await fireEvent.click(\n container.querySelectorAll('.rs-base-layer-switcher-button')[3],\n );\n expect(\n layers.filter((layer) => {\n return layer.isBaseLayer;\n })[2].visible,\n ).toBe(true);\n expect(!!container.querySelector('.rs-base-layer-switcher rs-open')).toBe(\n false,\n );\n });\n\n test('toggles base map instead of opening when only two base layers', async () => {\n const { container } = render(\n <BaseLayerSwitcher layers={layers.slice(0, 2)} />,\n );\n expect(\n layers.filter((layer) => {\n return layer.isBaseLayer;\n })[0].visible,\n ).toBe(true);\n await fireEvent.click(container.querySelector('.rs-opener'));\n expect(\n layers.filter((layer) => {\n return layer.isBaseLayer;\n })[1].visible,\n ).toBe(true);\n expect(!!container.querySelector('.rs-base-layer-switcher rs-open')).toBe(\n false,\n );\n });\n});\n"],"names":["let","const"],"mappings":"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"}
|
|
@@ -1,20 +1,15 @@
|
|
|
1
1
|
/* eslint-disable react/jsx-props-no-spreading */
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import { configure, shallow, mount } from 'enzyme';
|
|
4
|
-
import Adapter from 'enzyme-adapter-react-16';
|
|
5
|
-
import 'jest-canvas-mock';
|
|
6
3
|
import OLMap from 'ol/Map';
|
|
4
|
+
import { fireEvent, render, screen } from '@testing-library/react';
|
|
7
5
|
import { Layer } from 'mobility-toolbox-js/ol';
|
|
8
|
-
import renderer from 'react-test-renderer';
|
|
9
6
|
import BaseLayerToggler from './BaseLayerToggler';
|
|
10
7
|
import LayerService from '../../LayerService';
|
|
11
8
|
|
|
12
|
-
configure({ adapter: new Adapter() });
|
|
13
|
-
|
|
14
9
|
var shallowComp = function (layers, props) {
|
|
15
10
|
var map = new OLMap({});
|
|
16
11
|
var layerService = new LayerService(layers);
|
|
17
|
-
return
|
|
12
|
+
return render(
|
|
18
13
|
React.createElement( BaseLayerToggler, Object.assign({},
|
|
19
14
|
{ layerService: layerService, map: map }, (props || {})))
|
|
20
15
|
);
|
|
@@ -22,7 +17,7 @@ var shallowComp = function (layers, props) {
|
|
|
22
17
|
var mountComp = function (layers, props) {
|
|
23
18
|
var map = new OLMap({});
|
|
24
19
|
var layerService = new LayerService(layers);
|
|
25
|
-
return
|
|
20
|
+
return render(
|
|
26
21
|
React.createElement( BaseLayerToggler, Object.assign({},
|
|
27
22
|
{ layerService: layerService, map: map }, (props || {})))
|
|
28
23
|
);
|
|
@@ -31,12 +26,12 @@ var mountComp = function (layers, props) {
|
|
|
31
26
|
var expectSnapshot = function (layers, props) {
|
|
32
27
|
var map = new OLMap({});
|
|
33
28
|
var layerService = new LayerService(layers);
|
|
34
|
-
var
|
|
29
|
+
var ref = render(
|
|
35
30
|
React.createElement( BaseLayerToggler, Object.assign({},
|
|
36
31
|
{ layerService: layerService, map: map }, (props || {})))
|
|
37
32
|
);
|
|
38
|
-
var
|
|
39
|
-
expect(
|
|
33
|
+
var container = ref.container;
|
|
34
|
+
expect(container.innerHTML).toMatchSnapshot();
|
|
40
35
|
};
|
|
41
36
|
|
|
42
37
|
describe('BaseLayerToggler', function () {
|
|
@@ -66,93 +61,66 @@ describe('BaseLayerToggler', function () {
|
|
|
66
61
|
});
|
|
67
62
|
|
|
68
63
|
test('initialize correctly the state', function () {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
expect(comp.state.idx).toBe(1);
|
|
72
|
-
expect(comp.state.layers.length).toBe(3);
|
|
73
|
-
expect(comp.state.layerVisible).toBe(comp.state.layers[0]);
|
|
64
|
+
shallowComp(layers);
|
|
65
|
+
expect(layers[0].visible).toBe(true);
|
|
74
66
|
});
|
|
75
67
|
|
|
76
|
-
test('goes forward through all available layer except the current layer displayed on the map.', function () {
|
|
77
|
-
var
|
|
78
|
-
var
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
wrapper.find('.rs-base-layer-next').simulate('click');
|
|
85
|
-
expect(comp.state.layerVisible).toBe(layerVisible);
|
|
86
|
-
expect(comp.state.idx).toBe(2);
|
|
68
|
+
test('goes forward through all available layer except the current layer displayed on the map.', async function () {
|
|
69
|
+
var ref = shallowComp(layers);
|
|
70
|
+
var container = ref.container;
|
|
71
|
+
expect(layers[0].visible).toBe(true);
|
|
72
|
+
await fireEvent.click(
|
|
73
|
+
container.querySelector('.rs-base-layer-toggle-button')
|
|
74
|
+
);
|
|
75
|
+
expect(layers[1].visible).toBe(true);
|
|
87
76
|
|
|
88
77
|
// Layer at index 0 is displayed on the map so we must ignore it
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
78
|
+
await fireEvent.click(container.querySelector('.rs-base-layer-next'));
|
|
79
|
+
await fireEvent.click(
|
|
80
|
+
container.querySelector('.rs-base-layer-toggle-button')
|
|
81
|
+
);
|
|
82
|
+
expect(layers[2].visible).toBe(true);
|
|
83
|
+
|
|
84
|
+
await fireEvent.click(container.querySelector('.rs-base-layer-next'));
|
|
85
|
+
await fireEvent.click(
|
|
86
|
+
container.querySelector('.rs-base-layer-toggle-button')
|
|
87
|
+
);
|
|
88
|
+
expect(layers[0].visible).toBe(true);
|
|
92
89
|
});
|
|
93
90
|
|
|
94
|
-
test('goes backward through all available layer except the current layer displayed on the map.', function () {
|
|
95
|
-
var
|
|
96
|
-
var
|
|
97
|
-
|
|
98
|
-
expect(comp.state.layers.length).toBe(3);
|
|
99
|
-
expect(comp.state.layerVisible).toBe(layerVisible);
|
|
100
|
-
expect(comp.state.idx).toBe(1);
|
|
101
|
-
|
|
102
|
-
wrapper.find('.rs-base-layer-previous').simulate('click');
|
|
103
|
-
expect(comp.state.layerVisible).toBe(layerVisible);
|
|
104
|
-
expect(comp.state.idx).toBe(2);
|
|
91
|
+
test('goes backward through all available layer except the current layer displayed on the map.', async function () {
|
|
92
|
+
var ref = shallowComp(layers);
|
|
93
|
+
var container = ref.container;
|
|
94
|
+
expect(layers[0].visible).toBe(true);
|
|
105
95
|
|
|
106
96
|
// Layer at index 0 is displayed on the map so we must ignore it
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
expect(
|
|
118
|
-
expect(comp.state.idx).toBe(1);
|
|
119
|
-
comp.state.layers[0].setVisible(false);
|
|
120
|
-
|
|
121
|
-
expect(comp.state.layers.length).toBe(3);
|
|
122
|
-
expect(comp.state.layerVisible).toBe(comp.state.layers[1]);
|
|
123
|
-
expect(comp.state.idx).toBe(0);
|
|
124
|
-
});
|
|
125
|
-
|
|
126
|
-
test('display on the map the layer clicked', function () {
|
|
127
|
-
var wrapper = mountComp(layers);
|
|
128
|
-
var comp = wrapper.instance();
|
|
129
|
-
expect(comp.state.layers.length).toBe(3);
|
|
130
|
-
expect(comp.state.layers[0].visible).toBe(true);
|
|
131
|
-
wrapper.find('.rs-base-layer-toggle-button').simulate('click');
|
|
132
|
-
wrapper.update();
|
|
133
|
-
expect(comp.state.layers[0].visible).toBe(false);
|
|
134
|
-
expect(comp.state.layers[1].visible).toBe(true);
|
|
135
|
-
expect(comp.state.layerVisible).toBe(comp.state.layers[1]);
|
|
136
|
-
expect(comp.state.idx).toBe(0); // Toggle
|
|
97
|
+
await fireEvent.click(container.querySelector('.rs-base-layer-previous'));
|
|
98
|
+
await fireEvent.click(
|
|
99
|
+
container.querySelector('.rs-base-layer-toggle-button')
|
|
100
|
+
);
|
|
101
|
+
expect(layers[2].visible).toBe(true);
|
|
102
|
+
|
|
103
|
+
await fireEvent.click(container.querySelector('.rs-base-layer-next'));
|
|
104
|
+
await fireEvent.click(
|
|
105
|
+
container.querySelector('.rs-base-layer-toggle-button')
|
|
106
|
+
);
|
|
107
|
+
expect(layers[1].visible).toBe(true);
|
|
137
108
|
});
|
|
138
109
|
|
|
139
110
|
test('hide baseLayerToggler if only one baselayer', function () {
|
|
140
|
-
var
|
|
141
|
-
|
|
111
|
+
var ref = mountComp([layers[0]]);
|
|
112
|
+
var container = ref.container;
|
|
113
|
+
expect(container.innerHTML).toBe('');
|
|
142
114
|
});
|
|
143
115
|
|
|
144
116
|
test('should use children', function () {
|
|
145
|
-
|
|
117
|
+
shallowComp(layers, {
|
|
146
118
|
prevButtonContent: 'prev',
|
|
147
119
|
nextButtonContent: 'next',
|
|
148
120
|
});
|
|
149
|
-
expect(wrapper.find('.rs-base-layer-item').exists()).toBe(false);
|
|
150
|
-
|
|
151
|
-
var next = wrapper.find('.rs-base-layer-next').text();
|
|
152
|
-
var prev = wrapper.find('.rs-base-layer-previous').text();
|
|
153
121
|
|
|
154
|
-
expect(
|
|
155
|
-
expect(
|
|
122
|
+
expect(screen.getByText('next')).not.toBeNull();
|
|
123
|
+
expect(screen.getByText('prev')).not.toBeNull();
|
|
156
124
|
});
|
|
157
125
|
});
|
|
158
126
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseLayerToggler.test.js","sources":["../../../src/components/BaseLayerToggler/BaseLayerToggler.test.js"],"sourcesContent":["/* eslint-disable react/jsx-props-no-spreading */\nimport React from 'react';\nimport { configure, shallow, mount } from 'enzyme';\nimport Adapter from 'enzyme-adapter-react-16';\nimport 'jest-canvas-mock';\nimport OLMap from 'ol/Map';\nimport { Layer } from 'mobility-toolbox-js/ol';\nimport renderer from 'react-test-renderer';\nimport BaseLayerToggler from './BaseLayerToggler';\nimport LayerService from '../../LayerService';\n\nconfigure({ adapter: new Adapter() });\n\nconst shallowComp = (layers, props) => {\n const map = new OLMap({});\n const layerService = new LayerService(layers);\n return shallow(\n <BaseLayerToggler\n layerService={layerService}\n map={map}\n {...(props || {})}\n />,\n );\n};\nconst mountComp = (layers, props) => {\n const map = new OLMap({});\n const layerService = new LayerService(layers);\n return mount(\n <BaseLayerToggler\n layerService={layerService}\n map={map}\n {...(props || {})}\n />,\n );\n};\n\nconst expectSnapshot = (layers, props) => {\n const map = new OLMap({});\n const layerService = new LayerService(layers);\n const component = renderer.create(\n <BaseLayerToggler\n layerService={layerService}\n map={map}\n {...(props || {})}\n />,\n );\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n};\n\ndescribe('BaseLayerToggler', () => {\n let layers;\n\n beforeEach(() => {\n layers = [\n new Layer({\n name: 'bl1',\n isBaseLayer: true,\n }),\n new Layer({\n name: 'bl2',\n isBaseLayer: true,\n visible: false,\n }),\n new Layer({\n name: 'bl3',\n isBaseLayer: true,\n visible: false,\n }),\n ];\n });\n describe('matches snapshots', () => {\n test('using default properties.', () => {\n expectSnapshot(layers);\n });\n });\n\n test('initialize correctly the state', () => {\n const wrapper = shallowComp(layers);\n const comp = wrapper.instance();\n expect(comp.state.idx).toBe(1);\n expect(comp.state.layers.length).toBe(3);\n expect(comp.state.layerVisible).toBe(comp.state.layers[0]);\n });\n\n test('goes forward through all available layer except the current layer displayed on the map.', () => {\n const wrapper = shallowComp(layers);\n const comp = wrapper.instance();\n const layerVisible = comp.state.layers[0];\n expect(comp.state.layers.length).toBe(3);\n expect(comp.state.layerVisible).toBe(layerVisible);\n expect(comp.state.idx).toBe(1);\n\n wrapper.find('.rs-base-layer-next').simulate('click');\n expect(comp.state.layerVisible).toBe(layerVisible);\n expect(comp.state.idx).toBe(2);\n\n // Layer at index 0 is displayed on the map so we must ignore it\n wrapper.find('.rs-base-layer-next').simulate('click');\n expect(comp.state.layerVisible).toBe(layerVisible);\n expect(comp.state.idx).toBe(1);\n });\n\n test('goes backward through all available layer except the current layer displayed on the map.', () => {\n const wrapper = shallowComp(layers);\n const comp = wrapper.instance();\n const layerVisible = comp.state.layers[0];\n expect(comp.state.layers.length).toBe(3);\n expect(comp.state.layerVisible).toBe(layerVisible);\n expect(comp.state.idx).toBe(1);\n\n wrapper.find('.rs-base-layer-previous').simulate('click');\n expect(comp.state.layerVisible).toBe(layerVisible);\n expect(comp.state.idx).toBe(2);\n\n // Layer at index 0 is displayed on the map so we must ignore it\n wrapper.find('.rs-base-layer-previous').simulate('click');\n expect(comp.state.layerVisible).toBe(layerVisible);\n expect(comp.state.idx).toBe(1);\n });\n\n test('displays always a baseLayer on the map.', () => {\n const wrapper = shallowComp(layers);\n const comp = wrapper.instance();\n const layerVisible = comp.state.layers[0];\n expect(comp.state.layers.length).toBe(3);\n expect(comp.state.layerVisible).toBe(layerVisible);\n expect(comp.state.idx).toBe(1);\n comp.state.layers[0].setVisible(false);\n\n expect(comp.state.layers.length).toBe(3);\n expect(comp.state.layerVisible).toBe(comp.state.layers[1]);\n expect(comp.state.idx).toBe(0);\n });\n\n test('display on the map the layer clicked', () => {\n const wrapper = mountComp(layers);\n const comp = wrapper.instance();\n expect(comp.state.layers.length).toBe(3);\n expect(comp.state.layers[0].visible).toBe(true);\n wrapper.find('.rs-base-layer-toggle-button').simulate('click');\n wrapper.update();\n expect(comp.state.layers[0].visible).toBe(false);\n expect(comp.state.layers[1].visible).toBe(true);\n expect(comp.state.layerVisible).toBe(comp.state.layers[1]);\n expect(comp.state.idx).toBe(0); // Toggle\n });\n\n test('hide baseLayerToggler if only one baselayer', () => {\n const wrapper = mountComp([layers[0]]);\n expect(wrapper.find('.rs-base-layer-item').exists()).toBe(false);\n });\n\n test('should use children', () => {\n const wrapper = shallowComp(layers, {\n prevButtonContent: 'prev',\n nextButtonContent: 'next',\n });\n expect(wrapper.find('.rs-base-layer-item').exists()).toBe(false);\n\n const next = wrapper.find('.rs-base-layer-next').text();\n const prev = wrapper.find('.rs-base-layer-previous').text();\n\n expect(next).toBe('next');\n expect(prev).toBe('prev');\n });\n});\n"],"names":["const","let"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BaseLayerToggler.test.js","sources":["../../../src/components/BaseLayerToggler/BaseLayerToggler.test.js"],"sourcesContent":["/* eslint-disable react/jsx-props-no-spreading */\nimport React from 'react';\nimport OLMap from 'ol/Map';\nimport { fireEvent, render, screen } from '@testing-library/react';\nimport { Layer } from 'mobility-toolbox-js/ol';\nimport BaseLayerToggler from './BaseLayerToggler';\nimport LayerService from '../../LayerService';\n\nconst shallowComp = (layers, props) => {\n const map = new OLMap({});\n const layerService = new LayerService(layers);\n return render(\n <BaseLayerToggler\n layerService={layerService}\n map={map}\n {...(props || {})}\n />,\n );\n};\nconst mountComp = (layers, props) => {\n const map = new OLMap({});\n const layerService = new LayerService(layers);\n return render(\n <BaseLayerToggler\n layerService={layerService}\n map={map}\n {...(props || {})}\n />,\n );\n};\n\nconst expectSnapshot = (layers, props) => {\n const map = new OLMap({});\n const layerService = new LayerService(layers);\n const { container } = render(\n <BaseLayerToggler\n layerService={layerService}\n map={map}\n {...(props || {})}\n />,\n );\n expect(container.innerHTML).toMatchSnapshot();\n};\n\ndescribe('BaseLayerToggler', () => {\n let layers;\n\n beforeEach(() => {\n layers = [\n new Layer({\n name: 'bl1',\n isBaseLayer: true,\n }),\n new Layer({\n name: 'bl2',\n isBaseLayer: true,\n visible: false,\n }),\n new Layer({\n name: 'bl3',\n isBaseLayer: true,\n visible: false,\n }),\n ];\n });\n describe('matches snapshots', () => {\n test('using default properties.', () => {\n expectSnapshot(layers);\n });\n });\n\n test('initialize correctly the state', () => {\n shallowComp(layers);\n expect(layers[0].visible).toBe(true);\n });\n\n test('goes forward through all available layer except the current layer displayed on the map.', async () => {\n const { container } = shallowComp(layers);\n expect(layers[0].visible).toBe(true);\n await fireEvent.click(\n container.querySelector('.rs-base-layer-toggle-button'),\n );\n expect(layers[1].visible).toBe(true);\n\n // Layer at index 0 is displayed on the map so we must ignore it\n await fireEvent.click(container.querySelector('.rs-base-layer-next'));\n await fireEvent.click(\n container.querySelector('.rs-base-layer-toggle-button'),\n );\n expect(layers[2].visible).toBe(true);\n\n await fireEvent.click(container.querySelector('.rs-base-layer-next'));\n await fireEvent.click(\n container.querySelector('.rs-base-layer-toggle-button'),\n );\n expect(layers[0].visible).toBe(true);\n });\n\n test('goes backward through all available layer except the current layer displayed on the map.', async () => {\n const { container } = shallowComp(layers);\n expect(layers[0].visible).toBe(true);\n\n // Layer at index 0 is displayed on the map so we must ignore it\n await fireEvent.click(container.querySelector('.rs-base-layer-previous'));\n await fireEvent.click(\n container.querySelector('.rs-base-layer-toggle-button'),\n );\n expect(layers[2].visible).toBe(true);\n\n await fireEvent.click(container.querySelector('.rs-base-layer-next'));\n await fireEvent.click(\n container.querySelector('.rs-base-layer-toggle-button'),\n );\n expect(layers[1].visible).toBe(true);\n });\n\n test('hide baseLayerToggler if only one baselayer', () => {\n const { container } = mountComp([layers[0]]);\n expect(container.innerHTML).toBe('');\n });\n\n test('should use children', () => {\n shallowComp(layers, {\n prevButtonContent: 'prev',\n nextButtonContent: 'next',\n });\n\n expect(screen.getByText('next')).not.toBeNull();\n expect(screen.getByText('prev')).not.toBeNull();\n });\n});\n"],"names":["const","let"],"mappings":"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"}
|
|
@@ -233,7 +233,7 @@ var BasicMap = /*@__PURE__*/(function (PureComponent) {
|
|
|
233
233
|
}
|
|
234
234
|
|
|
235
235
|
if (prevProps.layers !== layers) {
|
|
236
|
-
this.setLayers(layers);
|
|
236
|
+
this.setLayers(layers, prevProps.layers);
|
|
237
237
|
}
|
|
238
238
|
|
|
239
239
|
// Creates a new view if necessary before updating the others prop.
|
|
@@ -293,22 +293,15 @@ var BasicMap = /*@__PURE__*/(function (PureComponent) {
|
|
|
293
293
|
this.setState({ node: node });
|
|
294
294
|
};
|
|
295
295
|
|
|
296
|
-
BasicMap.prototype.setLayers = function setLayers (layers) {
|
|
297
|
-
var this$1 = this;
|
|
296
|
+
BasicMap.prototype.setLayers = function setLayers (layers, prevLayers) {
|
|
298
297
|
if ( layers === void 0 ) layers = [];
|
|
298
|
+
if ( prevLayers === void 0 ) prevLayers = [];
|
|
299
299
|
|
|
300
|
-
var
|
|
301
|
-
|
|
302
|
-
});
|
|
303
|
-
for (var i = 0; i < layersToRemove.length; i += 1) {
|
|
304
|
-
this.terminateLayer(layersToRemove[i]);
|
|
300
|
+
for (var i = 0; i < prevLayers.length; i += 1) {
|
|
301
|
+
this.terminateLayer(prevLayers[i]);
|
|
305
302
|
}
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
return !this$1.layers.includes(layer);
|
|
309
|
-
});
|
|
310
|
-
for (var i$1 = 0; i$1 < layersToInit.length; i$1 += 1) {
|
|
311
|
-
this.initLayer(layersToInit[i$1]);
|
|
303
|
+
for (var i$1 = 0; i$1 < layers.length; i$1 += 1) {
|
|
304
|
+
this.initLayer(layers[i$1]);
|
|
312
305
|
}
|
|
313
306
|
this.layers = layers;
|
|
314
307
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BasicMap.js","sources":["../../../src/components/BasicMap/BasicMap.js"],"sourcesContent":["import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { defaults as defaultInteractions } from 'ol/interaction';\nimport { equals } from 'ol/extent';\nimport OLMap from 'ol/Map';\nimport OLCollection from 'ol/Collection';\nimport View from 'ol/View';\nimport { unByKey } from 'ol/Observable';\nimport Interaction from 'ol/interaction/Interaction';\nimport { Layer } from 'mobility-toolbox-js/ol';\nimport ResizeHandler from '../ResizeHandler';\n\nconst propTypes = {\n /** Map animation options */\n animationOptions: PropTypes.shape({\n center: PropTypes.arrayOf(PropTypes.number),\n resolution: PropTypes.number,\n zoom: PropTypes.number,\n }),\n\n /** Center of the [ol/View](https://openlayers.org/en/latest/apidoc/module-ol_View-View.html). */\n center: PropTypes.arrayOf(PropTypes.number),\n\n /** Class name of the map container */\n className: PropTypes.string,\n\n /** Map extent */\n extent: PropTypes.arrayOf(PropTypes.number),\n\n /** Openlayers [fit options](https://openlayers.org/en/latest/apidoc/module-ol_View-View.html#fit) when extent is updated */\n fitOptions: PropTypes.object,\n\n /** Array of [ol/interaction](https://openlayers.org/en/latest/apidoc/module-ol_interaction_Interaction-Interaction.html). */\n interactions: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.instanceOf(Interaction)),\n PropTypes.instanceOf(OLCollection),\n ]),\n\n /** Array of [mobility-toolbox-js layers](https://mobility-toolbox-js.geops.io/api/identifiers%20html#ol-layers) to display. */\n layers: PropTypes.arrayOf(PropTypes.instanceOf(Layer)),\n\n /** An [ol/map](https://openlayers.org/en/latest/apidoc/module-ol_Map-Map.html). */\n map: PropTypes.instanceOf(OLMap),\n\n /**\n * Callback when a [ol/Feature](https://openlayers.org/en/latest/apidoc/module-ol_Feature-Feature.html) is clicked.\n * @param {OLFeature[]} features An array of [ol/Feature](https://openlayers.org/en/latest/apidoc/module-ol_Feature-Feature.html).\n * @param {ol.MapBrowserEvent} event The singleclick [ol/MapBrowserEvent](https://openlayers.org/en/latest/apidoc/module-ol_MapBrowserEvent-MapBrowserEvent.html#event:singleclick).\n */\n onFeaturesClick: PropTypes.func,\n\n /**\n * Optional options to pass on feature click. Passed to ol's 'getFeaturesAtPixel' method.\n * https://openlayers.org/en/latest/apidoc/module-ol_Map-Map.html#getFeaturesAtPixel\n */\n featuresClickOptions: PropTypes.shape({\n layerFilter: PropTypes.func,\n hitTolerance: PropTypes.number,\n checkWrapped: PropTypes.bool,\n }),\n\n /**\n * Callback when a [ol/Feature](https://openlayers.org/en/latest/apidoc/module-ol_Feature-Feature.html) is hovered.\n * @param {OLFeature[]} features An array of [ol/Feature](https://openlayers.org/en/latest/apidoc/module-ol_Feature-Feature.html).\n * @param {ol.MapBrowserEvent} event The pointermove [ol/MapBrowserEvent](https://openlayers.org/en/latest/apidoc/module-ol_MapBrowserEvent-MapBrowserEvent.html#event:pointermove).\n */\n onFeaturesHover: PropTypes.func,\n\n /**\n * Callback when the map was moved.\n * @param {ol.MapEvent} event The movend [ol/MapEvent](https://openlayers.org/en/latest/apidoc/module-ol_MapBrowserEvent-MapBrowserEvent.html#event:moveend).\n */\n onMapMoved: PropTypes.func,\n\n /** Map resolution */\n resolution: PropTypes.number,\n\n /** The tabIndex of the map. */\n tabIndex: PropTypes.number,\n\n /** The style of the map. */\n style: PropTypes.object,\n\n /** HTML aria-label. */\n ariaLabel: PropTypes.string,\n\n /** [ol/View](https://openlayers.org/en/latest/apidoc/module-ol_View-View.html) constructor options */\n viewOptions: PropTypes.shape({\n minZoom: PropTypes.number,\n maxZoom: PropTypes.number,\n extent: PropTypes.array,\n projection: PropTypes.string,\n }),\n\n /** Map zoom level */\n zoom: PropTypes.number,\n};\n\nconst defaultProps = {\n animationOptions: undefined,\n center: [0, 0],\n className: 'rs-map',\n extent: undefined,\n fitOptions: {\n duration: 1000,\n padding: [20, 20, 20, 20],\n maxZoom: 23,\n },\n style: undefined,\n interactions: null,\n layers: [],\n map: null,\n onFeaturesClick: undefined,\n featuresClickOptions: {\n hitTolerance: 0,\n },\n onFeaturesHover: undefined,\n onMapMoved: undefined,\n resolution: undefined,\n tabIndex: undefined,\n ariaLabel: 'map',\n viewOptions: {\n minZoom: 0,\n maxZoom: 22,\n extent: undefined,\n projection: 'EPSG:3857',\n },\n zoom: 1,\n};\n\n/**\n * The BasicMap component renders an [ol/map](https://openlayers.org/en/latest/apidoc/module-ol_Map-Map.html).\n *\n * The map's view is created with the following parameters for the view:\n * - projection: 'EPSG:3857'\n * - zoom: 0\n * - minZoom: 0\n * - maxZoom: 22\n *\n * These options can be overridden using the viewOptions property.\n */\nclass BasicMap extends PureComponent {\n constructor(props) {\n super(props);\n const { map, interactions } = this.props;\n\n this.map =\n map ||\n new OLMap({\n controls: [],\n interactions:\n interactions ||\n defaultInteractions({\n altShiftDragRotate: false,\n pinchRotate: false,\n }),\n });\n\n this.state = {\n node: null,\n };\n\n this.layers = [];\n this.moveEndRef = null;\n this.singleClickRef = null;\n this.pointerMoveRef = null;\n this.setNode = this.setNode.bind(this);\n }\n\n componentDidMount() {\n const { layers, extent, viewOptions, center, zoom, resolution } =\n this.props;\n const { node } = this.state;\n this.map.setTarget(node);\n\n // We set the view here otherwise the map is not correctly zoomed.\n this.map.setView(new View({ ...viewOptions, center, zoom, resolution }));\n\n // // Since ol 6.1.0 touch-action is set to auto and creates a bad navigation experience on mobile,\n // // so we have to force it to none for mobile.\n // // https://github.com/openlayers/openlayers/pull/10187/files\n const viewPort = this.map.getViewport();\n viewPort.style.touchAction = 'none';\n viewPort.style.msTouchAction = 'none';\n viewPort.setAttribute('touch-action', 'none');\n\n // Fit only work if the map has a size.\n if (this.map.getSize() && extent) {\n this.map.getView().fit(extent);\n }\n\n this.setLayers(layers);\n this.listenMoveEnd();\n this.listenSingleClick();\n this.listenPointerMove();\n }\n\n componentDidUpdate(prevProps, prevState) {\n const {\n animationOptions,\n center,\n extent,\n fitOptions,\n layers,\n resolution,\n viewOptions,\n zoom,\n onMapMoved,\n onFeaturesClick,\n onFeaturesHover,\n } = this.props;\n const { node } = this.state;\n\n if (prevState.node !== node) {\n this.map.setTarget(node);\n\n // When the node is set we reinitialize the extent with the extent property.\n if (!prevState.node && node && extent) {\n this.map.getView().fit(extent);\n }\n }\n\n if (prevProps.layers !== layers) {\n this.setLayers(layers);\n }\n\n // Creates a new view if necessary before updating the others prop.\n if (\n viewOptions &&\n JSON.stringify(viewOptions) !== JSON.stringify(prevProps.viewOptions)\n ) {\n // Re-create a view, ol doesn't provide any method to setExtent of view.\n this.map.setView(\n new View({\n ...viewOptions,\n center,\n resolution,\n zoom,\n }),\n );\n }\n\n const view = this.map.getView();\n\n if (animationOptions && prevProps.animationOptions !== animationOptions) {\n view.animate(animationOptions);\n }\n\n if (prevProps.center !== center) {\n view.setCenter(center);\n }\n\n if (zoom !== prevProps.zoom) {\n view.setZoom(zoom);\n }\n\n if (resolution !== prevProps.resolution) {\n view.setResolution(resolution);\n }\n\n if (extent && !equals(extent, prevProps.extent || [])) {\n view.fit(extent, fitOptions);\n }\n\n if (onMapMoved !== prevProps.onMapMoved) {\n this.listenMoveEnd();\n }\n\n if (onFeaturesClick !== prevProps.onFeaturesClick) {\n this.listenSingleClick();\n }\n\n if (onFeaturesHover !== prevProps.onFeaturesHover) {\n this.listenPointerMove();\n }\n }\n\n componentWillUnmount() {\n unByKey([this.moveEndRef, this.singleClickRef, this.pointerMoveRef]);\n }\n\n setNode(node) {\n this.setState({ node });\n }\n\n setLayers(layers = []) {\n const layersToRemove = this.layers.filter((layer) => {\n return !layers.includes(layer);\n });\n for (let i = 0; i < layersToRemove.length; i += 1) {\n this.terminateLayer(layersToRemove[i]);\n }\n\n const layersToInit = layers.filter((layer) => {\n return !this.layers.includes(layer);\n });\n for (let i = 0; i < layersToInit.length; i += 1) {\n this.initLayer(layersToInit[i]);\n }\n this.layers = layers;\n }\n\n initLayer(layer) {\n layer.init(this.map);\n if (\n layer.olLayer &&\n this.map.getLayers() &&\n !this.map.getLayers().getArray().includes(layer.olLayer)\n ) {\n this.map.addLayer(layer.olLayer);\n }\n const layers = layer.children || [];\n for (let i = 0; i < layers.length; i += 1) {\n this.initLayer(layers[i]);\n }\n }\n\n terminateLayer(layer) {\n if (\n layer.olLayer &&\n this.map.getLayers() &&\n this.map.getLayers().getArray().includes(layer.olLayer)\n ) {\n this.map.removeLayer(layer.olLayer);\n }\n layer.terminate(this.map);\n const layers = layer.children || [];\n for (let i = 0; i < layers.length; i += 1) {\n this.terminateLayer(layers[i]);\n }\n }\n\n listenMoveEnd() {\n const { onMapMoved } = this.props;\n unByKey(this.moveEndRef);\n\n if (!onMapMoved) {\n return;\n }\n\n this.moveEndRef = this.map.on('moveend', (evt) => {\n return onMapMoved(evt);\n });\n }\n\n listenSingleClick() {\n const { onFeaturesClick, featuresClickOptions } = this.props;\n unByKey(this.singleClickRef);\n\n if (!onFeaturesClick) {\n return;\n }\n\n this.singleClickRef = this.map.on('singleclick', (evt) => {\n const features = evt.map.getFeaturesAtPixel(\n evt.pixel,\n featuresClickOptions,\n );\n onFeaturesClick(features || [], evt);\n });\n }\n\n listenPointerMove() {\n const { onFeaturesHover } = this.props;\n unByKey(this.pointerMoveRef);\n\n if (!onFeaturesHover) {\n return;\n }\n\n this.pointerMoveRef = this.map.on('pointermove', (evt) => {\n const features = evt.map.getFeaturesAtPixel(evt.pixel);\n onFeaturesHover(features || [], evt);\n });\n }\n\n render() {\n const { className, tabIndex, ariaLabel, style } = this.props;\n const { node } = this.state;\n return (\n <div\n className={className}\n ref={this.setNode}\n role=\"presentation\"\n aria-label={ariaLabel}\n tabIndex={tabIndex}\n style={style}\n >\n <ResizeHandler\n maxHeightBrkpts={null}\n maxWidthBrkpts={null}\n observe={node}\n onResize={() => {\n this.map.updateSize();\n }}\n />\n </div>\n );\n }\n}\n\nBasicMap.propTypes = propTypes;\nBasicMap.defaultProps = defaultProps;\n\nexport default BasicMap;\n"],"names":["const","super","i","let","this"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BasicMap.js","sources":["../../../src/components/BasicMap/BasicMap.js"],"sourcesContent":["import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { defaults as defaultInteractions } from 'ol/interaction';\nimport { equals } from 'ol/extent';\nimport OLMap from 'ol/Map';\nimport OLCollection from 'ol/Collection';\nimport View from 'ol/View';\nimport { unByKey } from 'ol/Observable';\nimport Interaction from 'ol/interaction/Interaction';\nimport { Layer } from 'mobility-toolbox-js/ol';\nimport ResizeHandler from '../ResizeHandler';\n\nconst propTypes = {\n /** Map animation options */\n animationOptions: PropTypes.shape({\n center: PropTypes.arrayOf(PropTypes.number),\n resolution: PropTypes.number,\n zoom: PropTypes.number,\n }),\n\n /** Center of the [ol/View](https://openlayers.org/en/latest/apidoc/module-ol_View-View.html). */\n center: PropTypes.arrayOf(PropTypes.number),\n\n /** Class name of the map container */\n className: PropTypes.string,\n\n /** Map extent */\n extent: PropTypes.arrayOf(PropTypes.number),\n\n /** Openlayers [fit options](https://openlayers.org/en/latest/apidoc/module-ol_View-View.html#fit) when extent is updated */\n fitOptions: PropTypes.object,\n\n /** Array of [ol/interaction](https://openlayers.org/en/latest/apidoc/module-ol_interaction_Interaction-Interaction.html). */\n interactions: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.instanceOf(Interaction)),\n PropTypes.instanceOf(OLCollection),\n ]),\n\n /** Array of [mobility-toolbox-js layers](https://mobility-toolbox-js.geops.io/api/identifiers%20html#ol-layers) to display. */\n layers: PropTypes.arrayOf(PropTypes.instanceOf(Layer)),\n\n /** An [ol/map](https://openlayers.org/en/latest/apidoc/module-ol_Map-Map.html). */\n map: PropTypes.instanceOf(OLMap),\n\n /**\n * Callback when a [ol/Feature](https://openlayers.org/en/latest/apidoc/module-ol_Feature-Feature.html) is clicked.\n * @param {OLFeature[]} features An array of [ol/Feature](https://openlayers.org/en/latest/apidoc/module-ol_Feature-Feature.html).\n * @param {ol.MapBrowserEvent} event The singleclick [ol/MapBrowserEvent](https://openlayers.org/en/latest/apidoc/module-ol_MapBrowserEvent-MapBrowserEvent.html#event:singleclick).\n */\n onFeaturesClick: PropTypes.func,\n\n /**\n * Optional options to pass on feature click. Passed to ol's 'getFeaturesAtPixel' method.\n * https://openlayers.org/en/latest/apidoc/module-ol_Map-Map.html#getFeaturesAtPixel\n */\n featuresClickOptions: PropTypes.shape({\n layerFilter: PropTypes.func,\n hitTolerance: PropTypes.number,\n checkWrapped: PropTypes.bool,\n }),\n\n /**\n * Callback when a [ol/Feature](https://openlayers.org/en/latest/apidoc/module-ol_Feature-Feature.html) is hovered.\n * @param {OLFeature[]} features An array of [ol/Feature](https://openlayers.org/en/latest/apidoc/module-ol_Feature-Feature.html).\n * @param {ol.MapBrowserEvent} event The pointermove [ol/MapBrowserEvent](https://openlayers.org/en/latest/apidoc/module-ol_MapBrowserEvent-MapBrowserEvent.html#event:pointermove).\n */\n onFeaturesHover: PropTypes.func,\n\n /**\n * Callback when the map was moved.\n * @param {ol.MapEvent} event The movend [ol/MapEvent](https://openlayers.org/en/latest/apidoc/module-ol_MapBrowserEvent-MapBrowserEvent.html#event:moveend).\n */\n onMapMoved: PropTypes.func,\n\n /** Map resolution */\n resolution: PropTypes.number,\n\n /** The tabIndex of the map. */\n tabIndex: PropTypes.number,\n\n /** The style of the map. */\n style: PropTypes.object,\n\n /** HTML aria-label. */\n ariaLabel: PropTypes.string,\n\n /** [ol/View](https://openlayers.org/en/latest/apidoc/module-ol_View-View.html) constructor options */\n viewOptions: PropTypes.shape({\n minZoom: PropTypes.number,\n maxZoom: PropTypes.number,\n extent: PropTypes.array,\n projection: PropTypes.string,\n }),\n\n /** Map zoom level */\n zoom: PropTypes.number,\n};\n\nconst defaultProps = {\n animationOptions: undefined,\n center: [0, 0],\n className: 'rs-map',\n extent: undefined,\n fitOptions: {\n duration: 1000,\n padding: [20, 20, 20, 20],\n maxZoom: 23,\n },\n style: undefined,\n interactions: null,\n layers: [],\n map: null,\n onFeaturesClick: undefined,\n featuresClickOptions: {\n hitTolerance: 0,\n },\n onFeaturesHover: undefined,\n onMapMoved: undefined,\n resolution: undefined,\n tabIndex: undefined,\n ariaLabel: 'map',\n viewOptions: {\n minZoom: 0,\n maxZoom: 22,\n extent: undefined,\n projection: 'EPSG:3857',\n },\n zoom: 1,\n};\n\n/**\n * The BasicMap component renders an [ol/map](https://openlayers.org/en/latest/apidoc/module-ol_Map-Map.html).\n *\n * The map's view is created with the following parameters for the view:\n * - projection: 'EPSG:3857'\n * - zoom: 0\n * - minZoom: 0\n * - maxZoom: 22\n *\n * These options can be overridden using the viewOptions property.\n */\nclass BasicMap extends PureComponent {\n constructor(props) {\n super(props);\n const { map, interactions } = this.props;\n\n this.map =\n map ||\n new OLMap({\n controls: [],\n interactions:\n interactions ||\n defaultInteractions({\n altShiftDragRotate: false,\n pinchRotate: false,\n }),\n });\n\n this.state = {\n node: null,\n };\n\n this.layers = [];\n this.moveEndRef = null;\n this.singleClickRef = null;\n this.pointerMoveRef = null;\n this.setNode = this.setNode.bind(this);\n }\n\n componentDidMount() {\n const { layers, extent, viewOptions, center, zoom, resolution } =\n this.props;\n const { node } = this.state;\n this.map.setTarget(node);\n\n // We set the view here otherwise the map is not correctly zoomed.\n this.map.setView(new View({ ...viewOptions, center, zoom, resolution }));\n\n // // Since ol 6.1.0 touch-action is set to auto and creates a bad navigation experience on mobile,\n // // so we have to force it to none for mobile.\n // // https://github.com/openlayers/openlayers/pull/10187/files\n const viewPort = this.map.getViewport();\n viewPort.style.touchAction = 'none';\n viewPort.style.msTouchAction = 'none';\n viewPort.setAttribute('touch-action', 'none');\n\n // Fit only work if the map has a size.\n if (this.map.getSize() && extent) {\n this.map.getView().fit(extent);\n }\n\n this.setLayers(layers);\n this.listenMoveEnd();\n this.listenSingleClick();\n this.listenPointerMove();\n }\n\n componentDidUpdate(prevProps, prevState) {\n const {\n animationOptions,\n center,\n extent,\n fitOptions,\n layers,\n resolution,\n viewOptions,\n zoom,\n onMapMoved,\n onFeaturesClick,\n onFeaturesHover,\n } = this.props;\n const { node } = this.state;\n\n if (prevState.node !== node) {\n this.map.setTarget(node);\n\n // When the node is set we reinitialize the extent with the extent property.\n if (!prevState.node && node && extent) {\n this.map.getView().fit(extent);\n }\n }\n\n if (prevProps.layers !== layers) {\n this.setLayers(layers, prevProps.layers);\n }\n\n // Creates a new view if necessary before updating the others prop.\n if (\n viewOptions &&\n JSON.stringify(viewOptions) !== JSON.stringify(prevProps.viewOptions)\n ) {\n // Re-create a view, ol doesn't provide any method to setExtent of view.\n this.map.setView(\n new View({\n ...viewOptions,\n center,\n resolution,\n zoom,\n }),\n );\n }\n\n const view = this.map.getView();\n\n if (animationOptions && prevProps.animationOptions !== animationOptions) {\n view.animate(animationOptions);\n }\n\n if (prevProps.center !== center) {\n view.setCenter(center);\n }\n\n if (zoom !== prevProps.zoom) {\n view.setZoom(zoom);\n }\n\n if (resolution !== prevProps.resolution) {\n view.setResolution(resolution);\n }\n\n if (extent && !equals(extent, prevProps.extent || [])) {\n view.fit(extent, fitOptions);\n }\n\n if (onMapMoved !== prevProps.onMapMoved) {\n this.listenMoveEnd();\n }\n\n if (onFeaturesClick !== prevProps.onFeaturesClick) {\n this.listenSingleClick();\n }\n\n if (onFeaturesHover !== prevProps.onFeaturesHover) {\n this.listenPointerMove();\n }\n }\n\n componentWillUnmount() {\n unByKey([this.moveEndRef, this.singleClickRef, this.pointerMoveRef]);\n }\n\n setNode(node) {\n this.setState({ node });\n }\n\n setLayers(layers = [], prevLayers = []) {\n for (let i = 0; i < prevLayers.length; i += 1) {\n this.terminateLayer(prevLayers[i]);\n }\n for (let i = 0; i < layers.length; i += 1) {\n this.initLayer(layers[i]);\n }\n this.layers = layers;\n }\n\n initLayer(layer) {\n layer.init(this.map);\n if (\n layer.olLayer &&\n this.map.getLayers() &&\n !this.map.getLayers().getArray().includes(layer.olLayer)\n ) {\n this.map.addLayer(layer.olLayer);\n }\n const layers = layer.children || [];\n for (let i = 0; i < layers.length; i += 1) {\n this.initLayer(layers[i]);\n }\n }\n\n terminateLayer(layer) {\n if (\n layer.olLayer &&\n this.map.getLayers() &&\n this.map.getLayers().getArray().includes(layer.olLayer)\n ) {\n this.map.removeLayer(layer.olLayer);\n }\n layer.terminate(this.map);\n const layers = layer.children || [];\n for (let i = 0; i < layers.length; i += 1) {\n this.terminateLayer(layers[i]);\n }\n }\n\n listenMoveEnd() {\n const { onMapMoved } = this.props;\n unByKey(this.moveEndRef);\n\n if (!onMapMoved) {\n return;\n }\n\n this.moveEndRef = this.map.on('moveend', (evt) => {\n return onMapMoved(evt);\n });\n }\n\n listenSingleClick() {\n const { onFeaturesClick, featuresClickOptions } = this.props;\n unByKey(this.singleClickRef);\n\n if (!onFeaturesClick) {\n return;\n }\n\n this.singleClickRef = this.map.on('singleclick', (evt) => {\n const features = evt.map.getFeaturesAtPixel(\n evt.pixel,\n featuresClickOptions,\n );\n onFeaturesClick(features || [], evt);\n });\n }\n\n listenPointerMove() {\n const { onFeaturesHover } = this.props;\n unByKey(this.pointerMoveRef);\n\n if (!onFeaturesHover) {\n return;\n }\n\n this.pointerMoveRef = this.map.on('pointermove', (evt) => {\n const features = evt.map.getFeaturesAtPixel(evt.pixel);\n onFeaturesHover(features || [], evt);\n });\n }\n\n render() {\n const { className, tabIndex, ariaLabel, style } = this.props;\n const { node } = this.state;\n return (\n <div\n className={className}\n ref={this.setNode}\n role=\"presentation\"\n aria-label={ariaLabel}\n tabIndex={tabIndex}\n style={style}\n >\n <ResizeHandler\n maxHeightBrkpts={null}\n maxWidthBrkpts={null}\n observe={node}\n onResize={() => {\n this.map.updateSize();\n }}\n />\n </div>\n );\n }\n}\n\nBasicMap.propTypes = propTypes;\nBasicMap.defaultProps = defaultProps;\n\nexport default BasicMap;\n"],"names":["const","super","i","let","this"],"mappings":"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"}
|