react-spatial 2.0.0-beta.1 → 2.0.0-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 (213) hide show
  1. package/README.md +5 -10
  2. package/components/BaseLayerSwitcher/BaseLayerSwitcher.js +243 -220
  3. package/components/BaseLayerSwitcher/BaseLayerSwitcher.js.map +7 -1
  4. package/components/BaseLayerSwitcher/BaseLayerSwitcher.scss +6 -5
  5. package/components/BaseLayerSwitcher/index.js +1 -3
  6. package/components/BaseLayerSwitcher/index.js.map +7 -1
  7. package/components/BasicMap/BasicMap.js +165 -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 +434 -556
  12. package/components/CanvasSaveButton/CanvasSaveButton.js.map +7 -1
  13. package/components/CanvasSaveButton/CanvasSaveButton.md.scss +1 -1
  14. package/components/CanvasSaveButton/index.js +1 -3
  15. package/components/CanvasSaveButton/index.js.map +7 -1
  16. package/components/Copyright/Copyright.js +44 -77
  17. package/components/Copyright/Copyright.js.map +7 -1
  18. package/components/Copyright/index.js +1 -3
  19. package/components/Copyright/index.js.map +7 -1
  20. package/components/FeatureExportButton/FeatureExportButton.js +44 -92
  21. package/components/FeatureExportButton/FeatureExportButton.js.map +7 -1
  22. package/components/FeatureExportButton/index.js +1 -3
  23. package/components/FeatureExportButton/index.js.map +7 -1
  24. package/components/FitExtent/FitExtent.js +31 -46
  25. package/components/FitExtent/FitExtent.js.map +7 -1
  26. package/components/FitExtent/index.js +1 -3
  27. package/components/FitExtent/index.js.map +7 -1
  28. package/components/Geolocation/Geolocation.js +158 -228
  29. package/components/Geolocation/Geolocation.js.map +7 -1
  30. package/components/Geolocation/Geolocation.scss +7 -5
  31. package/components/Geolocation/index.js +1 -3
  32. package/components/Geolocation/index.js.map +7 -1
  33. package/components/LayerTree/LayerTree.js +359 -357
  34. package/components/LayerTree/LayerTree.js.map +7 -1
  35. package/components/LayerTree/LayerTree.scss +4 -6
  36. package/components/LayerTree/index.js +1 -3
  37. package/components/LayerTree/index.js.map +7 -1
  38. package/components/MousePosition/MousePosition.js +71 -109
  39. package/components/MousePosition/MousePosition.js.map +7 -1
  40. package/components/MousePosition/index.js +1 -3
  41. package/components/MousePosition/index.js.map +7 -1
  42. package/components/NorthArrow/NorthArrow.js +37 -61
  43. package/components/NorthArrow/NorthArrow.js.map +7 -1
  44. package/components/NorthArrow/index.js +1 -3
  45. package/components/NorthArrow/index.js.map +7 -1
  46. package/components/Overlay/Overlay.js +93 -123
  47. package/components/Overlay/Overlay.js.map +7 -1
  48. package/components/Overlay/index.js +1 -3
  49. package/components/Overlay/index.js.map +7 -1
  50. package/components/Permalink/Permalink.js +194 -229
  51. package/components/Permalink/Permalink.js.map +7 -1
  52. package/components/Permalink/index.js +1 -3
  53. package/components/Permalink/index.js.map +7 -1
  54. package/components/Popup/Popup.js +139 -215
  55. package/components/Popup/Popup.js.map +7 -1
  56. package/components/Popup/Popup.md.scss +1 -0
  57. package/components/Popup/Popup.scss +3 -1
  58. package/components/Popup/index.js +1 -3
  59. package/components/Popup/index.js.map +7 -1
  60. package/components/ResizeHandler/ResizeHandler.js +88 -137
  61. package/components/ResizeHandler/ResizeHandler.js.map +7 -1
  62. package/components/ResizeHandler/index.js +1 -3
  63. package/components/ResizeHandler/index.js.map +7 -1
  64. package/components/RouteSchedule/RouteSchedule.js +227 -277
  65. package/components/RouteSchedule/RouteSchedule.js.map +7 -1
  66. package/components/RouteSchedule/RouteSchedule.md.scss +4 -2
  67. package/components/RouteSchedule/RouteSchedule.scss +12 -23
  68. package/components/RouteSchedule/index.js +1 -3
  69. package/components/RouteSchedule/index.js.map +7 -1
  70. package/components/ScaleLine/ScaleLine.js +17 -39
  71. package/components/ScaleLine/ScaleLine.js.map +7 -1
  72. package/components/ScaleLine/ScaleLine.scss +6 -4
  73. package/components/ScaleLine/index.js +1 -3
  74. package/components/ScaleLine/index.js.map +7 -1
  75. package/components/StopsFinder/StopsFinder.js +134 -162
  76. package/components/StopsFinder/StopsFinder.js.map +7 -1
  77. package/components/StopsFinder/StopsFinderOption.js +30 -60
  78. package/components/StopsFinder/StopsFinderOption.js.map +7 -1
  79. package/components/StopsFinder/index.js +1 -3
  80. package/components/StopsFinder/index.js.map +7 -1
  81. package/components/Zoom/Zoom.js +102 -106
  82. package/components/Zoom/Zoom.js.map +7 -1
  83. package/components/Zoom/Zoom.md.scss +3 -1
  84. package/components/Zoom/Zoom.scss +7 -5
  85. package/components/Zoom/index.js +1 -3
  86. package/components/Zoom/index.js.map +7 -1
  87. package/images/geops_qr.png +0 -0
  88. package/package.json +88 -182
  89. package/propTypes.js +36 -24
  90. package/propTypes.js.map +7 -1
  91. package/setupTests.js +21 -4
  92. package/setupTests.js.map +7 -1
  93. package/themes/README.md +26 -0
  94. package/themes/default/components.scss +9 -14
  95. package/themes/default/examples.scss +20 -20
  96. package/themes/default/index.scss +3 -3
  97. package/themes/default/mixins.scss +7 -5
  98. package/themes/default/variables.scss +27 -25
  99. package/utils/GlobalsForOle.js +72 -73
  100. package/utils/GlobalsForOle.js.map +7 -1
  101. package/utils/KML.js +320 -381
  102. package/utils/KML.js.map +7 -1
  103. package/utils/Styles.js +25 -33
  104. package/utils/Styles.js.map +7 -1
  105. package/utils/getLayersAsFlatArray.js +14 -0
  106. package/utils/getLayersAsFlatArray.js.map +7 -0
  107. package/utils/getPolygonPattern.js +11 -44
  108. package/utils/getPolygonPattern.js.map +7 -1
  109. package/utils/timeUtils.js +20 -35
  110. package/utils/timeUtils.js.map +7 -1
  111. package/LayerService.js +0 -193
  112. package/LayerService.js.map +0 -1
  113. package/LayerService.test.js +0 -160
  114. package/LayerService.test.js.map +0 -1
  115. package/Projections.js +0 -16
  116. package/Projections.js.map +0 -1
  117. package/components/BaseLayerSwitcher/BaseLayerSwitcher.test.js +0 -88
  118. package/components/BaseLayerSwitcher/BaseLayerSwitcher.test.js.map +0 -1
  119. package/components/BaseLayerToggler/BaseLayerToggler.js +0 -490
  120. package/components/BaseLayerToggler/BaseLayerToggler.js.map +0 -1
  121. package/components/BaseLayerToggler/BaseLayerToggler.md.scss +0 -9
  122. package/components/BaseLayerToggler/BaseLayerToggler.scss +0 -49
  123. package/components/BaseLayerToggler/BaseLayerToggler.test.js +0 -127
  124. package/components/BaseLayerToggler/BaseLayerToggler.test.js.map +0 -1
  125. package/components/BaseLayerToggler/index.js +0 -3
  126. package/components/BaseLayerToggler/index.js.map +0 -1
  127. package/components/BasicMap/BasicMap.test.js +0 -288
  128. package/components/BasicMap/BasicMap.test.js.map +0 -1
  129. package/components/CanvasSaveButton/CanvasSaveButton.test.js +0 -173
  130. package/components/CanvasSaveButton/CanvasSaveButton.test.js.map +0 -1
  131. package/components/Copyright/Copyright.test.js +0 -133
  132. package/components/Copyright/Copyright.test.js.map +0 -1
  133. package/components/FeatureExportButton/FeatureExportButton.test.js +0 -407
  134. package/components/FeatureExportButton/FeatureExportButton.test.js.map +0 -1
  135. package/components/FilterButton/FilterButton.js +0 -131
  136. package/components/FilterButton/FilterButton.js.map +0 -1
  137. package/components/FilterButton/FilterButton.scss +0 -36
  138. package/components/FilterButton/FilterButton.test.js +0 -48
  139. package/components/FilterButton/FilterButton.test.js.map +0 -1
  140. package/components/FilterButton/index.js +0 -3
  141. package/components/FilterButton/index.js.map +0 -1
  142. package/components/FitExtent/FitExtent.test.js +0 -44
  143. package/components/FitExtent/FitExtent.test.js.map +0 -1
  144. package/components/FollowButton/FollowButton.js +0 -143
  145. package/components/FollowButton/FollowButton.js.map +0 -1
  146. package/components/FollowButton/FollowButton.scss +0 -36
  147. package/components/FollowButton/FollowButton.test.js +0 -57
  148. package/components/FollowButton/FollowButton.test.js.map +0 -1
  149. package/components/FollowButton/index.js +0 -3
  150. package/components/FollowButton/index.js.map +0 -1
  151. package/components/Geolocation/Geolocation.test.js +0 -263
  152. package/components/Geolocation/Geolocation.test.js.map +0 -1
  153. package/components/LayerTree/LayerTree.test.js +0 -323
  154. package/components/LayerTree/LayerTree.test.js.map +0 -1
  155. package/components/MousePosition/MousePosition.test.js +0 -125
  156. package/components/MousePosition/MousePosition.test.js.map +0 -1
  157. package/components/NorthArrow/NorthArrow.test.js +0 -106
  158. package/components/NorthArrow/NorthArrow.test.js.map +0 -1
  159. package/components/Overlay/Overlay.test.js +0 -145
  160. package/components/Overlay/Overlay.test.js.map +0 -1
  161. package/components/Permalink/Permalink.test.js +0 -267
  162. package/components/Permalink/Permalink.test.js.map +0 -1
  163. package/components/Popup/Popup.test.js +0 -291
  164. package/components/Popup/Popup.test.js.map +0 -1
  165. package/components/ResizeHandler/ResizeHandler.test.js +0 -410
  166. package/components/ResizeHandler/ResizeHandler.test.js.map +0 -1
  167. package/components/RouteSchedule/RouteSchedule.test.js +0 -102
  168. package/components/RouteSchedule/RouteSchedule.test.js.map +0 -1
  169. package/components/ScaleLine/ScaleLine.test.js +0 -32
  170. package/components/ScaleLine/ScaleLine.test.js.map +0 -1
  171. package/components/Search/Search.js +0 -230
  172. package/components/Search/Search.js.map +0 -1
  173. package/components/Search/Search.md.scss +0 -4
  174. package/components/Search/Search.scss +0 -78
  175. package/components/Search/Search.test.js +0 -15
  176. package/components/Search/Search.test.js.map +0 -1
  177. package/components/Search/SearchService.js +0 -72
  178. package/components/Search/SearchService.js.map +0 -1
  179. package/components/Search/engines/Engine.js +0 -26
  180. package/components/Search/engines/Engine.js.map +0 -1
  181. package/components/Search/engines/StopFinder.js +0 -47
  182. package/components/Search/engines/StopFinder.js.map +0 -1
  183. package/components/Search/index.js +0 -6
  184. package/components/Search/index.js.map +0 -1
  185. package/components/StopsFinder/StopsFinder.test.js +0 -19
  186. package/components/StopsFinder/StopsFinder.test.js.map +0 -1
  187. package/components/TrackerControl/TrackerControl.js +0 -171
  188. package/components/TrackerControl/TrackerControl.js.map +0 -1
  189. package/components/TrackerControl/TrackerControl.scss +0 -30
  190. package/components/TrackerControl/TrackerControl.test.js +0 -17
  191. package/components/TrackerControl/TrackerControl.test.js.map +0 -1
  192. package/components/TrackerControl/index.js +0 -3
  193. package/components/TrackerControl/index.js.map +0 -1
  194. package/components/Zoom/Zoom.test.js +0 -150
  195. package/components/Zoom/Zoom.test.js.map +0 -1
  196. package/images/FilterButton/filter.svg +0 -1
  197. package/images/FollowButton/follow.svg +0 -1
  198. package/images/baselayer/osm.baselayer.hot.png +0 -0
  199. package/images/baselayer/osm.baselayer.png +0 -0
  200. package/styleguidist/ComponentsList.js +0 -52
  201. package/styleguidist/ComponentsList.js.map +0 -1
  202. package/styleguidist/StyleGuide.js +0 -253
  203. package/styleguidist/StyleGuide.js.map +0 -1
  204. package/utils/KML.test.js +0 -163
  205. package/utils/KML.test.js.map +0 -1
  206. package/utils/KMLFormat.js +0 -105
  207. package/utils/KMLFormat.js.map +0 -1
  208. package/utils/KMLFormat.test.js +0 -22
  209. package/utils/KMLFormat.test.js.map +0 -1
  210. package/utils/getPolygonPattern.test.js +0 -66
  211. package/utils/getPolygonPattern.test.js.map +0 -1
  212. package/utils/timeUtils.test.js +0 -32
  213. package/utils/timeUtils.test.js.map +0 -1
