@igo2/geo 18.0.1-next.2 → 18.0.2

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 (512) hide show
  1. package/esm2022/igo2-geo.mjs +5 -0
  2. package/esm2022/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +234 -0
  3. package/esm2022/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +272 -0
  4. package/esm2022/lib/catalog/catalog-browser/catalog-browser.component.mjs +246 -0
  5. package/esm2022/lib/catalog/catalog-browser/catalog-browser.module.mjs +19 -0
  6. package/esm2022/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +136 -0
  7. package/esm2022/lib/catalog/catalog-library/catalog-library-item.component.mjs +60 -0
  8. package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +232 -0
  9. package/esm2022/lib/catalog/catalog-library/catalog-library.module.mjs +24 -0
  10. package/esm2022/lib/catalog/catalog-library/index.mjs +4 -0
  11. package/esm2022/lib/catalog/catalog.module.mjs +26 -0
  12. package/esm2022/lib/catalog/index.mjs +6 -0
  13. package/esm2022/lib/catalog/shared/catalog.abstract.mjs +32 -0
  14. package/esm2022/lib/catalog/shared/catalog.enum.mjs +16 -0
  15. package/esm2022/lib/catalog/shared/catalog.interface.mjs +2 -0
  16. package/esm2022/lib/catalog/shared/catalog.service.mjs +706 -0
  17. package/esm2022/lib/catalog/shared/catalogs.mjs +75 -0
  18. package/esm2022/lib/catalog/shared/index.mjs +5 -0
  19. package/esm2022/lib/datasource/index.mjs +3 -0
  20. package/esm2022/lib/datasource/shared/capabilities.interface.mjs +17 -0
  21. package/esm2022/lib/datasource/shared/capabilities.service.mjs +441 -0
  22. package/esm2022/lib/datasource/shared/datasource.service.mjs +258 -0
  23. package/esm2022/lib/datasource/shared/datasources/any-datasource.interface.mjs +2 -0
  24. package/esm2022/lib/datasource/shared/datasources/any-datasource.mjs +2 -0
  25. package/esm2022/lib/datasource/shared/datasources/arcgisrest-datasource.interface.mjs +2 -0
  26. package/esm2022/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +222 -0
  27. package/esm2022/lib/datasource/shared/datasources/carto-datasource.interface.mjs +2 -0
  28. package/esm2022/lib/datasource/shared/datasources/carto-datasource.mjs +118 -0
  29. package/esm2022/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +2 -0
  30. package/esm2022/lib/datasource/shared/datasources/cluster-datasource.mjs +24 -0
  31. package/esm2022/lib/datasource/shared/datasources/data.service.mjs +3 -0
  32. package/esm2022/lib/datasource/shared/datasources/datasource.interface.mjs +2 -0
  33. package/esm2022/lib/datasource/shared/datasources/datasource.mjs +42 -0
  34. package/esm2022/lib/datasource/shared/datasources/feature-datasource.interface.mjs +2 -0
  35. package/esm2022/lib/datasource/shared/datasources/feature-datasource.mjs +52 -0
  36. package/esm2022/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.mjs +2 -0
  37. package/esm2022/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +70 -0
  38. package/esm2022/lib/datasource/shared/datasources/index.mjs +36 -0
  39. package/esm2022/lib/datasource/shared/datasources/mvt-datasource.interface.mjs +2 -0
  40. package/esm2022/lib/datasource/shared/datasources/mvt-datasource.mjs +33 -0
  41. package/esm2022/lib/datasource/shared/datasources/osm-datasource.interface.mjs +2 -0
  42. package/esm2022/lib/datasource/shared/datasources/osm-datasource.mjs +14 -0
  43. package/esm2022/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.mjs +2 -0
  44. package/esm2022/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +60 -0
  45. package/esm2022/lib/datasource/shared/datasources/tiledebug-datasource.interface.mjs +2 -0
  46. package/esm2022/lib/datasource/shared/datasources/tiledebug-datasource.mjs +17 -0
  47. package/esm2022/lib/datasource/shared/datasources/websocket-datasource.interface.mjs +2 -0
  48. package/esm2022/lib/datasource/shared/datasources/websocket-datasource.mjs +56 -0
  49. package/esm2022/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +2 -0
  50. package/esm2022/lib/datasource/shared/datasources/wfs-datasource.mjs +137 -0
  51. package/esm2022/lib/datasource/shared/datasources/wfs.service.mjs +170 -0
  52. package/esm2022/lib/datasource/shared/datasources/wms-datasource.interface.mjs +2 -0
  53. package/esm2022/lib/datasource/shared/datasources/wms-datasource.mjs +227 -0
  54. package/esm2022/lib/datasource/shared/datasources/wms-wfs.utils.mjs +224 -0
  55. package/esm2022/lib/datasource/shared/datasources/wmts-datasource.interface.mjs +2 -0
  56. package/esm2022/lib/datasource/shared/datasources/wmts-datasource.mjs +18 -0
  57. package/esm2022/lib/datasource/shared/datasources/xyz-datasource.interface.mjs +2 -0
  58. package/esm2022/lib/datasource/shared/datasources/xyz-datasource.mjs +11 -0
  59. package/esm2022/lib/datasource/shared/index.mjs +6 -0
  60. package/esm2022/lib/datasource/shared/options/index.mjs +5 -0
  61. package/esm2022/lib/datasource/shared/options/options-api.interface.mjs +2 -0
  62. package/esm2022/lib/datasource/shared/options/options-api.providers.mjs +15 -0
  63. package/esm2022/lib/datasource/shared/options/options-api.service.mjs +85 -0
  64. package/esm2022/lib/datasource/shared/options/options.service.mjs +3 -0
  65. package/esm2022/lib/datasource/utils/index.mjs +2 -0
  66. package/esm2022/lib/datasource/utils/tilegrid.mjs +20 -0
  67. package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +246 -0
  68. package/esm2022/lib/directions/directions-buttons/index.mjs +2 -0
  69. package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +312 -0
  70. package/esm2022/lib/directions/directions-inputs/index.mjs +2 -0
  71. package/esm2022/lib/directions/directions-results/directions-results.component.mjs +192 -0
  72. package/esm2022/lib/directions/directions-results/index.mjs +2 -0
  73. package/esm2022/lib/directions/directions-sources/directions-source.interface.mjs +5 -0
  74. package/esm2022/lib/directions/directions-sources/directions-source.mjs +3 -0
  75. package/esm2022/lib/directions/directions-sources/directions-source.provider.mjs +23 -0
  76. package/esm2022/lib/directions/directions-sources/index.mjs +5 -0
  77. package/esm2022/lib/directions/directions-sources/osrm-directions-source.mjs +159 -0
  78. package/esm2022/lib/directions/directions.component.mjs +437 -0
  79. package/esm2022/lib/directions/directions.module.mjs +46 -0
  80. package/esm2022/lib/directions/directions.provider.mjs +16 -0
  81. package/esm2022/lib/directions/index.mjs +8 -0
  82. package/esm2022/lib/directions/shared/directions-source.service.mjs +18 -0
  83. package/esm2022/lib/directions/shared/directions.enum.mjs +72 -0
  84. package/esm2022/lib/directions/shared/directions.interface.mjs +2 -0
  85. package/esm2022/lib/directions/shared/directions.service.mjs +239 -0
  86. package/esm2022/lib/directions/shared/directions.utils.mjs +522 -0
  87. package/esm2022/lib/directions/shared/index.mjs +6 -0
  88. package/esm2022/lib/directions/shared/store.mjs +21 -0
  89. package/esm2022/lib/download/download-button/download-button.component.mjs +48 -0
  90. package/esm2022/lib/download/download-button/index.mjs +2 -0
  91. package/esm2022/lib/download/download.module.mjs +24 -0
  92. package/esm2022/lib/download/index.mjs +3 -0
  93. package/esm2022/lib/download/shared/download.interface.mjs +2 -0
  94. package/esm2022/lib/download/shared/download.service.mjs +67 -0
  95. package/esm2022/lib/download/shared/index.mjs +3 -0
  96. package/esm2022/lib/draw/draw/draw-layer-popup.component.mjs +42 -0
  97. package/esm2022/lib/draw/draw/draw-popup.component.mjs +421 -0
  98. package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +28 -0
  99. package/esm2022/lib/draw/draw/draw.component.mjs +1136 -0
  100. package/esm2022/lib/draw/draw/draw.module.mjs +19 -0
  101. package/esm2022/lib/draw/drawingTool.module.mjs +18 -0
  102. package/esm2022/lib/draw/index.mjs +3 -0
  103. package/esm2022/lib/draw/shared/draw-icon.service.mjs +30 -0
  104. package/esm2022/lib/draw/shared/draw.enum.mjs +21 -0
  105. package/esm2022/lib/draw/shared/draw.interface.mjs +2 -0
  106. package/esm2022/lib/draw/shared/draw.utils.mjs +125 -0
  107. package/esm2022/lib/draw/shared/index.mjs +5 -0
  108. package/esm2022/lib/environment/environment.interface.mjs +2 -0
  109. package/esm2022/lib/environment/index.mjs +2 -0
  110. package/esm2022/lib/feature/feature-details/feature-details.component.mjs +306 -0
  111. package/esm2022/lib/feature/feature-details/feature-details.directive.mjs +56 -0
  112. package/esm2022/lib/feature/feature-details/feature-details.module.mjs +26 -0
  113. package/esm2022/lib/feature/feature-details/index.mjs +4 -0
  114. package/esm2022/lib/feature/feature-form/feature-form.component.mjs +101 -0
  115. package/esm2022/lib/feature/feature-form/feature-form.module.mjs +19 -0
  116. package/esm2022/lib/feature/feature.module.mjs +26 -0
  117. package/esm2022/lib/feature/index.mjs +5 -0
  118. package/esm2022/lib/feature/shared/feature-store.utils.mjs +28 -0
  119. package/esm2022/lib/feature/shared/feature.enums.mjs +9 -0
  120. package/esm2022/lib/feature/shared/feature.interfaces.mjs +2 -0
  121. package/esm2022/lib/feature/shared/feature.utils.mjs +332 -0
  122. package/esm2022/lib/feature/shared/index.mjs +8 -0
  123. package/esm2022/lib/feature/shared/store.mjs +143 -0
  124. package/esm2022/lib/feature/shared/strategies/geo-properties.mjs +216 -0
  125. package/esm2022/lib/feature/shared/strategies/in-map-extent.mjs +119 -0
  126. package/esm2022/lib/feature/shared/strategies/in-map-resolution.mjs +99 -0
  127. package/esm2022/lib/feature/shared/strategies/index.mjs +8 -0
  128. package/esm2022/lib/feature/shared/strategies/loading-layer.mjs +103 -0
  129. package/esm2022/lib/feature/shared/strategies/loading.mjs +136 -0
  130. package/esm2022/lib/feature/shared/strategies/search.mjs +158 -0
  131. package/esm2022/lib/feature/shared/strategies/selection.mjs +385 -0
  132. package/esm2022/lib/feature/shared/strategies.utils.mjs +37 -0
  133. package/esm2022/lib/filter/filter.module.mjs +131 -0
  134. package/esm2022/lib/filter/index.mjs +17 -0
  135. package/esm2022/lib/filter/ogc-filter-button/index.mjs +2 -0
  136. package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +141 -0
  137. package/esm2022/lib/filter/ogc-filter-form/index.mjs +2 -0
  138. package/esm2022/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +325 -0
  139. package/esm2022/lib/filter/ogc-filter-selection/index.mjs +2 -0
  140. package/esm2022/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +787 -0
  141. package/esm2022/lib/filter/ogc-filter-time/index.mjs +3 -0
  142. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +201 -0
  143. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +665 -0
  144. package/esm2022/lib/filter/ogc-filterable-form/index.mjs +2 -0
  145. package/esm2022/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +66 -0
  146. package/esm2022/lib/filter/ogc-filterable-item/index.mjs +2 -0
  147. package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +244 -0
  148. package/esm2022/lib/filter/ogc-filterable-list/index.mjs +3 -0
  149. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +39 -0
  150. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +32 -0
  151. package/esm2022/lib/filter/shared/filterable-datasource.pipe.mjs +63 -0
  152. package/esm2022/lib/filter/shared/index.mjs +12 -0
  153. package/esm2022/lib/filter/shared/ogc-filter-time.service.mjs +72 -0
  154. package/esm2022/lib/filter/shared/ogc-filter.enum.mjs +30 -0
  155. package/esm2022/lib/filter/shared/ogc-filter.interface.mjs +2 -0
  156. package/esm2022/lib/filter/shared/ogc-filter.mjs +756 -0
  157. package/esm2022/lib/filter/shared/ogc-filter.service.mjs +47 -0
  158. package/esm2022/lib/filter/shared/spatial-filter.enum.mjs +23 -0
  159. package/esm2022/lib/filter/shared/spatial-filter.interface.mjs +2 -0
  160. package/esm2022/lib/filter/shared/spatial-filter.service.mjs +282 -0
  161. package/esm2022/lib/filter/shared/time-filter.enum.mjs +13 -0
  162. package/esm2022/lib/filter/shared/time-filter.interface.mjs +2 -0
  163. package/esm2022/lib/filter/shared/time-filter.service.mjs +107 -0
  164. package/esm2022/lib/filter/spatial-filter/spatial-filter-item/index.mjs +2 -0
  165. package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +875 -0
  166. package/esm2022/lib/filter/spatial-filter/spatial-filter-list/index.mjs +2 -0
  167. package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +191 -0
  168. package/esm2022/lib/filter/spatial-filter/spatial-filter-type/index.mjs +2 -0
  169. package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +120 -0
  170. package/esm2022/lib/filter/time-filter-button/index.mjs +2 -0
  171. package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +70 -0
  172. package/esm2022/lib/filter/time-filter-form/index.mjs +2 -0
  173. package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +537 -0
  174. package/esm2022/lib/filter/time-filter-item/index.mjs +2 -0
  175. package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +90 -0
  176. package/esm2022/lib/filter/time-filter-list/index.mjs +3 -0
  177. package/esm2022/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +39 -0
  178. package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +24 -0
  179. package/esm2022/lib/geo.module.mjs +63 -0
  180. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +559 -0
  181. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +170 -0
  182. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +24 -0
  183. package/esm2022/lib/geometry/geometry-form-field/index.mjs +4 -0
  184. package/esm2022/lib/geometry/geometry.module.mjs +18 -0
  185. package/esm2022/lib/geometry/index.mjs +3 -0
  186. package/esm2022/lib/geometry/shared/controls/draw.mjs +340 -0
  187. package/esm2022/lib/geometry/shared/controls/index.mjs +4 -0
  188. package/esm2022/lib/geometry/shared/controls/modify.mjs +538 -0
  189. package/esm2022/lib/geometry/shared/controls/slice.mjs +190 -0
  190. package/esm2022/lib/geometry/shared/geometry.errors.mjs +24 -0
  191. package/esm2022/lib/geometry/shared/geometry.interfaces.mjs +2 -0
  192. package/esm2022/lib/geometry/shared/geometry.utils.mjs +113 -0
  193. package/esm2022/lib/geometry/shared/index.mjs +5 -0
  194. package/esm2022/lib/import-export/export-button/export-button.component.mjs +49 -0
  195. package/esm2022/lib/import-export/export-button/index.mjs +2 -0
  196. package/esm2022/lib/import-export/import-export/import-export.component.mjs +876 -0
  197. package/esm2022/lib/import-export/import-export/index.mjs +2 -0
  198. package/esm2022/lib/import-export/import-export.module.mjs +31 -0
  199. package/esm2022/lib/import-export/index.mjs +5 -0
  200. package/esm2022/lib/import-export/shared/drop-geo-file.directive.mjs +114 -0
  201. package/esm2022/lib/import-export/shared/export.errors.mjs +15 -0
  202. package/esm2022/lib/import-export/shared/export.interface.mjs +2 -0
  203. package/esm2022/lib/import-export/shared/export.service.mjs +378 -0
  204. package/esm2022/lib/import-export/shared/export.type.mjs +13 -0
  205. package/esm2022/lib/import-export/shared/export.utils.mjs +51 -0
  206. package/esm2022/lib/import-export/shared/import.errors.mjs +39 -0
  207. package/esm2022/lib/import-export/shared/import.interface.mjs +2 -0
  208. package/esm2022/lib/import-export/shared/import.service.mjs +221 -0
  209. package/esm2022/lib/import-export/shared/import.utils.mjs +203 -0
  210. package/esm2022/lib/import-export/shared/index.mjs +11 -0
  211. package/esm2022/lib/layer/index.mjs +16 -0
  212. package/esm2022/lib/layer/layer-group/index.mjs +2 -0
  213. package/esm2022/lib/layer/layer-group/layer-group.component.mjs +103 -0
  214. package/esm2022/lib/layer/layer-item/index.mjs +2 -0
  215. package/esm2022/lib/layer/layer-item/layer-item.component.mjs +196 -0
  216. package/esm2022/lib/layer/layer-legend/index.mjs +2 -0
  217. package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +287 -0
  218. package/esm2022/lib/layer/layer-legend-item/index.mjs +2 -0
  219. package/esm2022/lib/layer/layer-legend-item/layer-legend-item.component.mjs +85 -0
  220. package/esm2022/lib/layer/layer-legend-list/index.mjs +3 -0
  221. package/esm2022/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +54 -0
  222. package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +104 -0
  223. package/esm2022/lib/layer/layer-list/index.mjs +2 -0
  224. package/esm2022/lib/layer/layer-list/layer-list.component.mjs +232 -0
  225. package/esm2022/lib/layer/layer-list-tool/index.mjs +4 -0
  226. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +92 -0
  227. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.interface.mjs +7 -0
  228. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.service.mjs +61 -0
  229. package/esm2022/lib/layer/layer-search/index.mjs +2 -0
  230. package/esm2022/lib/layer/layer-search/layer-search.component.mjs +65 -0
  231. package/esm2022/lib/layer/layer-unavailable/index.mjs +3 -0
  232. package/esm2022/lib/layer/layer-unavailable/layer-unavailable-list/layer-unavailable-list.component.mjs +26 -0
  233. package/esm2022/lib/layer/layer-unavailable/layer-unavailable.component.mjs +35 -0
  234. package/esm2022/lib/layer/layer-viewer/index.mjs +3 -0
  235. package/esm2022/lib/layer/layer-viewer/layer-viewer.component.mjs +226 -0
  236. package/esm2022/lib/layer/layer-viewer/layer-viewer.interface.mjs +2 -0
  237. package/esm2022/lib/layer/layer-viewer-bottom-actions/index.mjs +2 -0
  238. package/esm2022/lib/layer/layer-viewer-bottom-actions/layer-viewer-bottom-actions.component.mjs +207 -0
  239. package/esm2022/lib/layer/layer-visibility-button/index.mjs +2 -0
  240. package/esm2022/lib/layer/layer-visibility-button/layer-visibility-button.component.mjs +83 -0
  241. package/esm2022/lib/layer/layer.module.mjs +107 -0
  242. package/esm2022/lib/layer/shared/clusterParam.mjs +2 -0
  243. package/esm2022/lib/layer/shared/index.mjs +6 -0
  244. package/esm2022/lib/layer/shared/layer-controller.mjs +316 -0
  245. package/esm2022/lib/layer/shared/layer-selection.mjs +38 -0
  246. package/esm2022/lib/layer/shared/layer.enums.mjs +2 -0
  247. package/esm2022/lib/layer/shared/layer.service.mjs +315 -0
  248. package/esm2022/lib/layer/shared/layers/any-layer.interface.mjs +2 -0
  249. package/esm2022/lib/layer/shared/layers/any-layer.mjs +2 -0
  250. package/esm2022/lib/layer/shared/layers/image-layer.interface.mjs +2 -0
  251. package/esm2022/lib/layer/shared/layers/image-layer.mjs +75 -0
  252. package/esm2022/lib/layer/shared/layers/index.mjs +18 -0
  253. package/esm2022/lib/layer/shared/layers/layer-base.mjs +199 -0
  254. package/esm2022/lib/layer/shared/layers/layer-group.interface.mjs +2 -0
  255. package/esm2022/lib/layer/shared/layers/layer-group.mjs +120 -0
  256. package/esm2022/lib/layer/shared/layers/layer.interface.mjs +7 -0
  257. package/esm2022/lib/layer/shared/layers/layer.mjs +178 -0
  258. package/esm2022/lib/layer/shared/layers/legend.interface.mjs +2 -0
  259. package/esm2022/lib/layer/shared/layers/linked/index.mjs +4 -0
  260. package/esm2022/lib/layer/shared/layers/linked/linked-layer.interface.mjs +12 -0
  261. package/esm2022/lib/layer/shared/layers/linked/linked-layer.mjs +242 -0
  262. package/esm2022/lib/layer/shared/layers/linked/linked-layer.utils.mjs +70 -0
  263. package/esm2022/lib/layer/shared/layers/tile-layer.interface.mjs +2 -0
  264. package/esm2022/lib/layer/shared/layers/tile-layer.mjs +55 -0
  265. package/esm2022/lib/layer/shared/layers/vector-layer.interface.mjs +2 -0
  266. package/esm2022/lib/layer/shared/layers/vector-layer.mjs +576 -0
  267. package/esm2022/lib/layer/shared/layers/vectortile-layer.interface.mjs +2 -0
  268. package/esm2022/lib/layer/shared/layers/vectortile-layer.mjs +112 -0
  269. package/esm2022/lib/layer/track-feature-button/index.mjs +2 -0
  270. package/esm2022/lib/layer/track-feature-button/track-feature-button.component.mjs +54 -0
  271. package/esm2022/lib/layer/utils/image-watcher.mjs +62 -0
  272. package/esm2022/lib/layer/utils/index.mjs +6 -0
  273. package/esm2022/lib/layer/utils/layer.utils.mjs +57 -0
  274. package/esm2022/lib/layer/utils/outputLegend.mjs +32 -0
  275. package/esm2022/lib/layer/utils/tile-watcher.mjs +52 -0
  276. package/esm2022/lib/layer/utils/vector-watcher.mjs +50 -0
  277. package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.animation.mjs +20 -0
  278. package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +87 -0
  279. package/esm2022/lib/map/baselayers-switcher/index.mjs +3 -0
  280. package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +122 -0
  281. package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +78 -0
  282. package/esm2022/lib/map/geolocate-button/index.mjs +2 -0
  283. package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +73 -0
  284. package/esm2022/lib/map/home-extent-button/home-extent-button.interface.mjs +2 -0
  285. package/esm2022/lib/map/home-extent-button/index.mjs +3 -0
  286. package/esm2022/lib/map/index.mjs +14 -0
  287. package/esm2022/lib/map/info-section/index.mjs +2 -0
  288. package/esm2022/lib/map/info-section/info-section.component.mjs +15 -0
  289. package/esm2022/lib/map/map-browser/index.mjs +2 -0
  290. package/esm2022/lib/map/map-browser/map-browser.component.mjs +67 -0
  291. package/esm2022/lib/map/map-center/index.mjs +2 -0
  292. package/esm2022/lib/map/map-center/map-center.component.mjs +56 -0
  293. package/esm2022/lib/map/map.module.mjs +89 -0
  294. package/esm2022/lib/map/menu-button/index.mjs +2 -0
  295. package/esm2022/lib/map/menu-button/menu-button.component.mjs +57 -0
  296. package/esm2022/lib/map/offline-button/index.mjs +2 -0
  297. package/esm2022/lib/map/offline-button/offline-button.component.mjs +53 -0
  298. package/esm2022/lib/map/rotation-button/index.mjs +2 -0
  299. package/esm2022/lib/map/rotation-button/rotation-button.component.mjs +58 -0
  300. package/esm2022/lib/map/shared/controllers/controller.mjs +44 -0
  301. package/esm2022/lib/map/shared/controllers/geolocation.interface.mjs +8 -0
  302. package/esm2022/lib/map/shared/controllers/geolocation.mjs +431 -0
  303. package/esm2022/lib/map/shared/controllers/index.mjs +5 -0
  304. package/esm2022/lib/map/shared/controllers/view.mjs +361 -0
  305. package/esm2022/lib/map/shared/hover-feature.directive.mjs +481 -0
  306. package/esm2022/lib/map/shared/index.mjs +15 -0
  307. package/esm2022/lib/map/shared/linkedLayers.utils.mjs +238 -0
  308. package/esm2022/lib/map/shared/map-pointer-position.directive.mjs +122 -0
  309. package/esm2022/lib/map/shared/map.abstract.mjs +24 -0
  310. package/esm2022/lib/map/shared/map.enums.mjs +6 -0
  311. package/esm2022/lib/map/shared/map.interface.mjs +2 -0
  312. package/esm2022/lib/map/shared/map.mjs +201 -0
  313. package/esm2022/lib/map/shared/map.service.mjs +29 -0
  314. package/esm2022/lib/map/shared/map.utils.mjs +455 -0
  315. package/esm2022/lib/map/shared/mapOffline.directive.mjs +114 -0
  316. package/esm2022/lib/map/shared/projection.interfaces.mjs +2 -0
  317. package/esm2022/lib/map/shared/projection.service.mjs +67 -0
  318. package/esm2022/lib/map/shared/projection.utils.mjs +122 -0
  319. package/esm2022/lib/map/swipe-control/index.mjs +2 -0
  320. package/esm2022/lib/map/swipe-control/swipe-control.component.mjs +211 -0
  321. package/esm2022/lib/map/utils/index.mjs +2 -0
  322. package/esm2022/lib/map/utils/layer-watcher.mjs +112 -0
  323. package/esm2022/lib/map/wake-lock-button/index.mjs +2 -0
  324. package/esm2022/lib/map/wake-lock-button/wake-lock-button.component.mjs +103 -0
  325. package/esm2022/lib/map/zoom-button/index.mjs +2 -0
  326. package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +35 -0
  327. package/esm2022/lib/measure/index.mjs +3 -0
  328. package/esm2022/lib/measure/measure.module.mjs +20 -0
  329. package/esm2022/lib/measure/measurer/index.mjs +6 -0
  330. package/esm2022/lib/measure/measurer/measure-format.pipe.mjs +40 -0
  331. package/esm2022/lib/measure/measurer/measurer-dialog.component.mjs +38 -0
  332. package/esm2022/lib/measure/measurer/measurer-item.component.mjs +143 -0
  333. package/esm2022/lib/measure/measurer/measurer.component.mjs +948 -0
  334. package/esm2022/lib/measure/measurer/measurer.module.mjs +20 -0
  335. package/esm2022/lib/measure/shared/index.mjs +4 -0
  336. package/esm2022/lib/measure/shared/measure.enum.mjs +37 -0
  337. package/esm2022/lib/measure/shared/measure.interfaces.mjs +2 -0
  338. package/esm2022/lib/measure/shared/measure.utils.mjs +497 -0
  339. package/esm2022/lib/metadata/index.mjs +4 -0
  340. package/esm2022/lib/metadata/metadata-button/index.mjs +2 -0
  341. package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +96 -0
  342. package/esm2022/lib/metadata/metadata.module.mjs +29 -0
  343. package/esm2022/lib/metadata/shared/index.mjs +3 -0
  344. package/esm2022/lib/metadata/shared/metadata.interface.mjs +2 -0
  345. package/esm2022/lib/metadata/shared/metadata.service.mjs +18 -0
  346. package/esm2022/lib/offline/geoDB/configFileToGeoDB.service.mjs +130 -0
  347. package/esm2022/lib/offline/geoDB/geoDB.enums.mjs +6 -0
  348. package/esm2022/lib/offline/geoDB/geoDB.interface.mjs +2 -0
  349. package/esm2022/lib/offline/geoDB/geoDB.service.mjs +172 -0
  350. package/esm2022/lib/offline/geoDB/index.mjs +5 -0
  351. package/esm2022/lib/offline/index.mjs +6 -0
  352. package/esm2022/lib/offline/layerDB/index.mjs +3 -0
  353. package/esm2022/lib/offline/layerDB/layerDB.interface.mjs +2 -0
  354. package/esm2022/lib/offline/layerDB/layerDB.service.mjs +83 -0
  355. package/esm2022/lib/offline/offline.interface.mjs +2 -0
  356. package/esm2022/lib/offline/offline.provider.mjs +50 -0
  357. package/esm2022/lib/offline/shared/geo-network.service.mjs +79 -0
  358. package/esm2022/lib/offline/shared/index.mjs +2 -0
  359. package/esm2022/lib/overlay/index.mjs +2 -0
  360. package/esm2022/lib/overlay/shared/index.mjs +4 -0
  361. package/esm2022/lib/overlay/shared/overlay.enum.mjs +8 -0
  362. package/esm2022/lib/overlay/shared/overlay.mjs +139 -0
  363. package/esm2022/lib/overlay/shared/overlay.utils.mjs +17 -0
  364. package/esm2022/lib/print/index.mjs +4 -0
  365. package/esm2022/lib/print/print/print.component.mjs +116 -0
  366. package/esm2022/lib/print/print-form/index.mjs +2 -0
  367. package/esm2022/lib/print/print-form/print-form.component.mjs +320 -0
  368. package/esm2022/lib/print/print.module.mjs +20 -0
  369. package/esm2022/lib/print/shared/geopdf.mjs +68 -0
  370. package/esm2022/lib/print/shared/index.mjs +5 -0
  371. package/esm2022/lib/print/shared/print.interface.mjs +2 -0
  372. package/esm2022/lib/print/shared/print.service.mjs +1136 -0
  373. package/esm2022/lib/print/shared/print.type.mjs +30 -0
  374. package/esm2022/lib/query/index.mjs +2 -0
  375. package/esm2022/lib/query/query.module.mjs +27 -0
  376. package/esm2022/lib/query/shared/index.mjs +8 -0
  377. package/esm2022/lib/query/shared/query-search-source.mjs +35 -0
  378. package/esm2022/lib/query/shared/query-search-source.providers.mjs +22 -0
  379. package/esm2022/lib/query/shared/query.directive.mjs +290 -0
  380. package/esm2022/lib/query/shared/query.enums.mjs +32 -0
  381. package/esm2022/lib/query/shared/query.interfaces.mjs +2 -0
  382. package/esm2022/lib/query/shared/query.service.mjs +753 -0
  383. package/esm2022/lib/query/shared/query.utils.mjs +45 -0
  384. package/esm2022/lib/search/index.mjs +10 -0
  385. package/esm2022/lib/search/search-bar/search-bar.component.mjs +483 -0
  386. package/esm2022/lib/search/search-bar/search-bar.module.mjs +19 -0
  387. package/esm2022/lib/search/search-results/index.mjs +5 -0
  388. package/esm2022/lib/search/search-results/save-feature-dialog.component.mjs +101 -0
  389. package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +433 -0
  390. package/esm2022/lib/search/search-results/search-results-item.component.mjs +119 -0
  391. package/esm2022/lib/search/search-results/search-results.component.mjs +297 -0
  392. package/esm2022/lib/search/search-results/search-results.directive.mjs +7 -0
  393. package/esm2022/lib/search/search-results/search-results.module.mjs +20 -0
  394. package/esm2022/lib/search/search-selector/search-selector.component.mjs +118 -0
  395. package/esm2022/lib/search/search-selector/search-selector.module.mjs +19 -0
  396. package/esm2022/lib/search/search-settings/search-settings.component.mjs +264 -0
  397. package/esm2022/lib/search/search-settings/search-settings.module.mjs +19 -0
  398. package/esm2022/lib/search/search.module.mjs +77 -0
  399. package/esm2022/lib/search/shared/index.mjs +10 -0
  400. package/esm2022/lib/search/shared/search-pointer-summary.directive.mjs +328 -0
  401. package/esm2022/lib/search/shared/search-source-service.providers.mjs +20 -0
  402. package/esm2022/lib/search/shared/search-source.service.mjs +56 -0
  403. package/esm2022/lib/search/shared/search.enums.mjs +4 -0
  404. package/esm2022/lib/search/shared/search.interfaces.mjs +2 -0
  405. package/esm2022/lib/search/shared/search.provider.mjs +20 -0
  406. package/esm2022/lib/search/shared/search.service.mjs +149 -0
  407. package/esm2022/lib/search/shared/search.utils.mjs +92 -0
  408. package/esm2022/lib/search/shared/sources/cadastre.mjs +142 -0
  409. package/esm2022/lib/search/shared/sources/cadastre.providers.mjs +32 -0
  410. package/esm2022/lib/search/shared/sources/coordinates.interfaces.mjs +2 -0
  411. package/esm2022/lib/search/shared/sources/coordinates.mjs +168 -0
  412. package/esm2022/lib/search/shared/sources/coordinates.providers.mjs +52 -0
  413. package/esm2022/lib/search/shared/sources/icherche-icons.mjs +32 -0
  414. package/esm2022/lib/search/shared/sources/icherche.interfaces.mjs +2 -0
  415. package/esm2022/lib/search/shared/sources/icherche.mjs +816 -0
  416. package/esm2022/lib/search/shared/sources/icherche.providers.mjs +87 -0
  417. package/esm2022/lib/search/shared/sources/ilayer.interfaces.mjs +2 -0
  418. package/esm2022/lib/search/shared/sources/ilayer.mjs +339 -0
  419. package/esm2022/lib/search/shared/sources/ilayer.providers.mjs +58 -0
  420. package/esm2022/lib/search/shared/sources/index.mjs +23 -0
  421. package/esm2022/lib/search/shared/sources/nominatim.interfaces.mjs +2 -0
  422. package/esm2022/lib/search/shared/sources/nominatim.mjs +263 -0
  423. package/esm2022/lib/search/shared/sources/nominatim.providers.mjs +31 -0
  424. package/esm2022/lib/search/shared/sources/source.interfaces.mjs +13 -0
  425. package/esm2022/lib/search/shared/sources/source.mjs +221 -0
  426. package/esm2022/lib/search/shared/sources/storedqueries.interfaces.mjs +2 -0
  427. package/esm2022/lib/search/shared/sources/storedqueries.mjs +454 -0
  428. package/esm2022/lib/search/shared/sources/storedqueries.providers.mjs +56 -0
  429. package/esm2022/lib/search/shared/sources/workspace.interfaces.mjs +2 -0
  430. package/esm2022/lib/search/shared/sources/workspace.mjs +192 -0
  431. package/esm2022/lib/search/shared/sources/workspace.providers.mjs +31 -0
  432. package/esm2022/lib/style/index.mjs +5 -0
  433. package/esm2022/lib/style/shared/datasource/esri-style-generator.mjs +360 -0
  434. package/esm2022/lib/style/shared/datasource/index.mjs +2 -0
  435. package/esm2022/lib/style/shared/feature/feature-style.mjs +162 -0
  436. package/esm2022/lib/style/shared/feature/index.mjs +2 -0
  437. package/esm2022/lib/style/shared/font.enum.mjs +17 -0
  438. package/esm2022/lib/style/shared/index.mjs +5 -0
  439. package/esm2022/lib/style/shared/overlay/index.mjs +3 -0
  440. package/esm2022/lib/style/shared/overlay/overlay-marker-style.utils.mjs +39 -0
  441. package/esm2022/lib/style/shared/overlay/overlay-style.utils.mjs +88 -0
  442. package/esm2022/lib/style/shared/vector/commonVectorStyle.mjs +78 -0
  443. package/esm2022/lib/style/shared/vector/conversion.utils.mjs +27 -0
  444. package/esm2022/lib/style/shared/vector/index.mjs +4 -0
  445. package/esm2022/lib/style/shared/vector/vector-style.interface.mjs +2 -0
  446. package/esm2022/lib/style/style-list/index.mjs +5 -0
  447. package/esm2022/lib/style/style-list/style-list.interface.mjs +2 -0
  448. package/esm2022/lib/style/style-list/style-list.module.mjs +23 -0
  449. package/esm2022/lib/style/style-list/style-list.provider.mjs +21 -0
  450. package/esm2022/lib/style/style-list/style-list.service.mjs +52 -0
  451. package/esm2022/lib/style/style-modal/drawing/index.mjs +2 -0
  452. package/esm2022/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +193 -0
  453. package/esm2022/lib/style/style-modal/index.mjs +5 -0
  454. package/esm2022/lib/style/style-modal/layer/index.mjs +2 -0
  455. package/esm2022/lib/style/style-modal/layer/style-modal-layer.component.mjs +142 -0
  456. package/esm2022/lib/style/style-modal/layer-button/index.mjs +2 -0
  457. package/esm2022/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +44 -0
  458. package/esm2022/lib/style/style-modal/shared/index.mjs +2 -0
  459. package/esm2022/lib/style/style-modal/shared/style-modal.interface.mjs +2 -0
  460. package/esm2022/lib/style/style-service/draw-style.service.mjs +255 -0
  461. package/esm2022/lib/style/style-service/index.mjs +3 -0
  462. package/esm2022/lib/style/style-service/style.service.mjs +393 -0
  463. package/esm2022/lib/style/style.module.mjs +46 -0
  464. package/esm2022/lib/toast/index.mjs +2 -0
  465. package/esm2022/lib/toast/toast.component.mjs +99 -0
  466. package/esm2022/lib/toast/toast.module.mjs +24 -0
  467. package/esm2022/lib/utils/googleLinks.mjs +13 -0
  468. package/esm2022/lib/utils/id-generator.mjs +112 -0
  469. package/esm2022/lib/utils/index.mjs +5 -0
  470. package/esm2022/lib/utils/osmLinks.mjs +9 -0
  471. package/esm2022/lib/utils/propertyTypeDetector/index.mjs +3 -0
  472. package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.interface.mjs +2 -0
  473. package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.service.mjs +64 -0
  474. package/esm2022/lib/wkt/index.mjs +2 -0
  475. package/esm2022/lib/wkt/shared/index.mjs +2 -0
  476. package/esm2022/lib/wkt/shared/wkt.service.mjs +235 -0
  477. package/esm2022/lib/wkt/wkt.module.mjs +25 -0
  478. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +36 -0
  479. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +19 -0
  480. package/esm2022/lib/workspace/confirmation-popup/index.mjs +3 -0
  481. package/esm2022/lib/workspace/index.mjs +8 -0
  482. package/esm2022/lib/workspace/shared/edition-workspace.mjs +301 -0
  483. package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +720 -0
  484. package/esm2022/lib/workspace/shared/feature-workspace.mjs +41 -0
  485. package/esm2022/lib/workspace/shared/feature-workspace.service.mjs +113 -0
  486. package/esm2022/lib/workspace/shared/index.mjs +8 -0
  487. package/esm2022/lib/workspace/shared/wfs-workspace.mjs +41 -0
  488. package/esm2022/lib/workspace/shared/wfs-workspace.service.mjs +121 -0
  489. package/esm2022/lib/workspace/shared/wms-workspace.service.mjs +248 -0
  490. package/esm2022/lib/workspace/shared/workspace.utils.mjs +188 -0
  491. package/esm2022/lib/workspace/widgets/index.mjs +4 -0
  492. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +48 -0
  493. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +19 -0
  494. package/esm2022/lib/workspace/widgets/widgets.mjs +15 -0
  495. package/esm2022/lib/workspace/workspace-selector/workspace-selector.directive.mjs +172 -0
  496. package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +19 -0
  497. package/esm2022/lib/workspace/workspace-updator/workspace-updator.directive.mjs +137 -0
  498. package/esm2022/lib/workspace/workspace-updator/workspace-updator.module.mjs +19 -0
  499. package/esm2022/lib/workspace/workspace.module.mjs +32 -0
  500. package/esm2022/public_api.mjs +56 -0
  501. package/fesm2022/igo2-geo.mjs +717 -691
  502. package/fesm2022/igo2-geo.mjs.map +1 -1
  503. package/lib/datasource/shared/datasources/datasource.d.ts +2 -2
  504. package/lib/directions/shared/directions.service.d.ts +0 -1
  505. package/lib/offline/geoDB/geoDB.service.d.ts +1 -1
  506. package/lib/offline/layerDB/layerDB.service.d.ts +1 -1
  507. package/lib/style/style-list/style-list.provider.d.ts +8 -1
  508. package/lib/style/style-list/style-list.service.d.ts +1 -1
  509. package/package.json +16 -14
  510. package/src/lib/layer/layer-list/layer-list.theme.scss +1 -2
  511. package/src/lib/map/menu-button/menu-button.theming.scss +3 -3
  512. package/src/style/style.scss +1 -1
