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,163 +1,120 @@
1
- function objectWithoutProperties (obj, exclude) { var target = {}; for (var k in obj) if (Object.prototype.hasOwnProperty.call(obj, k) && exclude.indexOf(k) === -1) target[k] = obj[k]; return target; }
2
1
  import React, {
3
2
  useEffect,
4
3
  useRef,
5
4
  useCallback,
6
5
  useState,
7
- useMemo,
8
- } from 'react';
9
- import PropTypes from 'prop-types';
10
- import { FaPlus, FaMinus } from 'react-icons/fa';
11
- import { ZoomSlider } from 'ol/control';
12
- import OLMap from 'ol/Map';
13
-
14
- var propTypes = {
15
- /**
16
- * An [ol/map](https://openlayers.org/en/latest/apidoc/module-ol_Map-Map.html).
17
- */
6
+ useMemo
7
+ } from "react";
8
+ import PropTypes from "prop-types";
9
+ import { FaPlus, FaMinus } from "react-icons/fa";
10
+ import { ZoomSlider } from "ol/control";
11
+ import OLMap from "ol/Map";
12
+ const propTypes = {
18
13
  map: PropTypes.instanceOf(OLMap).isRequired,
19
-
20
- /**
21
- * The zoom delta applied on each click.
22
- */
23
14
  delta: PropTypes.number,
24
-
25
- /**
26
- * Titles HTML attribtues for button.
27
- */
28
15
  titles: PropTypes.shape({
29
16
  zoomIn: PropTypes.string,
30
- zoomOut: PropTypes.string,
17
+ zoomOut: PropTypes.string
31
18
  }),
32
-
33
- /**
34
- * Children content of the zoom in button.
35
- */
36
19
  zoomInChildren: PropTypes.node,
37
-
38
- /**
39
- * Children content of the zoom out button.
40
- */
41
20
  zoomOutChildren: PropTypes.node,
42
-
43
- /**
44
- * Display a slider to zoom.
45
- */
46
- zoomSlider: PropTypes.bool,
21
+ zoomSlider: PropTypes.bool
47
22
  };