@@ -1,11 +1,14 @@
1
- import { Component } from 'react';
2
- import PropTypes from 'prop-types';
3
- import qs from 'query-string';
4
- import OLMap from 'ol/Map';
5
- import { unByKey } from 'ol/Observable';
6
- import LayerService from '../../LayerService';
7
-
8
- var propTypes = {
1
+ import Layer from "ol/layer/Layer";
2
+ import OLMap from "ol/Map";
3
+ import { unByKey } from "ol/Observable";
4
+ import PropTypes from "prop-types";
5
+ import { PureComponent } from "react";
6
+ import getLayersAsFlatArray from "../../utils/getLayersAsFlatArray";
7
+ const propTypes = {
8
+ /**
9
+ * Maximum number of decimals allowed for coordinates.
10
+ */
11
+ coordinateDecimals: PropTypes.number,
9
12
  /**
10
13
  * Either 'react-router' history object:
11
14
  * https://github.com/ReactTraining/react-router/blob/master/packages/react-router/docs/api/history.md<br>
@@ -13,275 +16,237 @@ var propTypes = {
13
16
  * https://developer.mozilla.org/en-US/docs/Web/API/History
14
17
  */
15
18
  history: PropTypes.shape({
16
- replace: PropTypes.func,
19
+ replace: PropTypes.func
17
20
  }),
18
-
21
+ /**
22
+ * Determine if the layer appears in the baselayers permalink parameter or not.
23
+ *
24
+ * @param {object} item The item to hide or not.
25
+ *
26
+ * @return {bool} true if the item is not displayed in the baselayers permalink parameter
27
+ */
28
+ isBaseLayer: PropTypes.func,
29
+ /**
30
+ * Determine if the layer is hidden in the permalink or not.
31
+ *
32
+ * @param {object} item The item to hide or not.
33
+ *
34
+ * @return {bool} true if the item is not displayed in the permalink
35
+ */
36
+ isLayerHidden: PropTypes.func,
19
37
  /**
20
38
  * Layers provider.
21
39
  */
22
- layerService: PropTypes.instanceOf(LayerService),
23
-
40
+ layers: PropTypes.arrayOf(PropTypes.instanceOf(Layer)),
24
41
  /**
25
42
  * An [ol/map](https://openlayers.org/en/latest/apidoc/module-ol_Map-Map.html).
26
43
  */
27
44
  map: PropTypes.instanceOf(OLMap),
28
-
29
45
  /**
30
46
  * Params to be written in url.
31
47
  */
32
48
  params: PropTypes.object,
33
-
34
49
  /**
35
- * Maximum number of decimals allowed for coordinates.
36
- */
37
- coordinateDecimals: PropTypes.number,
38
-
39
- /**
40
- * Determine if the layer is hidden in the permalink or not.
41
- *
42
- * @param {object} item The item to hide or not.
43
- *
44
- * @return {bool} true if the item is not displayed in the permalink
50
+ * Custom function to be called when the permalink is updated.
51
+ * This property has priority over the history parameter and window.history.replaceState calls.
45
52
  */
46
- isLayerHidden: PropTypes.func,
53
+ replace: PropTypes.func
47
54
  };
48
-
49
- var defaultProps = {
50
- history: null,
51
- layerService: null,
52
- map: null,
53
- params: {},
55
+ const defaultProps = {
54
56
  coordinateDecimals: 2,
55
- isLayerHidden: function () {
57
+ history: null,
58
+ isBaseLayer: (layer) => {
59
+ return layer.get("isBaseLayer");
60
+ },
61
+ isLayerHidden: () => {
56
62
  return false;
57
63
  },
64
+ layers: [],
65
+ map: null,
66
+ params: {},
67
+ replace: null
58
68
  };
59
-
60
- /**
61
- * This component handles permalink logic. Injecting an
62
- * __[ol/map](https://openlayers.org/en/latest/apidoc/module-ol_Map-Map.html)__
63
- * will add the *map center* (x, y) and the *zoom* (z) parameters to the permalink.
64
- * Injecting a
65
- * __[layerService](https://github.com/geops/react-spatial/blob/master/src/LayerService.js)__
66
- * (including at least one layer)
67
- * will add the *baselayers* and/or *layers* parameters. Further parameters can
68
- * be added using __params__.
69
- */
70
- var Permalink = /*@__PURE__*/(function (Component) {
71
- function Permalink(props) {
72
- Component.call(this, props);
73
- this.state = {};
74
- this.moveEndRef = null;
75
- this.updateLayers = this.updateLayers.bind(this);
69
+ class Permalink extends PureComponent {
70
+ constructor(props) {
71
+ super(props);
72
+ this.state = { revision: 0 };
73
+ this.onPropertyChangeKeys = [];
76
74
  }
77
-
78
- if ( Component ) Permalink.__proto__ = Component;
79
- Permalink.prototype = Object.create( Component && Component.prototype );
80
- Permalink.prototype.constructor = Permalink;
81
-
82
- Permalink.prototype.componentDidMount = function componentDidMount () {
83
- var this$1 = this;
84
-
85
- var ref = this.props;
86
- var map = ref.map;
87
- var layerService = ref.layerService;
88
- var isLayerHidden = ref.isLayerHidden;
75
+ componentDidMount() {
76
+ const { isBaseLayer, isLayerHidden, layers, map } = this.props;
89
77
  if (map) {
90
- this.moveEndRef = map.on('moveend', function () {
91
- this$1.onMapMoved();
78
+ this.moveEndRef = map.on("moveend", () => {
79
+ this.onMapMoved();
92
80
  });
93
81
  }
94
-
95
- if (layerService) {
96
- this.updateLayerService();
97
-
98
- // set layer visibility based on 'layers' parameter.
99
- var urlParams = qs.parse(window.location.search);
100
-
101
- if (urlParams.layers) {
102
- var visibleLayers = urlParams.layers.split(',');
103
- layerService.getLayersAsFlatArray().forEach(function (l) {
104
- if (visibleLayers.includes(l.key)) {
105
- l.setVisible(true);
106
- } else if (
107
- !l.isBaseLayer &&
108
- !l.hasVisibleChildren() &&
109
- !isLayerHidden(l)
110
- ) {
111
- l.setVisible(false);
82
+ if (layers) {
83
+ const urlParams = new URLSearchParams(window.location.search);
84
+ if (urlParams.get("layers")) {
85
+ const visibleLayers = urlParams.get("layers").split(",");
86
+ getLayersAsFlatArray(layers).forEach((l) => {
87
+ if (visibleLayers.includes(l.key || l.get("key"))) {
88
+ if (l.setVisible) {
89
+ l.setVisible(true);
90
+ } else {
91
+ l.visible = true;
92
+ }
93
+ } else if (!isBaseLayer(l) && !isLayerHidden(l) && !(l.children || l.get("children")).some((ll) => {
94
+ return ll.getVisible ? ll.getVisible() : ll.visible;
95
+ })) {
96
+ if (l.setVisible) {
97
+ l.setVisible(false);
98
+ } else {
99
+ l.visible = false;
100
+ }
112
101
  }
113
102
  });
114
103
  }
115
-
116
- // Set baser layer visibility based on 'baseLayers' parameter.
117
- var visibleBaseLayers = (urlParams.baselayers || '').split(',');
118
- layerService.getBaseLayers().forEach(function (baseLayer) {
119
- if (baseLayer.key === visibleBaseLayers[0]) {
120
- baseLayer.setVisible(true); // The radio group will hide the others baseLayers automatically
121
- }
122
- });
104
+ const visibleBaseLayer = (urlParams.get("baselayers") || "").split(
105
+ ","
106
+ )[0];
107
+ if (visibleBaseLayer) {
108
+ getLayersAsFlatArray(layers).filter(isBaseLayer).forEach((baseLayer) => {
109
+ const key = baseLayer.key || baseLayer.get("key");
110
+ const visible = key === visibleBaseLayer;
111
+ if (baseLayer.setVisible) {
112
+ baseLayer.setVisible(visible);
113
+ } else {
114
+ baseLayer.visible = visible;
115
+ }
116
+ });
117
+ }
118
+ this.updateLayers();
123
119
  }
124
- };
125
-
126
- Permalink.prototype.componentDidUpdate = function componentDidUpdate (prevProps) {
127
- var this$1 = this;
128
-
129
- var ref = this.props;
130
- var map = ref.map;
131
- var layerService = ref.layerService;
132
-
133
- if (layerService !== prevProps.layerService) {
134
- this.updateLayerService();
120
+ }
121
+ componentDidUpdate(prevProps, prevState) {
122
+ const { layers, map } = this.props;
123
+ const { revision } = this.state;
124
+ if (layers !== prevProps.layers || revision !== prevState.revision) {
125
+ this.updateLayers();
135
126
  }
136
-
137
127
  if (map !== prevProps.map) {
138
- this.moveEndRef = map.on('moveend', function () {
139
- return this$1.onMapMoved();
128
+ unByKey(this.moveEndRef);
129
+ this.moveEndRef = map.on("moveend", () => {
130
+ return this.onMapMoved();
140
131
  });
141
132
  }
142
-
143
133
  this.updateHistory();
144
- };
145
-
146
- Permalink.prototype.componentWillUnmount = function componentWillUnmount () {
147
- var ref = this.props;
148
- var layerService = ref.layerService;
149
- var map = ref.map;
150
-
134
+ }
135
+ componentWillUnmount() {
136
+ const { map } = this.props;
151
137
  if (map) {
152
138
  unByKey(this.moveEndRef);
153
139
  }
154
-
155
- if (layerService) {
156
- layerService.un('change:layers', this.updateLayers);
157
- layerService.un('change:visible', this.updateLayers);
140
+ unByKey(this.onPropertyChangeKeys);
141
+ this.onPropertyChangeKeys = [];
142
+ }
143
+ onMapMoved() {
144
+ const { map } = this.props;
145
+ const mapView = map.getView();
146
+ const center = mapView.getCenter();
147
+ const params = {};
148
+ if (center !== void 0 && center[0] !== void 0 && center[1] !== void 0) {
149
+ params.x = this.roundCoord(center[0]);
150
+ params.y = this.roundCoord(center[1]);
158
151
  }
159
- };
160
-
161
- Permalink.prototype.onMapMoved = function onMapMoved () {
162
- var ref = this.props;
163
- var map = ref.map;
164
- var mapView = map.getView();
165
- var ref$1 = mapView.getProperties();
166
- var center = ref$1.center;
167
-
168
152
  this.setState({
169
- x: this.roundCoord(center[0]),
170
- y: this.roundCoord(center[1]),
153
+ ...params,
171
154
  // rounds zoom to two digits max.
172
- z: +((Math.round(((parseFloat(mapView.getZoom())) + "e+2"))) + "e-2"),
155
+ z: +`${Math.round(`${parseFloat(mapView.getZoom())}e+2`)}e-2`
173
156
  });
174
- };
175
-
176
- Permalink.prototype.roundCoord = function roundCoord (val) {
177
- var ref = this.props;
178
- var coordinateDecimals = ref.coordinateDecimals;
157
+ }
158
+ render() {
159
+ return null;
160
+ }
161
+ roundCoord(val) {
162
+ const { coordinateDecimals } = this.props;
179
163
  return parseFloat(val.toFixed(coordinateDecimals));
180
- };
181
-
182
- Permalink.prototype.updateLayerService = function updateLayerService () {
183
- var ref = this.props;
184
- var layerService = ref.layerService;
185
- if (layerService) {
186
- layerService.un('change:visible', this.updateState);
187
- layerService.un('change:layers', this.updateLayers);
188
- this.updateLayers();
189
- layerService.on('change:layers', this.updateLayers);
190
- layerService.on('change:visible', this.updateLayers);
191
- }
192
- };
193
-
194
- Permalink.prototype.updateLayers = function updateLayers () {
195
- var ref = this.props;
196
- var layerService = ref.layerService;
197
- var isLayerHidden = ref.isLayerHidden;
198
- var baseLayers = layerService.getBaseLayers();
199
- var idx = baseLayers.findIndex(function (l) {
200
- return l.visible;
201
- });
202
- if (idx !== -1) {
203
- var baseLayerVisible = baseLayers.splice(idx, 1);
204
- baseLayers.unshift(baseLayerVisible[0]);
205
- }
206
-
207
- this.setState({
208
- layers: layerService
209
- .getLayersAsFlatArray()
210
- .filter(function (l) {
211
- return (
212
- !l.isBaseLayer &&
213
- l.visible &&
214
- (!l.hasVisibleChildren() ||
215
- (l.children || []).every(function (child) {
216
- return isLayerHidden(child);
217
- })) &&
218
- !isLayerHidden(l)
219
- );
220
- })
221
- .map(function (l) {
222
- return l.key;
223
- })
224
- .join(),
225
- baselayers:
226
- baseLayers.length > 1
227
- ? baseLayers
228
- .map(function (l) {
229
- return l.key;
230
- })
231
- .join()
232
- : undefined,
233
- });
234
- };
235
-
236
- Permalink.prototype.updateHistory = function updateHistory () {
237
- var ref = this.props;
238
- var params = ref.params;
239
- var history = ref.history;
240
- var oldParams = qs.parse(window.location.search);
241
- var parameters = Object.assign({}, oldParams, this.state, params);
242
-
243
- // Remove parameters that are undefined or null
244
- Object.entries(parameters).forEach(function (ref) {
245
- var key = ref[0];
246
- var value = ref[1];
247
-
248
- if (value === undefined || value === null) {
164
+ }
165
+ updateHistory() {
166
+ const { history, params, replace } = this.props;
167
+ const oldParams = new URLSearchParams(window.location.search);
168
+ const parameters = {
169
+ ...Object.fromEntries(oldParams.entries()),
170
+ ...this.state,
171
+ ...params
172
+ };
173
+ delete parameters.revision;
174
+ Object.entries(parameters).forEach(([key, value]) => {
175
+ if (value === void 0 || value === null) {
249
176
  delete parameters[key];
250
177
  }
251
178
  });
252
-
253
- // encodeURI to encode spaces, accents, etc. but not characters like ;,/?:@&=+$-_.!~*'()
254
- var qStr = encodeURI(qs.stringify(parameters, { encode: false }));
255
- var search = qStr ? ("?" + qStr) : '';
256
-
257
- if (
258
- (!qStr && window.location.search) ||
259
- (qStr && search !== window.location.search)
260
- ) {
261
- if (history) {
262
- history.replace({ search: search });
179
+ const qStr = new URLSearchParams(parameters).toString().replace(/%2C/g, ",");
180
+ const search = qStr ? `?${qStr}` : "";
181
+ if (!qStr && window.location.search || qStr && search !== window.location.search) {
182
+ if (replace) {
183
+ replace({ parameters, search });
184
+ } else if (history) {
185
+ history.replace({ search });
263
186
  } else {
264
- var ref$1 = window.location;
265
- var hash = ref$1.hash;
187
+ const { hash } = window.location;
266
188
  window.history.replaceState(
267
- undefined,
268
- undefined,
269
- ("" + search + (hash || ''))
189
+ void 0,
190
+ void 0,
191
+ `${search}${hash || ""}`
270
192
  );
271
193
  }
272
194
  }
273
- };
274
-
275
- Permalink.prototype.render = function render () {
276
- return null;
277
- };
278
-
279
- return Permalink;
280
- }(Component));
281
-
195
+ }
196
+ updateLayers() {
197
+ const { isBaseLayer, isLayerHidden, layers } = this.props;
198
+ const { revision } = this.state;
199
+ unByKey(this.onPropertyChangeKeys);
200
+ this.onPropertyChangeKeys = getLayersAsFlatArray(layers).map((layer) => {
201
+ return layer.on("change:visible", () => {
202
+ this.setState({ revision: revision + 1 });
203
+ });
204
+ });
205
+ let layersParam;
206
+ if (layers.length) {
207
+ layersParam = getLayersAsFlatArray(layers).filter((l) => {
208
+ const children = l.get("children") || l.children || [];
209
+ const allChildrenHidden = children.every((child) => {
210
+ return isLayerHidden(child);
211
+ });
212
+ const hasVisibleChildren = children.some((child) => {
213
+ return child.getVisible ? child.getVisible() : child.visible;
214
+ });
215
+ const isVisible = l.getVisible ? l.getVisible() : l.visible;
216
+ return !isBaseLayer(l) && !isLayerHidden(l) && isVisible && (!hasVisibleChildren || allChildrenHidden);
217
+ }).map((l) => {
218
+ return l.key || l.get("key");
219
+ }).join();
220
+ }
221
+ let baseLayersParam;
222
+ const baseLayers = getLayersAsFlatArray(layers).filter(isBaseLayer);
223
+ if (baseLayers.length) {
224
+ const visibleBaseLayers = (baseLayers.filter((l) => {
225
+ return l.getVisible ? l.getVisible() : l.visible;
226
+ }) || []).reverse();
227
+ const nonVisibleBaseLayers = baseLayers.filter((l) => {
228
+ return !(l.getVisible ? l.getVisible() : l.visible);
229
+ }) || [];
230
+ baseLayersParam = [...visibleBaseLayers, ...nonVisibleBaseLayers].sort((a, b) => {
231
+ const aVisible = a.getVisible ? a.getVisible() : a.visible;
232
+ const bVisible = b.getVisible ? b.getVisible() : b.visible;
233
+ if (aVisible === bVisible) {
234
+ return 0;
235
+ }
236
+ if (aVisible && !bVisible) {
237
+ return -1;
238
+ }
239
+ return 1;
240
+ }).map((l) => {
241
+ return l.key || l.get("key");
242
+ }).join();
243
+ }
244
+ this.setState({
245
+ baselayers: baseLayersParam,
246
+ layers: layersParam
247
+ });
248
+ }
249
+ }
282
250
  Permalink.propTypes = propTypes;
283
251
  Permalink.defaultProps = defaultProps;
284
-
285
252
  export default Permalink;
286
-
287
- //# sourceMappingURL=Permalink.js.map
@@ -1 +1,7 @@
1
- {"version":3,"file":"Permalink.js","sources":["../../../src/components/Permalink/Permalink.js"],"sourcesContent":["import { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport qs from 'query-string';\nimport OLMap from 'ol/Map';\nimport { unByKey } from 'ol/Observable';\nimport LayerService from '../../LayerService';\n\nconst propTypes = {\n /**\n * Either 'react-router' history object:\n * https://github.com/ReactTraining/react-router/blob/master/packages/react-router/docs/api/history.md<br>\n * or default fallback as HTML5 History:\n * https://developer.mozilla.org/en-US/docs/Web/API/History\n */\n history: PropTypes.shape({\n replace: PropTypes.func,\n }),\n\n /**\n * Layers provider.\n */\n layerService: PropTypes.instanceOf(LayerService),\n\n /**\n * An [ol/map](https://openlayers.org/en/latest/apidoc/module-ol_Map-Map.html).\n */\n map: PropTypes.instanceOf(OLMap),\n\n /**\n * Params to be written in url.\n */\n params: PropTypes.object,\n\n /**\n * Maximum number of decimals allowed for coordinates.\n */\n coordinateDecimals: PropTypes.number,\n\n /**\n * Determine if the layer is hidden in the permalink or not.\n *\n * @param {object} item The item to hide or not.\n *\n * @return {bool} true if the item is not displayed in the permalink\n */\n isLayerHidden: PropTypes.func,\n};\n\nconst defaultProps = {\n history: null,\n layerService: null,\n map: null,\n params: {},\n coordinateDecimals: 2,\n isLayerHidden: () => {\n return false;\n },\n};\n\n/**\n * This component handles permalink logic. Injecting an\n * __[ol/map](https://openlayers.org/en/latest/apidoc/module-ol_Map-Map.html)__\n * will add the *map center* (x, y) and the *zoom* (z) parameters to the permalink.\n * Injecting a\n * __[layerService](https://github.com/geops/react-spatial/blob/master/src/LayerService.js)__\n * (including at least one layer)\n * will add the *baselayers* and/or *layers* parameters. Further parameters can\n * be added using __params__.\n */\nclass Permalink extends Component {\n constructor(props) {\n super(props);\n this.state = {};\n this.moveEndRef = null;\n this.updateLayers = this.updateLayers.bind(this);\n }\n\n componentDidMount() {\n const { map, layerService, isLayerHidden } = this.props;\n if (map) {\n this.moveEndRef = map.on('moveend', () => {\n this.onMapMoved();\n });\n }\n\n if (layerService) {\n this.updateLayerService();\n\n // set layer visibility based on 'layers' parameter.\n const urlParams = qs.parse(window.location.search);\n\n if (urlParams.layers) {\n const visibleLayers = urlParams.layers.split(',');\n layerService.getLayersAsFlatArray().forEach((l) => {\n if (visibleLayers.includes(l.key)) {\n l.setVisible(true);\n } else if (\n !l.isBaseLayer &&\n !l.hasVisibleChildren() &&\n !isLayerHidden(l)\n ) {\n l.setVisible(false);\n }\n });\n }\n\n // Set baser layer visibility based on 'baseLayers' parameter.\n const visibleBaseLayers = (urlParams.baselayers || '').split(',');\n layerService.getBaseLayers().forEach((baseLayer) => {\n if (baseLayer.key === visibleBaseLayers[0]) {\n baseLayer.setVisible(true); // The radio group will hide the others baseLayers automatically\n }\n });\n }\n }\n\n componentDidUpdate(prevProps) {\n const { map, layerService } = this.props;\n\n if (layerService !== prevProps.layerService) {\n this.updateLayerService();\n }\n\n if (map !== prevProps.map) {\n this.moveEndRef = map.on('moveend', () => {\n return this.onMapMoved();\n });\n }\n\n this.updateHistory();\n }\n\n componentWillUnmount() {\n const { layerService, map } = this.props;\n\n if (map) {\n unByKey(this.moveEndRef);\n }\n\n if (layerService) {\n layerService.un('change:layers', this.updateLayers);\n layerService.un('change:visible', this.updateLayers);\n }\n }\n\n onMapMoved() {\n const { map } = this.props;\n const mapView = map.getView();\n const { center } = mapView.getProperties();\n\n this.setState({\n x: this.roundCoord(center[0]),\n y: this.roundCoord(center[1]),\n // rounds zoom to two digits max.\n z: +`${Math.round(`${parseFloat(mapView.getZoom())}e+2`)}e-2`,\n });\n }\n\n roundCoord(val) {\n const { coordinateDecimals } = this.props;\n return parseFloat(val.toFixed(coordinateDecimals));\n }\n\n updateLayerService() {\n const { layerService } = this.props;\n if (layerService) {\n layerService.un('change:visible', this.updateState);\n layerService.un('change:layers', this.updateLayers);\n this.updateLayers();\n layerService.on('change:layers', this.updateLayers);\n layerService.on('change:visible', this.updateLayers);\n }\n }\n\n updateLayers() {\n const { layerService, isLayerHidden } = this.props;\n const baseLayers = layerService.getBaseLayers();\n const idx = baseLayers.findIndex((l) => {\n return l.visible;\n });\n if (idx !== -1) {\n const baseLayerVisible = baseLayers.splice(idx, 1);\n baseLayers.unshift(baseLayerVisible[0]);\n }\n\n this.setState({\n layers: layerService\n .getLayersAsFlatArray()\n .filter((l) => {\n return (\n !l.isBaseLayer &&\n l.visible &&\n (!l.hasVisibleChildren() ||\n (l.children || []).every((child) => {\n return isLayerHidden(child);\n })) &&\n !isLayerHidden(l)\n );\n })\n .map((l) => {\n return l.key;\n })\n .join(),\n baselayers:\n baseLayers.length > 1\n ? baseLayers\n .map((l) => {\n return l.key;\n })\n .join()\n : undefined,\n });\n }\n\n updateHistory() {\n const { params, history } = this.props;\n const oldParams = qs.parse(window.location.search);\n const parameters = { ...oldParams, ...this.state, ...params };\n\n // Remove parameters that are undefined or null\n Object.entries(parameters).forEach(([key, value]) => {\n if (value === undefined || value === null) {\n delete parameters[key];\n }\n });\n\n // encodeURI to encode spaces, accents, etc. but not characters like ;,/?:@&=+$-_.!~*'()\n const qStr = encodeURI(qs.stringify(parameters, { encode: false }));\n const search = qStr ? `?${qStr}` : '';\n\n if (\n (!qStr && window.location.search) ||\n (qStr && search !== window.location.search)\n ) {\n if (history) {\n history.replace({ search });\n } else {\n const { hash } = window.location;\n window.history.replaceState(\n undefined,\n undefined,\n `${search}${hash || ''}`,\n );\n }\n }\n }\n\n render() {\n return null;\n }\n}\n\nPermalink.propTypes = propTypes;\nPermalink.defaultProps = defaultProps;\n\nexport default Permalink;\n"],"names":["const","super","this"],"mappings":"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"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/Permalink/Permalink.js"],
4
+ "sourcesContent": ["import Layer from \"ol/layer/Layer\";\nimport OLMap from \"ol/Map\";\nimport { unByKey } from \"ol/Observable\";\nimport PropTypes from \"prop-types\";\nimport { PureComponent } from \"react\";\n\nimport getLayersAsFlatArray from \"../../utils/getLayersAsFlatArray\";\n\nconst propTypes = {\n /**\n * Maximum number of decimals allowed for coordinates.\n */\n coordinateDecimals: PropTypes.number,\n\n /**\n * Either 'react-router' history object:\n * https://github.com/ReactTraining/react-router/blob/master/packages/react-router/docs/api/history.md<br>\n * or default fallback as HTML5 History:\n * https://developer.mozilla.org/en-US/docs/Web/API/History\n */\n history: PropTypes.shape({\n replace: PropTypes.func,\n }),\n\n /**\n * Determine if the layer appears in the baselayers permalink parameter or not.\n *\n * @param {object} item The item to hide or not.\n *\n * @return {bool} true if the item is not displayed in the baselayers permalink parameter\n */\n isBaseLayer: PropTypes.func,\n\n /**\n * Determine if the layer is hidden in the permalink or not.\n *\n * @param {object} item The item to hide or not.\n *\n * @return {bool} true if the item is not displayed in the permalink\n */\n isLayerHidden: PropTypes.func,\n\n /**\n * Layers provider.\n */\n layers: PropTypes.arrayOf(PropTypes.instanceOf(Layer)),\n\n /**\n * An [ol/map](https://openlayers.org/en/latest/apidoc/module-ol_Map-Map.html).\n */\n map: PropTypes.instanceOf(OLMap),\n\n /**\n * Params to be written in url.\n */\n params: PropTypes.object,\n\n /**\n * Custom function to be called when the permalink is updated.\n * This property has priority over the history parameter and window.history.replaceState calls.\n */\n replace: PropTypes.func,\n};\n\nconst defaultProps = {\n coordinateDecimals: 2,\n history: null,\n isBaseLayer: (layer) => {\n return layer.get(\"isBaseLayer\");\n },\n isLayerHidden: () => {\n return false;\n },\n layers: [],\n map: null,\n params: {},\n replace: null,\n};\n\n/**\n * This component handles permalink logic. Injecting an\n * __[ol/map](https://openlayers.org/en/latest/apidoc/module-ol_Map-Map.html)__\n * will add the *map center* (x, y) and the *zoom* (z) parameters to the permalink.\n * Injecting layers will add the *baselayers* and/or *layers* parameters. Further parameters can\n * be added using __params__.\n */\nclass Permalink extends PureComponent {\n constructor(props) {\n super(props);\n this.state = { revision: 0 };\n this.onPropertyChangeKeys = [];\n }\n\n componentDidMount() {\n const { isBaseLayer, isLayerHidden, layers, map } = this.props;\n if (map) {\n this.moveEndRef = map.on(\"moveend\", () => {\n this.onMapMoved();\n });\n }\n\n if (layers) {\n // set layer visibility based on 'layers' parameter.\n const urlParams = new URLSearchParams(window.location.search);\n\n if (urlParams.get(\"layers\")) {\n const visibleLayers = urlParams.get(\"layers\").split(\",\");\n getLayersAsFlatArray(layers).forEach((l) => {\n if (visibleLayers.includes(l.key || l.get(\"key\"))) {\n if (l.setVisible) {\n l.setVisible(true);\n } else {\n // eslint-disable-next-line no-param-reassign\n l.visible = true;\n }\n } else if (\n !isBaseLayer(l) &&\n !isLayerHidden(l) &&\n !(l.children || l.get(\"children\")).some((ll) => {\n return ll.getVisible ? ll.getVisible() : ll.visible;\n })\n ) {\n if (l.setVisible) {\n l.setVisible(false);\n } else {\n // eslint-disable-next-line no-param-reassign\n l.visible = false;\n }\n }\n });\n }\n\n // Set baser layer visibility based on 'baseLayers' parameter.\n // Show the first of the list then hide the others\n const visibleBaseLayer = (urlParams.get(\"baselayers\") || \"\").split(\n \",\",\n )[0];\n if (visibleBaseLayer) {\n getLayersAsFlatArray(layers)\n .filter(isBaseLayer)\n .forEach((baseLayer) => {\n const key = baseLayer.key || baseLayer.get(\"key\");\n const visible = key === visibleBaseLayer;\n if (baseLayer.setVisible) {\n baseLayer.setVisible(visible);\n } else {\n // eslint-disable-next-line no-param-reassign\n baseLayer.visible = visible;\n }\n });\n }\n this.updateLayers();\n }\n }\n\n componentDidUpdate(prevProps, prevState) {\n const { layers, map } = this.props;\n const { revision } = this.state;\n\n if (layers !== prevProps.layers || revision !== prevState.revision) {\n this.updateLayers();\n }\n\n if (map !== prevProps.map) {\n unByKey(this.moveEndRef);\n this.moveEndRef = map.on(\"moveend\", () => {\n return this.onMapMoved();\n });\n }\n\n this.updateHistory();\n }\n\n componentWillUnmount() {\n const { map } = this.props;\n\n if (map) {\n unByKey(this.moveEndRef);\n }\n unByKey(this.onPropertyChangeKeys);\n this.onPropertyChangeKeys = [];\n }\n\n onMapMoved() {\n const { map } = this.props;\n const mapView = map.getView();\n const center = mapView.getCenter();\n const params = {};\n\n if (\n center !== undefined &&\n center[0] !== undefined &&\n center[1] !== undefined\n ) {\n params.x = this.roundCoord(center[0]);\n params.y = this.roundCoord(center[1]);\n }\n\n this.setState({\n ...params,\n // rounds zoom to two digits max.\n z: +`${Math.round(`${parseFloat(mapView.getZoom())}e+2`)}e-2`,\n });\n }\n\n render() {\n return null;\n }\n\n roundCoord(val) {\n const { coordinateDecimals } = this.props;\n return parseFloat(val.toFixed(coordinateDecimals));\n }\n\n updateHistory() {\n const { history, params, replace } = this.props;\n const oldParams = new URLSearchParams(window.location.search);\n const parameters = {\n ...Object.fromEntries(oldParams.entries()),\n ...this.state,\n ...params,\n };\n\n delete parameters.revision;\n\n // Remove parameters that are undefined or null\n Object.entries(parameters).forEach(([key, value]) => {\n if (value === undefined || value === null) {\n delete parameters[key];\n }\n });\n\n // We don't encode the , to leave the permalink lisible\n const qStr = new URLSearchParams(parameters)\n .toString()\n .replace(/%2C/g, \",\");\n const search = qStr ? `?${qStr}` : \"\";\n\n if (\n (!qStr && window.location.search) ||\n (qStr && search !== window.location.search)\n ) {\n if (replace) {\n replace({ parameters, search });\n } else if (history) {\n history.replace({ search });\n } else {\n const { hash } = window.location;\n window.history.replaceState(\n undefined,\n undefined,\n `${search}${hash || \"\"}`,\n );\n }\n }\n }\n\n updateLayers() {\n const { isBaseLayer, isLayerHidden, layers } = this.props;\n const { revision } = this.state;\n\n unByKey(this.onPropertyChangeKeys);\n this.onPropertyChangeKeys = getLayersAsFlatArray(layers).map((layer) => {\n return layer.on(\"change:visible\", () => {\n this.setState({ revision: revision + 1 });\n });\n });\n\n // layers param\n let layersParam;\n if (layers.length) {\n layersParam = getLayersAsFlatArray(layers)\n .filter((l) => {\n const children = l.get(\"children\") || l.children || [];\n const allChildrenHidden = children.every((child) => {\n return isLayerHidden(child);\n });\n const hasVisibleChildren = children.some((child) => {\n return child.getVisible ? child.getVisible() : child.visible;\n });\n const isVisible = l.getVisible ? l.getVisible() : l.visible;\n return (\n !isBaseLayer(l) &&\n !isLayerHidden(l) &&\n isVisible &&\n (!hasVisibleChildren || allChildrenHidden)\n );\n })\n .map((l) => {\n return l.key || l.get(\"key\");\n })\n .join();\n }\n\n // baselayers param\n let baseLayersParam;\n const baseLayers = getLayersAsFlatArray(layers).filter(isBaseLayer);\n if (baseLayers.length) {\n // First baselayers in order of visibility, top layer is first\n const visibleBaseLayers = (\n baseLayers.filter((l) => {\n return l.getVisible ? l.getVisible() : l.visible;\n }) || []\n ).reverse();\n const nonVisibleBaseLayers =\n baseLayers.filter((l) => {\n return !(l.getVisible ? l.getVisible() : l.visible);\n }) || [];\n baseLayersParam = [...visibleBaseLayers, ...nonVisibleBaseLayers]\n .sort((a, b) => {\n const aVisible = a.getVisible ? a.getVisible() : a.visible;\n const bVisible = b.getVisible ? b.getVisible() : b.visible;\n if (aVisible === bVisible) {\n return 0;\n }\n if (aVisible && !bVisible) {\n return -1;\n }\n return 1;\n })\n .map((l) => {\n return l.key || l.get(\"key\");\n })\n .join();\n }\n\n // Only add parameters if there is actually some layers added.\n this.setState({\n baselayers: baseLayersParam,\n layers: layersParam,\n });\n }\n}\n\nPermalink.propTypes = propTypes;\nPermalink.defaultProps = defaultProps;\n\nexport default Permalink;\n"],
5
+ "mappings": "AAAA,OAAO,WAAW;AAClB,OAAO,WAAW;AAClB,SAAS,eAAe;AACxB,OAAO,eAAe;AACtB,SAAS,qBAAqB;AAE9B,OAAO,0BAA0B;AAEjC,MAAM,YAAY;AAAA;AAAA;AAAA;AAAA,EAIhB,oBAAoB,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ9B,SAAS,UAAU,MAAM;AAAA,IACvB,SAAS,UAAU;AAAA,EACrB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASD,aAAa,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASvB,eAAe,UAAU;AAAA;AAAA;AAAA;AAAA,EAKzB,QAAQ,UAAU,QAAQ,UAAU,WAAW,KAAK,CAAC;AAAA;AAAA;AAAA;AAAA,EAKrD,KAAK,UAAU,WAAW,KAAK;AAAA;AAAA;AAAA;AAAA,EAK/B,QAAQ,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAMlB,SAAS,UAAU;AACrB;AAEA,MAAM,eAAe;AAAA,EACnB,oBAAoB;AAAA,EACpB,SAAS;AAAA,EACT,aAAa,CAAC,UAAU;AACtB,WAAO,MAAM,IAAI,aAAa;AAAA,EAChC;AAAA,EACA,eAAe,MAAM;AACnB,WAAO;AAAA,EACT;AAAA,EACA,QAAQ,CAAC;AAAA,EACT,KAAK;AAAA,EACL,QAAQ,CAAC;AAAA,EACT,SAAS;AACX;AASA,MAAM,kBAAkB,cAAc;AAAA,EACpC,YAAY,OAAO;AACjB,UAAM,KAAK;AACX,SAAK,QAAQ,EAAE,UAAU,EAAE;AAC3B,SAAK,uBAAuB,CAAC;AAAA,EAC/B;AAAA,EAEA,oBAAoB;AAClB,UAAM,EAAE,aAAa,eAAe,QAAQ,IAAI,IAAI,KAAK;AACzD,QAAI,KAAK;AACP,WAAK,aAAa,IAAI,GAAG,WAAW,MAAM;AACxC,aAAK,WAAW;AAAA,MAClB,CAAC;AAAA,IACH;AAEA,QAAI,QAAQ;AAEV,YAAM,YAAY,IAAI,gBAAgB,OAAO,SAAS,MAAM;AAE5D,UAAI,UAAU,IAAI,QAAQ,GAAG;AAC3B,cAAM,gBAAgB,UAAU,IAAI,QAAQ,EAAE,MAAM,GAAG;AACvD,6BAAqB,MAAM,EAAE,QAAQ,CAAC,MAAM;AAC1C,cAAI,cAAc,SAAS,EAAE,OAAO,EAAE,IAAI,KAAK,CAAC,GAAG;AACjD,gBAAI,EAAE,YAAY;AAChB,gBAAE,WAAW,IAAI;AAAA,YACnB,OAAO;AAEL,gBAAE,UAAU;AAAA,YACd;AAAA,UACF,WACE,CAAC,YAAY,CAAC,KACd,CAAC,cAAc,CAAC,KAChB,EAAE,EAAE,YAAY,EAAE,IAAI,UAAU,GAAG,KAAK,CAAC,OAAO;AAC9C,mBAAO,GAAG,aAAa,GAAG,WAAW,IAAI,GAAG;AAAA,UAC9C,CAAC,GACD;AACA,gBAAI,EAAE,YAAY;AAChB,gBAAE,WAAW,KAAK;AAAA,YACpB,OAAO;AAEL,gBAAE,UAAU;AAAA,YACd;AAAA,UACF;AAAA,QACF,CAAC;AAAA,MACH;AAIA,YAAM,oBAAoB,UAAU,IAAI,YAAY,KAAK,IAAI;AAAA,QAC3D;AAAA,MACF,EAAE,CAAC;AACH,UAAI,kBAAkB;AACpB,6BAAqB,MAAM,EACxB,OAAO,WAAW,EAClB,QAAQ,CAAC,cAAc;AACtB,gBAAM,MAAM,UAAU,OAAO,UAAU,IAAI,KAAK;AAChD,gBAAM,UAAU,QAAQ;AACxB,cAAI,UAAU,YAAY;AACxB,sBAAU,WAAW,OAAO;AAAA,UAC9B,OAAO;AAEL,sBAAU,UAAU;AAAA,UACtB;AAAA,QACF,CAAC;AAAA,MACL;AACA,WAAK,aAAa;AAAA,IACpB;AAAA,EACF;AAAA,EAEA,mBAAmB,WAAW,WAAW;AACvC,UAAM,EAAE,QAAQ,IAAI,IAAI,KAAK;AAC7B,UAAM,EAAE,SAAS,IAAI,KAAK;AAE1B,QAAI,WAAW,UAAU,UAAU,aAAa,UAAU,UAAU;AAClE,WAAK,aAAa;AAAA,IACpB;AAEA,QAAI,QAAQ,UAAU,KAAK;AACzB,cAAQ,KAAK,UAAU;AACvB,WAAK,aAAa,IAAI,GAAG,WAAW,MAAM;AACxC,eAAO,KAAK,WAAW;AAAA,MACzB,CAAC;AAAA,IACH;AAEA,SAAK,cAAc;AAAA,EACrB;AAAA,EAEA,uBAAuB;AACrB,UAAM,EAAE,IAAI,IAAI,KAAK;AAErB,QAAI,KAAK;AACP,cAAQ,KAAK,UAAU;AAAA,IACzB;AACA,YAAQ,KAAK,oBAAoB;AACjC,SAAK,uBAAuB,CAAC;AAAA,EAC/B;AAAA,EAEA,aAAa;AACX,UAAM,EAAE,IAAI,IAAI,KAAK;AACrB,UAAM,UAAU,IAAI,QAAQ;AAC5B,UAAM,SAAS,QAAQ,UAAU;AACjC,UAAM,SAAS,CAAC;AAEhB,QACE,WAAW,UACX,OAAO,CAAC,MAAM,UACd,OAAO,CAAC,MAAM,QACd;AACA,aAAO,IAAI,KAAK,WAAW,OAAO,CAAC,CAAC;AACpC,aAAO,IAAI,KAAK,WAAW,OAAO,CAAC,CAAC;AAAA,IACtC;AAEA,SAAK,SAAS;AAAA,MACZ,GAAG;AAAA;AAAA,MAEH,GAAG,CAAC,GAAG,KAAK,MAAM,GAAG,WAAW,QAAQ,QAAQ,CAAC,CAAC,KAAK,CAAC;AAAA,IAC1D,CAAC;AAAA,EACH;AAAA,EAEA,SAAS;AACP,WAAO;AAAA,EACT;AAAA,EAEA,WAAW,KAAK;AACd,UAAM,EAAE,mBAAmB,IAAI,KAAK;AACpC,WAAO,WAAW,IAAI,QAAQ,kBAAkB,CAAC;AAAA,EACnD;AAAA,EAEA,gBAAgB;AACd,UAAM,EAAE,SAAS,QAAQ,QAAQ,IAAI,KAAK;AAC1C,UAAM,YAAY,IAAI,gBAAgB,OAAO,SAAS,MAAM;AAC5D,UAAM,aAAa;AAAA,MACjB,GAAG,OAAO,YAAY,UAAU,QAAQ,CAAC;AAAA,MACzC,GAAG,KAAK;AAAA,MACR,GAAG;AAAA,IACL;AAEA,WAAO,WAAW;AAGlB,WAAO,QAAQ,UAAU,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AACnD,UAAI,UAAU,UAAa,UAAU,MAAM;AACzC,eAAO,WAAW,GAAG;AAAA,MACvB;AAAA,IACF,CAAC;AAGD,UAAM,OAAO,IAAI,gBAAgB,UAAU,EACxC,SAAS,EACT,QAAQ,QAAQ,GAAG;AACtB,UAAM,SAAS,OAAO,IAAI,IAAI,KAAK;AAEnC,QACG,CAAC,QAAQ,OAAO,SAAS,UACzB,QAAQ,WAAW,OAAO,SAAS,QACpC;AACA,UAAI,SAAS;AACX,gBAAQ,EAAE,YAAY,OAAO,CAAC;AAAA,MAChC,WAAW,SAAS;AAClB,gBAAQ,QAAQ,EAAE,OAAO,CAAC;AAAA,MAC5B,OAAO;AACL,cAAM,EAAE,KAAK,IAAI,OAAO;AACxB,eAAO,QAAQ;AAAA,UACb;AAAA,UACA;AAAA,UACA,GAAG,MAAM,GAAG,QAAQ,EAAE;AAAA,QACxB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EAEA,eAAe;AACb,UAAM,EAAE,aAAa,eAAe,OAAO,IAAI,KAAK;AACpD,UAAM,EAAE,SAAS,IAAI,KAAK;AAE1B,YAAQ,KAAK,oBAAoB;AACjC,SAAK,uBAAuB,qBAAqB,MAAM,EAAE,IAAI,CAAC,UAAU;AACtE,aAAO,MAAM,GAAG,kBAAkB,MAAM;AACtC,aAAK,SAAS,EAAE,UAAU,WAAW,EAAE,CAAC;AAAA,MAC1C,CAAC;AAAA,IACH,CAAC;AAGD,QAAI;AACJ,QAAI,OAAO,QAAQ;AACjB,oBAAc,qBAAqB,MAAM,EACtC,OAAO,CAAC,MAAM;AACb,cAAM,WAAW,EAAE,IAAI,UAAU,KAAK,EAAE,YAAY,CAAC;AACrD,cAAM,oBAAoB,SAAS,MAAM,CAAC,UAAU;AAClD,iBAAO,cAAc,KAAK;AAAA,QAC5B,CAAC;AACD,cAAM,qBAAqB,SAAS,KAAK,CAAC,UAAU;AAClD,iBAAO,MAAM,aAAa,MAAM,WAAW,IAAI,MAAM;AAAA,QACvD,CAAC;AACD,cAAM,YAAY,EAAE,aAAa,EAAE,WAAW,IAAI,EAAE;AACpD,eACE,CAAC,YAAY,CAAC,KACd,CAAC,cAAc,CAAC,KAChB,cACC,CAAC,sBAAsB;AAAA,MAE5B,CAAC,EACA,IAAI,CAAC,MAAM;AACV,eAAO,EAAE,OAAO,EAAE,IAAI,KAAK;AAAA,MAC7B,CAAC,EACA,KAAK;AAAA,IACV;AAGA,QAAI;AACJ,UAAM,aAAa,qBAAqB,MAAM,EAAE,OAAO,WAAW;AAClE,QAAI,WAAW,QAAQ;AAErB,YAAM,qBACJ,WAAW,OAAO,CAAC,MAAM;AACvB,eAAO,EAAE,aAAa,EAAE,WAAW,IAAI,EAAE;AAAA,MAC3C,CAAC,KAAK,CAAC,GACP,QAAQ;AACV,YAAM,uBACJ,WAAW,OAAO,CAAC,MAAM;AACvB,eAAO,EAAE,EAAE,aAAa,EAAE,WAAW,IAAI,EAAE;AAAA,MAC7C,CAAC,KAAK,CAAC;AACT,wBAAkB,CAAC,GAAG,mBAAmB,GAAG,oBAAoB,EAC7D,KAAK,CAAC,GAAG,MAAM;AACd,cAAM,WAAW,EAAE,aAAa,EAAE,WAAW,IAAI,EAAE;AACnD,cAAM,WAAW,EAAE,aAAa,EAAE,WAAW,IAAI,EAAE;AACnD,YAAI,aAAa,UAAU;AACzB,iBAAO;AAAA,QACT;AACA,YAAI,YAAY,CAAC,UAAU;AACzB,iBAAO;AAAA,QACT;AACA,eAAO;AAAA,MACT,CAAC,EACA,IAAI,CAAC,MAAM;AACV,eAAO,EAAE,OAAO,EAAE,IAAI,KAAK;AAAA,MAC7B,CAAC,EACA,KAAK;AAAA,IACV;AAGA,SAAK,SAAS;AAAA,MACZ,YAAY;AAAA,MACZ,QAAQ;AAAA,IACV,CAAC;AAAA,EACH;AACF;AAEA,UAAU,YAAY;AACtB,UAAU,eAAe;AAEzB,eAAe;",
6
+ "names": []
7
+ }
@@ -1,3 +1 @@
1
- export { default } from './Permalink';
2
-
3
- //# sourceMappingURL=index.js.map
1
+ export { default } from "./Permalink";
@@ -1 +1,7 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/Permalink/index.js"],"sourcesContent":["export { default } from './Permalink';\n"],"names":[],"mappings":"AAAA,SAAS,OAAO,QAAQ,aAAa,CAAC;"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/Permalink/index.js"],
4
+ "sourcesContent": ["export { default } from \"./Permalink\";\n"],
5
+ "mappings": "AAAA,SAAS,eAAe;",
6
+ "names": []
7
+ }