react-spatial 1.2.2 → 1.2.3-beta.3

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 (186) hide show
  1. package/LayerService.js +128 -184
  2. package/LayerService.js.map +7 -1
  3. package/components/BaseLayerSwitcher/BaseLayerSwitcher.js +163 -221
  4. package/components/BaseLayerSwitcher/BaseLayerSwitcher.js.map +7 -1
  5. package/components/BaseLayerSwitcher/index.js +1 -3
  6. package/components/BaseLayerSwitcher/index.js.map +7 -1
  7. package/components/BasicMap/BasicMap.js +147 -285
  8. package/components/BasicMap/BasicMap.js.map +7 -1
  9. package/components/BasicMap/index.js +1 -3
  10. package/components/BasicMap/index.js.map +7 -1
  11. package/components/CanvasSaveButton/CanvasSaveButton.js +165 -419
  12. package/components/CanvasSaveButton/CanvasSaveButton.js.map +7 -1
  13. package/components/CanvasSaveButton/index.js +1 -3
  14. package/components/CanvasSaveButton/index.js.map +7 -1
  15. package/components/Copyright/Copyright.js +29 -70
  16. package/components/Copyright/Copyright.js.map +7 -1
  17. package/components/Copyright/index.js +1 -3
  18. package/components/Copyright/index.js.map +7 -1
  19. package/components/FeatureExportButton/FeatureExportButton.js +40 -106
  20. package/components/FeatureExportButton/FeatureExportButton.js.map +7 -1
  21. package/components/FeatureExportButton/index.js +1 -3
  22. package/components/FeatureExportButton/index.js.map +7 -1
  23. package/components/FilterButton/FilterButton.js +41 -106
  24. package/components/FilterButton/FilterButton.js.map +7 -1
  25. package/components/FilterButton/index.js +1 -3
  26. package/components/FilterButton/index.js.map +7 -1
  27. package/components/FitExtent/FitExtent.js +17 -50
  28. package/components/FitExtent/FitExtent.js.map +7 -1
  29. package/components/FitExtent/index.js +1 -3
  30. package/components/FitExtent/index.js.map +7 -1
  31. package/components/FollowButton/FollowButton.js +41 -111
  32. package/components/FollowButton/FollowButton.js.map +7 -1
  33. package/components/FollowButton/index.js +1 -3
  34. package/components/FollowButton/index.js.map +7 -1
  35. package/components/Geolocation/Geolocation.js +104 -213
  36. package/components/Geolocation/Geolocation.js.map +7 -1
  37. package/components/Geolocation/index.js +1 -3
  38. package/components/Geolocation/index.js.map +7 -1
  39. package/components/LayerTree/LayerTree.js +204 -410
  40. package/components/LayerTree/LayerTree.js.map +7 -1
  41. package/components/LayerTree/index.js +1 -3
  42. package/components/LayerTree/index.js.map +7 -1
  43. package/components/MousePosition/MousePosition.js +61 -130
  44. package/components/MousePosition/MousePosition.js.map +7 -1
  45. package/components/MousePosition/index.js +1 -3
  46. package/components/MousePosition/index.js.map +7 -1
  47. package/components/NorthArrow/NorthArrow.js +22 -62
  48. package/components/NorthArrow/NorthArrow.js.map +7 -1
  49. package/components/NorthArrow/index.js +1 -3
  50. package/components/NorthArrow/index.js.map +7 -1
  51. package/components/Overlay/Overlay.js +83 -130
  52. package/components/Overlay/Overlay.js.map +7 -1
  53. package/components/Overlay/index.js +1 -3
  54. package/components/Overlay/index.js.map +7 -1
  55. package/components/Permalink/Permalink.js +150 -244
  56. package/components/Permalink/Permalink.js.map +7 -1
  57. package/components/Permalink/index.js +1 -3
  58. package/components/Permalink/index.js.map +7 -1
  59. package/components/Popup/Popup.js +106 -233
  60. package/components/Popup/Popup.js.map +7 -1
  61. package/components/Popup/index.js +1 -3
  62. package/components/Popup/index.js.map +7 -1
  63. package/components/ResizeHandler/ResizeHandler.js +58 -113
  64. package/components/ResizeHandler/ResizeHandler.js.map +7 -1
  65. package/components/ResizeHandler/index.js +1 -3
  66. package/components/ResizeHandler/index.js.map +7 -1
  67. package/components/RouteSchedule/RouteSchedule.js +150 -283
  68. package/components/RouteSchedule/RouteSchedule.js.map +7 -1
  69. package/components/RouteSchedule/index.js +1 -3
  70. package/components/RouteSchedule/index.js.map +7 -1
  71. package/components/ScaleLine/ScaleLine.js +21 -45
  72. package/components/ScaleLine/ScaleLine.js.map +7 -1
  73. package/components/ScaleLine/index.js +1 -3
  74. package/components/ScaleLine/index.js.map +7 -1
  75. package/components/Search/Search.js +122 -186
  76. package/components/Search/Search.js.map +7 -1
  77. package/components/Search/SearchService.js +45 -69
  78. package/components/Search/SearchService.js.map +7 -1
  79. package/components/Search/engines/Engine.js +18 -25
  80. package/components/Search/engines/Engine.js.map +7 -1
  81. package/components/Search/engines/StopFinder.js +21 -38
  82. package/components/Search/engines/StopFinder.js.map +7 -1
  83. package/components/Search/index.js +3 -6
  84. package/components/Search/index.js.map +7 -1
  85. package/components/StopsFinder/StopsFinder.js +123 -174
  86. package/components/StopsFinder/StopsFinder.js.map +7 -1
  87. package/components/StopsFinder/StopsFinderOption.js +37 -54
  88. package/components/StopsFinder/StopsFinderOption.js.map +7 -1
  89. package/components/StopsFinder/index.js +1 -3
  90. package/components/StopsFinder/index.js.map +7 -1
  91. package/components/TrackerControl/TrackerControl.js +73 -128
  92. package/components/TrackerControl/TrackerControl.js.map +7 -1
  93. package/components/TrackerControl/index.js +1 -3
  94. package/components/TrackerControl/index.js.map +7 -1
  95. package/components/Zoom/Zoom.js +69 -112
  96. package/components/Zoom/Zoom.js.map +7 -1
  97. package/components/Zoom/index.js +1 -3
  98. package/components/Zoom/index.js.map +7 -1
  99. package/package.json +10 -5
  100. package/propTypes.js +17 -23
  101. package/propTypes.js.map +7 -1
  102. package/setupTests.js +2 -4
  103. package/setupTests.js.map +7 -1
  104. package/themes/README.md +26 -0
  105. package/themes/default/components.scss +0 -1
  106. package/themes/default/examples.scss +0 -1
  107. package/utils/GlobalsForOle.js +63 -64
  108. package/utils/GlobalsForOle.js.map +7 -1
  109. package/utils/KML.js +178 -364
  110. package/utils/KML.js.map +7 -1
  111. package/utils/KMLFormat.js +37 -73
  112. package/utils/KMLFormat.js.map +7 -1
  113. package/utils/Styles.js +24 -32
  114. package/utils/Styles.js.map +7 -1
  115. package/utils/getPolygonPattern.js +11 -44
  116. package/utils/getPolygonPattern.js.map +7 -1
  117. package/utils/timeUtils.js +16 -35
  118. package/utils/timeUtils.js.map +7 -1
  119. package/LayerService.test.js +0 -160
  120. package/LayerService.test.js.map +0 -1
  121. package/Projections.js +0 -16
  122. package/Projections.js.map +0 -1
  123. package/components/BaseLayerSwitcher/BaseLayerSwitcher.test.js +0 -88
  124. package/components/BaseLayerSwitcher/BaseLayerSwitcher.test.js.map +0 -1
  125. package/components/BaseLayerToggler/BaseLayerToggler.js +0 -490
  126. package/components/BaseLayerToggler/BaseLayerToggler.js.map +0 -1
  127. package/components/BaseLayerToggler/BaseLayerToggler.md.scss +0 -9
  128. package/components/BaseLayerToggler/BaseLayerToggler.scss +0 -49
  129. package/components/BaseLayerToggler/BaseLayerToggler.test.js +0 -127
  130. package/components/BaseLayerToggler/BaseLayerToggler.test.js.map +0 -1
  131. package/components/BaseLayerToggler/index.js +0 -3
  132. package/components/BaseLayerToggler/index.js.map +0 -1
  133. package/components/BasicMap/BasicMap.test.js +0 -288
  134. package/components/BasicMap/BasicMap.test.js.map +0 -1
  135. package/components/CanvasSaveButton/CanvasSaveButton.test.js +0 -173
  136. package/components/CanvasSaveButton/CanvasSaveButton.test.js.map +0 -1
  137. package/components/Copyright/Copyright.test.js +0 -133
  138. package/components/Copyright/Copyright.test.js.map +0 -1
  139. package/components/FeatureExportButton/FeatureExportButton.test.js +0 -407
  140. package/components/FeatureExportButton/FeatureExportButton.test.js.map +0 -1
  141. package/components/FilterButton/FilterButton.test.js +0 -48
  142. package/components/FilterButton/FilterButton.test.js.map +0 -1
  143. package/components/FitExtent/FitExtent.test.js +0 -44
  144. package/components/FitExtent/FitExtent.test.js.map +0 -1
  145. package/components/FollowButton/FollowButton.test.js +0 -57
  146. package/components/FollowButton/FollowButton.test.js.map +0 -1
  147. package/components/Geolocation/Geolocation.test.js +0 -263
  148. package/components/Geolocation/Geolocation.test.js.map +0 -1
  149. package/components/LayerTree/LayerTree.test.js +0 -323
  150. package/components/LayerTree/LayerTree.test.js.map +0 -1
  151. package/components/MousePosition/MousePosition.test.js +0 -125
  152. package/components/MousePosition/MousePosition.test.js.map +0 -1
  153. package/components/NorthArrow/NorthArrow.test.js +0 -106
  154. package/components/NorthArrow/NorthArrow.test.js.map +0 -1
  155. package/components/Overlay/Overlay.test.js +0 -145
  156. package/components/Overlay/Overlay.test.js.map +0 -1
  157. package/components/Permalink/Permalink.test.js +0 -267
  158. package/components/Permalink/Permalink.test.js.map +0 -1
  159. package/components/Popup/Popup.test.js +0 -291
  160. package/components/Popup/Popup.test.js.map +0 -1
  161. package/components/ResizeHandler/ResizeHandler.test.js +0 -410
  162. package/components/ResizeHandler/ResizeHandler.test.js.map +0 -1
  163. package/components/RouteSchedule/RouteSchedule.test.js +0 -102
  164. package/components/RouteSchedule/RouteSchedule.test.js.map +0 -1
  165. package/components/ScaleLine/ScaleLine.test.js +0 -32
  166. package/components/ScaleLine/ScaleLine.test.js.map +0 -1
  167. package/components/Search/Search.test.js +0 -15
  168. package/components/Search/Search.test.js.map +0 -1
  169. package/components/StopsFinder/StopsFinder.test.js +0 -19
  170. package/components/StopsFinder/StopsFinder.test.js.map +0 -1
  171. package/components/TrackerControl/TrackerControl.test.js +0 -17
  172. package/components/TrackerControl/TrackerControl.test.js.map +0 -1
  173. package/components/Zoom/Zoom.test.js +0 -150
  174. package/components/Zoom/Zoom.test.js.map +0 -1
  175. package/styleguidist/ComponentsList.js +0 -52
  176. package/styleguidist/ComponentsList.js.map +0 -1
  177. package/styleguidist/StyleGuide.js +0 -253
  178. package/styleguidist/StyleGuide.js.map +0 -1
  179. package/utils/KML.test.js +0 -163
  180. package/utils/KML.test.js.map +0 -1
  181. package/utils/KMLFormat.test.js +0 -22
  182. package/utils/KMLFormat.test.js.map +0 -1
  183. package/utils/getPolygonPattern.test.js +0 -66
  184. package/utils/getPolygonPattern.test.js.map +0 -1
  185. package/utils/timeUtils.test.js +0 -32
  186. package/utils/timeUtils.test.js.map +0 -1
