react-spatial 1.2.2 → 1.2.3-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.
Files changed (185) hide show
  1. package/components/BaseLayerSwitcher/BaseLayerSwitcher.js +163 -221
  2. package/components/BaseLayerSwitcher/BaseLayerSwitcher.js.map +7 -1
  3. package/components/BaseLayerSwitcher/index.js +1 -3
  4. package/components/BaseLayerSwitcher/index.js.map +7 -1
  5. package/components/BasicMap/BasicMap.js +147 -285
  6. package/components/BasicMap/BasicMap.js.map +7 -1
  7. package/components/BasicMap/index.js +1 -3
  8. package/components/BasicMap/index.js.map +7 -1
  9. package/components/CanvasSaveButton/CanvasSaveButton.js +165 -419
  10. package/components/CanvasSaveButton/CanvasSaveButton.js.map +7 -1
  11. package/components/CanvasSaveButton/index.js +1 -3
  12. package/components/CanvasSaveButton/index.js.map +7 -1
  13. package/components/Copyright/Copyright.js +29 -70
  14. package/components/Copyright/Copyright.js.map +7 -1
  15. package/components/Copyright/index.js +1 -3
  16. package/components/Copyright/index.js.map +7 -1
  17. package/components/FeatureExportButton/FeatureExportButton.js +40 -106
  18. package/components/FeatureExportButton/FeatureExportButton.js.map +7 -1
  19. package/components/FeatureExportButton/index.js +1 -3
  20. package/components/FeatureExportButton/index.js.map +7 -1
  21. package/components/FilterButton/FilterButton.js +41 -106
  22. package/components/FilterButton/FilterButton.js.map +7 -1
  23. package/components/FilterButton/index.js +1 -3
  24. package/components/FilterButton/index.js.map +7 -1
  25. package/components/FitExtent/FitExtent.js +17 -50
  26. package/components/FitExtent/FitExtent.js.map +7 -1
  27. package/components/FitExtent/index.js +1 -3
  28. package/components/FitExtent/index.js.map +7 -1
  29. package/components/FollowButton/FollowButton.js +41 -111
  30. package/components/FollowButton/FollowButton.js.map +7 -1
  31. package/components/FollowButton/index.js +1 -3
  32. package/components/FollowButton/index.js.map +7 -1
  33. package/components/Geolocation/Geolocation.js +104 -213
  34. package/components/Geolocation/Geolocation.js.map +7 -1
  35. package/components/Geolocation/index.js +1 -3
  36. package/components/Geolocation/index.js.map +7 -1
  37. package/components/LayerTree/LayerTree.js +204 -410
  38. package/components/LayerTree/LayerTree.js.map +7 -1
  39. package/components/LayerTree/index.js +1 -3
  40. package/components/LayerTree/index.js.map +7 -1
  41. package/components/MousePosition/MousePosition.js +61 -130
  42. package/components/MousePosition/MousePosition.js.map +7 -1
  43. package/components/MousePosition/index.js +1 -3
  44. package/components/MousePosition/index.js.map +7 -1
  45. package/components/NorthArrow/NorthArrow.js +22 -62
  46. package/components/NorthArrow/NorthArrow.js.map +7 -1
  47. package/components/NorthArrow/index.js +1 -3
  48. package/components/NorthArrow/index.js.map +7 -1
  49. package/components/Overlay/Overlay.js +83 -130
  50. package/components/Overlay/Overlay.js.map +7 -1
  51. package/components/Overlay/index.js +1 -3
  52. package/components/Overlay/index.js.map +7 -1
  53. package/components/Permalink/Permalink.js +150 -244
  54. package/components/Permalink/Permalink.js.map +7 -1
  55. package/components/Permalink/index.js +1 -3
  56. package/components/Permalink/index.js.map +7 -1
  57. package/components/Popup/Popup.js +106 -233
  58. package/components/Popup/Popup.js.map +7 -1
  59. package/components/Popup/index.js +1 -3
  60. package/components/Popup/index.js.map +7 -1
  61. package/components/ResizeHandler/ResizeHandler.js +58 -113
  62. package/components/ResizeHandler/ResizeHandler.js.map +7 -1
  63. package/components/ResizeHandler/index.js +1 -3
  64. package/components/ResizeHandler/index.js.map +7 -1
  65. package/components/RouteSchedule/RouteSchedule.js +150 -283
  66. package/components/RouteSchedule/RouteSchedule.js.map +7 -1
  67. package/components/RouteSchedule/index.js +1 -3
  68. package/components/RouteSchedule/index.js.map +7 -1
  69. package/components/ScaleLine/ScaleLine.js +21 -45
  70. package/components/ScaleLine/ScaleLine.js.map +7 -1
  71. package/components/ScaleLine/index.js +1 -3
  72. package/components/ScaleLine/index.js.map +7 -1
  73. package/components/Search/Search.js +122 -186
  74. package/components/Search/Search.js.map +7 -1
  75. package/components/Search/SearchService.js +45 -69
  76. package/components/Search/SearchService.js.map +7 -1
  77. package/components/Search/engines/Engine.js +18 -25
  78. package/components/Search/engines/Engine.js.map +7 -1
  79. package/components/Search/engines/StopFinder.js +21 -38
  80. package/components/Search/engines/StopFinder.js.map +7 -1
  81. package/components/Search/index.js +3 -6
  82. package/components/Search/index.js.map +7 -1
  83. package/components/StopsFinder/StopsFinder.js +123 -174
  84. package/components/StopsFinder/StopsFinder.js.map +7 -1
  85. package/components/StopsFinder/StopsFinderOption.js +37 -54
  86. package/components/StopsFinder/StopsFinderOption.js.map +7 -1
  87. package/components/StopsFinder/index.js +1 -3
  88. package/components/StopsFinder/index.js.map +7 -1
  89. package/components/TrackerControl/TrackerControl.js +73 -128
  90. package/components/TrackerControl/TrackerControl.js.map +7 -1
  91. package/components/TrackerControl/index.js +1 -3
  92. package/components/TrackerControl/index.js.map +7 -1
  93. package/components/Zoom/Zoom.js +69 -112
  94. package/components/Zoom/Zoom.js.map +7 -1
  95. package/components/Zoom/index.js +1 -3
  96. package/components/Zoom/index.js.map +7 -1
  97. package/package.json +10 -5
  98. package/themes/default/components.scss +0 -1
  99. package/themes/default/examples.scss +0 -1
  100. package/utils/GlobalsForOle.js +63 -64
  101. package/utils/GlobalsForOle.js.map +7 -1
  102. package/utils/KML.js +178 -364
  103. package/utils/KML.js.map +7 -1
  104. package/utils/KMLFormat.js +37 -73
  105. package/utils/KMLFormat.js.map +7 -1
  106. package/utils/Styles.js +24 -32
  107. package/utils/Styles.js.map +7 -1
  108. package/utils/getPolygonPattern.js +11 -44
  109. package/utils/getPolygonPattern.js.map +7 -1
  110. package/utils/timeUtils.js +16 -35
  111. package/utils/timeUtils.js.map +7 -1
  112. package/LayerService.js +0 -193
  113. package/LayerService.js.map +0 -1
  114. package/LayerService.test.js +0 -160
  115. package/LayerService.test.js.map +0 -1
  116. package/Projections.js +0 -16
  117. package/Projections.js.map +0 -1
  118. package/components/BaseLayerSwitcher/BaseLayerSwitcher.test.js +0 -88
  119. package/components/BaseLayerSwitcher/BaseLayerSwitcher.test.js.map +0 -1
  120. package/components/BaseLayerToggler/BaseLayerToggler.js +0 -490
  121. package/components/BaseLayerToggler/BaseLayerToggler.js.map +0 -1
  122. package/components/BaseLayerToggler/BaseLayerToggler.md.scss +0 -9
  123. package/components/BaseLayerToggler/BaseLayerToggler.scss +0 -49
  124. package/components/BaseLayerToggler/BaseLayerToggler.test.js +0 -127
  125. package/components/BaseLayerToggler/BaseLayerToggler.test.js.map +0 -1
  126. package/components/BaseLayerToggler/index.js +0 -3
  127. package/components/BaseLayerToggler/index.js.map +0 -1
  128. package/components/BasicMap/BasicMap.test.js +0 -288
  129. package/components/BasicMap/BasicMap.test.js.map +0 -1
  130. package/components/CanvasSaveButton/CanvasSaveButton.test.js +0 -173
  131. package/components/CanvasSaveButton/CanvasSaveButton.test.js.map +0 -1
  132. package/components/Copyright/Copyright.test.js +0 -133
  133. package/components/Copyright/Copyright.test.js.map +0 -1
  134. package/components/FeatureExportButton/FeatureExportButton.test.js +0 -407
  135. package/components/FeatureExportButton/FeatureExportButton.test.js.map +0 -1
  136. package/components/FilterButton/FilterButton.test.js +0 -48
  137. package/components/FilterButton/FilterButton.test.js.map +0 -1
  138. package/components/FitExtent/FitExtent.test.js +0 -44
  139. package/components/FitExtent/FitExtent.test.js.map +0 -1
  140. package/components/FollowButton/FollowButton.test.js +0 -57
  141. package/components/FollowButton/FollowButton.test.js.map +0 -1
  142. package/components/Geolocation/Geolocation.test.js +0 -263
  143. package/components/Geolocation/Geolocation.test.js.map +0 -1
  144. package/components/LayerTree/LayerTree.test.js +0 -323
  145. package/components/LayerTree/LayerTree.test.js.map +0 -1
  146. package/components/MousePosition/MousePosition.test.js +0 -125
  147. package/components/MousePosition/MousePosition.test.js.map +0 -1
  148. package/components/NorthArrow/NorthArrow.test.js +0 -106
  149. package/components/NorthArrow/NorthArrow.test.js.map +0 -1
  150. package/components/Overlay/Overlay.test.js +0 -145
  151. package/components/Overlay/Overlay.test.js.map +0 -1
  152. package/components/Permalink/Permalink.test.js +0 -267
  153. package/components/Permalink/Permalink.test.js.map +0 -1
  154. package/components/Popup/Popup.test.js +0 -291
  155. package/components/Popup/Popup.test.js.map +0 -1
  156. package/components/ResizeHandler/ResizeHandler.test.js +0 -410
  157. package/components/ResizeHandler/ResizeHandler.test.js.map +0 -1
  158. package/components/RouteSchedule/RouteSchedule.test.js +0 -102
  159. package/components/RouteSchedule/RouteSchedule.test.js.map +0 -1
  160. package/components/ScaleLine/ScaleLine.test.js +0 -32
  161. package/components/ScaleLine/ScaleLine.test.js.map +0 -1
  162. package/components/Search/Search.test.js +0 -15
  163. package/components/Search/Search.test.js.map +0 -1
  164. package/components/StopsFinder/StopsFinder.test.js +0 -19
  165. package/components/StopsFinder/StopsFinder.test.js.map +0 -1
  166. package/components/TrackerControl/TrackerControl.test.js +0 -17
  167. package/components/TrackerControl/TrackerControl.test.js.map +0 -1
  168. package/components/Zoom/Zoom.test.js +0 -150
  169. package/components/Zoom/Zoom.test.js.map +0 -1
  170. package/propTypes.js +0 -55
  171. package/propTypes.js.map +0 -1
  172. package/setupTests.js +0 -5
  173. package/setupTests.js.map +0 -1
  174. package/styleguidist/ComponentsList.js +0 -52
  175. package/styleguidist/ComponentsList.js.map +0 -1
  176. package/styleguidist/StyleGuide.js +0 -253
  177. package/styleguidist/StyleGuide.js.map +0 -1
  178. package/utils/KML.test.js +0 -163
  179. package/utils/KML.test.js.map +0 -1
  180. package/utils/KMLFormat.test.js +0 -22
  181. package/utils/KMLFormat.test.js.map +0 -1
  182. package/utils/getPolygonPattern.test.js +0 -66
  183. package/utils/getPolygonPattern.test.js.map +0 -1
  184. package/utils/timeUtils.test.js +0 -32
  185. 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":"AAAA,OAAO,KAAK,IAAI,QAAQ,QAAQ,OAAO,CAAC;AACxC,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,SAAS,GAAG,QAAQ,sBAAsB,CAAC;AAC3C,SAAS,SAAS,EAAE,KAAK,QAAQ,QAAQ,CAAC;AAC1C,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,OAAO,MAAM,oCAAoC,CAAC;AACzD,OAAO,cAAc,MAAM,0BAA0B,CAAC;AACtD,SAAS,SAAS,QAAQ,cAAc,CAAC;AACzC,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC;AACA,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;AACtC;AACA,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC;AACtC;AACAA,GAAK,CAAC,SAAS,GAAG;AAClB,EAAE,iBAAiB,EAAE,SAAS,CAAC,IAAI;AACnC,EAAE,uBAAuB,EAAE,SAAS,CAAC,MAAM;AAC3C,CAAC,CAAC;AACF;AACAA,GAAK,CAAC,YAAY,GAAG;AACrB,EAAE,iBAAiB,EAAE,SAAS;AAC9B,EAAE,uBAAuB,EAAE,SAAS;AACpC,CAAC,CAAC;AACF;AACAA,GAAK,CAAC,cAAc,YAAG,MAA+C,EAAK,CAAjD;8DAAyB;;AAAyB;AAC5E,WAAqB,GAAG,QAAQ,CAAC,IAAI;EAA5B;EAAK,sBAAyB;AACvC;AACA,EAAE,OAAO;AACT,IAAI,0CAAE;AACN,MAAM,sBAAC,OAAG;AACV,QAAQ,cAAK,CAAC,IAAI,EAAK;AACvB,UAAU,IAAI,IAAI,KAAK,GAAG,EAAE;AAC5B,YAAY,MAAM,CAAC,IAAI,CAAC,CAAC;AACzB,WAAW;AACX,SAAU,EACF,WAAU,YAAU,EACpB;AACR,MAAM,qBAAC,UAAO;AACd,QAAQ,SAAS,GAAI,EACb,yBAAyB,uBAAwB,EACjD,mBAAmB,qBACpB,cAED,CAAU;AAChB,IAAI,CAAG;AACP,GAAG,CAAC;AACJ,CAAC,CAAC;AACF,cAAc,CAAC,SAAS,GAAG,SAAS,CAAC;AACrC,cAAc,CAAC,YAAY,GAAG,YAAY,CAAC;AAC3C;AACA,QAAQ,CAAC,SAAS,WAAE,GAAM;AAC1B,EAAE,IAAI,CAAC,wBAAwB,WAAE,GAAM;AACvC,IAAIA,GAAK,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,qBAAC,eAAQ,cAAY,EAAU,CAAC,CAAC;AACvE,IAAIA,GAAK,CAAC,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;AACpC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;AACnC,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,CAAC,iCAAiC,WAAE,GAAM;AAChD,IAAIA,GAAK,CAAC,OAAO,GAAG,KAAK,CAAC,qBAAC,oBAAc,EAAG,CAAC,CAAC;AAC9C,IAAIA,GAAK,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,UAAU,EAAE,CAAC;AAC1D;AACA,IAAI,GAAG,UAAC,GAAM;AACd;AACA;AACA,MAAM,cAAc,CAAC,QAAQ,CAAC;AAC9B,QAAQ;AACR,kBAAU,MAAM;AAChB,UAAU,WAAW,EAAE;AACvB,YAAY,KAAK,EAAE,GAAG;AACtB,YAAY,MAAM,EAAE,GAAG;AACvB,WAAW;AACX,SAAS,CACH,CAAC,CAAC,CAAC;AACT,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;AACrB;AACA,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/D,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrE,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,CAAC,oDAAoD,WAAE,GAAM;AACnE,IAAIA,GAAK,CAAC,OAAO,GAAG,KAAK;AACzB,MAAM,qBAAC,iBAAc,CAAC,yBAAyB,UAAS,CAAI;AAC5D,KAAK,CAAC;AACN,IAAIA,GAAK,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,UAAU,EAAE,CAAC;AAC1D;AACA,IAAI,GAAG,UAAC,GAAM;AACd,MAAM,cAAc,CAAC,QAAQ,CAAC;AAC9B,QAAQ;AACR,kBAAU,MAAM;AAChB,UAAU,WAAW,EAAE;AACvB,YAAY,KAAK,EAAE,IAAI;AACvB,YAAY,MAAM,EAAE,GAAG;AACvB,WAAW;AACX,SAAS,CACH,CAAC,CAAC,CAAC;AACT,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;AACrB;AACA,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/D,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrE,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,CAAC,mDAAmD,WAAE,GAAM;AAClE,IAAIA,GAAK,CAAC,OAAO,GAAG,KAAK,CAAC,qBAAC,oBAAc,EAAG,CAAC,CAAC;AAC9C,IAAIA,GAAK,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,UAAU,EAAE,CAAC;AAC1D;AACA;AACA,IAAI,GAAG,UAAC,GAAM;AACd,MAAM,cAAc,CAAC,QAAQ,CAAC;AAC9B,QAAQ;AACR,kBAAU,MAAM;AAChB,UAAU,WAAW,EAAE;AACvB,YAAY,KAAK,EAAE,GAAG;AACtB,YAAY,MAAM,EAAE,GAAG;AACvB,WAAW;AACX,SAAS,CACH,CAAC,CAAC,CAAC;AACT,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;AACrB;AACA,IAAIA,GAAK,CAAC,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC;AAC3D;AACA,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjD,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,CAAC,uDAAuD,WAAE,GAAM;AACtE,IAAIA,GAAK,CAAC,OAAO,GAAG,KAAK,CAAC,qBAAC,iBAAc,CAAC,mBAAmB,OAAM,CAAG,CAAC,CAAC;AACxE,IAAIA,GAAK,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,UAAU,EAAE,CAAC;AAC1D;AACA;AACA,IAAI,GAAG,UAAC,GAAM;AACd,MAAM,cAAc,CAAC,QAAQ,CAAC;AAC9B,QAAQ;AACR,kBAAU,MAAM;AAChB,UAAU,WAAW,EAAE;AACvB,YAAY,KAAK,EAAE,GAAG;AACtB,YAAY,MAAM,EAAE,GAAG;AACvB,WAAW;AACX,SAAS,CACH,CAAC,CAAC,CAAC;AACT,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;AACrB;AACA,IAAIA,GAAK,CAAC,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC;AAC3D;AACA,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClD,GAAG,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;"}
@@ -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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"}