@@ -0,0 +1,114 @@
1
+ import { Directive } from '@angular/core';
2
+ import { MessageService } from '@igo2/core/message';
3
+ import { NetworkService } from '@igo2/core/network';
4
+ import { SubjectStatus } from '@igo2/utils';
5
+ import { combineLatest, filter } from 'rxjs';
6
+ import { isLayerGroup } from '../../layer';
7
+ import { MapBrowserComponent } from '../map-browser/map-browser.component';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "../map-browser/map-browser.component";
10
+ import * as i2 from "@igo2/core/network";
11
+ import * as i3 from "@igo2/core/message";
12
+ export class MapOfflineDirective {
13
+ networkService;
14
+ messageService;
15
+ component;
16
+ get map() {
17
+ return this.component.map;
18
+ }
19
+ previousMessageId;
20
+ constructor(component, networkService, messageService) {
21
+ this.networkService = networkService;
22
+ this.messageService = messageService;
23
+ this.component = component;
24
+ }
25
+ ngAfterViewInit() {
26
+ const initialOnline = window.navigator.onLine;
27
+ this.map.forcedOffline$.subscribe((forcedOffline) => {
28
+ const online = window.navigator.onLine;
29
+ // prevent first online message if no state change.
30
+ if (initialOnline && initialOnline === online && !forcedOffline) {
31
+ return;
32
+ }
33
+ if (this.previousMessageId) {
34
+ this.messageService.remove(this.previousMessageId);
35
+ }
36
+ if (!forcedOffline && online) {
37
+ const messageObj = this.messageService.info('igo.geo.network.online.message', 'igo.geo.network.online.title');
38
+ this.previousMessageId = messageObj.toastId;
39
+ }
40
+ else if (forcedOffline) {
41
+ const messageObj = this.messageService.info('igo.geo.network.offline.message', 'igo.geo.network.offline.title');
42
+ this.previousMessageId = messageObj.toastId;
43
+ }
44
+ });
45
+ combineLatest([
46
+ this.networkService.currentState(),
47
+ this.map.forcedOffline$,
48
+ this.map.status$.pipe(filter((status) => status === SubjectStatus.Done))
49
+ ]).subscribe((bunch) => {
50
+ const online = bunch[0].connection;
51
+ const forcedOffline = bunch[1];
52
+ this.handleLayersOnlineState(online, forcedOffline, this.map.layerController.all);
53
+ });
54
+ }
55
+ handleNonOfflinableLayerResolution(online, forcedOffline, layer) {
56
+ if (!online || forcedOffline) {
57
+ layer.maxResolution = 0;
58
+ }
59
+ else if (online || !forcedOffline) {
60
+ layer.maxResolution = layer.options.maxResolution || Infinity;
61
+ }
62
+ }
63
+ handleLayersOnlineState(online, forcedOffline, layers) {
64
+ layers.forEach((layer) => {
65
+ if (isLayerGroup(layer)) {
66
+ return;
67
+ }
68
+ let offlinableByUrlSourceOptions;
69
+ if (layer.isIgoInternalLayer) {
70
+ return;
71
+ }
72
+ // detect if layer/source are offlinable by url/pathOffline properties
73
+ if (layer.options.sourceOptions?.pathOffline) {
74
+ offlinableByUrlSourceOptions = layer.options.sourceOptions;
75
+ }
76
+ if (offlinableByUrlSourceOptions) {
77
+ const type = offlinableByUrlSourceOptions.type;
78
+ if (type === 'mvt') {
79
+ layer.ol.getSource().refresh();
80
+ }
81
+ if (!online || forcedOffline) {
82
+ if (['vector', 'cluster'].includes(type)) {
83
+ return;
84
+ }
85
+ layer.ol.getSource().setUrl(offlinableByUrlSourceOptions.pathOffline);
86
+ }
87
+ else if (!online || !forcedOffline) {
88
+ if (['vector', 'cluster'].includes(type)) {
89
+ return;
90
+ }
91
+ layer.ol.getSource().setUrl(offlinableByUrlSourceOptions.url);
92
+ }
93
+ else {
94
+ this.handleNonOfflinableLayerResolution(online, forcedOffline, layer);
95
+ }
96
+ }
97
+ else {
98
+ // FOR ALL NON OFFLINABLE SOURCE (i.e. EXCEPT PREVIOUS);
99
+ this.handleNonOfflinableLayerResolution(online, forcedOffline, layer);
100
+ return;
101
+ }
102
+ });
103
+ }
104
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MapOfflineDirective, deps: [{ token: i1.MapBrowserComponent }, { token: i2.NetworkService }, { token: i3.MessageService }], target: i0.ɵɵFactoryTarget.Directive });
105
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: MapOfflineDirective, isStandalone: true, selector: "[igoMapOffline]", ngImport: i0 });
106
+ }
107
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MapOfflineDirective, decorators: [{
108
+ type: Directive,
109
+ args: [{
110
+ selector: '[igoMapOffline]',
111
+ standalone: true
112
+ }]
113
+ }], ctorParameters: () => [{ type: i1.MapBrowserComponent }, { type: i2.NetworkService }, { type: i3.MessageService }] });
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwT2ZmbGluZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9tYXAvc2hhcmVkL21hcE9mZmxpbmUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUc3QyxPQUFPLEVBQVksWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7OztBQVczRSxNQUFNLE9BQU8sbUJBQW1CO0lBV3BCO0lBQ0E7SUFYRixTQUFTLENBQXNCO0lBRXZDLElBQUksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUM7SUFDNUIsQ0FBQztJQUVPLGlCQUFpQixDQUFDO0lBRTFCLFlBQ0UsU0FBOEIsRUFDdEIsY0FBOEIsRUFDOUIsY0FBOEI7UUFEOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUV0QyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUM3QixDQUFDO0lBRUQsZUFBZTtRQUNiLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO1FBQzlDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGFBQXNCLEVBQUUsRUFBRTtZQUMzRCxNQUFNLE1B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c291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9tZXNzYWdlJztcbmltcG9ydCB7IE5ldHdvcmtTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9uZXR3b3JrJztcbmltcG9ydCB7IFN1YmplY3RTdGF0dXMgfSBmcm9tICdAaWdvMi91dGlscyc7XG5cbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIGZpbHRlciB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL2RhdGFzb3VyY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IEFueUxheWVyLCBpc0xheWVyR3JvdXAgfSBmcm9tICcuLi8uLi9sYXllcic7XG5pbXBvcnQgeyBNYXBCcm93c2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vbWFwLWJyb3dzZXIvbWFwLWJyb3dzZXIuY29tcG9uZW50JztcbmltcG9ydCB7IElnb01hcCB9IGZyb20gJy4vbWFwJztcblxuaW50ZXJmYWNlIE9mZmxpbmFibGVTb3VyY2VPcHRpb25zIGV4dGVuZHMgRGF0YVNvdXJjZU9wdGlvbnMge1xuICBwYXRoT2ZmbGluZT86IHN0cmluZztcbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2lnb01hcE9mZmxpbmVdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNYXBPZmZsaW5lRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIHByaXZhdGUgY29tcG9uZW50OiBNYXBCcm93c2VyQ29tcG9uZW50O1xuXG4gIGdldCBtYXAoKTogSWdvTWFwIHtcbiAgICByZXR1cm4gdGhpcy5jb21wb25lbnQubWFwO1xuICB9XG5cbiAgcHJpdmF0ZSBwcmV2aW91c01lc3NhZ2VJZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBjb21wb25lbnQ6IE1hcEJyb3dzZXJDb21wb25lbnQsXG4gICAgcHJpdmF0ZSBuZXR3b3JrU2VydmljZTogTmV0d29ya1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5jb21wb25lbnQgPSBjb21wb25lbnQ7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgY29uc3QgaW5pdGlhbE9ubGluZSA9IHdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lO1xuICAgIHRoaXMubWFwLmZvcmNlZE9mZmxpbmUkLnN1YnNjcmliZSgoZm9yY2VkT2ZmbGluZTogYm9vbGVhbikgPT4ge1xuICAgICAgY29uc3Qgb25saW5lID0gd2luZG93Lm5hdmlnYXRvci5vbkxpbmU7XG4gICAgICAvLyBwcmV2ZW50IGZpcnN0IG9ubGluZSBtZXNzYWdlIGlmIG5vIHN0YXRlIGNoYW5nZS5cbiAgICAgIGlmIChpbml0aWFsT25saW5lICYmIGluaXRpYWxPbmxpbmUgPT09IG9ubGluZSAmJiAhZm9yY2VkT2ZmbGluZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5wcmV2aW91c01lc3NhZ2VJZCkge1xuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnJlbW92ZSh0aGlzLnByZXZpb3VzTWVzc2FnZUlkKTtcbiAgICAgIH1cbiAgICAgIGlmICghZm9yY2VkT2ZmbGluZSAmJiBvbmxpbmUpIHtcbiAgICAgICAgY29uc3QgbWVzc2FnZU9iaiA9IHRoaXMubWVzc2FnZVNlcnZpY2UuaW5mbyhcbiAgICAgICAgICAnaWdvLmdlby5uZXR3b3JrLm9ubGluZS5tZXNzYWdlJyxcbiAgICAgICAgICAnaWdvLmdlby5uZXR3b3JrLm9ubGluZS50aXRsZSdcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5wcmV2aW91c01lc3NhZ2VJZCA9IG1lc3NhZ2VPYmoudG9hc3RJZDtcbiAgICAgIH0gZWxzZSBpZiAoZm9yY2VkT2ZmbGluZSkge1xuICAgICAgICBjb25zdCBtZXNzYWdlT2JqID0gdGhpcy5tZXNzYWdlU2VydmljZS5pbmZvKFxuICAgICAgICAgICdpZ28uZ2VvLm5ldHdvcmsub2ZmbGluZS5tZXNzYWdlJyxcbiAgICAgICAgICAnaWdvLmdlby5uZXR3b3JrLm9mZmxpbmUudGl0bGUnXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMucHJldmlvdXNNZXNzYWdlSWQgPSBtZXNzYWdlT2JqLnRvYXN0SWQ7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMubmV0d29ya1NlcnZpY2UuY3VycmVudFN0YXRlKCksXG4gICAgICB0aGlzLm1hcC5mb3JjZWRPZmZsaW5lJCxcbiAgICAgIHRoaXMubWFwLnN0YXR1cyQucGlwZShmaWx0ZXIoKHN0YXR1cykgPT4gc3RhdHVzID09PSBTdWJqZWN0U3RhdHVzLkRvbmUpKVxuICAgIF0pLnN1YnNjcmliZSgoYnVuY2gpID0+IHtcbiAgICAgIGNvbnN0IG9ubGluZSA9IGJ1bmNoWzBdLmNvbm5lY3Rpb247XG4gICAgICBjb25zdCBmb3JjZWRPZmZsaW5lID0gYnVuY2hbMV07XG4gICAgICB0aGlzLmhhbmRsZUxheWVyc09ubGluZVN0YXRlKFxuICAgICAgICBvbmxpbmUsXG4gICAgICAgIGZvcmNlZE9mZmxpbmUsXG4gICAgICAgIHRoaXMubWFwLmxheWVyQ29udHJvbGxlci5hbGxcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZU5vbk9mZmxpbmFibGVMYXllclJlc29sdXRpb24oXG4gICAgb25saW5lOiBib29sZWFuLFxuICAgIGZvcmNlZE9mZmxpbmU6IGJvb2xlYW4sXG4gICAgbGF5ZXI6IEFueUxheWVyXG4gICkge1xuICAgIGlmICghb25saW5lIHx8IGZvcmNlZE9mZmxpbmUpIHtcbiAgICAgIGxheWVyLm1heFJlc29sdXRpb24gPSAwO1xuICAgIH0gZWxzZSBpZiAob25saW5lIHx8ICFmb3JjZWRPZmZsaW5lKSB7XG4gICAgICBsYXllci5tYXhSZXNvbHV0aW9uID0gbGF5ZXIub3B0aW9ucy5tYXhSZXNvbHV0aW9uIHx8IEluZmluaXR5O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlTGF5ZXJzT25saW5lU3RhdGUoXG4gICAgb25saW5lOiBib29sZWFuLFxuICAgIGZvcmNlZE9mZmxpbmU6IGJvb2xlYW4sXG4gICAgbGF5ZXJzOiBBbnlMYXllcltdXG4gICkge1xuICAgIGxheWVycy5mb3JFYWNoKChsYXllcikgPT4ge1xuICAgICAgaWYgKGlzTGF5ZXJHcm91cChsYXllcikpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbGV0IG9mZmxpbmFibGVCeVVybFNvdXJjZU9wdGlvbnM7XG4gICAgICBpZiAobGF5ZXIuaXNJZ29JbnRlcm5hbExheWVyKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIC8vIGRldGVjdCBpZiBsYXllci9zb3VyY2UgYXJlIG9mZmxpbmFibGUgYnkgdXJsL3BhdGhPZmZsaW5lIHByb3BlcnRpZXNcbiAgICAgIGlmIChcbiAgICAgICAgKGxheWVyLm9wdGlvbnMuc291cmNlT3B0aW9ucyBhcyBPZmZsaW5hYmxlU291cmNlT3B0aW9ucyk/LnBhdGhPZmZsaW5lXG4gICAgICApIHtcbiAgICAgICAgb2ZmbGluYWJsZUJ5VXJsU291cmNlT3B0aW9ucyA9IGxheWVyLm9wdGlvbnMuc291cmNlT3B0aW9ucztcbiAgICAgIH1cbiAgICAgIGlmIChvZmZsaW5hYmxlQnlVcmxTb3VyY2VPcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHR5cGUgPSBvZmZsaW5hYmxlQnlVcmxTb3VyY2VPcHRpb25zLnR5cGU7XG4gICAgICAgIGlmICh0eXBlID09PSAnbXZ0Jykge1xuICAgICAgICAgIGxheWVyLm9sLmdldFNvdXJjZSgpLnJlZnJlc2goKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIW9ubGluZSB8fCBmb3JjZWRPZmZsaW5lKSB7XG4gICAgICAgICAgaWYgKFsndmVjdG9yJywgJ2NsdXN0ZXInXS5pbmNsdWRlcyh0eXBlKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICAobGF5ZXIub2wuZ2V0U291cmNlKCkgYXMgYW55KS5zZXRVcmwoXG4gICAgICAgICAgICBvZmZsaW5hYmxlQnlVcmxTb3VyY2VPcHRpb25zLnBhdGhPZmZsaW5lXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIGlmICghb25saW5lIHx8ICFmb3JjZWRPZmZsaW5lKSB7XG4gICAgICAgICAgaWYgKFsndmVjdG9yJywgJ2NsdXN0ZXInXS5pbmNsdWRlcyh0eXBlKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICAobGF5ZXIub2wuZ2V0U291cmNlKCkgYXMgYW55KS5zZXRVcmwoXG4gICAgICAgICAgICBvZmZsaW5hYmxlQnlVcmxTb3VyY2VPcHRpb25zLnVybFxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVOb25PZmZsaW5hYmxlTGF5ZXJSZXNvbHV0aW9uKG9ubGluZSwgZm9yY2VkT2ZmbGluZSwgbGF5ZXIpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBGT1IgQUxMIE5PTiBPRkZMSU5BQkxFIFNPVVJDRSAoaS5lLiBFWENFUFQgUFJFVklPVVMpO1xuICAgICAgICB0aGlzLmhhbmRsZU5vbk9mZmxpbmFibGVMYXllclJlc29sdXRpb24ob25saW5lLCBmb3JjZWRPZmZsaW5lLCBsYXllcik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdGlvbi5pbnRlcmZhY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbWFwL3NoYXJlZC9wcm9qZWN0aW9uLmludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgUHJvamVjdGlvbiB7XG4gIGFsaWFzPzogc3RyaW5nO1xuICBjb2RlOiBzdHJpbmc7XG4gIGRlZjogc3RyaW5nO1xuICBleHRlbnQ6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdO1xufVxuZXhwb3J0IGludGVyZmFjZSBJbnB1dFByb2plY3Rpb25zIGV4dGVuZHMgUHJvamVjdGlvbiB7XG4gIHRyYW5zbGF0ZUtleT86IHN0cmluZztcbiAgdHJhbnNsYXRlZFZhbHVlPzogc3RyaW5nO1xuICB6b25lOiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIFByb2plY3Rpb25zTGltaXRhdGlvbnNPcHRpb25zIHtcbiAgcHJvakZyb21Db25maWc/OiBib29sZWFuO1xuICBuYWQ4Mz86IGJvb2xlYW47XG4gIHdnczg0PzogYm9vbGVhbjtcbiAgd2ViTWVyY2F0b3I/OiBib29sZWFuO1xuICB1dG0/OiBib29sZWFuO1xuICBtdG0/OiBib29sZWFuO1xuICB1dG1ab25lPzoge1xuICAgIG1pblpvbmU/OiBudW1iZXI7XG4gICAgbWF4Wm9uZT86IG51bWJlcjtcbiAgfTtcbiAgbXRtWm9uZT86IHtcbiAgICBtaW5ab25lPzogbnVtYmVyO1xuICAgIG1heFpvbmU/OiBudW1iZXI7XG4gIH07XG59XG4iXX0=
@@ -0,0 +1,67 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { ConfigService } from '@igo2/core/config';
3
+ import * as olproj from 'ol/proj';
4
+ import * as olproj4 from 'ol/proj/proj4';
5
+ import proj4 from 'proj4';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@igo2/core/config";
8
+ /**
9
+ * When injected, this service automatically registers and
10
+ * projection defined in the application config. A custom projection
11
+ * needs to be registered to be usable by OL.
12
+ */
13
+ export class ProjectionService {
14
+ config;
15
+ constructor(config) {
16
+ this.config = config;
17
+ const projections = this.config.getConfig('projections') || [];
18
+ projections.forEach((projection) => {
19
+ projection.alias = projection.alias ? projection.alias : projection.code;
20
+ this.registerProjection(projection);
21
+ });
22
+ // register all utm zones
23
+ for (let utmZone = 1; utmZone < 61; utmZone++) {
24
+ const code = utmZone < 10 ? `EPSG:3260${utmZone}` : `EPSG:326${utmZone}`;
25
+ const def = `+proj=utm +zone=${utmZone} +datum=WGS84 +units=m +no_defs`;
26
+ const proj = { code, def, extent: undefined };
27
+ this.registerProjection(proj);
28
+ }
29
+ // register all mtm zones
30
+ for (let mtmZone = 1; mtmZone < 11; mtmZone++) {
31
+ const code = mtmZone < 10 ? `EPSG:3218${mtmZone}` : `EPSG:321${80 + mtmZone}`;
32
+ let lon0;
33
+ if (Number(mtmZone) <= 2) {
34
+ lon0 = -50 - Number(mtmZone) * 3;
35
+ }
36
+ else if (Number(mtmZone) >= 12) {
37
+ lon0 = -81 - (Number(mtmZone) - 12) * 3;
38
+ }
39
+ else {
40
+ lon0 = -49.5 - Number(mtmZone) * 3;
41
+ }
42
+ const def = `+proj=tmerc +lat_0=0 +lon_0=${lon0} +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"`;
43
+ const proj = { code, def, extent: undefined };
44
+ this.registerProjection(proj);
45
+ }
46
+ }
47
+ /**
48
+ * Define a proj4 projection and register it in OL
49
+ * @param projection Projection
50
+ */
51
+ registerProjection(projection) {
52
+ proj4.defs(projection.code, projection.def);
53
+ olproj4.register(proj4);
54
+ if (projection.extent) {
55
+ olproj.get(projection.code).setExtent(projection.extent);
56
+ }
57
+ }
58
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProjectionService, deps: [{ token: i1.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
59
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProjectionService, providedIn: 'root' });
60
+ }
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProjectionService, decorators: [{
62
+ type: Injectable,
63
+ args: [{
64
+ providedIn: 'root'
65
+ }]
66
+ }], ctorParameters: () => [{ type: i1.ConfigService }] });
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbWFwL3NoYXJlZC9wcm9qZWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbEQsT0FBTyxLQUFLLE1BQU0sTUFBTSxTQUFTLENBQUM7QUFDbEMsT0FBTyxLQUFLLE9BQU8sTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDOzs7QUFJMUI7Ozs7R0FJRztBQUlILE1BQU0sT0FBTyxpQkFBaUI7SUFDUjtJQUFwQixZQUFvQixNQUFxQjtRQUFyQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3ZDLE1BQU0sV0FBVyxHQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM3QyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDakMsVUFBVSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1lBQ3pFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztRQUVILHlCQUF5QjtRQUN6QixLQUFLLElBQUksT0FBTyxHQUFHLENBQUMsRUFBRSxPQUFPLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDOUMsTUFBTSxJQUFJLEdBQUcsT0FBTyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxPQUFPLEVBQUUsQ0FBQztZQUN6RSxNQUFNLEdBQUcsR0FBRyxtQkFBbUIsT0FBTyxpQ0FBaUMsQ0FBQztZQUN4RSxNQUFNLElBQUksR0FBZSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDO1lBQzFELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBRUQseUJBQXlCO1FBQ3pCLEtBQUssSUFBSSxPQUFPLEdBQUcsQ0FBQyxFQUFFLE9BQU8sR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUM5QyxNQUFNLElBQUksR0FDUixPQUFPLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQztZQUNuRSxJQUFJLElBQUksQ0FBQztZQUNULElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUN6QixJQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNuQyxDQUFDO2lCQUFNLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO2dCQUNqQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzFDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLEdBQUcsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNyQyxDQUFDO1lBQ0QsTUFBTSxHQUFHLEdBQUcsK0JBQStCLElBQUksc0ZBQXNGLENBQUM7WUFDdEksTUFBTSxJQUFJLEdBQWUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQztZQUMxRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEMsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxrQkFBa0IsQ0FBQyxVQUFzQjtRQUN2QyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsSUFBSSxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdEIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzRCxDQUFDO0lBQ0gsQ0FBQzt3R0E3Q1UsaUJBQWlCOzRHQUFqQixpQkFBaUIsY0FGaEIsTUFBTTs7NEZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUvY29uZmlnJztcblxuaW1wb3J0ICogYXMgb2xwcm9qIGZyb20gJ29sL3Byb2onO1xuaW1wb3J0ICogYXMgb2xwcm9qNCBmcm9tICdvbC9wcm9qL3Byb2o0JztcblxuaW1wb3J0IHByb2o0IGZyb20gJ3Byb2o0JztcblxuaW1wb3J0IHsgUHJvamVjdGlvbiB9IGZyb20gJy4vcHJvamVjdGlvbi5pbnRlcmZhY2VzJztcblxuLyoqXG4gKiBXaGVuIGluamVjdGVkLCB0aGlzIHNlcnZpY2UgYXV0b21hdGljYWxseSByZWdpc3RlcnMgYW5kXG4gKiBwcm9qZWN0aW9uIGRlZmluZWQgaW4gdGhlIGFwcGxpY2F0aW9uIGNvbmZpZy4gQSBjdXN0b20gcHJvamVjdGlvblxuICogbmVlZHMgdG8gYmUgcmVnaXN0ZXJlZCB0byBiZSB1c2FibGUgYnkgT0wuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFByb2plY3Rpb25TZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb25maWc6IENvbmZpZ1NlcnZpY2UpIHtcbiAgICBjb25zdCBwcm9qZWN0aW9uczogUHJvamVjdGlvbltdID1cbiAgICAgIHRoaXMuY29uZmlnLmdldENvbmZpZygncHJvamVjdGlvbnMnKSB8fCBbXTtcbiAgICBwcm9qZWN0aW9ucy5mb3JFYWNoKChwcm9qZWN0aW9uKSA9PiB7XG4gICAgICBwcm9qZWN0aW9uLmFsaWFzID0gcHJvamVjdGlvbi5hbGlhcyA/IHByb2plY3Rpb24uYWxpYXMgOiBwcm9qZWN0aW9uLmNvZGU7XG4gICAgICB0aGlzLnJlZ2lzdGVyUHJvamVjdGlvbihwcm9qZWN0aW9uKTtcbiAgICB9KTtcblxuICAgIC8vIHJlZ2lzdGVyIGFsbCB1dG0gem9uZXNcbiAgICBmb3IgKGxldCB1dG1ab25lID0gMTsgdXRtWm9uZSA8IDYxOyB1dG1ab25lKyspIHtcbiAgICAgIGNvbnN0IGNvZGUgPSB1dG1ab25lIDwgMTAgPyBgRVBTRzozMjYwJHt1dG1ab25lfWAgOiBgRVBTRzozMjYke3V0bVpvbmV9YDtcbiAgICAgIGNvbnN0IGRlZiA9IGArcHJvaj11dG0gK3pvbmU9JHt1dG1ab25lfSArZGF0dW09V0dTODQgK3VuaXRzPW0gK25vX2RlZnNgO1xuICAgICAgY29uc3QgcHJvajogUHJvamVjdGlvbiA9IHsgY29kZSwgZGVmLCBleHRlbnQ6IHVuZGVmaW5lZCB9O1xuICAgICAgdGhpcy5yZWdpc3RlclByb2plY3Rpb24ocHJvaik7XG4gICAgfVxuXG4gICAgLy8gcmVnaXN0ZXIgYWxsIG10bSB6b25lc1xuICAgIGZvciAobGV0IG10bVpvbmUgPSAxOyBtdG1ab25lIDwgMTE7IG10bVpvbmUrKykge1xuICAgICAgY29uc3QgY29kZSA9XG4gICAgICAgIG10bVpvbmUgPCAxMCA/IGBFUFNHOjMyMTgke210bVpvbmV9YCA6IGBFUFNHOjMyMSR7ODAgKyBtdG1ab25lfWA7XG4gICAgICBsZXQgbG9uMDtcbiAgICAgIGlmIChOdW1iZXIobXRtWm9uZSkgPD0gMikge1xuICAgICAgICBsb24wID0gLTUwIC0gTnVtYmVyKG10bVpvbmUpICogMztcbiAgICAgIH0gZWxzZSBpZiAoTnVtYmVyKG10bVpvbmUpID49IDEyKSB7XG4gICAgICAgIGxvbjAgPSAtODEgLSAoTnVtYmVyKG10bVpvbmUpIC0gMTIpICogMztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxvbjAgPSAtNDkuNSAtIE51bWJlcihtdG1ab25lKSAqIDM7XG4gICAgICB9XG4gICAgICBjb25zdCBkZWYgPSBgK3Byb2o9dG1lcmMgK2xhdF8wPTAgK2xvbl8wPSR7bG9uMH0gK2s9MC45OTk5ICt4XzA9MzA0ODAwICt5XzA9MCArZWxscHM9R1JTODAgK3Rvd2dzODQ9MCwwLDAsMCwwLDAsMCArdW5pdHM9bSArbm9fZGVmc1wiYDtcbiAgICAgIGNvbnN0IHByb2o6IFByb2plY3Rpb24gPSB7IGNvZGUsIGRlZiwgZXh0ZW50OiB1bmRlZmluZWQgfTtcbiAgICAgIHRoaXMucmVnaXN0ZXJQcm9qZWN0aW9uKHByb2opO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmUgYSBwcm9qNCBwcm9qZWN0aW9uIGFuZCByZWdpc3RlciBpdCBpbiBPTFxuICAgKiBAcGFyYW0gcHJvamVjdGlvbiBQcm9qZWN0aW9uXG4gICAqL1xuICByZWdpc3RlclByb2plY3Rpb24ocHJvamVjdGlvbjogUHJvamVjdGlvbikge1xuICAgIHByb2o0LmRlZnMocHJvamVjdGlvbi5jb2RlLCBwcm9qZWN0aW9uLmRlZik7XG4gICAgb2xwcm9qNC5yZWdpc3Rlcihwcm9qNCk7XG4gICAgaWYgKHByb2plY3Rpb24uZXh0ZW50KSB7XG4gICAgICBvbHByb2ouZ2V0KHByb2plY3Rpb24uY29kZSkuc2V0RXh0ZW50KHByb2plY3Rpb24uZXh0ZW50KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,122 @@
1
+ import { from } from 'rxjs';
2
+ /**
3
+ * Return a number of zone MTM for a longitude for province of Quebec only
4
+ * @param lon number
5
+ * @returns zone
6
+ */
7
+ export function zoneMtm(lon) {
8
+ let lonMin = -54;
9
+ const lonMax = -81;
10
+ if (lon < lonMax || lon > lonMin) {
11
+ return 0;
12
+ }
13
+ else {
14
+ const deltaLon = 3;
15
+ let zone = 2;
16
+ while (Math.abs(lon - lonMin) > deltaLon) {
17
+ lonMin = lonMin - deltaLon;
18
+ zone++;
19
+ }
20
+ return zone;
21
+ }
22
+ }
23
+ /**
24
+ * Return a number of zone UTM for a longitude
25
+ * @param lon number
26
+ * @returns zone
27
+ */
28
+ export function zoneUtm(lon) {
29
+ let lonMin = -180;
30
+ const deltaLon = 6;
31
+ let zone = 1;
32
+ while (Math.abs(lon - lonMin) > deltaLon) {
33
+ lonMin = lonMin + deltaLon;
34
+ zone++;
35
+ }
36
+ return zone;
37
+ }
38
+ /**
39
+ * Compute the contraints of projections
40
+ * @param projectionsLimitations: ProjectionsLimitationsOptions
41
+ * @returns projectionsContraints: ProjectionsLimitationsOptions
42
+ */
43
+ export function computeProjectionsConstraints(projectionsLimitations) {
44
+ const mtmZone = projectionsLimitations.mtmZone;
45
+ const utmZone = projectionsLimitations.utmZone;
46
+ const projectionsConstraints = {
47
+ projFromConfig: projectionsLimitations.projFromConfig === false ? false : true,
48
+ nad83: projectionsLimitations.nad83 === false ? false : true,
49
+ wgs84: projectionsLimitations.wgs84 === false ? false : true,
50
+ webMercator: projectionsLimitations.webMercator === false ? false : true,
51
+ utm: projectionsLimitations.utm === false ? false : true,
52
+ mtm: projectionsLimitations.mtm === false ? false : true,
53
+ utmZone: {
54
+ minZone: utmZone && utmZone.minZone ? utmZone.minZone : 17,
55
+ maxZone: utmZone && utmZone.maxZone ? utmZone.maxZone : 21
56
+ },
57
+ mtmZone: {
58
+ minZone: mtmZone && mtmZone.minZone ? mtmZone.minZone : 2,
59
+ maxZone: mtmZone && mtmZone.maxZone ? mtmZone.maxZone : 10
60
+ }
61
+ };
62
+ return projectionsConstraints;
63
+ }
64
+ /**
65
+ * Method allowing to read the file and try to detect projection/Coord system
66
+ * Only geojson/json/gml could be detected at this moment.
67
+ * @param options A file and an optional number of line to read the EPSG Code. Used only for GML files
68
+ * @returns Observable string, epsgNotDefined if the EPSG is not detected or a EPSG string ex: EPSG:3857
69
+ */
70
+ export function detectFileEPSG(options) {
71
+ const file = options.file;
72
+ const nbLines = options.nbLines ?? 500;
73
+ const reader = new FileReader();
74
+ return from(new Promise((resolve) => {
75
+ if (!file.name.toLowerCase().endsWith('.geojson') &&
76
+ !file.name.toLowerCase().endsWith('.json') &&
77
+ !file.name.toLowerCase().endsWith('.gml')) {
78
+ resolve('epsgNotDefined');
79
+ return;
80
+ }
81
+ reader.onload = () => {
82
+ if (file.name.toLowerCase().endsWith('.geojson') ||
83
+ file.name.toLowerCase().endsWith('.json')) {
84
+ const geojson = JSON.parse(reader.result);
85
+ if (geojson.crs?.properties?.name) {
86
+ const epsg = geojson.crs.properties.name.match(/EPSG:{1,2}\d{0,6}/gm);
87
+ if (epsg !== null && epsg.length) {
88
+ resolve(epsg[0].replace(/::/g, ':'));
89
+ return;
90
+ }
91
+ else {
92
+ resolve('epsgNotDefined');
93
+ return;
94
+ }
95
+ }
96
+ else {
97
+ resolve('epsgNotDefined');
98
+ return;
99
+ }
100
+ }
101
+ else if (file.name.toLowerCase().endsWith('.gml')) {
102
+ const text = reader.result;
103
+ const lines = text.split('\n');
104
+ for (let line = 0; line <= nbLines; line++) {
105
+ const epsg = lines[line].match(/EPSG:\d{0,6}/gm);
106
+ if (epsg !== null && epsg.length) {
107
+ resolve(epsg[0]);
108
+ break;
109
+ }
110
+ else {
111
+ resolve(undefined);
112
+ }
113
+ }
114
+ }
115
+ else {
116
+ resolve('epsgNotDefined');
117
+ }
118
+ };
119
+ reader.readAsText(file, 'UTF-8');
120
+ }));
121
+ }
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdGlvbi51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL21hcC9zaGFyZWQvcHJvamVjdGlvbi51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSXhDOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsT0FBTyxDQUFDLEdBQVc7SUFDakMsSUFBSSxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7SUFDakIsTUFBTSxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7SUFDbkIsSUFBSSxHQUFHLEdBQUcsTUFBTSxJQUFJLEdBQUcsR0FBRyxNQUFNLEVBQUUsQ0FBQztRQUNqQyxPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNiLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsUUFBUSxFQUFFLENBQUM7WUFDekMsTUFBTSxHQUFHLE1BQU0sR0FBRyxRQUFRLENBQUM7WUFDM0IsSUFBSSxFQUFFLENBQUM7UUFDVCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0FBQ0gsQ0FBQztBQUNEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsT0FBTyxDQUFDLEdBQVc7SUFDakMsSUFBSSxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQUM7SUFDbEIsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0lBQ25CLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQztJQUNiLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsUUFBUSxFQUFFLENBQUM7UUFDekMsTUFBTSxHQUFHLE1BQU0sR0FBRyxRQUFRLENB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QUNqRCxJQUFJLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO3dCQUNqQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQ2pCLE1BQU07b0JBQ1IsQ0FBQzt5QkFBTSxDQUFDO3dCQUNOLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztvQkFDckIsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzVCLENBQUM7UUFDSCxDQUFDLENBQUM7UUFDRixNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNuQyxDQUFDLENBQUMsQ0FDSCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIGZyb20gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgUHJvamVjdGlvbnNMaW1pdGF0aW9uc09wdGlvbnMgfSBmcm9tICcuL3Byb2plY3Rpb24uaW50ZXJmYWNlcyc7XG5cbi8qKlxuICogUmV0dXJuIGEgbnVtYmVyIG9mIHpvbmUgTVRNIGZvciBhIGxvbmdpdHVkZSBmb3IgcHJvdmluY2Ugb2YgUXVlYmVjIG9ubHlcbiAqIEBwYXJhbSBsb24gbnVtYmVyXG4gKiBAcmV0dXJucyB6b25lXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB6b25lTXRtKGxvbjogbnVtYmVyKTogbnVtYmVyIHtcbiAgbGV0IGxvbk1pbiA9IC01NDtcbiAgY29uc3QgbG9uTWF4ID0gLTgxO1xuICBpZiAobG9uIDwgbG9uTWF4IHx8IGxvbiA+IGxvbk1pbikge1xuICAgIHJldHVybiAwO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGRlbHRhTG9uID0gMztcbiAgICBsZXQgem9uZSA9IDI7XG4gICAgd2hpbGUgKE1hdGguYWJzKGxvbiAtIGxvbk1pbikgPiBkZWx0YUxvbikge1xuICAgICAgbG9uTWluID0gbG9uTWluIC0gZGVsdGFMb247XG4gICAgICB6b25lKys7XG4gICAgfVxuICAgIHJldHVybiB6b25lO1xuICB9XG59XG4vKipcbiAqIFJldHVybiBhIG51bWJlciBvZiB6b25lIFVUTSBmb3IgYSBsb25naXR1ZGVcbiAqIEBwYXJhbSBsb24gbnVtYmVyXG4gKiBAcmV0dXJucyB6b25lXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB6b25lVXRtKGxvbjogbnVtYmVyKTogbnVtYmVyIHtcbiAgbGV0IGxvbk1pbiA9IC0xODA7XG4gIGNvbnN0IGRlbHRhTG9uID0gNjtcbiAgbGV0IHpvbmUgPSAxO1xuICB3aGlsZSAoTWF0aC5hYnMobG9uIC0gbG9uTWluKSA+IGRlbHRhTG9uKSB7XG4gICAgbG9uTWluID0gbG9uTWluICsgZGVsdGFMb247XG4gICAgem9uZSsrO1xuICB9XG4gIHJldHVybiB6b25lO1xufVxuXG4vKipcbiAqIENvbXB1dGUgdGhlIGNvbnRyYWludHMgb2YgcHJvamVjdGlvbnNcbiAqIEBwYXJhbSBwcm9qZWN0aW9uc0xpbWl0YXRpb25zOiBQcm9qZWN0aW9uc0xpbWl0YXRpb25zT3B0aW9uc1xuICogQHJldHVybnMgcHJvamVjdGlvbnNDb250cmFpbnRzOiBQcm9qZWN0aW9uc0xpbWl0YXRpb25zT3B0aW9uc1xuICovXG5leHBvcnQgZnVuY3Rpb24gY29tcHV0ZVByb2plY3Rpb25zQ29uc3RyYWludHMoXG4gIHByb2plY3Rpb25zTGltaXRhdGlvbnM6IFByb2plY3Rpb25zTGltaXRhdGlvbnNPcHRpb25zXG4pOiBQcm9qZWN0aW9uc0xpbWl0YXRpb25zT3B0aW9ucyB7XG4gIGNvbnN0IG10bVpvbmUgPSBwcm9qZWN0aW9uc0xpbWl0YXRpb25zLm10bVpvbmU7XG4gIGNvbnN0IHV0bVpvbmUgPSBwcm9qZWN0aW9uc0xpbWl0YXRpb25zLnV0bVpvbmU7XG4gIGNvbnN0IHByb2plY3Rpb25zQ29uc3RyYWludHMgPSB7XG4gICAgcHJvakZyb21Db25maWc6XG4gICAgICBwcm9qZWN0aW9uc0xpbWl0YXRpb25zLnByb2pGcm9tQ29uZmlnID09PSBmYWxzZSA/IGZhbHNlIDogdHJ1ZSxcbiAgICBuYWQ4MzogcHJvamVjdGlvbnNMaW1pdGF0aW9ucy5uYWQ4MyA9PT0gZmFsc2UgPyBmYWxzZSA6IHRydWUsXG4gICAgd2dzODQ6IHByb2plY3Rpb25zTGltaXRhdGlvbnMud2dzODQgPT09IGZhbHNlID8gZmFsc2UgOiB0cnVlLFxuICAgIHdlYk1lcmNhdG9yOiBwcm9qZWN0aW9uc0xpbWl0YXRpb25zLndlYk1lcmNhdG9yID09PSBmYWxzZSA/IGZhbHNlIDogdHJ1ZSxcbiAgICB1dG06IHByb2plY3Rpb25zTGltaXRhdGlvbnMudXRtID09PSBmYWxzZSA/IGZhbHNlIDogdHJ1ZSxcbiAgICBtdG06IHByb2plY3Rpb25zTGltaXRhdGlvbnMubXRtID09PSBmYWxzZSA/IGZhbHNlIDogdHJ1ZSxcbiAgICB1dG1ab25lOiB7XG4gICAgICBtaW5ab25lOiB1dG1ab25lICYmIHV0bVpvbmUubWluWm9uZSA/IHV0bVpvbmUubWluWm9uZSA6IDE3LFxuICAgICAgbWF4Wm9uZTogdXRtWm9uZSAmJiB1dG1ab25lLm1heFpvbmUgPyB1dG1ab25lLm1heFpvbmUgOiAyMVxuICAgIH0sXG4gICAgbXRtWm9uZToge1xuICAgICAgbWluWm9uZTogbXRtWm9uZSAmJiBtdG1ab25lLm1pblpvbmUgPyBtdG1ab25lLm1pblpvbmUgOiAyLFxuICAgICAgbWF4Wm9uZTogbXRtWm9uZSAmJiBtdG1ab25lLm1heFpvbmUgPyBtdG1ab25lLm1heFpvbmUgOiAxMFxuICAgIH1cbiAgfTtcbiAgcmV0dXJuIHByb2plY3Rpb25zQ29uc3RyYWludHM7XG59XG4vKipcbiAqIE1ldGhvZCBhbGxvd2luZyB0byByZWFkIHRoZSBmaWxlIGFuZCB0cnkgdG8gZGV0ZWN0IHByb2plY3Rpb24vQ29vcmQgc3lzdGVtXG4gKiBPbmx5IGdlb2pzb24vanNvbi9nbWwgY291bGQgYmUgZGV0ZWN0ZWQgYXQgdGhpcyBtb21lbnQuXG4gKiBAcGFyYW0gb3B0aW9ucyBBIGZpbGUgYW5kIGFuIG9wdGlvbmFsIG51bWJlciBvZiBsaW5lIHRvIHJlYWQgdGhlIEVQU0cgQ29kZS4gVXNlZCBvbmx5IGZvciBHTUwgZmlsZXNcbiAqIEByZXR1cm5zIE9ic2VydmFibGUgc3RyaW5nLCBlcHNnTm90RGVmaW5lZCBpZiB0aGUgRVBTRyBpcyBub3QgZGV0ZWN0ZWQgb3IgYSBFUFNHIHN0cmluZyBleDogRVBTRzozODU3XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZXRlY3RGaWxlRVBTRyhvcHRpb25zOiB7XG4gIGZpbGU6IEZpbGU7XG4gIG5iTGluZXM/OiBudW1iZXI7XG59KTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgY29uc3QgZmlsZSA9IG9wdGlvbnMuZmlsZTtcbiAgY29uc3QgbmJMaW5lcyA9IG9wdGlvbnMubmJMaW5lcyA/PyA1MDA7XG5cbiAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgcmV0dXJuIGZyb20oXG4gICAgbmV3IFByb21pc2U8c3RyaW5nPigocmVzb2x2ZSkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICAhZmlsZS5uYW1lLnRvTG93ZXJDYXNlKCkuZW5kc1dpdGgoJy5nZW9qc29uJykgJiZcbiAgICAgICAgIWZpbGUubmFtZS50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKCcuanNvbicpICYmXG4gICAgICAgICFmaWxlLm5hbWUudG9Mb3dlckNhc2UoKS5lbmRzV2l0aCgnLmdtbCcpXG4gICAgICApIHtcbiAgICAgICAgcmVzb2x2ZSgnZXBzZ05vdERlZmluZWQnKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICByZWFkZXIub25sb2FkID0gKCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZmlsZS5uYW1lLnRvTG93ZXJDYXNlKCkuZW5kc1dpdGgoJy5nZW9qc29uJykgfHxcbiAgICAgICAgICBmaWxlLm5hbWUudG9Mb3dlckNhc2UoKS5lbmRzV2l0aCgnLmpzb24nKVxuICAgICAgICApIHtcbiAgICAgICAgICBjb25zdCBnZW9qc29uID0gSlNPTi5wYXJzZShyZWFkZXIucmVzdWx0IGFzIHN0cmluZyk7XG4gICAgICAgICAgaWYgKGdlb2pzb24uY3JzPy5wcm9wZXJ0aWVzPy5uYW1lKSB7XG4gICAgICAgICAgICBjb25zdCBlcHNnID1cbiAgICAgICAgICAgICAgZ2VvanNvbi5jcnMucHJvcGVydGllcy5uYW1lLm1hdGNoKC9FUFNHOnsxLDJ9XFxkezAsNn0vZ20pO1xuICAgICAgICAgICAgaWYgKGVwc2cgIT09IG51bGwgJiYgZXBzZy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgcmVzb2x2ZShlcHNnWzBdLnJlcGxhY2UoLzo6L2csICc6JykpO1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXNvbHZlKCdlcHNnTm90RGVmaW5lZCcpO1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc29sdmUoJ2Vwc2dOb3REZWZpbmVkJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGZpbGUubmFtZS50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKCcuZ21sJykpIHtcbiAgICAgICAgICBjb25zdCB0ZXh0ID0gcmVhZGVyLnJlc3VsdCBhcyBzdHJpbmc7XG4gICAgICAgICAgY29uc3QgbGluZXMgPSAodGV4dCBhcyBzdHJpbmcpLnNwbGl0KCdcXG4nKTtcbiAgICAgICAgICBmb3IgKGxldCBsaW5lID0gMDsgbGluZSA8PSBuYkxpbmVzOyBsaW5lKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGVwc2cgPSBsaW5lc1tsaW5lXS5tYXRjaCgvRVBTRzpcXGR7MCw2fS9nbSk7XG4gICAgICAgICAgICBpZiAoZXBzZyAhPT0gbnVsbCAmJiBlcHNnLmxlbmd0aCkge1xuICAgICAgICAgICAgICByZXNvbHZlKGVwc2dbMF0pO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJlc29sdmUodW5kZWZpbmVkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzb2x2ZSgnZXBzZ05vdERlZmluZWQnKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIHJlYWRlci5yZWFkQXNUZXh0KGZpbGUsICdVVEYtOCcpO1xuICAgIH0pXG4gICk7XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './swipe-control.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9tYXAvc3dpcGUtY29udHJvbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zd2lwZS1jb250cm9sLmNvbXBvbmVudCc7XG4iXX0=
@@ -0,0 +1,211 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { getRenderPixel } from 'ol/render';
3
+ import { IgoMap } from '../shared/map';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * Tool to swipe the layers
7
+ */
8
+ export class SwipeControlComponent {
9
+ /**
10
+ * Get an active map
11
+ */
12
+ map;
13
+ /**
14
+ * The list of layers for swipe
15
+ */
16
+ layers;
17
+ /**
18
+ * Final position of the swiped element
19
+ */
20
+ pos1;
21
+ /**
22
+ * Intermediate position of the swiped element
23
+ */
24
+ pos3;
25
+ /**
26
+ * State of draggable action
27
+ */
28
+ inDragAction = false;
29
+ /**
30
+ * Listener of toggle from advanced-map-tool
31
+ */
32
+ swipeEnabled$$;
33
+ /**
34
+ * Binder of prerender on the same element
35
+ */
36
+ boundPrerender = this.prerender.bind(this);
37
+ /**
38
+ * Get the list of layers for swipe and activate of deactivate the swipe
39
+ * @internal
40
+ */
41
+ ngAfterViewInit() {
42
+ this.getListOfLayers();
43
+ this.swipeEnabled$$ = this.map.swipeEnabled$.subscribe((value) => {
44
+ value ? this.displaySwipe() : this.displaySwipeOff();
45
+ });
46
+ this.letZoom();
47
+ }
48
+ /**
49
+ * Clear the overlay layer and any interaction added by this component.
50
+ * @internal
51
+ */
52
+ ngOnDestroy() {
53
+ this.swipeEnabled$$.unsubscribe();
54
+ this.map.swipeEnabled$.unsubscribe();
55
+ this.displaySwipeOff();
56
+ }
57
+ /**
58
+ * Display a swipe-element and render the layers
59
+ */
60
+ displaySwipe() {
61
+ if (this.swipeId) {
62
+ this.swipeId.style.visibility = 'visible';
63
+ }
64
+ this.layers.map((layer) => layer.ol.on('prerender', this.boundPrerender));
65
+ this.layers.map((layer) => layer.ol.on('postrender', this.postrender));
66
+ this.map.ol.render();
67
+ }
68
+ /**
69
+ * Clear a swipe-element and render the layers on the initial state
70
+ */
71
+ displaySwipeOff() {
72
+ if (this.swipeId) {
73
+ this.swipeId.style.visibility = 'hidden';
74
+ }
75
+ this.layers.map((layer) => layer.ol.un('prerender', this.boundPrerender));
76
+ this.layers.map((layer) => layer.ol.un('postrender', this.postrender));
77
+ this.map.ol.render();
78
+ this.layers = [];
79
+ }
80
+ /**
81
+ * Getter of element
82
+ */
83
+ get swipeId() {
84
+ return document.getElementById('igo-layer-swipe');
85
+ }
86
+ /**
87
+ * Get the list of layers for swipe
88
+ */
89
+ getListOfLayers() {
90
+ this.map.selectedFeatures$.subscribe((layers) => {
91
+ this.layers = [];
92
+ if (layers !== null) {
93
+ for (const layer of layers) {
94
+ if (!this.layers.includes(layer)) {
95
+ this.layers.push(layer);
96
+ }
97
+ }
98
+ }
99
+ });
100
+ }
101
+ /**
102
+ * Get a position of click or touch
103
+ */
104
+ dragDown(event) {
105
+ this.inDragAction = true;
106
+ event.preventDefault();
107
+ if (event.type === 'mousedown') {
108
+ this.pos3 = event.clientX;
109
+ this.mouseSwipe();
110
+ document.onmouseup = this.closeDragMouseElement;
111
+ }
112
+ else if (event.type === 'touchstart') {
113
+ document.getElementById('arrows').style.visibility = 'hidden';
114
+ this.pos3 = event.touches[0].clientX;
115
+ this.touchSwipe();
116
+ document.ontouchend = this.closeDragTouchElement;
117
+ }
118
+ }
119
+ /**
120
+ * Moving a line with a mouse
121
+ */
122
+ mouseSwipe() {
123
+ document.addEventListener('mousemove', (event) => {
124
+ if (this.inDragAction) {
125
+ event.preventDefault();
126
+ this.pos1 = this.pos3 - event.clientX;
127
+ this.pos3 = event.clientX;
128
+ this.swipeId.style.left = this.swipeId.offsetLeft - this.pos1 + 'px';
129
+ }
130
+ this.map.ol.render();
131
+ });
132
+ }
133
+ /**
134
+ * Moving a line with a touch
135
+ */
136
+ touchSwipe() {
137
+ document.addEventListener('touchmove', (event) => {
138
+ if (this.inDragAction) {
139
+ event.preventDefault();
140
+ document.getElementById('arrows').style.visibility = 'hidden';
141
+ this.pos1 = this.pos3 - event.changedTouches[0].clientX;
142
+ this.pos3 = event.changedTouches[0].clientX;
143
+ this.swipeId.style.left = this.swipeId.offsetLeft - this.pos1 + 'px';
144
+ }
145
+ this.map.ol.render();
146
+ });
147
+ }
148
+ /**
149
+ * Deactivate a listener of a mouse-action
150
+ */
151
+ closeDragMouseElement() {
152
+ document.onmouseup = null;
153
+ document.onmousemove = null;
154
+ this.inDragAction = false;
155
+ }
156
+ /**
157
+ * Deactivate a listener of a touch-action
158
+ */
159
+ closeDragTouchElement() {
160
+ document.ontouchend = null;
161
+ document.ontouchmove = null;
162
+ document.getElementById('arrows').style.visibility = 'visible';
163
+ this.inDragAction = false;
164
+ }
165
+ /**
166
+ * Cut the image of a layer by the position of swiped-element
167
+ */
168
+ prerender(event) {
169
+ const ctx = event.context;
170
+ const mapSize = this.map.ol.getSize();
171
+ const width = this.swipeId.offsetLeft;
172
+ const tl = getRenderPixel(event, [width, 0]);
173
+ const tr = getRenderPixel(event, [0, 0]);
174
+ const bl = getRenderPixel(event, [width, mapSize[1]]);
175
+ const br = getRenderPixel(event, [0, mapSize[1]]);
176
+ ctx.save();
177
+ ctx.beginPath();
178
+ ctx.moveTo(tl[0], tl[1]);
179
+ ctx.lineTo(bl[0], bl[1]);
180
+ ctx.lineTo(br[0], br[1]);
181
+ ctx.lineTo(tr[0], tr[1]);
182
+ ctx.closePath();
183
+ ctx.clip();
184
+ }
185
+ /**
186
+ * Save a current state of the context
187
+ */
188
+ postrender(event) {
189
+ event.context.restore();
190
+ event.context.save();
191
+ }
192
+ /**
193
+ * Zoom on div
194
+ */
195
+ letZoom() {
196
+ document.getElementById('igo-layer-swipe').addEventListener('wheel', (event) => {
197
+ event.deltaY > 0
198
+ ? this.map.viewController.zoomOut()
199
+ : this.map.viewController.zoomIn();
200
+ }, true);
201
+ }
202
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SwipeControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
203
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SwipeControlComponent, isStandalone: true, selector: "igo-swipe-control", inputs: { map: "map" }, ngImport: i0, template: "<div\n class=\"igo-swipe-control-container\"\n id=\"igo-layer-swipe\"\n (mousedown)=\"dragDown($event)\"\n (mouseup)=\"closeDragMouseElement()\"\n (touchstart)=\"dragDown($event)\"\n (touchend)=\"closeDragTouchElement()\"\n>\n <div class=\"igo-swipe-control-line\"></div>\n\n <div class=\"igo-swipe-control-arrows\" id=\"arrows\">\n <div class=\"igo-arrow-left\"></div>\n <div class=\"igo-arrow-right\"></div>\n </div>\n</div>\n", styles: [".igo-swipe-control-container{position:absolute;width:80px;height:100%;top:0%;left:50%;cursor:grab;z-index:1;transform:translate(-40px)}.igo-swipe-control-container:active{cursor:grabbing}.igo-swipe-control-line{position:absolute;width:4px;height:100%;top:50%;left:50%;transform:translate(-50%,-50%);background-color:#5e5a5a}.igo-swipe-control-arrows{position:absolute;width:32px;height:32px;left:50%;top:50%;transform:translate(-50%,-50%);margin-top:-16px;padding:5px 4px;background-color:#5e5a5a;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0)}.igo-swipe-control-arrows div{display:inline-block;width:0;height:0;border-top:10px solid transparent;border-bottom:10px solid transparent}.igo-swipe-control-arrows .igo-arrow-right{margin-left:4px;border-left:10px solid white}.igo-swipe-control-arrows .igo-arrow-left{border-right:10px solid white}.igo-swipe-control-arrows:active{display:none}\n"] });
204
+ }
205
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SwipeControlComponent, decorators: [{
206
+ type: Component,
207
+ args: [{ selector: 'igo-swipe-control', standalone: true, template: "<div\n class=\"igo-swipe-control-container\"\n id=\"igo-layer-swipe\"\n (mousedown)=\"dragDown($event)\"\n (mouseup)=\"closeDragMouseElement()\"\n (touchstart)=\"dragDown($event)\"\n (touchend)=\"closeDragTouchElement()\"\n>\n <div class=\"igo-swipe-control-line\"></div>\n\n <div class=\"igo-swipe-control-arrows\" id=\"arrows\">\n <div class=\"igo-arrow-left\"></div>\n <div class=\"igo-arrow-right\"></div>\n </div>\n</div>\n", styles: [".igo-swipe-control-container{position:absolute;width:80px;height:100%;top:0%;left:50%;cursor:grab;z-index:1;transform:translate(-40px)}.igo-swipe-control-container:active{cursor:grabbing}.igo-swipe-control-line{position:absolute;width:4px;height:100%;top:50%;left:50%;transform:translate(-50%,-50%);background-color:#5e5a5a}.igo-swipe-control-arrows{position:absolute;width:32px;height:32px;left:50%;top:50%;transform:translate(-50%,-50%);margin-top:-16px;padding:5px 4px;background-color:#5e5a5a;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0)}.igo-swipe-control-arrows div{display:inline-block;width:0;height:0;border-top:10px solid transparent;border-bottom:10px solid transparent}.igo-swipe-control-arrows .igo-arrow-right{margin-left:4px;border-left:10px solid white}.igo-swipe-control-arrows .igo-arrow-left{border-right:10px solid white}.igo-swipe-control-arrows:active{display:none}\n"] }]
208
+ }], propDecorators: { map: [{
209
+ type: Input
210
+ }] } });
211
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpcGUtY29udHJvbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9tYXAvc3dpcGUtY29udHJvbC9zd2lwZS1jb250cm9sLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL21hcC9zd2lwZS1jb250cm9sL3N3aXBlLWNvbnRyb2wuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRTNFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFLM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFdkM7O0dBRUc7QUFPSCxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDOztPQUVHO0lBQ00sR0FBRyxDQUFTO0lBRXJCOztPQUVHO0lBQ0ssTUFBTSxDQUFVO0lBRXhCOztPQUVHO0lBQ0ssSUFBSSxDQUFTO0lBRXJCOztPQUVHO0lBQ0ssSUFBSSxDQUFTO0lBRXJCOztPQUVHO0lBQ0ssWUFBWSxHQUFHLEtBQUssQ0FBQztJQUU3Qjs7T0FFRztJQUNLLGNBQWMsQ0FBZTtJQUVyQzs7T0FFRztJQUNLLGNBQWMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVuRDs7O09BR0c7SUFDSCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDL0QsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFl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QUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNoQixHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDYixDQUFDO0lBRUQ7O09BRUc7SUFDSCxVQUFVLENBQUMsS0FBSztRQUNkLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDeEIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQ7O09BRUc7SUFDSyxPQUFPO1FBQ2IsUUFBUSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLGdCQUFnQixDQUN6RCxPQUFPLEVBQ1AsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNSLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQztnQkFDZCxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFO2dCQUNuQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDdkMsQ0FBQyxFQUNELElBQUksQ0FDTCxDQUFDO0lBQ0osQ0FBQzt3R0F4TlUscUJBQXFCOzRGQUFyQixxQkFBcUIscUdDbEJsQyw2YkFlQTs7NEZER2EscUJBQXFCO2tCQU5qQyxTQUFTOytCQUNFLG1CQUFtQixjQUdqQixJQUFJOzhCQU1QLEdBQUc7c0JBQVgsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBnZXRSZW5kZXJQaXhlbCB9IGZyb20gJ29sL3JlbmRlcic7XG5cbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBMYXllciB9IGZyb20gJy4uLy4uL2xheWVyJztcbmltcG9ydCB7IElnb01hcCB9IGZyb20gJy4uL3NoYXJlZC9tYXAnO1xuXG4vKipcbiAqIFRvb2wgdG8gc3dpcGUgdGhlIGxheWVyc1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZ28tc3dpcGUtY29udHJvbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zd2lwZS1jb250cm9sLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3dpcGUtY29udHJvbC5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFN3aXBlQ29udHJvbENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBHZXQgYW4gYWN0aXZlIG1hcFxuICAgKi9cbiAgQElucHV0KCkgbWFwOiBJZ29NYXA7XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIGxheWVycyBmb3Igc3dpcGVcbiAgICovXG4gIHByaXZhdGUgbGF5ZXJzOiBMYXllcltdO1xuXG4gIC8qKlxuICAgKiBGaW5hbCBwb3NpdGlvbiBvZiB0aGUgc3dpcGVkIGVsZW1lbnRcbiAgICovXG4gIHByaXZhdGUgcG9zMTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBJbnRlcm1lZGlhdGUgcG9zaXRpb24gb2YgdGhlIHN3aXBlZCBlbGVtZW50XG4gICAqL1xuICBwcml2YXRlIHBvczM6IG51bWJlcjtcblxuICAvKipcbiAgICogU3RhdGUgb2YgZHJhZ2dhYmxlIGFjdGlvblxuICAgKi9cbiAgcHJpdmF0ZSBpbkRyYWdBY3Rpb24gPSBmYWxzZTtcblxuICAvKipcbiAgICogTGlzdGVuZXIgb2YgdG9nZ2xlIGZyb20gYWR2YW5jZWQtbWFwLXRvb2xcbiAgICovXG4gIHByaXZhdGUgc3dpcGVFbmFibGVkJCQ6IFN1YnNjcmlwdGlvbjtcblxuICAvKipcbiAgICogQmluZGVyIG9mIHByZXJlbmRlciBvbiB0aGUgc2FtZSBlbGVtZW50XG4gICAqL1xuICBwcml2YXRlIGJvdW5kUHJlcmVuZGVyID0gdGhpcy5wcmVyZW5kZXIuYmluZCh0aGlzKTtcblxuICAvKipcbiAgICogR2V0IHRoZSBsaXN0IG9mIGxheWVycyBmb3Igc3dpcGUgYW5kIGFjdGl2YXRlIG9mIGRlYWN0aXZhdGUgdGhlIHN3aXBlXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0TGlzdE9mTGF5ZXJzKCk7XG4gICAgdGhpcy5zd2lwZUVuYWJsZWQkJCA9IHRoaXMubWFwLnN3aXBlRW5hYmxlZCQuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgdmFsdWUgPyB0aGlzLmRpc3BsYXlTd2lwZSgpIDogdGhpcy5kaXNwbGF5U3dpcGVPZmYoKTtcbiAgICB9KTtcbiAgICB0aGlzLmxldFpvb20oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhciB0aGUgb3ZlcmxheSBsYXllciBhbmQgYW55IGludGVyYWN0aW9uIGFkZGVkIGJ5IHRoaXMgY29tcG9uZW50LlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3dpcGVFbmFibGVkJCQudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLm1hcC5zd2lwZUVuYWJsZWQkLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5kaXNwbGF5U3dpcGVPZmYoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNwbGF5IGEgc3dpcGUtZWxlbWVudCBhbmQgcmVuZGVyIHRoZSBsYXllcnNcbiAgICovXG4gIGRpc3BsYXlTd2lwZSgpIHtcbiAgICBpZiAodGhpcy5zd2lwZUlkKSB7XG4gICAgICB0aGlzLnN3aXBlSWQuc3R5bGUudmlzaWJpbGl0eSA9ICd2aXNpYmxlJztcbiAgICB9XG4gICAgdGhpcy5sYXllcnMubWFwKChsYXllcikgPT4gbGF5ZXIub2wub24oJ3ByZXJlbmRlcicsIHRoaXMuYm91bmRQcmVyZW5kZXIpKTtcbiAgICB0aGlzLmxheWVycy5tYXAoKGxheWVyKSA9PiBsYXllci5vbC5vbigncG9zdHJlbmRlcicsIHRoaXMucG9zdHJlbmRlcikpO1xuICAgIHRoaXMubWFwLm9sLnJlbmRlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFyIGEgc3dpcGUtZWxlbWVudCBhbmQgcmVuZGVyIHRoZSBsYXllcnMgb24gdGhlIGluaXRpYWwgc3RhdGVcbiAgICovXG4gIGRpc3BsYXlTd2lwZU9mZigpIHtcbiAgICBpZiAodGhpcy5zd2lwZUlkKSB7XG4gICAgICB0aGlzLnN3aXBlSWQuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuICAgIH1cbiAgICB0aGlzLmxheWVycy5tYXAoKGxheWVyKSA9PiBsYXllci5vbC51bigncHJlcmVuZGVyJywgdGhpcy5ib3VuZFByZXJlbmRlcikpO1xuICAgIHRoaXMubGF5ZXJzLm1hcCgobGF5ZXIpID0+IGxheWVyLm9sLnVuKCdwb3N0cmVuZGVyJywgdGhpcy5wb3N0cmVuZGVyKSk7XG4gICAgdGhpcy5tYXAub2wucmVuZGVyKCk7XG4gICAgdGhpcy5sYXllcnMgPSBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXR0ZXIgb2YgZWxlbWVudFxuICAgKi9cbiAgZ2V0IHN3aXBlSWQoKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZ28tbGF5ZXItc3dpcGUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGxpc3Qgb2YgbGF5ZXJzIGZvciBzd2lwZVxuICAgKi9cbiAgZ2V0TGlzdE9mTGF5ZXJzKCkge1xuICAgIHRoaXMubWFwLnNlbGVjdGVkRmVhdHVyZXMkLnN1YnNjcmliZSgobGF5ZXJzKSA9PiB7XG4gICAgICB0aGlzLmxheWVycyA9IFtdO1xuICAgICAgaWYgKGxheWVycyAhPT0gbnVsbCkge1xuICAgICAgICBmb3IgKGNvbnN0IGxheWVyIG9mIGxheWVycykge1xuICAgICAgICAgIGlmICghdGhpcy5sYXllcnMuaW5jbHVkZXMobGF5ZXIpKSB7XG4gICAgICAgICAgICB0aGlzLmxheWVycy5wdXNoKGxheWVyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYSBwb3NpdGlvbiBvZiBjbGljayBvciB0b3VjaFxuICAgKi9cbiAgZHJhZ0Rvd24oZXZlbnQpIHtcbiAgICB0aGlzLmluRHJhZ0FjdGlvbiA9IHRydWU7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ21vdXNlZG93bicpIHtcbiAgICAgIHRoaXMucG9zMyA9IGV2ZW50LmNsaWVudFg7XG4gICAgICB0aGlzLm1vdXNlU3dpcGUoKTtcbiAgICAgIGRvY3VtZW50Lm9ubW91c2V1cCA9IHRoaXMuY2xvc2VEcmFnTW91c2VFbGVtZW50O1xuICAgIH0gZWxzZSBpZiAoZXZlbnQudHlwZSA9PT0gJ3RvdWNoc3RhcnQnKSB7XG4gICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYXJyb3dzJykuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuICAgICAgdGhpcy5wb3MzID0gZXZlbnQudG91Y2hlc1swXS5jbGllbnRYO1xuICAgICAgdGhpcy50b3VjaFN3aXBlKCk7XG4gICAgICBkb2N1bWVudC5vbnRvdWNoZW5kID0gdGhpcy5jbG9zZURyYWdUb3VjaEVsZW1lbnQ7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1vdmluZyBhIGxpbmUgd2l0aCBhIG1vdXNlXG4gICAqL1xuICBtb3VzZVN3aXBlKCkge1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIChldmVudCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaW5EcmFnQWN0aW9uKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMucG9zMSA9IHRoaXMucG9zMyAtIGV2ZW50LmNsaWVudFg7XG4gICAgICAgIHRoaXMucG9zMyA9IGV2ZW50LmNsaWVudFg7XG4gICAgICAgIHRoaXMuc3dpcGVJZC5zdHlsZS5sZWZ0ID0gdGhpcy5zd2lwZUlkLm9mZnNldExlZnQgLSB0aGlzLnBvczEgKyAncHgnO1xuICAgICAgfVxuICAgICAgdGhpcy5tYXAub2wucmVuZGVyKCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTW92aW5nIGEgbGluZSB3aXRoIGEgdG91Y2hcbiAgICovXG4gIHRvdWNoU3dpcGUoKSB7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgKGV2ZW50KSA9PiB7XG4gICAgICBpZiAodGhpcy5pbkRyYWdBY3Rpb24pIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Fycm93cycpLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcbiAgICAgICAgdGhpcy5wb3MxID0gdGhpcy5wb3MzIC0gZXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WDtcbiAgICAgICAgdGhpcy5wb3MzID0gZXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WDtcbiAgICAgICAgdGhpcy5zd2lwZUlkLnN0eWxlLmxlZnQgPSB0aGlzLnN3aXBlSWQub2Zmc2V0TGVmdCAtIHRoaXMucG9zMSArICdweCc7XG4gICAgICB9XG4gICAgICB0aGlzLm1hcC5vbC5yZW5kZXIoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWFjdGl2YXRlIGEgbGlzdGVuZXIgb2YgYSBtb3VzZS1hY3Rpb25cbiAgICovXG4gIGNsb3NlRHJhZ01vdXNlRWxlbWVudCgpIHtcbiAgICBkb2N1bWVudC5vbm1vdXNldXAgPSBudWxsO1xuICAgIGRvY3VtZW50Lm9ubW91c2Vtb3ZlID0gbnVsbDtcbiAgICB0aGlzLmluRHJhZ0FjdGlvbiA9IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIERlYWN0aXZhdGUgYSBsaXN0ZW5lciBvZiBhIHRvdWNoLWFjdGlvblxuICAgKi9cbiAgY2xvc2VEcmFnVG91Y2hFbGVtZW50KCkge1xuICAgIGRvY3VtZW50Lm9udG91Y2hlbmQgPSBudWxsO1xuICAgIGRvY3VtZW50Lm9udG91Y2htb3ZlID0gbnVsbDtcbiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYXJyb3dzJykuc3R5bGUudmlzaWJpbGl0eSA9ICd2aXNpYmxlJztcbiAgICB0aGlzLmluRHJhZ0FjdGlvbiA9IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEN1dCB0aGUgaW1hZ2Ugb2YgYSBsYXllciBieSB0aGUgcG9zaXRpb24gb2Ygc3dpcGVkLWVsZW1lbnRcbiAgICovXG4gIHByZXJlbmRlcihldmVudCkge1xuICAgIGNvbnN0IGN0eCA9IGV2ZW50LmNvbnRleHQ7XG4gICAgY29uc3QgbWFwU2l6ZSA9IHRoaXMubWFwLm9sLmdldFNpemUoKTtcbiAgICBjb25zdCB3aWR0aCA9IHRoaXMuc3dpcGVJZC5vZmZzZXRMZWZ0O1xuICAgIGNvbnN0IHRsID0gZ2V0UmVuZGVyUGl4ZWwoZXZlbnQsIFt3aWR0aCwgMF0pO1xuICAgIGNvbnN0IHRyID0gZ2V0UmVuZGVyUGl4ZWwoZXZlbnQsIFswLCAwXSk7XG4gICAgY29uc3QgYmwgPSBnZXRSZW5kZXJQaXhlbChldmVudCwgW3dpZHRoLCBtYXBTaXplWzFdXSk7XG4gICAgY29uc3QgYnIgPSBnZXRSZW5kZXJQaXhlbChldmVudCwgWzAsIG1hcFNpemVbMV1dKTtcbiAgICBjdHguc2F2ZSgpO1xuICAgIGN0eC5iZWdpblBhdGgoKTtcbiAgICBjdHgubW92ZVRvKHRsWzBdLCB0bFsxXSk7XG4gICAgY3R4LmxpbmVUbyhibFswXSwgYmxbMV0pO1xuICAgIGN0eC5saW5lVG8oYnJbMF0sIGJyWzFdKTtcbiAgICBjdHgubGluZVRvKHRyWzBdLCB0clsxXSk7XG4gICAgY3R4LmNsb3NlUGF0aCgpO1xuICAgIGN0eC5jbGlwKCk7XG4gIH1cblxuICAvKipcbiAgICogU2F2ZSBhIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGNvbnRleHRcbiAgICovXG4gIHBvc3RyZW5kZXIoZXZlbnQpIHtcbiAgICBldmVudC5jb250ZXh0LnJlc3RvcmUoKTtcbiAgICBldmVudC5jb250ZXh0LnNhdmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBab29tIG9uIGRpdlxuICAgKi9cbiAgcHJpdmF0ZSBsZXRab29tKCkge1xuICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZ28tbGF5ZXItc3dpcGUnKS5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ3doZWVsJyxcbiAgICAgIChldmVudCkgPT4ge1xuICAgICAgICBldmVudC5kZWx0YVkgPiAwXG4gICAgICAgICAgPyB0aGlzLm1hcC52aWV3Q29udHJvbGxlci56b29tT3V0KClcbiAgICAgICAgICA6IHRoaXMubWFwLnZpZXdDb250cm9sbGVyLnpvb21JbigpO1xuICAgICAgfSxcbiAgICAgIHRydWVcbiAgICApO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiaWdvLXN3aXBlLWNvbnRyb2wtY29udGFpbmVyXCJcbiAgaWQ9XCJpZ28tbGF5ZXItc3dpcGVcIlxuICAobW91c2Vkb3duKT1cImRyYWdEb3duKCRldmVudClcIlxuICAobW91c2V1cCk9XCJjbG9zZURyYWdNb3VzZUVsZW1lbnQoKVwiXG4gICh0b3VjaHN0YXJ0KT1cImRyYWdEb3duKCRldmVudClcIlxuICAodG91Y2hlbmQpPVwiY2xvc2VEcmFnVG91Y2hFbGVtZW50KClcIlxuPlxuICA8ZGl2IGNsYXNzPVwiaWdvLXN3aXBlLWNvbnRyb2wtbGluZVwiPjwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJpZ28tc3dpcGUtY29udHJvbC1hcnJvd3NcIiBpZD1cImFycm93c1wiPlxuICAgIDxkaXYgY2xhc3M9XCJpZ28tYXJyb3ctbGVmdFwiPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJpZ28tYXJyb3ctcmlnaHRcIj48L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './layer-watcher';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9tYXAvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGF5ZXItd2F0Y2hlcic7XG4iXX0=