react-spatial 2.0.0-beta.1 → 2.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -10
- package/components/BaseLayerSwitcher/BaseLayerSwitcher.js +243 -220
- package/components/BaseLayerSwitcher/BaseLayerSwitcher.js.map +7 -1
- package/components/BaseLayerSwitcher/BaseLayerSwitcher.scss +6 -5
- package/components/BaseLayerSwitcher/index.js +1 -3
- package/components/BaseLayerSwitcher/index.js.map +7 -1
- package/components/BasicMap/BasicMap.js +165 -285
- package/components/BasicMap/BasicMap.js.map +7 -1
- package/components/BasicMap/index.js +1 -3
- package/components/BasicMap/index.js.map +7 -1
- package/components/CanvasSaveButton/CanvasSaveButton.js +434 -556
- package/components/CanvasSaveButton/CanvasSaveButton.js.map +7 -1
- package/components/CanvasSaveButton/CanvasSaveButton.md.scss +1 -1
- package/components/CanvasSaveButton/index.js +1 -3
- package/components/CanvasSaveButton/index.js.map +7 -1
- package/components/Copyright/Copyright.js +44 -77
- package/components/Copyright/Copyright.js.map +7 -1
- package/components/Copyright/index.js +1 -3
- package/components/Copyright/index.js.map +7 -1
- package/components/FeatureExportButton/FeatureExportButton.js +44 -92
- package/components/FeatureExportButton/FeatureExportButton.js.map +7 -1
- package/components/FeatureExportButton/index.js +1 -3
- package/components/FeatureExportButton/index.js.map +7 -1
- package/components/FitExtent/FitExtent.js +31 -46
- package/components/FitExtent/FitExtent.js.map +7 -1
- package/components/FitExtent/index.js +1 -3
- package/components/FitExtent/index.js.map +7 -1
- package/components/Geolocation/Geolocation.js +158 -228
- package/components/Geolocation/Geolocation.js.map +7 -1
- package/components/Geolocation/Geolocation.scss +7 -5
- package/components/Geolocation/index.js +1 -3
- package/components/Geolocation/index.js.map +7 -1
- package/components/LayerTree/LayerTree.js +359 -357
- package/components/LayerTree/LayerTree.js.map +7 -1
- package/components/LayerTree/LayerTree.scss +4 -6
- package/components/LayerTree/index.js +1 -3
- package/components/LayerTree/index.js.map +7 -1
- package/components/MousePosition/MousePosition.js +71 -109
- package/components/MousePosition/MousePosition.js.map +7 -1
- package/components/MousePosition/index.js +1 -3
- package/components/MousePosition/index.js.map +7 -1
- package/components/NorthArrow/NorthArrow.js +37 -61
- package/components/NorthArrow/NorthArrow.js.map +7 -1
- package/components/NorthArrow/index.js +1 -3
- package/components/NorthArrow/index.js.map +7 -1
- package/components/Overlay/Overlay.js +93 -123
- package/components/Overlay/Overlay.js.map +7 -1
- package/components/Overlay/index.js +1 -3
- package/components/Overlay/index.js.map +7 -1
- package/components/Permalink/Permalink.js +194 -229
- package/components/Permalink/Permalink.js.map +7 -1
- package/components/Permalink/index.js +1 -3
- package/components/Permalink/index.js.map +7 -1
- package/components/Popup/Popup.js +139 -215
- package/components/Popup/Popup.js.map +7 -1
- package/components/Popup/Popup.md.scss +1 -0
- package/components/Popup/Popup.scss +3 -1
- package/components/Popup/index.js +1 -3
- package/components/Popup/index.js.map +7 -1
- package/components/ResizeHandler/ResizeHandler.js +88 -137
- package/components/ResizeHandler/ResizeHandler.js.map +7 -1
- package/components/ResizeHandler/index.js +1 -3
- package/components/ResizeHandler/index.js.map +7 -1
- package/components/RouteSchedule/RouteSchedule.js +227 -277
- package/components/RouteSchedule/RouteSchedule.js.map +7 -1
- package/components/RouteSchedule/RouteSchedule.md.scss +4 -2
- package/components/RouteSchedule/RouteSchedule.scss +12 -23
- package/components/RouteSchedule/index.js +1 -3
- package/components/RouteSchedule/index.js.map +7 -1
- package/components/ScaleLine/ScaleLine.js +17 -39
- package/components/ScaleLine/ScaleLine.js.map +7 -1
- package/components/ScaleLine/ScaleLine.scss +6 -4
- package/components/ScaleLine/index.js +1 -3
- package/components/ScaleLine/index.js.map +7 -1
- package/components/StopsFinder/StopsFinder.js +134 -162
- package/components/StopsFinder/StopsFinder.js.map +7 -1
- package/components/StopsFinder/StopsFinderOption.js +30 -60
- package/components/StopsFinder/StopsFinderOption.js.map +7 -1
- package/components/StopsFinder/index.js +1 -3
- package/components/StopsFinder/index.js.map +7 -1
- package/components/Zoom/Zoom.js +102 -106
- package/components/Zoom/Zoom.js.map +7 -1
- package/components/Zoom/Zoom.md.scss +3 -1
- package/components/Zoom/Zoom.scss +7 -5
- package/components/Zoom/index.js +1 -3
- package/components/Zoom/index.js.map +7 -1
- package/images/geops_qr.png +0 -0
- package/package.json +88 -182
- package/propTypes.js +36 -24
- package/propTypes.js.map +7 -1
- package/setupTests.js +21 -4
- package/setupTests.js.map +7 -1
- package/themes/README.md +26 -0
- package/themes/default/components.scss +9 -14
- package/themes/default/examples.scss +20 -20
- package/themes/default/index.scss +3 -3
- package/themes/default/mixins.scss +7 -5
- package/themes/default/variables.scss +27 -25
- package/utils/GlobalsForOle.js +72 -73
- package/utils/GlobalsForOle.js.map +7 -1
- package/utils/KML.js +320 -381
- package/utils/KML.js.map +7 -1
- package/utils/Styles.js +25 -33
- package/utils/Styles.js.map +7 -1
- package/utils/getLayersAsFlatArray.js +14 -0
- package/utils/getLayersAsFlatArray.js.map +7 -0
- package/utils/getPolygonPattern.js +11 -44
- package/utils/getPolygonPattern.js.map +7 -1
- package/utils/timeUtils.js +20 -35
- package/utils/timeUtils.js.map +7 -1
- package/LayerService.js +0 -193
- package/LayerService.js.map +0 -1
- package/LayerService.test.js +0 -160
- package/LayerService.test.js.map +0 -1
- package/Projections.js +0 -16
- package/Projections.js.map +0 -1
- package/components/BaseLayerSwitcher/BaseLayerSwitcher.test.js +0 -88
- package/components/BaseLayerSwitcher/BaseLayerSwitcher.test.js.map +0 -1
- package/components/BaseLayerToggler/BaseLayerToggler.js +0 -490
- package/components/BaseLayerToggler/BaseLayerToggler.js.map +0 -1
- package/components/BaseLayerToggler/BaseLayerToggler.md.scss +0 -9
- package/components/BaseLayerToggler/BaseLayerToggler.scss +0 -49
- package/components/BaseLayerToggler/BaseLayerToggler.test.js +0 -127
- package/components/BaseLayerToggler/BaseLayerToggler.test.js.map +0 -1
- package/components/BaseLayerToggler/index.js +0 -3
- package/components/BaseLayerToggler/index.js.map +0 -1
- package/components/BasicMap/BasicMap.test.js +0 -288
- package/components/BasicMap/BasicMap.test.js.map +0 -1
- package/components/CanvasSaveButton/CanvasSaveButton.test.js +0 -173
- package/components/CanvasSaveButton/CanvasSaveButton.test.js.map +0 -1
- package/components/Copyright/Copyright.test.js +0 -133
- package/components/Copyright/Copyright.test.js.map +0 -1
- package/components/FeatureExportButton/FeatureExportButton.test.js +0 -407
- package/components/FeatureExportButton/FeatureExportButton.test.js.map +0 -1
- package/components/FilterButton/FilterButton.js +0 -131
- package/components/FilterButton/FilterButton.js.map +0 -1
- package/components/FilterButton/FilterButton.scss +0 -36
- package/components/FilterButton/FilterButton.test.js +0 -48
- package/components/FilterButton/FilterButton.test.js.map +0 -1
- package/components/FilterButton/index.js +0 -3
- package/components/FilterButton/index.js.map +0 -1
- package/components/FitExtent/FitExtent.test.js +0 -44
- package/components/FitExtent/FitExtent.test.js.map +0 -1
- package/components/FollowButton/FollowButton.js +0 -143
- package/components/FollowButton/FollowButton.js.map +0 -1
- package/components/FollowButton/FollowButton.scss +0 -36
- package/components/FollowButton/FollowButton.test.js +0 -57
- package/components/FollowButton/FollowButton.test.js.map +0 -1
- package/components/FollowButton/index.js +0 -3
- package/components/FollowButton/index.js.map +0 -1
- package/components/Geolocation/Geolocation.test.js +0 -263
- package/components/Geolocation/Geolocation.test.js.map +0 -1
- package/components/LayerTree/LayerTree.test.js +0 -323
- package/components/LayerTree/LayerTree.test.js.map +0 -1
- package/components/MousePosition/MousePosition.test.js +0 -125
- package/components/MousePosition/MousePosition.test.js.map +0 -1
- package/components/NorthArrow/NorthArrow.test.js +0 -106
- package/components/NorthArrow/NorthArrow.test.js.map +0 -1
- package/components/Overlay/Overlay.test.js +0 -145
- package/components/Overlay/Overlay.test.js.map +0 -1
- package/components/Permalink/Permalink.test.js +0 -267
- package/components/Permalink/Permalink.test.js.map +0 -1
- package/components/Popup/Popup.test.js +0 -291
- package/components/Popup/Popup.test.js.map +0 -1
- package/components/ResizeHandler/ResizeHandler.test.js +0 -410
- package/components/ResizeHandler/ResizeHandler.test.js.map +0 -1
- package/components/RouteSchedule/RouteSchedule.test.js +0 -102
- package/components/RouteSchedule/RouteSchedule.test.js.map +0 -1
- package/components/ScaleLine/ScaleLine.test.js +0 -32
- package/components/ScaleLine/ScaleLine.test.js.map +0 -1
- package/components/Search/Search.js +0 -230
- package/components/Search/Search.js.map +0 -1
- package/components/Search/Search.md.scss +0 -4
- package/components/Search/Search.scss +0 -78
- package/components/Search/Search.test.js +0 -15
- package/components/Search/Search.test.js.map +0 -1
- package/components/Search/SearchService.js +0 -72
- package/components/Search/SearchService.js.map +0 -1
- package/components/Search/engines/Engine.js +0 -26
- package/components/Search/engines/Engine.js.map +0 -1
- package/components/Search/engines/StopFinder.js +0 -47
- package/components/Search/engines/StopFinder.js.map +0 -1
- package/components/Search/index.js +0 -6
- package/components/Search/index.js.map +0 -1
- package/components/StopsFinder/StopsFinder.test.js +0 -19
- package/components/StopsFinder/StopsFinder.test.js.map +0 -1
- package/components/TrackerControl/TrackerControl.js +0 -171
- package/components/TrackerControl/TrackerControl.js.map +0 -1
- package/components/TrackerControl/TrackerControl.scss +0 -30
- package/components/TrackerControl/TrackerControl.test.js +0 -17
- package/components/TrackerControl/TrackerControl.test.js.map +0 -1
- package/components/TrackerControl/index.js +0 -3
- package/components/TrackerControl/index.js.map +0 -1
- package/components/Zoom/Zoom.test.js +0 -150
- package/components/Zoom/Zoom.test.js.map +0 -1
- package/images/FilterButton/filter.svg +0 -1
- package/images/FollowButton/follow.svg +0 -1
- package/images/baselayer/osm.baselayer.hot.png +0 -0
- package/images/baselayer/osm.baselayer.png +0 -0
- package/styleguidist/ComponentsList.js +0 -52
- package/styleguidist/ComponentsList.js.map +0 -1
- package/styleguidist/StyleGuide.js +0 -253
- package/styleguidist/StyleGuide.js.map +0 -1
- package/utils/KML.test.js +0 -163
- package/utils/KML.test.js.map +0 -1
- package/utils/KMLFormat.js +0 -105
- package/utils/KMLFormat.js.map +0 -1
- package/utils/KMLFormat.test.js +0 -22
- package/utils/KMLFormat.test.js.map +0 -1
- package/utils/getPolygonPattern.test.js +0 -66
- package/utils/getPolygonPattern.test.js.map +0 -1
- package/utils/timeUtils.test.js +0 -32
- package/utils/timeUtils.test.js.map +0 -1
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
/* eslint-disable react/jsx-props-no-spreading */
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import renderer from 'react-test-renderer';
|
|
4
|
-
import { configure, mount } from 'enzyme';
|
|
5
|
-
import Adapter from 'enzyme-adapter-react-16';
|
|
6
|
-
import 'jest-canvas-mock';
|
|
7
|
-
import OLMap from 'ol/Map';
|
|
8
|
-
import OLMousePosition from 'ol/control/MousePosition';
|
|
9
|
-
import MousePosition from './MousePosition';
|
|
10
|
-
|
|
11
|
-
configure({ adapter: new Adapter() });
|
|
12
|
-
var expectSnapshot = function (props) {
|
|
13
|
-
var map = new OLMap({});
|
|
14
|
-
var component = renderer.create(React.createElement( MousePosition, Object.assign({}, { map: map }, props)));
|
|
15
|
-
var tree = component.toJSON();
|
|
16
|
-
expect(tree).toMatchSnapshot();
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
describe('MousePosition', function () {
|
|
20
|
-
describe('matches snapshots', function () {
|
|
21
|
-
test('using default values.', function () {
|
|
22
|
-
expectSnapshot({});
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
test('using no projections.', function () {
|
|
26
|
-
expectSnapshot({
|
|
27
|
-
projections: [],
|
|
28
|
-
});
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
test('using only one projection', function () {
|
|
32
|
-
expectSnapshot({
|
|
33
|
-
projections: [{ label: 'foo', value: 'foo' }],
|
|
34
|
-
});
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
test('using multiple projections.', function () {
|
|
38
|
-
expectSnapshot({
|
|
39
|
-
projections: [
|
|
40
|
-
{ label: 'foo', value: 'foo' },
|
|
41
|
-
{ label: 'bar', value: 'bar' } ],
|
|
42
|
-
});
|
|
43
|
-
});
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
test('add MousePosition control to the map.', function () {
|
|
47
|
-
var map = new OLMap({});
|
|
48
|
-
var spy = jest.spyOn(map, 'removeControl');
|
|
49
|
-
var spy2 = jest.spyOn(map, 'addControl');
|
|
50
|
-
var fn = jest.fn();
|
|
51
|
-
mount(
|
|
52
|
-
React.createElement( MousePosition, {
|
|
53
|
-
map: map, projections: [
|
|
54
|
-
{
|
|
55
|
-
label: 'EPSG:4326',
|
|
56
|
-
value: 'EPSG:4326',
|
|
57
|
-
format: fn,
|
|
58
|
-
} ] })
|
|
59
|
-
);
|
|
60
|
-
var ctrl = spy2.mock.calls[0][0];
|
|
61
|
-
expect(spy).toHaveBeenCalledTimes(0);
|
|
62
|
-
expect(spy2).toHaveBeenCalledTimes(1);
|
|
63
|
-
expect(ctrl).toBeInstanceOf(OLMousePosition);
|
|
64
|
-
expect(ctrl.getProjection().getCode()).toBe('EPSG:4326');
|
|
65
|
-
expect(ctrl.getCoordinateFormat()).toBe(fn);
|
|
66
|
-
});
|
|
67
|
-
|
|
68
|
-
test('add/remove MousePosition control on mount/unmount.', function () {
|
|
69
|
-
var map = new OLMap({});
|
|
70
|
-
var spy = jest.spyOn(map, 'removeControl');
|
|
71
|
-
var spy2 = jest.spyOn(map, 'addControl');
|
|
72
|
-
var wrapper = mount(React.createElement( MousePosition, { map: map }));
|
|
73
|
-
expect(spy).toHaveBeenCalledTimes(0);
|
|
74
|
-
expect(spy2).toHaveBeenCalledTimes(1);
|
|
75
|
-
wrapper.unmount();
|
|
76
|
-
expect(spy).toHaveBeenCalledTimes(1);
|
|
77
|
-
expect(spy.mock.calls[0][0]).toBe(spy2.mock.calls[0][0]);
|
|
78
|
-
});
|
|
79
|
-
|
|
80
|
-
test('triggers onChange when select projection.', function () {
|
|
81
|
-
var map = new OLMap({});
|
|
82
|
-
var onChange = jest.fn(function () {});
|
|
83
|
-
var wrapper = mount(
|
|
84
|
-
React.createElement( MousePosition, {
|
|
85
|
-
map: map, onChange: onChange, projections: [
|
|
86
|
-
{
|
|
87
|
-
label: 'EPSG:4326',
|
|
88
|
-
value: 'EPSG:4326',
|
|
89
|
-
format: jest.fn(),
|
|
90
|
-
} ] })
|
|
91
|
-
);
|
|
92
|
-
// onChange triggered on instantiation.
|
|
93
|
-
expect(onChange).toHaveBeenCalledTimes(0);
|
|
94
|
-
wrapper.find('select').simulate('change', {});
|
|
95
|
-
expect(onChange).toHaveBeenCalledTimes(1);
|
|
96
|
-
});
|
|
97
|
-
|
|
98
|
-
test('applies new format and value when we select a new projection.', function () {
|
|
99
|
-
var map = new OLMap({});
|
|
100
|
-
var spy = jest.spyOn(map, 'addControl');
|
|
101
|
-
var projs = [
|
|
102
|
-
{
|
|
103
|
-
label: 'EPSG:4326',
|
|
104
|
-
value: 'EPSG:4326',
|
|
105
|
-
format: jest.fn(),
|
|
106
|
-
},
|
|
107
|
-
{
|
|
108
|
-
label: 'EPSG:3857',
|
|
109
|
-
value: 'EPSG:3857',
|
|
110
|
-
format: jest.fn(),
|
|
111
|
-
} ];
|
|
112
|
-
var wrapper = mount(React.createElement( MousePosition, { map: map, projections: projs }));
|
|
113
|
-
|
|
114
|
-
var ctrl = spy.mock.calls[0][0];
|
|
115
|
-
expect(ctrl.getProjection().getCode()).toBe(projs[0].value);
|
|
116
|
-
expect(ctrl.getCoordinateFormat()).toBe(projs[0].format);
|
|
117
|
-
wrapper
|
|
118
|
-
.find('select')
|
|
119
|
-
.simulate('change', { target: { value: 'EPSG:3857' } });
|
|
120
|
-
expect(ctrl.getProjection().getCode()).toBe(projs[1].value);
|
|
121
|
-
expect(ctrl.getCoordinateFormat()).toBe(projs[1].format);
|
|
122
|
-
});
|
|
123
|
-
});
|
|
124
|
-
|
|
125
|
-
//# sourceMappingURL=MousePosition.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MousePosition.test.js","sources":["../../../src/components/MousePosition/MousePosition.test.js"],"sourcesContent":["/* eslint-disable react/jsx-props-no-spreading */\nimport React from 'react';\nimport renderer from 'react-test-renderer';\nimport { configure, mount } from 'enzyme';\nimport Adapter from 'enzyme-adapter-react-16';\nimport 'jest-canvas-mock';\nimport OLMap from 'ol/Map';\nimport OLMousePosition from 'ol/control/MousePosition';\nimport MousePosition from './MousePosition';\n\nconfigure({ adapter: new Adapter() });\nconst expectSnapshot = (props) => {\n const map = new OLMap({});\n const component = renderer.create(<MousePosition map={map} {...props} />);\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n};\n\ndescribe('MousePosition', () => {\n describe('matches snapshots', () => {\n test('using default values.', () => {\n expectSnapshot({});\n });\n\n test('using no projections.', () => {\n expectSnapshot({\n projections: [],\n });\n });\n\n test('using only one projection', () => {\n expectSnapshot({\n projections: [{ label: 'foo', value: 'foo' }],\n });\n });\n\n test('using multiple projections.', () => {\n expectSnapshot({\n projections: [\n { label: 'foo', value: 'foo' },\n { label: 'bar', value: 'bar' },\n ],\n });\n });\n });\n\n test('add MousePosition control to the map.', () => {\n const map = new OLMap({});\n const spy = jest.spyOn(map, 'removeControl');\n const spy2 = jest.spyOn(map, 'addControl');\n const fn = jest.fn();\n mount(\n <MousePosition\n map={map}\n projections={[\n {\n label: 'EPSG:4326',\n value: 'EPSG:4326',\n format: fn,\n },\n ]}\n />,\n );\n const ctrl = spy2.mock.calls[0][0];\n expect(spy).toHaveBeenCalledTimes(0);\n expect(spy2).toHaveBeenCalledTimes(1);\n expect(ctrl).toBeInstanceOf(OLMousePosition);\n expect(ctrl.getProjection().getCode()).toBe('EPSG:4326');\n expect(ctrl.getCoordinateFormat()).toBe(fn);\n });\n\n test('add/remove MousePosition control on mount/unmount.', () => {\n const map = new OLMap({});\n const spy = jest.spyOn(map, 'removeControl');\n const spy2 = jest.spyOn(map, 'addControl');\n const wrapper = mount(<MousePosition map={map} />);\n expect(spy).toHaveBeenCalledTimes(0);\n expect(spy2).toHaveBeenCalledTimes(1);\n wrapper.unmount();\n expect(spy).toHaveBeenCalledTimes(1);\n expect(spy.mock.calls[0][0]).toBe(spy2.mock.calls[0][0]);\n });\n\n test('triggers onChange when select projection.', () => {\n const map = new OLMap({});\n const onChange = jest.fn(() => {});\n const wrapper = mount(\n <MousePosition\n map={map}\n onChange={onChange}\n projections={[\n {\n label: 'EPSG:4326',\n value: 'EPSG:4326',\n format: jest.fn(),\n },\n ]}\n />,\n );\n // onChange triggered on instantiation.\n expect(onChange).toHaveBeenCalledTimes(0);\n wrapper.find('select').simulate('change', {});\n expect(onChange).toHaveBeenCalledTimes(1);\n });\n\n test('applies new format and value when we select a new projection.', () => {\n const map = new OLMap({});\n const spy = jest.spyOn(map, 'addControl');\n const projs = [\n {\n label: 'EPSG:4326',\n value: 'EPSG:4326',\n format: jest.fn(),\n },\n {\n label: 'EPSG:3857',\n value: 'EPSG:3857',\n format: jest.fn(),\n },\n ];\n const wrapper = mount(<MousePosition map={map} projections={projs} />);\n\n const ctrl = spy.mock.calls[0][0];\n expect(ctrl.getProjection().getCode()).toBe(projs[0].value);\n expect(ctrl.getCoordinateFormat()).toBe(projs[0].format);\n wrapper\n .find('select')\n .simulate('change', { target: { value: 'EPSG:3857' } });\n expect(ctrl.getProjection().getCode()).toBe(projs[1].value);\n expect(ctrl.getCoordinateFormat()).toBe(projs[1].format);\n });\n});\n"],"names":["const"],"mappings":"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"}
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
import 'jest-canvas-mock';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import renderer from 'react-test-renderer';
|
|
4
|
-
import { act } from 'react-dom/test-utils';
|
|
5
|
-
import { configure, mount } from 'enzyme';
|
|
6
|
-
import Adapter from 'enzyme-adapter-react-16';
|
|
7
|
-
import MapEvent from 'ol/MapEvent';
|
|
8
|
-
import OLMap from 'ol/Map';
|
|
9
|
-
import OLView from 'ol/View';
|
|
10
|
-
import { TiImage } from 'react-icons/ti';
|
|
11
|
-
import NorthArrow from './NorthArrow';
|
|
12
|
-
|
|
13
|
-
configure({ adapter: new Adapter() });
|
|
14
|
-
var olView;
|
|
15
|
-
var olMap;
|
|
16
|
-
|
|
17
|
-
describe('NorthArrow', function () {
|
|
18
|
-
beforeEach(function () {
|
|
19
|
-
olView = new OLView();
|
|
20
|
-
olMap = new OLMap({ view: olView });
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
test('should match snapshot with default value.', function () {
|
|
24
|
-
var component;
|
|
25
|
-
renderer.act(function () {
|
|
26
|
-
component = renderer.create(React.createElement( NorthArrow, { map: olMap }));
|
|
27
|
-
});
|
|
28
|
-
var tree = component.toJSON();
|
|
29
|
-
expect(tree).toMatchSnapshot();
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
test('should match snapshot with custom attributes.', function () {
|
|
33
|
-
var component;
|
|
34
|
-
renderer.act(function () {
|
|
35
|
-
component = renderer.create(
|
|
36
|
-
React.createElement( NorthArrow, { map: olMap, className: "test-class", tabIndex: 0 })
|
|
37
|
-
);
|
|
38
|
-
});
|
|
39
|
-
var tree = component.toJSON();
|
|
40
|
-
expect(tree).toMatchSnapshot();
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
test('should match snapshot with children.', function () {
|
|
44
|
-
var component;
|
|
45
|
-
renderer.act(function () {
|
|
46
|
-
component = renderer.create(
|
|
47
|
-
React.createElement( NorthArrow, { map: olMap },
|
|
48
|
-
React.createElement( TiImage, null )
|
|
49
|
-
)
|
|
50
|
-
);
|
|
51
|
-
});
|
|
52
|
-
var tree = component.toJSON();
|
|
53
|
-
expect(tree).toMatchSnapshot();
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
test('should match snapshot rotated.', function () {
|
|
57
|
-
var component;
|
|
58
|
-
renderer.act(function () {
|
|
59
|
-
component = renderer.create(
|
|
60
|
-
React.createElement( NorthArrow, { map: olMap, rotationOffset: 45 })
|
|
61
|
-
);
|
|
62
|
-
});
|
|
63
|
-
var tree = component.toJSON();
|
|
64
|
-
expect(tree).toMatchSnapshot();
|
|
65
|
-
});
|
|
66
|
-
|
|
67
|
-
test('should match snapshot with circle.', function () {
|
|
68
|
-
var component;
|
|
69
|
-
renderer.act(function () {
|
|
70
|
-
component = renderer.create(React.createElement( NorthArrow, { circled: true, map: olMap }));
|
|
71
|
-
});
|
|
72
|
-
var tree = component.toJSON();
|
|
73
|
-
expect(tree).toMatchSnapshot();
|
|
74
|
-
});
|
|
75
|
-
|
|
76
|
-
test('should react on view rotation (transform: `rotate(20deg)`)', function () {
|
|
77
|
-
var wrapper = mount(React.createElement( NorthArrow, { map: olMap }));
|
|
78
|
-
// Trigger view rotation
|
|
79
|
-
olMap.getView().setRotation(0.3490658503988659);
|
|
80
|
-
act(function () {
|
|
81
|
-
olMap.dispatchEvent(new MapEvent('postrender', olMap));
|
|
82
|
-
// 20 degrees = 0.3490658503988659 radians
|
|
83
|
-
});
|
|
84
|
-
expect(wrapper.html()).toMatchSnapshot();
|
|
85
|
-
});
|
|
86
|
-
|
|
87
|
-
test('should react on view rotation with offset (transform: `rotate(10deg)`)', function () {
|
|
88
|
-
var wrapper = mount(React.createElement( NorthArrow, { map: olMap, rotationOffset: -10 }));
|
|
89
|
-
olMap.getView().setRotation(0.3490658503988659);
|
|
90
|
-
act(function () {
|
|
91
|
-
olMap.dispatchEvent(new MapEvent('postrender', olMap));
|
|
92
|
-
});
|
|
93
|
-
expect(wrapper.html()).toMatchSnapshot();
|
|
94
|
-
});
|
|
95
|
-
|
|
96
|
-
test('should remove post render event on unmount', function () {
|
|
97
|
-
var wrapper = mount(React.createElement( NorthArrow, { map: olMap, rotationOffset: -10 }));
|
|
98
|
-
// eslint-disable-next-line no-underscore-dangle
|
|
99
|
-
expect(olMap.listeners_.postrender.length).toBe(4);
|
|
100
|
-
wrapper.unmount();
|
|
101
|
-
// eslint-disable-next-line no-underscore-dangle
|
|
102
|
-
expect(olMap.listeners_.postrender.length).toBe(3);
|
|
103
|
-
});
|
|
104
|
-
});
|
|
105
|
-
|
|
106
|
-
//# sourceMappingURL=NorthArrow.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NorthArrow.test.js","sources":["../../../src/components/NorthArrow/NorthArrow.test.js"],"sourcesContent":["import 'jest-canvas-mock';\nimport React from 'react';\nimport renderer from 'react-test-renderer';\nimport { act } from 'react-dom/test-utils';\nimport { configure, mount } from 'enzyme';\nimport Adapter from 'enzyme-adapter-react-16';\nimport MapEvent from 'ol/MapEvent';\nimport OLMap from 'ol/Map';\nimport OLView from 'ol/View';\nimport { TiImage } from 'react-icons/ti';\nimport NorthArrow from './NorthArrow';\n\nconfigure({ adapter: new Adapter() });\nlet olView;\nlet olMap;\n\ndescribe('NorthArrow', () => {\n beforeEach(() => {\n olView = new OLView();\n olMap = new OLMap({ view: olView });\n });\n\n test('should match snapshot with default value.', () => {\n let component;\n renderer.act(() => {\n component = renderer.create(<NorthArrow map={olMap} />);\n });\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n test('should match snapshot with custom attributes.', () => {\n let component;\n renderer.act(() => {\n component = renderer.create(\n <NorthArrow map={olMap} className=\"test-class\" tabIndex={0} />,\n );\n });\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n test('should match snapshot with children.', () => {\n let component;\n renderer.act(() => {\n component = renderer.create(\n <NorthArrow map={olMap}>\n <TiImage />\n </NorthArrow>,\n );\n });\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n test('should match snapshot rotated.', () => {\n let component;\n renderer.act(() => {\n component = renderer.create(\n <NorthArrow map={olMap} rotationOffset={45} />,\n );\n });\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n test('should match snapshot with circle.', () => {\n let component;\n renderer.act(() => {\n component = renderer.create(<NorthArrow circled map={olMap} />);\n });\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n test('should react on view rotation (transform: `rotate(20deg)`)', () => {\n const wrapper = mount(<NorthArrow map={olMap} />);\n // Trigger view rotation\n olMap.getView().setRotation(0.3490658503988659);\n act(() => {\n olMap.dispatchEvent(new MapEvent('postrender', olMap));\n // 20 degrees = 0.3490658503988659 radians\n });\n expect(wrapper.html()).toMatchSnapshot();\n });\n\n test('should react on view rotation with offset (transform: `rotate(10deg)`)', () => {\n const wrapper = mount(<NorthArrow map={olMap} rotationOffset={-10} />);\n olMap.getView().setRotation(0.3490658503988659);\n act(() => {\n olMap.dispatchEvent(new MapEvent('postrender', olMap));\n });\n expect(wrapper.html()).toMatchSnapshot();\n });\n\n test('should remove post render event on unmount', () => {\n const wrapper = mount(<NorthArrow map={olMap} rotationOffset={-10} />);\n // eslint-disable-next-line no-underscore-dangle\n expect(olMap.listeners_.postrender.length).toBe(4);\n wrapper.unmount();\n // eslint-disable-next-line no-underscore-dangle\n expect(olMap.listeners_.postrender.length).toBe(3);\n });\n});\n"],"names":["let","const"],"mappings":"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"}
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
import React, { useState } from 'react';
|
|
2
|
-
import PropTypes from 'prop-types';
|
|
3
|
-
import { act } from 'react-dom/test-utils';
|
|
4
|
-
import { configure, mount } from 'enzyme';
|
|
5
|
-
import renderer from 'react-test-renderer';
|
|
6
|
-
import Adapter from 'enzyme-adapter-react-16';
|
|
7
|
-
import ResizeObserver from 'resize-observer-polyfill';
|
|
8
|
-
import { Resizable } from 're-resizable';
|
|
9
|
-
import Overlay from './Overlay';
|
|
10
|
-
|
|
11
|
-
jest.mock('resize-observer-polyfill');
|
|
12
|
-
|
|
13
|
-
configure({ adapter: new Adapter() });
|
|
14
|
-
|
|
15
|
-
var propTypes = {
|
|
16
|
-
isMobileResizable: PropTypes.bool,
|
|
17
|
-
thresholdWidthForMobile: PropTypes.number,
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
var defaultProps = {
|
|
21
|
-
isMobileResizable: undefined,
|
|
22
|
-
thresholdWidthForMobile: undefined,
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
var BasicComponent = function (ref$1) {
|
|
26
|
-
var thresholdWidthForMobile = ref$1.thresholdWidthForMobile;
|
|
27
|
-
var isMobileResizable = ref$1.isMobileResizable;
|
|
28
|
-
|
|
29
|
-
var ref$2 = useState(null);
|
|
30
|
-
var ref = ref$2[0];
|
|
31
|
-
var setRef = ref$2[1];
|
|
32
|
-
|
|
33
|
-
return (
|
|
34
|
-
React.createElement( React.Fragment, null,
|
|
35
|
-
React.createElement( 'div', {
|
|
36
|
-
ref: function (node) {
|
|
37
|
-
if (node !== ref) {
|
|
38
|
-
setRef(node);
|
|
39
|
-
}
|
|
40
|
-
}, className: "observer" }),
|
|
41
|
-
React.createElement( Overlay, {
|
|
42
|
-
observe: ref, thresholdWidthForMobile: thresholdWidthForMobile, isMobileResizable: isMobileResizable }, "Test content")
|
|
43
|
-
)
|
|
44
|
-
);
|
|
45
|
-
};
|
|
46
|
-
BasicComponent.propTypes = propTypes;
|
|
47
|
-
BasicComponent.defaultProps = defaultProps;
|
|
48
|
-
|
|
49
|
-
describe('Overlay', function () {
|
|
50
|
-
test('should match snapshot.', function () {
|
|
51
|
-
var component = renderer.create(React.createElement( Overlay, null, "Test content" ));
|
|
52
|
-
var tree = component.toJSON();
|
|
53
|
-
expect(tree).toMatchSnapshot();
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
test('should react on observe resize.', function () {
|
|
57
|
-
var wrapper = mount(React.createElement( BasicComponent, null ));
|
|
58
|
-
var target = wrapper.find('.observer').getDOMNode();
|
|
59
|
-
|
|
60
|
-
act(function () {
|
|
61
|
-
// The mock class set the onResize property, we just have to run it to
|
|
62
|
-
// simulate a resize
|
|
63
|
-
ResizeObserver.onResize([
|
|
64
|
-
{
|
|
65
|
-
target: target,
|
|
66
|
-
contentRect: {
|
|
67
|
-
width: 200,
|
|
68
|
-
height: 200,
|
|
69
|
-
},
|
|
70
|
-
} ]);
|
|
71
|
-
});
|
|
72
|
-
wrapper.update();
|
|
73
|
-
|
|
74
|
-
expect(wrapper.find('.tm-overlay').length > 0).toBe(false);
|
|
75
|
-
expect(wrapper.find('.tm-overlay-mobile').length > 0).toBe(true);
|
|
76
|
-
});
|
|
77
|
-
|
|
78
|
-
test('should force mobile overlay display on big screen.', function () {
|
|
79
|
-
var wrapper = mount(
|
|
80
|
-
React.createElement( BasicComponent, { thresholdWidthForMobile: Infinity })
|
|
81
|
-
);
|
|
82
|
-
var target = wrapper.find('.observer').getDOMNode();
|
|
83
|
-
|
|
84
|
-
act(function () {
|
|
85
|
-
ResizeObserver.onResize([
|
|
86
|
-
{
|
|
87
|
-
target: target,
|
|
88
|
-
contentRect: {
|
|
89
|
-
width: 1200,
|
|
90
|
-
height: 200,
|
|
91
|
-
},
|
|
92
|
-
} ]);
|
|
93
|
-
});
|
|
94
|
-
wrapper.update();
|
|
95
|
-
|
|
96
|
-
expect(wrapper.find('.tm-overlay').length > 0).toBe(false);
|
|
97
|
-
expect(wrapper.find('.tm-overlay-mobile').length > 0).toBe(true);
|
|
98
|
-
});
|
|
99
|
-
|
|
100
|
-
test('should allow resizing with top handler on mobile.', function () {
|
|
101
|
-
var wrapper = mount(React.createElement( BasicComponent, null ));
|
|
102
|
-
var target = wrapper.find('.observer').getDOMNode();
|
|
103
|
-
|
|
104
|
-
// Force resize to make it mobile.
|
|
105
|
-
act(function () {
|
|
106
|
-
ResizeObserver.onResize([
|
|
107
|
-
{
|
|
108
|
-
target: target,
|
|
109
|
-
contentRect: {
|
|
110
|
-
width: 200,
|
|
111
|
-
height: 200,
|
|
112
|
-
},
|
|
113
|
-
} ]);
|
|
114
|
-
});
|
|
115
|
-
wrapper.update();
|
|
116
|
-
|
|
117
|
-
var resizableProps = wrapper.find(Resizable).props();
|
|
118
|
-
|
|
119
|
-
expect(resizableProps.enable.top).toBe(true);
|
|
120
|
-
});
|
|
121
|
-
|
|
122
|
-
test('should not allow resizing with top handler on mobile.', function () {
|
|
123
|
-
var wrapper = mount(React.createElement( BasicComponent, { isMobileResizable: false }));
|
|
124
|
-
var target = wrapper.find('.observer').getDOMNode();
|
|
125
|
-
|
|
126
|
-
// Force resize to make it mobile.
|
|
127
|
-
act(function () {
|
|
128
|
-
ResizeObserver.onResize([
|
|
129
|
-
{
|
|
130
|
-
target: target,
|
|
131
|
-
contentRect: {
|
|
132
|
-
width: 200,
|
|
133
|
-
height: 200,
|
|
134
|
-
},
|
|
135
|
-
} ]);
|
|
136
|
-
});
|
|
137
|
-
wrapper.update();
|
|
138
|
-
|
|
139
|
-
var resizableProps = wrapper.find(Resizable).props();
|
|
140
|
-
|
|
141
|
-
expect(resizableProps.enable.top).toBe(false);
|
|
142
|
-
});
|
|
143
|
-
});
|
|
144
|
-
|
|
145
|
-
//# sourceMappingURL=Overlay.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Overlay.test.js","sources":["../../../src/components/Overlay/Overlay.test.js"],"sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { act } from 'react-dom/test-utils';\nimport { configure, mount } from 'enzyme';\nimport renderer from 'react-test-renderer';\nimport Adapter from 'enzyme-adapter-react-16';\nimport ResizeObserver from 'resize-observer-polyfill';\nimport { Resizable } from 're-resizable';\nimport Overlay from './Overlay';\n\njest.mock('resize-observer-polyfill');\n\nconfigure({ adapter: new Adapter() });\n\nconst propTypes = {\n isMobileResizable: PropTypes.bool,\n thresholdWidthForMobile: PropTypes.number,\n};\n\nconst defaultProps = {\n isMobileResizable: undefined,\n thresholdWidthForMobile: undefined,\n};\n\nconst BasicComponent = ({ thresholdWidthForMobile, isMobileResizable }) => {\n const [ref, setRef] = useState(null);\n\n return (\n <>\n <div\n ref={(node) => {\n if (node !== ref) {\n setRef(node);\n }\n }}\n className=\"observer\"\n />\n <Overlay\n observe={ref}\n thresholdWidthForMobile={thresholdWidthForMobile}\n isMobileResizable={isMobileResizable}\n >\n Test content\n </Overlay>\n </>\n );\n};\nBasicComponent.propTypes = propTypes;\nBasicComponent.defaultProps = defaultProps;\n\ndescribe('Overlay', () => {\n test('should match snapshot.', () => {\n const component = renderer.create(<Overlay>Test content</Overlay>);\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n });\n\n test('should react on observe resize.', () => {\n const wrapper = mount(<BasicComponent />);\n const target = wrapper.find('.observer').getDOMNode();\n\n act(() => {\n // The mock class set the onResize property, we just have to run it to\n // simulate a resize\n ResizeObserver.onResize([\n {\n target,\n contentRect: {\n width: 200,\n height: 200,\n },\n },\n ]);\n });\n wrapper.update();\n\n expect(wrapper.find('.tm-overlay').length > 0).toBe(false);\n expect(wrapper.find('.tm-overlay-mobile').length > 0).toBe(true);\n });\n\n test('should force mobile overlay display on big screen.', () => {\n const wrapper = mount(\n <BasicComponent thresholdWidthForMobile={Infinity} />,\n );\n const target = wrapper.find('.observer').getDOMNode();\n\n act(() => {\n ResizeObserver.onResize([\n {\n target,\n contentRect: {\n width: 1200,\n height: 200,\n },\n },\n ]);\n });\n wrapper.update();\n\n expect(wrapper.find('.tm-overlay').length > 0).toBe(false);\n expect(wrapper.find('.tm-overlay-mobile').length > 0).toBe(true);\n });\n\n test('should allow resizing with top handler on mobile.', () => {\n const wrapper = mount(<BasicComponent />);\n const target = wrapper.find('.observer').getDOMNode();\n\n // Force resize to make it mobile.\n act(() => {\n ResizeObserver.onResize([\n {\n target,\n contentRect: {\n width: 200,\n height: 200,\n },\n },\n ]);\n });\n wrapper.update();\n\n const resizableProps = wrapper.find(Resizable).props();\n\n expect(resizableProps.enable.top).toBe(true);\n });\n\n test('should not allow resizing with top handler on mobile.', () => {\n const wrapper = mount(<BasicComponent isMobileResizable={false} />);\n const target = wrapper.find('.observer').getDOMNode();\n\n // Force resize to make it mobile.\n act(() => {\n ResizeObserver.onResize([\n {\n target,\n contentRect: {\n width: 200,\n height: 200,\n },\n },\n ]);\n });\n wrapper.update();\n\n const resizableProps = wrapper.find(Resizable).props();\n\n expect(resizableProps.enable.top).toBe(false);\n });\n});\n"],"names":["const"],"mappings":"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"}
|