@igo2/geo 18.0.0-next.9 → 18.0.0

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 (255) hide show
  1. package/esm2022/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +4 -6
  2. package/esm2022/lib/catalog/catalog-browser/catalog-browser.component.mjs +13 -10
  3. package/esm2022/lib/datasource/shared/capabilities.service.mjs +1 -1
  4. package/esm2022/lib/datasource/shared/datasources/datasource.mjs +2 -1
  5. package/esm2022/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +1 -1
  6. package/esm2022/lib/datasource/shared/datasources/wms-datasource.interface.mjs +1 -1
  7. package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +151 -102
  8. package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +177 -83
  9. package/esm2022/lib/directions/directions-results/directions-results.component.mjs +93 -44
  10. package/esm2022/lib/directions/directions-sources/directions-source.mjs +1 -1
  11. package/esm2022/lib/directions/directions-sources/osrm-directions-source.mjs +1 -1
  12. package/esm2022/lib/directions/directions.component.mjs +55 -31
  13. package/esm2022/lib/directions/shared/directions.enum.mjs +51 -7
  14. package/esm2022/lib/directions/shared/directions.interface.mjs +1 -1
  15. package/esm2022/lib/directions/shared/directions.service.mjs +122 -96
  16. package/esm2022/lib/directions/shared/directions.utils.mjs +281 -318
  17. package/esm2022/lib/directions/shared/store.mjs +2 -2
  18. package/esm2022/lib/download/download-button/download-button.component.mjs +8 -20
  19. package/esm2022/lib/download/shared/download.service.mjs +1 -1
  20. package/esm2022/lib/draw/draw/draw-popup.component.mjs +1 -1
  21. package/esm2022/lib/draw/draw/draw.component.mjs +5 -12
  22. package/esm2022/lib/draw/shared/draw.utils.mjs +1 -1
  23. package/esm2022/lib/environment/environment.interface.mjs +1 -1
  24. package/esm2022/lib/feature/feature-details/feature-details.component.mjs +2 -2
  25. package/esm2022/lib/feature/shared/feature-store.utils.mjs +7 -6
  26. package/esm2022/lib/feature/shared/feature.interfaces.mjs +1 -1
  27. package/esm2022/lib/feature/shared/store.mjs +1 -1
  28. package/esm2022/lib/feature/shared/strategies/geo-properties.mjs +3 -3
  29. package/esm2022/lib/feature/shared/strategies/in-map-extent.mjs +7 -4
  30. package/esm2022/lib/feature/shared/strategies/selection.mjs +5 -4
  31. package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +3 -3
  32. package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +2 -2
  33. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +5 -3
  34. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +1 -1
  35. package/esm2022/lib/filter/shared/filterable-datasource.pipe.mjs +8 -1
  36. package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +1 -1
  37. package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +2 -8
  38. package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +2 -8
  39. package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +2 -2
  40. package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +13 -10
  41. package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +2 -2
  42. package/esm2022/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +4 -2
  43. package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +5 -16
  44. package/esm2022/lib/import-export/export-button/export-button.component.mjs +4 -17
  45. package/esm2022/lib/import-export/import-export/import-export.component.mjs +23 -12
  46. package/esm2022/lib/import-export/shared/export.service.mjs +7 -4
  47. package/esm2022/lib/import-export/shared/import.utils.mjs +3 -3
  48. package/esm2022/lib/layer/index.mjs +10 -5
  49. package/esm2022/lib/layer/layer-group/index.mjs +2 -0
  50. package/esm2022/lib/layer/layer-group/layer-group.component.mjs +103 -0
  51. package/esm2022/lib/layer/layer-item/layer-item.component.mjs +76 -161
  52. package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +5 -8
  53. package/esm2022/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +5 -6
  54. package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +14 -21
  55. package/esm2022/lib/layer/layer-list/index.mjs +1 -3
  56. package/esm2022/lib/layer/layer-list/layer-list.component.mjs +176 -785
  57. package/esm2022/lib/layer/layer-list-tool/index.mjs +1 -2
  58. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +51 -84
  59. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.interface.mjs +7 -2
  60. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.service.mjs +56 -16
  61. package/esm2022/lib/layer/layer-search/index.mjs +2 -0
  62. package/esm2022/lib/layer/layer-search/layer-search.component.mjs +65 -0
  63. package/esm2022/lib/layer/layer-unavailable/index.mjs +3 -0
  64. package/esm2022/lib/layer/layer-unavailable/layer-unavailable-list/layer-unavailable-list.component.mjs +25 -0
  65. package/esm2022/lib/layer/layer-unavailable/layer-unavailable.component.mjs +35 -0
  66. package/esm2022/lib/layer/layer-viewer/index.mjs +3 -0
  67. package/esm2022/lib/layer/layer-viewer/layer-viewer.component.mjs +226 -0
  68. package/esm2022/lib/layer/layer-viewer/layer-viewer.interface.mjs +2 -0
  69. package/esm2022/lib/layer/layer-viewer-bottom-actions/index.mjs +2 -0
  70. package/esm2022/lib/layer/layer-viewer-bottom-actions/layer-viewer-bottom-actions.component.mjs +207 -0
  71. package/esm2022/lib/layer/layer-visibility-button/index.mjs +2 -0
  72. package/esm2022/lib/layer/layer-visibility-button/layer-visibility-button.component.mjs +83 -0
  73. package/esm2022/lib/layer/layer.module.mjs +51 -33
  74. package/esm2022/lib/layer/shared/index.mjs +2 -1
  75. package/esm2022/lib/layer/shared/layer-controller.mjs +316 -0
  76. package/esm2022/lib/layer/shared/layer-selection.mjs +38 -0
  77. package/esm2022/lib/layer/shared/layer.service.mjs +31 -16
  78. package/esm2022/lib/layer/shared/layers/any-layer.interface.mjs +1 -1
  79. package/esm2022/lib/layer/shared/layers/any-layer.mjs +1 -1
  80. package/esm2022/lib/layer/shared/layers/image-layer.interface.mjs +1 -1
  81. package/esm2022/lib/layer/shared/layers/image-layer.mjs +8 -3
  82. package/esm2022/lib/layer/shared/layers/index.mjs +6 -1
  83. package/esm2022/lib/layer/shared/layers/layer-base.mjs +199 -0
  84. package/esm2022/lib/layer/shared/layers/layer-group.interface.mjs +2 -0
  85. package/esm2022/lib/layer/shared/layers/layer-group.mjs +120 -0
  86. package/esm2022/lib/layer/shared/layers/layer.interface.mjs +1 -11
  87. package/esm2022/lib/layer/shared/layers/layer.mjs +108 -117
  88. package/esm2022/lib/layer/shared/layers/linked/index.mjs +4 -0
  89. package/esm2022/lib/layer/shared/layers/linked/linked-layer.interface.mjs +12 -0
  90. package/esm2022/lib/layer/shared/layers/linked/linked-layer.mjs +242 -0
  91. package/esm2022/lib/layer/shared/layers/linked/linked-layer.utils.mjs +70 -0
  92. package/esm2022/lib/layer/shared/layers/tile-layer.mjs +8 -3
  93. package/esm2022/lib/layer/shared/layers/vector-layer.mjs +9 -3
  94. package/esm2022/lib/layer/shared/layers/vectortile-layer.mjs +8 -3
  95. package/esm2022/lib/layer/utils/layer.utils.mjs +47 -1
  96. package/esm2022/lib/layer/utils/outputLegend.mjs +5 -1
  97. package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +3 -3
  98. package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +8 -6
  99. package/esm2022/lib/map/map-center/map-center.component.mjs +1 -2
  100. package/esm2022/lib/map/shared/controllers/geolocation.interface.mjs +1 -1
  101. package/esm2022/lib/map/shared/controllers/view.mjs +1 -1
  102. package/esm2022/lib/map/shared/hover-feature.directive.mjs +1 -9
  103. package/esm2022/lib/map/shared/linkedLayers.utils.mjs +113 -123
  104. package/esm2022/lib/map/shared/map.abstract.mjs +4 -3
  105. package/esm2022/lib/map/shared/map.mjs +7 -243
  106. package/esm2022/lib/map/shared/map.service.mjs +1 -1
  107. package/esm2022/lib/map/shared/map.utils.mjs +3 -3
  108. package/esm2022/lib/map/shared/mapOffline.directive.mjs +9 -5
  109. package/esm2022/lib/map/swipe-control/swipe-control.component.mjs +1 -3
  110. package/esm2022/lib/map/utils/index.mjs +2 -0
  111. package/esm2022/lib/map/utils/layer-watcher.mjs +45 -13
  112. package/esm2022/lib/measure/measurer/measurer.component.mjs +7 -25
  113. package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +6 -18
  114. package/esm2022/lib/offline/offline.provider.mjs +10 -11
  115. package/esm2022/lib/print/shared/print.service.mjs +3 -3
  116. package/esm2022/lib/query/shared/query.directive.mjs +9 -5
  117. package/esm2022/lib/query/shared/query.service.mjs +7 -7
  118. package/esm2022/lib/query/shared/query.utils.mjs +5 -1
  119. package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +15 -9
  120. package/esm2022/lib/search/shared/search-pointer-summary.directive.mjs +1 -10
  121. package/esm2022/lib/search/shared/sources/workspace.interfaces.mjs +1 -1
  122. package/esm2022/lib/search/shared/sources/workspace.mjs +1 -1
  123. package/esm2022/lib/workspace/shared/edition-workspace.mjs +6 -4
  124. package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +19 -17
  125. package/esm2022/lib/workspace/shared/wfs-workspace.service.mjs +17 -2
  126. package/esm2022/lib/workspace/shared/wms-workspace.service.mjs +22 -4
  127. package/esm2022/lib/workspace/shared/workspace.utils.mjs +6 -3
  128. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +2 -2
  129. package/esm2022/lib/workspace/workspace-selector/workspace-selector.directive.mjs +6 -2
  130. package/esm2022/lib/workspace/workspace-updator/workspace-updator.directive.mjs +4 -3
  131. package/fesm2022/igo2-geo.mjs +22952 -22018
  132. package/fesm2022/igo2-geo.mjs.map +1 -1
  133. package/lib/datasource/shared/capabilities.service.d.ts +7 -2
  134. package/lib/datasource/shared/datasources/wfs-datasource.interface.d.ts +2 -2
  135. package/lib/datasource/shared/datasources/wms-datasource.interface.d.ts +5 -5
  136. package/lib/directions/directions-buttons/directions-buttons.component.d.ts +57 -20
  137. package/lib/directions/directions-inputs/directions-inputs.component.d.ts +115 -13
  138. package/lib/directions/directions-results/directions-results.component.d.ts +50 -16
  139. package/lib/directions/directions-sources/directions-source.d.ts +2 -2
  140. package/lib/directions/directions-sources/osrm-directions-source.d.ts +2 -2
  141. package/lib/directions/directions.component.d.ts +5 -5
  142. package/lib/directions/shared/directions.enum.d.ts +42 -1
  143. package/lib/directions/shared/directions.interface.d.ts +50 -25
  144. package/lib/directions/shared/directions.service.d.ts +46 -8
  145. package/lib/directions/shared/directions.utils.d.ts +102 -23
  146. package/lib/directions/shared/store.d.ts +3 -3
  147. package/lib/download/download-button/download-button.component.d.ts +4 -8
  148. package/lib/download/shared/download.service.d.ts +1 -1
  149. package/lib/draw/draw/draw.component.d.ts +2 -2
  150. package/lib/draw/shared/draw.utils.d.ts +2 -1
  151. package/lib/environment/environment.interface.d.ts +2 -0
  152. package/lib/feature/shared/feature-store.utils.d.ts +1 -1
  153. package/lib/feature/shared/feature.interfaces.d.ts +1 -1
  154. package/lib/feature/shared/store.d.ts +1 -1
  155. package/lib/filter/ogc-filter-button/ogc-filter-button.component.d.ts +1 -1
  156. package/lib/filter/ogc-filterable-item/ogc-filterable-item.component.d.ts +1 -1
  157. package/lib/filter/ogc-filterable-list/ogc-filterable-list.component.d.ts +2 -2
  158. package/lib/filter/shared/filterable-datasource.pipe.d.ts +2 -2
  159. package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +3 -3
  160. package/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.d.ts +3 -5
  161. package/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.d.ts +3 -5
  162. package/lib/filter/time-filter-button/time-filter-button.component.d.ts +1 -1
  163. package/lib/filter/time-filter-form/time-filter-form.component.d.ts +5 -5
  164. package/lib/filter/time-filter-item/time-filter-item.component.d.ts +1 -1
  165. package/lib/filter/time-filter-list/time-filter-list.component.d.ts +2 -7
  166. package/lib/import-export/export-button/export-button.component.d.ts +3 -7
  167. package/lib/import-export/import-export/import-export.component.d.ts +1 -2
  168. package/lib/import-export/shared/export.service.d.ts +2 -2
  169. package/lib/layer/index.d.ts +9 -4
  170. package/lib/layer/layer-group/index.d.ts +1 -0
  171. package/lib/layer/layer-group/layer-group.component.d.ts +30 -0
  172. package/lib/layer/layer-item/layer-item.component.d.ts +19 -42
  173. package/lib/layer/layer-legend/layer-legend.component.d.ts +2 -5
  174. package/lib/layer/layer-legend-list/layer-legend-list.component.d.ts +6 -7
  175. package/lib/layer/layer-list/index.d.ts +0 -2
  176. package/lib/layer/layer-list/layer-list.component.d.ts +51 -128
  177. package/lib/layer/layer-list-tool/index.d.ts +0 -1
  178. package/lib/layer/layer-list-tool/layer-list-tool.component.d.ts +19 -26
  179. package/lib/layer/layer-list-tool/layer-list-tool.interface.d.ts +5 -1
  180. package/lib/layer/layer-list-tool/layer-list-tool.service.d.ts +9 -8
  181. package/lib/layer/layer-search/index.d.ts +1 -0
  182. package/lib/layer/layer-search/layer-search.component.d.ts +16 -0
  183. package/lib/layer/layer-unavailable/index.d.ts +2 -0
  184. package/lib/layer/layer-unavailable/layer-unavailable-list/layer-unavailable-list.component.d.ts +10 -0
  185. package/lib/layer/layer-unavailable/layer-unavailable.component.d.ts +11 -0
  186. package/lib/layer/layer-viewer/index.d.ts +2 -0
  187. package/lib/layer/layer-viewer/layer-viewer.component.d.ts +52 -0
  188. package/lib/layer/layer-viewer/layer-viewer.interface.d.ts +22 -0
  189. package/lib/layer/layer-viewer-bottom-actions/index.d.ts +1 -0
  190. package/lib/layer/layer-viewer-bottom-actions/layer-viewer-bottom-actions.component.d.ts +44 -0
  191. package/lib/layer/layer-visibility-button/index.d.ts +1 -0
  192. package/lib/layer/layer-visibility-button/layer-visibility-button.component.d.ts +22 -0
  193. package/lib/layer/layer.module.d.ts +18 -6
  194. package/lib/layer/shared/index.d.ts +1 -0
  195. package/lib/layer/shared/layer-controller.d.ts +81 -0
  196. package/lib/layer/shared/layer-selection.d.ts +14 -0
  197. package/lib/layer/shared/layer.service.d.ts +9 -5
  198. package/lib/layer/shared/layers/any-layer.d.ts +3 -6
  199. package/lib/layer/shared/layers/any-layer.interface.d.ts +8 -6
  200. package/lib/layer/shared/layers/image-layer.d.ts +5 -2
  201. package/lib/layer/shared/layers/image-layer.interface.d.ts +1 -4
  202. package/lib/layer/shared/layers/index.d.ts +5 -0
  203. package/lib/layer/shared/layers/layer-base.d.ts +75 -0
  204. package/lib/layer/shared/layers/layer-group.d.ts +32 -0
  205. package/lib/layer/shared/layers/layer-group.interface.d.ts +8 -0
  206. package/lib/layer/shared/layers/layer.d.ts +27 -45
  207. package/lib/layer/shared/layers/layer.interface.d.ts +23 -41
  208. package/lib/layer/shared/layers/linked/index.d.ts +3 -0
  209. package/lib/layer/shared/layers/linked/linked-layer.d.ts +35 -0
  210. package/lib/layer/shared/layers/linked/linked-layer.interface.d.ts +32 -0
  211. package/lib/layer/shared/layers/linked/linked-layer.utils.d.ts +9 -0
  212. package/lib/layer/shared/layers/tile-layer.d.ts +5 -2
  213. package/lib/layer/shared/layers/vector-layer.d.ts +7 -3
  214. package/lib/layer/shared/layers/vectortile-layer.d.ts +5 -2
  215. package/lib/layer/utils/layer.utils.d.ts +12 -2
  216. package/lib/layer/utils/outputLegend.d.ts +2 -2
  217. package/lib/map/shared/controllers/geolocation.interface.d.ts +2 -1
  218. package/lib/map/shared/hover-feature.directive.d.ts +0 -1
  219. package/lib/map/shared/linkedLayers.utils.d.ts +13 -17
  220. package/lib/map/shared/map.abstract.d.ts +12 -29
  221. package/lib/map/shared/map.d.ts +10 -85
  222. package/lib/map/shared/map.service.d.ts +1 -1
  223. package/lib/map/shared/map.utils.d.ts +5 -3
  224. package/lib/map/utils/index.d.ts +1 -0
  225. package/lib/map/utils/layer-watcher.d.ts +18 -8
  226. package/lib/measure/measurer/measurer.component.d.ts +0 -8
  227. package/lib/metadata/metadata-button/metadata-button.component.d.ts +3 -7
  228. package/lib/offline/offline.provider.d.ts +1 -1
  229. package/lib/query/shared/query.service.d.ts +1 -1
  230. package/lib/query/shared/query.utils.d.ts +2 -1
  231. package/lib/search/search-results/search-results-add-button.component.d.ts +1 -1
  232. package/lib/search/shared/search-pointer-summary.directive.d.ts +0 -1
  233. package/lib/search/shared/sources/workspace.interfaces.d.ts +1 -1
  234. package/lib/workspace/widgets/ogc-filter/ogc-filter.component.d.ts +1 -1
  235. package/locale/en.geo.json +104 -89
  236. package/locale/fr.geo.json +103 -89
  237. package/package.json +5 -5
  238. package/src/geo-theme.scss +1 -1
  239. package/src/lib/directions/directions-inputs/directions-inputs.theming.scss +21 -0
  240. package/src/lib/directions/directions.theming.scss +2 -0
  241. package/src/lib/layer/layer-group/layer-group.theme.scss +28 -0
  242. package/src/lib/layer/layer-item/layer-item.theme.scss +4 -9
  243. package/src/lib/layer/layer-legend/layer-legend.theme.scss +30 -0
  244. package/src/lib/layer/layer-list/layer-list.theme.scss +50 -0
  245. package/src/lib/layer/layer-unavailable/layer-unavailable.theme.scss +19 -0
  246. package/src/lib/layer/layer-viewer/_layer-viewer.theme.scss +16 -0
  247. package/src/lib/layer/layer-visibility-button/layer-visibility-button.theme.scss +27 -0
  248. package/src/lib/layer/layer.theming.scss +14 -3
  249. package/esm2022/lib/layer/layer-list/layer-list-binding.directive.mjs +0 -70
  250. package/esm2022/lib/layer/layer-list/layer-list.enum.mjs +0 -19
  251. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.enum.mjs +0 -7
  252. package/lib/layer/layer-list/layer-list-binding.directive.d.ts +0 -19
  253. package/lib/layer/layer-list/layer-list.enum.d.ts +0 -15
  254. package/lib/layer/layer-list-tool/layer-list-tool.enum.d.ts +0 -5
  255. package/src/lib/layer/layer-legend/layer-legend.theming.scss +0 -10
