@igo2/geo 1.12.1 → 1.13.0-alpha.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 (963) hide show
  1. package/assets/icons/cross_black_18px.svg +88 -88
  2. package/assets/icons/place_blue_36px.svg +55 -55
  3. package/assets/icons/place_green_36px.svg +55 -55
  4. package/assets/icons/place_red_36px.svg +55 -55
  5. package/assets/icons/place_yellow_36px.svg +55 -55
  6. package/{esm2015/igo2-geo.js → esm2020/igo2-geo.mjs} +0 -0
  7. package/esm2020/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +299 -0
  8. package/esm2020/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +268 -0
  9. package/esm2020/lib/catalog/catalog-browser/catalog-browser.component.mjs +244 -0
  10. package/esm2020/lib/catalog/catalog-browser/catalog-browser.module.mjs +80 -0
  11. package/esm2020/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +209 -0
  12. package/esm2020/lib/catalog/catalog-library/catalog-library-item.component.mjs +79 -0
  13. package/esm2020/lib/catalog/catalog-library/catalog-library.component.mjs +217 -0
  14. package/esm2020/lib/catalog/catalog-library/catalog-library.module.mjs +95 -0
  15. package/esm2020/lib/catalog/catalog.module.mjs +53 -0
  16. package/esm2020/lib/catalog/index.mjs +5 -0
  17. package/esm2020/lib/catalog/shared/catalog.abstract.mjs +95 -0
  18. package/esm2020/lib/catalog/shared/catalog.enum.mjs +16 -0
  19. package/esm2020/lib/catalog/shared/catalog.interface.mjs +2 -0
  20. package/esm2020/lib/catalog/shared/catalog.service.mjs +606 -0
  21. package/esm2020/lib/catalog/shared/index.mjs +5 -0
  22. package/esm2020/lib/datasource/datasource.module.mjs +22 -0
  23. package/esm2020/lib/datasource/index.mjs +3 -0
  24. package/esm2020/lib/datasource/shared/capabilities.service.mjs +426 -0
  25. package/esm2020/lib/datasource/shared/datasource.service.mjs +236 -0
  26. package/esm2020/lib/datasource/shared/datasources/any-datasource.interface.mjs +2 -0
  27. package/esm2020/lib/datasource/shared/datasources/any-datasource.mjs +2 -0
  28. package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.interface.mjs +2 -0
  29. package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +145 -0
  30. package/esm2020/lib/datasource/shared/datasources/carto-datasource.interface.mjs +2 -0
  31. package/esm2020/lib/datasource/shared/datasources/carto-datasource.mjs +109 -0
  32. package/esm2020/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +2 -0
  33. package/esm2020/lib/datasource/shared/datasources/cluster-datasource.mjs +15 -0
  34. package/esm2020/lib/datasource/shared/datasources/data.service.mjs +3 -0
  35. package/esm2020/lib/datasource/shared/datasources/datasource.interface.mjs +2 -0
  36. package/esm2020/lib/datasource/shared/datasources/datasource.mjs +29 -0
  37. package/esm2020/lib/datasource/shared/datasources/feature-datasource.interface.mjs +2 -0
  38. package/esm2020/lib/datasource/shared/datasources/feature-datasource.mjs +43 -0
  39. package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.mjs +2 -0
  40. package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +57 -0
  41. package/esm2020/lib/datasource/shared/datasources/index.mjs +36 -0
  42. package/esm2020/lib/datasource/shared/datasources/mvt-datasource.interface.mjs +2 -0
  43. package/esm2020/lib/datasource/shared/datasources/mvt-datasource.mjs +28 -0
  44. package/esm2020/lib/datasource/shared/datasources/osm-datasource.interface.mjs +2 -0
  45. package/esm2020/lib/datasource/shared/datasources/osm-datasource.mjs +12 -0
  46. package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.mjs +2 -0
  47. package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +49 -0
  48. package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.interface.mjs +2 -0
  49. package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.mjs +15 -0
  50. package/esm2020/lib/datasource/shared/datasources/websocket-datasource.interface.mjs +2 -0
  51. package/esm2020/lib/datasource/shared/datasources/websocket-datasource.mjs +54 -0
  52. package/esm2020/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +2 -0
  53. package/esm2020/lib/datasource/shared/datasources/wfs-datasource.mjs +74 -0
  54. package/esm2020/lib/datasource/shared/datasources/wfs.service.mjs +152 -0
  55. package/esm2020/lib/datasource/shared/datasources/wms-datasource.interface.mjs +2 -0
  56. package/esm2020/lib/datasource/shared/datasources/wms-datasource.mjs +205 -0
  57. package/esm2020/lib/datasource/shared/datasources/wms-wfs.utils.mjs +207 -0
  58. package/esm2020/lib/datasource/shared/datasources/wmts-datasource.interface.mjs +2 -0
  59. package/esm2020/lib/datasource/shared/datasources/wmts-datasource.mjs +16 -0
  60. package/esm2020/lib/datasource/shared/datasources/xyz-datasource.interface.mjs +2 -0
  61. package/esm2020/lib/datasource/shared/datasources/xyz-datasource.mjs +9 -0
  62. package/esm2020/lib/datasource/shared/index.mjs +5 -0
  63. package/esm2020/lib/datasource/shared/options/index.mjs +5 -0
  64. package/esm2020/lib/datasource/shared/options/options-api.interface.mjs +2 -0
  65. package/esm2020/lib/datasource/shared/options/options-api.providers.mjs +15 -0
  66. package/esm2020/lib/datasource/shared/options/options-api.service.mjs +81 -0
  67. package/esm2020/lib/datasource/shared/options/options.service.mjs +3 -0
  68. package/esm2020/lib/datasource/utils/esri-style-generator.mjs +357 -0
  69. package/esm2020/lib/datasource/utils/index.mjs +3 -0
  70. package/esm2020/lib/datasource/utils/tilegrid.mjs +20 -0
  71. package/esm2020/lib/directions/directions-buttons/directions-buttons.component.mjs +224 -0
  72. package/esm2020/lib/directions/directions-buttons/index.mjs +2 -0
  73. package/esm2020/lib/directions/directions-inputs/directions-inputs.component.mjs +290 -0
  74. package/esm2020/lib/directions/directions-inputs/index.mjs +2 -0
  75. package/esm2020/lib/directions/directions-results/directions-results.component.mjs +196 -0
  76. package/esm2020/lib/directions/directions-results/index.mjs +2 -0
  77. package/esm2020/lib/directions/directions-sources/directions-source.interface.mjs +2 -0
  78. package/esm2020/lib/directions/directions-sources/directions-source.mjs +3 -0
  79. package/esm2020/lib/directions/directions-sources/directions-source.provider.mjs +16 -0
  80. package/esm2020/lib/directions/directions-sources/index.mjs +5 -0
  81. package/esm2020/lib/directions/directions-sources/osrm-directions-source.mjs +99 -0
  82. package/esm2020/lib/directions/directions.component.mjs +311 -0
  83. package/esm2020/lib/directions/directions.module.mjs +102 -0
  84. package/esm2020/lib/directions/index.mjs +7 -0
  85. package/esm2020/lib/directions/shared/directions-source.service.mjs +17 -0
  86. package/esm2020/lib/directions/shared/directions.enum.mjs +28 -0
  87. package/esm2020/lib/directions/shared/directions.interface.mjs +2 -0
  88. package/esm2020/lib/directions/shared/directions.service.mjs +29 -0
  89. package/esm2020/lib/directions/shared/directions.utils.mjs +510 -0
  90. package/esm2020/lib/directions/shared/index.mjs +6 -0
  91. package/esm2020/lib/directions/shared/store.mjs +24 -0
  92. package/esm2020/lib/download/download-button/download-button.component.mjs +61 -0
  93. package/esm2020/lib/download/download-button/index.mjs +2 -0
  94. package/esm2020/lib/download/download.module.mjs +42 -0
  95. package/esm2020/lib/download/index.mjs +3 -0
  96. package/esm2020/lib/download/shared/download.interface.mjs +2 -0
  97. package/esm2020/lib/download/shared/download.service.mjs +65 -0
  98. package/esm2020/lib/download/shared/index.mjs +3 -0
  99. package/esm2020/lib/draw/draw/draw-popup.component.mjs +61 -0
  100. package/esm2020/lib/draw/draw/draw-shorcuts.component.mjs +48 -0
  101. package/esm2020/lib/draw/draw/draw.component.mjs +714 -0
  102. package/esm2020/lib/draw/draw/draw.module.mjs +100 -0
  103. package/esm2020/lib/draw/drawingTool.module.mjs +20 -0
  104. package/esm2020/lib/draw/index.mjs +3 -0
  105. package/esm2020/lib/draw/shared/draw-icon.service.mjs +27 -0
  106. package/esm2020/lib/draw/shared/draw-style.service.mjs +173 -0
  107. package/esm2020/lib/draw/shared/draw.enum.mjs +24 -0
  108. package/esm2020/lib/draw/shared/draw.interface.mjs +2 -0
  109. package/esm2020/lib/draw/shared/draw.utils.mjs +104 -0
  110. package/esm2020/lib/draw/shared/index.mjs +6 -0
  111. package/esm2020/lib/feature/feature-details/feature-details.component.mjs +377 -0
  112. package/esm2020/lib/feature/feature-details/feature-details.directive.mjs +54 -0
  113. package/esm2020/lib/feature/feature-details/feature-details.module.mjs +48 -0
  114. package/esm2020/lib/feature/feature-form/feature-form.component.mjs +112 -0
  115. package/esm2020/lib/feature/feature-form/feature-form.module.mjs +34 -0
  116. package/esm2020/lib/feature/feature.module.mjs +28 -0
  117. package/esm2020/lib/feature/index.mjs +4 -0
  118. package/esm2020/lib/feature/shared/feature.enums.mjs +9 -0
  119. package/esm2020/lib/feature/shared/feature.interfaces.mjs +2 -0
  120. package/esm2020/lib/feature/shared/feature.utils.mjs +348 -0
  121. package/esm2020/lib/feature/shared/index.mjs +7 -0
  122. package/esm2020/lib/feature/shared/store.mjs +112 -0
  123. package/esm2020/lib/feature/shared/strategies/in-map-extent.mjs +113 -0
  124. package/esm2020/lib/feature/shared/strategies/in-map-resolution.mjs +94 -0
  125. package/esm2020/lib/feature/shared/strategies/index.mjs +6 -0
  126. package/esm2020/lib/feature/shared/strategies/loading-layer.mjs +104 -0
  127. package/esm2020/lib/feature/shared/strategies/loading.mjs +133 -0
  128. package/esm2020/lib/feature/shared/strategies/selection.mjs +370 -0
  129. package/esm2020/lib/feature/shared/strategies.utils.mjs +37 -0
  130. package/esm2020/lib/filter/filter.module.mjs +289 -0
  131. package/esm2020/lib/filter/index.mjs +16 -0
  132. package/esm2020/lib/filter/ogc-filter-button/index.mjs +2 -0
  133. package/esm2020/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +140 -0
  134. package/esm2020/lib/filter/ogc-filter-form/index.mjs +2 -0
  135. package/esm2020/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +645 -0
  136. package/esm2020/lib/filter/ogc-filter-selection/index.mjs +2 -0
  137. package/esm2020/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +1302 -0
  138. package/esm2020/lib/filter/ogc-filter-time/index.mjs +3 -0
  139. package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +177 -0
  140. package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +871 -0
  141. package/esm2020/lib/filter/ogc-filterable-form/index.mjs +2 -0
  142. package/esm2020/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +59 -0
  143. package/esm2020/lib/filter/ogc-filterable-item/index.mjs +2 -0
  144. package/esm2020/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +302 -0
  145. package/esm2020/lib/filter/ogc-filterable-list/index.mjs +3 -0
  146. package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +31 -0
  147. package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +31 -0
  148. package/esm2020/lib/filter/shared/filterable-datasource.pipe.mjs +55 -0
  149. package/esm2020/lib/filter/shared/index.mjs +12 -0
  150. package/esm2020/lib/filter/shared/ogc-filter-time.service.mjs +72 -0
  151. package/esm2020/lib/filter/shared/ogc-filter.enum.mjs +30 -0
  152. package/esm2020/lib/filter/shared/ogc-filter.interface.mjs +2 -0
  153. package/esm2020/lib/filter/shared/ogc-filter.mjs +692 -0
  154. package/esm2020/lib/filter/shared/ogc-filter.service.mjs +46 -0
  155. package/esm2020/lib/filter/shared/spatial-filter.enum.mjs +23 -0
  156. package/esm2020/lib/filter/shared/spatial-filter.interface.mjs +2 -0
  157. package/esm2020/lib/filter/shared/spatial-filter.service.mjs +269 -0
  158. package/esm2020/lib/filter/shared/time-filter.enum.mjs +13 -0
  159. package/esm2020/lib/filter/shared/time-filter.interface.mjs +2 -0
  160. package/esm2020/lib/filter/shared/time-filter.service.mjs +107 -0
  161. package/esm2020/lib/filter/spatial-filter/spatial-filter-item/index.mjs +2 -0
  162. package/esm2020/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +1076 -0
  163. package/esm2020/lib/filter/spatial-filter/spatial-filter-list/index.mjs +2 -0
  164. package/esm2020/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +208 -0
  165. package/esm2020/lib/filter/spatial-filter/spatial-filter-type/index.mjs +2 -0
  166. package/esm2020/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +144 -0
  167. package/esm2020/lib/filter/time-filter-button/index.mjs +2 -0
  168. package/esm2020/lib/filter/time-filter-button/time-filter-button.component.mjs +78 -0
  169. package/esm2020/lib/filter/time-filter-form/index.mjs +2 -0
  170. package/esm2020/lib/filter/time-filter-form/time-filter-form.component.mjs +734 -0
  171. package/esm2020/lib/filter/time-filter-item/index.mjs +2 -0
  172. package/esm2020/lib/filter/time-filter-item/time-filter-item.component.mjs +119 -0
  173. package/esm2020/lib/filter/time-filter-list/index.mjs +3 -0
  174. package/esm2020/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +31 -0
  175. package/esm2020/lib/filter/time-filter-list/time-filter-list.component.mjs +39 -0
  176. package/esm2020/lib/geo.module.mjs +102 -0
  177. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +511 -0
  178. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +189 -0
  179. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +64 -0
  180. package/esm2020/lib/geometry/geometry.module.mjs +27 -0
  181. package/esm2020/lib/geometry/index.mjs +4 -0
  182. package/esm2020/lib/geometry/shared/controls/draw.mjs +271 -0
  183. package/esm2020/lib/geometry/shared/controls/index.mjs +4 -0
  184. package/esm2020/lib/geometry/shared/controls/modify.mjs +521 -0
  185. package/esm2020/lib/geometry/shared/controls/slice.mjs +177 -0
  186. package/esm2020/lib/geometry/shared/geometry.errors.mjs +26 -0
  187. package/esm2020/lib/geometry/shared/geometry.interfaces.mjs +2 -0
  188. package/esm2020/lib/geometry/shared/geometry.utils.mjs +122 -0
  189. package/esm2020/lib/geometry/shared/index.mjs +5 -0
  190. package/esm2020/lib/import-export/export-button/export-button.component.mjs +64 -0
  191. package/esm2020/lib/import-export/export-button/index.mjs +2 -0
  192. package/esm2020/lib/import-export/import-export/import-export.component.mjs +1190 -0
  193. package/esm2020/lib/import-export/import-export/index.mjs +2 -0
  194. package/esm2020/lib/import-export/import-export.module.mjs +93 -0
  195. package/esm2020/lib/import-export/index.mjs +5 -0
  196. package/esm2020/lib/import-export/shared/drop-geo-file.directive.mjs +135 -0
  197. package/esm2020/lib/import-export/shared/export.errors.mjs +15 -0
  198. package/esm2020/lib/import-export/shared/export.interface.mjs +2 -0
  199. package/esm2020/lib/import-export/shared/export.service.mjs +195 -0
  200. package/esm2020/lib/import-export/shared/export.type.mjs +4 -0
  201. package/esm2020/lib/import-export/shared/export.utils.mjs +55 -0
  202. package/esm2020/lib/import-export/shared/import.errors.mjs +39 -0
  203. package/esm2020/lib/import-export/shared/import.interface.mjs +2 -0
  204. package/esm2020/lib/import-export/shared/import.service.mjs +195 -0
  205. package/esm2020/lib/import-export/shared/import.utils.mjs +234 -0
  206. package/esm2020/lib/import-export/shared/index.mjs +11 -0
  207. package/esm2020/lib/import-export/style-list/index.mjs +5 -0
  208. package/esm2020/lib/import-export/style-list/style-list.interface.mjs +2 -0
  209. package/esm2020/lib/import-export/style-list/style-list.module.mjs +23 -0
  210. package/esm2020/lib/import-export/style-list/style-list.provider.mjs +21 -0
  211. package/esm2020/lib/import-export/style-list/style-list.service.mjs +51 -0
  212. package/esm2020/lib/layer/index.mjs +10 -0
  213. package/esm2020/lib/layer/layer-item/index.mjs +2 -0
  214. package/esm2020/lib/layer/layer-item/layer-item.component.mjs +300 -0
  215. package/esm2020/lib/layer/layer-legend/index.mjs +2 -0
  216. package/esm2020/lib/layer/layer-legend/layer-legend.component.mjs +382 -0
  217. package/esm2020/lib/layer/layer-legend-item/index.mjs +2 -0
  218. package/esm2020/lib/layer/layer-legend-item/layer-legend-item.component.mjs +84 -0
  219. package/esm2020/lib/layer/layer-legend-list/index.mjs +3 -0
  220. package/esm2020/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +48 -0
  221. package/esm2020/lib/layer/layer-legend-list/layer-legend-list.component.mjs +195 -0
  222. package/esm2020/lib/layer/layer-list/index.mjs +4 -0
  223. package/esm2020/lib/layer/layer-list/layer-list-binding.directive.mjs +59 -0
  224. package/esm2020/lib/layer/layer-list/layer-list.component.mjs +1024 -0
  225. package/esm2020/lib/layer/layer-list/layer-list.enum.mjs +19 -0
  226. package/esm2020/lib/layer/layer-list-tool/index.mjs +5 -0
  227. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.component.mjs +165 -0
  228. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.enum.mjs +7 -0
  229. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.interface.mjs +2 -0
  230. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.service.mjs +22 -0
  231. package/esm2020/lib/layer/layer.module.mjs +173 -0
  232. package/esm2020/lib/layer/shared/clusterParam.mjs +2 -0
  233. package/esm2020/lib/layer/shared/index.mjs +7 -0
  234. package/esm2020/lib/layer/shared/layer.enums.mjs +2 -0
  235. package/esm2020/lib/layer/shared/layer.service.mjs +186 -0
  236. package/esm2020/lib/layer/shared/layers/any-layer.interface.mjs +2 -0
  237. package/esm2020/lib/layer/shared/layers/any-layer.mjs +2 -0
  238. package/esm2020/lib/layer/shared/layers/image-layer.interface.mjs +2 -0
  239. package/esm2020/lib/layer/shared/layers/image-layer.mjs +68 -0
  240. package/esm2020/lib/layer/shared/layers/index.mjs +13 -0
  241. package/esm2020/lib/layer/shared/layers/layer.interface.mjs +17 -0
  242. package/esm2020/lib/layer/shared/layers/layer.mjs +170 -0
  243. package/esm2020/lib/layer/shared/layers/tile-layer.interface.mjs +2 -0
  244. package/esm2020/lib/layer/shared/layers/tile-layer.mjs +47 -0
  245. package/esm2020/lib/layer/shared/layers/vector-layer.interface.mjs +2 -0
  246. package/esm2020/lib/layer/shared/layers/vector-layer.mjs +376 -0
  247. package/esm2020/lib/layer/shared/layers/vectortile-layer.interface.mjs +2 -0
  248. package/esm2020/lib/layer/shared/layers/vectortile-layer.mjs +104 -0
  249. package/esm2020/lib/layer/shared/style.service.mjs +356 -0
  250. package/esm2020/lib/layer/shared/vector-style.interface.mjs +2 -0
  251. package/esm2020/lib/layer/track-feature-button/index.mjs +2 -0
  252. package/esm2020/lib/layer/track-feature-button/track-feature-button.component.mjs +59 -0
  253. package/esm2020/lib/layer/utils/image-watcher.mjs +62 -0
  254. package/esm2020/lib/layer/utils/index.mjs +7 -0
  255. package/esm2020/lib/layer/utils/layer.utils.mjs +10 -0
  256. package/esm2020/lib/layer/utils/layerSync-watcher.mjs +242 -0
  257. package/esm2020/lib/layer/utils/outputLegend.mjs +27 -0
  258. package/esm2020/lib/layer/utils/tile-watcher.mjs +50 -0
  259. package/esm2020/lib/layer/utils/vector-watcher.mjs +48 -0
  260. package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.animation.mjs +20 -0
  261. package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +97 -0
  262. package/esm2020/lib/map/baselayers-switcher/index.mjs +3 -0
  263. package/esm2020/lib/map/baselayers-switcher/mini-basemap.component.mjs +133 -0
  264. package/esm2020/lib/map/geolocate-button/geolocate-button.component.mjs +76 -0
  265. package/esm2020/lib/map/geolocate-button/index.mjs +2 -0
  266. package/esm2020/lib/map/home-extent-button/home-extent-button.component.mjs +63 -0
  267. package/{esm2015/lib/map/home-extent-button/index.js → esm2020/lib/map/home-extent-button/index.mjs} +0 -0
  268. package/esm2020/lib/map/index.mjs +14 -0
  269. package/esm2020/lib/map/info-section/index.mjs +2 -0
  270. package/esm2020/lib/map/info-section/info-section.component.mjs +30 -0
  271. package/esm2020/lib/map/map-browser/index.mjs +2 -0
  272. package/esm2020/lib/map/map-browser/map-browser.component.mjs +66 -0
  273. package/esm2020/lib/map/map-center/index.mjs +2 -0
  274. package/esm2020/lib/map/map-center/map-center.component.mjs +50 -0
  275. package/esm2020/lib/map/map.module.mjs +127 -0
  276. package/esm2020/lib/map/menu-button/index.mjs +2 -0
  277. package/esm2020/lib/map/menu-button/menu-button.component.mjs +62 -0
  278. package/esm2020/lib/map/offline-button/index.mjs +2 -0
  279. package/esm2020/lib/map/offline-button/offline-button.component.mjs +76 -0
  280. package/esm2020/lib/map/rotation-button/index.mjs +2 -0
  281. package/esm2020/lib/map/rotation-button/rotation-button.component.mjs +91 -0
  282. package/esm2020/lib/map/shared/controllers/controller.mjs +42 -0
  283. package/esm2020/lib/map/shared/controllers/geolocation.mjs +308 -0
  284. package/esm2020/lib/map/shared/controllers/index.mjs +4 -0
  285. package/esm2020/lib/map/shared/controllers/view.mjs +342 -0
  286. package/esm2020/lib/map/shared/hover-feature.directive.mjs +506 -0
  287. package/esm2020/lib/map/shared/index.mjs +13 -0
  288. package/esm2020/lib/map/shared/map-pointer-position.directive.mjs +107 -0
  289. package/esm2020/lib/map/shared/map.enums.mjs +6 -0
  290. package/esm2020/lib/map/shared/map.interface.mjs +2 -0
  291. package/esm2020/lib/map/shared/map.mjs +417 -0
  292. package/esm2020/lib/map/shared/map.service.mjs +29 -0
  293. package/esm2020/lib/map/shared/map.utils.mjs +459 -0
  294. package/esm2020/lib/map/shared/mapOffline.directive.mjs +163 -0
  295. package/esm2020/lib/map/shared/projection.interfaces.mjs +2 -0
  296. package/esm2020/lib/map/shared/projection.service.mjs +65 -0
  297. package/esm2020/lib/map/shared/projection.utils.mjs +64 -0
  298. package/esm2020/lib/map/swipe-control/index.mjs +2 -0
  299. package/esm2020/lib/map/swipe-control/swipe-control.component.mjs +193 -0
  300. package/esm2020/lib/map/utils/layer-watcher.mjs +58 -0
  301. package/esm2020/lib/map/wake-lock-button/index.mjs +2 -0
  302. package/esm2020/lib/map/wake-lock-button/wake-lock-button.component.mjs +114 -0
  303. package/esm2020/lib/map/zoom-button/index.mjs +2 -0
  304. package/esm2020/lib/map/zoom-button/zoom-button.component.mjs +40 -0
  305. package/esm2020/lib/measure/index.mjs +4 -0
  306. package/esm2020/lib/measure/measure.module.mjs +20 -0
  307. package/esm2020/lib/measure/measurer/measure-format.pipe.mjs +37 -0
  308. package/esm2020/lib/measure/measurer/measurer-dialog.component.mjs +180 -0
  309. package/esm2020/lib/measure/measurer/measurer-item.component.mjs +140 -0
  310. package/esm2020/lib/measure/measurer/measurer.component.mjs +1042 -0
  311. package/esm2020/lib/measure/measurer/measurer.module.mjs +94 -0
  312. package/esm2020/lib/measure/shared/index.mjs +4 -0
  313. package/esm2020/lib/measure/shared/measure.enum.mjs +37 -0
  314. package/esm2020/lib/measure/shared/measure.interfaces.mjs +2 -0
  315. package/esm2020/lib/measure/shared/measure.utils.mjs +489 -0
  316. package/esm2020/lib/metadata/index.mjs +3 -0
  317. package/esm2020/lib/metadata/metadata-button/index.mjs +2 -0
  318. package/esm2020/lib/metadata/metadata-button/metadata-button.component.mjs +134 -0
  319. package/esm2020/lib/metadata/metadata.module.mjs +55 -0
  320. package/esm2020/lib/metadata/shared/index.mjs +3 -0
  321. package/esm2020/lib/metadata/shared/metadata.interface.mjs +2 -0
  322. package/esm2020/lib/metadata/shared/metadata.service.mjs +19 -0
  323. package/esm2020/lib/offline/geoDB/geoDB.enums.mjs +6 -0
  324. package/esm2020/lib/offline/geoDB/geoDB.interface.mjs +2 -0
  325. package/esm2020/lib/offline/geoDB/geoDB.service.mjs +161 -0
  326. package/esm2020/lib/offline/geoDB/index.mjs +4 -0
  327. package/esm2020/lib/offline/index.mjs +3 -0
  328. package/esm2020/lib/offline/shared/geo-network.service.mjs +66 -0
  329. package/esm2020/lib/offline/shared/index.mjs +2 -0
  330. package/esm2020/lib/overlay/index.mjs +2 -0
  331. package/esm2020/lib/overlay/overlay.module.mjs +23 -0
  332. package/esm2020/lib/overlay/shared/index.mjs +7 -0
  333. package/esm2020/lib/overlay/shared/overlay-marker-style.utils.mjs +69 -0
  334. package/esm2020/lib/overlay/shared/overlay.directive.mjs +33 -0
  335. package/esm2020/lib/overlay/shared/overlay.enum.mjs +8 -0
  336. package/esm2020/lib/overlay/shared/overlay.mjs +130 -0
  337. package/esm2020/lib/overlay/shared/overlay.service.mjs +27 -0
  338. package/esm2020/lib/overlay/shared/overlay.utils.mjs +103 -0
  339. package/esm2020/lib/print/index.mjs +4 -0
  340. package/esm2020/lib/print/print/print.component.mjs +123 -0
  341. package/esm2020/lib/print/print-form/index.mjs +2 -0
  342. package/esm2020/lib/print/print-form/print-form.component.mjs +405 -0
  343. package/esm2020/lib/print/print.module.mjs +65 -0
  344. package/esm2020/lib/print/shared/index.mjs +4 -0
  345. package/esm2020/lib/print/shared/print.interface.mjs +2 -0
  346. package/esm2020/lib/print/shared/print.service.mjs +807 -0
  347. package/esm2020/lib/print/shared/print.type.mjs +30 -0
  348. package/esm2020/lib/query/index.mjs +2 -0
  349. package/esm2020/lib/query/query.module.mjs +29 -0
  350. package/esm2020/lib/query/shared/index.mjs +7 -0
  351. package/esm2020/lib/query/shared/query-search-source.mjs +35 -0
  352. package/esm2020/lib/query/shared/query-search-source.providers.mjs +22 -0
  353. package/esm2020/lib/query/shared/query.directive.mjs +261 -0
  354. package/esm2020/lib/query/shared/query.enums.mjs +30 -0
  355. package/esm2020/lib/query/shared/query.interfaces.mjs +2 -0
  356. package/esm2020/lib/query/shared/query.service.mjs +613 -0
  357. package/esm2020/lib/query/shared/query.utils.mjs +37 -0
  358. package/esm2020/lib/search/index.mjs +12 -0
  359. package/esm2020/lib/search/search-bar/search-bar.component.mjs +489 -0
  360. package/esm2020/lib/search/search-bar/search-bar.module.mjs +75 -0
  361. package/esm2020/lib/search/search-bar/search-url-param.directive.mjs +35 -0
  362. package/esm2020/lib/search/search-results/search-results-add-button.component.mjs +193 -0
  363. package/esm2020/lib/search/search-results/search-results-item.component.mjs +124 -0
  364. package/esm2020/lib/search/search-results/search-results.component.mjs +331 -0
  365. package/esm2020/lib/search/search-results/search-results.module.mjs +77 -0
  366. package/esm2020/lib/search/search-selector/search-selector.component.mjs +123 -0
  367. package/esm2020/lib/search/search-selector/search-selector.module.mjs +56 -0
  368. package/esm2020/lib/search/search-settings/search-settings.component.mjs +418 -0
  369. package/esm2020/lib/search/search-settings/search-settings.module.mjs +60 -0
  370. package/esm2020/lib/search/search.module.mjs +67 -0
  371. package/esm2020/lib/search/shared/index.mjs +9 -0
  372. package/esm2020/lib/search/shared/search-pointer-summary.directive.mjs +322 -0
  373. package/esm2020/lib/search/shared/search-source-service.providers.mjs +20 -0
  374. package/esm2020/lib/search/shared/search-source.service.mjs +47 -0
  375. package/esm2020/lib/search/shared/search.enums.mjs +4 -0
  376. package/esm2020/lib/search/shared/search.interfaces.mjs +2 -0
  377. package/esm2020/lib/search/shared/search.service.mjs +118 -0
  378. package/esm2020/lib/search/shared/search.utils.mjs +78 -0
  379. package/esm2020/lib/search/shared/sources/cadastre.mjs +126 -0
  380. package/esm2020/lib/search/shared/sources/cadastre.providers.mjs +23 -0
  381. package/esm2020/lib/search/shared/sources/coordinates.interfaces.mjs +2 -0
  382. package/esm2020/lib/search/shared/sources/coordinates.mjs +147 -0
  383. package/esm2020/lib/search/shared/sources/coordinates.providers.mjs +40 -0
  384. package/esm2020/lib/search/shared/sources/icherche.interfaces.mjs +2 -0
  385. package/esm2020/lib/search/shared/sources/icherche.mjs +755 -0
  386. package/esm2020/lib/search/shared/sources/icherche.providers.mjs +66 -0
  387. package/esm2020/lib/search/shared/sources/ilayer.interfaces.mjs +2 -0
  388. package/esm2020/lib/search/shared/sources/ilayer.mjs +320 -0
  389. package/esm2020/lib/search/shared/sources/ilayer.providers.mjs +40 -0
  390. package/esm2020/lib/search/shared/sources/index.mjs +20 -0
  391. package/esm2020/lib/search/shared/sources/nominatim.interfaces.mjs +2 -0
  392. package/esm2020/lib/search/shared/sources/nominatim.mjs +253 -0
  393. package/esm2020/lib/search/shared/sources/nominatim.providers.mjs +23 -0
  394. package/esm2020/lib/search/shared/sources/source.interfaces.mjs +2 -0
  395. package/esm2020/lib/search/shared/sources/source.mjs +179 -0
  396. package/esm2020/lib/search/shared/sources/storedqueries.interfaces.mjs +2 -0
  397. package/esm2020/lib/search/shared/sources/storedqueries.mjs +425 -0
  398. package/esm2020/lib/search/shared/sources/storedqueries.providers.mjs +41 -0
  399. package/esm2020/lib/toast/index.mjs +2 -0
  400. package/esm2020/lib/toast/toast.component.mjs +113 -0
  401. package/esm2020/lib/toast/toast.module.mjs +45 -0
  402. package/esm2020/lib/utils/commonVectorStyle.interface.mjs +2 -0
  403. package/esm2020/lib/utils/commonVectorStyle.mjs +75 -0
  404. package/esm2020/lib/utils/googleLinks.mjs +13 -0
  405. package/esm2020/lib/utils/id-generator.mjs +110 -0
  406. package/esm2020/lib/utils/index.mjs +6 -0
  407. package/esm2020/lib/utils/osmLinks.mjs +10 -0
  408. package/esm2020/lib/wkt/index.mjs +2 -0
  409. package/esm2020/lib/wkt/shared/index.mjs +2 -0
  410. package/esm2020/lib/wkt/shared/wkt.service.mjs +239 -0
  411. package/esm2020/lib/wkt/wkt.module.mjs +22 -0
  412. package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +48 -0
  413. package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +36 -0
  414. package/esm2020/lib/workspace/confirmation-popup/index.mjs +3 -0
  415. package/esm2020/lib/workspace/index.mjs +8 -0
  416. package/esm2020/lib/workspace/shared/edition-workspace.mjs +278 -0
  417. package/esm2020/lib/workspace/shared/edition-workspace.service.mjs +642 -0
  418. package/esm2020/lib/workspace/shared/feature-workspace.mjs +35 -0
  419. package/esm2020/lib/workspace/shared/feature-workspace.service.mjs +150 -0
  420. package/esm2020/lib/workspace/shared/index.mjs +8 -0
  421. package/esm2020/lib/workspace/shared/wfs-workspace.mjs +35 -0
  422. package/esm2020/lib/workspace/shared/wfs-workspace.service.mjs +150 -0
  423. package/esm2020/lib/workspace/shared/wms-workspace.service.mjs +261 -0
  424. package/esm2020/lib/workspace/shared/workspace.utils.mjs +24 -0
  425. package/esm2020/lib/workspace/widgets/index.mjs +4 -0
  426. package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +47 -0
  427. package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +36 -0
  428. package/esm2020/lib/workspace/widgets/widgets.mjs +15 -0
  429. package/esm2020/lib/workspace/workspace-selector/workspace-selector.directive.mjs +133 -0
  430. package/esm2020/lib/workspace/workspace-selector/workspace-selector.module.mjs +28 -0
  431. package/esm2020/lib/workspace/workspace-updator/workspace-updator.directive.mjs +113 -0
  432. package/esm2020/lib/workspace/workspace-updator/workspace-updator.module.mjs +28 -0
  433. package/esm2020/lib/workspace/workspace.module.mjs +62 -0
  434. package/esm2020/public_api.mjs +55 -0
  435. package/fesm2015/igo2-geo.mjs +42904 -0
  436. package/fesm2015/igo2-geo.mjs.map +1 -0
  437. package/fesm2020/igo2-geo.mjs +41183 -0
  438. package/fesm2020/igo2-geo.mjs.map +1 -0
  439. package/{igo2-geo.d.ts → index.d.ts} +0 -0
  440. package/lib/catalog/catalog-browser/catalog-browser-group.component.d.ts +1 -1
  441. package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +1 -1
  442. package/lib/catalog/catalog-browser/catalog-browser.component.d.ts +1 -1
  443. package/lib/catalog/catalog-library/add-catalog-dialog.component.d.ts +4 -4
  444. package/lib/catalog/catalog-library/catalog-library-item.component.d.ts +1 -1
  445. package/lib/catalog/catalog-library/catalog-library.component.d.ts +1 -1
  446. package/lib/directions/directions-buttons/directions-buttons.component.d.ts +1 -1
  447. package/lib/directions/directions-inputs/directions-inputs.component.d.ts +1 -1
  448. package/lib/directions/directions-results/directions-results.component.d.ts +1 -1
  449. package/lib/directions/directions.component.d.ts +1 -1
  450. package/lib/download/download-button/download-button.component.d.ts +1 -1
  451. package/lib/draw/draw/draw-popup.component.d.ts +1 -1
  452. package/lib/draw/draw/draw-shorcuts.component.d.ts +1 -1
  453. package/lib/draw/draw/draw.component.d.ts +4 -4
  454. package/lib/feature/feature-details/feature-details.component.d.ts +1 -1
  455. package/lib/feature/feature-details/feature-details.directive.d.ts +1 -1
  456. package/lib/feature/feature-form/feature-form.component.d.ts +1 -1
  457. package/lib/feature/shared/feature.interfaces.d.ts +2 -2
  458. package/lib/filter/ogc-filter-button/ogc-filter-button.component.d.ts +1 -1
  459. package/lib/filter/ogc-filter-form/ogc-filter-form.component.d.ts +1 -1
  460. package/lib/filter/ogc-filter-selection/ogc-filter-selection.component.d.ts +4 -4
  461. package/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.d.ts +1 -1
  462. package/lib/filter/ogc-filter-time/ogc-filter-time.component.d.ts +6 -6
  463. package/lib/filter/ogc-filterable-form/ogc-filterable-form.component.d.ts +1 -1
  464. package/lib/filter/ogc-filterable-item/ogc-filterable-item.component.d.ts +1 -1
  465. package/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.d.ts +1 -1
  466. package/lib/filter/ogc-filterable-list/ogc-filterable-list.component.d.ts +1 -1
  467. package/lib/filter/shared/filterable-datasource.pipe.d.ts +1 -1
  468. package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +5 -5
  469. package/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.d.ts +4 -4
  470. package/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.d.ts +3 -3
  471. package/lib/filter/time-filter-button/time-filter-button.component.d.ts +1 -1
  472. package/lib/filter/time-filter-form/time-filter-form.component.d.ts +1 -1
  473. package/lib/filter/time-filter-item/time-filter-item.component.d.ts +1 -1
  474. package/lib/filter/time-filter-list/time-filter-list-binding.directive.d.ts +1 -1
  475. package/lib/filter/time-filter-list/time-filter-list.component.d.ts +1 -1
  476. package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +1 -1
  477. package/lib/geometry/geometry-form-field/geometry-form-field.component.d.ts +3 -3
  478. package/lib/import-export/export-button/export-button.component.d.ts +1 -1
  479. package/lib/import-export/import-export/import-export.component.d.ts +5 -5
  480. package/lib/import-export/shared/drop-geo-file.directive.d.ts +1 -1
  481. package/lib/layer/layer-item/layer-item.component.d.ts +1 -1
  482. package/lib/layer/layer-legend/layer-legend.component.d.ts +1 -1
  483. package/lib/layer/layer-legend-item/layer-legend-item.component.d.ts +1 -1
  484. package/lib/layer/layer-legend-list/layer-legend-list-binding.directive.d.ts +1 -1
  485. package/lib/layer/layer-legend-list/layer-legend-list.component.d.ts +1 -1
  486. package/lib/layer/layer-list/layer-list-binding.directive.d.ts +1 -1
  487. package/lib/layer/layer-list/layer-list.component.d.ts +1 -1
  488. package/lib/layer/layer-list-tool/layer-list-tool.component.d.ts +1 -1
  489. package/lib/layer/track-feature-button/track-feature-button.component.d.ts +1 -1
  490. package/lib/map/baselayers-switcher/baselayers-switcher.component.d.ts +1 -1
  491. package/lib/map/baselayers-switcher/mini-basemap.component.d.ts +1 -1
  492. package/lib/map/geolocate-button/geolocate-button.component.d.ts +1 -1
  493. package/lib/map/home-extent-button/home-extent-button.component.d.ts +1 -1
  494. package/lib/map/info-section/info-section.component.d.ts +1 -1
  495. package/lib/map/map-browser/map-browser.component.d.ts +1 -1
  496. package/lib/map/map-center/map-center.component.d.ts +1 -1
  497. package/lib/map/menu-button/menu-button.component.d.ts +1 -1
  498. package/lib/map/offline-button/offline-button.component.d.ts +1 -1
  499. package/lib/map/rotation-button/rotation-button.component.d.ts +1 -1
  500. package/lib/map/shared/hover-feature.directive.d.ts +1 -1
  501. package/lib/map/shared/map-pointer-position.directive.d.ts +1 -1
  502. package/lib/map/shared/mapOffline.directive.d.ts +1 -1
  503. package/lib/map/swipe-control/swipe-control.component.d.ts +1 -1
  504. package/lib/map/wake-lock-button/wake-lock-button.component.d.ts +1 -1
  505. package/lib/map/zoom-button/zoom-button.component.d.ts +1 -1
  506. package/lib/measure/measurer/measure-format.pipe.d.ts +1 -1
  507. package/lib/measure/measurer/measurer-dialog.component.d.ts +1 -1
  508. package/lib/measure/measurer/measurer-item.component.d.ts +1 -1
  509. package/lib/measure/measurer/measurer.component.d.ts +1 -1
  510. package/lib/metadata/metadata-button/metadata-button.component.d.ts +2 -2
  511. package/lib/overlay/shared/overlay.directive.d.ts +1 -1
  512. package/lib/print/print/print.component.d.ts +1 -1
  513. package/lib/print/print-form/print-form.component.d.ts +17 -17
  514. package/lib/print/shared/print.service.d.ts +6 -1
  515. package/lib/query/shared/query.directive.d.ts +1 -1
  516. package/lib/search/search-bar/search-bar.component.d.ts +1 -1
  517. package/lib/search/search-bar/search-url-param.directive.d.ts +1 -1
  518. package/lib/search/search-results/search-results-add-button.component.d.ts +1 -1
  519. package/lib/search/search-results/search-results-item.component.d.ts +1 -1
  520. package/lib/search/search-results/search-results.component.d.ts +1 -1
  521. package/lib/search/search-selector/search-selector.component.d.ts +1 -1
  522. package/lib/search/search-settings/search-settings.component.d.ts +1 -1
  523. package/lib/search/shared/search-pointer-summary.directive.d.ts +1 -1
  524. package/lib/toast/toast.component.d.ts +1 -1
  525. package/lib/wkt/shared/wkt.service.d.ts +1 -1
  526. package/lib/workspace/confirmation-popup/confirmation-popup.component.d.ts +1 -1
  527. package/lib/workspace/widgets/ogc-filter/ogc-filter.component.d.ts +1 -1
  528. package/lib/workspace/workspace-selector/workspace-selector.directive.d.ts +1 -1
  529. package/lib/workspace/workspace-updator/workspace-updator.directive.d.ts +1 -1
  530. package/ngcc.config.js +3 -3
  531. package/package.json +32 -19
  532. package/style/geo.theming.scss +12 -12
  533. package/bundles/igo2-geo.umd.js +0 -47639
  534. package/bundles/igo2-geo.umd.js.map +0 -1
  535. package/esm2015/lib/catalog/catalog-browser/catalog-browser-group.component.js +0 -305
  536. package/esm2015/lib/catalog/catalog-browser/catalog-browser-layer.component.js +0 -274
  537. package/esm2015/lib/catalog/catalog-browser/catalog-browser.component.js +0 -248
  538. package/esm2015/lib/catalog/catalog-browser/catalog-browser.module.js +0 -82
  539. package/esm2015/lib/catalog/catalog-library/add-catalog-dialog.component.js +0 -235
  540. package/esm2015/lib/catalog/catalog-library/catalog-library-item.component.js +0 -85
  541. package/esm2015/lib/catalog/catalog-library/catalog-library.component.js +0 -224
  542. package/esm2015/lib/catalog/catalog-library/catalog-library.module.js +0 -97
  543. package/esm2015/lib/catalog/catalog.module.js +0 -55
  544. package/esm2015/lib/catalog/index.js +0 -5
  545. package/esm2015/lib/catalog/shared/catalog.abstract.js +0 -95
  546. package/esm2015/lib/catalog/shared/catalog.enum.js +0 -16
  547. package/esm2015/lib/catalog/shared/catalog.interface.js +0 -2
  548. package/esm2015/lib/catalog/shared/catalog.service.js +0 -606
  549. package/esm2015/lib/catalog/shared/index.js +0 -5
  550. package/esm2015/lib/datasource/datasource.module.js +0 -22
  551. package/esm2015/lib/datasource/index.js +0 -3
  552. package/esm2015/lib/datasource/shared/capabilities.service.js +0 -427
  553. package/esm2015/lib/datasource/shared/datasource.service.js +0 -236
  554. package/esm2015/lib/datasource/shared/datasources/any-datasource.interface.js +0 -2
  555. package/esm2015/lib/datasource/shared/datasources/any-datasource.js +0 -2
  556. package/esm2015/lib/datasource/shared/datasources/arcgisrest-datasource.interface.js +0 -2
  557. package/esm2015/lib/datasource/shared/datasources/arcgisrest-datasource.js +0 -145
  558. package/esm2015/lib/datasource/shared/datasources/carto-datasource.interface.js +0 -2
  559. package/esm2015/lib/datasource/shared/datasources/carto-datasource.js +0 -109
  560. package/esm2015/lib/datasource/shared/datasources/cluster-datasource.interface.js +0 -2
  561. package/esm2015/lib/datasource/shared/datasources/cluster-datasource.js +0 -15
  562. package/esm2015/lib/datasource/shared/datasources/data.service.js +0 -3
  563. package/esm2015/lib/datasource/shared/datasources/datasource.interface.js +0 -2
  564. package/esm2015/lib/datasource/shared/datasources/datasource.js +0 -29
  565. package/esm2015/lib/datasource/shared/datasources/feature-datasource.interface.js +0 -2
  566. package/esm2015/lib/datasource/shared/datasources/feature-datasource.js +0 -43
  567. package/esm2015/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.js +0 -2
  568. package/esm2015/lib/datasource/shared/datasources/imagearcgisrest-datasource.js +0 -57
  569. package/esm2015/lib/datasource/shared/datasources/index.js +0 -36
  570. package/esm2015/lib/datasource/shared/datasources/mvt-datasource.interface.js +0 -2
  571. package/esm2015/lib/datasource/shared/datasources/mvt-datasource.js +0 -28
  572. package/esm2015/lib/datasource/shared/datasources/osm-datasource.interface.js +0 -2
  573. package/esm2015/lib/datasource/shared/datasources/osm-datasource.js +0 -12
  574. package/esm2015/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.js +0 -2
  575. package/esm2015/lib/datasource/shared/datasources/tilearcgisrest-datasource.js +0 -49
  576. package/esm2015/lib/datasource/shared/datasources/tiledebug-datasource.interface.js +0 -2
  577. package/esm2015/lib/datasource/shared/datasources/tiledebug-datasource.js +0 -15
  578. package/esm2015/lib/datasource/shared/datasources/websocket-datasource.interface.js +0 -2
  579. package/esm2015/lib/datasource/shared/datasources/websocket-datasource.js +0 -54
  580. package/esm2015/lib/datasource/shared/datasources/wfs-datasource.interface.js +0 -2
  581. package/esm2015/lib/datasource/shared/datasources/wfs-datasource.js +0 -74
  582. package/esm2015/lib/datasource/shared/datasources/wfs.service.js +0 -153
  583. package/esm2015/lib/datasource/shared/datasources/wms-datasource.interface.js +0 -2
  584. package/esm2015/lib/datasource/shared/datasources/wms-datasource.js +0 -205
  585. package/esm2015/lib/datasource/shared/datasources/wms-wfs.utils.js +0 -207
  586. package/esm2015/lib/datasource/shared/datasources/wmts-datasource.interface.js +0 -2
  587. package/esm2015/lib/datasource/shared/datasources/wmts-datasource.js +0 -16
  588. package/esm2015/lib/datasource/shared/datasources/xyz-datasource.interface.js +0 -2
  589. package/esm2015/lib/datasource/shared/datasources/xyz-datasource.js +0 -9
  590. package/esm2015/lib/datasource/shared/index.js +0 -5
  591. package/esm2015/lib/datasource/shared/options/index.js +0 -5
  592. package/esm2015/lib/datasource/shared/options/options-api.interface.js +0 -2
  593. package/esm2015/lib/datasource/shared/options/options-api.providers.js +0 -15
  594. package/esm2015/lib/datasource/shared/options/options-api.service.js +0 -81
  595. package/esm2015/lib/datasource/shared/options/options.service.js +0 -3
  596. package/esm2015/lib/datasource/utils/esri-style-generator.js +0 -357
  597. package/esm2015/lib/datasource/utils/index.js +0 -3
  598. package/esm2015/lib/datasource/utils/tilegrid.js +0 -20
  599. package/esm2015/lib/directions/directions-buttons/directions-buttons.component.js +0 -229
  600. package/esm2015/lib/directions/directions-buttons/index.js +0 -2
  601. package/esm2015/lib/directions/directions-inputs/directions-inputs.component.js +0 -300
  602. package/esm2015/lib/directions/directions-inputs/index.js +0 -2
  603. package/esm2015/lib/directions/directions-results/directions-results.component.js +0 -204
  604. package/esm2015/lib/directions/directions-results/index.js +0 -2
  605. package/esm2015/lib/directions/directions-sources/directions-source.interface.js +0 -2
  606. package/esm2015/lib/directions/directions-sources/directions-source.js +0 -3
  607. package/esm2015/lib/directions/directions-sources/directions-source.provider.js +0 -16
  608. package/esm2015/lib/directions/directions-sources/index.js +0 -5
  609. package/esm2015/lib/directions/directions-sources/osrm-directions-source.js +0 -99
  610. package/esm2015/lib/directions/directions.component.js +0 -316
  611. package/esm2015/lib/directions/directions.module.js +0 -104
  612. package/esm2015/lib/directions/index.js +0 -7
  613. package/esm2015/lib/directions/shared/directions-source.service.js +0 -17
  614. package/esm2015/lib/directions/shared/directions.enum.js +0 -28
  615. package/esm2015/lib/directions/shared/directions.interface.js +0 -2
  616. package/esm2015/lib/directions/shared/directions.service.js +0 -29
  617. package/esm2015/lib/directions/shared/directions.utils.js +0 -510
  618. package/esm2015/lib/directions/shared/index.js +0 -6
  619. package/esm2015/lib/directions/shared/store.js +0 -24
  620. package/esm2015/lib/download/download-button/download-button.component.js +0 -66
  621. package/esm2015/lib/download/download-button/index.js +0 -2
  622. package/esm2015/lib/download/download.module.js +0 -44
  623. package/esm2015/lib/download/index.js +0 -3
  624. package/esm2015/lib/download/shared/download.interface.js +0 -2
  625. package/esm2015/lib/download/shared/download.service.js +0 -65
  626. package/esm2015/lib/download/shared/index.js +0 -3
  627. package/esm2015/lib/draw/draw/draw-popup.component.js +0 -69
  628. package/esm2015/lib/draw/draw/draw-shorcuts.component.js +0 -64
  629. package/esm2015/lib/draw/draw/draw.component.js +0 -745
  630. package/esm2015/lib/draw/draw/draw.module.js +0 -102
  631. package/esm2015/lib/draw/drawingTool.module.js +0 -20
  632. package/esm2015/lib/draw/index.js +0 -3
  633. package/esm2015/lib/draw/shared/draw-icon.service.js +0 -27
  634. package/esm2015/lib/draw/shared/draw-style.service.js +0 -173
  635. package/esm2015/lib/draw/shared/draw.enum.js +0 -24
  636. package/esm2015/lib/draw/shared/draw.interface.js +0 -2
  637. package/esm2015/lib/draw/shared/draw.utils.js +0 -104
  638. package/esm2015/lib/draw/shared/index.js +0 -6
  639. package/esm2015/lib/feature/feature-details/feature-details.component.js +0 -393
  640. package/esm2015/lib/feature/feature-details/feature-details.directive.js +0 -54
  641. package/esm2015/lib/feature/feature-details/feature-details.module.js +0 -50
  642. package/esm2015/lib/feature/feature-form/feature-form.component.js +0 -117
  643. package/esm2015/lib/feature/feature-form/feature-form.module.js +0 -36
  644. package/esm2015/lib/feature/feature.module.js +0 -30
  645. package/esm2015/lib/feature/index.js +0 -4
  646. package/esm2015/lib/feature/shared/feature.enums.js +0 -9
  647. package/esm2015/lib/feature/shared/feature.interfaces.js +0 -2
  648. package/esm2015/lib/feature/shared/feature.utils.js +0 -348
  649. package/esm2015/lib/feature/shared/index.js +0 -7
  650. package/esm2015/lib/feature/shared/store.js +0 -112
  651. package/esm2015/lib/feature/shared/strategies/in-map-extent.js +0 -114
  652. package/esm2015/lib/feature/shared/strategies/in-map-resolution.js +0 -94
  653. package/esm2015/lib/feature/shared/strategies/index.js +0 -6
  654. package/esm2015/lib/feature/shared/strategies/loading-layer.js +0 -104
  655. package/esm2015/lib/feature/shared/strategies/loading.js +0 -133
  656. package/esm2015/lib/feature/shared/strategies/selection.js +0 -370
  657. package/esm2015/lib/feature/shared/strategies.utils.js +0 -37
  658. package/esm2015/lib/filter/filter.module.js +0 -290
  659. package/esm2015/lib/filter/index.js +0 -16
  660. package/esm2015/lib/filter/ogc-filter-button/index.js +0 -2
  661. package/esm2015/lib/filter/ogc-filter-button/ogc-filter-button.component.js +0 -161
  662. package/esm2015/lib/filter/ogc-filter-form/index.js +0 -2
  663. package/esm2015/lib/filter/ogc-filter-form/ogc-filter-form.component.js +0 -657
  664. package/esm2015/lib/filter/ogc-filter-selection/index.js +0 -2
  665. package/esm2015/lib/filter/ogc-filter-selection/ogc-filter-selection.component.js +0 -1355
  666. package/esm2015/lib/filter/ogc-filter-time/index.js +0 -3
  667. package/esm2015/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.js +0 -185
  668. package/esm2015/lib/filter/ogc-filter-time/ogc-filter-time.component.js +0 -898
  669. package/esm2015/lib/filter/ogc-filterable-form/index.js +0 -2
  670. package/esm2015/lib/filter/ogc-filterable-form/ogc-filterable-form.component.js +0 -62
  671. package/esm2015/lib/filter/ogc-filterable-item/index.js +0 -2
  672. package/esm2015/lib/filter/ogc-filterable-item/ogc-filterable-item.component.js +0 -307
  673. package/esm2015/lib/filter/ogc-filterable-list/index.js +0 -3
  674. package/esm2015/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.js +0 -31
  675. package/esm2015/lib/filter/ogc-filterable-list/ogc-filterable-list.component.js +0 -35
  676. package/esm2015/lib/filter/shared/filterable-datasource.pipe.js +0 -55
  677. package/esm2015/lib/filter/shared/index.js +0 -12
  678. package/esm2015/lib/filter/shared/ogc-filter-time.service.js +0 -73
  679. package/esm2015/lib/filter/shared/ogc-filter.enum.js +0 -30
  680. package/esm2015/lib/filter/shared/ogc-filter.interface.js +0 -2
  681. package/esm2015/lib/filter/shared/ogc-filter.js +0 -693
  682. package/esm2015/lib/filter/shared/ogc-filter.service.js +0 -46
  683. package/esm2015/lib/filter/shared/spatial-filter.enum.js +0 -23
  684. package/esm2015/lib/filter/shared/spatial-filter.interface.js +0 -2
  685. package/esm2015/lib/filter/shared/spatial-filter.service.js +0 -269
  686. package/esm2015/lib/filter/shared/time-filter.enum.js +0 -13
  687. package/esm2015/lib/filter/shared/time-filter.interface.js +0 -2
  688. package/esm2015/lib/filter/shared/time-filter.service.js +0 -107
  689. package/esm2015/lib/filter/spatial-filter/spatial-filter-item/index.js +0 -2
  690. package/esm2015/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.js +0 -1108
  691. package/esm2015/lib/filter/spatial-filter/spatial-filter-list/index.js +0 -2
  692. package/esm2015/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.js +0 -224
  693. package/esm2015/lib/filter/spatial-filter/spatial-filter-type/index.js +0 -2
  694. package/esm2015/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.js +0 -157
  695. package/esm2015/lib/filter/time-filter-button/index.js +0 -2
  696. package/esm2015/lib/filter/time-filter-button/time-filter-button.component.js +0 -83
  697. package/esm2015/lib/filter/time-filter-form/index.js +0 -2
  698. package/esm2015/lib/filter/time-filter-form/time-filter-form.component.js +0 -772
  699. package/esm2015/lib/filter/time-filter-item/index.js +0 -2
  700. package/esm2015/lib/filter/time-filter-item/time-filter-item.component.js +0 -126
  701. package/esm2015/lib/filter/time-filter-list/index.js +0 -3
  702. package/esm2015/lib/filter/time-filter-list/time-filter-list-binding.directive.js +0 -31
  703. package/esm2015/lib/filter/time-filter-list/time-filter-list.component.js +0 -43
  704. package/esm2015/lib/geo.module.js +0 -102
  705. package/esm2015/lib/geometry/geometry-form-field/geometry-form-field-input.component.js +0 -515
  706. package/esm2015/lib/geometry/geometry-form-field/geometry-form-field.component.js +0 -199
  707. package/esm2015/lib/geometry/geometry-form-field/geometry-form-field.module.js +0 -66
  708. package/esm2015/lib/geometry/geometry.module.js +0 -29
  709. package/esm2015/lib/geometry/index.js +0 -4
  710. package/esm2015/lib/geometry/shared/controls/draw.js +0 -271
  711. package/esm2015/lib/geometry/shared/controls/index.js +0 -4
  712. package/esm2015/lib/geometry/shared/controls/modify.js +0 -521
  713. package/esm2015/lib/geometry/shared/controls/slice.js +0 -177
  714. package/esm2015/lib/geometry/shared/geometry.errors.js +0 -26
  715. package/esm2015/lib/geometry/shared/geometry.interfaces.js +0 -2
  716. package/esm2015/lib/geometry/shared/geometry.utils.js +0 -122
  717. package/esm2015/lib/geometry/shared/index.js +0 -5
  718. package/esm2015/lib/import-export/export-button/export-button.component.js +0 -70
  719. package/esm2015/lib/import-export/export-button/index.js +0 -2
  720. package/esm2015/lib/import-export/import-export/import-export.component.js +0 -1238
  721. package/esm2015/lib/import-export/import-export/index.js +0 -2
  722. package/esm2015/lib/import-export/import-export.module.js +0 -95
  723. package/esm2015/lib/import-export/index.js +0 -5
  724. package/esm2015/lib/import-export/shared/drop-geo-file.directive.js +0 -136
  725. package/esm2015/lib/import-export/shared/export.errors.js +0 -15
  726. package/esm2015/lib/import-export/shared/export.interface.js +0 -2
  727. package/esm2015/lib/import-export/shared/export.service.js +0 -195
  728. package/esm2015/lib/import-export/shared/export.type.js +0 -4
  729. package/esm2015/lib/import-export/shared/export.utils.js +0 -55
  730. package/esm2015/lib/import-export/shared/import.errors.js +0 -39
  731. package/esm2015/lib/import-export/shared/import.interface.js +0 -2
  732. package/esm2015/lib/import-export/shared/import.service.js +0 -195
  733. package/esm2015/lib/import-export/shared/import.utils.js +0 -234
  734. package/esm2015/lib/import-export/shared/index.js +0 -11
  735. package/esm2015/lib/import-export/style-list/index.js +0 -5
  736. package/esm2015/lib/import-export/style-list/style-list.interface.js +0 -2
  737. package/esm2015/lib/import-export/style-list/style-list.module.js +0 -23
  738. package/esm2015/lib/import-export/style-list/style-list.provider.js +0 -21
  739. package/esm2015/lib/import-export/style-list/style-list.service.js +0 -51
  740. package/esm2015/lib/layer/index.js +0 -10
  741. package/esm2015/lib/layer/layer-item/index.js +0 -2
  742. package/esm2015/lib/layer/layer-item/layer-item.component.js +0 -305
  743. package/esm2015/lib/layer/layer-legend/index.js +0 -2
  744. package/esm2015/lib/layer/layer-legend/layer-legend.component.js +0 -395
  745. package/esm2015/lib/layer/layer-legend-item/index.js +0 -2
  746. package/esm2015/lib/layer/layer-legend-item/layer-legend-item.component.js +0 -91
  747. package/esm2015/lib/layer/layer-legend-list/index.js +0 -3
  748. package/esm2015/lib/layer/layer-legend-list/layer-legend-list-binding.directive.js +0 -48
  749. package/esm2015/lib/layer/layer-legend-list/layer-legend-list.component.js +0 -200
  750. package/esm2015/lib/layer/layer-list/index.js +0 -4
  751. package/esm2015/lib/layer/layer-list/layer-list-binding.directive.js +0 -59
  752. package/esm2015/lib/layer/layer-list/layer-list.component.js +0 -1043
  753. package/esm2015/lib/layer/layer-list/layer-list.enum.js +0 -19
  754. package/esm2015/lib/layer/layer-list-tool/index.js +0 -5
  755. package/esm2015/lib/layer/layer-list-tool/layer-list-tool.component.js +0 -176
  756. package/esm2015/lib/layer/layer-list-tool/layer-list-tool.enum.js +0 -7
  757. package/esm2015/lib/layer/layer-list-tool/layer-list-tool.interface.js +0 -2
  758. package/esm2015/lib/layer/layer-list-tool/layer-list-tool.service.js +0 -22
  759. package/esm2015/lib/layer/layer.module.js +0 -174
  760. package/esm2015/lib/layer/shared/clusterParam.js +0 -2
  761. package/esm2015/lib/layer/shared/index.js +0 -7
  762. package/esm2015/lib/layer/shared/layer.enums.js +0 -2
  763. package/esm2015/lib/layer/shared/layer.service.js +0 -186
  764. package/esm2015/lib/layer/shared/layers/any-layer.interface.js +0 -2
  765. package/esm2015/lib/layer/shared/layers/any-layer.js +0 -2
  766. package/esm2015/lib/layer/shared/layers/image-layer.interface.js +0 -2
  767. package/esm2015/lib/layer/shared/layers/image-layer.js +0 -68
  768. package/esm2015/lib/layer/shared/layers/index.js +0 -13
  769. package/esm2015/lib/layer/shared/layers/layer.interface.js +0 -17
  770. package/esm2015/lib/layer/shared/layers/layer.js +0 -169
  771. package/esm2015/lib/layer/shared/layers/tile-layer.interface.js +0 -2
  772. package/esm2015/lib/layer/shared/layers/tile-layer.js +0 -47
  773. package/esm2015/lib/layer/shared/layers/vector-layer.interface.js +0 -2
  774. package/esm2015/lib/layer/shared/layers/vector-layer.js +0 -376
  775. package/esm2015/lib/layer/shared/layers/vectortile-layer.interface.js +0 -2
  776. package/esm2015/lib/layer/shared/layers/vectortile-layer.js +0 -104
  777. package/esm2015/lib/layer/shared/style.service.js +0 -358
  778. package/esm2015/lib/layer/shared/vector-style.interface.js +0 -2
  779. package/esm2015/lib/layer/track-feature-button/index.js +0 -2
  780. package/esm2015/lib/layer/track-feature-button/track-feature-button.component.js +0 -64
  781. package/esm2015/lib/layer/utils/image-watcher.js +0 -62
  782. package/esm2015/lib/layer/utils/index.js +0 -7
  783. package/esm2015/lib/layer/utils/layer.utils.js +0 -11
  784. package/esm2015/lib/layer/utils/layerSync-watcher.js +0 -249
  785. package/esm2015/lib/layer/utils/outputLegend.js +0 -27
  786. package/esm2015/lib/layer/utils/tile-watcher.js +0 -50
  787. package/esm2015/lib/layer/utils/vector-watcher.js +0 -48
  788. package/esm2015/lib/map/baselayers-switcher/baselayers-switcher.animation.js +0 -20
  789. package/esm2015/lib/map/baselayers-switcher/baselayers-switcher.component.js +0 -105
  790. package/esm2015/lib/map/baselayers-switcher/index.js +0 -3
  791. package/esm2015/lib/map/baselayers-switcher/mini-basemap.component.js +0 -137
  792. package/esm2015/lib/map/geolocate-button/geolocate-button.component.js +0 -82
  793. package/esm2015/lib/map/geolocate-button/index.js +0 -2
  794. package/esm2015/lib/map/home-extent-button/home-extent-button.component.js +0 -69
  795. package/esm2015/lib/map/index.js +0 -14
  796. package/esm2015/lib/map/info-section/index.js +0 -2
  797. package/esm2015/lib/map/info-section/info-section.component.js +0 -36
  798. package/esm2015/lib/map/map-browser/index.js +0 -2
  799. package/esm2015/lib/map/map-browser/map-browser.component.js +0 -70
  800. package/esm2015/lib/map/map-center/index.js +0 -2
  801. package/esm2015/lib/map/map-center/map-center.component.js +0 -55
  802. package/esm2015/lib/map/map.module.js +0 -129
  803. package/esm2015/lib/map/menu-button/index.js +0 -2
  804. package/esm2015/lib/map/menu-button/menu-button.component.js +0 -66
  805. package/esm2015/lib/map/offline-button/index.js +0 -2
  806. package/esm2015/lib/map/offline-button/offline-button.component.js +0 -84
  807. package/esm2015/lib/map/rotation-button/index.js +0 -2
  808. package/esm2015/lib/map/rotation-button/rotation-button.component.js +0 -97
  809. package/esm2015/lib/map/shared/controllers/controller.js +0 -42
  810. package/esm2015/lib/map/shared/controllers/geolocation.js +0 -310
  811. package/esm2015/lib/map/shared/controllers/index.js +0 -4
  812. package/esm2015/lib/map/shared/controllers/view.js +0 -342
  813. package/esm2015/lib/map/shared/hover-feature.directive.js +0 -509
  814. package/esm2015/lib/map/shared/index.js +0 -13
  815. package/esm2015/lib/map/shared/map-pointer-position.directive.js +0 -107
  816. package/esm2015/lib/map/shared/map.enums.js +0 -6
  817. package/esm2015/lib/map/shared/map.interface.js +0 -2
  818. package/esm2015/lib/map/shared/map.js +0 -418
  819. package/esm2015/lib/map/shared/map.service.js +0 -29
  820. package/esm2015/lib/map/shared/map.utils.js +0 -459
  821. package/esm2015/lib/map/shared/mapOffline.directive.js +0 -163
  822. package/esm2015/lib/map/shared/projection.interfaces.js +0 -2
  823. package/esm2015/lib/map/shared/projection.service.js +0 -65
  824. package/esm2015/lib/map/shared/projection.utils.js +0 -64
  825. package/esm2015/lib/map/swipe-control/index.js +0 -2
  826. package/esm2015/lib/map/swipe-control/swipe-control.component.js +0 -199
  827. package/esm2015/lib/map/utils/layer-watcher.js +0 -58
  828. package/esm2015/lib/map/wake-lock-button/index.js +0 -2
  829. package/esm2015/lib/map/wake-lock-button/wake-lock-button.component.js +0 -122
  830. package/esm2015/lib/map/zoom-button/index.js +0 -2
  831. package/esm2015/lib/map/zoom-button/zoom-button.component.js +0 -46
  832. package/esm2015/lib/measure/index.js +0 -4
  833. package/esm2015/lib/measure/measure.module.js +0 -20
  834. package/esm2015/lib/measure/measurer/measure-format.pipe.js +0 -37
  835. package/esm2015/lib/measure/measurer/measurer-dialog.component.js +0 -220
  836. package/esm2015/lib/measure/measurer/measurer-item.component.js +0 -148
  837. package/esm2015/lib/measure/measurer/measurer.component.js +0 -1053
  838. package/esm2015/lib/measure/measurer/measurer.module.js +0 -96
  839. package/esm2015/lib/measure/shared/index.js +0 -4
  840. package/esm2015/lib/measure/shared/measure.enum.js +0 -37
  841. package/esm2015/lib/measure/shared/measure.interfaces.js +0 -2
  842. package/esm2015/lib/measure/shared/measure.utils.js +0 -489
  843. package/esm2015/lib/metadata/index.js +0 -3
  844. package/esm2015/lib/metadata/metadata-button/index.js +0 -2
  845. package/esm2015/lib/metadata/metadata-button/metadata-button.component.js +0 -146
  846. package/esm2015/lib/metadata/metadata.module.js +0 -57
  847. package/esm2015/lib/metadata/shared/index.js +0 -3
  848. package/esm2015/lib/metadata/shared/metadata.interface.js +0 -2
  849. package/esm2015/lib/metadata/shared/metadata.service.js +0 -19
  850. package/esm2015/lib/offline/geoDB/geoDB.enums.js +0 -6
  851. package/esm2015/lib/offline/geoDB/geoDB.interface.js +0 -2
  852. package/esm2015/lib/offline/geoDB/geoDB.service.js +0 -161
  853. package/esm2015/lib/offline/geoDB/index.js +0 -4
  854. package/esm2015/lib/offline/index.js +0 -3
  855. package/esm2015/lib/offline/shared/geo-network.service.js +0 -66
  856. package/esm2015/lib/offline/shared/index.js +0 -2
  857. package/esm2015/lib/overlay/index.js +0 -2
  858. package/esm2015/lib/overlay/overlay.module.js +0 -23
  859. package/esm2015/lib/overlay/shared/index.js +0 -7
  860. package/esm2015/lib/overlay/shared/overlay-marker-style.utils.js +0 -69
  861. package/esm2015/lib/overlay/shared/overlay.directive.js +0 -33
  862. package/esm2015/lib/overlay/shared/overlay.enum.js +0 -8
  863. package/esm2015/lib/overlay/shared/overlay.js +0 -130
  864. package/esm2015/lib/overlay/shared/overlay.service.js +0 -27
  865. package/esm2015/lib/overlay/shared/overlay.utils.js +0 -103
  866. package/esm2015/lib/print/index.js +0 -4
  867. package/esm2015/lib/print/print/print.component.js +0 -126
  868. package/esm2015/lib/print/print-form/index.js +0 -2
  869. package/esm2015/lib/print/print-form/print-form.component.js +0 -447
  870. package/esm2015/lib/print/print.module.js +0 -67
  871. package/esm2015/lib/print/shared/index.js +0 -4
  872. package/esm2015/lib/print/shared/print.interface.js +0 -2
  873. package/esm2015/lib/print/shared/print.service.js +0 -820
  874. package/esm2015/lib/print/shared/print.type.js +0 -30
  875. package/esm2015/lib/query/index.js +0 -2
  876. package/esm2015/lib/query/query.module.js +0 -29
  877. package/esm2015/lib/query/shared/index.js +0 -7
  878. package/esm2015/lib/query/shared/query-search-source.js +0 -35
  879. package/esm2015/lib/query/shared/query-search-source.providers.js +0 -22
  880. package/esm2015/lib/query/shared/query.directive.js +0 -261
  881. package/esm2015/lib/query/shared/query.enums.js +0 -30
  882. package/esm2015/lib/query/shared/query.interfaces.js +0 -2
  883. package/esm2015/lib/query/shared/query.service.js +0 -619
  884. package/esm2015/lib/query/shared/query.utils.js +0 -37
  885. package/esm2015/lib/search/index.js +0 -12
  886. package/esm2015/lib/search/search-bar/search-bar.component.js +0 -496
  887. package/esm2015/lib/search/search-bar/search-bar.module.js +0 -77
  888. package/esm2015/lib/search/search-bar/search-url-param.directive.js +0 -35
  889. package/esm2015/lib/search/search-results/search-results-add-button.component.js +0 -198
  890. package/esm2015/lib/search/search-results/search-results-item.component.js +0 -129
  891. package/esm2015/lib/search/search-results/search-results.component.js +0 -337
  892. package/esm2015/lib/search/search-results/search-results.module.js +0 -79
  893. package/esm2015/lib/search/search-selector/search-selector.component.js +0 -132
  894. package/esm2015/lib/search/search-selector/search-selector.module.js +0 -58
  895. package/esm2015/lib/search/search-settings/search-settings.component.js +0 -435
  896. package/esm2015/lib/search/search-settings/search-settings.module.js +0 -62
  897. package/esm2015/lib/search/search.module.js +0 -69
  898. package/esm2015/lib/search/shared/index.js +0 -9
  899. package/esm2015/lib/search/shared/search-pointer-summary.directive.js +0 -322
  900. package/esm2015/lib/search/shared/search-source-service.providers.js +0 -20
  901. package/esm2015/lib/search/shared/search-source.service.js +0 -47
  902. package/esm2015/lib/search/shared/search.enums.js +0 -4
  903. package/esm2015/lib/search/shared/search.interfaces.js +0 -2
  904. package/esm2015/lib/search/shared/search.service.js +0 -118
  905. package/esm2015/lib/search/shared/search.utils.js +0 -78
  906. package/esm2015/lib/search/shared/sources/cadastre.js +0 -126
  907. package/esm2015/lib/search/shared/sources/cadastre.providers.js +0 -23
  908. package/esm2015/lib/search/shared/sources/coordinates.interfaces.js +0 -2
  909. package/esm2015/lib/search/shared/sources/coordinates.js +0 -147
  910. package/esm2015/lib/search/shared/sources/coordinates.providers.js +0 -40
  911. package/esm2015/lib/search/shared/sources/icherche.interfaces.js +0 -2
  912. package/esm2015/lib/search/shared/sources/icherche.js +0 -756
  913. package/esm2015/lib/search/shared/sources/icherche.providers.js +0 -66
  914. package/esm2015/lib/search/shared/sources/ilayer.interfaces.js +0 -2
  915. package/esm2015/lib/search/shared/sources/ilayer.js +0 -320
  916. package/esm2015/lib/search/shared/sources/ilayer.providers.js +0 -40
  917. package/esm2015/lib/search/shared/sources/index.js +0 -20
  918. package/esm2015/lib/search/shared/sources/nominatim.interfaces.js +0 -2
  919. package/esm2015/lib/search/shared/sources/nominatim.js +0 -253
  920. package/esm2015/lib/search/shared/sources/nominatim.providers.js +0 -23
  921. package/esm2015/lib/search/shared/sources/source.interfaces.js +0 -2
  922. package/esm2015/lib/search/shared/sources/source.js +0 -179
  923. package/esm2015/lib/search/shared/sources/storedqueries.interfaces.js +0 -2
  924. package/esm2015/lib/search/shared/sources/storedqueries.js +0 -425
  925. package/esm2015/lib/search/shared/sources/storedqueries.providers.js +0 -41
  926. package/esm2015/lib/toast/index.js +0 -2
  927. package/esm2015/lib/toast/toast.component.js +0 -119
  928. package/esm2015/lib/toast/toast.module.js +0 -47
  929. package/esm2015/lib/utils/commonVectorStyle.interface.js +0 -2
  930. package/esm2015/lib/utils/commonVectorStyle.js +0 -75
  931. package/esm2015/lib/utils/googleLinks.js +0 -13
  932. package/esm2015/lib/utils/id-generator.js +0 -110
  933. package/esm2015/lib/utils/index.js +0 -6
  934. package/esm2015/lib/utils/osmLinks.js +0 -10
  935. package/esm2015/lib/wkt/index.js +0 -2
  936. package/esm2015/lib/wkt/shared/index.js +0 -2
  937. package/esm2015/lib/wkt/shared/wkt.service.js +0 -239
  938. package/esm2015/lib/wkt/wkt.module.js +0 -22
  939. package/esm2015/lib/workspace/confirmation-popup/confirmation-popup.component.js +0 -56
  940. package/esm2015/lib/workspace/confirmation-popup/confirmation-popup.module.js +0 -38
  941. package/esm2015/lib/workspace/confirmation-popup/index.js +0 -3
  942. package/esm2015/lib/workspace/index.js +0 -8
  943. package/esm2015/lib/workspace/shared/edition-workspace.js +0 -279
  944. package/esm2015/lib/workspace/shared/edition-workspace.service.js +0 -646
  945. package/esm2015/lib/workspace/shared/feature-workspace.js +0 -37
  946. package/esm2015/lib/workspace/shared/feature-workspace.service.js +0 -151
  947. package/esm2015/lib/workspace/shared/index.js +0 -8
  948. package/esm2015/lib/workspace/shared/wfs-workspace.js +0 -37
  949. package/esm2015/lib/workspace/shared/wfs-workspace.service.js +0 -151
  950. package/esm2015/lib/workspace/shared/wms-workspace.service.js +0 -263
  951. package/esm2015/lib/workspace/shared/workspace.utils.js +0 -24
  952. package/esm2015/lib/workspace/widgets/index.js +0 -4
  953. package/esm2015/lib/workspace/widgets/ogc-filter/ogc-filter.component.js +0 -52
  954. package/esm2015/lib/workspace/widgets/ogc-filter/ogc-filter.module.js +0 -38
  955. package/esm2015/lib/workspace/widgets/widgets.js +0 -15
  956. package/esm2015/lib/workspace/workspace-selector/workspace-selector.directive.js +0 -135
  957. package/esm2015/lib/workspace/workspace-selector/workspace-selector.module.js +0 -30
  958. package/esm2015/lib/workspace/workspace-updator/workspace-updator.directive.js +0 -116
  959. package/esm2015/lib/workspace/workspace-updator/workspace-updator.module.js +0 -30
  960. package/esm2015/lib/workspace/workspace.module.js +0 -64
  961. package/esm2015/public_api.js +0 -55
  962. package/fesm2015/igo2-geo.js +0 -42102
  963. package/fesm2015/igo2-geo.js.map +0 -1
