@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
@@ -1,62 +1,44 @@
1
1
  import { AuthInterceptor } from '@igo2/auth';
2
2
  import { MessageService } from '@igo2/core/message';
3
- import { SubjectStatus } from '@igo2/utils';
4
- import olLayer from 'ol/layer/Layer';
5
- import olSource from 'ol/source/Source';
6
- import { BehaviorSubject, Observable, Subject } from 'rxjs';
7
- import { DataSource } from '../../../datasource/shared/datasources/datasource';
8
- import { Legend } from '../../../datasource/shared/datasources/datasource.interface';
3
+ import OlLayer from 'ol/layer/Layer';
4
+ import { Source } from 'ol/source';
5
+ import { BehaviorSubject } from 'rxjs';
6
+ import { DataSource, Legend } from '../../../datasource/shared/datasources';
9
7
  import type { MapBase } from '../../../map/shared/map.abstract';
10
- import { LayerOptions } from './layer.interface';
11
- export declare abstract class Layer {
8
+ import { LayerBase, LayerGroupBase } from './layer-base';
9
+ import { type LayerGroup } from './layer-group';
10
+ import { type LayerOptions } from './layer.interface';
11
+ import { Linked } from './linked/linked-layer';
12
+ export declare abstract class Layer extends LayerBase {
12
13
  options: LayerOptions;
13
14
  protected messageService?: MessageService;
14
15
  protected authInterceptor?: AuthInterceptor;
15
- collapsed: boolean;
16
16
  dataSource: DataSource;
17
+ parent: LayerGroup;
18
+ ol: OlLayer<Source>;
19
+ hasBeenVisible$: BehaviorSubject<boolean>;
17
20
  legend: Legend[];
18
21
  legendCollapsed: boolean;
19
- firstLoadComponent: boolean;
20
- map: MapBase;
21
- ol: olLayer<olSource>;
22
- olLoadingProblem: boolean;
23
- status$: Subject<SubjectStatus>;
24
- hasBeenVisible$: BehaviorSubject<boolean>;
25
- private hasBeenVisible$$;
22
+ link?: Linked;
23
+ linkMaster?: Linked;
26
24
  private resolution$$;
27
- /**
28
- * Define if a layer is generated by code OR defined by layer/context user layer.
29
- * Useful for filtering layers list in mapOffline.directive or in the sharemap...
30
- * return false by default.
31
- */
32
- get isIgoInternalLayer(): boolean;
33
25
  get id(): string;
34
- get alias(): string;
35
- get title(): string;
36
- set title(title: string);
37
- get zIndex(): number;
38
- set zIndex(zIndex: number);
39
- get baseLayer(): boolean;
40
- set baseLayer(baseLayer: boolean);
41
- get opacity(): number;
42
- set opacity(opacity: number);
43
- set isInResolutionsRange(value: boolean);
44
- get isInResolutionsRange(): boolean;
45
- readonly isInResolutionsRange$: BehaviorSubject<boolean>;
46
- set maxResolution(value: number);
26
+ get visible(): boolean;
27
+ set visible(value: boolean);
47
28
  get maxResolution(): number;
48
- set minResolution(value: number);
29
+ set maxResolution(value: number);
49
30
  get minResolution(): number;
50
- set visible(value: boolean);
51
- get visible(): boolean;
52
- readonly visible$: BehaviorSubject<boolean>;
53
- get displayed(): boolean;
54
- readonly displayed$: Observable<boolean>;
55
- get showInLayerList(): boolean;
56
- get saveableOptions(): Partial<LayerOptions>;
31
+ set minResolution(value: number);
32
+ get saveableOptions(): Partial<LayerOptions> | undefined;
57
33
  constructor(options: LayerOptions, messageService?: MessageService, authInterceptor?: AuthInterceptor);
58
- protected abstract createOlLayer(): olLayer<olSource>;
59
- setMap(map: MapBase | undefined): void;
34
+ protected abstract createOlLayer(): OlLayer<Source>;
35
+ init(map: MapBase): void;
36
+ createLink(): void;
37
+ remove(): void;
38
+ add(parent?: LayerGroupBase): void;
39
+ moveTo(parent?: LayerGroup): void;
40
+ private createLinkWithParent;
41
+ private findParentByLinkId;
60
42
  private showMessage;
61
43
  private observeResolution;
62
44
  private unobserveResolution;
@@ -1,40 +1,46 @@
1
1
  import { Message } from '@igo2/core/message';
2
2
  import olLayer from 'ol/layer/Layer';
3
3
  import olSource from 'ol/source/Source';
4
- import { AnyDataSourceOptions } from '../../../datasource/shared/datasources/any-datasource.interface';
5
- import { DataSource } from '../../../datasource/shared/datasources/datasource';
6
- import { MapExtent } from '../../../map/shared/map.interface';
7
- import { LegendOptions } from './legend.interface';
8
- export interface LayerOptions {
4
+ import type { AnyDataSourceOptions, DataSource } from '../../../datasource/shared/datasources';
5
+ import type { MapExtent } from '../../../map/shared/map.interface';
6
+ import type { LegendOptions } from './legend.interface';
7
+ import type { LayersLink } from './linked/linked-layer.interface';
8
+ export interface LayerOptions extends LayerOptionsBase {
9
9
  isIgoInternalLayer?: boolean;
10
10
  source?: DataSource;
11
11
  sourceOptions?: AnyDataSourceOptions;
12
- title?: string;
13
- id?: string;
14
12
  alias?: string;
15
13
  security?: LayerSecurityOptions;
16
14
  baseLayer?: boolean;
17
- opacity?: number;
18
- visible?: boolean;
19
- extent?: MapExtent;
20
- zIndex?: number;
21
15
  messages?: Message[];
22
- minResolution?: number;
23
- maxResolution?: number;
24
16
  minScaleDenom?: number;
25
17
  maxScaleDenom?: number;
26
- showInLayerList?: boolean;
27
18
  removable?: boolean;
28
19
  workspace?: GeoWorkspaceOptions;
29
20
  legendOptions?: LegendOptions;
30
21
  ol?: olLayer<olSource>;
31
22
  tooltip?: TooltipContent;
32
23
  _internal?: Record<string, string>;
33
- active?: boolean;
34
- check?: boolean;
35
24
  linkedLayers?: LayersLink;
36
25
  showButtonZoomToExtent?: boolean;
37
26
  }
27
+ export interface LayerOptionsBase {
28
+ id?: string | number;
29
+ /**
30
+ * An unique identifier calculated client side
31
+ * The name prop provide a way to have a unique identifier between all layers
32
+ **/
33
+ name?: string;
34
+ title?: string;
35
+ opacity?: number;
36
+ visible?: boolean;
37
+ extent?: MapExtent;
38
+ zIndex?: number;
39
+ minResolution?: number;
40
+ maxResolution?: number;
41
+ showInLayerList?: boolean;
42
+ parentId?: string;
43
+ }
38
44
  export interface LayerSecurityOptions {
39
45
  profils?: string[];
40
46
  }
@@ -54,31 +60,6 @@ export interface GeoWorkspaceQueryOptions {
54
60
  mapQueryOnOpenTab?: boolean;
55
61
  tabQuery?: boolean;
56
62
  }
57
- export interface LayersLink {
58
- linkId: string;
59
- /** Default value is true */
60
- showInMiniBaseMap?: boolean;
61
- links?: LayersLinkProperties[];
62
- }
63
- export interface LayersLinkProperties {
64
- linkedIds: string[];
65
- syncedDelete: boolean;
66
- properties: LinkedProperties[];
67
- }
68
- export declare enum LinkedProperties {
69
- OPACITY = "opacity",
70
- VISIBLE = "visible",
71
- OGCFILTERS = "ogcFilters",
72
- MINRESOLUTION = "minResolution",
73
- MAXRESOLUTION = "maxResolution",
74
- ZINDEX = "zIndex",
75
- TIMEFILTER = "timeFilter"
76
- }
77
- export interface GroupLayers {
78
- title: string;
79
- layers?: LayerOptions;
80
- collapsed?: boolean;
81
- }
82
63
  export interface TooltipContent {
83
64
  type?: TooltipType;
84
65
  text?: string;
@@ -88,3 +69,4 @@ export declare enum TooltipType {
88
69
  ABSTRACT = "abstract",
89
70
  CUSTOM = "custom"
90
71
  }
72
+ export type LayerType = 'vector' | 'raster' | 'group';
@@ -0,0 +1,3 @@
1
+ export * from './linked-layer';
2
+ export * from './linked-layer.interface';
3
+ export * from './linked-layer.utils';
@@ -0,0 +1,35 @@
1
+ import type { LayerController } from '../../layer-controller';
2
+ import type { Layer } from '../layer';
3
+ import type { LayerGroup } from '../layer-group';
4
+ import { LayersLinkProperties } from './linked-layer.interface';
5
+ export declare class Linked {
6
+ layer: Layer;
7
+ private children;
8
+ private watcher;
9
+ private bidirectionnalChildren;
10
+ private childrenByProperty;
11
+ private disabledProperties;
12
+ constructor(layer: Layer);
13
+ get options(): import("@igo2/geo").LayerOptions;
14
+ get links(): LayersLinkProperties[];
15
+ get map(): import("@igo2/geo").MapBase;
16
+ init(): void;
17
+ private initZIndexLinkOptions;
18
+ destroy(): void;
19
+ add(layer: Layer): void;
20
+ hasSyncDeletion(layer: Layer): boolean;
21
+ remove(layer: Layer): void;
22
+ deleteChildren(controller: LayerController): void;
23
+ move(layer: Layer, parent?: LayerGroup): void;
24
+ private disable;
25
+ private enable;
26
+ private getByProperty;
27
+ private propertyIsDisabled;
28
+ private getLayerLinks;
29
+ private removeArrayItem;
30
+ private getLinkedLayersOnZindex;
31
+ private unwatch;
32
+ private handleChange;
33
+ private handleDisplayChange;
34
+ private findChildren;
35
+ }
@@ -0,0 +1,32 @@
1
+ import type { AnyLayer } from '../any-layer';
2
+ import type { Layer } from '../layer';
3
+ export type AnyPropertyOptions = ZindexPropertyOptions | BasePropertyOptions;
4
+ export interface ZindexPropertyOptions extends BasePropertyOptions {
5
+ initialOrder: AnyLayer[];
6
+ }
7
+ interface BasePropertyOptions {
8
+ layers: Layer[];
9
+ }
10
+ export interface LayersLink {
11
+ linkId: string;
12
+ /** Default value is true */
13
+ showInMiniBaseMap?: boolean;
14
+ links?: LayersLinkProperties[];
15
+ }
16
+ export interface LayersLinkProperties {
17
+ bidirectionnal?: boolean;
18
+ linkedIds: string[];
19
+ syncedDelete: boolean;
20
+ properties: LinkedProperties[];
21
+ }
22
+ export declare enum LinkedProperties {
23
+ OPACITY = "opacity",
24
+ VISIBLE = "visible",
25
+ DISPLAYED = "displayed",
26
+ OGCFILTERS = "ogcFilters",
27
+ MINRESOLUTION = "minResolution",
28
+ MAXRESOLUTION = "maxResolution",
29
+ ZINDEX = "zIndex",
30
+ TIMEFILTER = "timeFilter"
31
+ }
32
+ export {};
@@ -0,0 +1,9 @@
1
+ import type { AnyLayer } from '../any-layer';
2
+ import type { AnyLayerItemOptions, AnyLayerOptions } from '../any-layer.interface';
3
+ import type { Layer } from '../layer';
4
+ import type { LinkedProperties } from './linked-layer.interface';
5
+ export declare function isLayerLinked(layer: AnyLayer): layer is Layer;
6
+ export declare function isLinkMaster(layer: Layer): boolean;
7
+ export declare function isLayerLinkedTogether(layerA: AnyLayer, layerB: AnyLayer, layers: AnyLayer[], property?: LinkedProperties): boolean;
8
+ export declare function isLayerLinkedOptions(options: AnyLayerOptions): options is AnyLayerItemOptions;
9
+ export declare function isBaseLayerLinked(layer: AnyLayer, allLayers: AnyLayer[]): layer is Layer;
@@ -8,12 +8,14 @@ import { TileArcGISRestDataSource } from '../../../datasource/shared/datasources
8
8
  import { TileDebugDataSource } from '../../../datasource/shared/datasources/tiledebug-datasource';
9
9
  import { WMTSDataSource } from '../../../datasource/shared/datasources/wmts-datasource';
10
10
  import { XYZDataSource } from '../../../datasource/shared/datasources/xyz-datasource';
11
- import type { IgoMap } from '../../../map/shared/map';
11
+ import type { MapBase } from '../../../map/shared/map.abstract';
12
12
  import { Layer } from './layer';
13
+ import { LayerType } from './layer.interface';
13
14
  import { TileLayerOptions } from './tile-layer.interface';
14
15
  export declare class TileLayer extends Layer {
15
16
  messageService?: MessageService;
16
17
  authInterceptor?: AuthInterceptor;
18
+ type: LayerType;
17
19
  dataSource: OSMDataSource | WMTSDataSource | XYZDataSource | TileDebugDataSource | CartoDataSource | TileArcGISRestDataSource;
18
20
  options: TileLayerOptions;
19
21
  ol: olLayerTile<olSourceTile>;
@@ -27,5 +29,6 @@ export declare class TileLayer extends Layer {
27
29
  * @param url the url string or function to retrieve the data
28
30
  */
29
31
  customLoader(tile: any, url: string, interceptor: AuthInterceptor): void;
30
- setMap(map: IgoMap | undefined): void;
32
+ init(map: MapBase | undefined): void;
33
+ remove(): void;
31
34
  }
@@ -11,11 +11,13 @@ import { FeatureDataSource } from '../../../datasource/shared/datasources/featur
11
11
  import { WebSocketDataSource } from '../../../datasource/shared/datasources/websocket-datasource';
12
12
  import { WFSDataSource } from '../../../datasource/shared/datasources/wfs-datasource';
13
13
  import { WFSDataSourceOptions } from '../../../datasource/shared/datasources/wfs-datasource.interface';
14
- import type { IgoMap, MapExtent } from '../../../map/shared';
14
+ import type { MapBase } from '../../../map/shared/map.abstract';
15
+ import { MapExtent } from '../../../map/shared/map.interface';
15
16
  import { GeoDBService } from '../../../offline/geoDB/geoDB.service';
16
17
  import { LayerDBService } from '../../../offline/layerDB/layerDB.service';
17
18
  import { GeoNetworkService } from '../../../offline/shared/geo-network.service';
18
19
  import { Layer } from './layer';
20
+ import { LayerType } from './layer.interface';
19
21
  import type { VectorLayerOptions } from './vector-layer.interface';
20
22
  export declare class VectorLayer extends Layer {
21
23
  messageService?: MessageService;
@@ -23,6 +25,7 @@ export declare class VectorLayer extends Layer {
23
25
  private geoNetworkService?;
24
26
  geoDBService?: GeoDBService;
25
27
  layerDBService?: LayerDBService;
28
+ type: LayerType;
26
29
  private previousLoadExtent;
27
30
  private previousLoadResolution;
28
31
  private previousOgcFilters;
@@ -36,11 +39,12 @@ export declare class VectorLayer extends Layer {
36
39
  get exportable(): boolean;
37
40
  constructor(options: VectorLayerOptions, messageService?: MessageService, authInterceptor?: AuthInterceptor, geoNetworkService?: GeoNetworkService, geoDBService?: GeoDBService, layerDBService?: LayerDBService);
38
41
  protected createOlLayer(): olLayerVector<olSourceVector>;
39
- removeLayerFromIDB(): void;
42
+ remove(): void;
43
+ private removeLayerFromIDB;
40
44
  private maintainOptionsInIdb;
41
45
  private maintainFeaturesInIdb;
42
46
  protected flash(feature: any): void;
43
- setMap(map: IgoMap | undefined): void;
47
+ init(map: MapBase | undefined): void;
44
48
  setExtent(extent: MapExtent): void;
45
49
  onUnwatch(): void;
46
50
  stopAnimation(): void;
@@ -2,12 +2,14 @@ import { AuthInterceptor } from '@igo2/auth';
2
2
  import { MessageService } from '@igo2/core/message';
3
3
  import olLayerVectorTile from 'ol/layer/VectorTile';
4
4
  import { MVTDataSource } from '../../../datasource/shared/datasources/mvt-datasource';
5
- import type { IgoMap } from '../../../map/shared/map';
5
+ import type { MapBase } from '../../../map/shared/map.abstract';
6
6
  import { Layer } from './layer';
7
+ import { LayerType } from './layer.interface';
7
8
  import { VectorTileLayerOptions } from './vectortile-layer.interface';
8
9
  export declare class VectorTileLayer extends Layer {
9
10
  messageService?: MessageService;
10
11
  authInterceptor?: AuthInterceptor;
12
+ type: LayerType;
11
13
  dataSource: MVTDataSource;
12
14
  options: VectorTileLayerOptions;
13
15
  ol: olLayerVectorTile;
@@ -24,5 +26,6 @@ export declare class VectorTileLayer extends Layer {
24
26
  * @param failure On failure event action to trigger TODO
25
27
  */
26
28
  customLoader(url: any, format: any, interceptor: any, success: any, failure?: any): (extent: any, resolution: any, projection: any) => void;
27
- setMap(map: IgoMap | undefined): void;
29
+ init(map: MapBase | undefined): void;
30
+ remove(): void;
28
31
  }
@@ -1,2 +1,12 @@
1
- import { AnyLayerOptions } from '../shared/layers/any-layer.interface';
2
- export declare function computeMVTOptionsOnHover(layerOptions: AnyLayerOptions): AnyLayerOptions;
1
+ import type { AnyLayer, AnyLayerItemOptions, AnyLayerOptions, Layer, LayerGroup, LayerGroupOptions } from '../shared/layers';
2
+ type SortDirection = 'asc' | 'desc';
3
+ export declare function isLayerGroupOptions(option: AnyLayerOptions): option is LayerGroupOptions;
4
+ export declare function isLayerItemOptions(options: AnyLayerOptions): options is AnyLayerItemOptions;
5
+ export declare function isLayerGroup(layer: AnyLayer): layer is LayerGroup;
6
+ export declare function isLayerItem(layer: AnyLayer): layer is Layer;
7
+ export declare function isBaseLayer(layer: AnyLayer): layer is Layer;
8
+ export declare function computeMVTOptionsOnHover(layerOptions: AnyLayerItemOptions): AnyLayerItemOptions;
9
+ export declare function isSaveableLayer(layer: Layer): boolean;
10
+ /** Recursive */
11
+ export declare function sortLayersByZindex(layers: AnyLayer[], direction: SortDirection): AnyLayer[];
12
+ export {};
@@ -1,7 +1,7 @@
1
- import { Layer } from '../shared/layers/layer';
1
+ import { AnyLayer } from '../shared';
2
2
  import { OutputLayerLegend } from '../shared/layers/legend.interface';
3
3
  /**
4
4
  * Get all the layers legend
5
5
  * @return Array of legend
6
6
  */
7
- export declare function getLayersLegends(layers: Layer[]): OutputLayerLegend[];
7
+ export declare function getLayersLegends(layers: AnyLayer[]): OutputLayerLegend[];
@@ -1,3 +1,4 @@
1
+ import { Coordinate } from 'ol/coordinate';
1
2
  import { ProjectionLike } from 'ol/proj';
2
3
  export interface GeolocationOptions {
3
4
  activateDefault?: boolean;
@@ -14,7 +15,7 @@ export interface MapGeolocationControllerOptions {
14
15
  buffer?: GeolocationBuffer;
15
16
  }
16
17
  export interface MapGeolocationState {
17
- position: number[];
18
+ position: Coordinate;
18
19
  projection: string;
19
20
  accuracy: number;
20
21
  altitude: number;
@@ -25,7 +25,6 @@ export declare class HoverFeatureDirective implements OnInit, OnDestroy {
25
25
  private pointerHoverFeatureStore;
26
26
  private lastTimeoutRequest;
27
27
  private store$$;
28
- private layers$$;
29
28
  private selectionLayer;
30
29
  private selectionMVT;
31
30
  private mvtStyleOptions;
@@ -1,17 +1,13 @@
1
- import { ObjectEvent } from 'ol/Object';
2
- import { Layer, LinkedProperties } from '../../layer/shared/layers';
3
- import type { MapBase } from '../shared/map.abstract';
4
- export declare function getLinkedLayersOptions(layer: Layer): import("../../layer/shared/layers").LayersLink;
5
- export declare function getIgoLayerByLinkId(map: MapBase, id: string): Layer;
6
- export declare function layerHasLinkWithProperty(layer: Layer, property: LinkedProperties): boolean;
7
- export declare function layerHasLinkDeletion(layer: Layer): boolean;
8
- export declare function getRootParentByProperty(map: MapBase, layer: Layer, property: LinkedProperties): Layer;
9
- export declare function getDirectParentLayerByProperty(map: MapBase, layer: Layer, property: LinkedProperties): Layer;
10
- export declare function getDirectChildLayersByProperty(map: MapBase, layer: Layer, property: LinkedProperties): Layer[];
11
- export declare function getAllChildLayersByProperty(map: MapBase, layer: Layer, knownChildLayers: Layer[], property: LinkedProperties): Layer[];
12
- export declare function getRootParentByDeletion(map: MapBase, layer: Layer): Layer;
13
- export declare function getDirectParentLayerByDeletion(map: MapBase, layer: Layer): Layer;
14
- export declare function getDirectChildLayersByDeletion(map: MapBase, layer: Layer): Layer[];
15
- export declare function getAllChildLayersByDeletion(map: MapBase, layer: Layer, knownChildLayers: Layer[]): Layer[];
16
- export declare function initLayerSyncFromRootParentLayers(map: MapBase, layers: Layer[]): void;
17
- export declare function handleLayerPropertyChange(map: MapBase, propertyChange: ObjectEvent, initiatorIgoLayer: Layer): void;
1
+ import type { AnyLayer } from '../../layer/shared/layers/any-layer';
2
+ import type { Layer } from '../../layer/shared/layers/layer';
3
+ import { LayersLinkProperties, LinkedProperties } from '../../layer/shared/layers/linked/linked-layer.interface';
4
+ import { MapViewController } from '../../map/shared/controllers/view';
5
+ import { LayerWatcherChange } from '../utils/layer-watcher';
6
+ export declare function getRootParentByProperty(layers: AnyLayer[], layer: Layer, property: LinkedProperties): Layer;
7
+ export declare function getAllChildLayersByProperty(layers: AnyLayer[], layer: Layer, knownChildLayers: AnyLayer[], property: LinkedProperties): AnyLayer[];
8
+ export declare function getRootParentByDeletion(layer: Layer, layers: AnyLayer[]): Layer;
9
+ export declare function getAllChildLayersByDeletion(layers: Layer[], layer: Layer, knownChildLayers: Layer[]): Layer[];
10
+ export declare function getLinkedLayersOptions(layer: Layer): import("../../layer/shared/layers/linked/linked-layer.interface").LayersLink;
11
+ export declare function findLayerByLinkId(layers: Layer[], id: string): Layer;
12
+ export declare function getLayersByDeletion(layers: Layer[], links: LayersLinkProperties[]): Layer[];
13
+ export declare function handleLayerPropertyChange(layers: AnyLayer[], change: LayerWatcherChange, viewController: MapViewController): void;
@@ -1,25 +1,21 @@
1
1
  import { SubjectStatus } from '@igo2/utils';
2
- import { ObjectEvent } from 'ol/Object';
3
- import { Layer as OlLayer } from 'ol/layer';
4
2
  import { Projection } from 'ol/proj';
5
- import { Source } from 'ol/source';
6
3
  import { Map } from 'ol';
7
4
  import { BehaviorSubject, Subject } from 'rxjs';
8
5
  import { FeatureDataSource } from '../../datasource/shared/datasources';
9
- import { Layer } from '../../layer/shared/layers/layer';
6
+ import { LayerController } from '../../layer/shared/layer-controller';
7
+ import type { AnyLayer } from '../../layer/shared/layers/any-layer';
8
+ import type { Layer } from '../../layer/shared/layers/layer';
10
9
  import { Overlay } from '../../overlay/shared/overlay';
11
10
  import { MapGeolocationController, MapViewController } from '../shared/controllers';
12
- import { MapControlsOptions, MapExtent, MapViewOptions } from '../shared/map.interface';
11
+ import { MapControlsOptions, MapExtent, MapOptions, MapViewOptions } from '../shared/map.interface';
12
+ import { LayerWatcher, LayerWatcherChange } from '../utils';
13
13
  export declare abstract class MapBase {
14
14
  ol: Map;
15
15
  forcedOffline$: BehaviorSubject<boolean>;
16
- layers$: BehaviorSubject<Layer[]>;
17
- layersAddedByClick$: BehaviorSubject<Layer[]>;
16
+ layersAddedByClick$: BehaviorSubject<AnyLayer[]>;
18
17
  status$: Subject<SubjectStatus>;
19
- propertyChange$: Subject<{
20
- event: ObjectEvent;
21
- layer: Layer;
22
- }>;
18
+ propertyChange$: Subject<LayerWatcherChange>;
23
19
  overlay: Overlay;
24
20
  queryResultsOverlay: Overlay;
25
21
  searchResultsOverlay: Overlay;
@@ -29,11 +25,12 @@ export declare abstract class MapBase {
29
25
  mapCenter$: BehaviorSubject<boolean>;
30
26
  selectedFeatures$: BehaviorSubject<Layer[]>;
31
27
  bufferDataSource: FeatureDataSource;
32
- layers: Layer[];
28
+ layerWatcher: LayerWatcher;
29
+ readonly options: MapOptions;
30
+ layerController: LayerController;
33
31
  projection: string;
34
32
  viewProjection: Projection;
35
33
  projectionCode: string;
36
- abstract init(): void;
37
34
  abstract setTarget(id: string): void;
38
35
  abstract updateView(options: MapViewOptions): void;
39
36
  abstract setView(options: MapViewOptions): void;
@@ -41,20 +38,6 @@ export declare abstract class MapBase {
41
38
  abstract getCenter(projection?: string | Projection): [number, number];
42
39
  abstract getExtent(projection?: string | Projection): MapExtent;
43
40
  abstract getZoom(): number;
44
- abstract changeBaseLayer(baseLayer: Layer): void;
45
- abstract getBaseLayers(): Layer[];
46
- abstract getLayerById(id: string): Layer | undefined;
47
- abstract getLayerByAlias(alias: string): Layer;
48
- abstract getLayerByOlUId(olUId: string): Layer;
49
- abstract getLayerByOlLayer(olLayer: OlLayer<Source>): Layer;
50
- abstract addLayer(layer: Layer, push: boolean): void;
51
- abstract addLayers(layers: Layer[], push?: boolean): void;
52
- abstract removeLayer(layer: Layer): void;
53
- abstract removeLayers(layers: Layer[]): void;
54
- abstract removeAllLayers(): void;
55
- abstract raiseLayer(layer: Layer): void;
56
- abstract raiseLayers(layers: Layer[]): void;
57
- abstract lowerLayer(layer: Layer): void;
58
- abstract lowerLayers(layers: Layer[]): void;
59
- abstract moveLayer(layer: Layer, from: number, to: number): void;
41
+ /** @deprecated find a way to remove this method. For now we discourage to use it until we find the way to remove it */
42
+ abstract getLayerByOlUId(olUId: string): AnyLayer;
60
43
  }
@@ -2,15 +2,14 @@ import { ConfigService } from '@igo2/core/config';
2
2
  import { StorageService } from '@igo2/core/storage';
3
3
  import { SubjectStatus } from '@igo2/utils';
4
4
  import olMap from 'ol/Map';
5
- import { ObjectEvent } from 'ol/Object';
6
- import olLayer from 'ol/layer/Layer';
7
5
  import * as olproj from 'ol/proj';
8
6
  import OlProjection from 'ol/proj/Projection';
9
- import olSource from 'ol/source/Source';
10
7
  import { BehaviorSubject, Subject } from 'rxjs';
11
8
  import { FeatureDataSource } from '../../datasource/shared/datasources/feature-datasource';
12
- import type { Layer } from '../../layer/shared/layers';
9
+ import { LayerController } from '../../layer';
10
+ import type { AnyLayer, Layer } from '../../layer/shared/layers';
13
11
  import { Overlay } from '../../overlay/shared/overlay';
12
+ import { LayerWatcher, LayerWatcherChange } from '../utils/layer-watcher';
14
13
  import { MapGeolocationController } from './controllers/geolocation';
15
14
  import { MapViewController } from './controllers/view';
16
15
  import type { MapBase } from './map.abstract';
@@ -20,27 +19,23 @@ export declare class IgoMap implements MapBase {
20
19
  private configService?;
21
20
  ol: olMap;
22
21
  forcedOffline$: BehaviorSubject<boolean>;
23
- layers$: BehaviorSubject<Layer[]>;
24
- layersAddedByClick$: BehaviorSubject<Layer[]>;
22
+ layersAddedByClick$: BehaviorSubject<AnyLayer[]>;
25
23
  status$: Subject<SubjectStatus>;
26
- propertyChange$: Subject<{
27
- event: ObjectEvent;
28
- layer: Layer;
29
- }>;
24
+ propertyChange$: Subject<LayerWatcherChange>;
30
25
  overlay: Overlay;
31
26
  queryResultsOverlay: Overlay;
32
27
  searchResultsOverlay: Overlay;
33
28
  viewController: MapViewController;
29
+ layerController: LayerController;
34
30
  geolocationController: MapGeolocationController;
35
31
  swipeEnabled$: BehaviorSubject<boolean>;
36
32
  mapCenter$: BehaviorSubject<boolean>;
37
33
  selectedFeatures$: BehaviorSubject<Layer[]>;
38
34
  bufferDataSource: FeatureDataSource;
39
- private layerWatcher;
40
- private options;
35
+ layerWatcher: LayerWatcher;
36
+ readonly options: MapOptions;
41
37
  private mapViewOptions;
42
38
  private defaultOptions;
43
- get layers(): Layer[];
44
39
  /** @deprecated use projectionCode */
45
40
  get projection(): string;
46
41
  get viewProjection(): olproj.Projection;
@@ -70,76 +65,6 @@ export declare class IgoMap implements MapBase {
70
65
  * TODO: Move to ViewController and update every place it's used
71
66
  */
72
67
  getZoom(): number;
73
- changeBaseLayer(baseLayer: Layer): void;
74
- getBaseLayers(): Layer[];
75
- getLayerById(id: string): Layer;
76
- getLayerByAlias(alias: string): Layer;
77
- getLayerByOlUId(olUId: string): Layer;
78
- getLayerByOlLayer(olLayer: olLayer<olSource>): Layer;
79
- /**
80
- * Add a single layer
81
- * @param layer Layer to add
82
- * @param push DEPRECATED
83
- */
84
- addLayer(layer: Layer): void;
85
- /**
86
- * Add many layers
87
- * @param layers Layers to add
88
- * @param push DEPRECATED
89
- */
90
- addLayers(layers: Layer[]): void;
91
- /**
92
- * Remove a single layer
93
- * @param layer Layer to remove
94
- */
95
- removeLayer(layer: Layer): void;
96
- /**
97
- * Remove many layers
98
- * @param layers Layers to remove
99
- */
100
- removeLayers(layers: Layer[]): void;
101
- /**
102
- * Build a list of linked layers to delete
103
- * @param srcLayer Layer that has triggered the deletion
104
- * @param layersToRemove list to append the layer to delete into
105
- */
106
- handleLinkedLayersDeletion(srcLayer: Layer, layersToRemove: Layer[]): void;
107
- /**
108
- * Remove all layers
109
- */
110
- removeAllLayers(): void;
111
- raiseLayer(layer: Layer): void;
112
- raiseLayers(layers: Layer[]): void;
113
- lowerLayer(layer: Layer): void;
114
- lowerLayers(layers: Layer[]): void;
115
- moveLayer(layer: Layer, from: number, to: number): void;
116
- /**
117
- * Add a layer to the OL map and start watching. If the layer is already
118
- * added to this map, make it visible but don't add it one again.
119
- * @param layer Layer
120
- * @returns The layer added, if any
121
- */
122
- private doAddLayer;
123
- /**
124
- * Remove a layer from the OL map and stop watching
125
- * @param layer Layer
126
- */
127
- private doRemoveLayer;
128
- /**
129
- * Update the layers observable
130
- * @param layers Layers
131
- */
132
- private setLayers;
133
- /**
134
- * Sort layers by descending zIndex
135
- * @param layers Array of layers
136
- * @returns The original array, sorted by zIndex
137
- */
138
- private sortLayersByZIndex;
139
- /**
140
- * Get layer index in the map's inenr array of layers
141
- * @param layer Layer
142
- * @returns The layer index
143
- */
144
- private getLayerIndex;
68
+ /** @deprecated find a way to remove this method. For now we discourage to use it until we find the way to remove it */
69
+ getLayerByOlUId(olUId: string): AnyLayer;
145
70
  }
@@ -1,4 +1,4 @@
1
- import { IgoMap } from './map';
1
+ import type { IgoMap } from './map';
2
2
  import * as i0 from "@angular/core";
3
3
  /**
4
4
  * MapService