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
package/LayerService.js CHANGED
@@ -1,193 +1,137 @@
1
- import { unByKey } from 'ol/Observable';
2
-
3
- /**
4
- * A layer service class to handle layer adding, removing and visiblity.
5
- */
6
- var LayerService = function LayerService(layers) {
7
- this.layers = layers;
8
- this.callbacks = {};
9
- this.keys = [];
10
- this.listenChangeEvt();
11
- };
12
-
13
- LayerService.prototype.addLayer = function addLayer (layer) {
14
- this.layers.push(layer);
15
- };
16
-
17
- LayerService.prototype.getLayers = function getLayers () {
18
- return this.layers;
19
- };
20
-
21
- LayerService.prototype.setLayers = function setLayers (layers) {
22
- this.layers = layers;
23
- this.listenChangeEvt();
24
- // When we change the layers we trigger an change:layers event
25
- (this.callbacks['change:layers'] || []).forEach(function (cb) {
26
- return cb(layers);
27
- });
28
- };
29
-
30
- LayerService.prototype.getLayersAsFlatArray = function getLayersAsFlatArray (optLayers) {
31
- var this$1 = this;
32
-
33
- var layers = [];
34
- (optLayers || this.getLayers() || []).forEach(function (l) {
35
- layers.push(l);
36
- var children = l.children;
37
- layers = layers.concat(this$1.getLayersAsFlatArray(children));
38
- });
39
- return layers;
40
- };
41
-
42
- LayerService.prototype.getLayer = function getLayer (name) {
43
- return this.getLayersAsFlatArray().find(function (l) {
44
- return l.name === name;
45
- });
46
- };
47
-
48
- LayerService.prototype.getParent = function getParent (child) {
49
- return this.getLayersAsFlatArray().find(function (l) {
50
- return !!l.children.includes(child);
51
- });
52
- };
53
-
54
- LayerService.prototype.getParents = function getParents (child) {
55
- var layer = child;
56
- var parents = [];
57
-
58
- var parentLayer;
59
- do {
60
- parentLayer = this.getParent(layer);
61
- if (parentLayer) {
62
- parents.push(parentLayer);
63
- layer = parentLayer;
1
+ import { unByKey } from "ol/Observable";
2
+ export default class LayerService {
3
+ constructor(layers) {
4
+ this.layers = layers;
5
+ this.callbacks = {};
6
+ this.keys = [];
7
+ this.listenChangeEvt();
8
+ }
9
+ addLayer(layer) {
10
+ this.layers.push(layer);
11
+ }
12
+ getLayers() {
13
+ return this.layers;
14
+ }
15
+ setLayers(layers) {
16
+ this.layers = layers;
17
+ this.listenChangeEvt();
18
+ (this.callbacks["change:layers"] || []).forEach((cb) => {
19
+ return cb(layers);
20
+ });
21
+ }
22
+ getLayersAsFlatArray(optLayers) {
23
+ let layers = [];
24
+ (optLayers || this.getLayers() || []).forEach((l) => {
25
+ layers.push(l);
26
+ const { children } = l;
27
+ layers = layers.concat(this.getLayersAsFlatArray(children || []));
28
+ });
29
+ return layers;
30
+ }
31
+ getLayer(name) {
32
+ return this.getLayersAsFlatArray().find((l) => {
33
+ return l.name === name;
34
+ });
35
+ }
36
+ getParent(child) {
37
+ return this.getLayersAsFlatArray().find((l) => {
38
+ return !!l.children.includes(child);
39
+ });
40
+ }
41
+ getParents(child) {
42
+ let layer = child;
43
+ const parents = [];
44
+ let parentLayer;
45
+ do {
46
+ parentLayer = this.getParent(layer);
47
+ if (parentLayer) {
48
+ parents.push(parentLayer);
49
+ layer = parentLayer;
50
+ }
51
+ } while (parentLayer);
52
+ return parents;
53
+ }
54
+ getRadioGroupLayers(radioGroupName) {
55
+ if (radioGroupName) {
56
+ return this.getLayersAsFlatArray().filter((l) => {
57
+ return l.get("radioGroup") === radioGroupName;
58
+ });
64
59
  }
65
- } while (parentLayer);
66
-
67
- return parents;
68
- };
69
-
70
- LayerService.prototype.getRadioGroupLayers = function getRadioGroupLayers (radioGroupName) {
71
- if (radioGroupName) {
72
- return this.getLayersAsFlatArray().filter(function (l) {
73
- return l.get('radioGroup') === radioGroupName;
60
+ return null;
61
+ }
62
+ getBaseLayers() {
63
+ return this.getLayersAsFlatArray().filter((l) => {
64
+ return l.isBaseLayer;
65
+ });
66
+ }
67
+ getQueryableLayers() {
68
+ return this.getLayersAsFlatArray().filter((layer) => {
69
+ return layer.visible && layer.isQueryable;
74
70
  });
75
71
  }
76
-
77
- return null;
78
- };
79
-
80
- LayerService.prototype.getBaseLayers = function getBaseLayers () {
81
- return this.getLayersAsFlatArray().filter(function (l) {
82
- return l.isBaseLayer;
83
- });
84
- };
85
-
86
- LayerService.prototype.getQueryableLayers = function getQueryableLayers () {
87
- return this.getLayersAsFlatArray().filter(function (layer) {
88
- return layer.visible && layer.isQueryable;
89
- });
90
- };
91
-
92
- LayerService.prototype.getFeatureInfoAtCoordinate = function getFeatureInfoAtCoordinate (coordinate, layers) {
93
- var promises = (layers || this.getQueryableLayers()).map(function (layer) {
94
- return layer
95
- .getFeatureInfoAtCoordinate(coordinate)
96
- .then(function (featureInfo) {
72
+ getFeatureInfoAtCoordinate(coordinate, layers) {
73
+ const promises = (layers || this.getQueryableLayers()).map((layer) => {
74
+ return layer.getFeatureInfoAtCoordinate(coordinate).then((featureInfo) => {
97
75
  return featureInfo;
98
76
  });
99
- });
100
- return Promise.all(promises);
101
- };
102
-
103
- LayerService.prototype.on = function on (evt, callback) {
104
- this.un(evt, callback);
105
- this.callbacks[evt] = this.callbacks[evt] || [];
106
- this.callbacks[evt].push(callback);
107
- };
108
-
109
- LayerService.prototype.un = function un (evt, callback) {
110
- for (var i = 0; i < (this.callbacks[evt] || []).length; i += 1) {
111
- if (callback === this.callbacks[evt][i]) {
112
- this.callbacks[evt].splice(i, 1);
113
- break;
114
- }
77
+ });
78
+ return Promise.all(promises);
115
79
  }
116
- };
117
-
118
- LayerService.prototype.listenChangeEvt = function listenChangeEvt () {
119
- var this$1 = this;
120
-
121
- if (this.keys) {
122
- unByKey(this.keys);
123
- this.keys = [];
80
+ on(evt, callback) {
81
+ this.un(evt, callback);
82
+ this.callbacks[evt] = this.callbacks[evt] || [];
83
+ this.callbacks[evt].push(callback);
124
84
  }
125
- this.getLayersAsFlatArray().forEach(function (layer) {
126
- this$1.keys.push(
127
- layer.on('change:copyright', function (evt) {
128
- (this$1.callbacks['change:copyright'] || []).forEach(function (cb) {
129
- return cb(evt.target);
130
- });
131
- }),
132
- layer.on('change:visible', function (evt) {
133
- var ref = evt.target;
134
- var visible = ref.visible;
135
-
136
- // Apply to siblings only if it's a radio group.
137
- if (
138
- !evt.stopPropagationSiblings &&
139
- layer.get('radioGroup') &&
140
- visible
141
- ) {
142
- var siblings = this$1.getRadioGroupLayers(
143
- layer.get('radioGroup')
144
- ).filter(function (l) {
145
- return l !== layer;
146
- });
147
-
148
- siblings.forEach(function (s) {
149
- if (
150
- visible &&
151
- s.get('radioGroup') &&
152
- evt.target.get('radioGroup') === s.get('radioGroup')
153
- ) {
154
- s.setVisible(false, false, true, true);
155
- }
85
+ un(evt, callback) {
86
+ for (let i = 0; i < (this.callbacks[evt] || []).length; i += 1) {
87
+ if (callback === this.callbacks[evt][i]) {
88
+ this.callbacks[evt].splice(i, 1);
89
+ break;
90
+ }
91
+ }
92
+ }
93
+ listenChangeEvt() {
94
+ if (this.keys) {
95
+ unByKey(this.keys);
96
+ this.keys = [];
97
+ }
98
+ this.getLayersAsFlatArray().forEach((layer) => {
99
+ this.keys.push(
100
+ layer.on("change:copyright", (evt) => {
101
+ (this.callbacks["change:copyright"] || []).forEach((cb) => {
102
+ return cb(evt.target);
156
103
  });
157
- }
158
-
159
- // Apply to children
160
- if (!evt.stopPropagationDown && layer.children) {
161
- layer.children.forEach(function (child) {
162
- child.setVisible(visible, false, true, false);
104
+ }),
105
+ layer.on("change:visible", (evt) => {
106
+ const { visible } = evt.target;
107
+ if (!evt.stopPropagationSiblings && layer.get("radioGroup") && visible) {
108
+ const siblings = this.getRadioGroupLayers(
109
+ layer.get("radioGroup")
110
+ ).filter((l) => {
111
+ return l !== layer;
112
+ });
113
+ siblings.forEach((s) => {
114
+ if (visible && s.get("radioGroup") && evt.target.get("radioGroup") === s.get("radioGroup")) {
115
+ s.visible = false;
116
+ }
117
+ });
118
+ }
119
+ if (!evt.stopPropagationDown && layer.children) {
120
+ layer.children.forEach((child) => {
121
+ child.visible = visible;
122
+ });
123
+ }
124
+ const parentLayer = this.getParent(layer);
125
+ if (!evt.stopPropagationUp && parentLayer && (visible || !visible && !parentLayer.children.find((c) => {
126
+ return c.visible;
127
+ }))) {
128
+ parentLayer.visible = visible;
129
+ }
130
+ (this.callbacks["change:visible"] || []).forEach((cb) => {
131
+ return cb(evt.target);
163
132
  });
164
- }
165
-
166
- // Apply to parent only if:
167
- // - a child is visible
168
- // - all children are hidden
169
- var parentLayer = this$1.getParent(layer);
170
-
171
- if (
172
- !evt.stopPropagationUp &&
173
- parentLayer &&
174
- (visible ||
175
- (!visible &&
176
- !parentLayer.children.find(function (c) {
177
- return c.visible;
178
- })))
179
- ) {
180
- parentLayer.setVisible(visible, true, false, false);
181
- }
182
-
183
- (this$1.callbacks['change:visible'] || []).forEach(function (cb) {
184
- return cb(evt.target);
185
- });
186
- })
187
- );
188
- });
189
- };
190
-
191
- export default LayerService;
192
-
193
- //# sourceMappingURL=LayerService.js.map
133
+ })
134
+ );
135
+ });
136
+ }
137
+ }
@@ -1 +1,7 @@
1
- {"version":3,"file":"LayerService.js","sources":["../src/LayerService.js"],"sourcesContent":["import { unByKey } from 'ol/Observable';\n\n/**\n * A layer service class to handle layer adding, removing and visiblity.\n */\nexport default class LayerService {\n constructor(layers) {\n this.layers = layers;\n this.callbacks = {};\n this.keys = [];\n this.listenChangeEvt();\n }\n\n addLayer(layer) {\n this.layers.push(layer);\n }\n\n getLayers() {\n return this.layers;\n }\n\n setLayers(layers) {\n this.layers = layers;\n this.listenChangeEvt();\n // When we change the layers we trigger an change:layers event\n (this.callbacks['change:layers'] || []).forEach((cb) => {\n return cb(layers);\n });\n }\n\n getLayersAsFlatArray(optLayers) {\n let layers = [];\n (optLayers || this.getLayers() || []).forEach((l) => {\n layers.push(l);\n const { children } = l;\n layers = layers.concat(this.getLayersAsFlatArray(children));\n });\n return layers;\n }\n\n getLayer(name) {\n return this.getLayersAsFlatArray().find((l) => {\n return l.name === name;\n });\n }\n\n getParent(child) {\n return this.getLayersAsFlatArray().find((l) => {\n return !!l.children.includes(child);\n });\n }\n\n getParents(child) {\n let layer = child;\n const parents = [];\n\n let parentLayer;\n do {\n parentLayer = this.getParent(layer);\n if (parentLayer) {\n parents.push(parentLayer);\n layer = parentLayer;\n }\n } while (parentLayer);\n\n return parents;\n }\n\n getRadioGroupLayers(radioGroupName) {\n if (radioGroupName) {\n return this.getLayersAsFlatArray().filter((l) => {\n return l.get('radioGroup') === radioGroupName;\n });\n }\n\n return null;\n }\n\n getBaseLayers() {\n return this.getLayersAsFlatArray().filter((l) => {\n return l.isBaseLayer;\n });\n }\n\n getQueryableLayers() {\n return this.getLayersAsFlatArray().filter((layer) => {\n return layer.visible && layer.isQueryable;\n });\n }\n\n getFeatureInfoAtCoordinate(coordinate, layers) {\n const promises = (layers || this.getQueryableLayers()).map((layer) => {\n return layer\n .getFeatureInfoAtCoordinate(coordinate)\n .then((featureInfo) => {\n return featureInfo;\n });\n });\n return Promise.all(promises);\n }\n\n on(evt, callback) {\n this.un(evt, callback);\n this.callbacks[evt] = this.callbacks[evt] || [];\n this.callbacks[evt].push(callback);\n }\n\n un(evt, callback) {\n for (let i = 0; i < (this.callbacks[evt] || []).length; i += 1) {\n if (callback === this.callbacks[evt][i]) {\n this.callbacks[evt].splice(i, 1);\n break;\n }\n }\n }\n\n listenChangeEvt() {\n if (this.keys) {\n unByKey(this.keys);\n this.keys = [];\n }\n this.getLayersAsFlatArray().forEach((layer) => {\n this.keys.push(\n layer.on('change:copyright', (evt) => {\n (this.callbacks['change:copyright'] || []).forEach((cb) => {\n return cb(evt.target);\n });\n }),\n layer.on('change:visible', (evt) => {\n const { visible } = evt.target;\n\n // Apply to siblings only if it's a radio group.\n if (\n !evt.stopPropagationSiblings &&\n layer.get('radioGroup') &&\n visible\n ) {\n const siblings = this.getRadioGroupLayers(\n layer.get('radioGroup'),\n ).filter((l) => {\n return l !== layer;\n });\n\n siblings.forEach((s) => {\n if (\n visible &&\n s.get('radioGroup') &&\n evt.target.get('radioGroup') === s.get('radioGroup')\n ) {\n s.setVisible(false, false, true, true);\n }\n });\n }\n\n // Apply to children\n if (!evt.stopPropagationDown && layer.children) {\n layer.children.forEach((child) => {\n child.setVisible(visible, false, true, false);\n });\n }\n\n // Apply to parent only if:\n // - a child is visible\n // - all children are hidden\n const parentLayer = this.getParent(layer);\n\n if (\n !evt.stopPropagationUp &&\n parentLayer &&\n (visible ||\n (!visible &&\n !parentLayer.children.find((c) => {\n return c.visible;\n })))\n ) {\n parentLayer.setVisible(visible, true, false, false);\n }\n\n (this.callbacks['change:visible'] || []).forEach((cb) => {\n return cb(evt.target);\n });\n }),\n );\n });\n }\n}\n"],"names":["let","const","this"],"mappings":"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"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/LayerService.js"],
4
+ "sourcesContent": ["import { unByKey } from 'ol/Observable';\n\n/**\n * A layer service class to handle layer adding, removing and visiblity.\n */\nexport default class LayerService {\n constructor(layers) {\n this.layers = layers;\n this.callbacks = {};\n this.keys = [];\n this.listenChangeEvt();\n }\n\n addLayer(layer) {\n this.layers.push(layer);\n }\n\n getLayers() {\n return this.layers;\n }\n\n setLayers(layers) {\n this.layers = layers;\n this.listenChangeEvt();\n // When we change the layers we trigger an change:layers event\n (this.callbacks['change:layers'] || []).forEach((cb) => {\n return cb(layers);\n });\n }\n\n getLayersAsFlatArray(optLayers) {\n let layers = [];\n (optLayers || this.getLayers() || []).forEach((l) => {\n layers.push(l);\n const { children } = l;\n layers = layers.concat(this.getLayersAsFlatArray(children || []));\n });\n return layers;\n }\n\n getLayer(name) {\n return this.getLayersAsFlatArray().find((l) => {\n return l.name === name;\n });\n }\n\n getParent(child) {\n return this.getLayersAsFlatArray().find((l) => {\n return !!l.children.includes(child);\n });\n }\n\n getParents(child) {\n let layer = child;\n const parents = [];\n\n let parentLayer;\n do {\n parentLayer = this.getParent(layer);\n if (parentLayer) {\n parents.push(parentLayer);\n layer = parentLayer;\n }\n } while (parentLayer);\n\n return parents;\n }\n\n getRadioGroupLayers(radioGroupName) {\n if (radioGroupName) {\n return this.getLayersAsFlatArray().filter((l) => {\n return l.get('radioGroup') === radioGroupName;\n });\n }\n\n return null;\n }\n\n getBaseLayers() {\n return this.getLayersAsFlatArray().filter((l) => {\n return l.isBaseLayer;\n });\n }\n\n getQueryableLayers() {\n return this.getLayersAsFlatArray().filter((layer) => {\n return layer.visible && layer.isQueryable;\n });\n }\n\n getFeatureInfoAtCoordinate(coordinate, layers) {\n const promises = (layers || this.getQueryableLayers()).map((layer) => {\n return layer\n .getFeatureInfoAtCoordinate(coordinate)\n .then((featureInfo) => {\n return featureInfo;\n });\n });\n return Promise.all(promises);\n }\n\n on(evt, callback) {\n this.un(evt, callback);\n this.callbacks[evt] = this.callbacks[evt] || [];\n this.callbacks[evt].push(callback);\n }\n\n un(evt, callback) {\n for (let i = 0; i < (this.callbacks[evt] || []).length; i += 1) {\n if (callback === this.callbacks[evt][i]) {\n this.callbacks[evt].splice(i, 1);\n break;\n }\n }\n }\n\n listenChangeEvt() {\n if (this.keys) {\n unByKey(this.keys);\n this.keys = [];\n }\n this.getLayersAsFlatArray().forEach((layer) => {\n this.keys.push(\n layer.on('change:copyright', (evt) => {\n (this.callbacks['change:copyright'] || []).forEach((cb) => {\n return cb(evt.target);\n });\n }),\n layer.on('change:visible', (evt) => {\n const { visible } = evt.target;\n\n // Apply to siblings only if it's a radio group.\n if (\n !evt.stopPropagationSiblings &&\n layer.get('radioGroup') &&\n visible\n ) {\n const siblings = this.getRadioGroupLayers(\n layer.get('radioGroup'),\n ).filter((l) => {\n return l !== layer;\n });\n\n siblings.forEach((s) => {\n if (\n visible &&\n s.get('radioGroup') &&\n evt.target.get('radioGroup') === s.get('radioGroup')\n ) {\n // eslint-disable-next-line no-param-reassign\n s.visible = false;\n }\n });\n }\n\n // Apply to children\n if (!evt.stopPropagationDown && layer.children) {\n layer.children.forEach((child) => {\n // eslint-disable-next-line no-param-reassign\n child.visible = visible;\n });\n }\n\n // Apply to parent only if:\n // - a child is visible\n // - all children are hidden\n const parentLayer = this.getParent(layer);\n\n if (\n !evt.stopPropagationUp &&\n parentLayer &&\n (visible ||\n (!visible &&\n !parentLayer.children.find((c) => {\n return c.visible;\n })))\n ) {\n parentLayer.visible = visible;\n }\n\n (this.callbacks['change:visible'] || []).forEach((cb) => {\n return cb(evt.target);\n });\n }),\n );\n });\n }\n}\n"],
5
+ "mappings": "AAAA,SAAS,eAAe;AAKxB,qBAAqB,aAAa;AAAA,EAChC,YAAY,QAAQ;AAClB,SAAK,SAAS;AACd,SAAK,YAAY,CAAC;AAClB,SAAK,OAAO,CAAC;AACb,SAAK,gBAAgB;AAAA,EACvB;AAAA,EAEA,SAAS,OAAO;AACd,SAAK,OAAO,KAAK,KAAK;AAAA,EACxB;AAAA,EAEA,YAAY;AACV,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,UAAU,QAAQ;AAChB,SAAK,SAAS;AACd,SAAK,gBAAgB;AAErB,KAAC,KAAK,UAAU,oBAAoB,CAAC,GAAG,QAAQ,CAAC,OAAO;AACtD,aAAO,GAAG,MAAM;AAAA,IAClB,CAAC;AAAA,EACH;AAAA,EAEA,qBAAqB,WAAW;AAC9B,QAAI,SAAS,CAAC;AACd,KAAC,aAAa,KAAK,UAAU,KAAK,CAAC,GAAG,QAAQ,CAAC,MAAM;AACnD,aAAO,KAAK,CAAC;AACb,YAAM,EAAE,SAAS,IAAI;AACrB,eAAS,OAAO,OAAO,KAAK,qBAAqB,YAAY,CAAC,CAAC,CAAC;AAAA,IAClE,CAAC;AACD,WAAO;AAAA,EACT;AAAA,EAEA,SAAS,MAAM;AACb,WAAO,KAAK,qBAAqB,EAAE,KAAK,CAAC,MAAM;AAC7C,aAAO,EAAE,SAAS;AAAA,IACpB,CAAC;AAAA,EACH;AAAA,EAEA,UAAU,OAAO;AACf,WAAO,KAAK,qBAAqB,EAAE,KAAK,CAAC,MAAM;AAC7C,aAAO,CAAC,CAAC,EAAE,SAAS,SAAS,KAAK;AAAA,IACpC,CAAC;AAAA,EACH;AAAA,EAEA,WAAW,OAAO;AAChB,QAAI,QAAQ;AACZ,UAAM,UAAU,CAAC;AAEjB,QAAI;AACJ,OAAG;AACD,oBAAc,KAAK,UAAU,KAAK;AAClC,UAAI,aAAa;AACf,gBAAQ,KAAK,WAAW;AACxB,gBAAQ;AAAA,MACV;AAAA,IACF,SAAS;AAET,WAAO;AAAA,EACT;AAAA,EAEA,oBAAoB,gBAAgB;AAClC,QAAI,gBAAgB;AAClB,aAAO,KAAK,qBAAqB,EAAE,OAAO,CAAC,MAAM;AAC/C,eAAO,EAAE,IAAI,YAAY,MAAM;AAAA,MACjC,CAAC;AAAA,IACH;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,gBAAgB;AACd,WAAO,KAAK,qBAAqB,EAAE,OAAO,CAAC,MAAM;AAC/C,aAAO,EAAE;AAAA,IACX,CAAC;AAAA,EACH;AAAA,EAEA,qBAAqB;AACnB,WAAO,KAAK,qBAAqB,EAAE,OAAO,CAAC,UAAU;AACnD,aAAO,MAAM,WAAW,MAAM;AAAA,IAChC,CAAC;AAAA,EACH;AAAA,EAEA,2BAA2B,YAAY,QAAQ;AAC7C,UAAM,YAAY,UAAU,KAAK,mBAAmB,GAAG,IAAI,CAAC,UAAU;AACpE,aAAO,MACJ,2BAA2B,UAAU,EACrC,KAAK,CAAC,gBAAgB;AACrB,eAAO;AAAA,MACT,CAAC;AAAA,IACL,CAAC;AACD,WAAO,QAAQ,IAAI,QAAQ;AAAA,EAC7B;AAAA,EAEA,GAAG,KAAK,UAAU;AAChB,SAAK,GAAG,KAAK,QAAQ;AACrB,SAAK,UAAU,OAAO,KAAK,UAAU,QAAQ,CAAC;AAC9C,SAAK,UAAU,KAAK,KAAK,QAAQ;AAAA,EACnC;AAAA,EAEA,GAAG,KAAK,UAAU;AAChB,aAAS,IAAI,GAAG,KAAK,KAAK,UAAU,QAAQ,CAAC,GAAG,QAAQ,KAAK,GAAG;AAC9D,UAAI,aAAa,KAAK,UAAU,KAAK,IAAI;AACvC,aAAK,UAAU,KAAK,OAAO,GAAG,CAAC;AAC/B;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EAEA,kBAAkB;AAChB,QAAI,KAAK,MAAM;AACb,cAAQ,KAAK,IAAI;AACjB,WAAK,OAAO,CAAC;AAAA,IACf;AACA,SAAK,qBAAqB,EAAE,QAAQ,CAAC,UAAU;AAC7C,WAAK,KAAK;AAAA,QACR,MAAM,GAAG,oBAAoB,CAAC,QAAQ;AACpC,WAAC,KAAK,UAAU,uBAAuB,CAAC,GAAG,QAAQ,CAAC,OAAO;AACzD,mBAAO,GAAG,IAAI,MAAM;AAAA,UACtB,CAAC;AAAA,QACH,CAAC;AAAA,QACD,MAAM,GAAG,kBAAkB,CAAC,QAAQ;AAClC,gBAAM,EAAE,QAAQ,IAAI,IAAI;AAGxB,cACE,CAAC,IAAI,2BACL,MAAM,IAAI,YAAY,KACtB,SACA;AACA,kBAAM,WAAW,KAAK;AAAA,cACpB,MAAM,IAAI,YAAY;AAAA,YACxB,EAAE,OAAO,CAAC,MAAM;AACd,qBAAO,MAAM;AAAA,YACf,CAAC;AAED,qBAAS,QAAQ,CAAC,MAAM;AACtB,kBACE,WACA,EAAE,IAAI,YAAY,KAClB,IAAI,OAAO,IAAI,YAAY,MAAM,EAAE,IAAI,YAAY,GACnD;AAEA,kBAAE,UAAU;AAAA,cACd;AAAA,YACF,CAAC;AAAA,UACH;AAGA,cAAI,CAAC,IAAI,uBAAuB,MAAM,UAAU;AAC9C,kBAAM,SAAS,QAAQ,CAAC,UAAU;AAEhC,oBAAM,UAAU;AAAA,YAClB,CAAC;AAAA,UACH;AAKA,gBAAM,cAAc,KAAK,UAAU,KAAK;AAExC,cACE,CAAC,IAAI,qBACL,gBACC,WACE,CAAC,WACA,CAAC,YAAY,SAAS,KAAK,CAAC,MAAM;AAChC,mBAAO,EAAE;AAAA,UACX,CAAC,IACL;AACA,wBAAY,UAAU;AAAA,UACxB;AAEA,WAAC,KAAK,UAAU,qBAAqB,CAAC,GAAG,QAAQ,CAAC,OAAO;AACvD,mBAAO,GAAG,IAAI,MAAM;AAAA,UACtB,CAAC;AAAA,QACH,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACH;AACF;",
6
+ "names": []
7
+ }