@@ -1,459 +0,0 @@
1
- import * as olproj from 'ol/proj';
2
- import { MAC } from 'ol/has';
3
- import { NumberUtils } from '@igo2/utils';
4
- /**
5
- * This method extracts a coordinate tuple from a string.
6
- * @param str Any string
7
- * @param mapProjection string Map Projection
8
- * @param opts.forceNA boolean Force North America Zone
9
- * @returns object:
10
- * lonLat: Coordinate,
11
- * message: Message of error,
12
- * radius: radius of the confience of coordinate,
13
- * conf: confidence of the coordinate}
14
- */
15
- export function stringToLonLat(str, mapProjection, opts = {}) {
16
- let lonLat;
17
- let coordStr;
18
- let negativeLon;
19
- let degreesLon;
20
- let minutesLon;
21
- let secondsLon;
22
- let directionLon;
23
- let decimalLon;
24
- let negativeLat;
25
- let degreesLat;
26
- let minutesLat;
27
- let secondsLat;
28
- let directionLat;
29
- let decimalLat;
30
- let zone;
31
- let radius;
32
- let conf;
33
- let lon;
34
- let lat;
35
- const projectionPattern = '(\\s*;\\s*[\\d]{4,6})';
36
- const toProjection = '4326';
37
- let projectionStr;
38
- const projectionRegex = new RegExp(projectionPattern, 'g');
39
- const lonlatCoord = '([-+])?([\\d]{1,3})([,.](\\d+))?';
40
- const lonLatPattern = `${lonlatCoord}[\\s,]+${lonlatCoord}`;
41
- const lonLatRegex = new RegExp(`^${lonLatPattern}$`, 'g');
42
- const dmsCoord = '([0-9]{1,2})[:|°]?\\s*([0-9]{1,2})?[:|\'|′|’]?\\s*([0-9]{1,2}(?:.[0-9]+){0,1})?\\s*["|″|”]?\\s*';
43
- const dmsCoordPattern = `${dmsCoord}([N|S|E|W|O]),?\\s*${dmsCoord}([N|S|E|W|O])`;
44
- const dmsRegex = new RegExp(`^${dmsCoordPattern}$`, 'gi');
45
- const patternUtm = '(UTM)-?(\\d{1,2})[\\s,]*(\\d+[.,]?\\d+)[\\s,]+(\\d+[.,]?\\d+)';
46
- const utmRegex = new RegExp(`^${patternUtm}`, 'gi');
47
- const patternMtm = '(MTM)-?(\\d{1,2})[\\s,]*(\\d+[.,]?\\d+)[\\s,]+(\\d+[.,]?\\d+)';
48
- const mtmRegex = new RegExp(`^${patternMtm}`, 'gi');
49
- const ddCoord = '([-+])?(\\d{1,3})[,.](\\d+)';
50
- const patternDd = `${ddCoord}\\s*[,]?\\s*${ddCoord}`;
51
- const ddRegex = new RegExp(`^${patternDd}`, 'g');
52
- const dmdCoord = '([-+])?(\\d{1,3})[\\s,.]{1}(\\d{1,2})[\\s,.]{1}(\\d{1,2})[.,]?(\\d{1,5})?';
53
- const patternDmd = `${dmdCoord}\\s*[,.]?\\s*${dmdCoord}`;
54
- const dmdRegex = new RegExp(`^${patternDmd}`, 'g');
55
- /* eslint-disable max-len */
56
- const patternBELL = 'LAT\\s*[\\s:]*\\s*([-+])?(\\d{1,2})[\\s.,]?(\\d+)?[\\s.,]?\\s*(\\d{1,2}([.,]\\d+)?)?\\s*(N|S|E|W)?\\s*LONG\\s*[\\s:]*\\s*([-+])?(\\d{1,3})[\\s.,]?(\\d+)?[\\s.,]?\\s*(\\d{1,2}([.,]\\d+)?)?\\s*(N|S|E|W)?\\s*UNC\\s*[\\s:]?\\s*(\\d+)\\s*CONF\\s*[\\s:]?\\s*(\\d{1,3})';
57
- const bellRegex = new RegExp(`^${patternBELL}?`, 'gi');
58
- const mmCoord = '([-+]?\\d+)[,.]?(\\d+)?';
59
- const mmPattern = `${mmCoord}[\\s,]+${mmCoord}`;
60
- const mmRegex = new RegExp(`^${mmPattern}$`, 'g');
61
- let isXYCoords = false;
62
- str = str.toLocaleUpperCase().trim();
63
- // Extract projection
64
- if (projectionRegex.test(str)) {
65
- [coordStr, projectionStr] = str.split(';').map(s => s.trim());
66
- }
67
- else {
68
- coordStr = str;
69
- }
70
- if (lonLatRegex.test(coordStr)) {
71
- [
72
- ,
73
- negativeLon,
74
- lon,
75
- ,
76
- decimalLon,
77
- negativeLat,
78
- lat,
79
- ,
80
- decimalLat
81
- ] = coordStr.match(lonLatPattern);
82
- lon = parseFloat((negativeLon ? negativeLon : '') + lon + '.' + decimalLon);
83
- lat = parseFloat((negativeLat ? negativeLat : '') + lat + '.' + decimalLat);
84
- }
85
- else if (dmsRegex.test(coordStr)) {
86
- [
87
- ,
88
- degreesLon,
89
- minutesLon,
90
- secondsLon,
91
- directionLon,
92
- degreesLat,
93
- minutesLat,
94
- secondsLat,
95
- directionLat
96
- ] = coordStr.match(dmsCoordPattern);
97
- if (directionLon === 'S' || directionLon === 'N') {
98
- degreesLon = [degreesLat, (degreesLat = degreesLon)][0];
99
- minutesLon = [minutesLat, (minutesLat = minutesLon)][0];
100
- secondsLon = [secondsLat, (secondsLat = secondsLon)][0];
101
- directionLon = [directionLat, (directionLat = directionLon)][0];
102
- }
103
- lon = convertDMSToDD(parseFloat(degreesLon), parseFloat(minutesLon), parseFloat(secondsLon), directionLon);
104
- lat = convertDMSToDD(parseFloat(degreesLat), parseFloat(minutesLat), parseFloat(secondsLat), directionLat);
105
- }
106
- else if (utmRegex.test(coordStr)) {
107
- isXYCoords = true;
108
- [, , zone, lon, lat] = coordStr.match(patternUtm);
109
- const epsgUtm = Number(zone) < 10 ? `EPSG:3260${zone}` : `EPSG:326${zone}`;
110
- [lon, lat] = olproj.transform([parseFloat(lon), parseFloat(lat)], epsgUtm, 'EPSG:4326');
111
- }
112
- else if (mtmRegex.test(coordStr)) {
113
- isXYCoords = true;
114
- [, , zone, lon, lat] = coordStr.match(patternMtm);
115
- const epsgMtm = Number(zone) < 10 ? `EPSG:3218${zone}` : `EPSG:321${80 + Number(zone)}`;
116
- [lon, lat] = olproj.transform([parseFloat(lon), parseFloat(lat)], epsgMtm, 'EPSG:4326');
117
- }
118
- else if (dmdRegex.test(coordStr)) {
119
- [
120
- ,
121
- negativeLon,
122
- degreesLon,
123
- minutesLon,
124
- secondsLon,
125
- decimalLon,
126
- negativeLat,
127
- degreesLat,
128
- minutesLat,
129
- secondsLat,
130
- decimalLat
131
- ] = coordStr.match(patternDmd);
132
- lon = convertDMSToDD(parseFloat((negativeLon ? negativeLon : '') + degreesLon), parseFloat(minutesLon), parseFloat(secondsLon), directionLon);
133
- lat = convertDMSToDD(parseFloat((negativeLat ? negativeLat : '') + degreesLat), parseFloat(minutesLat), parseFloat(secondsLat), directionLat);
134
- }
135
- else if (ddRegex.test(coordStr)) {
136
- [
137
- ,
138
- negativeLon,
139
- degreesLon,
140
- decimalLon,
141
- negativeLat,
142
- degreesLat,
143
- decimalLat
144
- ] = coordStr.match(patternDd);
145
- lon = convertDMSToDD(parseFloat((negativeLon ? negativeLon : '') + degreesLon), parseFloat(minutesLon), parseFloat(secondsLon), directionLon);
146
- lat = convertDMSToDD(parseFloat((negativeLat ? negativeLat : '') + degreesLat), parseFloat(minutesLat), parseFloat(secondsLat), directionLat);
147
- }
148
- else if (bellRegex.test(coordStr)) {
149
- [
150
- ,
151
- negativeLat,
152
- degreesLat,
153
- minutesLat,
154
- secondsLat,
155
- ,
156
- directionLat,
157
- negativeLon,
158
- degreesLon,
159
- minutesLon,
160
- secondsLon,
161
- ,
162
- directionLon,
163
- radius,
164
- conf
165
- ] = coordStr.match(patternBELL);
166
- // Set default value for North America
167
- if (!directionLon) {
168
- directionLon = 'W';
169
- }
170
- // Check if real minutes or decimals
171
- if (minutesLon && minutesLon.length > 2) {
172
- lon = parseFloat((negativeLon ? negativeLon : '') + degreesLon + '.' + minutesLon);
173
- }
174
- else {
175
- lon = convertDMSToDD(parseFloat(degreesLon), parseFloat(minutesLon), parseFloat(secondsLon), directionLon);
176
- }
177
- if (minutesLat && minutesLat.length > 2) {
178
- lat = parseFloat((negativeLat ? negativeLat : '') + degreesLat + '.' + minutesLat);
179
- }
180
- else {
181
- lat = convertDMSToDD(parseFloat(degreesLat), parseFloat(minutesLat), parseFloat(secondsLat), directionLat);
182
- }
183
- }
184
- else if (mmRegex.test(coordStr)) {
185
- isXYCoords = true;
186
- [, lon, decimalLon, lat, decimalLat] = coordStr.match(mmPattern);
187
- if (decimalLon) {
188
- lon = parseFloat(lon + '.' + decimalLon);
189
- }
190
- if (decimalLat) {
191
- lat = parseFloat(lat + '.' + decimalLat);
192
- }
193
- }
194
- else {
195
- return {
196
- lonLat: undefined,
197
- message: '',
198
- radius: undefined,
199
- conf: undefined
200
- };
201
- }
202
- if (opts.forceNA && !isXYCoords) {
203
- // Set a negative coordinate for North America zone
204
- if (lon > 0 && lat > 0) {
205
- if (lon > lat) {
206
- lon = -lon;
207
- }
208
- else {
209
- lat = -lat;
210
- }
211
- }
212
- // Reverse coordinate to respect lonLat convention
213
- if (lon > lat) {
214
- lon = [lat, (lat = lon)][0];
215
- }
216
- }
217
- lonLat = [Number(lon), Number(lat)];
218
- // Reproject the coordinate if projection parameter have been set and coord is not 4326
219
- if ((projectionStr !== undefined && projectionStr !== toProjection) ||
220
- (lonLat[0] > 180 || lonLat[0] < -180) ||
221
- (lonLat[1] > 90 || lonLat[1] < -90)) {
222
- const source = projectionStr ? 'EPSG:' + projectionStr : mapProjection;
223
- const dest = 'EPSG:' + toProjection;
224
- try {
225
- lonLat = olproj.transform(lonLat, source, dest);
226
- }
227
- catch (e) {
228
- return {
229
- lonLat: undefined,
230
- message: 'Projection ' + source + ' not supported',
231
- radius: undefined,
232
- conf: undefined
233
- };
234
- }
235
- }
236
- if (Math.abs(lonLat[0]) <= 180 && Math.abs(lonLat[1]) <= 90) {
237
- return {
238
- lonLat,
239
- message: '',
240
- radius: radius ? parseInt(radius, 10) : undefined,
241
- conf: conf ? parseInt(conf, 10) : undefined
242
- };
243
- }
244
- else {
245
- return {
246
- lonLat: undefined,
247
- message: 'Coordinate out of Longitude/Latitude bounds',
248
- radius: undefined,
249
- conf: undefined
250
- };
251
- }
252
- }
253
- /**
254
- * Convert degrees minutes seconds to dd
255
- * @param degrees Degrees
256
- * @param minutes Minutes
257
- * @param seconds Seconds
258
- * @param direction Direction
259
- */
260
- function convertDMSToDD(degrees, minutes, seconds, direction) {
261
- minutes = minutes || 0;
262
- seconds = seconds || 0;
263
- const neg = degrees < 0;
264
- let dd = Math.abs(degrees) + minutes / 60 + seconds / 3600;
265
- if (neg || direction === 'S' || direction === 'W') {
266
- dd = -dd;
267
- } // Don't do anything for N or E
268
- return dd;
269
- }
270
- /**
271
- * Convert dd to degrees minutes seconds
272
- * @param lonLatDD longitude and latitude in dd
273
- * @param decimal number of decimals for seconds
274
- * @returns longitude and latitude in dms
275
- */
276
- export function convertDDToDMS(lonLatDD, decimal = 3) {
277
- const lonLatDMS = [];
278
- lonLatDD.forEach(dd => {
279
- const degrees = dd < 0 ? Math.ceil(dd) : Math.floor(dd);
280
- const int = dd < 0 ? (degrees - dd) * 60 : (dd - degrees) * 60;
281
- const minutes = Math.floor(int);
282
- const seconds = ((int - minutes) * 60).toFixed(decimal);
283
- lonLatDMS.push(`${degrees}° ${minutes}' ${seconds}"`);
284
- });
285
- return lonLatDMS;
286
- }
287
- /**
288
- * Return true of two view states are equal.
289
- * @param state1 View state
290
- * @param state2 View state
291
- * @returns True if the view states are equal
292
- */
293
- export function viewStatesAreEqual(state1, state2) {
294
- if (state1 === undefined || state2 === undefined) {
295
- return false;
296
- }
297
- const tolerance = 1 / 10000;
298
- return (state1.zoom === state2.zoom &&
299
- Math.trunc(state1.center[0] / tolerance) ===
300
- Math.trunc(state2.center[0] / tolerance) &&
301
- Math.trunc(state1.center[1] / tolerance) ===
302
- Math.trunc(state2.center[1] / tolerance));
303
- }
304
- /**
305
- * Format the scale to a human readable text
306
- * @param Scale of the map
307
- * @returns Human readable scale text
308
- */
309
- export function formatScale(scale) {
310
- scale = Math.round(scale);
311
- if (scale < 10000) {
312
- return scale + '';
313
- }
314
- scale = Math.round(scale / 1000);
315
- if (scale < 1000) {
316
- return scale + 'K';
317
- }
318
- scale = Math.round(scale / 1000);
319
- return scale + 'M';
320
- }
321
- /**
322
- * Return the resolution from a scale denom
323
- * @param scale Scale denom
324
- * @param dpi DPI
325
- * @returns Resolution
326
- */
327
- export function getResolutionFromScale(scale, dpi = 96) {
328
- const inchesPerMeter = 39.3701;
329
- return scale / (inchesPerMeter * dpi);
330
- }
331
- /**
332
- * Return the resolution from a scale denom
333
- * @param Scale denom
334
- * @returns Resolution
335
- */
336
- export function getScaleFromResolution(resolution, unit = 'm', dpi = 96) {
337
- const inchesPerMeter = 39.3701;
338
- return resolution * olproj.METERS_PER_UNIT[unit] * inchesPerMeter * dpi;
339
- }
340
- /**
341
- * Returns true if the CTRL key is pushed during an Ol MapBrowserPointerEvent
342
- * @param event OL MapBrowserPointerEvent
343
- * @returns Whether the CTRL key is pushed
344
- */
345
- export function ctrlKeyDown(event) {
346
- const originalEvent = event.originalEvent;
347
- return (!originalEvent.altKey &&
348
- (MAC ? originalEvent.metaKey : originalEvent.ctrlKey) &&
349
- !originalEvent.shiftKey);
350
- }
351
- export function roundCoordTo(coord, decimal = 3) {
352
- return [
353
- NumberUtils.roundToNDecimal(coord[0], decimal),
354
- NumberUtils.roundToNDecimal(coord[1], decimal)
355
- ];
356
- }
357
- /**
358
- * Returns an array of converted coordinates.
359
- * Conversion is done for every configured projections
360
- * and for the current UTM zone and MTM zone.
361
- * @param lonLat [number, number] array of the coordinate to transform.
362
- * @param projections Projection[] Array of destination projection.
363
- * @returns Returns an array of converted coordinates.
364
- */
365
- export function lonLatConversion(lonLat, projections) {
366
- const rawCoord3857 = olproj.transform(lonLat, 'EPSG:4326', 'EPSG:3857');
367
- const convertedLonLat = [
368
- {
369
- code: 'EPSG:3857',
370
- alias: 'Web Mercator',
371
- coord: rawCoord3857,
372
- igo2CoordFormat: `${roundCoordTo(rawCoord3857).join(', ')} ; 3857`
373
- }
374
- ];
375
- // detect the current utm zone.
376
- const utmZone = utmZoneFromLonLat(lonLat);
377
- const epsgUtm = utmZone < 10 ? `EPSG:3260${utmZone}` : `EPSG:326${utmZone}`;
378
- const utmName = `UTM-${utmZone}`;
379
- const rawCoordUtm = olproj.transform(lonLat, 'EPSG:4326', epsgUtm);
380
- convertedLonLat.push({
381
- code: epsgUtm,
382
- alias: 'UTM',
383
- coord: rawCoordUtm,
384
- igo2CoordFormat: `${utmName} ${roundCoordTo(rawCoordUtm).join(', ')}`
385
- });
386
- // detect the current mtm zone.
387
- const mtmZone = mtmZoneFromLonLat(lonLat);
388
- if (mtmZone) {
389
- const epsgMtm = mtmZone < 10 ? `EPSG:3218${mtmZone}` : `EPSG:321${80 + mtmZone}`;
390
- const mtmName = `MTM-${mtmZone}`;
391
- const rawCoordMtm = olproj.transform(lonLat, 'EPSG:4326', epsgMtm);
392
- convertedLonLat.push({
393
- code: epsgMtm,
394
- alias: 'MTM',
395
- coord: rawCoordMtm,
396
- igo2CoordFormat: `${mtmName} ${roundCoordTo(rawCoordMtm).join(', ')}`
397
- });
398
- }
399
- projections.forEach(projection => {
400
- const rawCoord = olproj.transform(lonLat, 'EPSG:4326', projection.code);
401
- const numericEpsgCode = projection.code.split(':')[1];
402
- convertedLonLat.push({
403
- code: projection.code,
404
- alias: projection.alias || projection.code,
405
- coord: rawCoord,
406
- igo2CoordFormat: `${roundCoordTo(rawCoord).join(', ')} ; ${numericEpsgCode}`
407
- });
408
- });
409
- return convertedLonLat;
410
- }
411
- /**
412
- * Detect the current utm zone of the lon/lat coordinate.
413
- * @param lonLat [number, number] array of the coordinate to detect the UTM zone.
414
- * @returns number The UTM zone.
415
- */
416
- export function utmZoneFromLonLat(lonLat) {
417
- return Math.ceil((lonLat[0] + 180) / 6);
418
- }
419
- /**
420
- * Detect the current mtm zone of the lon/lat coordinate.
421
- * @param lonLat [number, number] array of the coordinate to detect the MTM zone.
422
- * @returns number The MTM zone. Undefined if outside of the mtm application zone.
423
- */
424
- export function mtmZoneFromLonLat(lonLat) {
425
- const long = lonLat[0];
426
- let mtmZone;
427
- if (long < -51 && long > -54) {
428
- mtmZone = 1;
429
- }
430
- if (long < -54 && long > -57) {
431
- mtmZone = 2;
432
- }
433
- if (long < -57 && long > -60) {
434
- mtmZone = 3;
435
- }
436
- if (long < -60 && long > -63) {
437
- mtmZone = 4;
438
- }
439
- if (long < -63 && long > -66) {
440
- mtmZone = 5;
441
- }
442
- if (long < -66 && long > -69) {
443
- mtmZone = 6;
444
- }
445
- if (long < -69 && long > -72) {
446
- mtmZone = 7;
447
- }
448
- if (long < -72 && long > -75) {
449
- mtmZone = 8;
450
- }
451
- if (long < -75 && long > -78) {
452
- mtmZone = 9;
453
- }
454
- if (long < -78 && long > -81) {
455
- mtmZone = 10;
456
- }
457
- return mtmZone;
458
- }
459
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbWFwL3NoYXJlZC9tYXAudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sTUFBTSxTQUFTLENBQUM7QUFFbEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUU3QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSzFDOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUM1QixHQUFXLEVBQ1gsYUFBcUIsRUFDckIsT0FBOEIsRUFBRTtJQU9oQyxJQUFJLE1BQXdCLENBQUM7SUFDN0IsSUFBSSxRQUFnQixDQUFDO0lBQ3JCLElBQUksV0FBbUIsQ0FBQztJQUN4QixJQUFJLFVBQWtCLENBQUM7SUFDdkIsSUFBSSxVQUFrQixDQUFDO0lBQ3ZCLElBQUksVUFBa0IsQ0FBQztJQUN2QixJQUFJLFlBQW9CLENBQUM7SUFDekIsSUFBSSxVQUFrQixDQUFDO0lBQ3ZCLElBQUksV0FBbUIsQ0FBQztJQUN4QixJQUFJLFVBQWtCLENBQUM7SUFDdkIsSUFBSSxVQUFrQixDQUFDO0lBQ3ZCLElBQUksVUFBa0IsQ0FBQztJQUN2QixJQUFJLFlBQW9CLENBQUM7SUFDekIsSUFBSSxVQUFrQixDQUFDO0lBQ3ZCLElBQUksSUFBWSxDQUFDO0lBQ2pCLElBQUksTUFBYyxDQUFDO0lBQ25CLElBQUksSUFBWSxDQUFDO0lBQ2pCLElBQUksR0FBUSxDQUFDO0lBQ2IsSUFBSSxHQUFRLENBQUM7SUFFYixNQUFNLGlCQUFpQixHQUFHLHVCQUF1QixDQUFDO0lBQ2xELE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQztJQUM1QixJQUFJLGFBQXFCLENBQUM7SUFDMUIsTUFBTSxlQUFlLEdBQUcsSUFBSSxNQUFNLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxD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QUksQ0FBQyxRQUFRLENBQUMsRUFBRTtRQUNsQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLENBQUMsRUFBRSxBQUFELEVBQUcsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7UUFDM0UsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FDM0IsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQ2xDLE9BQU8sRUFDUCxXQUFXLENBQ1osQ0FBQztLQUNIO1NBQU0sSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ2xDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDbEIsQ0FBQyxFQUFFLEFBQUQsRUFBRyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEQsTUFBTSxPQUFPLEdBQ1gsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDMUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FDM0IsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQ2xDLE9BQU8sRUFDUCxXQUFXLENBQ1osQ0FBQztLQUNIO1NBQU0sSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEs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RUFBRTtRQUM1QixPQUFPLEdBQUcsQ0FBQyxDQUFDO0tBQ2I7SUFDRCxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUU7UUFDNUIsT0FBTyxHQUFHLENBQUMsQ0FBQztLQUNiO0lBQ0QsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFO1FBQzVCLE9BQU8sR0FBRyxDQUFDLENBQUM7S0FDYjtJQUNELElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRTtRQUM1QixPQUFPLEdBQUcsQ0FBQyxDQUFDO0tBQ2I7SUFDRCxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUU7UUFDNUIsT0FBTyxHQUFHLENBQUMsQ0FBQztLQUNiO0lBQ0QsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFO1FBQzVCLE9BQU8sR0FBRyxDQUFDLENBQUM7S0FDYjtJQUNELElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRTtRQUM1QixPQUFPLEdBQUcsQ0FBQyxDQUFDO0tBQ2I7SUFDRCxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUU7UUFDNUIsT0FBTyxHQUFHLENBQUMsQ0FBQztLQUNiO0lBQ0QsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFO1FBQzVCLE9BQU8sR0FBRyxFQUFFLENBQUM7S0FDZDtJQUNELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBvbHByb2ogZnJvbSAnb2wvcHJvaic7XG5pbXBvcnQgTWFwQnJvd3NlclBvaW50ZXJFdmVudCBmcm9tICdvbC9NYXBCcm93c2VyRXZlbnQnO1xuaW1wb3J0IHsgTUFDIH0gZnJvbSAnb2wvaGFzJztcblxuaW1wb3J0IHsgTnVtYmVyVXRpbHMgfSBmcm9tICdAaWdvMi91dGlscyc7XG5cbmltcG9ydCB7IE1hcFZpZXdTdGF0ZSB9IGZyb20gJy4vbWFwLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQcm9qZWN0aW9uIH0gZnJvbSAnLi9wcm9qZWN0aW9uLmludGVyZmFjZXMnO1xuXG4vKipcbiAqIFRoaXMgbWV0aG9kIGV4dHJhY3RzIGEgY29vcmRpbmF0ZSB0dXBsZSBmcm9tIGEgc3RyaW5nLlxuICogQHBhcmFtIHN0ciBBbnkgc3RyaW5nXG4gKiBAcGFyYW0gbWFwUHJvamVjdGlvbiBzdHJpbmcgTWFwIFByb2plY3Rpb25cbiAqIEBwYXJhbSBvcHRzLmZvcmNlTkEgYm9vbGVhbiBGb3JjZSBOb3J0aCBBbWVyaWNhIFpvbmVcbiAqIEByZXR1cm5zIG9iamVjdDpcbiAqICAgICAgICAgICAgIGxvbkxhdDogQ29vcmRpbmF0ZSxcbiAqICAgICAgICAgICAgIG1lc3NhZ2U6IE1lc3NhZ2Ugb2YgZXJyb3IsXG4gKiAgICAgICAgICAgICByYWRpdXM6IHJhZGl1cyBvZiB0aGUgY29uZmllbmNlIG9mIGNvb3JkaW5hdGUsXG4gKiAgICAgICAgICAgICBjb25mOiBjb25maWRlbmNlIG9mIHRoZSBjb29yZGluYXRlfVxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5nVG9Mb25MYXQoXG4gIHN0cjogc3RyaW5nLFxuICBtYXBQcm9qZWN0aW9uOiBzdHJpbmcsXG4gIG9wdHM6IHsgZm9yY2VOQT86IGJvb2xlYW4gfSA9IHt9XG4pOiB7XG4gIGxvbkxhdDogW251bWJlciwgbnVtYmVyXSB8IHVuZGVmaW5lZDtcbiAgbWVzc2FnZTogc3RyaW5nO1xuICByYWRpdXM6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgY29uZjogbnVtYmVyIHwgdW5kZWZpbmVkO1xufSB7XG4gIGxldCBsb25MYXQ6IFtudW1iZXIsIG51bWJlcl07XG4gIGxldCBjb29yZFN0cjogc3RyaW5nO1xuICBsZXQgbmVnYXRpdmVMb246IHN0cmluZztcbiAgbGV0IGRlZ3JlZXNMb246IHN0cmluZztcbiAgbGV0IG1pbnV0ZXNMb246IHN0cmluZztcbiAgbGV0IHNlY29uZHNMb246IHN0cmluZztcbiAgbGV0IGRpcmVjdGlvbkxvbjogc3RyaW5nO1xuICBsZXQgZGVjaW1hbExvbjogc3RyaW5nO1xuICBsZXQgbmVnYXRpdmVMYXQ6IHN0cmluZztcbiAgbGV0IGRlZ3JlZXNMYXQ6IHN0cmluZztcbiAgbGV0IG1pbnV0ZXNMYXQ6IHN0cmluZztcbiAgbGV0IHNlY29uZHNMYXQ6IHN0cmluZztcbiAgbGV0IGRpcmVjdGlvbkxhdDogc3RyaW5nO1xuICBsZXQgZGVjaW1hbExhdDogc3RyaW5nO1xuICBsZXQgem9uZTogc3RyaW5nO1xuICBsZXQgcmFkaXVzOiBzdHJpbmc7XG4gIGxldCBjb25mOiBzdHJpbmc7XG4gIGxldCBsb246IGFueTtcbiAgbGV0IGxhdDogYW55O1xuXG4gIGNvbnN0IHByb2plY3Rpb25QYXR0ZXJuID0gJyhcXFxccyo7XFxcXHMqW1xcXFxkXXs0LDZ9KSc7XG4gIGNvbnN0IHRvUHJvamVjdGlvbiA9ICc0MzI2JztcbiAgbGV0IHByb2plY3Rpb25TdHI6IHN0cmluZztcbiAgY29uc3QgcHJvamVjdGlvblJlZ2V4ID0gbmV3IFJlZ0V4cChwcm9qZWN0aW9uUGF0dGVybiwgJ2cnKTtcblxuICBjb25zdCBsb25sYXRDb29yZCA9ICcoWy0rXSk/KFtcXFxcZF17MSwzfSkoWywuXShcXFxcZCspKT8nO1xuICBjb25zdCBsb25MYXRQYXR0ZXJuID0gYCR7bG9ubGF0Q29vcmR9W1xcXFxzLF0rJHtsb25sYXRDb29yZH1gO1xuICBjb25zdCBsb25MYXRSZWdleCA9IG5ldyBSZWdFeHAoYF4ke2xvbkxhdFBhdHRlcm59JGAsICdnJyk7XG5cbiAgY29uc3QgZG1zQ29vcmQgPVxuICAgICcoWzAtOV17MSwyfSlbOnzCsF0/XFxcXHMqKFswLTldezEsMn0pP1s6fFxcJ3zigLJ84oCZXT9cXFxccyooWzAtOV17MSwyfSg/Oi5bMC05XSspezAsMX0pP1xcXFxzKltcInzigLN84oCdXT9cXFxccyonO1xuICBjb25zdCBkbXNDb29yZFBhdHRlcm4gPSBgJHtkbXNDb29yZH0oW058U3xFfFd8T10pLD9cXFxccyoke2Rtc0Nvb3JkfShbTnxTfEV8V3xPXSlgO1xuICBjb25zdCBkbXNSZWdleCA9IG5ldyBSZWdFeHAoYF4ke2Rtc0Nvb3JkUGF0dGVybn0kYCwgJ2dpJyk7XG5cbiAgY29uc3QgcGF0dGVyblV0bSA9XG4gICAgJyhVVE0pLT8oXFxcXGR7MSwyfSlbXFxcXHMsXSooXFxcXGQrWy4sXT9cXFxcZCspW1xcXFxzLF0rKFxcXFxkK1suLF0/XFxcXGQrKSc7XG4gIGNvbnN0IHV0bVJlZ2V4ID0gbmV3IFJlZ0V4cChgXiR7cGF0dGVyblV0bX1gLCAnZ2knKTtcblxuICBjb25zdCBwYXR0ZXJuTXRtID1cbiAgICAnKE1UTSktPyhcXFxcZHsxLDJ9KVtcXFxccyxdKihcXFxcZCtbLixdP1xcXFxkKylbXFxcXHMsXSsoXFxcXGQrWy4sXT9cXFxcZCspJztcbiAgY29uc3QgbXRtUmVnZXggPSBuZXcgUmVnRXhwKGBeJHtwYXR0ZXJuTXRtfWAsICdnaScpO1xuXG4gIGNvbnN0IGRkQ29vcmQgPSAnKFstK10pPyhcXFxcZHsxLDN9KVssLl0oXFxcXGQrKSc7XG4gIGNvbnN0IHBhdHRlcm5EZCA9IGAke2RkQ29vcmR9XFxcXHMqWyxdP1xcXFxzKiR7ZGRDb29yZH1gO1xuICBjb25zdCBkZFJlZ2V4ID0gbmV3IFJlZ0V4cChgXiR7cGF0dGVybkRkfWAsICdnJyk7XG5cbiAgY29uc3QgZG1kQ29vcmQgPVxuICAgICcoWy0rXSk/KFxcXFxkezEsM30pW1xcXFxzLC5dezF9KFxcXFxkezEsMn0pW1xcXFxzLC5dezF9KFxcXFxkezEsMn0pWy4sXT8oXFxcXGR7MSw1fSk/JztcbiAgY29uc3QgcGF0dGVybkRtZCA9IGAke2RtZENvb3JkfVxcXFxzKlssLl0/XFxcXHMqJHtkbWRDb29yZH1gO1xuICBjb25zdCBkbWRSZWdleCA9IG5ldyBSZWdFeHAoYF4ke3BhdHRlcm5EbWR9YCwgJ2cnKTtcblxuIC8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4gKi9cbiAgY29uc3QgcGF0dGVybkJFTEwgPVxuICAgICdMQVRcXFxccypbXFxcXHM6XSpcXFxccyooWy0rXSk/KFxcXFxkezEsMn0pW1xcXFxzLixdPyhcXFxcZCspP1tcXFxccy4sXT9cXFxccyooXFxcXGR7MSwyfShbLixdXFxcXGQrKT8pP1xcXFxzKihOfFN8RXxXKT9cXFxccypMT05HXFxcXHMqW1xcXFxzOl0qXFxcXHMqKFstK10pPyhcXFxcZHsxLDN9KVtcXFxccy4sXT8oXFxcXGQrKT9bXFxcXHMuLF0/XFxcXHMqKFxcXFxkezEsMn0oWy4sXVxcXFxkKyk/KT9cXFxccyooTnxTfEV8Vyk/XFxcXHMqVU5DXFxcXHMqW1xcXFxzOl0/XFxcXHMqKFxcXFxkKylcXFxccypDT05GXFxcXHMqW1xcXFxzOl0/XFxcXHMqKFxcXFxkezEsM30pJztcbiAgY29uc3QgYmVsbFJlZ2V4ID0gbmV3IFJlZ0V4cChgXiR7cGF0dGVybkJFTEx9P2AsICdnaScpO1xuXG4gIGNvbnN0IG1tQ29vcmQgPSAnKFstK10/XFxcXGQrKVssLl0/KFxcXFxkKyk/JztcbiAgY29uc3QgbW1QYXR0ZXJuID0gYCR7bW1Db29yZH1bXFxcXHMsXSske21tQ29vcmR9YDtcbiAgY29uc3QgbW1SZWdleCA9IG5ldyBSZWdFeHAoYF4ke21tUGF0dGVybn0kYCwgJ2cnKTtcblxuICBsZXQgaXNYWUNvb3JkcyA9IGZhbHNlO1xuXG4gIHN0ciA9IHN0ci50b0xvY2FsZVVwcGVyQ2FzZSgpLnRyaW0oKTtcblxuICAvLyBFeHRyYWN0IHByb2plY3Rpb25cbiAgaWYgKHByb2plY3Rpb25SZWdleC50ZXN0KHN0cikpIHtcbiAgICBbY29vcmRTdHIsIHByb2plY3Rpb25TdHJdID0gc3RyLnNwbGl0KCc7JykubWFwKHMgPT4gcy50cmltKCkpO1xuICB9IGVsc2Uge1xuICAgIGNvb3JkU3RyID0gc3RyO1xuICB9XG4gIGlmIChsb25MYXRSZWdleC50ZXN0KGNvb3JkU3RyKSkge1xuICAgIFtcbiAgICAgICxcbiAgICAgIG5lZ2F0aXZlTG9uLFxuICAgICAgbG9uLFxuICAgICAgLFxuICAgICAgZGVjaW1hbExvbixcbiAgICAgIG5lZ2F0aXZlTGF0LFxuICAgICAgbGF0LFxuICAgICAgLFxuICAgICAgZGVjaW1hbExhdFxuICAgIF0gPSBjb29yZFN0ci5tYXRjaChsb25MYXRQYXR0ZXJuKTtcblxuICAgIGxvbiA9IHBhcnNlRmxvYXQoKG5lZ2F0aXZlTG9uID8gbmVnYXRpdmVMb24gOiAnJykgKyBsb24gKyAnLicgKyBkZWNpbWFsTG9uKTtcbiAgICBsYXQgPSBwYXJzZUZsb2F0KChuZWdhdGl2ZUxhdCA/IG5lZ2F0aXZlTGF0IDogJycpICsgbGF0ICsgJy4nICsgZGVjaW1hbExhdCk7XG4gIH0gZWxzZSBpZiAoZG1zUmVnZXgudGVzdChjb29yZFN0cikpIHtcbiAgICBbXG4gICAgICAsXG4gICAgICBkZWdyZWVzTG9uLFxuICAgICAgbWludXRlc0xvbixcbiAgICAgIHNlY29uZHNMb24sXG4gICAgICBkaXJlY3Rpb25Mb24sXG4gICAgICBkZWdyZWVzTGF0LFxuICAgICAgbWludXRlc0xhdCxcbiAgICAgIHNlY29uZHNMYXQsXG4gICAgICBkaXJlY3Rpb25MYXRcbiAgICBdID0gY29vcmRTdHIubWF0Y2goZG1zQ29vcmRQYXR0ZXJuKTtcblxuICAgIGlmIChkaXJlY3Rpb25Mb24gPT09ICdTJyB8fCBkaXJlY3Rpb25Mb24gPT09ICdOJykge1xuICAgICAgZGVncmVlc0xvbiA9IFtkZWdyZWVzTGF0LCAoZGVncmVlc0xhdCA9IGRlZ3JlZXNMb24pXVswXTtcbiAgICAgIG1pbnV0ZXNMb24gPSBbbWludXRlc0xhdCwgKG1pbnV0ZXNMYXQgPSBtaW51dGVzTG9uKV1bMF07XG4gICAgICBzZWNvbmRzTG9uID0gW3NlY29uZHNMYXQsIChzZWNvbmRzTGF0ID0gc2Vjb25kc0xvbildWzBdO1xuICAgICAgZGlyZWN0aW9uTG9uID0gW2RpcmVjdGlvbkxhdCwgKGRpcmVjdGlvbkxhdCA9IGRpcmVjdGlvbkxvbildWzBdO1xuICAgIH1cblxuICAgIGxvbiA9IGNvbnZlcnRETVNUb0REKFxuICAgICAgcGFyc2VGbG9hdChkZWdyZWVzTG9uKSxcbiAgICAgIHBhcnNlRmxvYXQobWludXRlc0xvbiksXG4gICAgICBwYXJzZUZsb2F0KHNlY29uZHNMb24pLFxuICAgICAgZGlyZWN0aW9uTG9uXG4gICAgKTtcbiAgICBsYXQgPSBjb252ZXJ0RE1TVG9ERChcbiAgICAgIHBhcnNlRmxvYXQoZGVncmVlc0xhdCksXG4gICAgICBwYXJzZUZsb2F0KG1pbnV0ZXNMYXQpLFxuICAgICAgcGFyc2VGbG9hdChzZWNvbmRzTGF0KSxcbiAgICAgIGRpcmVjdGlvbkxhdFxuICAgICk7XG4gIH0gZWxzZSBpZiAodXRtUmVnZXgudGVzdChjb29yZFN0cikpIHtcbiAgICBpc1hZQ29vcmRzID0gdHJ1ZTtcbiAgICBbLCAsIHpvbmUsIGxvbiwgbGF0XSA9IGNvb3JkU3RyLm1hdGNoKHBhdHRlcm5VdG0pO1xuICAgIGNvbnN0IGVwc2dVdG0gPSBOdW1iZXIoem9uZSkgPCAxMCA/IGBFUFNHOjMyNjAke3pvbmV9YCA6IGBFUFNHOjMyNiR7em9uZX1gO1xuICAgIFtsb24sIGxhdF0gPSBvbHByb2oudHJhbnNmb3JtKFxuICAgICAgW3BhcnNlRmxvYXQobG9uKSwgcGFyc2VGbG9hdChsYXQpXSxcbiAgICAgIGVwc2dVdG0sXG4gICAgICAnRVBTRzo0MzI2J1xuICAgICk7XG4gIH0gZWxzZSBpZiAobXRtUmVnZXgudGVzdChjb29yZFN0cikpIHtcbiAgICBpc1hZQ29vcmRzID0gdHJ1ZTtcbiAgICBbLCAsIHpvbmUsIGxvbiwgbGF0XSA9IGNvb3JkU3RyLm1hdGNoKHBhdHRlcm5NdG0pO1xuICAgIGNvbnN0IGVwc2dNdG0gPVxuICAgICAgTnVtYmVyKHpvbmUpIDwgMTAgPyBgRVBTRzozMjE4JHt6b25lfWAgOiBgRVBTRzozMjEkezgwICsgTnVtYmVyKHpvbmUpfWA7XG4gICAgW2xvbiwgbGF0XSA9IG9scHJvai50cmFuc2Zvcm0oXG4gICAgICBbcGFyc2VGbG9hdChsb24pLCBwYXJzZUZsb2F0KGxhdCldLFxuICAgICAgZXBzZ010bSxcbiAgICAgICdFUFNHOjQzMjYnXG4gICAgKTtcbiAgfSBlbHNlIGlmIChkbWRSZWdleC50ZXN0KGNvb3JkU3RyKSkge1xuICAgIFtcbiAgICAgICxcbiAgICAgIG5lZ2F0aXZlTG9uLFxuICAgICAgZGVncmVlc0xvbixcbiAgICAgIG1pbnV0ZXNMb24sXG4gICAgICBzZWNvbmRzTG9uLFxuICAgICAgZGVjaW1hbExvbixcbiAgICAgIG5lZ2F0aXZlTGF0LFxuICAgICAgZGVncmVlc0xhdCxcbiAgICAgIG1pbnV0ZXNMYXQsXG4gICAgICBzZWNvbmRzTGF0LFxuICAgICAgZGVjaW1hbExhdFxuICAgIF0gPSBjb29yZFN0ci5tYXRjaChwYXR0ZXJuRG1kKTtcblxuICAgIGxvbiA9IGNvbnZlcnRETVNUb0REKFxuICAgICAgcGFyc2VGbG9hdCgobmVnYXRpdmVMb24gPyBuZWdhdGl2ZUxvbiA6ICcnKSArIGRlZ3JlZXNMb24pLFxuICAgICAgcGFyc2VGbG9hdChtaW51dGVzTG9uKSxcbiAgICAgIHBhcnNlRmxvYXQoc2Vjb25kc0xvbiksXG4gICAgICBkaXJlY3Rpb25Mb25cbiAgICApO1xuICAgIGxhdCA9IGNvbnZlcnRETVNUb0REKFxuICAgICAgcGFyc2VGbG9hdCgobmVnYXRpdmVMYXQgPyBuZWdhdGl2ZUxhdCA6ICcnKSArIGRlZ3JlZXNMYXQpLFxuICAgICAgcGFyc2VGbG9hdChtaW51dGVzTGF0KSxcbiAgICAgIHBhcnNlRmxvYXQoc2Vjb25kc0xhdCksXG4gICAgICBkaXJlY3Rpb25MYXRcbiAgICApO1xuICB9IGVsc2UgaWYgKGRkUmVnZXgudGVzdChjb29yZFN0cikpIHtcbiAgICBbXG4gICAgICAsXG4gICAgICBuZWdhdGl2ZUxvbixcbiAgICAgIGRlZ3JlZXNMb24sXG4gICAgICBkZWNpbWFsTG9uLFxuICAgICAgbmVnYXRpdmVMYXQsXG4gICAgICBkZWdyZWVzTGF0LFxuICAgICAgZGVjaW1hbExhdFxuICAgIF0gPSBjb29yZFN0ci5tYXRjaChwYXR0ZXJuRGQpO1xuXG4gICAgbG9uID0gY29udmVydERNU1RvREQoXG4gICAgICBwYXJzZUZsb2F0KChuZWdhdGl2ZUxvbiA/IG5lZ2F0aXZlTG9uIDogJycpICsgZGVncmVlc0xvbiksXG4gICAgICBwYXJzZUZsb2F0KG1pbnV0ZXNMb24pLFxuICAgICAgcGFyc2VGbG9hdChzZWNvbmRzTG9uKSxcbiAgICAgIGRpcmVjdGlvbkxvblxuICAgICk7XG4gICAgbGF0ID0gY29udmVydERNU1RvREQoXG4gICAgICBwYXJzZUZsb2F0KChuZWdhdGl2ZUxhdCA/IG5lZ2F0aXZlTGF0IDogJycpICsgZGVncmVlc0xhdCksXG4gICAgICBwYXJzZUZsb2F0KG1pbnV0ZXNMYXQpLFxuICAgICAgcGFyc2VGbG9hdChzZWNvbmRzTGF0KSxcbiAgICAgIGRpcmVjdGlvbkxhdFxuICAgICk7XG4gIH0gZWxzZSBpZiAoYmVsbFJlZ2V4LnRlc3QoY29vcmRTdHIpKSB7XG4gICAgW1xuICAgICAgLFxuICAgICAgbmVnYXRpdmVMYXQsXG4gICAgICBkZWdyZWVzTGF0LFxuICAgICAgbWludXRlc0xhdCxcbiAgICAgIHNlY29uZHNMYXQsXG4gICAgICAsXG4gICAgICBkaXJlY3Rpb25MYXQsXG4gICAgICBuZWdhdGl2ZUxvbixcbiAgICAgIGRlZ3JlZXNMb24sXG4gICAgICBtaW51dGVzTG9uLFxuICAgICAgc2Vjb25kc0xvbixcbiAgICAgICxcbiAgICAgIGRpcmVjdGlvbkxvbixcbiAgICAgIHJhZGl1cyxcbiAgICAgIGNvbmZcbiAgICBdID0gY29vcmRTdHIubWF0Y2gocGF0dGVybkJFTEwpO1xuXG4gICAgLy8gU2V0IGRlZmF1bHQgdmFsdWUgZm9yIE5vcnRoIEFtZXJpY2FcbiAgICBpZiAoIWRpcmVjdGlvbkxvbikge1xuICAgICAgZGlyZWN0aW9uTG9uID0gJ1cnO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGlmIHJlYWwgbWludXRlcyBvciBkZWNpbWFsc1xuICAgIGlmIChtaW51dGVzTG9uICYmIG1pbnV0ZXNMb24ubGVuZ3RoID4gMikge1xuICAgICAgbG9uID0gcGFyc2VGbG9hdChcbiAgICAgICAgKG5lZ2F0aXZlTG9uID8gbmVnYXRpdmVMb24gOiAnJykgKyBkZWdyZWVzTG9uICsgJy4nICsgbWludXRlc0xvblxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9uID0gY29udmVydERNU1RvREQoXG4gICAgICAgIHBhcnNlRmxvYXQoZGVncmVlc0xvbiksXG4gICAgICAgIHBhcnNlRmxvYXQobWludXRlc0xvbiksXG4gICAgICAgIHBhcnNlRmxvYXQoc2Vjb25kc0xvbiksXG4gICAgICAgIGRpcmVjdGlvbkxvblxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAobWludXRlc0xhdCAmJiBtaW51dGVzTGF0Lmxlbmd0aCA+IDIpIHtcbiAgICAgIGxhdCA9IHBhcnNlRmxvYXQoXG4gICAgICAgIChuZWdhdGl2ZUxhdCA/IG5lZ2F0aXZlTGF0IDogJycpICsgZGVncmVlc0xhdCArICcuJyArIG1pbnV0ZXNMYXRcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxhdCA9IGNvbnZlcnRETVNUb0REKFxuICAgICAgICBwYXJzZUZsb2F0KGRlZ3JlZXNMYXQpLFxuICAgICAgICBwYXJzZUZsb2F0KG1pbnV0ZXNMYXQpLFxuICAgICAgICBwYXJzZUZsb2F0KHNlY29uZHNMYXQpLFxuICAgICAgICBkaXJlY3Rpb25MYXRcbiAgICAgICk7XG4gICAgfVxuICB9IGVsc2UgaWYgKG1tUmVnZXgudGVzdChjb29yZFN0cikpIHtcbiAgICBpc1hZQ29vcmRzID0gdHJ1ZTtcbiAgICBbLCBsb24sIGRlY2ltYWxMb24sIGxhdCwgZGVjaW1hbExhdF0gPSBjb29yZFN0ci5tYXRjaChtbVBhdHRlcm4pO1xuXG4gICAgaWYgKGRlY2ltYWxMb24pIHtcbiAgICAgIGxvbiA9IHBhcnNlRmxvYXQobG9uICsgJy4nICsgZGVjaW1hbExvbik7XG4gICAgfVxuXG4gICAgaWYgKGRlY2ltYWxMYXQpIHtcbiAgICAgIGxhdCA9IHBhcnNlRmxvYXQobGF0ICsgJy4nICsgZGVjaW1hbExhdCk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHJldHVybiB7XG4gICAgICBsb25MYXQ6IHVuZGVmaW5lZCxcbiAgICAgIG1lc3NhZ2U6ICcnLFxuICAgICAgcmFkaXVzOiB1bmRlZmluZWQsXG4gICAgICBjb25mOiB1bmRlZmluZWRcbiAgICB9O1xuICB9XG5cbiAgaWYgKG9wdHMuZm9yY2VOQSAmJiAhaXNYWUNvb3Jkcykge1xuICAgIC8vIFNldCBhIG5lZ2F0aXZlIGNvb3JkaW5hdGUgZm9yIE5vcnRoIEFtZXJpY2Egem9uZVxuICAgIGlmIChsb24gPiAwICYmIGxhdCA+IDApIHtcbiAgICAgIGlmIChsb24gPiBsYXQpIHtcbiAgICAgICAgbG9uID0gLWxvbjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxhdCA9IC1sYXQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmV2ZXJzZSBjb29yZGluYXRlIHRvIHJlc3BlY3QgbG9uTGF0IGNvbnZlbnRpb25cbiAgICBpZiAobG9uID4gbGF0KSB7XG4gICAgICBsb24gPSBbbGF0LCAobGF0ID0gbG9uKV1bMF07XG4gICAgfVxuICB9XG5cbiAgbG9uTGF0ID0gW051bWJlcihsb24pLCBOdW1iZXIobGF0KV0gYXMgW251bWJlciwgbnVtYmVyXTtcblxuICAvLyBSZXByb2plY3QgdGhlIGNvb3JkaW5hdGUgaWYgcHJvamVjdGlvbiBwYXJhbWV0ZXIgaGF2ZSBiZWVuIHNldCBhbmQgY29vcmQgaXMgbm90IDQzMjZcbiAgaWYgKFxuICAgIChwcm9qZWN0aW9uU3RyICE9PSB1bmRlZmluZWQgJiYgcHJvamVjdGlvblN0ciAhPT0gdG9Qcm9qZWN0aW9uKSB8fFxuICAgIChsb25MYXRbMF0gPiAxODAgfHwgbG9uTGF0WzBdIDwgLTE4MCkgfHxcbiAgICAobG9uTGF0WzFdID4gOTAgfHwgbG9uTGF0WzFdIDwgLTkwKVxuICApIHtcbiAgICBjb25zdCBzb3VyY2UgPSBwcm9qZWN0aW9uU3RyID8gJ0VQU0c6JyArIHByb2plY3Rpb25TdHIgOiBtYXBQcm9qZWN0aW9uO1xuICAgIGNvbnN0IGRlc3QgPSAnRVBTRzonICsgdG9Qcm9qZWN0aW9uO1xuXG4gICAgdHJ5IHtcbiAgICAgIGxvbkxhdCA9IG9scHJvai50cmFuc2Zvcm0obG9uTGF0LCBzb3VyY2UsIGRlc3QpIGFzIFtudW1iZXIsIG51bWJlcl07XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbG9uTGF0OiB1bmRlZmluZWQsXG4gICAgICAgIG1lc3NhZ2U6ICdQcm9qZWN0aW9uICcgKyBzb3VyY2UgKyAnIG5vdCBzdXBwb3J0ZWQnLFxuICAgICAgICByYWRpdXM6IHVuZGVmaW5lZCxcbiAgICAgICAgY29uZjogdW5kZWZpbmVkXG4gICAgICB9O1xuICAgIH1cbiAgfVxuICBpZiAoTWF0aC5hYnMobG9uTGF0WzBdKSA8PSAxODAgJiYgTWF0aC5hYnMobG9uTGF0WzFdKSA8PSA5MCkge1xuICAgIHJldHVybiB7XG4gICAgICBsb25MYXQsXG4gICAgICBtZXNzYWdlOiAnJyxcbiAgICAgIHJhZGl1czogcmFkaXVzID8gcGFyc2VJbnQocmFkaXVzLCAxMCkgOiB1bmRlZmluZWQsXG4gICAgICBjb25mOiBjb25mID8gcGFyc2VJbnQoY29uZiwgMTApIDogdW5kZWZpbmVkXG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgbG9uTGF0OiB1bmRlZmluZWQsXG4gICAgICBtZXNzYWdlOiAnQ29vcmRpbmF0ZSBvdXQgb2YgTG9uZ2l0dWRlL0xhdGl0dWRlIGJvdW5kcycsXG4gICAgICByYWRpdXM6IHVuZGVmaW5lZCxcbiAgICAgIGNvbmY6IHVuZGVmaW5lZFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBDb252ZXJ0IGRlZ3JlZXMgbWludXRlcyBzZWNvbmRzIHRvIGRkXG4gKiBAcGFyYW0gZGVncmVlcyBEZWdyZWVzXG4gKiBAcGFyYW0gbWludXRlcyBNaW51dGVzXG4gKiBAcGFyYW0gc2Vjb25kcyBTZWNvbmRzXG4gKiBAcGFyYW0gZGlyZWN0aW9uIERpcmVjdGlvblxuICovXG5mdW5jdGlvbiBjb252ZXJ0RE1TVG9ERChcbiAgZGVncmVlczogbnVtYmVyLFxuICBtaW51dGVzOiBudW1iZXIsXG4gIHNlY29uZHM6IG51bWJlcixcbiAgZGlyZWN0aW9uOiBzdHJpbmdcbikge1xuICBtaW51dGVzID0gbWludXRlcyB8fCAwO1xuICBzZWNvbmRzID0gc2Vjb25kcyB8fCAwO1xuXG4gIGNvbnN0IG5lZyA9IGRlZ3JlZXMgPCAwO1xuICBsZXQgZGQgPSBNYXRoLmFicyhkZWdyZWVzKSArIG1pbnV0ZXMgLyA2MCArIHNlY29uZHMgLyAzNjAwO1xuXG4gIGlmIChuZWcgfHwgZGlyZWN0aW9uID09PSAnUycgfHwgZGlyZWN0aW9uID09PSAnVycpIHtcbiAgICBkZCA9IC1kZDtcbiAgfSAvLyBEb24ndCBkbyBhbnl0aGluZyBmb3IgTiBvciBFXG4gIHJldHVybiBkZDtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGRkIHRvIGRlZ3JlZXMgbWludXRlcyBzZWNvbmRzXG4gKiBAcGFyYW0gbG9uTGF0REQgbG9uZ2l0dWRlIGFuZCBsYXRpdHVkZSBpbiBkZFxuICogQHBhcmFtIGRlY2ltYWwgbnVtYmVyIG9mIGRlY2ltYWxzIGZvciBzZWNvbmRzXG4gKiBAcmV0dXJucyBsb25naXR1ZGUgYW5kIGxhdGl0dWRlIGluIGRtc1xuICovXG5leHBvcnQgZnVuY3Rpb24gY29udmVydEREVG9ETVMoXG4gIGxvbkxhdEREOiBbbnVtYmVyLCBudW1iZXJdLCBkZWNpbWFsOiBudW1iZXIgPSAzXG4pOiBzdHJpbmdbXSB7XG4gIGNvbnN0IGxvbkxhdERNUyA9IFtdO1xuXG4gIGxvbkxhdERELmZvckVhY2goZGQgPT4ge1xuICAgIGNvbnN0IGRlZ3JlZXMgPSBkZCA8IDAgPyBNYXRoLmNlaWwoZGQpIDogTWF0aC5mbG9vcihkZCk7XG4gICAgY29uc3QgaW50ID0gZGQgPCAwID8gKGRlZ3JlZXMgLSBkZCkgKiA2MCA6IChkZCAtIGRlZ3JlZXMpICogNjA7XG4gICAgY29uc3QgbWludXRlcyA9IE1hdGguZmxvb3IoaW50KTtcbiAgICBjb25zdCBzZWNvbmRzID0gKChpbnQgLSBtaW51dGVzKSAqIDYwKS50b0ZpeGVkKGRlY2ltYWwpO1xuXG4gICAgbG9uTGF0RE1TLnB1c2goYCR7ZGVncmVlc33CsCAke21pbnV0ZXN9JyAke3NlY29uZHN9XCJgKTtcbiAgfSk7XG4gIHJldHVybiBsb25MYXRETVM7XG59XG5cbi8qKlxuICogUmV0dXJuIHRydWUgb2YgdHdvIHZpZXcgc3RhdGVzIGFyZSBlcXVhbC5cbiAqIEBwYXJhbSBzdGF0ZTEgVmlldyBzdGF0ZVxuICogQHBhcmFtIHN0YXRlMiBWaWV3IHN0YXRlXG4gKiBAcmV0dXJucyBUcnVlIGlmIHRoZSB2aWV3IHN0YXRlcyBhcmUgZXF1YWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZpZXdTdGF0ZXNBcmVFcXVhbChcbiAgc3RhdGUxOiBNYXBWaWV3U3RhdGUsXG4gIHN0YXRlMjogTWFwVmlld1N0YXRlXG4pOiBib29sZWFuIHtcbiAgaWYgKHN0YXRlMSA9PT0gdW5kZWZpbmVkIHx8IHN0YXRlMiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgdG9sZXJhbmNlID0gMSAvIDEwMDAwO1xuICByZXR1cm4gKFxuICAgIHN0YXRlMS56b29tID09PSBzdGF0ZTIuem9vbSAmJlxuICAgIE1hdGgudHJ1bmMoc3RhdGUxLmNlbnRlclswXSAvIHRvbGVyYW5jZSkgPT09XG4gICAgICBNYXRoLnRydW5jKHN0YXRlMi5jZW50ZXJbMF0gLyB0b2xlcmFuY2UpICYmXG4gICAgTWF0aC50cnVuYyhzdGF0ZTEuY2VudGVyWzFdIC8gdG9sZXJhbmNlKSA9PT1cbiAgICAgIE1hdGgudHJ1bmMoc3RhdGUyLmNlbnRlclsxXSAvIHRvbGVyYW5jZSlcbiAgKTtcbn1cblxuLyoqXG4gKiBGb3JtYXQgdGhlIHNjYWxlIHRvIGEgaHVtYW4gcmVhZGFibGUgdGV4dFxuICogQHBhcmFtIFNjYWxlIG9mIHRoZSBtYXBcbiAqIEByZXR1cm5zIEh1bWFuIHJlYWRhYmxlIHNjYWxlIHRleHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFNjYWxlKHNjYWxlKSB7XG4gIHNjYWxlID0gTWF0aC5yb3VuZChzY2FsZSk7XG4gIGlmIChzY2FsZSA8IDEwMDAwKSB7XG4gICAgcmV0dXJuIHNjYWxlICsgJyc7XG4gIH1cblxuICBzY2FsZSA9IE1hdGgucm91bmQoc2NhbGUgLyAxMDAwKTtcbiAgaWYgKHNjYWxlIDwgMTAwMCkge1xuICAgIHJldHVybiBzY2FsZSArICdLJztcbiAgfVxuXG4gIHNjYWxlID0gTWF0aC5yb3VuZChzY2FsZSAvIDEwMDApO1xuICByZXR1cm4gc2NhbGUgKyAnTSc7XG59XG5cbi8qKlxuICogUmV0dXJuIHRoZSByZXNvbHV0aW9uIGZyb20gYSBzY2FsZSBkZW5vbVxuICogQHBhcmFtIHNjYWxlIFNjYWxlIGRlbm9tXG4gKiBAcGFyYW0gZHBpIERQSVxuICogQHJldHVybnMgUmVzb2x1dGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb2x1dGlvbkZyb21TY2FsZShcbiAgc2NhbGU6IG51bWJlcixcbiAgZHBpOiBudW1iZXIgPSA5NlxuKTogbnVtYmVyIHtcbiAgY29uc3QgaW5jaGVzUGVyTWV0ZXIgPSAzOS4zNzAxO1xuICByZXR1cm4gc2NhbGUgLyAoaW5jaGVzUGVyTWV0ZXIgKiBkcGkpO1xufVxuXG4vKipcbiAqIFJldHVybiB0aGUgcmVzb2x1dGlvbiBmcm9tIGEgc2NhbGUgZGVub21cbiAqIEBwYXJhbSBTY2FsZSBkZW5vbVxuICogQHJldHVybnMgUmVzb2x1dGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2NhbGVGcm9tUmVzb2x1dGlvbihcbiAgcmVzb2x1dGlvbjogbnVtYmVyLFxuICB1bml0OiBzdHJpbmcgPSAnbScsXG4gIGRwaTogbnVtYmVyID0gOTZcbik6IG51bWJlciB7XG4gIGNvbnN0IGluY2hlc1Blck1ldGVyID0gMzkuMzcwMTtcbiAgcmV0dXJuIHJlc29sdXRpb24gKiBvbHByb2ouTUVURVJTX1BFUl9VTklUW3VuaXRdICogaW5jaGVzUGVyTWV0ZXIgKiBkcGk7XG59XG5cbi8qKlxuICogUmV0dXJucyB0cnVlIGlmIHRoZSBDVFJMIGtleSBpcyBwdXNoZWQgZHVyaW5nIGFuIE9sIE1hcEJyb3dzZXJQb2ludGVyRXZlbnRcbiAqIEBwYXJhbSBldmVudCBPTCBNYXBCcm93c2VyUG9pbnRlckV2ZW50XG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBDVFJMIGtleSBpcyBwdXNoZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGN0cmxLZXlEb3duKGV2ZW50OiBNYXBCcm93c2VyUG9pbnRlckV2ZW50PGFueT4pOiBib29sZWFuIHtcbiAgY29uc3Qgb3JpZ2luYWxFdmVudCA9IGV2ZW50Lm9yaWdpbmFsRXZlbnQ7XG4gIHJldHVybiAoXG4gICAgIW9yaWdpbmFsRXZlbnQuYWx0S2V5ICYmXG4gICAgKE1BQyA/IG9yaWdpbmFsRXZlbnQubWV0YUtleSA6IG9yaWdpbmFsRXZlbnQuY3RybEtleSkgJiZcbiAgICAhb3JpZ2luYWxFdmVudC5zaGlmdEtleVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcm91bmRDb29yZFRvKGNvb3JkOiBbbnVtYmVyLCBudW1iZXJdLCBkZWNpbWFsOiBudW1iZXIgPSAzKTogW251bWJlciwgbnVtYmVyXSB7XG4gIHJldHVybiBbXG4gICAgTnVtYmVyVXRpbHMucm91bmRUb05EZWNpbWFsKGNvb3JkWzBdLCBkZWNpbWFsKSxcbiAgICBOdW1iZXJVdGlscy5yb3VuZFRvTkRlY2ltYWwoY29vcmRbMV0sIGRlY2ltYWwpXSBhcyBbbnVtYmVyLCBudW1iZXJdO1xufVxuXG4vKipcbiAqIFJldHVybnMgYW4gYXJyYXkgb2YgY29udmVydGVkIGNvb3JkaW5hdGVzLlxuICogQ29udmVyc2lvbiBpcyBkb25lIGZvciBldmVyeSBjb25maWd1cmVkIHByb2plY3Rpb25zXG4gKiBhbmQgZm9yIHRoZSBjdXJyZW50IFVUTSB6b25lIGFuZCBNVE0gem9uZS5cbiAqIEBwYXJhbSBsb25MYXQgW251bWJlciwgbnVtYmVyXSBhcnJheSBvZiB0aGUgY29vcmRpbmF0ZSB0byB0cmFuc2Zvcm0uXG4gKiBAcGFyYW0gcHJvamVjdGlvbnMgIFByb2plY3Rpb25bXSBBcnJheSBvZiBkZXN0aW5hdGlvbiBwcm9qZWN0aW9uLlxuICogQHJldHVybnMgUmV0dXJucyBhbiBhcnJheSBvZiBjb252ZXJ0ZWQgY29vcmRpbmF0ZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb25MYXRDb252ZXJzaW9uKFxuICBsb25MYXQ6IFtudW1iZXIsIG51bWJlcl0sXG4gIHByb2plY3Rpb25zOiBQcm9qZWN0aW9uW11cbik6IHtcbiAgY29kZTogc3RyaW5nO1xuICBhbGlhczogc3RyaW5nO1xuICBjb29yZDogW251bWJlciwgbnVtYmVyXTtcbiAgaWdvMkNvb3JkRm9ybWF0OiBzdHJpbmc7XG59W10ge1xuICBjb25zdCByYXdDb29yZDM4NTcgPSBvbHByb2oudHJhbnNmb3JtKGxvbkxhdCwgJ0VQU0c6NDMyNicsICdFUFNHOjM4NTcnKSBhcyBbbnVtYmVyLCBudW1iZXJdO1xuICBjb25zdCBjb252ZXJ0ZWRMb25MYXQgPSBbXG4gICAge1xuICAgICAgY29kZTogJ0VQU0c6Mzg1NycsXG4gICAgICBhbGlhczogJ1dlYiBNZXJjYXRvcicsXG4gICAgICBjb29yZDogcmF3Q29vcmQzODU3LFxuICAgICAgaWdvMkNvb3JkRm9ybWF0OiBgJHtyb3VuZENvb3JkVG8ocmF3Q29vcmQzODU3KS5qb2luKCcsICcpfSA7IDM4NTdgXG4gICAgfVxuICBdO1xuXG4gIC8vIGRldGVjdCB0aGUgY3VycmVudCB1dG0gem9uZS5cbiAgY29uc3QgdXRtWm9uZSA9IHV0bVpvbmVGcm9tTG9uTGF0KGxvbkxhdCk7XG4gIGNvbnN0IGVwc2dVdG0gPSB1dG1ab25lIDwgMTAgPyBgRVBTRzozMjYwJHt1dG1ab25lfWAgOiBgRVBTRzozMjYke3V0bVpvbmV9YDtcbiAgY29uc3QgdXRtTmFtZSA9IGBVVE0tJHt1dG1ab25lfWA7XG4gIGNvbnN0IHJhd0Nvb3JkVXRtID0gb2xwcm9qLnRyYW5zZm9ybShsb25MYXQsICdFUFNHOjQzMjYnLCBlcHNnVXRtKSBhcyBbbnVtYmVyLCBudW1iZXJdO1xuICBjb252ZXJ0ZWRMb25MYXQucHVzaCh7XG4gICAgY29kZTogZXBzZ1V0bSxcbiAgICBhbGlhczogJ1VUTScsXG4gICAgY29vcmQ6IHJhd0Nvb3JkVXRtLFxuICAgIGlnbzJDb29yZEZvcm1hdDogYCR7dXRtTmFtZX0gJHtyb3VuZENvb3JkVG8ocmF3Q29vcmRVdG0pLmpvaW4oJywgJyl9YFxuICB9KTtcblxuICAvLyBkZXRlY3QgdGhlIGN1cnJlbnQgbXRtIHpvbmUuXG4gIGNvbnN0IG10bVpvbmUgPSBtdG1ab25lRnJvbUxvbkxhdChsb25MYXQpO1xuICBpZiAobXRtWm9uZSkge1xuICAgIGNvbnN0IGVwc2dNdG0gPVxuICAgICAgbXRtWm9uZSA8IDEwID8gYEVQU0c6MzIxOCR7bXRtWm9uZX1gIDogYEVQU0c6MzIxJHs4MCArIG10bVpvbmV9YDtcbiAgICBjb25zdCBtdG1OYW1lID0gYE1UTS0ke210bVpvbmV9YDtcbiAgICBjb25zdCByYXdDb29yZE10bSA9IG9scHJvai50cmFuc2Zvcm0obG9uTGF0LCAnRVBTRzo0MzI2JywgZXBzZ010bSkgYXMgW251bWJlciwgbnVtYmVyXTtcbiAgICBjb252ZXJ0ZWRMb25MYXQucHVzaCh7XG4gICAgICBjb2RlOiBlcHNnTXRtLFxuICAgICAgYWxpYXM6ICdNVE0nLFxuICAgICAgY29vcmQ6IHJhd0Nvb3JkTXRtLFxuICAgICAgaWdvMkNvb3JkRm9ybWF0OiBgJHttdG1OYW1lfSAke3JvdW5kQ29vcmRUbyhyYXdDb29yZE10bSkuam9pbignLCAnKX1gXG4gICAgfSk7XG4gIH1cblxuICBwcm9qZWN0aW9ucy5mb3JFYWNoKHByb2plY3Rpb24gPT4ge1xuICAgIGNvbnN0IHJhd0Nvb3JkID0gb2xwcm9qLnRyYW5zZm9ybShsb25MYXQsICdFUFNHOjQzMjYnLCBwcm9qZWN0aW9uLmNvZGUpIGFzIFtudW1iZXIsIG51bWJlcl07XG4gICAgY29uc3QgbnVtZXJpY0Vwc2dDb2RlID0gcHJvamVjdGlvbi5jb2RlLnNwbGl0KCc6JylbMV07XG4gICAgY29udmVydGVkTG9uTGF0LnB1c2goe1xuICAgICAgY29kZTogcHJvamVjdGlvbi5jb2RlLFxuICAgICAgYWxpYXM6IHByb2plY3Rpb24uYWxpYXMgfHwgcHJvamVjdGlvbi5jb2RlLFxuICAgICAgY29vcmQ6IHJhd0Nvb3JkLFxuICAgICAgaWdvMkNvb3JkRm9ybWF0OiBgJHtyb3VuZENvb3JkVG8ocmF3Q29vcmQpLmpvaW4oXG4gICAgICAgICcsICdcbiAgICAgICl9IDsgJHtudW1lcmljRXBzZ0NvZGV9YFxuICAgIH0pO1xuICB9KTtcblxuICByZXR1cm4gY29udmVydGVkTG9uTGF0O1xufVxuXG4vKipcbiAqIERldGVjdCB0aGUgY3VycmVudCB1dG0gem9uZSBvZiB0aGUgbG9uL2xhdCBjb29yZGluYXRlLlxuICogQHBhcmFtIGxvbkxhdCBbbnVtYmVyLCBudW1iZXJdIGFycmF5IG9mIHRoZSBjb29yZGluYXRlIHRvIGRldGVjdCB0aGUgVVRNIHpvbmUuXG4gKiBAcmV0dXJucyBudW1iZXIgVGhlIFVUTSB6b25lLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdXRtWm9uZUZyb21Mb25MYXQobG9uTGF0OiBbbnVtYmVyLCBudW1iZXJdKSB7XG4gIHJldHVybiBNYXRoLmNlaWwoKGxvbkxhdFswXSArIDE4MCkgLyA2KTtcbn1cblxuLyoqXG4gKiBEZXRlY3QgdGhlIGN1cnJlbnQgbXRtIHpvbmUgb2YgdGhlIGxvbi9sYXQgY29vcmRpbmF0ZS5cbiAqIEBwYXJhbSBsb25MYXQgW251bWJlciwgbnVtYmVyXSBhcnJheSBvZiB0aGUgY29vcmRpbmF0ZSB0byBkZXRlY3QgdGhlIE1UTSB6b25lLlxuICogQHJldHVybnMgbnVtYmVyIFRoZSBNVE0gem9uZS4gVW5kZWZpbmVkIGlmIG91dHNpZGUgb2YgdGhlIG10bSBhcHBsaWNhdGlvbiB6b25lLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbXRtWm9uZUZyb21Mb25MYXQobG9uTGF0OiBbbnVtYmVyLCBudW1iZXJdKSB7XG4gIGNvbnN0IGxvbmcgPSBsb25MYXRbMF07XG4gIGxldCBtdG1ab25lO1xuICBpZiAobG9uZyA8IC01MSAmJiBsb25nID4gLTU0KSB7XG4gICAgbXRtWm9uZSA9IDE7XG4gIH1cbiAgaWYgKGxvbmcgPCAtNTQgJiYgbG9uZyA+IC01Nykge1xuICAgIG10bVpvbmUgPSAyO1xuICB9XG4gIGlmIChsb25nIDwgLTU3ICYmIGxvbmcgPiAtNjApIHtcbiAgICBtdG1ab25lID0gMztcbiAgfVxuICBpZiAobG9uZyA8IC02MCAmJiBsb25nID4gLTYzKSB7XG4gICAgbXRtWm9uZSA9IDQ7XG4gIH1cbiAgaWYgKGxvbmcgPCAtNjMgJiYgbG9uZyA+IC02Nikge1xuICAgIG10bVpvbmUgPSA1O1xuICB9XG4gIGlmIChsb25nIDwgLTY2ICYmIGxvbmcgPiAtNjkpIHtcbiAgICBtdG1ab25lID0gNjtcbiAgfVxuICBpZiAobG9uZyA8IC02OSAmJiBsb25nID4gLTcyKSB7XG4gICAgbXRtWm9uZSA9IDc7XG4gIH1cbiAgaWYgKGxvbmcgPCAtNzIgJiYgbG9uZyA+IC03NSkge1xuICAgIG10bVpvbmUgPSA4O1xuICB9XG4gIGlmIChsb25nIDwgLTc1ICYmIGxvbmcgPiAtNzgpIHtcbiAgICBtdG1ab25lID0gOTtcbiAgfVxuICBpZiAobG9uZyA8IC03OCAmJiBsb25nID4gLTgxKSB7XG4gICAgbXRtWm9uZSA9IDEwO1xuICB9XG4gIHJldHVybiBtdG1ab25lO1xufVxuIl19