@@ -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 '@wojtekmaj/enzyme-adapter-react-17';
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 '@wojtekmaj/enzyme-adapter-react-17';\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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"}
@@ -1,267 +0,0 @@
1
- import 'jest-canvas-mock';
2
- import React from 'react';
3
- import { configure, mount } from 'enzyme';
4
- import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
5
- import MapEvent from 'ol/MapEvent';
6
- import OLMap from 'ol/Map';
7
- import View from 'ol/View';
8
- import { Layer, MapboxLayer } from 'mobility-toolbox-js/ol';
9
- import LayerService from '../../LayerService';
10
- import Permalink from './Permalink';
11
-
12
- configure({ adapter: new Adapter() });
13
-
14
- describe('Permalink', function () {
15
- var layers;
16
- beforeEach(function () {
17
- // Ensure default empty url.
18
- window.history.pushState({}, undefined, '/');
19
- layers = [
20
- new Layer({
21
- name: 'Ultimate layer',
22
- key: 'ultimate.layer',
23
- visible: true,
24
- properties: {
25
- hideInLegend: true,
26
- },
27
- }),
28
- new Layer({
29
- name: 'Swiss boundaries',
30
- key: 'swiss.boundaries',
31
- visible: true,
32
- properties: {
33
- hideInLegend: true,
34
- },
35
- }),
36
- new MapboxLayer({
37
- name: 'Base - Bright',
38
- key: 'basebright.baselayer',
39
- isBaseLayer: true,
40
- properties: {
41
- radioGroup: 'baseLayer',
42
- },
43
- }),
44
- new MapboxLayer({
45
- name: 'Base - Dark',
46
- key: 'basedark.baselayer',
47
- isBaseLayer: true,
48
- visible: false,
49
- properties: {
50
- radioGroup: 'baseLayer',
51
- },
52
- }),
53
- new Layer({
54
- name: 'Layer with children that are hidden',
55
- key: 'children.hidden.layer',
56
- visible: true,
57
- children: [
58
- new Layer({
59
- name: 'Child 1 hidden',
60
- key: 'child.hidden.1',
61
- visible: true,
62
- properties: {
63
- hideInLegend: true,
64
- },
65
- }),
66
- new Layer({
67
- name: 'Childr 2 hidden',
68
- key: 'child.hidden.2',
69
- visible: false,
70
- properties: {
71
- hideInLegend: true,
72
- },
73
- }) ],
74
- }) ];
75
- });
76
-
77
- test('should initialize x, y & z with history.', function () {
78
- var history = {
79
- replace: jest.fn(function (v) {
80
- return v;
81
- }),
82
- };
83
-
84
- var params = {
85
- x: 0,
86
- y: 0,
87
- z: 7,
88
- };
89
-
90
- var permalink = mount(React.createElement( Permalink, { params: params, history: history }));
91
-
92
- permalink
93
- .setProps({
94
- params: {
95
- x: 1,
96
- y: 2,
97
- z: 7,
98
- },
99
- })
100
- .update();
101
- var search = '?x=1&y=2&z=7';
102
-
103
- expect(history.replace.mock.results[0].value.search).toEqual(search);
104
- });
105
-
106
- test('should initialize x, y & z Permalink without history.', function () {
107
- var params = {
108
- x: 0,
109
- y: 0,
110
- z: 7,
111
- };
112
-
113
- var permalink = mount(React.createElement( Permalink, { params: params }));
114
-
115
- permalink
116
- .setProps({
117
- params: {
118
- x: 1,
119
- y: 2,
120
- z: 7,
121
- },
122
- })
123
- .update();
124
- var search = '?x=1&y=2&z=7';
125
-
126
- expect(window.location.search).toEqual(search);
127
- });
128
-
129
- test('should initialize Permalink with layerService.', function () {
130
- expect(window.location.search).toEqual('');
131
- var layerService = new LayerService(layers);
132
- mount(React.createElement( Permalink, { layerService: layerService }));
133
- var search =
134
- '?baselayers=basebright.baselayer,basedark.baselayer&layers=ultimate.layer,swiss.boundaries,child.hidden.1';
135
- expect(window.location.search).toEqual(search);
136
- });
137
-
138
- test('should initialize Permalink with isLayerHidden.', function () {
139
- expect(window.location.search).toEqual('');
140
- var layerService = new LayerService(layers);
141
- mount(
142
- React.createElement( Permalink, {
143
- layerService: layerService, isLayerHidden: function (l) {
144
- return (
145
- l.get('hideInLegend') ||
146
- layerService.getParents(l).some(function (pl) {
147
- return pl.get('hideInLegend');
148
- })
149
- );
150
- } })
151
- );
152
- var search =
153
- '?baselayers=basebright.baselayer,basedark.baselayer&layers=children.hidden.layer';
154
- expect(window.location.search).toEqual(search);
155
- });
156
-
157
- test('should initialize Permalink with map.', function () {
158
- expect(window.location.search).toEqual('');
159
- var olMap = new OLMap({
160
- controls: [],
161
- view: new View({
162
- center: [1, 2],
163
- zoom: 5,
164
- }),
165
- });
166
- mount(React.createElement( Permalink, { map: olMap }));
167
- olMap.dispatchEvent(new MapEvent('moveend', olMap));
168
- var search = '?x=1&y=2&z=5';
169
-
170
- expect(window.location.search).toEqual(search);
171
- });
172
-
173
- test('should limit 2 decimals by default for x, y.', function () {
174
- expect(window.location.search).toEqual('');
175
- var olMap = new OLMap({
176
- controls: [],
177
- view: new View({
178
- center: [10.555555, 10.5555555],
179
- zoom: 5,
180
- }),
181
- });
182
- mount(React.createElement( Permalink, { map: olMap }));
183
- olMap.dispatchEvent(new MapEvent('moveend', olMap));
184
- var search = '?x=10.56&y=10.56&z=5';
185
-
186
- expect(window.location.search).toEqual(search);
187
- });
188
-
189
- test('should round values x & y ".00" for readability.', function () {
190
- expect(window.location.search).toEqual('');
191
- var olMap = new OLMap({
192
- controls: [],
193
- view: new View({
194
- center: [10.99999, 1.000001],
195
- zoom: 5,
196
- }),
197
- });
198
- mount(React.createElement( Permalink, { map: olMap }));
199
- olMap.dispatchEvent(new MapEvent('moveend', olMap));
200
- var search = '?x=11&y=1&z=5';
201
-
202
- expect(window.location.search).toEqual(search);
203
- });
204
-
205
- test('should limit 4 decimals with props "coordinateDecimals".', function () {
206
- expect(window.location.search).toEqual('');
207
- var olMap = new OLMap({
208
- controls: [],
209
- view: new View({
210
- center: [10.555555, 10.5555555],
211
- zoom: 5,
212
- }),
213
- });
214
- mount(React.createElement( Permalink, { map: olMap, coordinateDecimals: 4 }));
215
- olMap.dispatchEvent(new MapEvent('moveend', olMap));
216
- var search = '?x=10.5556&y=10.5556&z=5';
217
-
218
- expect(window.location.search).toEqual(search);
219
- });
220
-
221
- test('should react on layerService change.', function () {
222
- expect(window.location.search).toEqual('');
223
- var layerService = new LayerService(layers);
224
- var permalink = mount(React.createElement( Permalink, { layerService: layerService }));
225
- var search = '?layers=foo.layer';
226
- var layerService2 = new LayerService([
227
- new Layer({
228
- name: 'foo',
229
- key: 'foo.layer',
230
- }) ]);
231
- permalink.setProps({ layerService: layerService2 }).update();
232
-
233
- expect(window.location.search).toEqual(search);
234
- });
235
-
236
- test('should react on layer visiblity change.', function () {
237
- expect(window.location.search).toEqual('');
238
- var layerService = new LayerService(layers);
239
- mount(React.createElement( Permalink, { layerService: layerService }));
240
- layerService.getLayer('Swiss boundaries').setVisible(true);
241
-
242
- expect(
243
- /layers=ultimate.layer,swiss.boundaries/.test(window.location.search)
244
- ).toBe(true);
245
- });
246
-
247
- test('should react on base layer visiblity change.', function () {
248
- expect(window.location.search).toEqual('');
249
- var layerService = new LayerService(layers);
250
- mount(React.createElement( Permalink, { layerService: layerService }));
251
- expect(
252
- /baselayers=basebright.baselayer,basedark.baselayer/.test(
253
- window.location.search
254
- )
255
- ).toBe(true);
256
-
257
- layerService.getLayer('Base - Dark').setVisible(true);
258
-
259
- expect(
260
- /baselayers=basedark.baselayer,basebright.baselayer/.test(
261
- window.location.search
262
- )
263
- ).toBe(true);
264
- });
265
- });
266
-
267
- //# sourceMappingURL=Permalink.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Permalink.test.js","sources":["../../../src/components/Permalink/Permalink.test.js"],"sourcesContent":["import 'jest-canvas-mock';\nimport React from 'react';\nimport { configure, mount } from 'enzyme';\nimport Adapter from '@wojtekmaj/enzyme-adapter-react-17';\nimport MapEvent from 'ol/MapEvent';\nimport OLMap from 'ol/Map';\nimport View from 'ol/View';\nimport { Layer, MapboxLayer } from 'mobility-toolbox-js/ol';\nimport LayerService from '../../LayerService';\nimport Permalink from './Permalink';\n\nconfigure({ adapter: new Adapter() });\n\ndescribe('Permalink', () => {\n let layers;\n beforeEach(() => {\n // Ensure default empty url.\n window.history.pushState({}, undefined, '/');\n layers = [\n new Layer({\n name: 'Ultimate layer',\n key: 'ultimate.layer',\n visible: true,\n properties: {\n hideInLegend: true,\n },\n }),\n new Layer({\n name: 'Swiss boundaries',\n key: 'swiss.boundaries',\n visible: true,\n properties: {\n hideInLegend: true,\n },\n }),\n new MapboxLayer({\n name: 'Base - Bright',\n key: 'basebright.baselayer',\n isBaseLayer: true,\n properties: {\n radioGroup: 'baseLayer',\n },\n }),\n new MapboxLayer({\n name: 'Base - Dark',\n key: 'basedark.baselayer',\n isBaseLayer: true,\n visible: false,\n properties: {\n radioGroup: 'baseLayer',\n },\n }),\n new Layer({\n name: 'Layer with children that are hidden',\n key: 'children.hidden.layer',\n visible: true,\n children: [\n new Layer({\n name: 'Child 1 hidden',\n key: 'child.hidden.1',\n visible: true,\n properties: {\n hideInLegend: true,\n },\n }),\n new Layer({\n name: 'Childr 2 hidden',\n key: 'child.hidden.2',\n visible: false,\n properties: {\n hideInLegend: true,\n },\n }),\n ],\n }),\n ];\n });\n\n test('should initialize x, y & z with history.', () => {\n const history = {\n replace: jest.fn((v) => {\n return v;\n }),\n };\n\n const params = {\n x: 0,\n y: 0,\n z: 7,\n };\n\n const permalink = mount(<Permalink params={params} history={history} />);\n\n permalink\n .setProps({\n params: {\n x: 1,\n y: 2,\n z: 7,\n },\n })\n .update();\n const search = '?x=1&y=2&z=7';\n\n expect(history.replace.mock.results[0].value.search).toEqual(search);\n });\n\n test('should initialize x, y & z Permalink without history.', () => {\n const params = {\n x: 0,\n y: 0,\n z: 7,\n };\n\n const permalink = mount(<Permalink params={params} />);\n\n permalink\n .setProps({\n params: {\n x: 1,\n y: 2,\n z: 7,\n },\n })\n .update();\n const search = '?x=1&y=2&z=7';\n\n expect(window.location.search).toEqual(search);\n });\n\n test('should initialize Permalink with layerService.', () => {\n expect(window.location.search).toEqual('');\n const layerService = new LayerService(layers);\n mount(<Permalink layerService={layerService} />);\n const search =\n '?baselayers=basebright.baselayer,basedark.baselayer&layers=ultimate.layer,swiss.boundaries,child.hidden.1';\n expect(window.location.search).toEqual(search);\n });\n\n test('should initialize Permalink with isLayerHidden.', () => {\n expect(window.location.search).toEqual('');\n const layerService = new LayerService(layers);\n mount(\n <Permalink\n layerService={layerService}\n isLayerHidden={(l) => {\n return (\n l.get('hideInLegend') ||\n layerService.getParents(l).some((pl) => {\n return pl.get('hideInLegend');\n })\n );\n }}\n />,\n );\n const search =\n '?baselayers=basebright.baselayer,basedark.baselayer&layers=children.hidden.layer';\n expect(window.location.search).toEqual(search);\n });\n\n test('should initialize Permalink with map.', () => {\n expect(window.location.search).toEqual('');\n const olMap = new OLMap({\n controls: [],\n view: new View({\n center: [1, 2],\n zoom: 5,\n }),\n });\n mount(<Permalink map={olMap} />);\n olMap.dispatchEvent(new MapEvent('moveend', olMap));\n const search = '?x=1&y=2&z=5';\n\n expect(window.location.search).toEqual(search);\n });\n\n test('should limit 2 decimals by default for x, y.', () => {\n expect(window.location.search).toEqual('');\n const olMap = new OLMap({\n controls: [],\n view: new View({\n center: [10.555555, 10.5555555],\n zoom: 5,\n }),\n });\n mount(<Permalink map={olMap} />);\n olMap.dispatchEvent(new MapEvent('moveend', olMap));\n const search = '?x=10.56&y=10.56&z=5';\n\n expect(window.location.search).toEqual(search);\n });\n\n test('should round values x & y \".00\" for readability.', () => {\n expect(window.location.search).toEqual('');\n const olMap = new OLMap({\n controls: [],\n view: new View({\n center: [10.99999, 1.000001],\n zoom: 5,\n }),\n });\n mount(<Permalink map={olMap} />);\n olMap.dispatchEvent(new MapEvent('moveend', olMap));\n const search = '?x=11&y=1&z=5';\n\n expect(window.location.search).toEqual(search);\n });\n\n test('should limit 4 decimals with props \"coordinateDecimals\".', () => {\n expect(window.location.search).toEqual('');\n const olMap = new OLMap({\n controls: [],\n view: new View({\n center: [10.555555, 10.5555555],\n zoom: 5,\n }),\n });\n mount(<Permalink map={olMap} coordinateDecimals={4} />);\n olMap.dispatchEvent(new MapEvent('moveend', olMap));\n const search = '?x=10.5556&y=10.5556&z=5';\n\n expect(window.location.search).toEqual(search);\n });\n\n test('should react on layerService change.', () => {\n expect(window.location.search).toEqual('');\n const layerService = new LayerService(layers);\n const permalink = mount(<Permalink layerService={layerService} />);\n const search = '?layers=foo.layer';\n const layerService2 = new LayerService([\n new Layer({\n name: 'foo',\n key: 'foo.layer',\n }),\n ]);\n permalink.setProps({ layerService: layerService2 }).update();\n\n expect(window.location.search).toEqual(search);\n });\n\n test('should react on layer visiblity change.', () => {\n expect(window.location.search).toEqual('');\n const layerService = new LayerService(layers);\n mount(<Permalink layerService={layerService} />);\n layerService.getLayer('Swiss boundaries').setVisible(true);\n\n expect(\n /layers=ultimate.layer,swiss.boundaries/.test(window.location.search),\n ).toBe(true);\n });\n\n test('should react on base layer visiblity change.', () => {\n expect(window.location.search).toEqual('');\n const layerService = new LayerService(layers);\n mount(<Permalink layerService={layerService} />);\n expect(\n /baselayers=basebright.baselayer,basedark.baselayer/.test(\n window.location.search,\n ),\n ).toBe(true);\n\n layerService.getLayer('Base - Dark').setVisible(true);\n\n expect(\n /baselayers=basedark.baselayer,basebright.baselayer/.test(\n window.location.search,\n ),\n ).toBe(true);\n });\n});\n"],"names":["let","const"],"mappings":"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"}