@@ -0,0 +1,199 @@
1
+ import { BehaviorSubject, combineLatest } from 'rxjs';
2
+ import { getResolutionFromScale } from '../../../map/shared/map.utils';
3
+ export class LayerBase {
4
+ options;
5
+ collapsed;
6
+ firstLoadComponent = true;
7
+ map;
8
+ olLoadingProblem = false;
9
+ status$;
10
+ dataSource;
11
+ /**
12
+ * Define if a layer is generated by code OR defined by layer/context user layer.
13
+ * Useful for filtering layers list in mapOffline.directive or in the sharemap...
14
+ * return false by default.
15
+ */
16
+ get isIgoInternalLayer() {
17
+ return this.options.isIgoInternalLayer || false;
18
+ }
19
+ get id() {
20
+ return String(this.options.id);
21
+ }
22
+ get parentId() {
23
+ return this.options.parentId;
24
+ }
25
+ get alias() {
26
+ return this.options.alias;
27
+ }
28
+ get title() {
29
+ return this.options.title;
30
+ }
31
+ set title(title) {
32
+ this.options.title = title;
33
+ }
34
+ get zIndex() {
35
+ return this.ol.getZIndex();
36
+ }
37
+ set zIndex(zIndex) {
38
+ if (zIndex === this.zIndex) {
39
+ return;
40
+ }
41
+ this.ol.setZIndex(zIndex);
42
+ }
43
+ get baseLayer() {
44
+ return this.options.baseLayer;
45
+ }
46
+ set baseLayer(baseLayer) {
47
+ this.options.baseLayer = baseLayer;
48
+ }
49
+ get opacity() {
50
+ return this.ol.get('opacity');
51
+ }
52
+ set opacity(opacity) {
53
+ this.ol.setOpacity(opacity);
54
+ }
55
+ set isInResolutionsRange(value) {
56
+ this.isInResolutionsRange$.next(value);
57
+ }
58
+ get isInResolutionsRange() {
59
+ return this.isInResolutionsRange$.value;
60
+ }
61
+ isInResolutionsRange$ = new BehaviorSubject(false);
62
+ set maxResolution(value) {
63
+ this.ol.setMaxResolution(value === 0 ? 0 : value || Infinity);
64
+ }
65
+ get maxResolution() {
66
+ return this.ol.getMaxResolution();
67
+ }
68
+ set minResolution(value) {
69
+ this.ol.setMinResolution(value || 0);
70
+ }
71
+ get minResolution() {
72
+ return this.ol.getMinResolution();
73
+ }
74
+ set visible(value) {
75
+ if (value === this.visible) {
76
+ return;
77
+ }
78
+ this.ol.setVisible(value);
79
+ this._visible$.next(value);
80
+ }
81
+ get visible() {
82
+ return this._visible$.value;
83
+ }
84
+ _visible$ = new BehaviorSubject(undefined);
85
+ visible$ = this._visible$.asObservable();
86
+ get displayed() {
87
+ return this._displayed$.value;
88
+ }
89
+ set displayed(value) {
90
+ if (value === this.displayed) {
91
+ return;
92
+ }
93
+ this._displayed$.next(value);
94
+ }
95
+ _displayed$ = new BehaviorSubject(undefined);
96
+ displayed$ = this._displayed$.asObservable();
97
+ displayed$$;
98
+ get showInLayerList() {
99
+ return this.options.showInLayerList !== false;
100
+ }
101
+ get saveableOptions() {
102
+ return {
103
+ title: this.options.title,
104
+ zIndex: this.zIndex,
105
+ visible: this.visible,
106
+ security: this.options.security,
107
+ opacity: this.opacity
108
+ };
109
+ }
110
+ constructor(options) {
111
+ this.options = options;
112
+ this.initDisplayed$$();
113
+ }
114
+ afterCreated() {
115
+ if (this.options.zIndex !== undefined) {
116
+ this.zIndex = this.options.zIndex;
117
+ }
118
+ if (this.options.baseLayer && this.options.visible === undefined) {
119
+ this.options.visible = false;
120
+ }
121
+ this.maxResolution =
122
+ this.options.maxResolution ||
123
+ getResolutionFromScale(Number(this.options.maxScaleDenom));
124
+ this.minResolution =
125
+ this.options.minResolution ||
126
+ getResolutionFromScale(Number(this.options.minScaleDenom));
127
+ this.visible =
128
+ this.options.visible === undefined ? true : this.options.visible;
129
+ this.opacity =
130
+ this.options.opacity === undefined ? 1 : this.options.opacity;
131
+ }
132
+ init(map) {
133
+ this.map = map;
134
+ }
135
+ add(parent) {
136
+ this._add(parent);
137
+ }
138
+ _add(parent) {
139
+ this.addParent(parent);
140
+ this.parent ? this.parent.addChild(this) : this.map.ol.addLayer(this.ol);
141
+ }
142
+ addParent(parent) {
143
+ if (this.parent && this.parent === parent) {
144
+ return;
145
+ }
146
+ this.parent = parent;
147
+ if (!this.map && this.parent) {
148
+ this.map = this.parent.map;
149
+ }
150
+ this.initDisplayed$$();
151
+ }
152
+ remove() {
153
+ this._remove();
154
+ }
155
+ _remove() {
156
+ if (!this.map) {
157
+ console.error(`No map for ${this.title}`);
158
+ return;
159
+ }
160
+ this.parent
161
+ ? this.parent.removeChild(this)
162
+ : this.map.ol.removeLayer(this.ol);
163
+ }
164
+ reset(parent) {
165
+ this._remove();
166
+ this._add(parent);
167
+ }
168
+ moveTo(parent) {
169
+ if (parent == null && this.parent == null) {
170
+ return;
171
+ }
172
+ if (this.parent) {
173
+ if (this.parent.id === parent?.id) {
174
+ return;
175
+ }
176
+ }
177
+ this.reset(parent);
178
+ }
179
+ clone() {
180
+ const clone = Object.assign({}, this);
181
+ return Object.setPrototypeOf(clone, LayerBase.prototype);
182
+ }
183
+ initDisplayed$$() {
184
+ this.displayed$$?.unsubscribe();
185
+ const obs$ = [this.isInResolutionsRange$, this.visible$];
186
+ if (this.parent) {
187
+ obs$.push(this.parent.displayed$);
188
+ }
189
+ this.displayed$$ = combineLatest(obs$).subscribe(([inRes, visible, parentDisplayed = null]) => {
190
+ const isVisible = this.parent ? parentDisplayed && visible : visible;
191
+ this.displayed = isVisible && inRes;
192
+ });
193
+ }
194
+ }
195
+ export class LayerGroupBase extends LayerBase {
196
+ type = 'group';
197
+ children;
198
+ }
199
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXItYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2xheWVyL3NoYXJlZC9sYXllcnMvbGF5ZXItYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsZUFBZSxFQUF5QixhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJN0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFLdkUsTUFBTSxPQUFnQixTQUFTO0lBK0hWO0lBekhaLFNBQVMsQ0FBVTtJQUNuQixrQkFBa0IsR0FBRyxJQUFJLENBQUM7SUFDMUIsR0FBRyxDQUFVO0lBQ2IsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLE9BQU8sQ0FBeUI7SUFDdkMsVUFBVSxDQUF5QjtJQUVuQzs7OztPQUlHO0lBQ0gsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixJQUFJLEtBQUssQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBSSxFQUFFO1FBQ0osT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsS0FBYTtRQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFD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LEtBQUssRUFBRSxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVPLGVBQWU7UUFDckIsSUFBSSxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUVoQyxNQUFNLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFekQsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3BDLENBQUM7UUFFRCxJQUFJLENBQUMsV0FBVyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQzlDLENBQUMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLGVBQWUsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFO1lBQzNDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGVBQWUsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUNyRSxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsSUFBSSxLQUFLLENBQUM7UUFDdEMsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQWdCLGNBQWUsU0FBUSxTQUFTO0lBQ3BELElBQUksR0FBYyxPQUFPLENBQUM7SUFDMUIsUUFBUSxDQUFjO0NBT3ZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3ViamVjdFN0YXR1cyB9IGZyb20gJ0BpZ28yL3V0aWxzJztcblxuaW1wb3J0IEJhc2VMYXllciBmcm9tICdvbC9sYXllci9CYXNlJztcblxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHR5cGUgeyBEYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvZGF0YXNvdXJjZSc7XG5pbXBvcnQgdHlwZSB7IE1hcEJhc2UgfSBmcm9tICcuLi8uLi8uLi9tYXAvc2hhcmVkL21hcC5hYnN0cmFjdCc7XG5pbXBvcnQgeyBnZXRSZXNvbHV0aW9uRnJvbVNjYWxlIH0gZnJvbSAnLi4vLi4vLi4vbWFwL3NoYXJlZC9tYXAudXRpbHMnO1xuaW1wb3J0IHR5cGUgeyBMYXllck9wdGlvbnMsIExheWVyVHlwZSB9IGZyb20gJy4vbGF5ZXIuaW50ZXJmYWNlJztcblxuZXhwb3J0IHR5cGUgQW55TGF5ZXJCYXNlID0gTGF5ZXJCYXNlIHwgTGF5ZXJHcm91cEJhc2U7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBMYXllckJhc2Uge1xuICBhYnN0cmFjdCB0eXBlOiBMYXllclR5cGU7XG4gIGFic3RyYWN0IG9sOiBCYXNlTGF5ZXI7XG4gIGFic3RyYWN0IHBhcmVudDogTGF5ZXJHcm91cEJhc2U7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCBjcmVhdGVPbExheWVyKCk6IEJhc2VMYXllcjtcblxuICBwdWJsaWMgY29sbGFwc2VkOiBib29sZWFuO1xuICBwdWJsaWMgZmlyc3RMb2FkQ29tcG9uZW50ID0gdHJ1ZTtcbiAgcHVibGljIG1hcDogTWFwQmFzZTtcbiAgcHVibGljIG9sTG9hZGluZ1Byb2JsZW0gPSBmYWxzZTtcbiAgcHVibGljIHN0YXR1cyQ6IFN1YmplY3Q8U3ViamVjdFN0YXR1cz47XG4gIGRhdGFTb3VyY2U6IERhdGFTb3VyY2UgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIERlZmluZSBpZiBhIGxheWVyIGlzIGdlbmVyYXRlZCBieSBjb2RlIE9SIGRlZmluZWQgYnkgbGF5ZXIvY29udGV4dCB1c2VyIGxheWVyLlxuICAgKiBVc2VmdWwgZm9yIGZpbHRlcmluZyBsYXllcnMgbGlzdCBpbiBtYXBPZmZsaW5lLmRpcmVjdGl2ZSBvciBpbiB0aGUgc2hhcmVtYXAuLi5cbiAgICogcmV0dXJuIGZhbHNlIGJ5IGRlZmF1bHQuXG4gICAqL1xuICBnZXQgaXNJZ29JbnRlcm5hbExheWVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuaXNJZ29JbnRlcm5hbExheWVyIHx8IGZhbHNlO1xuICB9XG5cbiAgZ2V0IGlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFN0cmluZyh0aGlzLm9wdGlvbnMuaWQpO1xuICB9XG5cbiAgZ2V0IHBhcmVudElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5wYXJlbnRJZDtcbiAgfVxuXG4gIGdldCBhbGlhcygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuYWxpYXM7XG4gIH1cblxuICBnZXQgdGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLnRpdGxlO1xuICB9XG4gIHNldCB0aXRsZSh0aXRsZTogc3RyaW5nKSB7XG4gICAgdGhpcy5vcHRpb25zLnRpdGxlID0gdGl0bGU7XG4gIH1cblxuICBnZXQgekluZGV4KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMub2wuZ2V0WkluZGV4KCk7XG4gIH1cbiAgc2V0IHpJbmRleCh6SW5kZXg6IG51bWJlcikge1xuICAgIGlmICh6SW5kZXggPT09IHRoaXMuekluZGV4KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMub2wuc2V0WkluZGV4KHpJbmRleCk7XG4gIH1cblxuICBnZXQgYmFzZUxheWVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuYmFzZUxheWVyO1xuICB9XG4gIHNldCBiYXNlTGF5ZXIoYmFzZUxheWVyOiBib29sZWFuKSB7XG4gICAgdGhpcy5vcHRpb25zLmJhc2VMYXllciA9IGJhc2VMYXllcjtcbiAgfVxuXG4gIGdldCBvcGFjaXR5KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMub2wuZ2V0KCdvcGFjaXR5Jyk7XG4gIH1cbiAgc2V0IG9wYWNpdHkob3BhY2l0eTogbnVtYmVyKSB7XG4gICAgdGhpcy5vbC5zZXRPcGFjaXR5KG9wYWNpdHkpO1xuICB9XG5cbiAgc2V0IGlzSW5SZXNvbHV0aW9uc1JhbmdlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5pc0luUmVzb2x1dGlvbnNSYW5nZSQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgZ2V0IGlzSW5SZXNvbHV0aW9uc1JhbmdlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzSW5SZXNvbHV0aW9uc1JhbmdlJC52YWx1ZTtcbiAgfVxuICByZWFkb25seSBpc0luUmVzb2x1dGlvbnNSYW5nZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICBzZXQgbWF4UmVzb2x1dGlvbih2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5vbC5zZXRNYXhSZXNvbHV0aW9uKHZhbHVlID09PSAwID8gMCA6IHZhbHVlIHx8IEluZmluaXR5KTtcbiAgfVxuICBnZXQgbWF4UmVzb2x1dGlvbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm9sLmdldE1heFJlc29sdXRpb24oKTtcbiAgfVxuXG4gIHNldCBtaW5SZXNvbHV0aW9uKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLm9sLnNldE1pblJlc29sdXRpb24odmFsdWUgfHwgMCk7XG4gIH1cbiAgZ2V0IG1pblJlc29sdXRpb24oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5vbC5nZXRNaW5SZXNvbHV0aW9uKCk7XG4gIH1cblxuICBzZXQgdmlzaWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh2YWx1ZSA9PT0gdGhpcy52aXNpYmxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMub2wuc2V0VmlzaWJsZSh2YWx1ZSk7XG4gICAgdGhpcy5fdmlzaWJsZSQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgZ2V0IHZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3Zpc2libGUkLnZhbHVlO1xuICB9XG4gIHByaXZhdGUgX3Zpc2libGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih1bmRlZmluZWQpO1xuICByZWFkb25seSB2aXNpYmxlJCA9IHRoaXMuX3Zpc2libGUkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGdldCBkaXNwbGF5ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc3BsYXllZCQudmFsdWU7XG4gIH1cbiAgc2V0IGRpc3BsYXllZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5kaXNwbGF5ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fZGlzcGxheWVkJC5uZXh0KHZhbHVlKTtcbiAgfVxuICBwcml2YXRlIF9kaXNwbGF5ZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih1bmRlZmluZWQpO1xuICBkaXNwbGF5ZWQkID0gdGhpcy5fZGlzcGxheWVkJC5hc09ic2VydmFibGUoKTtcbiAgcHJpdmF0ZSBkaXNwbGF5ZWQkJDogU3Vic2NyaXB0aW9uO1xuXG4gIGdldCBzaG93SW5MYXllckxpc3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5zaG93SW5MYXllckxpc3QgIT09IGZhbHNlO1xuICB9XG5cbiAgZ2V0IHNhdmVhYmxlT3B0aW9ucygpOiBQYXJ0aWFsPExheWVyT3B0aW9ucz4ge1xuICAgIHJldHVybiB7XG4gICAgICB0aXRsZTogdGhpcy5vcHRpb25zLnRpdGxlLFxuICAgICAgekluZGV4OiB0aGlzLnpJbmRleCxcbiAgICAgIHZpc2libGU6IHRoaXMudmlzaWJsZSxcbiAgICAgIHNlY3VyaXR5OiB0aGlzLm9wdGlvbnMuc2VjdXJpdHksXG4gICAgICBvcGFjaXR5OiB0aGlzLm9wYWNpdHlcbiAgICB9O1xuICB9XG5cbiAgY29uc3RydWN0b3IocHVibGljIG9wdGlvbnM6IExheWVyT3B0aW9ucykge1xuICAgIHRoaXMuaW5pdERpc3BsYXllZCQkKCk7XG4gIH1cblxuICBhZnRlckNyZWF0ZWQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMub3B0aW9ucy56SW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy56SW5kZXggPSB0aGlzLm9wdGlvbnMuekluZGV4O1xuICAgIH1cblxuICAgIGlmICh0aGlzLm9wdGlvbnMuYmFzZUxheWVyICYmIHRoaXMub3B0aW9ucy52aXNpYmxlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMub3B0aW9ucy52aXNpYmxlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgdGhpcy5tYXhSZXNvbHV0aW9uID1cbiAgICAgIHRoaXMub3B0aW9ucy5tYXhSZXNvbHV0aW9uIHx8XG4gICAgICBnZXRSZXNvbHV0aW9uRnJvbVNjYWxlKE51bWJlcih0aGlzLm9wdGlvbnMubWF4U2NhbGVEZW5vbSkpO1xuICAgIHRoaXMubWluUmVzb2x1dGlvbiA9XG4gICAgICB0aGlzLm9wdGlvbnMubWluUmVzb2x1dGlvbiB8fFxuICAgICAgZ2V0UmVzb2x1dGlvbkZyb21TY2FsZShOdW1iZXIodGhpcy5vcHRpb25zLm1pblNjYWxlRGVub20pKTtcblxuICAgIHRoaXMudmlzaWJsZSA9XG4gICAgICB0aGlzLm9wdGlvbnMudmlzaWJsZSA9PT0gdW5kZWZpbmVkID8gdHJ1ZSA6IHRoaXMub3B0aW9ucy52aXNpYmxlO1xuICAgIHRoaXMub3BhY2l0eSA9XG4gICAgICB0aGlzLm9wdGlvbnMub3BhY2l0eSA9PT0gdW5kZWZpbmVkID8gMSA6IHRoaXMub3B0aW9ucy5vcGFjaXR5O1xuICB9XG5cbiAgaW5pdChtYXA6IE1hcEJhc2UpOiB2b2lkIHtcbiAgICB0aGlzLm1hcCA9IG1hcDtcbiAgfVxuXG4gIGFkZChwYXJlbnQ/OiBMYXllckdyb3VwQmFzZSk6IHZvaWQge1xuICAgIHRoaXMuX2FkZChwYXJlbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfYWRkKHBhcmVudD86IExheWVyR3JvdXBCYXNlKTogdm9pZCB7XG4gICAgdGhpcy5hZGRQYXJlbnQocGFyZW50KTtcbiAgICB0aGlzLnBhcmVudCA/IHRoaXMucGFyZW50LmFkZENoaWxkKHRoaXMpIDogdGhpcy5tYXAub2wuYWRkTGF5ZXIodGhpcy5vbCk7XG4gIH1cblxuICBhZGRQYXJlbnQocGFyZW50PzogTGF5ZXJHcm91cEJhc2UpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wYXJlbnQgJiYgdGhpcy5wYXJlbnQgPT09IHBhcmVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucGFyZW50ID0gcGFyZW50O1xuXG4gICAgaWYgKCF0aGlzLm1hcCAmJiB0aGlzLnBhcmVudCkge1xuICAgICAgdGhpcy5tYXAgPSB0aGlzLnBhcmVudC5tYXA7XG4gICAgfVxuXG4gICAgdGhpcy5pbml0RGlzcGxheWVkJCQoKTtcbiAgfVxuXG4gIHJlbW92ZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9yZW1vdmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlbW92ZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubWFwKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBObyBtYXAgZm9yICR7dGhpcy50aXRsZX1gKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5wYXJlbnRcbiAgICAgID8gdGhpcy5wYXJlbnQucmVtb3ZlQ2hpbGQodGhpcylcbiAgICAgIDogdGhpcy5tYXAub2wucmVtb3ZlTGF5ZXIodGhpcy5vbCk7XG4gIH1cblxuICByZXNldChwYXJlbnQ/OiBMYXllckdyb3VwQmFzZSk6IHZvaWQge1xuICAgIHRoaXMuX3JlbW92ZSgpO1xuICAgIHRoaXMuX2FkZChwYXJlbnQpO1xuICB9XG5cbiAgbW92ZVRvKHBhcmVudD86IExheWVyR3JvdXBCYXNlKTogdm9pZCB7XG4gICAgaWYgKHBhcmVudCA9PSBudWxsICYmIHRoaXMucGFyZW50ID09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wYXJlbnQpIHtcbiAgICAgIGlmICh0aGlzLnBhcmVudC5pZCA9PT0gcGFyZW50Py5pZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5yZXNldChwYXJlbnQpO1xuICB9XG5cbiAgY2xvbmUoKTogTGF5ZXJCYXNlIHtcbiAgICBjb25zdCBjbG9uZSA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMpO1xuICAgIHJldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YoY2xvbmUsIExheWVyQmFzZS5wcm90b3R5cGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0RGlzcGxheWVkJCQoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwbGF5ZWQkJD8udW5zdWJzY3JpYmUoKTtcblxuICAgIGNvbnN0IG9icyQgPSBbdGhpcy5pc0luUmVzb2x1dGlvbnNSYW5nZSQsIHRoaXMudmlzaWJsZSRdO1xuXG4gICAgaWYgKHRoaXMucGFyZW50KSB7XG4gICAgICBvYnMkLnB1c2godGhpcy5wYXJlbnQuZGlzcGxheWVkJCk7XG4gICAgfVxuXG4gICAgdGhpcy5kaXNwbGF5ZWQkJCA9IGNvbWJpbmVMYXRlc3Qob2JzJCkuc3Vic2NyaWJlKFxuICAgICAgKFtpblJlcywgdmlzaWJsZSwgcGFyZW50RGlzcGxheWVkID0gbnVsbF0pID0+IHtcbiAgICAgICAgY29uc3QgaXNWaXNpYmxlID0gdGhpcy5wYXJlbnQgPyBwYXJlbnREaXNwbGF5ZWQgJiYgdmlzaWJsZSA6IHZpc2libGU7XG4gICAgICAgIHRoaXMuZGlzcGxheWVkID0gaXNWaXNpYmxlICYmIGluUmVzO1xuICAgICAgfVxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIExheWVyR3JvdXBCYXNlIGV4dGVuZHMgTGF5ZXJCYXNlIHtcbiAgdHlwZTogTGF5ZXJUeXBlID0gJ2dyb3VwJztcbiAgY2hpbGRyZW46IExheWVyQmFzZVtdO1xuXG4gIGFic3RyYWN0IGdldCBkZXNjZW5kYW50cygpOiBMYXllckJhc2VbXTtcblxuICBhYnN0cmFjdCBhZGRDaGlsZChsYXllcjogTGF5ZXJCYXNlKTogdm9pZDtcbiAgYWJzdHJhY3QgcmVtb3ZlQ2hpbGQobGF5ZXI6IExheWVyQmFzZSk6IHZvaWQ7XG4gIGFic3RyYWN0IGlzRGVzY2VuZGFudChsYXllcjogTGF5ZXJCYXNlKTogYm9vbGVhbjtcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXItZ3JvdXAuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbGF5ZXIvc2hhcmVkL2xheWVycy9sYXllci1ncm91cC5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFueUxheWVyT3B0aW9ucyB9IGZyb20gJy4vYW55LWxheWVyLmludGVyZmFjZSc7XG5pbXBvcnQgdHlwZSB7IExheWVyT3B0aW9uc0Jhc2UgfSBmcm9tICcuL2xheWVyLmludGVyZmFjZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGF5ZXJHcm91cE9wdGlvbnMgZXh0ZW5kcyBPbWl0PExheWVyT3B0aW9uc0Jhc2UsICd0aXRsZSc+IHtcbiAgdHlwZTogJ2dyb3VwJztcbiAgdGl0bGU6IHN0cmluZztcbiAgZXhwYW5kZWQ/OiBib29sZWFuO1xuICBjaGlsZHJlbj86IEFueUxheWVyT3B0aW9uc1tdO1xufVxuIl19
@@ -0,0 +1,120 @@
1
+ import { uuid } from '@igo2/utils';
2
+ import { Group } from 'ol/layer.js';
3
+ import { BehaviorSubject, combineLatest } from 'rxjs';
4
+ import { LayerGroupBase } from './layer-base';
5
+ const ID_PREFIX = 'local-group_';
6
+ export class LayerGroup extends LayerGroupBase {
7
+ children;
8
+ options;
9
+ parent;
10
+ expanded;
11
+ isInResolutionsRange$$;
12
+ isInResolutionsRange$ = new BehaviorSubject(true);
13
+ get saveableOptions() {
14
+ return {
15
+ ...super.saveableOptions,
16
+ id: String(this.options.id).includes(ID_PREFIX) ? null : this.options.id,
17
+ type: this.options.type,
18
+ children: [...this.children]
19
+ .map((layer) => layer.saveableOptions)
20
+ .filter(Boolean),
21
+ expanded: this.expanded
22
+ };
23
+ }
24
+ get descendants() {
25
+ return this._getDescendants();
26
+ }
27
+ get descendantsLevel() {
28
+ return this._getDescendantsLevel();
29
+ }
30
+ constructor(children, options) {
31
+ super(options);
32
+ this.children = children;
33
+ this.options = options;
34
+ this.children = children ?? [];
35
+ this.expanded = options.expanded === undefined ? false : options.expanded;
36
+ if (!options.id) {
37
+ options.id = ID_PREFIX + uuid();
38
+ }
39
+ this.ol = this.createOlLayer();
40
+ super.afterCreated();
41
+ }
42
+ init(map) {
43
+ super.init(map);
44
+ this.children.forEach((child) => child.init(map));
45
+ }
46
+ add(parent) {
47
+ super.add(parent);
48
+ this.setChildrenObserver();
49
+ this.children.forEach((layer) => {
50
+ layer.add(this);
51
+ });
52
+ }
53
+ addChild(...layers) {
54
+ this.ol.getLayers().extend(layers.map((layer) => layer.ol));
55
+ layers.forEach((layer) => {
56
+ if (this.hasChildren(layer)) {
57
+ return;
58
+ }
59
+ layer.addParent(this);
60
+ this.children.push(layer);
61
+ });
62
+ this.setChildrenObserver();
63
+ }
64
+ remove() {
65
+ super.remove();
66
+ this.children.forEach((layer) => layer.remove());
67
+ }
68
+ removeChild(layer) {
69
+ this.ol.getLayers().remove(layer.ol);
70
+ const index = this.children.indexOf(layer);
71
+ if (index >= 0) {
72
+ this.children.splice(index, 1);
73
+ }
74
+ layer.parent = null;
75
+ layer.options.parentId = null;
76
+ this.setChildrenObserver();
77
+ }
78
+ isDescendant(layer) {
79
+ return this._getDescendants().some((descendant) => descendant.id === layer.id);
80
+ }
81
+ setChildrenObserver() {
82
+ this.isInResolutionsRange$$?.unsubscribe();
83
+ if (!this.children) {
84
+ return;
85
+ }
86
+ const observers = this.children.map((layer) => layer.isInResolutionsRange$);
87
+ this.isInResolutionsRange$$ = combineLatest(observers).subscribe((values) => {
88
+ this.isInResolutionsRange = values.some((value) => value);
89
+ });
90
+ }
91
+ createOlLayer() {
92
+ return new Group({ properties: { title: this.title } });
93
+ }
94
+ hasChildren(layer) {
95
+ return this.children.some((child) => child.id === layer.id);
96
+ }
97
+ /** recursive */
98
+ _getDescendants(children = this.children) {
99
+ return children.reduce((list, child) => {
100
+ if (child instanceof LayerGroup) {
101
+ return list.concat(child, ...this._getDescendants(child.children));
102
+ }
103
+ else {
104
+ return list.concat(child);
105
+ }
106
+ }, []);
107
+ }
108
+ /** recursive */
109
+ _getDescendantsLevel(children = this.children) {
110
+ return children.reduce((level, child) => {
111
+ if (child instanceof LayerGroup) {
112
+ level = level + 1;
113
+ const descendantLevel = this._getDescendantsLevel(child.children);
114
+ return level + descendantLevel;
115
+ }
116
+ return level;
117
+ }, 0);
118
+ }
119
+ }
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXItZ3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9sYXllci9zaGFyZWQvbGF5ZXJzL2xheWVyLWdyb3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbkMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVwQyxPQUFPLEVBQUUsZUFBZSxFQUFnQixhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUc5QyxNQUFNLFNBQVMsR0FBRyxjQUFjLENBQUM7QUFFakMsTUFBTSxPQUFPLFVBQVcsU0FBUSxjQUFjO0lBNEJuQztJQUNBO0lBNUJULE1BQU0sQ0FBYTtJQUVuQixRQUFRLENBQVU7SUFDVixzQkFBc0IsQ0FBZTtJQUNwQyxxQkFBcUIsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUUzRCxJQUFJLGVBQWU7UUFDakIsT0FBTztZQUNMLEdBQUcsS0FBSyxDQUFDLGVBQWU7WUFDeEIsRUFBRSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDeEUsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSTtZQUN2QixRQUFRLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7aUJBQ3pCLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQztpQkFDckMsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUNsQixRQUFRLEVBQUUsSUFB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USxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELGdCQUFnQjtJQUNSLGVBQWUsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVE7UUFDOUMsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ3JDLElBQUksS0FBSyxZQUFZLFVBQVUsRUFBRSxDQUFDO2dCQUNoQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNyRSxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVCLENBQUM7UUFDSCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDVCxDQUFDO0lBRUQsZ0JBQWdCO0lBQ1Isb0JBQW9CLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRO1FBQ25ELE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUN0QyxJQUFJLEtBQUssWUFBWSxVQUFVLEVBQUUsQ0FBQztnQkFDaEMsS0FBSyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUM7Z0JBQ2xCLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ2xFLE9BQU8sS0FBSyxHQUFHLGVBQWUsQ0FBQztZQUNqQyxDQUFDO1lBRUQsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1dWlkIH0gZnJvbSAnQGlnbzIvdXRpbHMnO1xuXG5pbXBvcnQgeyBHcm91cCB9IGZyb20gJ29sL2xheWVyLmpzJztcblxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHR5cGUgeyBNYXBCYXNlIH0gZnJvbSAnLi4vLi4vLi4vbWFwL3NoYXJlZC9tYXAuYWJzdHJhY3QnO1xuaW1wb3J0IHsgdHlwZSBBbnlMYXllciB9IGZyb20gJy4vYW55LWxheWVyJztcbmltcG9ydCB7IExheWVyR3JvdXBCYXNlIH0gZnJvbSAnLi9sYXllci1iYXNlJztcbmltcG9ydCB7IHR5cGUgTGF5ZXJHcm91cE9wdGlvbnMgfSBmcm9tICcuL2xheWVyLWdyb3VwLmludGVyZmFjZSc7XG5cbmNvbnN0IElEX1BSRUZJWCA9ICdsb2NhbC1ncm91cF8nO1xuXG5leHBvcnQgY2xhc3MgTGF5ZXJHcm91cCBleHRlbmRzIExheWVyR3JvdXBCYXNlIHtcbiAgcGFyZW50OiBMYXllckdyb3VwO1xuICBkZWNsYXJlIG9sOiBHcm91cDtcbiAgZXhwYW5kZWQ6IGJvb2xlYW47XG4gIHByaXZhdGUgaXNJblJlc29sdXRpb25zUmFuZ2UkJDogU3Vic2NyaXB0aW9uO1xuICByZWFkb25seSBpc0luUmVzb2x1dGlvbnNSYW5nZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRydWUpO1xuXG4gIGdldCBzYXZlYWJsZU9wdGlvbnMoKTogUGFydGlhbDxMYXllckdyb3VwT3B0aW9ucz4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdXBlci5zYXZlYWJsZU9wdGlvbnMsXG4gICAgICBpZDogU3RyaW5nKHRoaXMub3B0aW9ucy5pZCkuaW5jbHVkZXMoSURfUFJFRklYKSA/IG51bGwgOiB0aGlzLm9wdGlvbnMuaWQsXG4gICAgICB0eXBlOiB0aGlzLm9wdGlvbnMudHlwZSxcbiAgICAgIGNoaWxkcmVuOiBbLi4udGhpcy5jaGlsZHJlbl1cbiAgICAgICAgLm1hcCgobGF5ZXIpID0+IGxheWVyLnNhdmVhYmxlT3B0aW9ucylcbiAgICAgICAgLmZpbHRlcihCb29sZWFuKSxcbiAgICAgIGV4cGFuZGVkOiB0aGlzLmV4cGFuZGVkXG4gICAgfTtcbiAgfVxuXG4gIGdldCBkZXNjZW5kYW50cygpOiBBbnlMYXllcltdIHtcbiAgICByZXR1cm4gdGhpcy5fZ2V0RGVzY2VuZGFudHMoKTtcbiAgfVxuXG4gIGdldCBkZXNjZW5kYW50c0xldmVsKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2dldERlc2NlbmRhbnRzTGV2ZWwoKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBjaGlsZHJlbjogQW55TGF5ZXJbXSB8IG51bGwsXG4gICAgcHVibGljIG9wdGlvbnM6IExheWVyR3JvdXBPcHRpb25zXG4gICkge1xuICAgIHN1cGVyKG9wdGlvbnMpO1xuXG4gICAgdGhpcy5jaGlsZHJlbiA9IGNoaWxkcmVuID8/IFtdO1xuXG4gICAgdGhpcy5leHBhbmRlZCA9IG9wdGlvbnMuZXhwYW5kZWQgPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogb3B0aW9ucy5leHBhbmRlZDtcblxuICAgIGlmICghb3B0aW9ucy5pZCkge1xuICAgICAgb3B0aW9ucy5pZCA9IElEX1BSRUZJWCArIHV1aWQoKTtcbiAgICB9XG5cbiAgICB0aGlzLm9sID0gdGhpcy5jcmVhdGVPbExheWVyKCk7XG5cbiAgICBzdXBlci5hZnRlckNyZWF0ZWQoKTtcbiAgfVxuXG4gIGluaXQobWFwOiBNYXBCYXNlKTogdm9pZCB7XG4gICAgc3VwZXIuaW5pdChtYXApO1xuICAgIHRoaXMuY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGQpID0+IGNoaWxkLmluaXQobWFwKSk7XG4gIH1cblxuICBhZGQocGFyZW50PzogTGF5ZXJHcm91cEJhc2UpOiB2b2lkIHtcbiAgICBzdXBlci5hZGQocGFyZW50KTtcblxuICAgIHRoaXMuc2V0Q2hpbGRyZW5PYnNlcnZlcigpO1xuXG4gICAgdGhpcy5jaGlsZHJlbi5mb3JFYWNoKChsYXllcikgPT4ge1xuICAgICAgbGF5ZXIuYWRkKHRoaXMpO1xuICAgIH0pO1xuICB9XG5cbiAgYWRkQ2hpbGQoLi4ubGF5ZXJzOiBBbnlMYXllcltdKTogdm9pZCB7XG4gICAgdGhpcy5vbC5nZXRMYXllcnMoKS5leHRlbmQobGF5ZXJzLm1hcCgobGF5ZXIpID0+IGxheWVyLm9sKSk7XG5cbiAgICBsYXllcnMuZm9yRWFjaCgobGF5ZXIpID0+IHtcbiAgICAgIGlmICh0aGlzLmhhc0NoaWxkcmVuKGxheWVyKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBsYXllci5hZGRQYXJlbnQodGhpcyk7XG4gICAgICB0aGlzLmNoaWxkcmVuLnB1c2gobGF5ZXIpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5zZXRDaGlsZHJlbk9ic2VydmVyKCk7XG4gIH1cblxuICByZW1vdmUoKTogdm9pZCB7XG4gICAgc3VwZXIucmVtb3ZlKCk7XG4gICAgdGhpcy5jaGlsZHJlbi5mb3JFYWNoKChsYXllcikgPT4gbGF5ZXIucmVtb3ZlKCkpO1xuICB9XG5cbiAgcmVtb3ZlQ2hpbGQobGF5ZXI6IEFueUxheWVyKTogdm9pZCB7XG4gICAgdGhpcy5vbC5nZXRMYXllcnMoKS5yZW1vdmUobGF5ZXIub2wpO1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5jaGlsZHJlbi5pbmRleE9mKGxheWVyKTtcbiAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgdGhpcy5jaGlsZHJlbi5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIH1cbiAgICBsYXllci5wYXJlbnQgPSBudWxsO1xuICAgIGxheWVyLm9wdGlvbnMucGFyZW50SWQgPSBudWxsO1xuXG4gICAgdGhpcy5zZXRDaGlsZHJlbk9ic2VydmVyKCk7XG4gIH1cblxuICBpc0Rlc2NlbmRhbnQobGF5ZXI6IEFueUxheWVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2dldERlc2NlbmRhbnRzKCkuc29tZShcbiAgICAgIChkZXNjZW5kYW50KSA9PiBkZXNjZW5kYW50LmlkID09PSBsYXllci5pZFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHNldENoaWxkcmVuT2JzZXJ2ZXIoKTogdm9pZCB7XG4gICAgdGhpcy5pc0luUmVzb2x1dGlvbnNSYW5nZSQkPy51bnN1YnNjcmliZSgpO1xuXG4gICAgaWYgKCF0aGlzLmNoaWxkcmVuKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgb2JzZXJ2ZXJzID0gdGhpcy5jaGlsZHJlbi5tYXAoKGxheWVyKSA9PiBsYXllci5pc0luUmVzb2x1dGlvbnNSYW5nZSQpO1xuICAgIHRoaXMuaXNJblJlc29sdXRpb25zUmFuZ2UkJCA9IGNvbWJpbmVMYXRlc3Qob2JzZXJ2ZXJzKS5zdWJzY3JpYmUoXG4gICAgICAodmFsdWVzKSA9PiB7XG4gICAgICAgIHRoaXMuaXNJblJlc29sdXRpb25zUmFuZ2UgPSB2YWx1ZXMuc29tZSgodmFsdWUpID0+IHZhbHVlKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZU9sTGF5ZXIoKTogR3JvdXAge1xuICAgIHJldHVybiBuZXcgR3JvdXAoeyBwcm9wZXJ0aWVzOiB7IHRpdGxlOiB0aGlzLnRpdGxlIH0gfSk7XG4gIH1cblxuICBwcml2YXRlIGhhc0NoaWxkcmVuKGxheWVyOiBBbnlMYXllcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNoaWxkcmVuLnNvbWUoKGNoaWxkKSA9PiBjaGlsZC5pZCA9PT0gbGF5ZXIuaWQpO1xuICB9XG5cbiAgLyoqIHJlY3Vyc2l2ZSAqL1xuICBwcml2YXRlIF9nZXREZXNjZW5kYW50cyhjaGlsZHJlbiA9IHRoaXMuY2hpbGRyZW4pOiBBbnlMYXllcltdIHtcbiAgICByZXR1cm4gY2hpbGRyZW4ucmVkdWNlKChsaXN0LCBjaGlsZCkgPT4ge1xuICAgICAgaWYgKGNoaWxkIGluc3RhbmNlb2YgTGF5ZXJHcm91cCkge1xuICAgICAgICByZXR1cm4gbGlzdC5jb25jYXQoY2hpbGQsIC4uLnRoaXMuX2dldERlc2NlbmRhbnRzKGNoaWxkLmNoaWxkcmVuKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbGlzdC5jb25jYXQoY2hpbGQpO1xuICAgICAgfVxuICAgIH0sIFtdKTtcbiAgfVxuXG4gIC8qKiByZWN1cnNpdmUgKi9cbiAgcHJpdmF0ZSBfZ2V0RGVzY2VuZGFudHNMZXZlbChjaGlsZHJlbiA9IHRoaXMuY2hpbGRyZW4pOiBudW1iZXIge1xuICAgIHJldHVybiBjaGlsZHJlbi5yZWR1Y2UoKGxldmVsLCBjaGlsZCkgPT4ge1xuICAgICAgaWYgKGNoaWxkIGluc3RhbmNlb2YgTGF5ZXJHcm91cCkge1xuICAgICAgICBsZXZlbCA9IGxldmVsICsgMTtcbiAgICAgICAgY29uc3QgZGVzY2VuZGFudExldmVsID0gdGhpcy5fZ2V0RGVzY2VuZGFudHNMZXZlbChjaGlsZC5jaGlsZHJlbik7XG4gICAgICAgIHJldHVybiBsZXZlbCArIGRlc2NlbmRhbnRMZXZlbDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxldmVsO1xuICAgIH0sIDApO1xuICB9XG59XG4iXX0=
@@ -1,17 +1,7 @@
1
- export var LinkedProperties;
2
- (function (LinkedProperties) {
3
- LinkedProperties["OPACITY"] = "opacity";
4
- LinkedProperties["VISIBLE"] = "visible";
5
- LinkedProperties["OGCFILTERS"] = "ogcFilters";
6
- LinkedProperties["MINRESOLUTION"] = "minResolution";
7
- LinkedProperties["MAXRESOLUTION"] = "maxResolution";
8
- LinkedProperties["ZINDEX"] = "zIndex";
9
- LinkedProperties["TIMEFILTER"] = "timeFilter";
10
- })(LinkedProperties || (LinkedProperties = {}));
11
1
  export var TooltipType;