48
-
49
- var defaultProps = {
23
+ const defaultProps = {
50
24
  titles: {
51
- zoomIn: 'Zoom in',
52
- zoomOut: 'Zoom out',
25
+ zoomIn: "Zoom in",
26
+ zoomOut: "Zoom out"
53
27
  },
54
- zoomInChildren: React.createElement( FaPlus, { focusable: false }),
55
- zoomOutChildren: React.createElement( FaMinus, { focusable: false }),
28
+ zoomInChildren: /* @__PURE__ */ React.createElement(FaPlus, {
29
+ focusable: false
30
+ }),
31
+ zoomOutChildren: /* @__PURE__ */ React.createElement(FaMinus, {
32
+ focusable: false
33
+ }),
56
34
  zoomSlider: false,
57
- delta: 1,
35
+ delta: 1
58
36
  };
59
-
60
- var updateZoom = function (map, zoomAction) {
37
+ const updateZoom = (map, zoomAction) => {
61
38
  map.getView().cancelAnimations();
62
- var zoom = map.getView().getZoom();
63
-
39
+ const zoom = map.getView().getZoom();
64
40
  map.getView().animate({ zoom: zoom + zoomAction });
65
41
  };
66
-
67
- /**
68
- * The Zoom component creates a zoom wrapper containing zoom-in and zoom-out buttons
69
- * and an optional [ol/ZoomSlider](https://openlayers.org/en/latest/apidoc/module-ol_control_ZoomSlider-ZoomSlider.html).
70
- */
71
- function Zoom(ref$1) {
72
- var map = ref$1.map;
73
- var titles = ref$1.titles;
74
- var zoomInChildren = ref$1.zoomInChildren;
75
- var zoomOutChildren = ref$1.zoomOutChildren;
76
- var zoomSlider = ref$1.zoomSlider;
77
- var delta = ref$1.delta;
78
- var rest = objectWithoutProperties( ref$1, ["map", "titles", "zoomInChildren", "zoomOutChildren", "zoomSlider", "delta"] );
79
- var other = rest;
80
-
81
- var ref = useRef();
82
- var ref$2 = useState();
83
- var currentZoom = ref$2[0];
84
- var setZoom = ref$2[1];
85
-
86
- var zoomIn = useCallback(
87
- function (evt) {
42
+ function Zoom({
43
+ map,
44
+ titles,
45
+ zoomInChildren,
46
+ zoomOutChildren,
47
+ zoomSlider,
48
+ delta,
49
+ ...other
50
+ }) {
51
+ const ref = useRef();
52
+ const [currentZoom, setZoom] = useState();
53
+ const zoomIn = useCallback(
54
+ (evt) => {
88
55
  if (!evt.which || evt.which === 13) {
89
56
  updateZoom(map, delta);
90
57
  }
91
58
  },
92
59
  [delta, map]
93
60
  );
94
-
95
- var zoomOut = useCallback(
96
- function (evt) {
61
+ const zoomOut = useCallback(
62
+ (evt) => {
97
63
  if (!evt.which || evt.which === 13) {
98
64
  updateZoom(map, -delta);
99
65
  }
100
66
  },
101
67
  [delta, map]
102
68
  );
103
-
104
- var zoomInDisabled = useMemo(function () {
105
- return (
106
- currentZoom >=
107
- map.getView().getConstrainedZoom(map.getView().getMaxZoom())
108
- );
69
+ const zoomInDisabled = useMemo(() => {
70
+ return currentZoom >= map.getView().getConstrainedZoom(map.getView().getMaxZoom());
109
71
  }, [currentZoom, map]);
110
-
111
- var zoomOutDisabled = useMemo(function () {
112
- return (
113
- currentZoom <=
114
- map.getView().getConstrainedZoom(map.getView().getMinZoom())
115
- );
72
+ const zoomOutDisabled = useMemo(() => {
73
+ return currentZoom <= map.getView().getConstrainedZoom(map.getView().getMinZoom());
116
74
  }, [currentZoom, map]);
117
-
118
- useEffect(function () {
119
- /* Trigger zoom update to disable zooms on max and min */
120
- var zoomListener = function () {
75
+ useEffect(() => {
76
+ const zoomListener = () => {
121
77
  return setZoom(map.getView().getZoom());
122
78
  };
123
- map.on('moveend', zoomListener);
124
-
125
- var control;
79
+ map.on("moveend", zoomListener);
80
+ let control;
126
81
  if (zoomSlider && ref.current) {
127
82
  control = new ZoomSlider();
128
- // We don't want to navigate to the zoom slider using TAB navigation.
129
83
  control.element.firstElementChild.tabIndex = -1;
130
- // Set the zoom slider in the custom control wrapper.
131
84
  control.setTarget(ref.current);
132
85
  map.addControl(control);
133
86
  }
134
- return function () {
135
- map.un('moveend', zoomListener);
87
+ return () => {
88
+ map.un("moveend", zoomListener);
136
89
  if (control) {
137
90
  map.removeControl(control);
138
91
  }
139
92
  };
140
93
  }, [map, zoomSlider]);
141
-
142
- return (
143
- // eslint-disable-next-line react/jsx-props-no-spreading
144
- React.createElement( 'div', Object.assign({}, { className: "rs-zooms-bar" }, other),
145
- React.createElement( 'button', {
146
- type: "button", tabIndex: 0, className: "rs-zoom-in", title: titles.zoomIn, onClick: zoomIn, onKeyPress: zoomIn, disabled: zoomInDisabled },
147
- zoomInChildren
148
- ),
149
- zoomSlider ? React.createElement( 'div', { className: "rs-zoomslider-wrapper", ref: ref }) : null,
150
- React.createElement( 'button', {
151
- type: "button", tabIndex: 0, className: "rs-zoom-out", title: titles.zoomOut, onClick: zoomOut, onKeyPress: zoomOut, disabled: zoomOutDisabled },
152
- zoomOutChildren
153
- )
154
- )
155
- );
94
+ return /* @__PURE__ */ React.createElement("div", {
95
+ className: "rs-zooms-bar",
96
+ ...other
97
+ }, /* @__PURE__ */ React.createElement("button", {
98
+ type: "button",
99
+ tabIndex: 0,
100
+ className: "rs-zoom-in",
101
+ title: titles.zoomIn,
102
+ onClick: zoomIn,
103
+ onKeyPress: zoomIn,
104
+ disabled: zoomInDisabled
105
+ }, zoomInChildren), zoomSlider ? /* @__PURE__ */ React.createElement("div", {
106
+ className: "rs-zoomslider-wrapper",
107
+ ref
108
+ }) : null, /* @__PURE__ */ React.createElement("button", {
109
+ type: "button",
110
+ tabIndex: 0,
111
+ className: "rs-zoom-out",
112
+ title: titles.zoomOut,
113
+ onClick: zoomOut,
114
+ onKeyPress: zoomOut,
115
+ disabled: zoomOutDisabled
116
+ }, zoomOutChildren));
156
117
  }
157
-
158
118
  Zoom.propTypes = propTypes;
159
119
  Zoom.defaultProps = defaultProps;
160
-
161
120
  export default React.memo(Zoom);
162
-
163
- //# sourceMappingURL=Zoom.js.map
@@ -1 +1,7 @@
1
- {"version":3,"file":"Zoom.js","sources":["../../../src/components/Zoom/Zoom.js"],"sourcesContent":["import React, {\n useEffect,\n useRef,\n useCallback,\n useState,\n useMemo,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { FaPlus, FaMinus } from 'react-icons/fa';\nimport { ZoomSlider } from 'ol/control';\nimport OLMap from 'ol/Map';\n\nconst propTypes = {\n /**\n * An [ol/map](https://openlayers.org/en/latest/apidoc/module-ol_Map-Map.html).\n */\n map: PropTypes.instanceOf(OLMap).isRequired,\n\n /**\n * The zoom delta applied on each click.\n */\n delta: PropTypes.number,\n\n /**\n * Titles HTML attribtues for button.\n */\n titles: PropTypes.shape({\n zoomIn: PropTypes.string,\n zoomOut: PropTypes.string,\n }),\n\n /**\n * Children content of the zoom in button.\n */\n zoomInChildren: PropTypes.node,\n\n /**\n * Children content of the zoom out button.\n */\n zoomOutChildren: PropTypes.node,\n\n /**\n * Display a slider to zoom.\n */\n zoomSlider: PropTypes.bool,\n};\n\nconst defaultProps = {\n titles: {\n zoomIn: 'Zoom in',\n zoomOut: 'Zoom out',\n },\n zoomInChildren: <FaPlus focusable={false} />,\n zoomOutChildren: <FaMinus focusable={false} />,\n zoomSlider: false,\n delta: 1,\n};\n\nconst updateZoom = (map, zoomAction) => {\n map.getView().cancelAnimations();\n const zoom = map.getView().getZoom();\n\n map.getView().animate({ zoom: zoom + zoomAction });\n};\n\n/**\n * The Zoom component creates a zoom wrapper containing zoom-in and zoom-out buttons\n * and an optional [ol/ZoomSlider](https://openlayers.org/en/latest/apidoc/module-ol_control_ZoomSlider-ZoomSlider.html).\n */\nfunction Zoom({\n map,\n titles,\n zoomInChildren,\n zoomOutChildren,\n zoomSlider,\n delta,\n ...other\n}) {\n const ref = useRef();\n const [currentZoom, setZoom] = useState();\n\n const zoomIn = useCallback(\n (evt) => {\n if (!evt.which || evt.which === 13) {\n updateZoom(map, delta);\n }\n },\n [delta, map],\n );\n\n const zoomOut = useCallback(\n (evt) => {\n if (!evt.which || evt.which === 13) {\n updateZoom(map, -delta);\n }\n },\n [delta, map],\n );\n\n const zoomInDisabled = useMemo(() => {\n return (\n currentZoom >=\n map.getView().getConstrainedZoom(map.getView().getMaxZoom())\n );\n }, [currentZoom, map]);\n\n const zoomOutDisabled = useMemo(() => {\n return (\n currentZoom <=\n map.getView().getConstrainedZoom(map.getView().getMinZoom())\n );\n }, [currentZoom, map]);\n\n useEffect(() => {\n /* Trigger zoom update to disable zooms on max and min */\n const zoomListener = () => {\n return setZoom(map.getView().getZoom());\n };\n map.on('moveend', zoomListener);\n\n let control;\n if (zoomSlider && ref.current) {\n control = new ZoomSlider();\n // We don't want to navigate to the zoom slider using TAB navigation.\n control.element.firstElementChild.tabIndex = -1;\n // Set the zoom slider in the custom control wrapper.\n control.setTarget(ref.current);\n map.addControl(control);\n }\n return () => {\n map.un('moveend', zoomListener);\n if (control) {\n map.removeControl(control);\n }\n };\n }, [map, zoomSlider]);\n\n return (\n // eslint-disable-next-line react/jsx-props-no-spreading\n <div className=\"rs-zooms-bar\" {...other}>\n <button\n type=\"button\"\n tabIndex={0}\n className=\"rs-zoom-in\"\n title={titles.zoomIn}\n onClick={zoomIn}\n onKeyPress={zoomIn}\n disabled={zoomInDisabled}\n >\n {zoomInChildren}\n </button>\n {zoomSlider ? <div className=\"rs-zoomslider-wrapper\" ref={ref} /> : null}\n <button\n type=\"button\"\n tabIndex={0}\n className=\"rs-zoom-out\"\n title={titles.zoomOut}\n onClick={zoomOut}\n onKeyPress={zoomOut}\n disabled={zoomOutDisabled}\n >\n {zoomOutChildren}\n </button>\n </div>\n );\n}\n\nZoom.propTypes = propTypes;\nZoom.defaultProps = defaultProps;\n\nexport default React.memo(Zoom);\n"],"names":["const","let"],"mappings":"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"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/Zoom/Zoom.js"],
4
+ "sourcesContent": ["import React, {\n useEffect,\n useRef,\n useCallback,\n useState,\n useMemo,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { FaPlus, FaMinus } from 'react-icons/fa';\nimport { ZoomSlider } from 'ol/control';\nimport OLMap from 'ol/Map';\n\nconst propTypes = {\n /**\n * An [ol/map](https://openlayers.org/en/latest/apidoc/module-ol_Map-Map.html).\n */\n map: PropTypes.instanceOf(OLMap).isRequired,\n\n /**\n * The zoom delta applied on each click.\n */\n delta: PropTypes.number,\n\n /**\n * Titles HTML attribtues for button.\n */\n titles: PropTypes.shape({\n zoomIn: PropTypes.string,\n zoomOut: PropTypes.string,\n }),\n\n /**\n * Children content of the zoom in button.\n */\n zoomInChildren: PropTypes.node,\n\n /**\n * Children content of the zoom out button.\n */\n zoomOutChildren: PropTypes.node,\n\n /**\n * Display a slider to zoom.\n */\n zoomSlider: PropTypes.bool,\n};\n\nconst defaultProps = {\n titles: {\n zoomIn: 'Zoom in',\n zoomOut: 'Zoom out',\n },\n zoomInChildren: <FaPlus focusable={false} />,\n zoomOutChildren: <FaMinus focusable={false} />,\n zoomSlider: false,\n delta: 1,\n};\n\nconst updateZoom = (map, zoomAction) => {\n map.getView().cancelAnimations();\n const zoom = map.getView().getZoom();\n\n map.getView().animate({ zoom: zoom + zoomAction });\n};\n\n/**\n * The Zoom component creates a zoom wrapper containing zoom-in and zoom-out buttons\n * and an optional [ol/ZoomSlider](https://openlayers.org/en/latest/apidoc/module-ol_control_ZoomSlider-ZoomSlider.html).\n */\nfunction Zoom({\n map,\n titles,\n zoomInChildren,\n zoomOutChildren,\n zoomSlider,\n delta,\n ...other\n}) {\n const ref = useRef();\n const [currentZoom, setZoom] = useState();\n\n const zoomIn = useCallback(\n (evt) => {\n if (!evt.which || evt.which === 13) {\n updateZoom(map, delta);\n }\n },\n [delta, map],\n );\n\n const zoomOut = useCallback(\n (evt) => {\n if (!evt.which || evt.which === 13) {\n updateZoom(map, -delta);\n }\n },\n [delta, map],\n );\n\n const zoomInDisabled = useMemo(() => {\n return (\n currentZoom >=\n map.getView().getConstrainedZoom(map.getView().getMaxZoom())\n );\n }, [currentZoom, map]);\n\n const zoomOutDisabled = useMemo(() => {\n return (\n currentZoom <=\n map.getView().getConstrainedZoom(map.getView().getMinZoom())\n );\n }, [currentZoom, map]);\n\n useEffect(() => {\n /* Trigger zoom update to disable zooms on max and min */\n const zoomListener = () => {\n return setZoom(map.getView().getZoom());\n };\n map.on('moveend', zoomListener);\n\n let control;\n if (zoomSlider && ref.current) {\n control = new ZoomSlider();\n // We don't want to navigate to the zoom slider using TAB navigation.\n control.element.firstElementChild.tabIndex = -1;\n // Set the zoom slider in the custom control wrapper.\n control.setTarget(ref.current);\n map.addControl(control);\n }\n return () => {\n map.un('moveend', zoomListener);\n if (control) {\n map.removeControl(control);\n }\n };\n }, [map, zoomSlider]);\n\n return (\n // eslint-disable-next-line react/jsx-props-no-spreading\n <div className=\"rs-zooms-bar\" {...other}>\n <button\n type=\"button\"\n tabIndex={0}\n className=\"rs-zoom-in\"\n title={titles.zoomIn}\n onClick={zoomIn}\n onKeyPress={zoomIn}\n disabled={zoomInDisabled}\n >\n {zoomInChildren}\n </button>\n {zoomSlider ? <div className=\"rs-zoomslider-wrapper\" ref={ref} /> : null}\n <button\n type=\"button\"\n tabIndex={0}\n className=\"rs-zoom-out\"\n title={titles.zoomOut}\n onClick={zoomOut}\n onKeyPress={zoomOut}\n disabled={zoomOutDisabled}\n >\n {zoomOutChildren}\n </button>\n </div>\n );\n}\n\nZoom.propTypes = propTypes;\nZoom.defaultProps = defaultProps;\n\nexport default React.memo(Zoom);\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -1,3 +1 @@
1
- export { default } from './Zoom';
2
-
3
- //# sourceMappingURL=index.js.map
1
+ export { default } from "./Zoom";
@@ -1 +1,7 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/Zoom/index.js"],"sourcesContent":["export { default } from './Zoom';\n"],"names":[],"mappings":"AAAA,SAAS,OAAO,QAAQ,QAAQ,CAAC;"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/Zoom/index.js"],
4
+ "sourcesContent": ["export { default } from './Zoom';\n"],
5
+ "mappings": "AAAA,wBAAwB;",
6
+ "names": []
7
+ }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "react-spatial",
3
3
  "description": "Components to build React map apps.",
4
- "version": "1.2.2",
4
+ "version": "1.2.3-beta.3",
5
5
  "license": "MIT",
6
6
  "dependencies": {
7
7
  "@geops/geops-ui": "0.1.13",
@@ -44,6 +44,7 @@
44
44
  "canvas": "2.8.0",
45
45
  "css-loader": "5.2.6",
46
46
  "enzyme": "3.11.0",
47
+ "esbuild": "^0.15.6",
47
48
  "eslint": "7.32.0",
48
49
  "eslint-config-airbnb": "18.2.1",
49
50
  "eslint-config-prettier": "8.3.0",
@@ -68,7 +69,8 @@
68
69
  "jsts": "2.7.3",
69
70
  "lint-staged": "11.2.0",
70
71
  "mapbox-gl": "1.13.1",
71
- "mobility-toolbox-js": "1.7.13",
72
+ "maplibre-gl": "2.4.0",
73
+ "mobility-toolbox-js": "2.0.0-beta.39",
72
74
  "ol": "6.14.1",
73
75
  "prettier": "2.4.1",
74
76
  "proj4": "2.7.5",
@@ -94,7 +96,9 @@
94
96
  "xml-beautifier": "0.5.0"
95
97
  },
96
98
  "scripts": {
97
- "build": "buble --no modules,asyncAwait -i src -o build --objectAssign Object.assign --sourcemap && cp package.json README.md LICENSE build && cp -rf src/images build",
99
+ "esbuild": "esbuild src/*.js src/**/*.js src/**/**/*.js src/**/**/**/*.js --target=chrome100 --outdir=build/ --loader:.js=jsx --sourcemap=external",
100
+ "buble": "buble --no modules,asyncAwait -i src -o build --objectAssign Object.assign --sourcemap",
101
+ "build": "yarn esbuild && find build -type f -name '*.test.*' -delete && rm -rf build/styleguidist && cp package.json README.md LICENSE build && cp -rf src/images build && cp -rf src/themes build",
98
102
  "coverage": "yarn test --coverage --coverageDirectory=coverage",
99
103
  "cp": "generact --root src/components",
100
104
  "doc": "styleguidist build",
@@ -114,8 +118,9 @@
114
118
  "browserslist": [
115
119
  ">0.2%",
116
120
  "not dead",
117
- "not ie <= 10",
118
- "not op_mini all"
121
+ "not op_mini all",
122
+ "not ie <= 11",
123
+ "not android < 5"
119
124
  ],
120
125
  "eslintConfig": {
121
126
  "env": {
package/propTypes.js CHANGED
@@ -1,26 +1,23 @@
1
- import PropTypes from 'prop-types';
2
-
3
- var STATE_BOARDING = 'BOARDING';
4
- var STATE_LEAVING = 'LEAVING';
5
-
6
- var station = PropTypes.shape({
7
- arrivalDelay: PropTypes.number, // time in milliseconds.
8
- arrivalTime: PropTypes.number, // time in milliseconds.
9
- arrivalTimeWithDelay: PropTypes.number, // time in milliseconds with the delay included.
1
+ import PropTypes from "prop-types";
2
+ const STATE_BOARDING = "BOARDING";
3
+ const STATE_LEAVING = "LEAVING";
4
+ const station = PropTypes.shape({
5
+ arrivalDelay: PropTypes.number,
6
+ arrivalTime: PropTypes.number,
7
+ arrivalTimeWithDelay: PropTypes.number,
10
8
  cancelled: PropTypes.bool,
11
9
  coordinates: PropTypes.arrayOf(PropTypes.number),
12
- departureDelay: PropTypes.number, // time in milliseconds.
13
- departureTime: PropTypes.number, // time in milliseconds.
14
- departureTimeWithDelay: PropTypes.number, // time in milliseconds with the delay included
10
+ departureDelay: PropTypes.number,
11
+ departureTime: PropTypes.number,
12
+ departureTimeWithDelay: PropTypes.number,
15
13
  noDropOff: PropTypes.bool,
16
14
  noPickUp: PropTypes.bool,
17
15
  stationId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
18
16
  stationName: PropTypes.string,
19
17
  wheelchairAccessible: PropTypes.bool,
20
- state: PropTypes.oneOf([null, STATE_BOARDING, STATE_LEAVING]),
18
+ state: PropTypes.oneOf([null, STATE_BOARDING, STATE_LEAVING])
21
19
  });
22
-
23
- var lineInfos = PropTypes.shape({
20
+ const lineInfos = PropTypes.shape({
24
21
  backgroundColor: PropTypes.string,
25
22
  bicyclesAllowed: PropTypes.bool,
26
23
  color: PropTypes.string,
@@ -42,14 +39,11 @@ var lineInfos = PropTypes.shape({
42
39
  shortName: PropTypes.string,
43
40
  stations: PropTypes.arrayOf(station),
44
41
  vehicleType: PropTypes.number,
45
- wheelchairAccessible: PropTypes.bool,
42
+ wheelchairAccessible: PropTypes.bool
46
43
  });
47
-
48
44
  export default {
49
- lineInfos: lineInfos,
50
- station: station,
51
- STATE_BOARDING: STATE_BOARDING,
52
- STATE_LEAVING: STATE_LEAVING,
45
+ lineInfos,
46
+ station,
47
+ STATE_BOARDING,
48
+ STATE_LEAVING
53
49
  };
54
-
55
- //# sourceMappingURL=propTypes.js.map
package/propTypes.js.map CHANGED
@@ -1 +1,7 @@
1
- {"version":3,"file":"propTypes.js","sources":["../src/propTypes.js"],"sourcesContent":["import PropTypes from 'prop-types';\n\nconst STATE_BOARDING = 'BOARDING';\nconst STATE_LEAVING = 'LEAVING';\n\nconst station = PropTypes.shape({\n arrivalDelay: PropTypes.number, // time in milliseconds.\n arrivalTime: PropTypes.number, // time in milliseconds.\n arrivalTimeWithDelay: PropTypes.number, // time in milliseconds with the delay included.\n cancelled: PropTypes.bool,\n coordinates: PropTypes.arrayOf(PropTypes.number),\n departureDelay: PropTypes.number, // time in milliseconds.\n departureTime: PropTypes.number, // time in milliseconds.\n departureTimeWithDelay: PropTypes.number, // time in milliseconds with the delay included\n noDropOff: PropTypes.bool,\n noPickUp: PropTypes.bool,\n stationId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n stationName: PropTypes.string,\n wheelchairAccessible: PropTypes.bool,\n state: PropTypes.oneOf([null, STATE_BOARDING, STATE_LEAVING]),\n});\n\nconst lineInfos = PropTypes.shape({\n backgroundColor: PropTypes.string,\n bicyclesAllowed: PropTypes.bool,\n color: PropTypes.string,\n destination: PropTypes.string,\n feedsId: PropTypes.number,\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n license: PropTypes.string,\n licenseNote: PropTypes.string,\n licenseUrl: PropTypes.string,\n longName: PropTypes.string,\n operatingInformations: PropTypes.object,\n operator: PropTypes.string,\n operatorTimeZone: PropTypes.string,\n operatorUrl: PropTypes.string,\n publisher: PropTypes.string,\n publisherTimeZone: PropTypes.string,\n publisherUrl: PropTypes.string,\n realTime: PropTypes.number,\n shortName: PropTypes.string,\n stations: PropTypes.arrayOf(station),\n vehicleType: PropTypes.number,\n wheelchairAccessible: PropTypes.bool,\n});\n\nexport default {\n lineInfos,\n station,\n STATE_BOARDING,\n STATE_LEAVING,\n};\n"],"names":["const"],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC;AACAA,GAAK,CAAC,cAAc,GAAG,UAAU,CAAC;AAClCA,GAAK,CAAC,aAAa,GAAG,SAAS,CAAC;AAChC;AACAA,GAAK,CAAC,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC;AAChC,EAAE,YAAY,EAAE,SAAS,CAAC,MAAM;AAChC,EAAE,WAAW,EAAE,SAAS,CAAC,MAAM;AAC/B,EAAE,oBAAoB,EAAE,SAAS,CAAC,MAAM;AACxC,EAAE,SAAS,EAAE,SAAS,CAAC,IAAI;AAC3B,EAAE,WAAW,EAAE,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;AAClD,EAAE,cAAc,EAAE,SAAS,CAAC,MAAM;AAClC,EAAE,aAAa,EAAE,SAAS,CAAC,MAAM;AACjC,EAAE,sBAAsB,EAAE,SAAS,CAAC,MAAM;AAC1C,EAAE,SAAS,EAAE,SAAS,CAAC,IAAI;AAC3B,EAAE,QAAQ,EAAE,SAAS,CAAC,IAAI;AAC1B,EAAE,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;AACtE,EAAE,WAAW,EAAE,SAAS,CAAC,MAAM;AAC/B,EAAE,oBAAoB,EAAE,SAAS,CAAC,IAAI;AACtC,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;AAC/D,CAAC,CAAC,CAAC;AACH;AACAA,GAAK,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC;AAClC,EAAE,eAAe,EAAE,SAAS,CAAC,MAAM;AACnC,EAAE,eAAe,EAAE,SAAS,CAAC,IAAI;AACjC,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM;AACzB,EAAE,WAAW,EAAE,SAAS,CAAC,MAAM;AAC/B,EAAE,OAAO,EAAE,SAAS,CAAC,MAAM;AAC3B,EAAE,EAAE,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;AAC/D,EAAE,OAAO,EAAE,SAAS,CAAC,MAAM;AAC3B,EAAE,WAAW,EAAE,SAAS,CAAC,MAAM;AAC/B,EAAE,UAAU,EAAE,SAAS,CAAC,MAAM;AAC9B,EAAE,QAAQ,EAAE,SAAS,CAAC,MAAM;AAC5B,EAAE,qBAAqB,EAAE,SAAS,CAAC,MAAM;AACzC,EAAE,QAAQ,EAAE,SAAS,CAAC,MAAM;AAC5B,EAAE,gBAAgB,EAAE,SAAS,CAAC,MAAM;AACpC,EAAE,WAAW,EAAE,SAAS,CAAC,MAAM;AAC/B,EAAE,SAAS,EAAE,SAAS,CAAC,MAAM;AAC7B,EAAE,iBAAiB,EAAE,SAAS,CAAC,MAAM;AACrC,EAAE,YAAY,EAAE,SAAS,CAAC,MAAM;AAChC,EAAE,QAAQ,EAAE,SAAS,CAAC,MAAM;AAC5B,EAAE,SAAS,EAAE,SAAS,CAAC,MAAM;AAC7B,EAAE,QAAQ,EAAE,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC;AACtC,EAAE,WAAW,EAAE,SAAS,CAAC,MAAM;AAC/B,EAAE,oBAAoB,EAAE,SAAS,CAAC,IAAI;AACtC,CAAC,CAAC,CAAC;AACH;AACA,eAAe;AACf,aAAE,SAAS;AACX,WAAE,OAAO;AACT,kBAAE,cAAc;AAChB,iBAAE,aAAa;AACf,CAAC,CAAC;"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/propTypes.js"],
4
+ "sourcesContent": ["import PropTypes from 'prop-types';\n\nconst STATE_BOARDING = 'BOARDING';\nconst STATE_LEAVING = 'LEAVING';\n\nconst station = PropTypes.shape({\n arrivalDelay: PropTypes.number, // time in milliseconds.\n arrivalTime: PropTypes.number, // time in milliseconds.\n arrivalTimeWithDelay: PropTypes.number, // time in milliseconds with the delay included.\n cancelled: PropTypes.bool,\n coordinates: PropTypes.arrayOf(PropTypes.number),\n departureDelay: PropTypes.number, // time in milliseconds.\n departureTime: PropTypes.number, // time in milliseconds.\n departureTimeWithDelay: PropTypes.number, // time in milliseconds with the delay included\n noDropOff: PropTypes.bool,\n noPickUp: PropTypes.bool,\n stationId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n stationName: PropTypes.string,\n wheelchairAccessible: PropTypes.bool,\n state: PropTypes.oneOf([null, STATE_BOARDING, STATE_LEAVING]),\n});\n\nconst lineInfos = PropTypes.shape({\n backgroundColor: PropTypes.string,\n bicyclesAllowed: PropTypes.bool,\n color: PropTypes.string,\n destination: PropTypes.string,\n feedsId: PropTypes.number,\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n license: PropTypes.string,\n licenseNote: PropTypes.string,\n licenseUrl: PropTypes.string,\n longName: PropTypes.string,\n operatingInformations: PropTypes.object,\n operator: PropTypes.string,\n operatorTimeZone: PropTypes.string,\n operatorUrl: PropTypes.string,\n publisher: PropTypes.string,\n publisherTimeZone: PropTypes.string,\n publisherUrl: PropTypes.string,\n realTime: PropTypes.number,\n shortName: PropTypes.string,\n stations: PropTypes.arrayOf(station),\n vehicleType: PropTypes.number,\n wheelchairAccessible: PropTypes.bool,\n});\n\nexport default {\n lineInfos,\n station,\n STATE_BOARDING,\n STATE_LEAVING,\n};\n"],
5
+ "mappings": "AAAA,OAAO,eAAe;AAEtB,MAAM,iBAAiB;AACvB,MAAM,gBAAgB;AAEtB,MAAM,UAAU,UAAU,MAAM;AAAA,EAC9B,cAAc,UAAU;AAAA,EACxB,aAAa,UAAU;AAAA,EACvB,sBAAsB,UAAU;AAAA,EAChC,WAAW,UAAU;AAAA,EACrB,aAAa,UAAU,QAAQ,UAAU,MAAM;AAAA,EAC/C,gBAAgB,UAAU;AAAA,EAC1B,eAAe,UAAU;AAAA,EACzB,wBAAwB,UAAU;AAAA,EAClC,WAAW,UAAU;AAAA,EACrB,UAAU,UAAU;AAAA,EACpB,WAAW,UAAU,UAAU,CAAC,UAAU,QAAQ,UAAU,MAAM,CAAC;AAAA,EACnE,aAAa,UAAU;AAAA,EACvB,sBAAsB,UAAU;AAAA,EAChC,OAAO,UAAU,MAAM,CAAC,MAAM,gBAAgB,aAAa,CAAC;AAC9D,CAAC;AAED,MAAM,YAAY,UAAU,MAAM;AAAA,EAChC,iBAAiB,UAAU;AAAA,EAC3B,iBAAiB,UAAU;AAAA,EAC3B,OAAO,UAAU;AAAA,EACjB,aAAa,UAAU;AAAA,EACvB,SAAS,UAAU;AAAA,EACnB,IAAI,UAAU,UAAU,CAAC,UAAU,QAAQ,UAAU,MAAM,CAAC;AAAA,EAC5D,SAAS,UAAU;AAAA,EACnB,aAAa,UAAU;AAAA,EACvB,YAAY,UAAU;AAAA,EACtB,UAAU,UAAU;AAAA,EACpB,uBAAuB,UAAU;AAAA,EACjC,UAAU,UAAU;AAAA,EACpB,kBAAkB,UAAU;AAAA,EAC5B,aAAa,UAAU;AAAA,EACvB,WAAW,UAAU;AAAA,EACrB,mBAAmB,UAAU;AAAA,EAC7B,cAAc,UAAU;AAAA,EACxB,UAAU,UAAU;AAAA,EACpB,WAAW,UAAU;AAAA,EACrB,UAAU,UAAU,QAAQ,OAAO;AAAA,EACnC,aAAa,UAAU;AAAA,EACvB,sBAAsB,UAAU;AAClC,CAAC;AAED,eAAe;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;",
6
+ "names": []
7
+ }
package/setupTests.js CHANGED
@@ -1,5 +1,3 @@
1
- global.URL.createObjectURL = jest.fn(function () {
2
- return 'fooblob';
1
+ global.URL.createObjectURL = jest.fn(() => {
2
+ return "fooblob";
3
3
  });
4
-
5
- //# sourceMappingURL=setupTests.js.map
package/setupTests.js.map CHANGED
@@ -1 +1,7 @@
1
- {"version":3,"file":"setupTests.js","sources":["../src/setupTests.js"],"sourcesContent":["global.URL.createObjectURL = jest.fn(() => {\n return 'fooblob';\n});\n"],"names":[],"mappings":"AAAA,MAAM,CAAC,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC,EAAE,UAAC,GAAM;AAC3C,EAAE,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC,CAAC;"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/setupTests.js"],
4
+ "sourcesContent": ["global.URL.createObjectURL = jest.fn(() => {\n return 'fooblob';\n});\n"],
5
+ "mappings": "AAAA,OAAO,IAAI,kBAAkB,KAAK,GAAG,MAAM;AACzC,SAAO;AACT,CAAC;",
6
+ "names": []
7
+ }
@@ -0,0 +1,26 @@
1
+ # Themes
2
+
3
+ We are NOT a CSS library so we provide some default CSS helpers to help you start but feel free to use your own technology bootstrap or JSS or styled-compoennts.
4
+
5
+ ## How to use
6
+
7
+ We provide a set of CSS variables and classes to help you start using `react-spatial` .
8
+ To use it just import the `index.scss` file of the `default` theme in your application:
9
+
10
+ ```js
11
+ import 'react-spatial/themes/default/index.scss';
12
+ ```
13
+
14
+ If you want to override variables just import the `default/variables.css` and the default CSS files you want, there is one CSS file by component.
15
+
16
+ ## Create a new theme
17
+
18
+ Just add a folder with an `index.scss` file.
19
+
20
+ Some rules must be followed:
21
+
22
+ - no positionning css for container.
23
+ - no size information without using CSS variable.
24
+ - use `display: flex` for container when possible.
25
+
26
+ Of course those rules must be adapted depending on the component.
@@ -4,7 +4,6 @@
4
4
  @import '../../components/FilterButton/FilterButton.scss';
5
5
  @import '../../components/FollowButton/FollowButton.scss';
6
6
  @import '../../components/BaseLayerSwitcher/BaseLayerSwitcher.scss';
7
- @import '../../components/BaseLayerToggler/BaseLayerToggler.scss';
8
7
  @import '../../components/Geolocation/Geolocation.scss';
9
8
  @import '../../components/LayerTree/LayerTree.scss';
10
9
  @import '../../components/NorthArrow/NorthArrow.scss';
@@ -3,7 +3,6 @@
3
3
  */
4
4
  @import './index.scss';
5
5
  @import '../../components/BaseLayerSwitcher/BaseLayerSwitcher.md.scss';
6
- @import '../../components/BaseLayerToggler/BaseLayerToggler.md.scss';
7
6
  @import '../../components/BasicMap/BasicMap.md.scss';
8
7
  @import '../../components/CanvasSaveButton/CanvasSaveButton.md.scss';
9
8
  @import '../../components/FeatureExportButton/FeatureExportButton.md.scss';
@@ -1,95 +1,94 @@
1
- import OLVectorLayer from 'ol/layer/Vector';
2
- import VectorSource from 'ol/source/Vector';
3
- import Control from 'ol/control/Control';
4
- import Draw from 'ol/interaction/Draw';
5
- import Snap from 'ol/interaction/Snap';
6
- import Pointer from 'ol/interaction/Pointer';
7
- import Select from 'ol/interaction/Select';
8
- import Modify from 'ol/interaction/Modify';
9
- import Style from 'ol/style/Style';
10
- import Fill from 'ol/style/Fill';
11
- import Stroke from 'ol/style/Stroke';
12
- import Circle from 'ol/style/Circle';
13
- import Icon from 'ol/style/Icon';
14
- import RegularShape from 'ol/style/RegularShape';
15
- import Collection from 'ol/Collection';
16
- import Feature from 'ol/Feature';
17
- import Observable, { unByKey } from 'ol/Observable';
18
- import { getCenter } from 'ol/extent';
1
+ import OLVectorLayer from "ol/layer/Vector";
2
+ import VectorSource from "ol/source/Vector";
3
+ import Control from "ol/control/Control";
4
+ import Draw from "ol/interaction/Draw";
5
+ import Snap from "ol/interaction/Snap";
6
+ import Pointer from "ol/interaction/Pointer";
7
+ import Select from "ol/interaction/Select";
8
+ import Modify from "ol/interaction/Modify";
9
+ import Style from "ol/style/Style";
10
+ import Fill from "ol/style/Fill";
11
+ import Stroke from "ol/style/Stroke";
12
+ import Circle from "ol/style/Circle";
13
+ import Icon from "ol/style/Icon";
14
+ import RegularShape from "ol/style/RegularShape";
15
+ import Collection from "ol/Collection";
16
+ import Feature from "ol/Feature";
17
+ import Observable, { unByKey } from "ol/Observable";
18
+ import { getCenter } from "ol/extent";
19
19
  import {
20
20
  Point,
21
21
  LineString,
22
22
  Polygon,
23
23
  MultiPoint,
24
24
  MultiLineString,
25
- MultiPolygon,
26
- } from 'ol/geom';
27
- import LinearRing from 'ol/geom/LinearRing';
28
- import { fromExtent } from 'ol/geom/Polygon';
29
- import * as events from 'ol/events';
30
- import * as condition from 'ol/events/condition';
31
- import { OL3Parser } from 'jsts/org/locationtech/jts/io';
32
- import { BufferOp } from 'jsts/org/locationtech/jts/operation/buffer';
33
- import { OverlayOp } from 'jsts/org/locationtech/jts/operation/overlay';
34
-
35
- /**
36
- * This module create window.ol and window.jsts variables for ole editor.
37
- */
25
+ MultiPolygon
26
+ } from "ol/geom";
27
+ import LinearRing from "ol/geom/LinearRing";
28
+ import { fromExtent } from "ol/geom/Polygon";
29
+ import * as events from "ol/events";
30
+ import * as condition from "ol/events/condition";
31
+ import { OL3Parser } from "jsts/org/locationtech/jts/io";
32
+ import { BufferOp } from "jsts/org/locationtech/jts/operation/buffer";
33
+ import { OverlayOp } from "jsts/org/locationtech/jts/operation/overlay";
38
34
  if (!window.ol) {
39
35
  window.ol = {
40
- Feature: Feature,
41
- Collection: Collection,
36
+ Feature,
37
+ Collection,
42
38
  layer: {
43
- Vector: OLVectorLayer,
39
+ Vector: OLVectorLayer
44
40
  },
45
41
  source: {
46
- Vector: VectorSource,
42
+ Vector: VectorSource
47
43
  },
48
44
  interaction: {
49
- Draw: Draw,
50
- Snap: Snap,
51
- Pointer: Pointer,
52
- Select: Select,
53
- Modify: Modify,
45
+ Draw,
46
+ Snap,
47
+ Pointer,
48
+ Select,
49
+ Modify
54
50
  },
55
51
  control: {
56
- Control: Control,
52
+ Control
57
53
  },
58
54
  style: {
59
- Style: Style,
60
- Fill: Fill,
61
- Stroke: Stroke,
62
- Circle: Circle,
63
- RegularShape: RegularShape,
64
- Icon: Icon,
55
+ Style,
56
+ Fill,
57
+ Stroke,
58
+ Circle,
59
+ RegularShape,
60
+ Icon
65
61
  },
66
62
  geom: {
67
- Point: Point,
68
- LineString: LineString,
69
- Polygon: Polygon,
70
- MultiPoint: MultiPoint,
71
- MultiLineString: MultiLineString,
72
- MultiPolygon: MultiPolygon,
73
- LinearRing: LinearRing,
63
+ Point,
64
+ LineString,
65
+ Polygon,
66
+ MultiPoint,
67
+ MultiLineString,
68
+ MultiPolygon,
69
+ LinearRing
74
70
  },
75
71
  extent: {
76
- getCenter: getCenter,
72
+ getCenter
77
73
  },
78
- Observable: Object.assign({}, Observable,
79
- {unByKey: unByKey}),
80
- events: Object.assign({}, events,
81
- {condition: Object.assign({}, condition)}),
74
+ Observable: {
75
+ ...Observable,
76
+ unByKey
77
+ },
78
+ events: {
79
+ ...events,
80
+ condition: {
81
+ ...condition
82
+ }
83
+ }
82
84
  };
83
85
  window.ol.geom.Polygon.fromExtent = fromExtent;
84
86
  }
85
-
86
87
  if (!window.jsts) {
87
88
  window.jsts = {
88
89
  io: {
89
- OL3Parser: OL3Parser,
90
+ OL3Parser
90
91
  },
91
- operation: { buffer: { BufferOp: BufferOp }, overlay: { OverlayOp: OverlayOp } },
92
+ operation: { buffer: { BufferOp }, overlay: { OverlayOp } }
92
93
  };
93
94
  }
94
-
95
- //# sourceMappingURL=GlobalsForOle.js.map