@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
@@ -0,0 +1,5 @@
1
+ export * from './catalog.service';
2
+ export * from './catalog.interface';
3
+ export * from './catalog.enum';
4
+ export * from './catalog.abstract';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9jYXRhbG9nL3NoYXJlZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jYXRhbG9nLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NhdGFsb2cuaW50ZXJmYWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9jYXRhbG9nLmVudW0nO1xyXG5leHBvcnQgKiBmcm9tICcuL2NhdGFsb2cuYWJzdHJhY3QnO1xyXG4iXX0=
@@ -0,0 +1,22 @@
1
+ import { NgModule } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class IgoDataSourceModule {
4
+ static forRoot() {
5
+ return {
6
+ ngModule: IgoDataSourceModule,
7
+ providers: []
8
+ };
9
+ }
10
+ }
11
+ IgoDataSourceModule.ɵfac = function IgoDataSourceModule_Factory(t) { return new (t || IgoDataSourceModule)(); };
12
+ IgoDataSourceModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: IgoDataSourceModule });
13
+ IgoDataSourceModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
14
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(IgoDataSourceModule, [{
15
+ type: NgModule,
16
+ args: [{
17
+ imports: [],
18
+ exports: [],
19
+ declarations: []
20
+ }]
21
+ }], null, null); })();
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNvdXJjZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kYXRhc291cmNlL2RhdGFzb3VyY2UubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQXVCLE1BQU0sZUFBZSxDQUFDOztBQU85RCxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTztZQUNMLFFBQVEsRUFBRSxtQkFBbUI7WUFDN0IsU0FBUyxFQUFFLEVBQUU7U0FDZCxDQUFDO0lBQ0osQ0FBQzs7c0ZBTlUsbUJBQW1CO3FFQUFuQixtQkFBbUI7O3VGQUFuQixtQkFBbUI7Y0FML0IsUUFBUTtlQUFDO2dCQUNSLE9BQU8sRUFBRSxFQUFFO2dCQUNYLE9BQU8sRUFBRSxFQUFFO2dCQUNYLFlBQVksRUFBRSxFQUFFO2FBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIE1vZHVsZVdpdGhQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW10sXHJcbiAgZXhwb3J0czogW10sXHJcbiAgZGVjbGFyYXRpb25zOiBbXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSWdvRGF0YVNvdXJjZU1vZHVsZSB7XHJcbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxJZ29EYXRhU291cmNlTW9kdWxlPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogSWdvRGF0YVNvdXJjZU1vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbXVxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,3 @@
1
+ export * from './shared';
2
+ export * from './utils';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kYXRhc291cmNlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3V0aWxzJztcclxuIl19
@@ -0,0 +1,426 @@
1
+ import { __decorate } from "tslib";
2
+ import { Injectable } from '@angular/core';
3
+ import { HttpParams } from '@angular/common/http';
4
+ import { forkJoin, of } from 'rxjs';
5
+ import { map, catchError } from 'rxjs/operators';
6
+ import { Cacheable } from 'ts-cacheable';
7
+ import { WMSCapabilities, WMTSCapabilities, EsriJSON } from 'ol/format';
8
+ import { optionsFromCapabilities } from 'ol/source/WMTS.js';
9
+ import olAttribution from 'ol/control/Attribution';
10
+ import { ObjectUtils } from '@igo2/utils';
11
+ import { getResolutionFromScale } from '../../map/shared/map.utils';
12
+ import { EsriStyleGenerator } from '../utils/esri-style-generator';
13
+ import { QueryFormat, QueryFormatMimeType } from '../../query/shared/query.enums';
14
+ import { TimeFilterType, TimeFilterStyle } from '../../filter/shared/time-filter.enum';
15
+ import * as olproj from 'ol/proj';
16
+ import * as i0 from "@angular/core";
17
+ import * as i1 from "@angular/common/http";
18
+ import * as i2 from "../../map/shared/map.service";
19
+ export var TypeCapabilities;
20
+ (function (TypeCapabilities) {
21
+ TypeCapabilities["wms"] = "wms";
22
+ TypeCapabilities["wmts"] = "wmts";
23
+ TypeCapabilities["arcgisrest"] = "esriJSON";
24
+ TypeCapabilities["imagearcgisrest"] = "esriJSON";
25
+ TypeCapabilities["tilearcgisrest"] = "esriJSON";
26
+ })(TypeCapabilities || (TypeCapabilities = {}));
27
+ export class CapabilitiesService {
28
+ constructor(http, mapService) {
29
+ this.http = http;
30
+ this.mapService = mapService;
31
+ this.parsers = {
32
+ wms: new WMSCapabilities(),
33
+ wmts: new WMTSCapabilities(),
34
+ esriJSON: new EsriJSON()
35
+ };
36
+ }
37
+ getWMSOptions(baseOptions) {
38
+ const url = baseOptions.url;
39
+ const version = baseOptions.params.VERSION;
40
+ return this.getCapabilities('wms', url, version).pipe(map((capabilities) => {
41
+ return capabilities
42
+ ? this.parseWMSOptions(baseOptions, capabilities)
43
+ : undefined;
44
+ }));
45
+ }
46
+ getWMTSOptions(baseOptions) {
47
+ const url = baseOptions.url;
48
+ const version = baseOptions.version;
49
+ const options = this.getCapabilities('wmts', url, version).pipe(map((capabilities) => {
50
+ return capabilities
51
+ ? this.parseWMTSOptions(baseOptions, capabilities)
52
+ : undefined;
53
+ }));
54
+ return options;
55
+ }
56
+ getCartoOptions(baseOptions) {
57
+ const baseUrl = 'https://' +
58
+ baseOptions.account +
59
+ '.carto.com/api/v2/viz/' +
60
+ baseOptions.mapId +
61
+ '/viz.json';
62
+ return this.http
63
+ .jsonp(baseUrl, 'callback')
64
+ .pipe(map((cartoOptions) => this.parseCartoOptions(baseOptions, cartoOptions)));
65
+ }
66
+ getArcgisOptions(baseOptions) {
67
+ const baseUrl = baseOptions.url + '/' + baseOptions.layer + '?f=json';
68
+ const modifiedUrl = baseOptions.url.replace('FeatureServer', 'MapServer');
69
+ const legendUrl = modifiedUrl + '/legend?f=json';
70
+ const serviceCapabilities = this.getCapabilities('arcgisrest', baseOptions.url);
71
+ const arcgisOptions = this.http.get(baseUrl);
72
+ const legend = this.http.get(legendUrl).pipe(map((res) => res), catchError((err) => {
73
+ console.log('No legend associated with this Feature Service');
74
+ return of(err);
75
+ }));
76
+ return forkJoin([arcgisOptions, legend, serviceCapabilities]).pipe(map((res) => {
77
+ return this.parseArcgisOptions(baseOptions, res[0], res[1], res[2]);
78
+ }));
79
+ }
80
+ getImageArcgisOptions(baseOptions) {
81
+ const baseUrl = baseOptions.url + '/' + baseOptions.layer + '?f=json';
82
+ const modifiedUrl = baseOptions.url.replace('FeatureServer', 'MapServer');
83
+ const legendUrl = modifiedUrl + '/legend?f=json';
84
+ const serviceCapabilities = this.getCapabilities('imagearcgisrest', baseOptions.url);
85
+ const arcgisOptions = this.http.get(baseUrl);
86
+ const legend = this.http.get(legendUrl).pipe(map((res) => res), catchError((err) => {
87
+ console.log('No legend associated with this Image Service');
88
+ return of(err);
89
+ }));
90
+ return forkJoin([arcgisOptions, legend, serviceCapabilities]).pipe(map((res) => {
91
+ return this.parseTileOrImageArcgisOptions(baseOptions, res[0], res[1], res[2]);
92
+ }));
93
+ }
94
+ getTileArcgisOptions(baseOptions) {
95
+ const baseUrl = baseOptions.url + '/' + baseOptions.layer + '?f=json';
96
+ const legendUrl = baseOptions.url + '/legend?f=json';
97
+ const serviceCapabilities = this.getCapabilities('tilearcgisrest', baseOptions.url);
98
+ const arcgisOptions = this.http.get(baseUrl);
99
+ const legendInfo = this.http.get(legendUrl).pipe(map((res) => res), catchError((err) => {
100
+ console.log('No legend associated with this Tile Service');
101
+ return of(err);
102
+ }));
103
+ return forkJoin([arcgisOptions, legendInfo, serviceCapabilities]).pipe(map((res) => this.parseTileOrImageArcgisOptions(baseOptions, res[0], res[1], res[2])));
104
+ }
105
+ getCapabilities(service, baseUrl, version) {
106
+ const params = new HttpParams({
107
+ fromObject: {
108
+ request: 'GetCapabilities',
109
+ service: service.toUpperCase(),
110
+ version: version || '1.3.0',
111
+ _i: 'true'
112
+ }
113
+ });
114
+ let request;
115
+ if (TypeCapabilities[service] === 'esriJSON') {
116
+ request = this.http.get(baseUrl + '?f=json');
117
+ }
118
+ else {
119
+ request = this.http.get(baseUrl, {
120
+ params,
121
+ responseType: 'text'
122
+ });
123
+ }
124
+ return request.pipe(map((res) => {
125
+ if (TypeCapabilities[service] === 'esriJSON') {
126
+ return res;
127
+ }
128
+ if (String(res).toLowerCase().includes('serviceexception') &&
129
+ String(res).toLowerCase().includes('access denied')) {
130
+ throw {
131
+ error: {
132
+ message: 'Service error getCapabilities: Access is denied'
133
+ }
134
+ };
135
+ }
136
+ else {
137
+ return this.parsers[service].read(res);
138
+ }
139
+ }), catchError((e) => {
140
+ if (typeof e.error !== 'undefined') {
141
+ e.error.caught = true;
142
+ }
143
+ throw e;
144
+ }));
145
+ }
146
+ parseWMSOptions(baseOptions, capabilities) {
147
+ const layers = baseOptions.params.LAYERS;
148
+ const layer = this.findDataSourceInCapabilities(capabilities.Capability.Layer, layers);
149
+ if (!layer) {
150
+ throw {
151
+ error: {
152
+ message: 'Layer not found'
153
+ }
154
+ };
155
+ }
156
+ const metadata = layer.DataURL ? layer.DataURL[0] : undefined;
157
+ const abstract = layer.Abstract ? layer.Abstract : undefined;
158
+ const keywordList = layer.KeywordList ? layer.KeywordList : undefined;
159
+ let queryable = layer.queryable;
160
+ const timeFilter = this.getTimeFilter(layer);
161
+ const timeFilterable = timeFilter && Object.keys(timeFilter).length > 0;
162
+ const legendOptions = layer.Style ? this.getStyle(layer.Style) : undefined;
163
+ let isExtentInGeographic = true;
164
+ if (layer.EX_GeographicBoundingBox) {
165
+ layer.EX_GeographicBoundingBox.forEach((coord, index) => {
166
+ if (index < 2 && (coord > 180 || coord < -180)) {
167
+ isExtentInGeographic = false;
168
+ }
169
+ if (index >= 2 && (coord > 90 || coord < -90)) {
170
+ isExtentInGeographic = false;
171
+ }
172
+ });
173
+ }
174
+ else {
175
+ isExtentInGeographic = false;
176
+ }
177
+ const extent = isExtentInGeographic ?
178
+ olproj.transformExtent(layer.EX_GeographicBoundingBox, 'EPSG:4326', this.mapService.getMap().projection) :
179
+ undefined;
180
+ let queryFormat;
181
+ const queryFormatMimeTypePriority = [
182
+ QueryFormatMimeType.GEOJSON,
183
+ QueryFormatMimeType.GEOJSON2,
184
+ QueryFormatMimeType.GML3,
185
+ QueryFormatMimeType.GML2,
186
+ QueryFormatMimeType.JSON,
187
+ QueryFormatMimeType.HTML
188
+ ];
189
+ for (const mimeType of queryFormatMimeTypePriority) {
190
+ if (capabilities.Capability.Request.GetFeatureInfo.Format.indexOf(mimeType) !== -1) {
191
+ const keyEnum = Object.keys(QueryFormatMimeType).find((key) => QueryFormatMimeType[key] === mimeType);
192
+ queryFormat = QueryFormat[keyEnum];
193
+ break;
194
+ }
195
+ }
196
+ if (!queryFormat) {
197
+ queryable = false;
198
+ }
199
+ const options = ObjectUtils.removeUndefined({
200
+ _layerOptionsFromSource: {
201
+ title: layer.Title,
202
+ maxResolution: getResolutionFromScale(layer.MaxScaleDenominator),
203
+ minResolution: getResolutionFromScale(layer.MinScaleDenominator),
204
+ extent,
205
+ metadata: {
206
+ url: metadata ? metadata.OnlineResource : undefined,
207
+ extern: metadata ? true : undefined,
208
+ abstract,
209
+ keywordList
210
+ },
211
+ legendOptions
212
+ },
213
+ queryable,
214
+ queryFormat,
215
+ timeFilter: timeFilterable ? timeFilter : undefined,
216
+ timeFilterable: timeFilterable ? true : undefined,
217
+ minDate: timeFilterable ? timeFilter.min : undefined,
218
+ maxDate: timeFilterable ? timeFilter.max : undefined,
219
+ stepDate: timeFilterable ? timeFilter.step : undefined
220
+ });
221
+ return ObjectUtils.mergeDeep(options, baseOptions);
222
+ }
223
+ parseWMTSOptions(baseOptions, capabilities) {
224
+ // Put Title source in _layerOptionsFromSource. (For source & catalog in _layerOptionsFromSource, if not already on config)
225
+ const layer = capabilities.Contents.Layer.find((el) => el.Identifier === baseOptions.layer);
226
+ const options = optionsFromCapabilities(capabilities, baseOptions);
227
+ const ouputOptions = Object.assign(options, baseOptions);
228
+ const sourceOptions = ObjectUtils.removeUndefined({
229
+ _layerOptionsFromSource: {
230
+ title: layer.Title
231
+ }
232
+ });
233
+ return ObjectUtils.mergeDeep(sourceOptions, ouputOptions);
234
+ }
235
+ parseCartoOptions(baseOptions, cartoOptions) {
236
+ const layers = [];
237
+ const params = cartoOptions.layers[1].options.layer_definition;
238
+ params.layers.forEach((element) => {
239
+ layers.push({
240
+ type: element.type.toLowerCase(),
241
+ options: element.options,
242
+ legend: element.legend
243
+ });
244
+ });
245
+ const options = ObjectUtils.removeUndefined({
246
+ config: {
247
+ version: params.version,
248
+ layers
249
+ }
250
+ });
251
+ return ObjectUtils.mergeDeep(options, baseOptions);
252
+ }
253
+ parseArcgisOptions(baseOptions, arcgisOptions, legend, serviceCapabilities) {
254
+ const title = arcgisOptions.name;
255
+ let legendInfo;
256
+ if (legend.layers) {
257
+ legendInfo = legend.layers.find(x => x.layerName === title);
258
+ }
259
+ else if (arcgisOptions.drawingInfo?.renderer) {
260
+ legendInfo = arcgisOptions.drawingInfo.renderer;
261
+ }
262
+ else {
263
+ legendInfo = undefined;
264
+ }
265
+ let style;
266
+ if (arcgisOptions.drawingInfo) {
267
+ const styleGenerator = new EsriStyleGenerator();
268
+ const units = arcgisOptions.units === 'esriMeters' ? 'm' : 'degrees';
269
+ style = styleGenerator.generateStyle(arcgisOptions, units);
270
+ }
271
+ const attributions = new olAttribution({
272
+ target: arcgisOptions.copyrightText
273
+ });
274
+ let timeExtent;
275
+ let timeFilter;
276
+ if (arcgisOptions.timeInfo) {
277
+ const time = arcgisOptions.timeInfo.timeExtent;
278
+ timeExtent = time[0] + ',' + time[1];
279
+ const min = new Date();
280
+ min.setTime(time[0]);
281
+ const max = new Date();
282
+ max.setTime(time[1]);
283
+ timeFilter = {
284
+ min: min.toUTCString(),
285
+ max: max.toUTCString(),
286
+ range: true,
287
+ type: TimeFilterType.DATETIME,
288
+ style: TimeFilterStyle.CALENDAR
289
+ };
290
+ }
291
+ const params = Object.assign({}, {
292
+ style,
293
+ LAYERS: baseOptions.layer ? 'show:' + baseOptions.layer : undefined,
294
+ time: timeExtent
295
+ });
296
+ const options = ObjectUtils.removeUndefined({
297
+ params,
298
+ _layerOptionsFromSource: {
299
+ title,
300
+ minResolution: getResolutionFromScale(arcgisOptions.maxScale),
301
+ maxResolution: getResolutionFromScale(arcgisOptions.minScale),
302
+ metadata: {
303
+ extern: false,
304
+ abstract: arcgisOptions.description || serviceCapabilities.serviceDescription
305
+ },
306
+ },
307
+ legendInfo,
308
+ timeFilter,
309
+ sourceFields: arcgisOptions.fields,
310
+ queryTitle: arcgisOptions.displayField
311
+ });
312
+ options.attributions = attributions;
313
+ return ObjectUtils.mergeDeep(options, baseOptions);
314
+ }
315
+ parseTileOrImageArcgisOptions(baseOptions, arcgisOptions, legend, serviceCapabilities) {
316
+ const title = arcgisOptions.name;
317
+ const legendInfo = legend.layers ? legend.layers.find(x => x.layerName === title) : undefined;
318
+ const attributions = new olAttribution({
319
+ target: arcgisOptions.copyrightText
320
+ });
321
+ let timeExtent;
322
+ let timeFilter;
323
+ if (arcgisOptions.timeInfo) {
324
+ const time = arcgisOptions.timeInfo.timeExtent;
325
+ timeExtent = time[0] + ',' + time[1];
326
+ const min = new Date();
327
+ min.setTime(time[0]);
328
+ const max = new Date();
329
+ max.setTime(time[1]);
330
+ timeFilter = {
331
+ min: min.toUTCString(),
332
+ max: max.toUTCString(),
333
+ range: true,
334
+ type: TimeFilterType.DATETIME,
335
+ style: TimeFilterStyle.CALENDAR
336
+ };
337
+ }
338
+ const params = Object.assign({}, {
339
+ LAYERS: baseOptions.layer ? 'show:' + baseOptions.layer : undefined,
340
+ time: timeExtent
341
+ });
342
+ const options = ObjectUtils.removeUndefined({
343
+ params,
344
+ _layerOptionsFromSource: {
345
+ title,
346
+ minResolution: getResolutionFromScale(arcgisOptions.maxScale),
347
+ maxResolution: getResolutionFromScale(arcgisOptions.minScale),
348
+ metadata: {
349
+ extern: false,
350
+ abstract: arcgisOptions.description || serviceCapabilities.serviceDescription
351
+ },
352
+ },
353
+ legendInfo,
354
+ timeFilter,
355
+ sourceFields: arcgisOptions.fields,
356
+ queryTitle: arcgisOptions.displayField
357
+ });
358
+ options.attributions = attributions;
359
+ return ObjectUtils.mergeDeep(options, baseOptions);
360
+ }
361
+ findDataSourceInCapabilities(layerArray, name) {
362
+ if (Array.isArray(layerArray)) {
363
+ let layer;
364
+ layerArray.find((value) => {
365
+ layer = this.findDataSourceInCapabilities(value, name);
366
+ return layer !== undefined;
367
+ }, this);
368
+ return layer;
369
+ }
370
+ else if (layerArray.Layer) {
371
+ return this.findDataSourceInCapabilities(layerArray.Layer, name);
372
+ }
373
+ else {
374
+ if (layerArray.Name && layerArray.Name === name) {
375
+ return layerArray;
376
+ }
377
+ return undefined;
378
+ }
379
+ }
380
+ getTimeFilter(layer) {
381
+ let dimension;
382
+ if (layer.Dimension) {
383
+ const timeFilter = {};
384
+ dimension = layer.Dimension[0];
385
+ if (dimension.values) {
386
+ const minMaxDim = dimension.values.split('/');
387
+ timeFilter.min = minMaxDim[0] !== undefined ? minMaxDim[0] : undefined;
388
+ timeFilter.max = minMaxDim[1] !== undefined ? minMaxDim[1] : undefined;
389
+ timeFilter.step = minMaxDim[2] !== undefined ? minMaxDim[2] : undefined;
390
+ }
391
+ if (dimension.default) {
392
+ timeFilter.value = dimension.default;
393
+ }
394
+ return timeFilter;
395
+ }
396
+ }
397
+ getStyle(Style) {
398
+ const styleOptions = Style.map((style) => {
399
+ return {
400
+ name: style.Name,
401
+ title: style.Title
402
+ };
403
+ })
404
+ // Handle repeat the style "default" in output (MapServer or OpenLayer)
405
+ .filter((item, index, self) => self.findIndex((i) => i.name === item.name) ===
406
+ index);
407
+ const legendOptions = {
408
+ stylesAvailable: styleOptions
409
+ };
410
+ return legendOptions;
411
+ }
412
+ }
413
+ CapabilitiesService.ɵfac = function CapabilitiesService_Factory(t) { return new (t || CapabilitiesService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.MapService)); };
414
+ CapabilitiesService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: CapabilitiesService, factory: CapabilitiesService.ɵfac, providedIn: 'root' });
415
+ __decorate([
416
+ Cacheable({
417
+ maxCacheCount: 20
418
+ })
419
+ ], CapabilitiesService.prototype, "getCapabilities", null);
420
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CapabilitiesService, [{
421
+ type: Injectable,
422
+ args: [{
423
+ providedIn: 'root'
424
+ }]
425
+ }], function () { return [{ type: i1.HttpClient }, { type: i2.MapService }]; }, { getCapabilities: [] }); })();
426
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwYWJpbGl0aWVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kYXRhc291cmNlL3NoYXJlZC9jYXBhYmlsaXRpZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBRUwsVUFBVSxFQUNYLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFjLFFBQVEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXpDLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzVELE9BQU8sYUFBYSxNQUFNLHdCQUF3QixDQUFDO0FBRW5ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFMUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbkUsT0FBTyxFQUNMLFdBQVcsRUFDWCxtQkFBbUIsRUFDcEIsTUFBTSxnQ0FBZ0MsQ0FBQztBQWN4QyxPQUFPLEVBQ0wsY0FBYyxFQUNkLGVBQWUsRUFDaEIsTUFBTSxzQ0FBc0MsQ0FBQztBQUM5QyxPQUFPLEtBQUssTUFBTSxNQUFNLFNBQVMsQ0FBQzs7OztBQUVsQyxNQUFNLENBQU4sSUFBWSxnQkFNWDtBQU5ELFdBQVksZ0JBQWdCO0lBQzFCLCtCQUFXLENBQUE7SUFDWCxpQ0FB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REQ7dUZBaExVLG1CQUFtQjtjQUgvQixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7c0ZBZ0lDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgSHR0cENsaWVudCxcclxuICBIdHRwUGFyYW1zXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmb3JrSm9pbiwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwLCBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBDYWNoZWFibGUgfSBmcm9tICd0cy1jYWNoZWFibGUnO1xyXG5cclxuaW1wb3J0IHsgV01TQ2FwYWJpbGl0aWVzLCBXTVRTQ2FwYWJpbGl0aWVzLCBFc3JpSlNPTiB9IGZyb20gJ29sL2Zvcm1hdCc7XHJcbmltcG9ydCB7IG9wdGlvbnNGcm9tQ2FwYWJpbGl0aWVzIH0gZnJvbSAnb2wvc291cmNlL1dNVFMuanMnO1xyXG5pbXBvcnQgb2xBdHRyaWJ1dGlvbiBmcm9tICdvbC9jb250cm9sL0F0dHJpYnV0aW9uJztcclxuXHJcbmltcG9ydCB7IE9iamVjdFV0aWxzIH0gZnJvbSAnQGlnbzIvdXRpbHMnO1xyXG5pbXBvcnQgeyBNYXBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vbWFwL3NoYXJlZC9tYXAuc2VydmljZSc7XHJcbmltcG9ydCB7IGdldFJlc29sdXRpb25Gcm9tU2NhbGUgfSBmcm9tICcuLi8uLi9tYXAvc2hhcmVkL21hcC51dGlscyc7XHJcbmltcG9ydCB7IEVzcmlTdHlsZUdlbmVyYXRvciB9IGZyb20gJy4uL3V0aWxzL2Vzcmktc3R5bGUtZ2VuZXJhdG9yJztcclxuaW1wb3J0IHtcclxuICBRdWVyeUZvcm1hdCxcclxuICBRdWVyeUZvcm1hdE1pbWVUeXBlXHJcbn0gZnJvbSAnLi4vLi4vcXVlcnkvc2hhcmVkL3F1ZXJ5LmVudW1zJztcclxuXHJcbmltcG9ydCB7XHJcbiAgV01UU0RhdGFTb3VyY2VPcHRpb25zLFxyXG4gIFdNU0RhdGFTb3VyY2VPcHRpb25zLFxyXG4gIENhcnRvRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zLFxyXG4gIFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZU9wdGlvbnNcclxufSBmcm9tICcuL2RhdGFzb3VyY2VzJztcclxuaW1wb3J0IHtcclxuICBMZWdlbmRPcHRpb25zLFxyXG4gIEl0ZW1TdHlsZU9wdGlvbnNcclxufSBmcm9tICcuLi8uLi9sYXllci9zaGFyZWQvbGF5ZXJzL2xheWVyLmludGVyZmFjZSc7XHJcbmltcG9ydCB7XHJcbiAgVGltZUZpbHRlclR5cGUsXHJcbiAgVGltZUZpbHRlclN0eWxlXHJcbn0gZnJvbSAnLi4vLi4vZmlsdGVyL3NoYXJlZC90aW1lLWZpbHRlci5lbnVtJztcclxuaW1wb3J0ICogYXMgb2xwcm9qIGZyb20gJ29sL3Byb2onO1xyXG5cclxuZXhwb3J0IGVudW0gVHlwZUNhcGFiaWxpdGllcyB7XHJcbiAgd21zID0gJ3dtcycsXHJcbiAgd210cyA9ICd3bXRzJyxcclxuICBhcmNnaXNyZXN0ID0gJ2VzcmlKU09OJyxcclxuICBpbWFnZWFyY2dpc3Jlc3QgPSAnZXNyaUpTT04nLFxyXG4gIHRpbGVhcmNnaXNyZXN0ID0gJ2VzcmlKU09OJ1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBUeXBlQ2FwYWJpbGl0aWVzU3RyaW5ncyA9IGtleW9mIHR5cGVvZiBUeXBlQ2FwYWJpbGl0aWVzO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2FwYWJpbGl0aWVzU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBwYXJzZXJzID0ge1xyXG4gICAgd21zOiBuZXcgV01TQ2FwYWJpbGl0aWVzKCksXHJcbiAgICB3bXRzOiBuZXcgV01UU0NhcGFiaWxpdGllcygpLFxyXG4gICAgZXNyaUpTT046IG5ldyBFc3JpSlNPTigpXHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIG1hcFNlcnZpY2U6IE1hcFNlcnZpY2UpIHt9XHJcblxyXG4gIGdldFdNU09wdGlvbnMoXHJcbiAgICBiYXNlT3B0aW9uczogV01TRGF0YVNvdXJjZU9wdGlvbnNcclxuICApOiBPYnNlcnZhYmxlPFdNU0RhdGFTb3VyY2VPcHRpb25zPiB7XHJcbiAgICBjb25zdCB1cmwgPSBiYXNlT3B0aW9ucy51cmw7XHJcbiAgICBjb25zdCB2ZXJzaW9uID0gKGJhc2VPcHRpb25zLnBhcmFtcyBhcyBhbnkpLlZFUlNJT047XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2FwYWJpbGl0aWVzKCd3bXMnLCB1cmwsIHZlcnNpb24pLnBpcGUoXHJcbiAgICAgIG1hcCgoY2FwYWJpbGl0aWVzOiBhbnkpID0+IHtcclxuICAgICAgICByZXR1cm4gY2FwYWJpbGl0aWVzXHJcbiAgICAgICAgICA/IHRoaXMucGFyc2VXTVNPcHRpb25zKGJhc2VPcHRpb25zLCBjYXBhYmlsaXRpZXMpXHJcbiAgICAgICAgICA6IHVuZGVmaW5lZDtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRXTVRTT3B0aW9ucyhcclxuICAgIGJhc2VPcHRpb25zOiBXTVRTRGF0YVNvdXJjZU9wdGlvbnNcclxuICApOiBPYnNlcnZhYmxlPFdNVFNEYXRhU291cmNlT3B0aW9ucz4ge1xyXG4gICAgY29uc3QgdXJsID0gYmFzZU9wdGlvbnMudXJsO1xyXG4gICAgY29uc3QgdmVyc2lvbiA9IGJhc2VPcHRpb25zLnZlcnNpb247XHJcblxyXG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuZ2V0Q2FwYWJpbGl0aWVzKCd3bXRzJywgdXJsLCB2ZXJzaW9uKS5waXBlKFxyXG4gICAgICBtYXAoKGNhcGFiaWxpdGllczogYW55KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGNhcGFiaWxpdGllc1xyXG4gICAgICAgICAgPyB0aGlzLnBhcnNlV01UU09wdGlvbnMoYmFzZU9wdGlvbnMsIGNhcGFiaWxpdGllcylcclxuICAgICAgICAgIDogdW5kZWZpbmVkO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICAgIHJldHVybiBvcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q2FydG9PcHRpb25zKFxyXG4gICAgYmFzZU9wdGlvbnM6IENhcnRvRGF0YVNvdXJjZU9wdGlvbnNcclxuICApOiBPYnNlcnZhYmxlPENhcnRvRGF0YVNvdXJjZU9wdGlvbnM+IHtcclxuICAgIGNvbnN0IGJhc2VVcmwgPVxyXG4gICAgICAnaHR0cHM6Ly8nICtcclxuICAgICAgYmFzZU9wdGlvbnMuYWNjb3VudCArXHJcbiAgICAgICcuY2FydG8uY29tL2FwaS92Mi92aXovJyArXHJcbiAgICAgIGJhc2VPcHRpb25zLm1hcElkICtcclxuICAgICAgJy92aXouanNvbic7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuanNvbnAoYmFzZVVybCwgJ2NhbGxiYWNrJylcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChjYXJ0b09wdGlvbnM6IGFueSkgPT5cclxuICAgICAgICAgIHRoaXMucGFyc2VDYXJ0b09wdGlvbnMoYmFzZU9wdGlvbnMsIGNhcnRvT3B0aW9ucylcclxuICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRBcmNnaXNPcHRpb25zKFxyXG4gICAgYmFzZU9wdGlvbnM6IEFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9uc1xyXG4gICk6IE9ic2VydmFibGU8QXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zPiB7XHJcbiAgICBjb25zdCBiYXNlVXJsID0gYmFzZU9wdGlvbnMudXJsICsgJy8nICsgYmFzZU9wdGlvbnMubGF5ZXIgKyAnP2Y9anNvbic7XHJcbiAgICBjb25zdCBtb2RpZmllZFVybCA9IGJhc2VPcHRpb25zLnVybC5yZXBsYWNlKCdGZWF0dXJlU2VydmVyJywgJ01hcFNlcnZlcicpO1xyXG4gICAgY29uc3QgbGVnZW5kVXJsID0gbW9kaWZpZWRVcmwgKyAnL2xlZ2VuZD9mPWpzb24nO1xyXG4gICAgY29uc3Qgc2VydmljZUNhcGFiaWxpdGllcyA9IHRoaXMuZ2V0Q2FwYWJpbGl0aWVzKCdhcmNnaXNyZXN0JywgYmFzZU9wdGlvbnMudXJsKTtcclxuICAgIGNvbnN0IGFyY2dpc09wdGlvbnMgPSB0aGlzLmh0dHAuZ2V0KGJhc2VVcmwpO1xyXG4gICAgY29uc3QgbGVnZW5kID0gdGhpcy5odHRwLmdldChsZWdlbmRVcmwpLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzOiBhbnkpID0+IHJlcyksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdObyBsZWdlbmQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgRmVhdHVyZSBTZXJ2aWNlJyk7XHJcbiAgICAgICAgcmV0dXJuIG9mKGVycik7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIGZvcmtKb2luKFthcmNnaXNPcHRpb25zLCBsZWdlbmQsIHNlcnZpY2VDYXBhYmlsaXRpZXNdKS5waXBlKFxyXG4gICAgICBtYXAoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VBcmNnaXNPcHRpb25zKGJhc2VPcHRpb25zLCByZXNbMF0sIHJlc1sxXSwgcmVzWzJdKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRJbWFnZUFyY2dpc09wdGlvbnMoXHJcbiAgICBiYXNlT3B0aW9uczogQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZU9wdGlvbnMgfCBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zXHJcbiAgKTogT2JzZXJ2YWJsZTxBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlT3B0aW9ucyB8IFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnM+IHtcclxuICAgIGNvbnN0IGJhc2VVcmwgPSBiYXNlT3B0aW9ucy51cmwgKyAnLycgKyBiYXNlT3B0aW9ucy5sYXllciArICc/Zj1qc29uJztcclxuICAgIGNvbnN0IG1vZGlmaWVkVXJsID0gYmFzZU9wdGlvbnMudXJsLnJlcGxhY2UoJ0ZlYXR1cmVTZXJ2ZXInLCAnTWFwU2VydmVyJyk7XHJcbiAgICBjb25zdCBsZWdlbmRVcmwgPSBtb2RpZmllZFVybCArICcvbGVnZW5kP2Y9anNvbic7XHJcbiAgICBjb25zdCBzZXJ2aWNlQ2FwYWJpbGl0aWVzID0gdGhpcy5nZXRDYXBhYmlsaXRpZXMoJ2ltYWdlYXJjZ2lzcmVzdCcsIGJhc2VPcHRpb25zLnVybCk7XHJcbiAgICBjb25zdCBhcmNnaXNPcHRpb25zID0gdGhpcy5odHRwLmdldChiYXNlVXJsKTtcclxuICAgIGNvbnN0IGxlZ2VuZCA9IHRoaXMuaHR0cC5nZXQobGVnZW5kVXJsKS5waXBlKFxyXG4gICAgICBtYXAoKHJlczogYW55KSA9PiByZXMpLFxyXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZygnTm8gbGVnZW5kIGFzc29jaWF0ZWQgd2l0aCB0aGlzIEltYWdlIFNlcnZpY2UnKTtcclxuICAgICAgICByZXR1cm4gb2YoZXJyKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgICByZXR1cm4gZm9ya0pvaW4oW2FyY2dpc09wdGlvbnMsIGxlZ2VuZCwgc2VydmljZUNhcGFiaWxpdGllc10pLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzOiBhbnkpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wYXJzZVRpbGVPckltYWdlQXJjZ2lzT3B0aW9ucyhiYXNlT3B0aW9ucywgcmVzWzBdLCByZXNbMV0sIHJlc1syXSk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGlsZUFyY2dpc09wdGlvbnMoXHJcbiAgICBiYXNlT3B0aW9uczogVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9uc1xyXG4gICk6IE9ic2VydmFibGU8QXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZU9wdGlvbnMgfCBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zPiB7XHJcbiAgICBjb25zdCBiYXNlVXJsID0gYmFzZU9wdGlvbnMudXJsICsgJy8nICsgYmFzZU9wdGlvbnMubGF5ZXIgKyAnP2Y9anNvbic7XHJcbiAgICBjb25zdCBsZWdlbmRVcmwgPSBiYXNlT3B0aW9ucy51cmwgKyAnL2xlZ2VuZD9mPWpzb24nO1xyXG4gICAgY29uc3Qgc2VydmljZUNhcGFiaWxpdGllcyA9IHRoaXMuZ2V0Q2FwYWJpbGl0aWVzKCd0aWxlYXJjZ2lzcmVzdCcsIGJhc2VPcHRpb25zLnVybCk7XHJcbiAgICBjb25zdCBhcmNnaXNPcHRpb25zID0gdGhpcy5odHRwLmdldChiYXNlVXJsKTtcclxuICAgIGNvbnN0IGxlZ2VuZEluZm8gPSB0aGlzLmh0dHAuZ2V0KGxlZ2VuZFVybCkucGlwZShcclxuICAgICAgbWFwKChyZXM6IGFueSkgPT4gcmVzKSxcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ05vIGxlZ2VuZCBhc3NvY2lhdGVkIHdpdGggdGhpcyBUaWxlIFNlcnZpY2UnKTtcclxuICAgICAgICByZXR1cm4gb2YoZXJyKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgICByZXR1cm4gZm9ya0pvaW4oW2FyY2dpc09wdGlvbnMsIGxlZ2VuZEluZm8sIHNlcnZpY2VDYXBhYmlsaXRpZXNdKS5waXBlKFxyXG4gICAgICBtYXAoKHJlczogYW55KSA9PlxyXG4gICAgICAgIHRoaXMucGFyc2VUaWxlT3JJbWFnZUFyY2dpc09wdGlvbnMoYmFzZU9wdGlvbnMsIHJlc1swXSwgcmVzWzFdLCByZXNbMl0pXHJcbiAgICAgIClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBAQ2FjaGVhYmxlKHtcclxuICAgIG1heENhY2hlQ291bnQ6IDIwXHJcbiAgfSlcclxuICBnZXRDYXBhYmlsaXRpZXMoXHJcbiAgICBzZXJ2aWNlOiBUeXBlQ2FwYWJpbGl0aWVzU3RyaW5ncyxcclxuICAgIGJhc2VVcmw6IHN0cmluZyxcclxuICAgIHZlcnNpb24/OiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoe1xyXG4gICAgICBmcm9tT2JqZWN0OiB7XHJcbiAgICAgICAgcmVxdWVzdDogJ0dldENhcGFiaWxpdGllcycsXHJcbiAgICAgICAgc2VydmljZTogc2VydmljZS50b1VwcGVyQ2FzZSgpLFxyXG4gICAgICAgIHZlcnNpb246IHZlcnNpb24gfHwgJzEuMy4wJyxcclxuICAgICAgICBfaTogJ3RydWUnXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGxldCByZXF1ZXN0O1xyXG4gICAgaWYgKFR5cGVDYXBhYmlsaXRpZXNbc2VydmljZV0gPT09ICdlc3JpSlNPTicpIHtcclxuICAgICAgcmVxdWVzdCA9IHRoaXMuaHR0cC5nZXQoYmFzZVVybCArICc/Zj1qc29uJyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXF1ZXN0ID0gdGhpcy5odHRwLmdldChiYXNlVXJsLCB7XHJcbiAgICAgICAgcGFyYW1zLFxyXG4gICAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByZXF1ZXN0LnBpcGUoXHJcbiAgICAgIG1hcCgocmVzKSA9PiB7XHJcbiAgICAgICAgaWYgKFR5cGVDYXBhYmlsaXRpZXNbc2VydmljZV0gPT09ICdlc3JpSlNPTicpIHtcclxuICAgICAgICAgIHJldHVybiByZXMgYXMgb2JqZWN0O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBTdHJpbmcocmVzKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdzZXJ2aWNlZXhjZXB0aW9uJykgJiZcclxuICAgICAgICAgIFN0cmluZyhyZXMpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2FjY2VzcyBkZW5pZWQnKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgdGhyb3cge1xyXG4gICAgICAgICAgICBlcnJvcjoge1xyXG4gICAgICAgICAgICAgIG1lc3NhZ2U6ICdTZXJ2aWNlIGVycm9yIGdldENhcGFiaWxpdGllczogQWNjZXNzIGlzIGRlbmllZCdcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMucGFyc2Vyc1tzZXJ2aWNlXS5yZWFkKHJlcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoZSkgPT4ge1xyXG4gICAgICAgIGlmICh0eXBlb2YgZS5lcnJvciAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgIGUuZXJyb3IuY2F1Z2h0ID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhyb3cgZTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHBhcnNlV01TT3B0aW9ucyhcclxuICAgIGJhc2VPcHRpb25zOiBXTVNEYXRhU291cmNlT3B0aW9ucyxcclxuICAgIGNhcGFiaWxpdGllczogYW55XHJcbiAgKTogV01TRGF0YVNvdXJjZU9wdGlvbnMge1xyXG4gICAgY29uc3QgbGF5ZXJzID0gKGJhc2VPcHRpb25zLnBhcmFtcyBhcyBhbnkpLkxBWUVSUztcclxuICAgIGNvbnN0IGxheWVyID0gdGhpcy5maW5kRGF0YVNvdXJjZUluQ2FwYWJpbGl0aWVzKFxyXG4gICAgICBjYXBhYmlsaXRpZXMuQ2FwYWJpbGl0eS5MYXllcixcclxuICAgICAgbGF5ZXJzXHJcbiAgICApO1xyXG5cclxuICAgIGlmICghbGF5ZXIpIHtcclxuICAgICAgdGhyb3cge1xyXG4gICAgICAgIGVycm9yOiB7XHJcbiAgICAgICAgICBtZXNzYWdlOiAnTGF5ZXIgbm90IGZvdW5kJ1xyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGNvbnN0IG1ldGFkYXRhID0gbGF5ZXIuRGF0YVVSTCA/IGxheWVyLkRhdGFVUkxbMF0gOiB1bmRlZmluZWQ7XHJcbiAgICBjb25zdCBhYnN0cmFjdCA9IGxheWVyLkFic3RyYWN0ID8gbGF5ZXIuQWJzdHJhY3QgOiB1bmRlZmluZWQ7XHJcbiAgICBjb25zdCBrZXl3b3JkTGlzdCA9IGxheWVyLktleXdvcmRMaXN0ID8gbGF5ZXIuS2V5d29yZExpc3QgOiB1bmRlZmluZWQ7XHJcbiAgICBsZXQgcXVlcnlhYmxlID0gbGF5ZXIucXVlcnlhYmxlO1xyXG4gICAgY29uc3QgdGltZUZpbHRlciA9IHRoaXMuZ2V0VGltZUZpbHRlcihsYXllcik7XHJcbiAgICBjb25zdCB0aW1lRmlsdGVyYWJsZSA9IHRpbWVGaWx0ZXIgJiYgT2JqZWN0LmtleXModGltZUZpbHRlcikubGVuZ3RoID4gMDtcclxuICAgIGNvbnN0IGxlZ2VuZE9wdGlvbnMgPSBsYXllci5TdHlsZSA/IHRoaXMuZ2V0U3R5bGUobGF5ZXIuU3R5bGUpIDogdW5kZWZpbmVkO1xyXG4gICAgbGV0IGlzRXh0ZW50SW5HZW9ncmFwaGljID0gdHJ1ZTtcclxuICAgIGlmIChsYXllci5FWF9HZW9ncmFwaGljQm91bmRpbmdCb3gpIHtcclxuICAgICAgbGF5ZXIuRVhfR2VvZ3JhcGhpY0JvdW5kaW5nQm94LmZvckVhY2goKGNvb3JkLCBpbmRleCkgPT4ge1xyXG4gICAgICAgIGlmIChpbmRleCA8IDIgJiYgKGNvb3JkID4gMTgwIHx8IGNvb3JkIDwgLTE4MCkpIHtcclxuICAgICAgICAgIGlzRXh0ZW50SW5HZW9ncmFwaGljID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpbmRleCA+PSAyICYmIChjb29yZCA+IDkwIHx8IGNvb3JkIDwgLTkwKSkge1xyXG4gICAgICAgICAgaXNFeHRlbnRJbkdlb2dyYXBoaWMgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaXNFeHRlbnRJbkdlb2dyYXBoaWMgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBleHRlbnQgPSBpc0V4dGVudEluR2VvZ3JhcGhpYyA/XHJcbiAgICAgICAgb2xwcm9qLnRyYW5zZm9ybUV4dGVudChsYXllci5FWF9HZW9ncmFwaGljQm91bmRpbmdCb3gsICdFUFNHOjQzMjYnLCB0aGlzLm1hcFNlcnZpY2UuZ2V0TWFwKCkucHJvamVjdGlvbikgOlxyXG4gICAgICAgIHVuZGVmaW5lZDtcclxuXHJcbiAgICBsZXQgcXVlcnlGb3JtYXQ6IFF1ZXJ5Rm9ybWF0O1xyXG4gICAgY29uc3QgcXVlcnlGb3JtYXRNaW1lVHlwZVByaW9yaXR5ID0gW1xyXG4gICAgICBRdWVyeUZvcm1hdE1pbWVUeXBlLkdFT0pTT04sXHJcbiAgICAgIFF1ZXJ5Rm9ybWF0TWltZVR5cGUuR0VPSlNPTjIsXHJcbiAgICAgIFF1ZXJ5Rm9ybWF0TWltZVR5cGUuR01MMyxcclxuICAgICAgUXVlcnlGb3JtYXRNaW1lVHlwZS5HTUwyLFxyXG4gICAgICBRdWVyeUZvcm1hdE1pbWVUeXBlLkpTT04sXHJcbiAgICAgIFF1ZXJ5Rm9ybWF0TWltZVR5cGUuSFRNTFxyXG4gICAgXTtcclxuXHJcbiAgICBmb3IgKGNvbnN0IG1pbWVUeXBlIG9mIHF1ZXJ5Rm9ybWF0TWltZVR5cGVQcmlvcml0eSkge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgY2FwYWJpbGl0aWVzLkNhcGFiaWxpdHkuUmVxdWVzdC5HZXRGZWF0dXJlSW5mby5Gb3JtYXQuaW5kZXhPZihcclxuICAgICAgICAgIG1pbWVUeXBlXHJcbiAgICAgICAgKSAhPT0gLTFcclxuICAgICAgKSB7XHJcbiAgICAgICAgY29uc3Qga2V5RW51bSA9IE9iamVjdC5rZXlzKFF1ZXJ5Rm9ybWF0TWltZVR5cGUpLmZpbmQoXHJcbiAgICAgICAgICAoa2V5KSA9PiBRdWVyeUZvcm1hdE1pbWVUeXBlW2tleV0gPT09IG1pbWVUeXBlXHJcbiAgICAgICAgKTtcclxuICAgICAgICBxdWVyeUZvcm1hdCA9IFF1ZXJ5Rm9ybWF0W2tleUVudW1dO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoIXF1ZXJ5Rm9ybWF0KSB7XHJcbiAgICAgIHF1ZXJ5YWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG9wdGlvbnM6IFdNU0RhdGFTb3VyY2VPcHRpb25zID0gT2JqZWN0VXRpbHMucmVtb3ZlVW5kZWZpbmVkKHtcclxuICAgICAgX2xheWVyT3B0aW9uc0Zyb21Tb3VyY2U6IHtcclxuICAgICAgICB0aXRsZTogbGF5ZXIuVGl0bGUsXHJcbiAgICAgICAgbWF4UmVzb2x1dGlvbjogZ2V0UmVzb2x1dGlvbkZyb21TY2FsZShsYXllci5NYXhTY2FsZURlbm9taW5hdG9yKSxcclxuICAgICAgICBtaW5SZXNvbHV0aW9uOiBnZXRSZXNvbHV0aW9uRnJvbVNjYWxlKGxheWVyLk1pblNjYWxlRGVub21pbmF0b3IpLFxyXG4gICAgICAgIGV4dGVudCxcclxuICAgICAgICBtZXRhZGF0YToge1xyXG4gICAgICAgICAgdXJsOiBtZXRhZGF0YSA/IG1ldGFkYXRhLk9ubGluZVJlc291cmNlIDogdW5kZWZpbmVkLFxyXG4gICAgICAgICAgZXh0ZXJuOiBtZXRhZGF0YSA/IHRydWUgOiB1bmRlZmluZWQsXHJcbiAgICAgICAgICBhYnN0cmFjdCxcclxuICAgICAgICAgIGtleXdvcmRMaXN0XHJcbiAgICAgICAgfSxcclxuICAgICAgICBsZWdlbmRPcHRpb25zXHJcbiAgICAgIH0sXHJcbiAgICAgIHF1ZXJ5YWJsZSxcclxuICAgICAgcXVlcnlGb3JtYXQsXHJcbiAgICAgIHRpbWVGaWx0ZXI6IHRpbWVGaWx0ZXJhYmxlID8gdGltZUZpbHRlciA6IHVuZGVmaW5lZCxcclxuICAgICAgdGltZUZpbHRlcmFibGU6IHRpbWVGaWx0ZXJhYmxlID8gdHJ1ZSA6IHVuZGVmaW5lZCxcclxuICAgICAgbWluRGF0ZTogdGltZUZpbHRlcmFibGUgPyB0aW1lRmlsdGVyLm1pbiA6IHVuZGVmaW5lZCxcclxuICAgICAgbWF4RGF0ZTogdGltZUZpbHRlcmFibGUgPyB0aW1lRmlsdGVyLm1heCA6IHVuZGVmaW5lZCxcclxuICAgICAgc3RlcERhdGU6IHRpbWVGaWx0ZXJhYmxlID8gdGltZUZpbHRlci5zdGVwIDogdW5kZWZpbmVkXHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gT2JqZWN0VXRpbHMubWVyZ2VEZWVwKG9wdGlvbnMsIGJhc2VPcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcGFyc2VXTVRTT3B0aW9ucyhcclxuICAgIGJhc2VPcHRpb25zOiBXTVRTRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgICBjYXBhYmlsaXRpZXM6IGFueVxyXG4gICk6IFdNVFNEYXRhU291cmNlT3B0aW9ucyB7XHJcbiAgICAvLyBQdXQgVGl0bGUgc291cmNlIGluIF9sYXllck9wdGlvbnNGcm9tU291cmNlLiAoRm9yIHNvdXJjZSAmIGNhdGFsb2cgaW4gX2xheWVyT3B0aW9uc0Zyb21Tb3VyY2UsIGlmIG5vdCBhbHJlYWR5IG9uIGNvbmZpZylcclxuICAgIGNvbnN0IGxheWVyID0gY2FwYWJpbGl0aWVzLkNvbnRlbnRzLkxheWVyLmZpbmQoXHJcbiAgICAgIChlbCkgPT4gZWwuSWRlbnRpZmllciA9PT0gYmFzZU9wdGlvbnMubGF5ZXJcclxuICAgICk7XHJcblxyXG4gICAgY29uc3Qgb3B0aW9ucyA9IG9wdGlvbnNGcm9tQ2FwYWJpbGl0aWVzKGNhcGFiaWxpdGllcywgYmFzZU9wdGlvbnMpO1xyXG5cclxuICAgIGNvbnN0IG91cHV0T3B0aW9ucyA9IE9iamVjdC5hc3NpZ24ob3B0aW9ucywgYmFzZU9wdGlvbnMpO1xyXG4gICAgY29uc3Qgc291cmNlT3B0aW9ucyA9IE9iamVjdFV0aWxzLnJlbW92ZVVuZGVmaW5lZCh7XHJcbiAgICAgIF9sYXllck9wdGlvbnNGcm9tU291cmNlOiB7XHJcbiAgICAgICAgdGl0bGU6IGxheWVyLlRpdGxlXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBPYmplY3RVdGlscy5tZXJnZURlZXAoc291cmNlT3B0aW9ucywgb3VwdXRPcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcGFyc2VDYXJ0b09wdGlvbnMoXHJcbiAgICBiYXNlT3B0aW9uczogQ2FydG9EYXRhU291cmNlT3B0aW9ucyxcclxuICAgIGNhcnRvT3B0aW9uczogYW55XHJcbiAgKTogQ2FydG9EYXRhU291cmNlT3B0aW9ucyB7XHJcbiAgICBjb25zdCBsYXllcnMgPSBbXTtcclxuICAgIGNvbnN0IHBhcmFtcyA9IGNhcnRvT3B0aW9ucy5sYXllcnNbMV0ub3B0aW9ucy5sYXllcl9kZWZpbml0aW9uO1xyXG4gICAgcGFyYW1zLmxheWVycy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgIGxheWVycy5wdXNoKHtcclxuICAgICAgICB0eXBlOiBlbGVtZW50LnR5cGUudG9Mb3dlckNhc2UoKSxcclxuICAgICAgICBvcHRpb25zOiBlbGVtZW50Lm9wdGlvbnMsXHJcbiAgICAgICAgbGVnZW5kOiBlbGVtZW50LmxlZ2VuZFxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gICAgY29uc3Qgb3B0aW9ucyA9IE9iamVjdFV0aWxzLnJlbW92ZVVuZGVmaW5lZCh7XHJcbiAgICAgIGNvbmZpZzoge1xyXG4gICAgICAgIHZlcnNpb246IHBhcmFtcy52ZXJzaW9uLFxyXG4gICAgICAgIGxheWVyc1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBPYmplY3RVdGlscy5tZXJnZURlZXAob3B0aW9ucywgYmFzZU9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwYXJzZUFyY2dpc09wdGlvbnMoXHJcbiAgICBiYXNlT3B0aW9uczogQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zLFxyXG4gICAgYXJjZ2lzT3B0aW9uczogYW55LFxyXG4gICAgbGVnZW5kOiBhbnksXHJcbiAgICBzZXJ2aWNlQ2FwYWJpbGl0aWVzOiBhbnksXHJcbiAgKTogQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zIHtcclxuICAgIGNvbnN0IHRpdGxlID0gYXJjZ2lzT3B0aW9ucy5uYW1lO1xyXG4gICAgbGV0IGxlZ2VuZEluZm86IGFueTtcclxuXHJcbiAgICBpZiAobGVnZW5kLmxheWVycykge1xyXG4gICAgICBsZWdlbmRJbmZvID0gbGVnZW5kLmxheWVycy5maW5kKHggPT4geC5sYXllck5hbWUgPT09IHRpdGxlKTtcclxuICAgIH0gZWxzZSBpZiAoYXJjZ2lzT3B0aW9ucy5kcmF3aW5nSW5mbz8ucmVuZGVyZXIpIHtcclxuICAgICAgbGVnZW5kSW5mbyA9IGFyY2dpc09wdGlvbnMuZHJhd2luZ0luZm8ucmVuZGVyZXI7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZWdlbmRJbmZvID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBzdHlsZTtcclxuICAgIGlmIChhcmNnaXNPcHRpb25zLmRyYXdpbmdJbmZvKSB7XHJcbiAgICAgIGNvbnN0IHN0eWxlR2VuZXJhdG9yID0gbmV3IEVzcmlTdHlsZUdlbmVyYXRvcigpO1xyXG4gICAgICBjb25zdCB1bml0cyA9IGFyY2dpc09wdGlvbnMudW5pdHMgPT09ICdlc3JpTWV0ZXJzJyA/ICdtJyA6ICdkZWdyZWVzJztcclxuICAgICAgc3R5bGUgPSBzdHlsZUdlbmVyYXRvci5nZW5lcmF0ZVN0eWxlKGFyY2dpc09wdGlvbnMsIHVuaXRzKTtcclxuICAgIH1cclxuICAgIGNvbnN0IGF0dHJpYnV0aW9ucyA9IG5ldyBvbEF0dHJpYnV0aW9uKHtcclxuICAgICAgdGFyZ2V0OiBhcmNnaXNPcHRpb25zLmNvcHlyaWdodFRleHRcclxuICAgIH0pO1xyXG4gICAgbGV0IHRpbWVFeHRlbnQ7XHJcbiAgICBsZXQgdGltZUZpbHRlcjtcclxuICAgIGlmIChhcmNnaXNPcHRpb25zLnRpbWVJbmZvKSB7XHJcbiAgICAgIGNvbnN0IHRpbWUgPSBhcmNnaXNPcHRpb25zLnRpbWVJbmZvLnRpbWVFeHRlbnQ7XHJcbiAgICAgIHRpbWVFeHRlbnQgPSB0aW1lWzBdICsgJywnICsgdGltZVsxXTtcclxuICAgICAgY29uc3QgbWluID0gbmV3IERhdGUoKTtcclxuICAgICAgbWluLnNldFRpbWUodGltZVswXSk7XHJcbiAgICAgIGNvbnN0IG1heCA9IG5ldyBEYXRlKCk7XHJcbiAgICAgIG1heC5zZXRUaW1lKHRpbWVbMV0pO1xyXG4gICAgICB0aW1lRmlsdGVyID0ge1xyXG4gICAgICAgIG1pbjogbWluLnRvVVRDU3RyaW5nKCksXHJcbiAgICAgICAgbWF4OiBtYXgudG9VVENTdHJpbmcoKSxcclxuICAgICAgICByYW5nZTogdHJ1ZSxcclxuICAgICAgICB0eXBlOiBUaW1lRmlsdGVyVHlwZS5EQVRFVElNRSxcclxuICAgICAgICBzdHlsZTogVGltZUZpbHRlclN0eWxlLkNBTEVOREFSXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBjb25zdCBwYXJhbXMgPSBPYmplY3QuYXNzaWduKFxyXG4gICAgICB7fSxcclxuICAgICAge1xyXG4gICAgICAgIHN0eWxlLFxyXG4gICAgICAgIExBWUVSUzogYmFzZU9wdGlvbnMubGF5ZXIgPyAnc2hvdzonICsgYmFzZU9wdGlvbnMubGF5ZXIgOiB1bmRlZmluZWQsXHJcbiAgICAgICAgdGltZTogdGltZUV4dGVudFxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgY29uc3Qgb3B0aW9ucyA9IE9iamVjdFV0aWxzLnJlbW92ZVVuZGVmaW5lZCh7XHJcbiAgICAgIHBhcmFtcyxcclxuICAgICAgX2xheWVyT3B0aW9uc0Zyb21Tb3VyY2U6IHtcclxuICAgICAgICB0aXRsZSxcclxuICAgICAgICBtaW5SZXNvbHV0aW9uOiBnZXRSZXNvbHV0aW9uRnJvbVNjYWxlKGFyY2dpc09wdGlvbnMubWF4U2NhbGUpLFxyXG4gICAgICAgIG1heFJlc29sdXRpb246IGdldFJlc29sdXRpb25Gcm9tU2NhbGUoYXJjZ2lzT3B0aW9ucy5taW5TY2FsZSksXHJcbiAgICAgICAgbWV0YWRhdGE6IHtcclxuICAgICAgICAgIGV4dGVybjogZmFsc2UsXHJcbiAgICAgICAgICBhYnN0cmFjdDogYXJjZ2lzT3B0aW9ucy5kZXNjcmlwdGlvbiB8fCBzZXJ2aWNlQ2FwYWJpbGl0aWVzLnNlcnZpY2VEZXNjcmlwdGlvblxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIGxlZ2VuZEluZm8sXHJcbiAgICAgIHRpbWVGaWx0ZXIsXHJcbiAgICAgIHNvdXJjZUZpZWxkczogYXJjZ2lzT3B0aW9ucy5maWVsZHMsXHJcbiAgICAgIHF1ZXJ5VGl0bGU6IGFyY2dpc09wdGlvbnMuZGlzcGxheUZpZWxkXHJcbiAgICB9KTtcclxuICAgIG9wdGlvbnMuYXR0cmlidXRpb25zID0gYXR0cmlidXRpb25zO1xyXG4gICAgcmV0dXJuIE9iamVjdFV0aWxzLm1lcmdlRGVlcChvcHRpb25zLCBiYXNlT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHBhcnNlVGlsZU9ySW1hZ2VBcmNnaXNPcHRpb25zKFxyXG4gICAgYmFzZU9wdGlvbnM6IFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMgfCBBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlT3B0aW9ucyxcclxuICAgIGFyY2dpc09wdGlvbnM6IGFueSxcclxuICAgIGxlZ2VuZDogYW55LFxyXG4gICAgc2VydmljZUNhcGFiaWxpdGllczogYW55XHJcbiAgKTogVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucyB8IEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zIHtcclxuICAgIGNvbnN0IHRpdGxlID0gYXJjZ2lzT3B0aW9ucy5uYW1lO1xyXG4gICAgY29uc3QgbGVnZW5kSW5mbyA9IGxlZ2VuZC5sYXllcnMgPyBsZWdlbmQubGF5ZXJzLmZpbmQoeCA9PiB4LmxheWVyTmFtZSA9PT0gdGl0bGUpIDogdW5kZWZpbmVkO1xyXG4gICAgY29uc3QgYXR0cmlidXRpb25zID0gbmV3IG9sQXR0cmlidXRpb24oe1xyXG4gICAgICB0YXJnZXQ6IGFyY2dpc09wdGlvbnMuY29weXJpZ2h0VGV4dFxyXG4gICAgfSk7XHJcbiAgICBsZXQgdGltZUV4dGVudDtcclxuICAgIGxldCB0aW1lRmlsdGVyO1xyXG4gICAgaWYgKGFyY2dpc09wdGlvbnMudGltZUluZm8pIHtcclxuICAgICAgY29uc3QgdGltZSA9IGFyY2dpc09wdGlvbnMudGltZUluZm8udGltZUV4dGVudDtcclxuICAgICAgdGltZUV4dGVudCA9IHRpbWVbMF0gKyAnLCcgKyB0aW1lWzFdO1xyXG4gICAgICBjb25zdCBtaW4gPSBuZXcgRGF0ZSgpO1xyXG4gICAgICBtaW4uc2V0VGltZSh0aW1lWzBdKTtcclxuICAgICAgY29uc3QgbWF4ID0gbmV3IERhdGUoKTtcclxuICAgICAgbWF4LnNldFRpbWUodGltZVsxXSk7XHJcbiAgICAgIHRpbWVGaWx0ZXIgPSB7XHJcbiAgICAgICAgbWluOiBtaW4udG9VVENTdHJpbmcoKSxcclxuICAgICAgICBtYXg6IG1heC50b1VUQ1N0cmluZygpLFxyXG4gICAgICAgIHJhbmdlOiB0cnVlLFxyXG4gICAgICAgIHR5cGU6IFRpbWVGaWx0ZXJUeXBlLkRBVEVUSU1FLFxyXG4gICAgICAgIHN0eWxlOiBUaW1lRmlsdGVyU3R5bGUuQ0FMRU5EQVJcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGNvbnN0IHBhcmFtcyA9IE9iamVjdC5hc3NpZ24oXHJcbiAgICAgIHt9LFxyXG4gICAgICB7XHJcbiAgICAgICAgTEFZRVJTOiBiYXNlT3B0aW9ucy5sYXllciA/ICdzaG93OicgKyBiYXNlT3B0aW9ucy5sYXllciA6IHVuZGVmaW5lZCxcclxuICAgICAgICB0aW1lOiB0aW1lRXh0ZW50XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICBjb25zdCBvcHRpb25zID0gT2JqZWN0VXRpbHMucmVtb3ZlVW5kZWZpbmVkKHtcclxuICAgICAgcGFyYW1zLFxyXG4gICAgICBfbGF5ZXJPcHRpb25zRnJvbVNvdXJjZToge1xyXG4gICAgICAgIHRpdGxlLFxyXG4gICAgICAgIG1pblJlc29sdXRpb246IGdldFJlc29sdXRpb25Gcm9tU2NhbGUoYXJjZ2lzT3B0aW9ucy5tYXhTY2FsZSksXHJcbiAgICAgICAgbWF4UmVzb2x1dGlvbjogZ2V0UmVzb2x1dGlvbkZyb21TY2FsZShhcmNnaXNPcHRpb25zLm1pblNjYWxlKSxcclxuICAgICAgICBtZXRhZGF0YToge1xyXG4gICAgICAgICAgZXh0ZXJuOiBmYWxzZSxcclxuICAgICAgICAgIGFic3RyYWN0OiBhcmNnaXNPcHRpb25zLmRlc2NyaXB0aW9uIHx8IHNlcnZpY2VDYXBhYmlsaXRpZXMuc2VydmljZURlc2NyaXB0aW9uXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgbGVnZW5kSW5mbyxcclxuICAgICAgdGltZUZpbHRlcixcclxuICAgICAgc291cmNlRmllbGRzOiBhcmNnaXNPcHRpb25zLmZpZWxkcyxcclxuICAgICAgcXVlcnlUaXRsZTogYXJjZ2lzT3B0aW9ucy5kaXNwbGF5RmllbGRcclxuICAgIH0pO1xyXG4gICAgb3B0aW9ucy5hdHRyaWJ1dGlvbnMgPSBhdHRyaWJ1dGlvbnM7XHJcbiAgICByZXR1cm4gT2JqZWN0VXRpbHMubWVyZ2VEZWVwKG9wdGlvbnMsIGJhc2VPcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmluZERhdGFTb3VyY2VJbkNhcGFiaWxpdGllcyhsYXllckFycmF5LCBuYW1lKTogYW55IHtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KGxheWVyQXJyYXkpKSB7XHJcbiAgICAgIGxldCBsYXllcjtcclxuICAgICAgbGF5ZXJBcnJheS5maW5kKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIGxheWVyID0gdGhpcy5maW5kRGF0YVNvdXJjZUluQ2FwYWJpbGl0aWVzKHZhbHVlLCBuYW1lKTtcclxuICAgICAgICByZXR1cm4gbGF5ZXIgIT09IHVuZGVmaW5lZDtcclxuICAgICAgfSwgdGhpcyk7XHJcblxyXG4gICAgICByZXR1cm4gbGF5ZXI7XHJcbiAgICB9IGVsc2UgaWYgKGxheWVyQXJyYXkuTGF5ZXIpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZmluZERhdGFTb3VyY2VJbkNhcGFiaWxpdGllcyhsYXllckFycmF5LkxheWVyLCBuYW1lKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChsYXllckFycmF5Lk5hbWUgJiYgbGF5ZXJBcnJheS5OYW1lID09PSBuYW1lKSB7XHJcbiAgICAgICAgcmV0dXJuIGxheWVyQXJyYXk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFRpbWVGaWx0ZXIobGF5ZXIpIHtcclxuICAgIGxldCBkaW1lbnNpb247XHJcblxyXG4gICAgaWYgKGxheWVyLkRpbWVuc2lvbikge1xyXG4gICAgICBjb25zdCB0aW1lRmlsdGVyOiBhbnkgPSB7fTtcclxuICAgICAgZGltZW5zaW9uID0gbGF5ZXIuRGltZW5zaW9uWzBdO1xyXG5cclxuICAgICAgaWYgKGRpbWVuc2lvbi52YWx1ZXMpIHtcclxuICAgICAgICBjb25zdCBtaW5NYXhEaW0gPSBkaW1lbnNpb24udmFsdWVzLnNwbGl0KCcvJyk7XHJcbiAgICAgICAgdGltZUZpbHRlci5taW4gPSBtaW5NYXhEaW1bMF0gIT09IHVuZGVmaW5lZCA/IG1pbk1heERpbVswXSA6IHVuZGVmaW5lZDtcclxuICAgICAgICB0aW1lRmlsdGVyLm1heCA9IG1pbk1heERpbVsxXSAhPT0gdW5kZWZpbmVkID8gbWluTWF4RGltWzFdIDogdW5kZWZpbmVkO1xyXG4gICAgICAgIHRpbWVGaWx0ZXIuc3RlcCA9IG1pbk1heERpbVsyXSAhPT0gdW5kZWZpbmVkID8gbWluTWF4RGltWzJdIDogdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoZGltZW5zaW9uLmRlZmF1bHQpIHtcclxuICAgICAgICB0aW1lRmlsdGVyLnZhbHVlID0gZGltZW5zaW9uLmRlZmF1bHQ7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRpbWVGaWx0ZXI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRTdHlsZShTdHlsZSk6IExlZ2VuZE9wdGlvbnMge1xyXG4gICAgY29uc3Qgc3R5bGVPcHRpb25zOiBJdGVtU3R5bGVPcHRpb25zW10gPSBTdHlsZS5tYXAoKHN0eWxlKSA9PiB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgbmFtZTogc3R5bGUuTmFtZSxcclxuICAgICAgICB0aXRsZTogc3R5bGUuVGl0bGVcclxuICAgICAgfTtcclxuICAgIH0pXHJcbiAgICAgIC8vIEhhbmRsZSByZXBlYXQgdGhlIHN0eWxlIFwiZGVmYXVsdFwiIGluIG91dHB1dCAgKE1hcFNlcnZlciBvciBPcGVuTGF5ZXIpXHJcbiAgICAgIC5maWx0ZXIoXHJcbiAgICAgICAgKGl0ZW0sIGluZGV4LCBzZWxmKSA9PlxyXG4gICAgICAgICAgc2VsZi5maW5kSW5kZXgoKGk6IEl0ZW1TdHlsZU9wdGlvbnMpID0+IGkubmFtZSA9PT0gaXRlbS5uYW1lKSA9PT1cclxuICAgICAgICAgIGluZGV4XHJcbiAgICAgICk7XHJcblxyXG4gICAgY29uc3QgbGVnZW5kT3B0aW9uczogTGVnZW5kT3B0aW9ucyA9IHtcclxuICAgICAgc3R5bGVzQXZhaWxhYmxlOiBzdHlsZU9wdGlvbnNcclxuICAgIH0gYXMgTGVnZW5kT3B0aW9ucztcclxuXHJcbiAgICByZXR1cm4gbGVnZW5kT3B0aW9ucztcclxuICB9XHJcbn1cclxuIl19