12
2
  (function (TooltipType) {
13
3
  TooltipType["TITLE"] = "title";
14
4
  TooltipType["ABSTRACT"] = "abstract";
15
5
  TooltipType["CUSTOM"] = "custom";
16
6
  })(TooltipType || (TooltipType = {}));
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXIuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbGF5ZXIvc2hhcmVkL2xheWVycy9sYXllci5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMkVBLE1BQU0sQ0FBTixJQUFZLGdCQVFYO0FBUkQsV0FBWSxnQkFBZ0I7SUFDMUIsdUNBQW1CLENBQUE7SUFDbkIsdUNBQW1CLENBQUE7SUFDbkIsNkNBQXlCLENBQUE7SUFDekIsbURBQStCLENBQUE7SUFDL0IsbURBQStCLENBQUE7SUFDL0IscUNBQWlCLENBQUE7SUFDakIsNkNBQXlCLENBQUE7QUFDM0IsQ0FBQyxFQVJXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFRM0I7QUFZRCxNQUFNLENBQU4sSUFBWSxXQUlYO0FBSkQsV0FBWSxXQUFXO0lBQ3JCLDhCQUFlLENBQUE7SUFDZixvQ0FBcUIsQ0FBQTtJQUNyQixnQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBSlcsV0FBVyxLQUFYLFdBQVcsUUFJdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNZXNzYWdlIH0gZnJvbSAnQGlnbzIvY29yZS9tZXNzYWdlJztcblxuaW1wb3J0IG9sTGF5ZXIgZnJvbSAnb2wvbGF5ZXIvTGF5ZXInO1xuaW1wb3J0IG9sU291cmNlIGZyb20gJ29sL3NvdXJjZS9Tb3VyY2UnO1xuXG5pbXBvcnQgeyBBbnlEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL2FueS1kYXRhc291cmNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvZGF0YXNvdXJjZSc7XG5pbXBvcnQgeyBNYXBFeHRlbnQgfSBmcm9tICcuLi8uLi8uLi9tYXAvc2hhcmVkL21hcC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTGVnZW5kT3B0aW9ucyB9IGZyb20gJy4vbGVnZW5kLmludGVyZmFjZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGF5ZXJPcHRpb25zIHtcbiAgaXNJZ29JbnRlcm5hbExheWVyPzogYm9vbGVhbjsgLy8gdXNlZnVsIHdoZW4gbWFwT2ZmbGluZSBkaXJlY3RpdmUgc2V0IHRoZSByZXNvbHV0aW9uIG9mIHRoZSBsYXllcnMuXG4gIHNvdXJjZT86IERhdGFTb3VyY2U7XG4gIHNvdXJjZU9wdGlvbnM/OiBBbnlEYXRhU291cmNlT3B0aW9ucztcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIGlkPzogc3RyaW5nO1xuICBhbGlhcz86IHN0cmluZztcbiAgc2VjdXJpdHk/OiBMYXllclNlY3VyaXR5T3B0aW9ucztcbiAgYmFzZUxheWVyPzogYm9vbGVhbjtcbiAgb3BhY2l0eT86IG51bWJlcjtcbiAgdmlzaWJsZT86IGJvb2xlYW47XG4gIGV4dGVudD86IE1hcEV4dGVudDtcbiAgekluZGV4PzogbnVtYmVyO1xuICBtZXNzYWdlcz86IE1lc3NhZ2VbXTtcbiAgbWluUmVzb2x1dGlvbj86IG51bWJlcjtcbiAgbWF4UmVzb2x1dGlvbj86IG51bWJlcjtcbiAgbWluU2NhbGVEZW5vbT86IG51bWJlcjtcbiAgbWF4U2NhbGVEZW5vbT86IG51bWJlcjtcbiAgc2hvd0luTGF5ZXJMaXN0PzogYm9vbGVhbjtcbiAgcmVtb3ZhYmxlPzogYm9vbGVhbjtcbiAgd29ya3NwYWNlPzogR2VvV29ya3NwYWNlT3B0aW9ucztcbiAgbGVnZW5kT3B0aW9ucz86IExlZ2VuZE9wdGlvbnM7XG4gIG9sPzogb2xMYXllcjxvbFNvdXJjZT47XG4gIHRvb2x0aXA/OiBUb29sdGlwQ29udGVudDtcbiAgX2ludGVybmFsPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgYWN0aXZlPzogYm9vbGVhbjtcbiAgY2hlY2s/OiBib29sZWFuO1xuICBsaW5rZWRMYXllcnM/OiBMYXllcnNMaW5rO1xuICBzaG93QnV0dG9uWm9vbVRvRXh0ZW50PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMYXllclNlY3VyaXR5T3B0aW9ucyB7XG4gIHByb2ZpbHM/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZW9Xb3Jrc3BhY2VPcHRpb25zIHtcbiAgc3JjSWQ/OiBzdHJpbmc7XG4gIHdvcmtzcGFjZUlkPzogc3RyaW5nO1xuICBtaW5SZXNvbHV0aW9uPzogbnVtYmVyO1xuICBtYXhSZXNvbHV0aW9uPzogbnVtYmVyO1xuICBlbmFibGVkPzogYm9vbGVhbjtcbiAgcXVlcnlPcHRpb25zPzogR2VvV29ya3NwYWNlUXVlcnlPcHRpb25zO1xuICBwYWdlU2l6ZT86IG51bWJlcjtcbiAgcGFnZVNpemVPcHRpb25zPzogbnVtYmVyW107XG4gIHNlYXJjaEluZGV4RW5hYmxlZD86IGJvb2xlYW47XG4gIHByaW50YWJsZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VvV29ya3NwYWNlUXVlcnlPcHRpb25zIHtcbiAgbWFwUXVlcnlPbk9wZW5UYWI/OiBib29sZWFuO1xuICB0YWJRdWVyeT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGF5ZXJzTGluayB7XG4gIGxpbmtJZDogc3RyaW5nO1xuICAvKiogRGVmYXVsdCB2YWx1ZSBpcyB0cnVlICovXG4gIHNob3dJbk1pbmlCYXNlTWFwPzogYm9vbGVhbjtcbiAgbGlua3M/OiBMYXllcnNMaW5rUHJvcGVydGllc1tdO1xufVxuZXhwb3J0IGludGVyZmFjZSBMYXllcnNMaW5rUHJvcGVydGllcyB7XG4gIGxpbmtlZElkczogc3RyaW5nW107XG4gIHN5bmNlZERlbGV0ZTogYm9vbGVhbjtcbiAgcHJvcGVydGllczogTGlua2VkUHJvcGVydGllc1tdO1xufVxuXG5leHBvcnQgZW51bSBMaW5rZWRQcm9wZXJ0aWVzIHtcbiAgT1BBQ0lUWSA9ICdvcGFjaXR5JyxcbiAgVklTSUJMRSA9ICd2aXNpYmxlJyxcbiAgT0dDRklMVEVSUyA9ICdvZ2NGaWx0ZXJzJyxcbiAgTUlOUkVTT0xVVElPTiA9ICdtaW5SZXNvbHV0aW9uJyxcbiAgTUFYUkVTT0xVVElPTiA9ICdtYXhSZXNvbHV0aW9uJyxcbiAgWklOREVYID0gJ3pJbmRleCcsXG4gIFRJTUVGSUxURVIgPSAndGltZUZpbHRlcidcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHcm91cExheWVycyB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGxheWVycz86IExheWVyT3B0aW9ucztcbiAgY29sbGFwc2VkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUb29sdGlwQ29udGVudCB7XG4gIHR5cGU/OiBUb29sdGlwVHlwZTtcbiAgdGV4dD86IHN0cmluZztcbn1cbmV4cG9ydCBlbnVtIFRvb2x0aXBUeXBlIHtcbiAgVElUTEUgPSAndGl0bGUnLFxuICBBQlNUUkFDVCA9ICdhYnN0cmFjdCcsXG4gIENVU1RPTSA9ICdjdXN0b20nXG59XG4iXX0=
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXIuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbGF5ZXIvc2hhcmVkL2xheWVycy9sYXllci5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNkVBLE1BQU0sQ0FBTixJQUFZLFdBSVg7QUFKRCxXQUFZLFdBQVc7SUFDckIsOEJBQWUsQ0FBQTtJQUNmLG9DQUFxQixDQUFBO0lBQ3JCLGdDQUFpQixDQUFBO0FBQ25CLENBQUMsRUFKVyxXQUFXLEtBQVgsV0FBVyxRQUl0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1lc3NhZ2UgfSBmcm9tICdAaWdvMi9jb3JlL21lc3NhZ2UnO1xuXG5pbXBvcnQgb2xMYXllciBmcm9tICdvbC9sYXllci9MYXllcic7XG5pbXBvcnQgb2xTb3VyY2UgZnJvbSAnb2wvc291cmNlL1NvdXJjZSc7XG5cbmltcG9ydCB0eXBlIHtcbiAgQW55RGF0YVNvdXJjZU9wdGlvbnMsXG4gIERhdGFTb3VyY2Vcbn0gZnJvbSAnLi4vLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMnO1xuaW1wb3J0IHR5cGUgeyBNYXBFeHRlbnQgfSBmcm9tICcuLi8uLi8uLi9tYXAvc2hhcmVkL21hcC5pbnRlcmZhY2UnO1xuaW1wb3J0IHR5cGUgeyBMZWdlbmRPcHRpb25zIH0gZnJvbSAnLi9sZWdlbmQuaW50ZXJmYWNlJztcbmltcG9ydCB0eXBlIHsgTGF5ZXJzTGluayB9IGZyb20gJy4vbGlua2VkL2xpbmtlZC1sYXllci5pbnRlcmZhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIExheWVyT3B0aW9ucyBleHRlbmRzIExheWVyT3B0aW9uc0Jhc2Uge1xuICBpc0lnb0ludGVybmFsTGF5ZXI/OiBib29sZWFuOyAvLyB1c2VmdWwgd2hlbiBtYXBPZmZsaW5lIGRpcmVjdGl2ZSBzZXQgdGhlIHJlc29sdXRpb24gb2YgdGhlIGxheWVycy5cbiAgc291cmNlPzogRGF0YVNvdXJjZTtcbiAgc291cmNlT3B0aW9ucz86IEFueURhdGFTb3VyY2VPcHRpb25zO1xuICBhbGlhcz86IHN0cmluZztcbiAgc2VjdXJpdHk/OiBMYXllclNlY3VyaXR5T3B0aW9ucztcbiAgYmFzZUxheWVyPzogYm9vbGVhbjtcbiAgbWVzc2FnZXM/OiBNZXNzYWdlW107XG4gIG1pblNjYWxlRGVub20/OiBudW1iZXI7XG4gIG1heFNjYWxlRGVub20/OiBudW1iZXI7XG4gIHJlbW92YWJsZT86IGJvb2xlYW47XG4gIHdvcmtzcGFjZT86IEdlb1dvcmtzcGFjZU9wdGlvbnM7XG4gIGxlZ2VuZE9wdGlvbnM/OiBMZWdlbmRPcHRpb25zO1xuICBvbD86IG9sTGF5ZXI8b2xTb3VyY2U+O1xuICB0b29sdGlwPzogVG9vbHRpcENvbnRlbnQ7XG4gIF9pbnRlcm5hbD86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIGxpbmtlZExheWVycz86IExheWVyc0xpbms7XG4gIHNob3dCdXR0b25ab29tVG9FeHRlbnQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExheWVyT3B0aW9uc0Jhc2Uge1xuICBpZD86IHN0cmluZyB8IG51bWJlcjtcbiAgLyoqXG4gICAqIEFuIHVuaXF1ZSBpZGVudGlmaWVyIGNhbGN1bGF0ZWQgY2xpZW50IHNpZGVcbiAgICogVGhlIG5hbWUgcHJvcCBwcm92aWRlIGEgd2F5IHRvIGhhdmUgYSB1bmlxdWUgaWRlbnRpZmllciBiZXR3ZWVuIGFsbCBsYXllcnNcbiAgICoqL1xuICBuYW1lPzogc3RyaW5nO1xuICB0aXRsZT86IHN0cmluZztcbiAgb3BhY2l0eT86IG51bWJlcjtcbiAgdmlzaWJsZT86IGJvb2xlYW47XG4gIGV4dGVudD86IE1hcEV4dGVudDtcbiAgekluZGV4PzogbnVtYmVyO1xuICBtaW5SZXNvbHV0aW9uPzogbnVtYmVyO1xuICBtYXhSZXNvbHV0aW9uPzogbnVtYmVyO1xuICBzaG93SW5MYXllckxpc3Q/OiBib29sZWFuO1xuICBwYXJlbnRJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMYXllclNlY3VyaXR5T3B0aW9ucyB7XG4gIHByb2ZpbHM/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZW9Xb3Jrc3BhY2VPcHRpb25zIHtcbiAgc3JjSWQ/OiBzdHJpbmc7XG4gIHdvcmtzcGFjZUlkPzogc3RyaW5nO1xuICBtaW5SZXNvbHV0aW9uPzogbnVtYmVyO1xuICBtYXhSZXNvbHV0aW9uPzogbnVtYmVyO1xuICBlbmFibGVkPzogYm9vbGVhbjtcbiAgcXVlcnlPcHRpb25zPzogR2VvV29ya3NwYWNlUXVlcnlPcHRpb25zO1xuICBwYWdlU2l6ZT86IG51bWJlcjtcbiAgcGFnZVNpemVPcHRpb25zPzogbnVtYmVyW107XG4gIHNlYXJjaEluZGV4RW5hYmxlZD86IGJvb2xlYW47XG4gIHByaW50YWJsZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VvV29ya3NwYWNlUXVlcnlPcHRpb25zIHtcbiAgbWFwUXVlcnlPbk9wZW5UYWI/OiBib29sZWFuO1xuICB0YWJRdWVyeT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9vbHRpcENvbnRlbnQge1xuICB0eXBlPzogVG9vbHRpcFR5cGU7XG4gIHRleHQ/OiBzdHJpbmc7XG59XG5leHBvcnQgZW51bSBUb29sdGlwVHlwZSB7XG4gIFRJVExFID0gJ3RpdGxlJyxcbiAgQUJTVFJBQ1QgPSAnYWJzdHJhY3QnLFxuICBDVVNUT00gPSAnY3VzdG9tJ1xufVxuZXhwb3J0IHR5cGUgTGF5ZXJUeXBlID0gJ3ZlY3RvcicgfCAncmFzdGVyJyB8ICdncm91cCc7XG4iXX0=