@igo2/geo 1.12.1 → 1.13.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (963) hide show
  1. package/assets/icons/cross_black_18px.svg +88 -88
  2. package/assets/icons/place_blue_36px.svg +55 -55
  3. package/assets/icons/place_green_36px.svg +55 -55
  4. package/assets/icons/place_red_36px.svg +55 -55
  5. package/assets/icons/place_yellow_36px.svg +55 -55
  6. package/{esm2015/igo2-geo.js → esm2020/igo2-geo.mjs} +0 -0
  7. package/esm2020/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +299 -0
  8. package/esm2020/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +268 -0
  9. package/esm2020/lib/catalog/catalog-browser/catalog-browser.component.mjs +244 -0
  10. package/esm2020/lib/catalog/catalog-browser/catalog-browser.module.mjs +80 -0
  11. package/esm2020/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +209 -0
  12. package/esm2020/lib/catalog/catalog-library/catalog-library-item.component.mjs +79 -0
  13. package/esm2020/lib/catalog/catalog-library/catalog-library.component.mjs +217 -0
  14. package/esm2020/lib/catalog/catalog-library/catalog-library.module.mjs +95 -0
  15. package/esm2020/lib/catalog/catalog.module.mjs +53 -0
  16. package/esm2020/lib/catalog/index.mjs +5 -0
  17. package/esm2020/lib/catalog/shared/catalog.abstract.mjs +95 -0
  18. package/esm2020/lib/catalog/shared/catalog.enum.mjs +16 -0
  19. package/esm2020/lib/catalog/shared/catalog.interface.mjs +2 -0
  20. package/esm2020/lib/catalog/shared/catalog.service.mjs +606 -0
  21. package/esm2020/lib/catalog/shared/index.mjs +5 -0
  22. package/esm2020/lib/datasource/datasource.module.mjs +22 -0
  23. package/esm2020/lib/datasource/index.mjs +3 -0
  24. package/esm2020/lib/datasource/shared/capabilities.service.mjs +426 -0
  25. package/esm2020/lib/datasource/shared/datasource.service.mjs +236 -0
  26. package/esm2020/lib/datasource/shared/datasources/any-datasource.interface.mjs +2 -0
  27. package/esm2020/lib/datasource/shared/datasources/any-datasource.mjs +2 -0
  28. package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.interface.mjs +2 -0
  29. package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +145 -0
  30. package/esm2020/lib/datasource/shared/datasources/carto-datasource.interface.mjs +2 -0
  31. package/esm2020/lib/datasource/shared/datasources/carto-datasource.mjs +109 -0
  32. package/esm2020/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +2 -0
  33. package/esm2020/lib/datasource/shared/datasources/cluster-datasource.mjs +15 -0
  34. package/esm2020/lib/datasource/shared/datasources/data.service.mjs +3 -0
  35. package/esm2020/lib/datasource/shared/datasources/datasource.interface.mjs +2 -0
  36. package/esm2020/lib/datasource/shared/datasources/datasource.mjs +29 -0
  37. package/esm2020/lib/datasource/shared/datasources/feature-datasource.interface.mjs +2 -0
  38. package/esm2020/lib/datasource/shared/datasources/feature-datasource.mjs +43 -0
  39. package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.mjs +2 -0
  40. package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +57 -0
  41. package/esm2020/lib/datasource/shared/datasources/index.mjs +36 -0
  42. package/esm2020/lib/datasource/shared/datasources/mvt-datasource.interface.mjs +2 -0
  43. package/esm2020/lib/datasource/shared/datasources/mvt-datasource.mjs +28 -0
  44. package/esm2020/lib/datasource/shared/datasources/osm-datasource.interface.mjs +2 -0
  45. package/esm2020/lib/datasource/shared/datasources/osm-datasource.mjs +12 -0
  46. package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.mjs +2 -0
  47. package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +49 -0
  48. package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.interface.mjs +2 -0
  49. package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.mjs +15 -0
  50. package/esm2020/lib/datasource/shared/datasources/websocket-datasource.interface.mjs +2 -0
  51. package/esm2020/lib/datasource/shared/datasources/websocket-datasource.mjs +54 -0
  52. package/esm2020/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +2 -0
  53. package/esm2020/lib/datasource/shared/datasources/wfs-datasource.mjs +74 -0
  54. package/esm2020/lib/datasource/shared/datasources/wfs.service.mjs +152 -0
  55. package/esm2020/lib/datasource/shared/datasources/wms-datasource.interface.mjs +2 -0
  56. package/esm2020/lib/datasource/shared/datasources/wms-datasource.mjs +205 -0
  57. package/esm2020/lib/datasource/shared/datasources/wms-wfs.utils.mjs +207 -0
  58. package/esm2020/lib/datasource/shared/datasources/wmts-datasource.interface.mjs +2 -0
  59. package/esm2020/lib/datasource/shared/datasources/wmts-datasource.mjs +16 -0
  60. package/esm2020/lib/datasource/shared/datasources/xyz-datasource.interface.mjs +2 -0
  61. package/esm2020/lib/datasource/shared/datasources/xyz-datasource.mjs +9 -0
  62. package/esm2020/lib/datasource/shared/index.mjs +5 -0
  63. package/esm2020/lib/datasource/shared/options/index.mjs +5 -0
  64. package/esm2020/lib/datasource/shared/options/options-api.interface.mjs +2 -0
  65. package/esm2020/lib/datasource/shared/options/options-api.providers.mjs +15 -0
  66. package/esm2020/lib/datasource/shared/options/options-api.service.mjs +81 -0
  67. package/esm2020/lib/datasource/shared/options/options.service.mjs +3 -0
  68. package/esm2020/lib/datasource/utils/esri-style-generator.mjs +357 -0
  69. package/esm2020/lib/datasource/utils/index.mjs +3 -0
  70. package/esm2020/lib/datasource/utils/tilegrid.mjs +20 -0
  71. package/esm2020/lib/directions/directions-buttons/directions-buttons.component.mjs +224 -0
  72. package/esm2020/lib/directions/directions-buttons/index.mjs +2 -0
  73. package/esm2020/lib/directions/directions-inputs/directions-inputs.component.mjs +290 -0
  74. package/esm2020/lib/directions/directions-inputs/index.mjs +2 -0
  75. package/esm2020/lib/directions/directions-results/directions-results.component.mjs +196 -0
  76. package/esm2020/lib/directions/directions-results/index.mjs +2 -0
  77. package/esm2020/lib/directions/directions-sources/directions-source.interface.mjs +2 -0
  78. package/esm2020/lib/directions/directions-sources/directions-source.mjs +3 -0
  79. package/esm2020/lib/directions/directions-sources/directions-source.provider.mjs +16 -0
  80. package/esm2020/lib/directions/directions-sources/index.mjs +5 -0
  81. package/esm2020/lib/directions/directions-sources/osrm-directions-source.mjs +99 -0
  82. package/esm2020/lib/directions/directions.component.mjs +311 -0
  83. package/esm2020/lib/directions/directions.module.mjs +102 -0
  84. package/esm2020/lib/directions/index.mjs +7 -0
  85. package/esm2020/lib/directions/shared/directions-source.service.mjs +17 -0
  86. package/esm2020/lib/directions/shared/directions.enum.mjs +28 -0
  87. package/esm2020/lib/directions/shared/directions.interface.mjs +2 -0
  88. package/esm2020/lib/directions/shared/directions.service.mjs +29 -0
  89. package/esm2020/lib/directions/shared/directions.utils.mjs +510 -0
  90. package/esm2020/lib/directions/shared/index.mjs +6 -0
  91. package/esm2020/lib/directions/shared/store.mjs +24 -0
  92. package/esm2020/lib/download/download-button/download-button.component.mjs +61 -0
  93. package/esm2020/lib/download/download-button/index.mjs +2 -0
  94. package/esm2020/lib/download/download.module.mjs +42 -0
  95. package/esm2020/lib/download/index.mjs +3 -0
  96. package/esm2020/lib/download/shared/download.interface.mjs +2 -0
  97. package/esm2020/lib/download/shared/download.service.mjs +65 -0
  98. package/esm2020/lib/download/shared/index.mjs +3 -0
  99. package/esm2020/lib/draw/draw/draw-popup.component.mjs +61 -0
  100. package/esm2020/lib/draw/draw/draw-shorcuts.component.mjs +48 -0
  101. package/esm2020/lib/draw/draw/draw.component.mjs +714 -0
  102. package/esm2020/lib/draw/draw/draw.module.mjs +100 -0
  103. package/esm2020/lib/draw/drawingTool.module.mjs +20 -0
  104. package/esm2020/lib/draw/index.mjs +3 -0
  105. package/esm2020/lib/draw/shared/draw-icon.service.mjs +27 -0
  106. package/esm2020/lib/draw/shared/draw-style.service.mjs +173 -0
  107. package/esm2020/lib/draw/shared/draw.enum.mjs +24 -0
  108. package/esm2020/lib/draw/shared/draw.interface.mjs +2 -0
  109. package/esm2020/lib/draw/shared/draw.utils.mjs +104 -0
  110. package/esm2020/lib/draw/shared/index.mjs +6 -0
  111. package/esm2020/lib/feature/feature-details/feature-details.component.mjs +377 -0
  112. package/esm2020/lib/feature/feature-details/feature-details.directive.mjs +54 -0
  113. package/esm2020/lib/feature/feature-details/feature-details.module.mjs +48 -0
  114. package/esm2020/lib/feature/feature-form/feature-form.component.mjs +112 -0
  115. package/esm2020/lib/feature/feature-form/feature-form.module.mjs +34 -0
  116. package/esm2020/lib/feature/feature.module.mjs +28 -0
  117. package/esm2020/lib/feature/index.mjs +4 -0
  118. package/esm2020/lib/feature/shared/feature.enums.mjs +9 -0
  119. package/esm2020/lib/feature/shared/feature.interfaces.mjs +2 -0
  120. package/esm2020/lib/feature/shared/feature.utils.mjs +348 -0
  121. package/esm2020/lib/feature/shared/index.mjs +7 -0
  122. package/esm2020/lib/feature/shared/store.mjs +112 -0
  123. package/esm2020/lib/feature/shared/strategies/in-map-extent.mjs +113 -0
  124. package/esm2020/lib/feature/shared/strategies/in-map-resolution.mjs +94 -0
  125. package/esm2020/lib/feature/shared/strategies/index.mjs +6 -0
  126. package/esm2020/lib/feature/shared/strategies/loading-layer.mjs +104 -0
  127. package/esm2020/lib/feature/shared/strategies/loading.mjs +133 -0
  128. package/esm2020/lib/feature/shared/strategies/selection.mjs +370 -0
  129. package/esm2020/lib/feature/shared/strategies.utils.mjs +37 -0
  130. package/esm2020/lib/filter/filter.module.mjs +289 -0
  131. package/esm2020/lib/filter/index.mjs +16 -0
  132. package/esm2020/lib/filter/ogc-filter-button/index.mjs +2 -0
  133. package/esm2020/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +140 -0
  134. package/esm2020/lib/filter/ogc-filter-form/index.mjs +2 -0
  135. package/esm2020/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +645 -0
  136. package/esm2020/lib/filter/ogc-filter-selection/index.mjs +2 -0
  137. package/esm2020/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +1302 -0
  138. package/esm2020/lib/filter/ogc-filter-time/index.mjs +3 -0
  139. package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +177 -0
  140. package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +871 -0
  141. package/esm2020/lib/filter/ogc-filterable-form/index.mjs +2 -0
  142. package/esm2020/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +59 -0
  143. package/esm2020/lib/filter/ogc-filterable-item/index.mjs +2 -0
  144. package/esm2020/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +302 -0
  145. package/esm2020/lib/filter/ogc-filterable-list/index.mjs +3 -0
  146. package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +31 -0
  147. package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +31 -0
  148. package/esm2020/lib/filter/shared/filterable-datasource.pipe.mjs +55 -0
  149. package/esm2020/lib/filter/shared/index.mjs +12 -0
  150. package/esm2020/lib/filter/shared/ogc-filter-time.service.mjs +72 -0
  151. package/esm2020/lib/filter/shared/ogc-filter.enum.mjs +30 -0
  152. package/esm2020/lib/filter/shared/ogc-filter.interface.mjs +2 -0
  153. package/esm2020/lib/filter/shared/ogc-filter.mjs +692 -0
  154. package/esm2020/lib/filter/shared/ogc-filter.service.mjs +46 -0
  155. package/esm2020/lib/filter/shared/spatial-filter.enum.mjs +23 -0
  156. package/esm2020/lib/filter/shared/spatial-filter.interface.mjs +2 -0
  157. package/esm2020/lib/filter/shared/spatial-filter.service.mjs +269 -0
  158. package/esm2020/lib/filter/shared/time-filter.enum.mjs +13 -0
  159. package/esm2020/lib/filter/shared/time-filter.interface.mjs +2 -0
  160. package/esm2020/lib/filter/shared/time-filter.service.mjs +107 -0
  161. package/esm2020/lib/filter/spatial-filter/spatial-filter-item/index.mjs +2 -0
  162. package/esm2020/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +1076 -0
  163. package/esm2020/lib/filter/spatial-filter/spatial-filter-list/index.mjs +2 -0
  164. package/esm2020/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +208 -0
  165. package/esm2020/lib/filter/spatial-filter/spatial-filter-type/index.mjs +2 -0
  166. package/esm2020/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +144 -0
  167. package/esm2020/lib/filter/time-filter-button/index.mjs +2 -0
  168. package/esm2020/lib/filter/time-filter-button/time-filter-button.component.mjs +78 -0
  169. package/esm2020/lib/filter/time-filter-form/index.mjs +2 -0
  170. package/esm2020/lib/filter/time-filter-form/time-filter-form.component.mjs +734 -0
  171. package/esm2020/lib/filter/time-filter-item/index.mjs +2 -0
  172. package/esm2020/lib/filter/time-filter-item/time-filter-item.component.mjs +119 -0
  173. package/esm2020/lib/filter/time-filter-list/index.mjs +3 -0
  174. package/esm2020/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +31 -0
  175. package/esm2020/lib/filter/time-filter-list/time-filter-list.component.mjs +39 -0
  176. package/esm2020/lib/geo.module.mjs +102 -0
  177. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +511 -0
  178. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +189 -0
  179. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +64 -0
  180. package/esm2020/lib/geometry/geometry.module.mjs +27 -0
  181. package/esm2020/lib/geometry/index.mjs +4 -0
  182. package/esm2020/lib/geometry/shared/controls/draw.mjs +271 -0
  183. package/esm2020/lib/geometry/shared/controls/index.mjs +4 -0
  184. package/esm2020/lib/geometry/shared/controls/modify.mjs +521 -0
  185. package/esm2020/lib/geometry/shared/controls/slice.mjs +177 -0
  186. package/esm2020/lib/geometry/shared/geometry.errors.mjs +26 -0
  187. package/esm2020/lib/geometry/shared/geometry.interfaces.mjs +2 -0
  188. package/esm2020/lib/geometry/shared/geometry.utils.mjs +122 -0
  189. package/esm2020/lib/geometry/shared/index.mjs +5 -0
  190. package/esm2020/lib/import-export/export-button/export-button.component.mjs +64 -0
  191. package/esm2020/lib/import-export/export-button/index.mjs +2 -0
  192. package/esm2020/lib/import-export/import-export/import-export.component.mjs +1190 -0
  193. package/esm2020/lib/import-export/import-export/index.mjs +2 -0
  194. package/esm2020/lib/import-export/import-export.module.mjs +93 -0
  195. package/esm2020/lib/import-export/index.mjs +5 -0
  196. package/esm2020/lib/import-export/shared/drop-geo-file.directive.mjs +135 -0
  197. package/esm2020/lib/import-export/shared/export.errors.mjs +15 -0
  198. package/esm2020/lib/import-export/shared/export.interface.mjs +2 -0
  199. package/esm2020/lib/import-export/shared/export.service.mjs +195 -0
  200. package/esm2020/lib/import-export/shared/export.type.mjs +4 -0
  201. package/esm2020/lib/import-export/shared/export.utils.mjs +55 -0
  202. package/esm2020/lib/import-export/shared/import.errors.mjs +39 -0
  203. package/esm2020/lib/import-export/shared/import.interface.mjs +2 -0
  204. package/esm2020/lib/import-export/shared/import.service.mjs +195 -0
  205. package/esm2020/lib/import-export/shared/import.utils.mjs +234 -0
  206. package/esm2020/lib/import-export/shared/index.mjs +11 -0
  207. package/esm2020/lib/import-export/style-list/index.mjs +5 -0
  208. package/esm2020/lib/import-export/style-list/style-list.interface.mjs +2 -0
  209. package/esm2020/lib/import-export/style-list/style-list.module.mjs +23 -0
  210. package/esm2020/lib/import-export/style-list/style-list.provider.mjs +21 -0
  211. package/esm2020/lib/import-export/style-list/style-list.service.mjs +51 -0
  212. package/esm2020/lib/layer/index.mjs +10 -0
  213. package/esm2020/lib/layer/layer-item/index.mjs +2 -0
  214. package/esm2020/lib/layer/layer-item/layer-item.component.mjs +300 -0
  215. package/esm2020/lib/layer/layer-legend/index.mjs +2 -0
  216. package/esm2020/lib/layer/layer-legend/layer-legend.component.mjs +382 -0
  217. package/esm2020/lib/layer/layer-legend-item/index.mjs +2 -0
  218. package/esm2020/lib/layer/layer-legend-item/layer-legend-item.component.mjs +84 -0
  219. package/esm2020/lib/layer/layer-legend-list/index.mjs +3 -0
  220. package/esm2020/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +48 -0
  221. package/esm2020/lib/layer/layer-legend-list/layer-legend-list.component.mjs +195 -0
  222. package/esm2020/lib/layer/layer-list/index.mjs +4 -0
  223. package/esm2020/lib/layer/layer-list/layer-list-binding.directive.mjs +59 -0
  224. package/esm2020/lib/layer/layer-list/layer-list.component.mjs +1024 -0
  225. package/esm2020/lib/layer/layer-list/layer-list.enum.mjs +19 -0
  226. package/esm2020/lib/layer/layer-list-tool/index.mjs +5 -0
  227. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.component.mjs +165 -0
  228. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.enum.mjs +7 -0
  229. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.interface.mjs +2 -0
  230. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.service.mjs +22 -0
  231. package/esm2020/lib/layer/layer.module.mjs +173 -0
  232. package/esm2020/lib/layer/shared/clusterParam.mjs +2 -0
  233. package/esm2020/lib/layer/shared/index.mjs +7 -0
  234. package/esm2020/lib/layer/shared/layer.enums.mjs +2 -0
  235. package/esm2020/lib/layer/shared/layer.service.mjs +186 -0
  236. package/esm2020/lib/layer/shared/layers/any-layer.interface.mjs +2 -0
  237. package/esm2020/lib/layer/shared/layers/any-layer.mjs +2 -0
  238. package/esm2020/lib/layer/shared/layers/image-layer.interface.mjs +2 -0
  239. package/esm2020/lib/layer/shared/layers/image-layer.mjs +68 -0
  240. package/esm2020/lib/layer/shared/layers/index.mjs +13 -0
  241. package/esm2020/lib/layer/shared/layers/layer.interface.mjs +17 -0
  242. package/esm2020/lib/layer/shared/layers/layer.mjs +170 -0
  243. package/esm2020/lib/layer/shared/layers/tile-layer.interface.mjs +2 -0
  244. package/esm2020/lib/layer/shared/layers/tile-layer.mjs +47 -0
  245. package/esm2020/lib/layer/shared/layers/vector-layer.interface.mjs +2 -0
  246. package/esm2020/lib/layer/shared/layers/vector-layer.mjs +376 -0
  247. package/esm2020/lib/layer/shared/layers/vectortile-layer.interface.mjs +2 -0
  248. package/esm2020/lib/layer/shared/layers/vectortile-layer.mjs +104 -0
  249. package/esm2020/lib/layer/shared/style.service.mjs +356 -0
  250. package/esm2020/lib/layer/shared/vector-style.interface.mjs +2 -0
  251. package/esm2020/lib/layer/track-feature-button/index.mjs +2 -0
  252. package/esm2020/lib/layer/track-feature-button/track-feature-button.component.mjs +59 -0
  253. package/esm2020/lib/layer/utils/image-watcher.mjs +62 -0
  254. package/esm2020/lib/layer/utils/index.mjs +7 -0
  255. package/esm2020/lib/layer/utils/layer.utils.mjs +10 -0
  256. package/esm2020/lib/layer/utils/layerSync-watcher.mjs +242 -0
  257. package/esm2020/lib/layer/utils/outputLegend.mjs +27 -0
  258. package/esm2020/lib/layer/utils/tile-watcher.mjs +50 -0
  259. package/esm2020/lib/layer/utils/vector-watcher.mjs +48 -0
  260. package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.animation.mjs +20 -0
  261. package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +97 -0
  262. package/esm2020/lib/map/baselayers-switcher/index.mjs +3 -0
  263. package/esm2020/lib/map/baselayers-switcher/mini-basemap.component.mjs +133 -0
  264. package/esm2020/lib/map/geolocate-button/geolocate-button.component.mjs +76 -0
  265. package/esm2020/lib/map/geolocate-button/index.mjs +2 -0
  266. package/esm2020/lib/map/home-extent-button/home-extent-button.component.mjs +63 -0
  267. package/{esm2015/lib/map/home-extent-button/index.js → esm2020/lib/map/home-extent-button/index.mjs} +0 -0
  268. package/esm2020/lib/map/index.mjs +14 -0
  269. package/esm2020/lib/map/info-section/index.mjs +2 -0
  270. package/esm2020/lib/map/info-section/info-section.component.mjs +30 -0
  271. package/esm2020/lib/map/map-browser/index.mjs +2 -0
  272. package/esm2020/lib/map/map-browser/map-browser.component.mjs +66 -0
  273. package/esm2020/lib/map/map-center/index.mjs +2 -0
  274. package/esm2020/lib/map/map-center/map-center.component.mjs +50 -0
  275. package/esm2020/lib/map/map.module.mjs +127 -0
  276. package/esm2020/lib/map/menu-button/index.mjs +2 -0
  277. package/esm2020/lib/map/menu-button/menu-button.component.mjs +62 -0
  278. package/esm2020/lib/map/offline-button/index.mjs +2 -0
  279. package/esm2020/lib/map/offline-button/offline-button.component.mjs +76 -0
  280. package/esm2020/lib/map/rotation-button/index.mjs +2 -0
  281. package/esm2020/lib/map/rotation-button/rotation-button.component.mjs +91 -0
  282. package/esm2020/lib/map/shared/controllers/controller.mjs +42 -0
  283. package/esm2020/lib/map/shared/controllers/geolocation.mjs +308 -0
  284. package/esm2020/lib/map/shared/controllers/index.mjs +4 -0
  285. package/esm2020/lib/map/shared/controllers/view.mjs +342 -0
  286. package/esm2020/lib/map/shared/hover-feature.directive.mjs +506 -0
  287. package/esm2020/lib/map/shared/index.mjs +13 -0
  288. package/esm2020/lib/map/shared/map-pointer-position.directive.mjs +107 -0
  289. package/esm2020/lib/map/shared/map.enums.mjs +6 -0
  290. package/esm2020/lib/map/shared/map.interface.mjs +2 -0
  291. package/esm2020/lib/map/shared/map.mjs +417 -0
  292. package/esm2020/lib/map/shared/map.service.mjs +29 -0
  293. package/esm2020/lib/map/shared/map.utils.mjs +459 -0
  294. package/esm2020/lib/map/shared/mapOffline.directive.mjs +163 -0
  295. package/esm2020/lib/map/shared/projection.interfaces.mjs +2 -0
  296. package/esm2020/lib/map/shared/projection.service.mjs +65 -0
  297. package/esm2020/lib/map/shared/projection.utils.mjs +64 -0
  298. package/esm2020/lib/map/swipe-control/index.mjs +2 -0
  299. package/esm2020/lib/map/swipe-control/swipe-control.component.mjs +193 -0
  300. package/esm2020/lib/map/utils/layer-watcher.mjs +58 -0
  301. package/esm2020/lib/map/wake-lock-button/index.mjs +2 -0
  302. package/esm2020/lib/map/wake-lock-button/wake-lock-button.component.mjs +114 -0
  303. package/esm2020/lib/map/zoom-button/index.mjs +2 -0
  304. package/esm2020/lib/map/zoom-button/zoom-button.component.mjs +40 -0
  305. package/esm2020/lib/measure/index.mjs +4 -0
  306. package/esm2020/lib/measure/measure.module.mjs +20 -0
  307. package/esm2020/lib/measure/measurer/measure-format.pipe.mjs +37 -0
  308. package/esm2020/lib/measure/measurer/measurer-dialog.component.mjs +180 -0
  309. package/esm2020/lib/measure/measurer/measurer-item.component.mjs +140 -0
  310. package/esm2020/lib/measure/measurer/measurer.component.mjs +1042 -0
  311. package/esm2020/lib/measure/measurer/measurer.module.mjs +94 -0
  312. package/esm2020/lib/measure/shared/index.mjs +4 -0
  313. package/esm2020/lib/measure/shared/measure.enum.mjs +37 -0
  314. package/esm2020/lib/measure/shared/measure.interfaces.mjs +2 -0
  315. package/esm2020/lib/measure/shared/measure.utils.mjs +489 -0
  316. package/esm2020/lib/metadata/index.mjs +3 -0
  317. package/esm2020/lib/metadata/metadata-button/index.mjs +2 -0
  318. package/esm2020/lib/metadata/metadata-button/metadata-button.component.mjs +134 -0
  319. package/esm2020/lib/metadata/metadata.module.mjs +55 -0
  320. package/esm2020/lib/metadata/shared/index.mjs +3 -0
  321. package/esm2020/lib/metadata/shared/metadata.interface.mjs +2 -0
  322. package/esm2020/lib/metadata/shared/metadata.service.mjs +19 -0
  323. package/esm2020/lib/offline/geoDB/geoDB.enums.mjs +6 -0
  324. package/esm2020/lib/offline/geoDB/geoDB.interface.mjs +2 -0
  325. package/esm2020/lib/offline/geoDB/geoDB.service.mjs +161 -0
  326. package/esm2020/lib/offline/geoDB/index.mjs +4 -0
  327. package/esm2020/lib/offline/index.mjs +3 -0
  328. package/esm2020/lib/offline/shared/geo-network.service.mjs +66 -0
  329. package/esm2020/lib/offline/shared/index.mjs +2 -0
  330. package/esm2020/lib/overlay/index.mjs +2 -0
  331. package/esm2020/lib/overlay/overlay.module.mjs +23 -0
  332. package/esm2020/lib/overlay/shared/index.mjs +7 -0
  333. package/esm2020/lib/overlay/shared/overlay-marker-style.utils.mjs +69 -0
  334. package/esm2020/lib/overlay/shared/overlay.directive.mjs +33 -0
  335. package/esm2020/lib/overlay/shared/overlay.enum.mjs +8 -0
  336. package/esm2020/lib/overlay/shared/overlay.mjs +130 -0
  337. package/esm2020/lib/overlay/shared/overlay.service.mjs +27 -0
  338. package/esm2020/lib/overlay/shared/overlay.utils.mjs +103 -0
  339. package/esm2020/lib/print/index.mjs +4 -0
  340. package/esm2020/lib/print/print/print.component.mjs +123 -0
  341. package/esm2020/lib/print/print-form/index.mjs +2 -0
  342. package/esm2020/lib/print/print-form/print-form.component.mjs +405 -0
  343. package/esm2020/lib/print/print.module.mjs +65 -0
  344. package/esm2020/lib/print/shared/index.mjs +4 -0
  345. package/esm2020/lib/print/shared/print.interface.mjs +2 -0
  346. package/esm2020/lib/print/shared/print.service.mjs +807 -0
  347. package/esm2020/lib/print/shared/print.type.mjs +30 -0
  348. package/esm2020/lib/query/index.mjs +2 -0
  349. package/esm2020/lib/query/query.module.mjs +29 -0
  350. package/esm2020/lib/query/shared/index.mjs +7 -0
  351. package/esm2020/lib/query/shared/query-search-source.mjs +35 -0
  352. package/esm2020/lib/query/shared/query-search-source.providers.mjs +22 -0
  353. package/esm2020/lib/query/shared/query.directive.mjs +261 -0
  354. package/esm2020/lib/query/shared/query.enums.mjs +30 -0
  355. package/esm2020/lib/query/shared/query.interfaces.mjs +2 -0
  356. package/esm2020/lib/query/shared/query.service.mjs +613 -0
  357. package/esm2020/lib/query/shared/query.utils.mjs +37 -0
  358. package/esm2020/lib/search/index.mjs +12 -0
  359. package/esm2020/lib/search/search-bar/search-bar.component.mjs +489 -0
  360. package/esm2020/lib/search/search-bar/search-bar.module.mjs +75 -0
  361. package/esm2020/lib/search/search-bar/search-url-param.directive.mjs +35 -0
  362. package/esm2020/lib/search/search-results/search-results-add-button.component.mjs +193 -0
  363. package/esm2020/lib/search/search-results/search-results-item.component.mjs +124 -0
  364. package/esm2020/lib/search/search-results/search-results.component.mjs +331 -0
  365. package/esm2020/lib/search/search-results/search-results.module.mjs +77 -0
  366. package/esm2020/lib/search/search-selector/search-selector.component.mjs +123 -0
  367. package/esm2020/lib/search/search-selector/search-selector.module.mjs +56 -0
  368. package/esm2020/lib/search/search-settings/search-settings.component.mjs +418 -0
  369. package/esm2020/lib/search/search-settings/search-settings.module.mjs +60 -0
  370. package/esm2020/lib/search/search.module.mjs +67 -0
  371. package/esm2020/lib/search/shared/index.mjs +9 -0
  372. package/esm2020/lib/search/shared/search-pointer-summary.directive.mjs +322 -0
  373. package/esm2020/lib/search/shared/search-source-service.providers.mjs +20 -0
  374. package/esm2020/lib/search/shared/search-source.service.mjs +47 -0
  375. package/esm2020/lib/search/shared/search.enums.mjs +4 -0
  376. package/esm2020/lib/search/shared/search.interfaces.mjs +2 -0
  377. package/esm2020/lib/search/shared/search.service.mjs +118 -0
  378. package/esm2020/lib/search/shared/search.utils.mjs +78 -0
  379. package/esm2020/lib/search/shared/sources/cadastre.mjs +126 -0
  380. package/esm2020/lib/search/shared/sources/cadastre.providers.mjs +23 -0
  381. package/esm2020/lib/search/shared/sources/coordinates.interfaces.mjs +2 -0
  382. package/esm2020/lib/search/shared/sources/coordinates.mjs +147 -0
  383. package/esm2020/lib/search/shared/sources/coordinates.providers.mjs +40 -0
  384. package/esm2020/lib/search/shared/sources/icherche.interfaces.mjs +2 -0
  385. package/esm2020/lib/search/shared/sources/icherche.mjs +755 -0
  386. package/esm2020/lib/search/shared/sources/icherche.providers.mjs +66 -0
  387. package/esm2020/lib/search/shared/sources/ilayer.interfaces.mjs +2 -0
  388. package/esm2020/lib/search/shared/sources/ilayer.mjs +320 -0
  389. package/esm2020/lib/search/shared/sources/ilayer.providers.mjs +40 -0
  390. package/esm2020/lib/search/shared/sources/index.mjs +20 -0
  391. package/esm2020/lib/search/shared/sources/nominatim.interfaces.mjs +2 -0
  392. package/esm2020/lib/search/shared/sources/nominatim.mjs +253 -0
  393. package/esm2020/lib/search/shared/sources/nominatim.providers.mjs +23 -0
  394. package/esm2020/lib/search/shared/sources/source.interfaces.mjs +2 -0
  395. package/esm2020/lib/search/shared/sources/source.mjs +179 -0
  396. package/esm2020/lib/search/shared/sources/storedqueries.interfaces.mjs +2 -0
  397. package/esm2020/lib/search/shared/sources/storedqueries.mjs +425 -0
  398. package/esm2020/lib/search/shared/sources/storedqueries.providers.mjs +41 -0
  399. package/esm2020/lib/toast/index.mjs +2 -0
  400. package/esm2020/lib/toast/toast.component.mjs +113 -0
  401. package/esm2020/lib/toast/toast.module.mjs +45 -0
  402. package/esm2020/lib/utils/commonVectorStyle.interface.mjs +2 -0
  403. package/esm2020/lib/utils/commonVectorStyle.mjs +75 -0
  404. package/esm2020/lib/utils/googleLinks.mjs +13 -0
  405. package/esm2020/lib/utils/id-generator.mjs +110 -0
  406. package/esm2020/lib/utils/index.mjs +6 -0
  407. package/esm2020/lib/utils/osmLinks.mjs +10 -0
  408. package/esm2020/lib/wkt/index.mjs +2 -0
  409. package/esm2020/lib/wkt/shared/index.mjs +2 -0
  410. package/esm2020/lib/wkt/shared/wkt.service.mjs +239 -0
  411. package/esm2020/lib/wkt/wkt.module.mjs +22 -0
  412. package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +48 -0
  413. package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +36 -0
  414. package/esm2020/lib/workspace/confirmation-popup/index.mjs +3 -0
  415. package/esm2020/lib/workspace/index.mjs +8 -0
  416. package/esm2020/lib/workspace/shared/edition-workspace.mjs +278 -0
  417. package/esm2020/lib/workspace/shared/edition-workspace.service.mjs +642 -0
  418. package/esm2020/lib/workspace/shared/feature-workspace.mjs +35 -0
  419. package/esm2020/lib/workspace/shared/feature-workspace.service.mjs +150 -0
  420. package/esm2020/lib/workspace/shared/index.mjs +8 -0
  421. package/esm2020/lib/workspace/shared/wfs-workspace.mjs +35 -0
  422. package/esm2020/lib/workspace/shared/wfs-workspace.service.mjs +150 -0
  423. package/esm2020/lib/workspace/shared/wms-workspace.service.mjs +261 -0
  424. package/esm2020/lib/workspace/shared/workspace.utils.mjs +24 -0
  425. package/esm2020/lib/workspace/widgets/index.mjs +4 -0
  426. package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +47 -0
  427. package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +36 -0
  428. package/esm2020/lib/workspace/widgets/widgets.mjs +15 -0
  429. package/esm2020/lib/workspace/workspace-selector/workspace-selector.directive.mjs +133 -0
  430. package/esm2020/lib/workspace/workspace-selector/workspace-selector.module.mjs +28 -0
  431. package/esm2020/lib/workspace/workspace-updator/workspace-updator.directive.mjs +113 -0
  432. package/esm2020/lib/workspace/workspace-updator/workspace-updator.module.mjs +28 -0
  433. package/esm2020/lib/workspace/workspace.module.mjs +62 -0
  434. package/esm2020/public_api.mjs +55 -0
  435. package/fesm2015/igo2-geo.mjs +42904 -0
  436. package/fesm2015/igo2-geo.mjs.map +1 -0
  437. package/fesm2020/igo2-geo.mjs +41183 -0
  438. package/fesm2020/igo2-geo.mjs.map +1 -0
  439. package/{igo2-geo.d.ts → index.d.ts} +0 -0
  440. package/lib/catalog/catalog-browser/catalog-browser-group.component.d.ts +1 -1
  441. package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +1 -1
  442. package/lib/catalog/catalog-browser/catalog-browser.component.d.ts +1 -1
  443. package/lib/catalog/catalog-library/add-catalog-dialog.component.d.ts +4 -4
  444. package/lib/catalog/catalog-library/catalog-library-item.component.d.ts +1 -1
  445. package/lib/catalog/catalog-library/catalog-library.component.d.ts +1 -1
  446. package/lib/directions/directions-buttons/directions-buttons.component.d.ts +1 -1
  447. package/lib/directions/directions-inputs/directions-inputs.component.d.ts +1 -1
  448. package/lib/directions/directions-results/directions-results.component.d.ts +1 -1
  449. package/lib/directions/directions.component.d.ts +1 -1
  450. package/lib/download/download-button/download-button.component.d.ts +1 -1
  451. package/lib/draw/draw/draw-popup.component.d.ts +1 -1
  452. package/lib/draw/draw/draw-shorcuts.component.d.ts +1 -1
  453. package/lib/draw/draw/draw.component.d.ts +4 -4
  454. package/lib/feature/feature-details/feature-details.component.d.ts +1 -1
  455. package/lib/feature/feature-details/feature-details.directive.d.ts +1 -1
  456. package/lib/feature/feature-form/feature-form.component.d.ts +1 -1
  457. package/lib/feature/shared/feature.interfaces.d.ts +2 -2
  458. package/lib/filter/ogc-filter-button/ogc-filter-button.component.d.ts +1 -1
  459. package/lib/filter/ogc-filter-form/ogc-filter-form.component.d.ts +1 -1
  460. package/lib/filter/ogc-filter-selection/ogc-filter-selection.component.d.ts +4 -4
  461. package/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.d.ts +1 -1
  462. package/lib/filter/ogc-filter-time/ogc-filter-time.component.d.ts +6 -6
  463. package/lib/filter/ogc-filterable-form/ogc-filterable-form.component.d.ts +1 -1
  464. package/lib/filter/ogc-filterable-item/ogc-filterable-item.component.d.ts +1 -1
  465. package/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.d.ts +1 -1
  466. package/lib/filter/ogc-filterable-list/ogc-filterable-list.component.d.ts +1 -1
  467. package/lib/filter/shared/filterable-datasource.pipe.d.ts +1 -1
  468. package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +5 -5
  469. package/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.d.ts +4 -4
  470. package/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.d.ts +3 -3
  471. package/lib/filter/time-filter-button/time-filter-button.component.d.ts +1 -1
  472. package/lib/filter/time-filter-form/time-filter-form.component.d.ts +1 -1
  473. package/lib/filter/time-filter-item/time-filter-item.component.d.ts +1 -1
  474. package/lib/filter/time-filter-list/time-filter-list-binding.directive.d.ts +1 -1
  475. package/lib/filter/time-filter-list/time-filter-list.component.d.ts +1 -1
  476. package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +1 -1
  477. package/lib/geometry/geometry-form-field/geometry-form-field.component.d.ts +3 -3
  478. package/lib/import-export/export-button/export-button.component.d.ts +1 -1
  479. package/lib/import-export/import-export/import-export.component.d.ts +5 -5
  480. package/lib/import-export/shared/drop-geo-file.directive.d.ts +1 -1
  481. package/lib/layer/layer-item/layer-item.component.d.ts +1 -1
  482. package/lib/layer/layer-legend/layer-legend.component.d.ts +1 -1
  483. package/lib/layer/layer-legend-item/layer-legend-item.component.d.ts +1 -1
  484. package/lib/layer/layer-legend-list/layer-legend-list-binding.directive.d.ts +1 -1
  485. package/lib/layer/layer-legend-list/layer-legend-list.component.d.ts +1 -1
  486. package/lib/layer/layer-list/layer-list-binding.directive.d.ts +1 -1
  487. package/lib/layer/layer-list/layer-list.component.d.ts +1 -1
  488. package/lib/layer/layer-list-tool/layer-list-tool.component.d.ts +1 -1
  489. package/lib/layer/track-feature-button/track-feature-button.component.d.ts +1 -1
  490. package/lib/map/baselayers-switcher/baselayers-switcher.component.d.ts +1 -1
  491. package/lib/map/baselayers-switcher/mini-basemap.component.d.ts +1 -1
  492. package/lib/map/geolocate-button/geolocate-button.component.d.ts +1 -1
  493. package/lib/map/home-extent-button/home-extent-button.component.d.ts +1 -1
  494. package/lib/map/info-section/info-section.component.d.ts +1 -1
  495. package/lib/map/map-browser/map-browser.component.d.ts +1 -1
  496. package/lib/map/map-center/map-center.component.d.ts +1 -1
  497. package/lib/map/menu-button/menu-button.component.d.ts +1 -1
  498. package/lib/map/offline-button/offline-button.component.d.ts +1 -1
  499. package/lib/map/rotation-button/rotation-button.component.d.ts +1 -1
  500. package/lib/map/shared/hover-feature.directive.d.ts +1 -1
  501. package/lib/map/shared/map-pointer-position.directive.d.ts +1 -1
  502. package/lib/map/shared/mapOffline.directive.d.ts +1 -1
  503. package/lib/map/swipe-control/swipe-control.component.d.ts +1 -1
  504. package/lib/map/wake-lock-button/wake-lock-button.component.d.ts +1 -1
  505. package/lib/map/zoom-button/zoom-button.component.d.ts +1 -1
  506. package/lib/measure/measurer/measure-format.pipe.d.ts +1 -1
  507. package/lib/measure/measurer/measurer-dialog.component.d.ts +1 -1
  508. package/lib/measure/measurer/measurer-item.component.d.ts +1 -1
  509. package/lib/measure/measurer/measurer.component.d.ts +1 -1
  510. package/lib/metadata/metadata-button/metadata-button.component.d.ts +2 -2
  511. package/lib/overlay/shared/overlay.directive.d.ts +1 -1
  512. package/lib/print/print/print.component.d.ts +1 -1
  513. package/lib/print/print-form/print-form.component.d.ts +17 -17
  514. package/lib/print/shared/print.service.d.ts +6 -1
  515. package/lib/query/shared/query.directive.d.ts +1 -1
  516. package/lib/search/search-bar/search-bar.component.d.ts +1 -1
  517. package/lib/search/search-bar/search-url-param.directive.d.ts +1 -1
  518. package/lib/search/search-results/search-results-add-button.component.d.ts +1 -1
  519. package/lib/search/search-results/search-results-item.component.d.ts +1 -1
  520. package/lib/search/search-results/search-results.component.d.ts +1 -1
  521. package/lib/search/search-selector/search-selector.component.d.ts +1 -1
  522. package/lib/search/search-settings/search-settings.component.d.ts +1 -1
  523. package/lib/search/shared/search-pointer-summary.directive.d.ts +1 -1
  524. package/lib/toast/toast.component.d.ts +1 -1
  525. package/lib/wkt/shared/wkt.service.d.ts +1 -1
  526. package/lib/workspace/confirmation-popup/confirmation-popup.component.d.ts +1 -1
  527. package/lib/workspace/widgets/ogc-filter/ogc-filter.component.d.ts +1 -1
  528. package/lib/workspace/workspace-selector/workspace-selector.directive.d.ts +1 -1
  529. package/lib/workspace/workspace-updator/workspace-updator.directive.d.ts +1 -1
  530. package/ngcc.config.js +3 -3
  531. package/package.json +32 -19
  532. package/style/geo.theming.scss +12 -12
  533. package/bundles/igo2-geo.umd.js +0 -47639
  534. package/bundles/igo2-geo.umd.js.map +0 -1
  535. package/esm2015/lib/catalog/catalog-browser/catalog-browser-group.component.js +0 -305
  536. package/esm2015/lib/catalog/catalog-browser/catalog-browser-layer.component.js +0 -274
  537. package/esm2015/lib/catalog/catalog-browser/catalog-browser.component.js +0 -248
  538. package/esm2015/lib/catalog/catalog-browser/catalog-browser.module.js +0 -82
  539. package/esm2015/lib/catalog/catalog-library/add-catalog-dialog.component.js +0 -235
  540. package/esm2015/lib/catalog/catalog-library/catalog-library-item.component.js +0 -85
  541. package/esm2015/lib/catalog/catalog-library/catalog-library.component.js +0 -224
  542. package/esm2015/lib/catalog/catalog-library/catalog-library.module.js +0 -97
  543. package/esm2015/lib/catalog/catalog.module.js +0 -55
  544. package/esm2015/lib/catalog/index.js +0 -5
  545. package/esm2015/lib/catalog/shared/catalog.abstract.js +0 -95
  546. package/esm2015/lib/catalog/shared/catalog.enum.js +0 -16
  547. package/esm2015/lib/catalog/shared/catalog.interface.js +0 -2
  548. package/esm2015/lib/catalog/shared/catalog.service.js +0 -606
  549. package/esm2015/lib/catalog/shared/index.js +0 -5
  550. package/esm2015/lib/datasource/datasource.module.js +0 -22
  551. package/esm2015/lib/datasource/index.js +0 -3
  552. package/esm2015/lib/datasource/shared/capabilities.service.js +0 -427
  553. package/esm2015/lib/datasource/shared/datasource.service.js +0 -236
  554. package/esm2015/lib/datasource/shared/datasources/any-datasource.interface.js +0 -2
  555. package/esm2015/lib/datasource/shared/datasources/any-datasource.js +0 -2
  556. package/esm2015/lib/datasource/shared/datasources/arcgisrest-datasource.interface.js +0 -2
  557. package/esm2015/lib/datasource/shared/datasources/arcgisrest-datasource.js +0 -145
  558. package/esm2015/lib/datasource/shared/datasources/carto-datasource.interface.js +0 -2
  559. package/esm2015/lib/datasource/shared/datasources/carto-datasource.js +0 -109
  560. package/esm2015/lib/datasource/shared/datasources/cluster-datasource.interface.js +0 -2
  561. package/esm2015/lib/datasource/shared/datasources/cluster-datasource.js +0 -15
  562. package/esm2015/lib/datasource/shared/datasources/data.service.js +0 -3
  563. package/esm2015/lib/datasource/shared/datasources/datasource.interface.js +0 -2
  564. package/esm2015/lib/datasource/shared/datasources/datasource.js +0 -29
  565. package/esm2015/lib/datasource/shared/datasources/feature-datasource.interface.js +0 -2
  566. package/esm2015/lib/datasource/shared/datasources/feature-datasource.js +0 -43
  567. package/esm2015/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.js +0 -2
  568. package/esm2015/lib/datasource/shared/datasources/imagearcgisrest-datasource.js +0 -57
  569. package/esm2015/lib/datasource/shared/datasources/index.js +0 -36
  570. package/esm2015/lib/datasource/shared/datasources/mvt-datasource.interface.js +0 -2
  571. package/esm2015/lib/datasource/shared/datasources/mvt-datasource.js +0 -28
  572. package/esm2015/lib/datasource/shared/datasources/osm-datasource.interface.js +0 -2
  573. package/esm2015/lib/datasource/shared/datasources/osm-datasource.js +0 -12
  574. package/esm2015/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.js +0 -2
  575. package/esm2015/lib/datasource/shared/datasources/tilearcgisrest-datasource.js +0 -49
  576. package/esm2015/lib/datasource/shared/datasources/tiledebug-datasource.interface.js +0 -2
  577. package/esm2015/lib/datasource/shared/datasources/tiledebug-datasource.js +0 -15
  578. package/esm2015/lib/datasource/shared/datasources/websocket-datasource.interface.js +0 -2
  579. package/esm2015/lib/datasource/shared/datasources/websocket-datasource.js +0 -54
  580. package/esm2015/lib/datasource/shared/datasources/wfs-datasource.interface.js +0 -2
  581. package/esm2015/lib/datasource/shared/datasources/wfs-datasource.js +0 -74
  582. package/esm2015/lib/datasource/shared/datasources/wfs.service.js +0 -153
  583. package/esm2015/lib/datasource/shared/datasources/wms-datasource.interface.js +0 -2
  584. package/esm2015/lib/datasource/shared/datasources/wms-datasource.js +0 -205
  585. package/esm2015/lib/datasource/shared/datasources/wms-wfs.utils.js +0 -207
  586. package/esm2015/lib/datasource/shared/datasources/wmts-datasource.interface.js +0 -2
  587. package/esm2015/lib/datasource/shared/datasources/wmts-datasource.js +0 -16
  588. package/esm2015/lib/datasource/shared/datasources/xyz-datasource.interface.js +0 -2
  589. package/esm2015/lib/datasource/shared/datasources/xyz-datasource.js +0 -9
  590. package/esm2015/lib/datasource/shared/index.js +0 -5
  591. package/esm2015/lib/datasource/shared/options/index.js +0 -5
  592. package/esm2015/lib/datasource/shared/options/options-api.interface.js +0 -2
  593. package/esm2015/lib/datasource/shared/options/options-api.providers.js +0 -15
  594. package/esm2015/lib/datasource/shared/options/options-api.service.js +0 -81
  595. package/esm2015/lib/datasource/shared/options/options.service.js +0 -3
  596. package/esm2015/lib/datasource/utils/esri-style-generator.js +0 -357
  597. package/esm2015/lib/datasource/utils/index.js +0 -3
  598. package/esm2015/lib/datasource/utils/tilegrid.js +0 -20
  599. package/esm2015/lib/directions/directions-buttons/directions-buttons.component.js +0 -229
  600. package/esm2015/lib/directions/directions-buttons/index.js +0 -2
  601. package/esm2015/lib/directions/directions-inputs/directions-inputs.component.js +0 -300
  602. package/esm2015/lib/directions/directions-inputs/index.js +0 -2
  603. package/esm2015/lib/directions/directions-results/directions-results.component.js +0 -204
  604. package/esm2015/lib/directions/directions-results/index.js +0 -2
  605. package/esm2015/lib/directions/directions-sources/directions-source.interface.js +0 -2
  606. package/esm2015/lib/directions/directions-sources/directions-source.js +0 -3
  607. package/esm2015/lib/directions/directions-sources/directions-source.provider.js +0 -16
  608. package/esm2015/lib/directions/directions-sources/index.js +0 -5
  609. package/esm2015/lib/directions/directions-sources/osrm-directions-source.js +0 -99
  610. package/esm2015/lib/directions/directions.component.js +0 -316
  611. package/esm2015/lib/directions/directions.module.js +0 -104
  612. package/esm2015/lib/directions/index.js +0 -7
  613. package/esm2015/lib/directions/shared/directions-source.service.js +0 -17
  614. package/esm2015/lib/directions/shared/directions.enum.js +0 -28
  615. package/esm2015/lib/directions/shared/directions.interface.js +0 -2
  616. package/esm2015/lib/directions/shared/directions.service.js +0 -29
  617. package/esm2015/lib/directions/shared/directions.utils.js +0 -510
  618. package/esm2015/lib/directions/shared/index.js +0 -6
  619. package/esm2015/lib/directions/shared/store.js +0 -24
  620. package/esm2015/lib/download/download-button/download-button.component.js +0 -66
  621. package/esm2015/lib/download/download-button/index.js +0 -2
  622. package/esm2015/lib/download/download.module.js +0 -44
  623. package/esm2015/lib/download/index.js +0 -3
  624. package/esm2015/lib/download/shared/download.interface.js +0 -2
  625. package/esm2015/lib/download/shared/download.service.js +0 -65
  626. package/esm2015/lib/download/shared/index.js +0 -3
  627. package/esm2015/lib/draw/draw/draw-popup.component.js +0 -69
  628. package/esm2015/lib/draw/draw/draw-shorcuts.component.js +0 -64
  629. package/esm2015/lib/draw/draw/draw.component.js +0 -745
  630. package/esm2015/lib/draw/draw/draw.module.js +0 -102
  631. package/esm2015/lib/draw/drawingTool.module.js +0 -20
  632. package/esm2015/lib/draw/index.js +0 -3
  633. package/esm2015/lib/draw/shared/draw-icon.service.js +0 -27
  634. package/esm2015/lib/draw/shared/draw-style.service.js +0 -173
  635. package/esm2015/lib/draw/shared/draw.enum.js +0 -24
  636. package/esm2015/lib/draw/shared/draw.interface.js +0 -2
  637. package/esm2015/lib/draw/shared/draw.utils.js +0 -104
  638. package/esm2015/lib/draw/shared/index.js +0 -6
  639. package/esm2015/lib/feature/feature-details/feature-details.component.js +0 -393
  640. package/esm2015/lib/feature/feature-details/feature-details.directive.js +0 -54
  641. package/esm2015/lib/feature/feature-details/feature-details.module.js +0 -50
  642. package/esm2015/lib/feature/feature-form/feature-form.component.js +0 -117
  643. package/esm2015/lib/feature/feature-form/feature-form.module.js +0 -36
  644. package/esm2015/lib/feature/feature.module.js +0 -30
  645. package/esm2015/lib/feature/index.js +0 -4
  646. package/esm2015/lib/feature/shared/feature.enums.js +0 -9
  647. package/esm2015/lib/feature/shared/feature.interfaces.js +0 -2
  648. package/esm2015/lib/feature/shared/feature.utils.js +0 -348
  649. package/esm2015/lib/feature/shared/index.js +0 -7
  650. package/esm2015/lib/feature/shared/store.js +0 -112
  651. package/esm2015/lib/feature/shared/strategies/in-map-extent.js +0 -114
  652. package/esm2015/lib/feature/shared/strategies/in-map-resolution.js +0 -94
  653. package/esm2015/lib/feature/shared/strategies/index.js +0 -6
  654. package/esm2015/lib/feature/shared/strategies/loading-layer.js +0 -104
  655. package/esm2015/lib/feature/shared/strategies/loading.js +0 -133
  656. package/esm2015/lib/feature/shared/strategies/selection.js +0 -370
  657. package/esm2015/lib/feature/shared/strategies.utils.js +0 -37
  658. package/esm2015/lib/filter/filter.module.js +0 -290
  659. package/esm2015/lib/filter/index.js +0 -16
  660. package/esm2015/lib/filter/ogc-filter-button/index.js +0 -2
  661. package/esm2015/lib/filter/ogc-filter-button/ogc-filter-button.component.js +0 -161
  662. package/esm2015/lib/filter/ogc-filter-form/index.js +0 -2
  663. package/esm2015/lib/filter/ogc-filter-form/ogc-filter-form.component.js +0 -657
  664. package/esm2015/lib/filter/ogc-filter-selection/index.js +0 -2
  665. package/esm2015/lib/filter/ogc-filter-selection/ogc-filter-selection.component.js +0 -1355
  666. package/esm2015/lib/filter/ogc-filter-time/index.js +0 -3
  667. package/esm2015/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.js +0 -185
  668. package/esm2015/lib/filter/ogc-filter-time/ogc-filter-time.component.js +0 -898
  669. package/esm2015/lib/filter/ogc-filterable-form/index.js +0 -2
  670. package/esm2015/lib/filter/ogc-filterable-form/ogc-filterable-form.component.js +0 -62
  671. package/esm2015/lib/filter/ogc-filterable-item/index.js +0 -2
  672. package/esm2015/lib/filter/ogc-filterable-item/ogc-filterable-item.component.js +0 -307
  673. package/esm2015/lib/filter/ogc-filterable-list/index.js +0 -3
  674. package/esm2015/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.js +0 -31
  675. package/esm2015/lib/filter/ogc-filterable-list/ogc-filterable-list.component.js +0 -35
  676. package/esm2015/lib/filter/shared/filterable-datasource.pipe.js +0 -55
  677. package/esm2015/lib/filter/shared/index.js +0 -12
  678. package/esm2015/lib/filter/shared/ogc-filter-time.service.js +0 -73
  679. package/esm2015/lib/filter/shared/ogc-filter.enum.js +0 -30
  680. package/esm2015/lib/filter/shared/ogc-filter.interface.js +0 -2
  681. package/esm2015/lib/filter/shared/ogc-filter.js +0 -693
  682. package/esm2015/lib/filter/shared/ogc-filter.service.js +0 -46
  683. package/esm2015/lib/filter/shared/spatial-filter.enum.js +0 -23
  684. package/esm2015/lib/filter/shared/spatial-filter.interface.js +0 -2
  685. package/esm2015/lib/filter/shared/spatial-filter.service.js +0 -269
  686. package/esm2015/lib/filter/shared/time-filter.enum.js +0 -13
  687. package/esm2015/lib/filter/shared/time-filter.interface.js +0 -2
  688. package/esm2015/lib/filter/shared/time-filter.service.js +0 -107
  689. package/esm2015/lib/filter/spatial-filter/spatial-filter-item/index.js +0 -2
  690. package/esm2015/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.js +0 -1108
  691. package/esm2015/lib/filter/spatial-filter/spatial-filter-list/index.js +0 -2
  692. package/esm2015/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.js +0 -224
  693. package/esm2015/lib/filter/spatial-filter/spatial-filter-type/index.js +0 -2
  694. package/esm2015/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.js +0 -157
  695. package/esm2015/lib/filter/time-filter-button/index.js +0 -2
  696. package/esm2015/lib/filter/time-filter-button/time-filter-button.component.js +0 -83
  697. package/esm2015/lib/filter/time-filter-form/index.js +0 -2
  698. package/esm2015/lib/filter/time-filter-form/time-filter-form.component.js +0 -772
  699. package/esm2015/lib/filter/time-filter-item/index.js +0 -2
  700. package/esm2015/lib/filter/time-filter-item/time-filter-item.component.js +0 -126
  701. package/esm2015/lib/filter/time-filter-list/index.js +0 -3
  702. package/esm2015/lib/filter/time-filter-list/time-filter-list-binding.directive.js +0 -31
  703. package/esm2015/lib/filter/time-filter-list/time-filter-list.component.js +0 -43
  704. package/esm2015/lib/geo.module.js +0 -102
  705. package/esm2015/lib/geometry/geometry-form-field/geometry-form-field-input.component.js +0 -515
  706. package/esm2015/lib/geometry/geometry-form-field/geometry-form-field.component.js +0 -199
  707. package/esm2015/lib/geometry/geometry-form-field/geometry-form-field.module.js +0 -66
  708. package/esm2015/lib/geometry/geometry.module.js +0 -29
  709. package/esm2015/lib/geometry/index.js +0 -4
  710. package/esm2015/lib/geometry/shared/controls/draw.js +0 -271
  711. package/esm2015/lib/geometry/shared/controls/index.js +0 -4
  712. package/esm2015/lib/geometry/shared/controls/modify.js +0 -521
  713. package/esm2015/lib/geometry/shared/controls/slice.js +0 -177
  714. package/esm2015/lib/geometry/shared/geometry.errors.js +0 -26
  715. package/esm2015/lib/geometry/shared/geometry.interfaces.js +0 -2
  716. package/esm2015/lib/geometry/shared/geometry.utils.js +0 -122
  717. package/esm2015/lib/geometry/shared/index.js +0 -5
  718. package/esm2015/lib/import-export/export-button/export-button.component.js +0 -70
  719. package/esm2015/lib/import-export/export-button/index.js +0 -2
  720. package/esm2015/lib/import-export/import-export/import-export.component.js +0 -1238
  721. package/esm2015/lib/import-export/import-export/index.js +0 -2
  722. package/esm2015/lib/import-export/import-export.module.js +0 -95
  723. package/esm2015/lib/import-export/index.js +0 -5
  724. package/esm2015/lib/import-export/shared/drop-geo-file.directive.js +0 -136
  725. package/esm2015/lib/import-export/shared/export.errors.js +0 -15
  726. package/esm2015/lib/import-export/shared/export.interface.js +0 -2
  727. package/esm2015/lib/import-export/shared/export.service.js +0 -195
  728. package/esm2015/lib/import-export/shared/export.type.js +0 -4
  729. package/esm2015/lib/import-export/shared/export.utils.js +0 -55
  730. package/esm2015/lib/import-export/shared/import.errors.js +0 -39
  731. package/esm2015/lib/import-export/shared/import.interface.js +0 -2
  732. package/esm2015/lib/import-export/shared/import.service.js +0 -195
  733. package/esm2015/lib/import-export/shared/import.utils.js +0 -234
  734. package/esm2015/lib/import-export/shared/index.js +0 -11
  735. package/esm2015/lib/import-export/style-list/index.js +0 -5
  736. package/esm2015/lib/import-export/style-list/style-list.interface.js +0 -2
  737. package/esm2015/lib/import-export/style-list/style-list.module.js +0 -23
  738. package/esm2015/lib/import-export/style-list/style-list.provider.js +0 -21
  739. package/esm2015/lib/import-export/style-list/style-list.service.js +0 -51
  740. package/esm2015/lib/layer/index.js +0 -10
  741. package/esm2015/lib/layer/layer-item/index.js +0 -2
  742. package/esm2015/lib/layer/layer-item/layer-item.component.js +0 -305
  743. package/esm2015/lib/layer/layer-legend/index.js +0 -2
  744. package/esm2015/lib/layer/layer-legend/layer-legend.component.js +0 -395
  745. package/esm2015/lib/layer/layer-legend-item/index.js +0 -2
  746. package/esm2015/lib/layer/layer-legend-item/layer-legend-item.component.js +0 -91
  747. package/esm2015/lib/layer/layer-legend-list/index.js +0 -3
  748. package/esm2015/lib/layer/layer-legend-list/layer-legend-list-binding.directive.js +0 -48
  749. package/esm2015/lib/layer/layer-legend-list/layer-legend-list.component.js +0 -200
  750. package/esm2015/lib/layer/layer-list/index.js +0 -4
  751. package/esm2015/lib/layer/layer-list/layer-list-binding.directive.js +0 -59
  752. package/esm2015/lib/layer/layer-list/layer-list.component.js +0 -1043
  753. package/esm2015/lib/layer/layer-list/layer-list.enum.js +0 -19
  754. package/esm2015/lib/layer/layer-list-tool/index.js +0 -5
  755. package/esm2015/lib/layer/layer-list-tool/layer-list-tool.component.js +0 -176
  756. package/esm2015/lib/layer/layer-list-tool/layer-list-tool.enum.js +0 -7
  757. package/esm2015/lib/layer/layer-list-tool/layer-list-tool.interface.js +0 -2
  758. package/esm2015/lib/layer/layer-list-tool/layer-list-tool.service.js +0 -22
  759. package/esm2015/lib/layer/layer.module.js +0 -174
  760. package/esm2015/lib/layer/shared/clusterParam.js +0 -2
  761. package/esm2015/lib/layer/shared/index.js +0 -7
  762. package/esm2015/lib/layer/shared/layer.enums.js +0 -2
  763. package/esm2015/lib/layer/shared/layer.service.js +0 -186
  764. package/esm2015/lib/layer/shared/layers/any-layer.interface.js +0 -2
  765. package/esm2015/lib/layer/shared/layers/any-layer.js +0 -2
  766. package/esm2015/lib/layer/shared/layers/image-layer.interface.js +0 -2
  767. package/esm2015/lib/layer/shared/layers/image-layer.js +0 -68
  768. package/esm2015/lib/layer/shared/layers/index.js +0 -13
  769. package/esm2015/lib/layer/shared/layers/layer.interface.js +0 -17
  770. package/esm2015/lib/layer/shared/layers/layer.js +0 -169
  771. package/esm2015/lib/layer/shared/layers/tile-layer.interface.js +0 -2
  772. package/esm2015/lib/layer/shared/layers/tile-layer.js +0 -47
  773. package/esm2015/lib/layer/shared/layers/vector-layer.interface.js +0 -2
  774. package/esm2015/lib/layer/shared/layers/vector-layer.js +0 -376
  775. package/esm2015/lib/layer/shared/layers/vectortile-layer.interface.js +0 -2
  776. package/esm2015/lib/layer/shared/layers/vectortile-layer.js +0 -104
  777. package/esm2015/lib/layer/shared/style.service.js +0 -358
  778. package/esm2015/lib/layer/shared/vector-style.interface.js +0 -2
  779. package/esm2015/lib/layer/track-feature-button/index.js +0 -2
  780. package/esm2015/lib/layer/track-feature-button/track-feature-button.component.js +0 -64
  781. package/esm2015/lib/layer/utils/image-watcher.js +0 -62
  782. package/esm2015/lib/layer/utils/index.js +0 -7
  783. package/esm2015/lib/layer/utils/layer.utils.js +0 -11
  784. package/esm2015/lib/layer/utils/layerSync-watcher.js +0 -249
  785. package/esm2015/lib/layer/utils/outputLegend.js +0 -27
  786. package/esm2015/lib/layer/utils/tile-watcher.js +0 -50
  787. package/esm2015/lib/layer/utils/vector-watcher.js +0 -48
  788. package/esm2015/lib/map/baselayers-switcher/baselayers-switcher.animation.js +0 -20
  789. package/esm2015/lib/map/baselayers-switcher/baselayers-switcher.component.js +0 -105
  790. package/esm2015/lib/map/baselayers-switcher/index.js +0 -3
  791. package/esm2015/lib/map/baselayers-switcher/mini-basemap.component.js +0 -137
  792. package/esm2015/lib/map/geolocate-button/geolocate-button.component.js +0 -82
  793. package/esm2015/lib/map/geolocate-button/index.js +0 -2
  794. package/esm2015/lib/map/home-extent-button/home-extent-button.component.js +0 -69
  795. package/esm2015/lib/map/index.js +0 -14
  796. package/esm2015/lib/map/info-section/index.js +0 -2
  797. package/esm2015/lib/map/info-section/info-section.component.js +0 -36
  798. package/esm2015/lib/map/map-browser/index.js +0 -2
  799. package/esm2015/lib/map/map-browser/map-browser.component.js +0 -70
  800. package/esm2015/lib/map/map-center/index.js +0 -2
  801. package/esm2015/lib/map/map-center/map-center.component.js +0 -55
  802. package/esm2015/lib/map/map.module.js +0 -129
  803. package/esm2015/lib/map/menu-button/index.js +0 -2
  804. package/esm2015/lib/map/menu-button/menu-button.component.js +0 -66
  805. package/esm2015/lib/map/offline-button/index.js +0 -2
  806. package/esm2015/lib/map/offline-button/offline-button.component.js +0 -84
  807. package/esm2015/lib/map/rotation-button/index.js +0 -2
  808. package/esm2015/lib/map/rotation-button/rotation-button.component.js +0 -97
  809. package/esm2015/lib/map/shared/controllers/controller.js +0 -42
  810. package/esm2015/lib/map/shared/controllers/geolocation.js +0 -310
  811. package/esm2015/lib/map/shared/controllers/index.js +0 -4
  812. package/esm2015/lib/map/shared/controllers/view.js +0 -342
  813. package/esm2015/lib/map/shared/hover-feature.directive.js +0 -509
  814. package/esm2015/lib/map/shared/index.js +0 -13
  815. package/esm2015/lib/map/shared/map-pointer-position.directive.js +0 -107
  816. package/esm2015/lib/map/shared/map.enums.js +0 -6
  817. package/esm2015/lib/map/shared/map.interface.js +0 -2
  818. package/esm2015/lib/map/shared/map.js +0 -418
  819. package/esm2015/lib/map/shared/map.service.js +0 -29
  820. package/esm2015/lib/map/shared/map.utils.js +0 -459
  821. package/esm2015/lib/map/shared/mapOffline.directive.js +0 -163
  822. package/esm2015/lib/map/shared/projection.interfaces.js +0 -2
  823. package/esm2015/lib/map/shared/projection.service.js +0 -65
  824. package/esm2015/lib/map/shared/projection.utils.js +0 -64
  825. package/esm2015/lib/map/swipe-control/index.js +0 -2
  826. package/esm2015/lib/map/swipe-control/swipe-control.component.js +0 -199
  827. package/esm2015/lib/map/utils/layer-watcher.js +0 -58
  828. package/esm2015/lib/map/wake-lock-button/index.js +0 -2
  829. package/esm2015/lib/map/wake-lock-button/wake-lock-button.component.js +0 -122
  830. package/esm2015/lib/map/zoom-button/index.js +0 -2
  831. package/esm2015/lib/map/zoom-button/zoom-button.component.js +0 -46
  832. package/esm2015/lib/measure/index.js +0 -4
  833. package/esm2015/lib/measure/measure.module.js +0 -20
  834. package/esm2015/lib/measure/measurer/measure-format.pipe.js +0 -37
  835. package/esm2015/lib/measure/measurer/measurer-dialog.component.js +0 -220
  836. package/esm2015/lib/measure/measurer/measurer-item.component.js +0 -148
  837. package/esm2015/lib/measure/measurer/measurer.component.js +0 -1053
  838. package/esm2015/lib/measure/measurer/measurer.module.js +0 -96
  839. package/esm2015/lib/measure/shared/index.js +0 -4
  840. package/esm2015/lib/measure/shared/measure.enum.js +0 -37
  841. package/esm2015/lib/measure/shared/measure.interfaces.js +0 -2
  842. package/esm2015/lib/measure/shared/measure.utils.js +0 -489
  843. package/esm2015/lib/metadata/index.js +0 -3
  844. package/esm2015/lib/metadata/metadata-button/index.js +0 -2
  845. package/esm2015/lib/metadata/metadata-button/metadata-button.component.js +0 -146
  846. package/esm2015/lib/metadata/metadata.module.js +0 -57
  847. package/esm2015/lib/metadata/shared/index.js +0 -3
  848. package/esm2015/lib/metadata/shared/metadata.interface.js +0 -2
  849. package/esm2015/lib/metadata/shared/metadata.service.js +0 -19
  850. package/esm2015/lib/offline/geoDB/geoDB.enums.js +0 -6
  851. package/esm2015/lib/offline/geoDB/geoDB.interface.js +0 -2
  852. package/esm2015/lib/offline/geoDB/geoDB.service.js +0 -161
  853. package/esm2015/lib/offline/geoDB/index.js +0 -4
  854. package/esm2015/lib/offline/index.js +0 -3
  855. package/esm2015/lib/offline/shared/geo-network.service.js +0 -66
  856. package/esm2015/lib/offline/shared/index.js +0 -2
  857. package/esm2015/lib/overlay/index.js +0 -2
  858. package/esm2015/lib/overlay/overlay.module.js +0 -23
  859. package/esm2015/lib/overlay/shared/index.js +0 -7
  860. package/esm2015/lib/overlay/shared/overlay-marker-style.utils.js +0 -69
  861. package/esm2015/lib/overlay/shared/overlay.directive.js +0 -33
  862. package/esm2015/lib/overlay/shared/overlay.enum.js +0 -8
  863. package/esm2015/lib/overlay/shared/overlay.js +0 -130
  864. package/esm2015/lib/overlay/shared/overlay.service.js +0 -27
  865. package/esm2015/lib/overlay/shared/overlay.utils.js +0 -103
  866. package/esm2015/lib/print/index.js +0 -4
  867. package/esm2015/lib/print/print/print.component.js +0 -126
  868. package/esm2015/lib/print/print-form/index.js +0 -2
  869. package/esm2015/lib/print/print-form/print-form.component.js +0 -447
  870. package/esm2015/lib/print/print.module.js +0 -67
  871. package/esm2015/lib/print/shared/index.js +0 -4
  872. package/esm2015/lib/print/shared/print.interface.js +0 -2
  873. package/esm2015/lib/print/shared/print.service.js +0 -820
  874. package/esm2015/lib/print/shared/print.type.js +0 -30
  875. package/esm2015/lib/query/index.js +0 -2
  876. package/esm2015/lib/query/query.module.js +0 -29
  877. package/esm2015/lib/query/shared/index.js +0 -7
  878. package/esm2015/lib/query/shared/query-search-source.js +0 -35
  879. package/esm2015/lib/query/shared/query-search-source.providers.js +0 -22
  880. package/esm2015/lib/query/shared/query.directive.js +0 -261
  881. package/esm2015/lib/query/shared/query.enums.js +0 -30
  882. package/esm2015/lib/query/shared/query.interfaces.js +0 -2
  883. package/esm2015/lib/query/shared/query.service.js +0 -619
  884. package/esm2015/lib/query/shared/query.utils.js +0 -37
  885. package/esm2015/lib/search/index.js +0 -12
  886. package/esm2015/lib/search/search-bar/search-bar.component.js +0 -496
  887. package/esm2015/lib/search/search-bar/search-bar.module.js +0 -77
  888. package/esm2015/lib/search/search-bar/search-url-param.directive.js +0 -35
  889. package/esm2015/lib/search/search-results/search-results-add-button.component.js +0 -198
  890. package/esm2015/lib/search/search-results/search-results-item.component.js +0 -129
  891. package/esm2015/lib/search/search-results/search-results.component.js +0 -337
  892. package/esm2015/lib/search/search-results/search-results.module.js +0 -79
  893. package/esm2015/lib/search/search-selector/search-selector.component.js +0 -132
  894. package/esm2015/lib/search/search-selector/search-selector.module.js +0 -58
  895. package/esm2015/lib/search/search-settings/search-settings.component.js +0 -435
  896. package/esm2015/lib/search/search-settings/search-settings.module.js +0 -62
  897. package/esm2015/lib/search/search.module.js +0 -69
  898. package/esm2015/lib/search/shared/index.js +0 -9
  899. package/esm2015/lib/search/shared/search-pointer-summary.directive.js +0 -322
  900. package/esm2015/lib/search/shared/search-source-service.providers.js +0 -20
  901. package/esm2015/lib/search/shared/search-source.service.js +0 -47
  902. package/esm2015/lib/search/shared/search.enums.js +0 -4
  903. package/esm2015/lib/search/shared/search.interfaces.js +0 -2
  904. package/esm2015/lib/search/shared/search.service.js +0 -118
  905. package/esm2015/lib/search/shared/search.utils.js +0 -78
  906. package/esm2015/lib/search/shared/sources/cadastre.js +0 -126
  907. package/esm2015/lib/search/shared/sources/cadastre.providers.js +0 -23
  908. package/esm2015/lib/search/shared/sources/coordinates.interfaces.js +0 -2
  909. package/esm2015/lib/search/shared/sources/coordinates.js +0 -147
  910. package/esm2015/lib/search/shared/sources/coordinates.providers.js +0 -40
  911. package/esm2015/lib/search/shared/sources/icherche.interfaces.js +0 -2
  912. package/esm2015/lib/search/shared/sources/icherche.js +0 -756
  913. package/esm2015/lib/search/shared/sources/icherche.providers.js +0 -66
  914. package/esm2015/lib/search/shared/sources/ilayer.interfaces.js +0 -2
  915. package/esm2015/lib/search/shared/sources/ilayer.js +0 -320
  916. package/esm2015/lib/search/shared/sources/ilayer.providers.js +0 -40
  917. package/esm2015/lib/search/shared/sources/index.js +0 -20
  918. package/esm2015/lib/search/shared/sources/nominatim.interfaces.js +0 -2
  919. package/esm2015/lib/search/shared/sources/nominatim.js +0 -253
  920. package/esm2015/lib/search/shared/sources/nominatim.providers.js +0 -23
  921. package/esm2015/lib/search/shared/sources/source.interfaces.js +0 -2
  922. package/esm2015/lib/search/shared/sources/source.js +0 -179
  923. package/esm2015/lib/search/shared/sources/storedqueries.interfaces.js +0 -2
  924. package/esm2015/lib/search/shared/sources/storedqueries.js +0 -425
  925. package/esm2015/lib/search/shared/sources/storedqueries.providers.js +0 -41
  926. package/esm2015/lib/toast/index.js +0 -2
  927. package/esm2015/lib/toast/toast.component.js +0 -119
  928. package/esm2015/lib/toast/toast.module.js +0 -47
  929. package/esm2015/lib/utils/commonVectorStyle.interface.js +0 -2
  930. package/esm2015/lib/utils/commonVectorStyle.js +0 -75
  931. package/esm2015/lib/utils/googleLinks.js +0 -13
  932. package/esm2015/lib/utils/id-generator.js +0 -110
  933. package/esm2015/lib/utils/index.js +0 -6
  934. package/esm2015/lib/utils/osmLinks.js +0 -10
  935. package/esm2015/lib/wkt/index.js +0 -2
  936. package/esm2015/lib/wkt/shared/index.js +0 -2
  937. package/esm2015/lib/wkt/shared/wkt.service.js +0 -239
  938. package/esm2015/lib/wkt/wkt.module.js +0 -22
  939. package/esm2015/lib/workspace/confirmation-popup/confirmation-popup.component.js +0 -56
  940. package/esm2015/lib/workspace/confirmation-popup/confirmation-popup.module.js +0 -38
  941. package/esm2015/lib/workspace/confirmation-popup/index.js +0 -3
  942. package/esm2015/lib/workspace/index.js +0 -8
  943. package/esm2015/lib/workspace/shared/edition-workspace.js +0 -279
  944. package/esm2015/lib/workspace/shared/edition-workspace.service.js +0 -646
  945. package/esm2015/lib/workspace/shared/feature-workspace.js +0 -37
  946. package/esm2015/lib/workspace/shared/feature-workspace.service.js +0 -151
  947. package/esm2015/lib/workspace/shared/index.js +0 -8
  948. package/esm2015/lib/workspace/shared/wfs-workspace.js +0 -37
  949. package/esm2015/lib/workspace/shared/wfs-workspace.service.js +0 -151
  950. package/esm2015/lib/workspace/shared/wms-workspace.service.js +0 -263
  951. package/esm2015/lib/workspace/shared/workspace.utils.js +0 -24
  952. package/esm2015/lib/workspace/widgets/index.js +0 -4
  953. package/esm2015/lib/workspace/widgets/ogc-filter/ogc-filter.component.js +0 -52
  954. package/esm2015/lib/workspace/widgets/ogc-filter/ogc-filter.module.js +0 -38
  955. package/esm2015/lib/workspace/widgets/widgets.js +0 -15
  956. package/esm2015/lib/workspace/workspace-selector/workspace-selector.directive.js +0 -135
  957. package/esm2015/lib/workspace/workspace-selector/workspace-selector.module.js +0 -30
  958. package/esm2015/lib/workspace/workspace-updator/workspace-updator.directive.js +0 -116
  959. package/esm2015/lib/workspace/workspace-updator/workspace-updator.module.js +0 -30
  960. package/esm2015/lib/workspace/workspace.module.js +0 -64
  961. package/esm2015/public_api.js +0 -55
  962. package/fesm2015/igo2-geo.js +0 -42102
  963. package/fesm2015/igo2-geo.js.map +0 -1
@@ -1,521 +0,0 @@
1
- import OlFeature from 'ol/Feature';
2
- import OlVectorSource from 'ol/source/Vector';
3
- import OlVectorLayer from 'ol/layer/Vector';
4
- import OlModify from 'ol/interaction/Modify';
5
- import OlTranslate from 'ol/interaction/Translate';
6
- import OlDraw from 'ol/interaction/Draw';
7
- import OlPolygon from 'ol/geom/Polygon';
8
- import OlLinearRing from 'ol/geom/LinearRing';
9
- import OlDragBoxInteraction from 'ol/interaction/DragBox';
10
- import { unByKey } from 'ol/Observable';
11
- import { Subject, fromEvent } from 'rxjs';
12
- import { addLinearRingToOlPolygon, createDrawHoleInteractionStyle, getMousePositionFromOlGeometryEvent } from '../geometry.utils';
13
- /**
14
- * Control to modify geometries
15
- */
16
- export class ModifyControl {
17
- constructor(options) {
18
- this.options = options;
19
- /**
20
- * Modify start observable
21
- */
22
- this.start$ = new Subject();
23
- /**
24
- * Modify end observable
25
- */
26
- this.end$ = new Subject();
27
- /**
28
- * Geometry changes observable
29
- */
30
- this.changes$ = new Subject();
31
- this.olModifyInteractionIsActive = false;
32
- this.olTranslateInteractionIsActive = false;
33
- this.olDrawInteractionIsActive = false;
34
- this.removedOlInteractions = [];
35
- /**
36
- * Whether a modify control should be available
37
- */
38
- this.modify = true;
39
- /**
40
- * Whether a translate control should be available
41
- */
42
- this.translate = true;
43
- if (options.modify !== undefined) {
44
- this.modify = options.modify;
45
- }
46
- if (options.translate !== undefined) {
47
- this.translate = options.translate;
48
- }
49
- if (options.layer !== undefined) {
50
- this.olOverlayLayer = options.layer;
51
- }
52
- else {
53
- this.olOverlayLayer = this.createOlInnerOverlayLayer();
54
- }
55
- this.olLinearRingsLayer = this.createOlLinearRingsLayer();
56
- }
57
- /**
58
- * Wheter the control is active
59
- */
60
- get active() {
61
- return this.olMap !== undefined;
62
- }
63
- /**
64
- * OL overlay source
65
- * @internal
66
- */
67
- get olOverlaySource() {
68
- return this.olOverlayLayer.getSource();
69
- }
70
- /**
71
- * OL linear rings source
72
- * @internal
73
- */
74
- get olLinearRingsSource() {
75
- return this.olLinearRingsLayer.getSource();
76
- }
77
- /**
78
- * Add or remove this control to/from a map.
79
- * @param map OL Map
80
- */
81
- setOlMap(olMap) {
82
- if (olMap === undefined) {
83
- this.clearOlInnerOverlaySource();
84
- this.removeOlInnerOverlayLayer();
85
- this.removeOlModifyInteraction();
86
- this.removeOlTranslateInteraction();
87
- this.removeOlDrawInteraction();
88
- this.olMap = olMap;
89
- return;
90
- }
91
- this.olMap = olMap;
92
- this.addOlInnerOverlayLayer();
93
- // The order in which these interactions
94
- // are added is important
95
- if (this.modify === true) {
96
- this.addOlDrawInteraction();
97
- }
98
- if (this.translate === true) {
99
- this.addOlTranslateInteraction();
100
- this.activateTranslateInteraction();
101
- }
102
- if (this.modify === true) {
103
- this.addOlModifyInteraction();
104
- this.activateModifyInteraction();
105
- }
106
- }
107
- /**
108
- * Return the overlay source
109
- */
110
- getSource() {
111
- return this.olOverlaySource;
112
- }
113
- /**
114
- * Add an OL geometry to the overlay and start modifying it
115
- * @param olGeometry Ol Geometry
116
- */
117
- setOlGeometry(olGeometry) {
118
- const olFeature = new OlFeature({ geometry: olGeometry });
119
- this.olOverlaySource.clear();
120
- this.olOverlaySource.addFeature(olFeature);
121
- }
122
- /**
123
- * Create an overlay source if none is defined in the options
124
- */
125
- createOlInnerOverlayLayer() {
126
- return new OlVectorLayer({
127
- source: this.options.source ? this.options.source : new OlVectorSource(),
128
- style: this.options.layerStyle,
129
- zIndex: 500
130
- });
131
- }
132
- /**
133
- * Add the overlay layer if it wasn't defined in the options
134
- */
135
- addOlInnerOverlayLayer() {
136
- if (this.options.layer === undefined) {
137
- this.olMap.addLayer(this.olOverlayLayer);
138
- }
139
- }
140
- /**
141
- * Clear the overlay layer if it wasn't defined in the options
142
- */
143
- removeOlInnerOverlayLayer() {
144
- if (this.options.layer === undefined && this.olMap !== undefined) {
145
- this.olMap.removeLayer(this.olOverlayLayer);
146
- }
147
- }
148
- /**
149
- * Clear the overlay source if it wasn't defined in the options
150
- */
151
- clearOlInnerOverlaySource() {
152
- if (this.options.layer === undefined && this.options.source === undefined) {
153
- this.olOverlaySource.clear(true);
154
- }
155
- }
156
- createOlLinearRingsLayer() {
157
- return new OlVectorLayer({
158
- source: new OlVectorSource(),
159
- style: createDrawHoleInteractionStyle(),
160
- zIndex: 500
161
- });
162
- }
163
- /**
164
- * Add the linear rings layer
165
- */
166
- addOlLinearRingsLayer() {
167
- this.olMap.addLayer(this.olLinearRingsLayer);
168
- }
169
- /**
170
- * Clear the linear rings layer
171
- */
172
- removeOlLinearRingsLayer() {
173
- this.olMap.removeLayer(this.olLinearRingsLayer);
174
- }
175
- /**
176
- * Clear the linear rings source
177
- */
178
- clearOlLinearRingsSource() {
179
- this.olLinearRingsSource.clear(true);
180
- }
181
- /**
182
- * Add a modify interaction to the map an set up some listeners
183
- */
184
- addOlModifyInteraction() {
185
- const olModifyInteraction = new OlModify({
186
- source: this.olOverlaySource,
187
- style: this.options.drawStyle
188
- });
189
- this.olModifyInteraction = olModifyInteraction;
190
- }
191
- /**
192
- * Remove the modify interaction
193
- */
194
- removeOlModifyInteraction() {
195
- if (this.olModifyInteraction === undefined) {
196
- return;
197
- }
198
- this.deactivateModifyInteraction();
199
- this.olModifyInteraction = undefined;
200
- }
201
- activateModifyInteraction() {
202
- if (this.olModifyInteractionIsActive === true) {
203
- return;
204
- }
205
- this.olModifyInteractionIsActive = true;
206
- this.onModifyStartKey = this.olModifyInteraction.on('modifystart', (event) => this.onModifyStart(event));
207
- this.onModifyEndKey = this.olModifyInteraction.on('modifyend', (event) => this.onModifyEnd(event));
208
- this.olMap.addInteraction(this.olModifyInteraction);
209
- }
210
- deactivateModifyInteraction() {
211
- if (this.olModifyInteractionIsActive === false) {
212
- return;
213
- }
214
- this.olModifyInteractionIsActive = false;
215
- unByKey([this.onModifyStartKey, this.onModifyEndKey, this.onModifyKey]);
216
- if (this.olMap !== undefined) {
217
- this.olMap.removeInteraction(this.olModifyInteraction);
218
- }
219
- }
220
- /**
221
- * When modifying starts, clear the overlay and start watching for changes
222
- * @param event Modify start event
223
- */
224
- onModifyStart(event) {
225
- const olGeometry = event.features.item(0).getGeometry();
226
- this.start$.next(olGeometry);
227
- this.onModifyKey = olGeometry.on('change', (olGeometryEvent) => {
228
- this.mousePosition = getMousePositionFromOlGeometryEvent(olGeometryEvent);
229
- this.changes$.next(olGeometryEvent.target);
230
- });
231
- this.subscribeToKeyDown();
232
- }
233
- /**
234
- * When modifying ends, update the geometry observable and stop watching for changes
235
- * @param event Modify end event
236
- */
237
- onModifyEnd(event) {
238
- unByKey(this.onModifyKey);
239
- this.end$.next(event.features.item(0).getGeometry());
240
- this.unsubscribeToKeyDown();
241
- }
242
- /**
243
- * Subscribe to space key down to pan the map
244
- */
245
- subscribeToKeyDown() {
246
- this.keyDown$$ = fromEvent(document, 'keydown').subscribe((event) => {
247
- if (event.key === ' ') {
248
- // On space bar, pan to the current mouse position
249
- this.olMap.getView().animate({
250
- center: this.mousePosition,
251
- duration: 0
252
- });
253
- return;
254
- }
255
- });
256
- }
257
- /**
258
- * Unsubscribe to key down
259
- */
260
- unsubscribeToKeyDown() {
261
- if (this.keyDown$$ !== undefined) {
262
- this.keyDown$$.unsubscribe();
263
- }
264
- }
265
- /**
266
- * Add a translate interaction to the map an set up some listeners
267
- */
268
- addOlTranslateInteraction() {
269
- const olTranslateInteraction = new OlTranslate({
270
- layers: [this.olOverlayLayer]
271
- });
272
- this.olTranslateInteraction = olTranslateInteraction;
273
- }
274
- /**
275
- * Remove the translate interaction
276
- */
277
- removeOlTranslateInteraction() {
278
- if (this.olTranslateInteraction === undefined) {
279
- return;
280
- }
281
- this.deactivateTranslateInteraction();
282
- this.olTranslateInteraction = undefined;
283
- }
284
- activateTranslateInteraction() {
285
- if (this.olTranslateInteractionIsActive === true) {
286
- return;
287
- }
288
- this.olTranslateInteractionIsActive = true;
289
- this.onTranslateStartKey = this.olTranslateInteraction.on('translatestart', (event) => this.onTranslateStart(event));
290
- this.onTranslateEndKey = this.olTranslateInteraction.on('translateend', (event) => this.onTranslateEnd(event));
291
- this.olMap.addInteraction(this.olTranslateInteraction);
292
- }
293
- deactivateTranslateInteraction() {
294
- if (this.olTranslateInteractionIsActive === false) {
295
- return;
296
- }
297
- this.olTranslateInteractionIsActive = false;
298
- unByKey([
299
- this.onTranslateStartKey,
300
- this.onTranslateEndKey,
301
- this.onTranslateKey
302
- ]);
303
- if (this.olMap !== undefined) {
304
- this.olMap.removeInteraction(this.olTranslateInteraction);
305
- }
306
- }
307
- /**
308
- * When translation starts, clear the overlay and start watching for changes
309
- * @param event Translate start event
310
- */
311
- onTranslateStart(event) {
312
- const olGeometry = event.features.item(0).getGeometry();
313
- this.start$.next(olGeometry);
314
- this.onTranslateKey = olGeometry.on('change', (olGeometryEvent) => {
315
- // this.changes$.next(olGeometryEvent.target);
316
- });
317
- }
318
- /**
319
- * When translation ends, update the geometry observable and stop watchign for changes
320
- * @param event Translate end event
321
- */
322
- onTranslateEnd(event) {
323
- unByKey(this.onTranslateKey);
324
- this.end$.next(event.features.item(0).getGeometry());
325
- }
326
- /**
327
- * Add a draw interaction to the map an set up some listeners
328
- */
329
- addOlDrawInteraction() {
330
- const olDrawInteraction = new OlDraw({
331
- type: 'Polygon',
332
- source: this.olLinearRingsSource,
333
- stopClick: true,
334
- style: createDrawHoleInteractionStyle(),
335
- condition: (event) => {
336
- const olOuterGeometry = this.olOuterGeometry || this.getOlGeometry();
337
- const intersects = olOuterGeometry.intersectsCoordinate(event.coordinate);
338
- return intersects;
339
- }
340
- });
341
- this.olDrawInteraction = olDrawInteraction;
342
- this.subscribeToDrawKeyDown();
343
- }
344
- /**
345
- * Subscribe to CTRL key down to activate the draw control
346
- */
347
- subscribeToDrawKeyDown() {
348
- this.drawKeyDown$$ = fromEvent(document, 'keydown').subscribe((event) => {
349
- if (event.key !== 'Control') {
350
- return;
351
- }
352
- this.unsubscribeToDrawKeyDown();
353
- const olGeometry = this.getOlGeometry();
354
- if (!olGeometry || !(olGeometry instanceof OlPolygon)) {
355
- return;
356
- }
357
- this.subscribeToDrawKeyUp();
358
- this.deactivateModifyInteraction();
359
- this.deactivateTranslateInteraction();
360
- this.activateDrawInteraction();
361
- });
362
- }
363
- /**
364
- * Subscribe to CTRL key up to deactivate the draw control
365
- */
366
- subscribeToDrawKeyUp() {
367
- this.drawKeyUp$$ = fromEvent(document, 'keyup').subscribe((event) => {
368
- if (event.key !== 'Control') {
369
- return;
370
- }
371
- this.unsubscribeToDrawKeyUp();
372
- this.unsubscribeToKeyDown();
373
- this.deactivateDrawInteraction();
374
- this.activateModifyInteraction();
375
- if (this.translate === true) {
376
- this.activateTranslateInteraction();
377
- }
378
- this.subscribeToDrawKeyDown();
379
- this.olOuterGeometry = undefined;
380
- this.clearOlLinearRingsSource();
381
- this.end$.next(this.getOlGeometry());
382
- });
383
- }
384
- /**
385
- * Unsubscribe to draw key down
386
- */
387
- unsubscribeToDrawKeyDown() {
388
- if (this.drawKeyDown$$ !== undefined) {
389
- this.drawKeyDown$$.unsubscribe();
390
- }
391
- }
392
- /**
393
- * Unsubscribe to key up
394
- */
395
- unsubscribeToDrawKeyUp() {
396
- if (this.drawKeyUp$$ !== undefined) {
397
- this.drawKeyUp$$.unsubscribe();
398
- }
399
- }
400
- /**
401
- * Remove the draw interaction
402
- */
403
- removeOlDrawInteraction() {
404
- if (this.olDrawInteraction === undefined) {
405
- return;
406
- }
407
- this.unsubscribeToKeyDown();
408
- this.unsubscribeToDrawKeyUp();
409
- this.unsubscribeToDrawKeyDown();
410
- this.deactivateDrawInteraction();
411
- this.clearOlLinearRingsSource();
412
- this.olDrawInteraction = undefined;
413
- }
414
- /**
415
- * Activate the draw interaction
416
- */
417
- activateDrawInteraction() {
418
- if (this.olDrawInteractionIsActive === true) {
419
- return;
420
- }
421
- this.clearOlLinearRingsSource();
422
- this.addOlLinearRingsLayer();
423
- this.olMap.getInteractions().forEach((olInteraction) => {
424
- if (olInteraction instanceof OlDragBoxInteraction) {
425
- this.olMap.removeInteraction(olInteraction);
426
- this.removedOlInteractions.push(olInteraction);
427
- }
428
- });
429
- this.olDrawInteractionIsActive = true;
430
- this.onDrawStartKey = this.olDrawInteraction.on('drawstart', (event) => this.onDrawStart(event));
431
- this.onDrawEndKey = this.olDrawInteraction.on('drawend', (event) => this.onDrawEnd(event));
432
- this.olMap.addInteraction(this.olDrawInteraction);
433
- }
434
- /**
435
- * Deactivate the draw interaction
436
- */
437
- deactivateDrawInteraction() {
438
- if (this.olDrawInteractionIsActive === false) {
439
- return;
440
- }
441
- this.removeOlLinearRingsLayer();
442
- this.removedOlInteractions.forEach((olInteraction) => {
443
- this.olMap.addInteraction(olInteraction);
444
- });
445
- this.removedOlInteractions = [];
446
- this.olDrawInteractionIsActive = false;
447
- unByKey([this.onDrawStartKey, this.onDrawEndKey, this.onDrawKey]);
448
- if (this.olMap !== undefined) {
449
- this.olMap.removeInteraction(this.olDrawInteraction);
450
- }
451
- }
452
- /**
453
- * When draw start, add a new linerar ring to the geometry and start watching for changes
454
- * @param event Draw start event
455
- */
456
- onDrawStart(event) {
457
- const olGeometry = event.feature.getGeometry();
458
- this.olOuterGeometry = this.getOlGeometry().clone();
459
- const linearRingCoordinates = olGeometry.getLinearRing().getCoordinates();
460
- this.addLinearRingToOlGeometry(linearRingCoordinates);
461
- this.start$.next(this.getOlGeometry());
462
- this.onDrawKey = olGeometry.on('change', (olGeometryEvent) => {
463
- this.mousePosition = getMousePositionFromOlGeometryEvent(olGeometryEvent);
464
- const olGeometryTarget = olGeometryEvent.target;
465
- const _linearRingCoordinates = olGeometryTarget
466
- .getLinearRing(0)
467
- .getCoordinates();
468
- this.updateLinearRingOfOlGeometry(_linearRingCoordinates);
469
- this.changes$.next(this.getOlGeometry());
470
- });
471
- this.subscribeToKeyDown();
472
- }
473
- /**
474
- * When translation ends, update the geometry observable and stop watchign for changes
475
- * @param event Draw end event
476
- */
477
- onDrawEnd(event) {
478
- unByKey(this.onDrawKey);
479
- this.olOuterGeometry = undefined;
480
- const linearRingCoordinates = event.feature
481
- .getGeometry()
482
- .getLinearRing()
483
- .getCoordinates();
484
- this.updateLinearRingOfOlGeometry(linearRingCoordinates);
485
- this.clearOlLinearRingsSource();
486
- this.end$.next(this.getOlGeometry());
487
- this.unsubscribeToKeyDown();
488
- }
489
- /**
490
- * Add a linear ring to the geometry being modified
491
- * @param coordinates Linear ring coordinates
492
- */
493
- addLinearRingToOlGeometry(coordinates) {
494
- const olGeometry = this.getOlGeometry();
495
- const olLinearRing = new OlLinearRing(coordinates);
496
- addLinearRingToOlPolygon(olGeometry, olLinearRing);
497
- }
498
- /**
499
- * Update the last linear ring of the geometry being modified
500
- * @param coordinates Linear ring coordinates
501
- */
502
- updateLinearRingOfOlGeometry(coordinates) {
503
- const olGeometry = this.getOlGeometry();
504
- // Remove the last linear ring (the one we are updating)
505
- const olLinearRings = olGeometry.getLinearRings().slice(0, -1);
506
- const newCoordinates = olLinearRings.map((olLinearRing) => {
507
- return olLinearRing.getCoordinates();
508
- });
509
- newCoordinates.push(coordinates);
510
- olGeometry.setCoordinates(newCoordinates);
511
- }
512
- /**
513
- * Get the geometry being modified
514
- * @returns OL Geometry
515
- */
516
- getOlGeometry() {
517
- const olFeatures = this.olOverlaySource.getFeatures();
518
- return olFeatures.length > 0 ? olFeatures[0].getGeometry() : undefined;
519
- }
520
- }
521
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kaWZ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZ2VvbWV0cnkvc2hhcmVkL2NvbnRyb2xzL21vZGlmeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFHbkMsT0FBTyxjQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxhQUFhLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxRQUFRLE1BQU0sdUJBQXVCLENBQUM7QUFDN0MsT0FBTyxXQUFXLE1BQU0sMEJBQTBCLENBQUM7QUFDbkQsT0FBTyxNQUFNLE1BQU0scUJBQXFCLENBQUM7QUFDekMsT0FBTyxTQUFTLE1BQU0saUJBQWlCLENBQUM7QUFHeEMsT0FBTyxZQUFZLE1BQU0sb0JBQW9CLENBQUM7QUFFOUMsT0FBTyxvQkFBb0IsTUFBTSx3QkFBd0IsQ0FBQztBQU8xRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXhDLE9BQU8sRUFBRSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV4RCxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLDhCQUE4QixFQUM5QixtQ0FBbUMsRUFDcEMsTUFBTSxtQkFBbUIsQ0FBQztBQVczQjs7R0FFRztBQUNILE1BQU0sT0FBTyxhQUFhO0lBK0V4QixZQUFvQixPQUE2QjtRQUE3QixZQUFPLEdBQVAsT0FBTyxDQUFzQjtRQTlFakQ7O1dBRUc7UUFDSSxXQUFNLEdBQXdCLElBQUksT0FBTyxFQUFFLENBQUM7UUFFbkQ7O1dBRUc7UUFDSSxTQUFJLEdBQXdCLElBQUksT0FBTyxFQUFFLENBQUM7UUFFakQ7O1dBRUc7UUFDSSxhQUFRLEdBQXdCLElBQUksT0FBTyxFQUFFLENBQUM7UUFRN0MsZ0NBQTJCLEdBQVksS0FBSyxDQUFDO1FBSzdDLG1DQUE4QixHQUFZLEtBQUssQ0FB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Q0FBQyxDQUFDLFlBQTBCLEVBQUUsRUFBRTtZQUN0RSxPQUFPLFlBQVksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQztRQUNILGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDakMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssYUFBYTtRQUNuQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3RELE9BQU8sVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3pFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBPbE1hcCBmcm9tICdvbC9NYXAnO1xuaW1wb3J0IE9sRmVhdHVyZSBmcm9tICdvbC9GZWF0dXJlJztcbmltcG9ydCAqIGFzIE9sU3R5bGUgZnJvbSAnb2wvc3R5bGUnO1xuaW1wb3J0IHsgU3R5bGVMaWtlIGFzIE9sU3R5bGVMaWtlIH0gZnJvbSAnb2wvc3R5bGUvU3R5bGUnO1xuaW1wb3J0IE9sVmVjdG9yU291cmNlIGZyb20gJ29sL3NvdXJjZS9WZWN0b3InO1xuaW1wb3J0IE9sVmVjdG9yTGF5ZXIgZnJvbSAnb2wvbGF5ZXIvVmVjdG9yJztcbmltcG9ydCBPbE1vZGlmeSBmcm9tICdvbC9pbnRlcmFjdGlvbi9Nb2RpZnknO1xuaW1wb3J0IE9sVHJhbnNsYXRlIGZyb20gJ29sL2ludGVyYWN0aW9uL1RyYW5zbGF0ZSc7XG5pbXBvcnQgT2xEcmF3IGZyb20gJ29sL2ludGVyYWN0aW9uL0RyYXcnO1xuaW1wb3J0IE9sUG9seWdvbiBmcm9tICdvbC9nZW9tL1BvbHlnb24nO1xuaW1wb3J0IE9sTGluZVN0cmluZyBmcm9tICdvbC9nZW9tL0xpbmVTdHJpbmcnO1xuaW1wb3J0IE9sQ2lyY2xlIGZyb20gJ29sL2dlb20vQ2lyY2xlJztcbmltcG9ydCBPbExpbmVhclJpbmcgZnJvbSAnb2wvZ2VvbS9MaW5lYXJSaW5nJztcbmltcG9ydCBPbEludGVyYWN0aW9uIGZyb20gJ29sL2ludGVyYWN0aW9uL0ludGVyYWN0aW9uJztcbmltcG9ydCBPbERyYWdCb3hJbnRlcmFjdGlvbiBmcm9tICdvbC9pbnRlcmFjdGlvbi9EcmFnQm94JztcbmltcG9ydCBNYXBCcm93c2VyRXZlbnQgZnJvbSAnb2wvTWFwQnJvd3NlckV2ZW50JztcbmltcG9ydCB0eXBlIHsgZGVmYXVsdCBhcyBPbEdlb21ldHJ5IH0gZnJvbSAnb2wvZ2VvbS9HZW9tZXRyeSc7XG5pbXBvcnQgQmFzaWNFdmVudCBmcm9tICdvbC9ldmVudHMvRXZlbnQnO1xuaW1wb3J0IHsgTW9kaWZ5RXZlbnQgYXMgT2xNb2RpZnlFdmVudCB9IGZyb20gJ29sL2ludGVyYWN0aW9uL01vZGlmeSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVFdmVudCBhcyBPbFRyYW5zbGF0ZUV2ZW50IH0gZnJvbSAnb2wvaW50ZXJhY3Rpb24vVHJhbnNsYXRlJztcbmltcG9ydCB7IERyYXdFdmVudCBhcyBPbERyYXdFdmVudCB9IGZyb20gJ29sL2ludGVyYWN0aW9uL0RyYXcnO1xuaW1wb3J0IHsgdW5CeUtleSB9IGZyb20gJ29sL09ic2VydmFibGUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICBhZGRMaW5lYXJSaW5nVG9PbFBvbHlnb24sXG4gIGNyZWF0ZURyYXdIb2xlSW50ZXJhY3Rpb25TdHlsZSxcbiAgZ2V0TW91c2VQb3NpdGlvbkZyb21PbEdlb21ldHJ5RXZlbnRcbn0gZnJvbSAnLi4vZ2VvbWV0cnkudXRpbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1vZGlmeUNvbnRyb2xPcHRpb25zIHtcbiAgc291cmNlPzogT2xWZWN0b3JTb3VyY2U8YW55PjtcbiAgbGF5ZXI/OiBPbFZlY3RvckxheWVyPGFueT47XG4gIGxheWVyU3R5bGU/OiBPbFN0eWxlTGlrZTtcbiAgZHJhd1N0eWxlPzogT2xTdHlsZUxpa2U7XG4gIG1vZGlmeT86IGJvb2xlYW47XG4gIHRyYW5zbGF0ZT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQ29udHJvbCB0byBtb2RpZnkgZ2VvbWV0cmllc1xuICovXG5leHBvcnQgY2xhc3MgTW9kaWZ5Q29udHJvbCB7XG4gIC8qKlxuICAgKiBNb2RpZnkgc3RhcnQgb2JzZXJ2YWJsZVxuICAgKi9cbiAgcHVibGljIHN0YXJ0JDogU3ViamVjdDxPbEdlb21ldHJ5PiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgLyoqXG4gICAqIE1vZGlmeSBlbmQgb2JzZXJ2YWJsZVxuICAgKi9cbiAgcHVibGljIGVuZCQ6IFN1YmplY3Q8T2xHZW9tZXRyeT4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIC8qKlxuICAgKiBHZW9tZXRyeSBjaGFuZ2VzIG9ic2VydmFibGVcbiAgICovXG4gIHB1YmxpYyBjaGFuZ2VzJDogU3ViamVjdDxPbEdlb21ldHJ5PiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHJpdmF0ZSBvbE1hcDogT2xNYXA7XG4gIHByaXZhdGUgb2xPdmVybGF5TGF5ZXI6IE9sVmVjdG9yTGF5ZXI8YW55PjtcbiAgcHVibGljIG9sTW9kaWZ5SW50ZXJhY3Rpb246IE9sTW9kaWZ5O1xuICBwcml2YXRlIG9uTW9kaWZ5U3RhcnRLZXk6IGFueTtcbiAgcHJpdmF0ZSBvbk1vZGlmeUVuZEtleTogYW55O1xuICBwcml2YXRlIG9uTW9kaWZ5S2V5OiBhbnk7XG4gIHByaXZhdGUgb2xNb2RpZnlJbnRlcmFjdGlvbklzQWN0aXZlOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgb2xUcmFuc2xhdGVJbnRlcmFjdGlvbjogT2xUcmFuc2xhdGU7XG4gIHByaXZhdGUgb25UcmFuc2xhdGVTdGFydEtleTogYW55O1xuICBwcml2YXRlIG9uVHJhbnNsYXRlRW5kS2V5OiBhbnk7XG4gIHByaXZhdGUgb25UcmFuc2xhdGVLZXk6IGFueTtcbiAgcHJpdmF0ZSBvbFRyYW5zbGF0ZUludGVyYWN0aW9uSXNBY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBvbERyYXdJbnRlcmFjdGlvbjogT2xEcmF3O1xuICBwcml2YXRlIG9uRHJhd1N0YXJ0S2V5OiBhbnk7XG4gIHByaXZhdGUgb25EcmF3RW5kS2V5OiBhbnk7XG4gIHByaXZhdGUgb25EcmF3S2V5OiBhbnk7XG4gIHByaXZhdGUgb2xEcmF3SW50ZXJhY3Rpb25Jc0FjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgbW91c2VQb3NpdGlvbjogW251bWJlciwgbnVtYmVyXTtcblxuICBwcml2YXRlIGtleURvd24kJDogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGRyYXdLZXlVcCQkOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgZHJhd0tleURvd24kJDogU3Vic2NyaXB0aW9uO1xuXG4gIHByaXZhdGUgcmVtb3ZlZE9sSW50ZXJhY3Rpb25zOiBPbEludGVyYWN0aW9uW10gPSBbXTtcbiAgcHJpdmF0ZSBvbExpbmVhclJpbmdzTGF5ZXI6IE9sVmVjdG9yTGF5ZXI8YW55PjtcblxuICAvLyBUaGlzIGlzIHRoZSBnZW9tZXRyeSB0byB0ZXN0IGFnYWluc3Qgd2hlbiBkcmF3aW5nIGhvbGVzXG4gIHByaXZhdGUgb2xPdXRlckdlb21ldHJ5OiBPbEdlb21ldHJ5O1xuXG4gIC8qKlxuICAgKiBXaGV0ZXIgdGhlIGNvbnRyb2wgaXMgYWN0aXZlXG4gICAqL1xuICBnZXQgYWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm9sTWFwICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogT0wgb3ZlcmxheSBzb3VyY2VcbiAgICogQGludGVybmFsXG4gICAqL1xuICBnZXQgb2xPdmVybGF5U291cmNlKCk6IE9sVmVjdG9yU291cmNlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLm9sT3ZlcmxheUxheWVyLmdldFNvdXJjZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9MIGxpbmVhciByaW5ncyBzb3VyY2VcbiAgICogQGludGVybmFsXG4gICAqL1xuICBnZXQgb2xMaW5lYXJSaW5nc1NvdXJjZSgpOiBPbFZlY3RvclNvdXJjZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5vbExpbmVhclJpbmdzTGF5ZXIuZ2V0U291cmNlKCk7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciBhIG1vZGlmeSBjb250cm9sIHNob3VsZCBiZSBhdmFpbGFibGVcbiAgICovXG4gIHByaXZhdGUgbW9kaWZ5OiBib29sZWFuID0gdHJ1ZTtcblxuICAvKipcbiAgICogV2hldGhlciBhIHRyYW5zbGF0ZSBjb250cm9sIHNob3VsZCBiZSBhdmFpbGFibGVcbiAgICovXG4gIHByaXZhdGUgdHJhbnNsYXRlOiBib29sZWFuID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG9wdGlvbnM6IE1vZGlmeUNvbnRyb2xPcHRpb25zKSB7XG4gICAgaWYgKG9wdGlvbnMubW9kaWZ5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMubW9kaWZ5ID0gb3B0aW9ucy5tb2RpZnk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLnRyYW5zbGF0ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnRyYW5zbGF0ZSA9IG9wdGlvbnMudHJhbnNsYXRlO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLmxheWVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMub2xPdmVybGF5TGF5ZXIgPSBvcHRpb25zLmxheWVyO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9sT3ZlcmxheUxheWVyID0gdGhpcy5jcmVhdGVPbElubmVyT3ZlcmxheUxheWVyKCk7XG4gICAgfVxuICAgIHRoaXMub2xMaW5lYXJSaW5nc0xheWVyID0gdGhpcy5jcmVhdGVPbExpbmVhclJpbmdzTGF5ZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgb3IgcmVtb3ZlIHRoaXMgY29udHJvbCB0by9mcm9tIGEgbWFwLlxuICAgKiBAcGFyYW0gbWFwIE9MIE1hcFxuICAgKi9cbiAgc2V0T2xNYXAob2xNYXA6IE9sTWFwIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKG9sTWFwID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuY2xlYXJPbElubmVyT3ZlcmxheVNvdXJjZSgpO1xuICAgICAgdGhpcy5yZW1vdmVPbElubmVyT3ZlcmxheUxheWVyKCk7XG4gICAgICB0aGlzLnJlbW92ZU9sTW9kaWZ5SW50ZXJhY3Rpb24oKTtcbiAgICAgIHRoaXMucmVtb3ZlT2xUcmFuc2xhdGVJbnRlcmFjdGlvbigpO1xuICAgICAgdGhpcy5yZW1vdmVPbERyYXdJbnRlcmFjdGlvbigpO1xuICAgICAgdGhpcy5vbE1hcCA9IG9sTWFwO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMub2xNYXAgPSBvbE1hcDtcbiAgICB0aGlzLmFkZE9sSW5uZXJPdmVybGF5TGF5ZXIoKTtcblxuICAgIC8vIFRoZSBvcmRlciBpbiB3aGljaCB0aGVzZSBpbnRlcmFjdGlvbnNcbiAgICAvLyBhcmUgYWRkZWQgaXMgaW1wb3J0YW50XG4gICAgaWYgKHRoaXMubW9kaWZ5ID09PSB0cnVlKSB7XG4gICAgICB0aGlzLmFkZE9sRHJhd0ludGVyYWN0aW9uKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudHJhbnNsYXRlID09PSB0cnVlKSB7XG4gICAgICB0aGlzLmFkZE9sVHJhbnNsYXRlSW50ZXJhY3Rpb24oKTtcbiAgICAgIHRoaXMuYWN0aXZhdGVUcmFuc2xhdGVJbnRlcmFjdGlvbigpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm1vZGlmeSA9PT0gdHJ1ZSkge1xuICAgICAgdGhpcy5hZGRPbE1vZGlmeUludGVyYWN0aW9uKCk7XG4gICAgICB0aGlzLmFjdGl2YXRlTW9kaWZ5SW50ZXJhY3Rpb24oKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBvdmVybGF5IHNvdXJjZVxuICAgKi9cbiAgZ2V0U291cmNlKCk6IE9sVmVjdG9yU291cmNlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLm9sT3ZlcmxheVNvdXJjZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYW4gT0wgZ2VvbWV0cnkgdG8gdGhlIG92ZXJsYXkgYW5kIHN0YXJ0IG1vZGlmeWluZyBpdFxuICAgKiBAcGFyYW0gb2xHZW9tZXRyeSBPbCBHZW9tZXRyeVxuICAgKi9cbiAgc2V0T2xHZW9tZXRyeShvbEdlb21ldHJ5OiBPbEdlb21ldHJ5KSB7XG4gICAgY29uc3Qgb2xGZWF0dXJlID0gbmV3IE9sRmVhdHVyZSh7IGdlb21ldHJ5OiBvbEdlb21ldHJ5IH0pO1xuICAgIHRoaXMub2xPdmVybGF5U291cmNlLmNsZWFyKCk7XG4gICAgdGhpcy5vbE92ZXJsYXlTb3VyY2UuYWRkRmVhdHVyZShvbEZlYXR1cmUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBvdmVybGF5IHNvdXJjZSBpZiBub25lIGlzIGRlZmluZWQgaW4gdGhlIG9wdGlvbnNcbiAgICovXG4gIHByaXZhdGUgY3JlYXRlT2xJbm5lck92ZXJsYXlMYXllcigpOiBPbFZlY3RvckxheWVyPGFueT4ge1xuICAgIHJldHVybiBuZXcgT2xWZWN0b3JMYXllcih7XG4gICAgICBzb3VyY2U6IHRoaXMub3B0aW9ucy5zb3VyY2UgPyB0aGlzLm9wdGlvbnMuc291cmNlIDogbmV3IE9sVmVjdG9yU291cmNlKCksXG4gICAgICBzdHlsZTogdGhpcy5vcHRpb25zLmxheWVyU3R5bGUsXG4gICAgICB6SW5kZXg6IDUwMFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCB0aGUgb3ZlcmxheSBsYXllciBpZiBpdCB3YXNuJ3QgZGVmaW5lZCBpbiB0aGUgb3B0aW9uc1xuICAgKi9cbiAgcHJpdmF0ZSBhZGRPbElubmVyT3ZlcmxheUxheWVyKCkge1xuICAgIGlmICh0aGlzLm9wdGlvbnMubGF5ZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5vbE1hcC5hZGRMYXllcih0aGlzLm9sT3ZlcmxheUxheWVyKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXIgdGhlIG92ZXJsYXkgbGF5ZXIgaWYgaXQgd2Fzbid0IGRlZmluZWQgaW4gdGhlIG9wdGlvbnNcbiAgICovXG4gIHByaXZhdGUgcmVtb3ZlT2xJbm5lck92ZXJsYXlMYXllcigpIHtcbiAgICBpZiAodGhpcy5vcHRpb25zLmxheWVyID09PSB1bmRlZmluZWQgJiYgdGhpcy5vbE1hcCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLm9sTWFwLnJlbW92ZUxheWVyKHRoaXMub2xPdmVybGF5TGF5ZXIpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhciB0aGUgb3ZlcmxheSBzb3VyY2UgaWYgaXQgd2Fzbid0IGRlZmluZWQgaW4gdGhlIG9wdGlvbnNcbiAgICovXG4gIHByaXZhdGUgY2xlYXJPbElubmVyT3ZlcmxheVNvdXJjZSgpIHtcbiAgICBpZiAodGhpcy5vcHRpb25zLmxheWVyID09PSB1bmRlZmluZWQgJiYgdGhpcy5vcHRpb25zLnNvdXJjZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLm9sT3ZlcmxheVNvdXJjZS5jbGVhcih0cnVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZU9sTGluZWFyUmluZ3NMYXllcigpOiBPbFZlY3RvckxheWVyPGFueT4ge1xuICAgIHJldHVybiBuZXcgT2xWZWN0b3JMYXllcih7XG4gICAgICBzb3VyY2U6IG5ldyBPbFZlY3RvclNvdXJjZSgpLFxuICAgICAgc3R5bGU6IGNyZWF0ZURyYXdIb2xlSW50ZXJhY3Rpb25TdHlsZSgpLFxuICAgICAgekluZGV4OiA1MDBcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgdGhlIGxpbmVhciByaW5ncyBsYXllclxuICAgKi9cbiAgcHJpdmF0ZSBhZGRPbExpbmVhclJpbmdzTGF5ZXIoKSB7XG4gICAgdGhpcy5vbE1hcC5hZGRMYXllcih0aGlzLm9sTGluZWFyUmluZ3NMYXllcik7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXIgdGhlIGxpbmVhciByaW5ncyBsYXllclxuICAgKi9cbiAgcHJpdmF0ZSByZW1vdmVPbExpbmVhclJpbmdzTGF5ZXIoKSB7XG4gICAgdGhpcy5vbE1hcC5yZW1vdmVMYXllcih0aGlzLm9sTGluZWFyUmluZ3NMYXllcik7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXIgdGhlIGxpbmVhciByaW5ncyBzb3VyY2VcbiAgICovXG4gIHByaXZhdGUgY2xlYXJPbExpbmVhclJpbmdzU291cmNlKCkge1xuICAgIHRoaXMub2xMaW5lYXJSaW5nc1NvdXJjZS5jbGVhcih0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBtb2RpZnkgaW50ZXJhY3Rpb24gdG8gdGhlIG1hcCBhbiBzZXQgdXAgc29tZSBsaXN0ZW5lcnNcbiAgICovXG4gIHByaXZhdGUgYWRkT2xNb2RpZnlJbnRlcmFjdGlvbigpIHtcbiAgICBjb25zdCBvbE1vZGlmeUludGVyYWN0aW9uID0gbmV3IE9sTW9kaWZ5KHtcbiAgICAgIHNvdXJjZTogdGhpcy5vbE92ZXJsYXlTb3VyY2UsXG4gICAgICBzdHlsZTogdGhpcy5vcHRpb25zLmRyYXdTdHlsZSBhcyBPbFN0eWxlLlN0eWxlXG4gICAgfSk7XG4gICAgdGhpcy5vbE1vZGlmeUludGVyYWN0aW9uID0gb2xNb2RpZnlJbnRlcmFjdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgdGhlIG1vZGlmeSBpbnRlcmFjdGlvblxuICAgKi9cbiAgcHJpdmF0ZSByZW1vdmVPbE1vZGlmeUludGVyYWN0aW9uKCkge1xuICAgIGlmICh0aGlzLm9sTW9kaWZ5SW50ZXJhY3Rpb24gPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZGVhY3RpdmF0ZU1vZGlmeUludGVyYWN0aW9uKCk7XG4gICAgdGhpcy5vbE1vZGlmeUludGVyYWN0aW9uID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBhY3RpdmF0ZU1vZGlmeUludGVyYWN0aW9uKCkge1xuICAgIGlmICh0aGlzLm9sTW9kaWZ5SW50ZXJhY3Rpb25Jc0FjdGl2ZSA9PT0gdHJ1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMub2xNb2RpZnlJbnRlcmFjdGlvbklzQWN0aXZlID0gdHJ1ZTtcbiAgICB0aGlzLm9uTW9kaWZ5U3RhcnRLZXkgPSB0aGlzLm9sTW9kaWZ5SW50ZXJhY3Rpb24ub24oXG4gICAgICAnbW9kaWZ5c3RhcnQnLFxuICAgICAgKGV2ZW50OiBPbE1vZGlmeUV2ZW50KSA9PiB0aGlzLm9uTW9kaWZ5U3RhcnQoZXZlbnQpXG4gICAgKTtcbiAgICB0aGlzLm9uTW9kaWZ5RW5kS2V5ID0gdGhpcy5vbE1vZGlmeUludGVyYWN0aW9uLm9uKFxuICAgICAgJ21vZGlmeWVuZCcsXG4gICAgICAoZXZlbnQ6IE9sTW9kaWZ5RXZlbnQpID0+IHRoaXMub25Nb2RpZnlFbmQoZXZlbnQpXG4gICAgKTtcbiAgICB0aGlzLm9sTWFwLmFkZEludGVyYWN0aW9uKHRoaXMub2xNb2RpZnlJbnRlcmFjdGlvbik7XG4gIH1cblxuICBwcml2YXRlIGRlYWN0aXZhdGVNb2RpZnlJbnRlcmFjdGlvbigpIHtcbiAgICBpZiAodGhpcy5vbE1vZGlmeUludGVyYWN0aW9uSXNBY3RpdmUgPT09IGZhbHNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5vbE1vZGlmeUludGVyYWN0aW9uSXNBY3RpdmUgPSBmYWxzZTtcblxuICAgIHVuQnlLZXkoW3RoaXMub25Nb2RpZnlTdGFydEtleSwgdGhpcy5vbk1vZGlmeUVuZEtleSwgdGhpcy5vbk1vZGlmeUtleV0pO1xuICAgIGlmICh0aGlzLm9sTWFwICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMub2xNYXAucmVtb3ZlSW50ZXJhY3Rpb24odGhpcy5vbE1vZGlmeUludGVyYWN0aW9uKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogV2hlbiBtb2RpZnlpbmcgc3RhcnRzLCBjbGVhciB0aGUgb3ZlcmxheSBhbmQgc3RhcnQgd2F0Y2hpbmcgZm9yIGNoYW5nZXNcbiAgICogQHBhcmFtIGV2ZW50IE1vZGlmeSBzdGFydCBldmVudFxuICAgKi9cbiAgcHJpdmF0ZSBvbk1vZGlmeVN0YXJ0KGV2ZW50OiBPbE1vZGlmeUV2ZW50KSB7XG4gICAgY29uc3Qgb2xHZW9tZXRyeSA9IGV2ZW50LmZlYXR1cmVzLml0ZW0oMCkuZ2V0R2VvbWV0cnkoKSBhcyBPbEdlb21ldHJ5O1xuICAgIHRoaXMuc3RhcnQkLm5leHQob2xHZW9tZXRyeSk7XG4gICAgdGhpcy5vbk1vZGlmeUtleSA9IG9sR2VvbWV0cnkub24oXG4gICAgICAnY2hhbmdlJyxcbiAgICAgIChvbEdlb21ldHJ5RXZlbnQ6IEJhc2ljRXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy5tb3VzZVBvc2l0aW9uID0gZ2V0TW91c2VQb3NpdGlvbkZyb21PbEdlb21ldHJ5RXZlbnQoXG4gICAgICAgICAgb2xHZW9tZXRyeUV2ZW50XG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuY2hhbmdlcyQubmV4dChvbEdlb21ldHJ5RXZlbnQudGFyZ2V0IGFzIE9sTGluZVN0cmluZyB8IE9sQ2lyY2xlIHwgT2xQb2x5Z29uKTtcbiAgICAgIH1cbiAgICApO1xuICAgIHRoaXMuc3Vic2NyaWJlVG9LZXlEb3duKCk7XG4gIH1cblxuICAvKipcbiAgICogV2hlbiBtb2RpZnlpbmcgZW5kcywgdXBkYXRlIHRoZSBnZW9tZXRyeSBvYnNlcnZhYmxlIGFuZCBzdG9wIHdhdGNoaW5nIGZvciBjaGFuZ2VzXG4gICAqIEBwYXJhbSBldmVudCBNb2RpZnkgZW5kIGV2ZW50XG4gICAqL1xuICBwcml2YXRlIG9uTW9kaWZ5RW5kKGV2ZW50OiBPbE1vZGlmeUV2ZW50KSB7XG4gICAgdW5CeUtleSh0aGlzLm9uTW9kaWZ5S2V5KTtcbiAgICB0aGlzLmVuZCQubmV4dChldmVudC5mZWF0dXJlcy5pdGVtKDApLmdldEdlb21ldHJ5KCkgYXMgT2xHZW9tZXRyeSk7XG4gICAgdGhpcy51bnN1YnNjcmliZVRvS2V5RG93bigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1YnNjcmliZSB0byBzcGFjZSBrZXkgZG93biB0byBwYW4gdGhlIG1hcFxuICAgKi9cbiAgcHJpdmF0ZSBzdWJzY3JpYmVUb0tleURvd24oKSB7XG4gICAgdGhpcy5rZXlEb3duJCQgPSBmcm9tRXZlbnQoZG9jdW1lbnQsICdrZXlkb3duJykuc3Vic2NyaWJlKFxuICAgICAgKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICcgJykge1xuICAgICAgICAgIC8vIE9uIHNwYWNlIGJhciwgcGFuIHRvIHRoZSBjdXJyZW50IG1vdXNlIHBvc2l0aW9uXG4gICAgICAgICAgdGhpcy5vbE1hcC5nZXRWaWV3KCkuYW5pbWF0ZSh7XG4gICAgICAgICAgICBjZW50ZXI6IHRoaXMubW91c2VQb3NpdGlvbixcbiAgICAgICAgICAgIGR1cmF0aW9uOiAwXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbnN1YnNjcmliZSB0byBrZXkgZG93blxuICAgKi9cbiAgcHJpdmF0ZSB1bnN1YnNjcmliZVRvS2V5RG93bigpIHtcbiAgICBpZiAodGhpcy5rZXlEb3duJCQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5rZXlEb3duJCQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgdHJhbnNsYXRlIGludGVyYWN0aW9uIHRvIHRoZSBtYXAgYW4gc2V0IHVwIHNvbWUgbGlzdGVuZXJzXG4gICAqL1xuICBwcml2YXRlIGFkZE9sVHJhbnNsYXRlSW50ZXJhY3Rpb24oKSB7XG4gICAgY29uc3Qgb2xUcmFuc2xhdGVJbnRlcmFjdGlvbiA9IG5ldyBPbFRyYW5zbGF0ZSh7XG4gICAgICBsYXllcnM6IFt0aGlzLm9sT3ZlcmxheUxheWVyXVxuICAgIH0pO1xuICAgIHRoaXMub2xUcmFuc2xhdGVJbnRlcmFjdGlvbiA9IG9sVHJhbnNsYXRlSW50ZXJhY3Rpb247XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIHRoZSB0cmFuc2xhdGUgaW50ZXJhY3Rpb25cbiAgICovXG4gIHByaXZhdGUgcmVtb3ZlT2xUcmFuc2xhdGVJbnRlcmFjdGlvbigpIHtcbiAgICBpZiAodGhpcy5vbFRyYW5zbGF0ZUludGVyYWN0aW9uID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmRlYWN0aXZhdGVUcmFuc2xhdGVJbnRlcmFjdGlvbigpO1xuICAgIHRoaXMub2xUcmFuc2xhdGVJbnRlcmFjdGlvbiA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgYWN0aXZhdGVUcmFuc2xhdGVJbnRlcmFjdGlvbigpIHtcbiAgICBpZiAodGhpcy5vbFRyYW5zbGF0ZUludGVyYWN0aW9uSXNBY3RpdmUgPT09IHRydWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm9sVHJhbnNsYXRlSW50ZXJhY3Rpb25Jc0FjdGl2ZSA9IHRydWU7XG4gICAgdGhpcy5vblRyYW5zbGF0ZVN0YXJ0S2V5ID0gdGhpcy5vbFRyYW5zbGF0ZUludGVyYWN0aW9uLm9uKFxuICAgICAgJ3RyYW5zbGF0ZXN0YXJ0JyxcbiAgICAgIChldmVudDogT2xUcmFuc2xhdGVFdmVudCkgPT4gdGhpcy5vblRyYW5zbGF0ZVN0YXJ0KGV2ZW50KVxuICAgICk7XG4gICAgdGhpcy5vblRyYW5zbGF0ZUVuZEtleSA9IHRoaXMub2xUcmFuc2xhdGVJbnRlcmFjdGlvbi5vbihcbiAgICAgICd0cmFuc2xhdGVlbmQnLFxuICAgICAgKGV2ZW50OiBPbFRyYW5zbGF0ZUV2ZW50KSA9PiB0aGlzLm9uVHJhbnNsYXRlRW5kKGV2ZW50KVxuICAgICk7XG4gICAgdGhpcy5vbE1hcC5hZGRJbnRlcmFjdGlvbih0aGlzLm9sVHJhbnNsYXRlSW50ZXJhY3Rpb24pO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWFjdGl2YXRlVHJhbnNsYXRlSW50ZXJhY3Rpb24oKSB7XG4gICAgaWYgKHRoaXMub2xUcmFuc2xhdGVJbnRlcmFjdGlvbklzQWN0aXZlID09PSBmYWxzZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMub2xUcmFuc2xhdGVJbnRlcmFjdGlvbklzQWN0aXZlID0gZmFsc2U7XG4gICAgdW5CeUtleShbXG4gICAgICB0aGlzLm9uVHJhbnNsYXRlU3RhcnRLZXksXG4gICAgICB0aGlzLm9uVHJhbnNsYXRlRW5kS2V5LFxuICAgICAgdGhpcy5vblRyYW5zbGF0ZUtleVxuICAgIF0pO1xuICAgIGlmICh0aGlzLm9sTWFwICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMub2xNYXAucmVtb3ZlSW50ZXJhY3Rpb24odGhpcy5vbFRyYW5zbGF0ZUludGVyYWN0aW9uKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogV2hlbiB0cmFuc2xhdGlvbiBzdGFydHMsIGNsZWFyIHRoZSBvdmVybGF5IGFuZCBzdGFydCB3YXRjaGluZyBmb3IgY2hhbmdlc1xuICAgKiBAcGFyYW0gZXZlbnQgVHJhbnNsYXRlIHN0YXJ0IGV2ZW50XG4gICAqL1xuICBwcml2YXRlIG9uVHJhbnNsYXRlU3RhcnQoZXZlbnQ6IE9sVHJhbnNsYXRlRXZlbnQpIHtcbiAgICBjb25zdCBvbEdlb21ldHJ5ID0gZXZlbnQuZmVhdHVyZXMuaXRlbSgwKS5nZXRHZW9tZXRyeSgpIGFzIE9sR2VvbWV0cnk7XG4gICAgdGhpcy5zdGFydCQubmV4dChvbEdlb21ldHJ5KTtcbiAgICB0aGlzLm9uVHJhbnNsYXRlS2V5ID0gb2xHZW9tZXRyeS5vbihcbiAgICAgICdjaGFuZ2UnLFxuICAgICAgKG9sR2VvbWV0cnlFdmVudDogQmFzaWNFdmVudCkgPT4ge1xuICAgICAgICAvLyB0aGlzLmNoYW5nZXMkLm5leHQob2xHZW9tZXRyeUV2ZW50LnRhcmdldCk7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGVuIHRyYW5zbGF0aW9uIGVuZHMsIHVwZGF0ZSB0aGUgZ2VvbWV0cnkgb2JzZXJ2YWJsZSBhbmQgc3RvcCB3YXRjaGlnbiBmb3IgY2hhbmdlc1xuICAgKiBAcGFyYW0gZXZlbnQgVHJhbnNsYXRlIGVuZCBldmVudFxuICAgKi9cbiAgcHJpdmF0ZSBvblRyYW5zbGF0ZUVuZChldmVudDogT2xUcmFuc2xhdGVFdmVudCkge1xuICAgIHVuQnlLZXkodGhpcy5vblRyYW5zbGF0ZUtleSk7XG4gICAgdGhpcy5lbmQkLm5leHQoZXZlbnQuZmVhdHVyZXMuaXRlbSgwKS5nZXRHZW9tZXRyeSgpIGFzIE9sR2VvbWV0cnkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIGRyYXcgaW50ZXJhY3Rpb24gdG8gdGhlIG1hcCBhbiBzZXQgdXAgc29tZSBsaXN0ZW5lcnNcbiAgICovXG4gIHByaXZhdGUgYWRkT2xEcmF3SW50ZXJhY3Rpb24oKSB7XG4gICAgY29uc3Qgb2xEcmF3SW50ZXJhY3Rpb24gPSBuZXcgT2xEcmF3KHtcbiAgICAgIHR5cGU6ICdQb2x5Z29uJyxcbiAgICAgIHNvdXJjZTogdGhpcy5vbExpbmVhclJpbmdzU291cmNlLFxuICAgICAgc3RvcENsaWNrOiB0cnVlLFxuICAgICAgc3R5bGU6IGNyZWF0ZURyYXdIb2xlSW50ZXJhY3Rpb25TdHlsZSgpLFxuICAgICAgY29uZGl0aW9uOiAoZXZlbnQ6IE1hcEJyb3dzZXJFdmVudDxhbnk+KSA9PiB7XG4gICAgICAgIGNvbnN0IG9sT3V0ZXJHZW9tZXRyeSA9IHRoaXMub2xPdXRlckdlb21ldHJ5IHx8IHRoaXMuZ2V0T2xHZW9tZXRyeSgpO1xuICAgICAgICBjb25zdCBpbnRlcnNlY3RzID0gb2xPdXRlckdlb21ldHJ5LmludGVyc2VjdHNDb29yZGluYXRlKFxuICAgICAgICAgIGV2ZW50LmNvb3JkaW5hdGVcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIGludGVyc2VjdHM7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLm9sRHJhd0ludGVyYWN0aW9uID0gb2xEcmF3SW50ZXJhY3Rpb247XG4gICAgdGhpcy5zdWJzY3JpYmVUb0RyYXdLZXlEb3duKCk7XG4gIH1cblxuICAvKipcbiAgICogU3Vic2NyaWJlIHRvIENUUkwga2V5IGRvd24gdG8gYWN0aXZhdGUgdGhlIGRyYXcgY29udHJvbFxuICAgKi9cbiAgcHJpdmF0ZSBzdWJzY3JpYmVUb0RyYXdLZXlEb3duKCkge1xuICAgIHRoaXMuZHJhd0tleURvd24kJCA9IGZyb21FdmVudChkb2N1bWVudCwgJ2tleWRvd24nKS5zdWJzY3JpYmUoXG4gICAgICAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50LmtleSAhPT0gJ0NvbnRyb2wnKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51bnN1YnNjcmliZVRvRHJhd0tleURvd24oKTtcblxuICAgICAgICBjb25zdCBvbEdlb21ldHJ5ID0gdGhpcy5nZXRPbEdlb21ldHJ5KCk7XG4gICAgICAgIGlmICghb2xHZW9tZXRyeSB8fCAhKG9sR2VvbWV0cnkgaW5zdGFuY2VvZiBPbFBvbHlnb24pKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zdWJzY3JpYmVUb0RyYXdLZXlVcCgpO1xuXG4gICAgICAgIHRoaXMuZGVhY3RpdmF0ZU1vZGlmeUludGVyYWN0aW9uKCk7XG4gICAgICAgIHRoaXMuZGVhY3RpdmF0ZVRyYW5zbGF0ZUludGVyYWN0aW9uKCk7XG4gICAgICAgIHRoaXMuYWN0aXZhdGVEcmF3SW50ZXJhY3Rpb24oKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1YnNjcmliZSB0byBDVFJMIGtleSB1cCB0byBkZWFjdGl2YXRlIHRoZSBkcmF3IGNvbnRyb2xcbiAgICovXG4gIHByaXZhdGUgc3Vic2NyaWJlVG9EcmF3S2V5VXAoKSB7XG4gICAgdGhpcy5kcmF3S2V5VXAkJCA9IGZyb21FdmVudChkb2N1bWVudCwgJ2tleXVwJykuc3Vic2NyaWJlKFxuICAgICAgKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChldmVudC5rZXkgIT09ICdDb250cm9sJykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmVUb0RyYXdLZXlVcCgpO1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlVG9LZXlEb3duKCk7XG4gICAgICAgIHRoaXMuZGVhY3RpdmF0ZURyYXdJbnRlcmFjdGlvbigpO1xuXG4gICAgICAgIHRoaXMuYWN0aXZhdGVNb2RpZnlJbnRlcmFjdGlvbigpO1xuICAgICAgICBpZiAodGhpcy50cmFuc2xhdGUgPT09IHRydWUpIHtcbiAgICAgICAgICB0aGlzLmFjdGl2YXRlVHJhbnNsYXRlSW50ZXJhY3Rpb24oKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN1YnNjcmliZVRvRHJhd0tleURvd24oKTtcblxuICAgICAgICB0aGlzLm9sT3V0ZXJHZW9tZXRyeSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5jbGVhck9sTGluZWFyUmluZ3NTb3VyY2UoKTtcbiAgICAgICAgdGhpcy5lbmQkLm5leHQodGhpcy5nZXRPbEdlb21ldHJ5KCkpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVW5zdWJzY3JpYmUgdG8gZHJhdyBrZXkgZG93blxuICAgKi9cbiAgcHJpdmF0ZSB1bnN1YnNjcmliZVRvRHJhd0tleURvd24oKSB7XG4gICAgaWYgKHRoaXMuZHJhd0tleURvd24kJCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmRyYXdLZXlEb3duJCQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVW5zdWJzY3JpYmUgdG8ga2V5IHVwXG4gICAqL1xuICBwcml2YXRlIHVuc3Vic2NyaWJlVG9EcmF3S2V5VXAoKSB7XG4gICAgaWYgKHRoaXMuZHJhd0tleVVwJCQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5kcmF3S2V5VXAkJC51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgdGhlIGRyYXcgaW50ZXJhY3Rpb25cbiAgICovXG4gIHByaXZhdGUgcmVtb3ZlT2xEcmF3SW50ZXJhY3Rpb24oKSB7XG4gICAgaWYgKHRoaXMub2xEcmF3SW50ZXJhY3Rpb24gPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudW5zdWJzY3JpYmVUb0tleURvd24oKTtcbiAgICB0aGlzLnVuc3Vic2NyaWJlVG9EcmF3S2V5VXAoKTtcbiAgICB0aGlzLnVuc3Vic2NyaWJlVG9EcmF3S2V5RG93bigpO1xuICAgIHRoaXMuZGVhY3RpdmF0ZURyYXdJbnRlcmFjdGlvbigpO1xuICAgIHRoaXMuY2xlYXJPbExpbmVhclJpbmdzU291cmNlKCk7XG4gICAgdGhpcy5vbERyYXdJbnRlcmFjdGlvbiA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY3RpdmF0ZSB0aGUgZHJhdyBpbnRlcmFjdGlvblxuICAgKi9cbiAgcHJpdmF0ZSBhY3RpdmF0ZURyYXdJbnRlcmFjdGlvbigpIHtcbiAgICBpZiAodGhpcy5vbERyYXdJbnRlcmFjdGlvbklzQWN0aXZlID09PSB0cnVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jbGVhck9sTGluZWFyUmluZ3NTb3VyY2UoKTtcbiAgICB0aGlzLmFkZE9sTGluZWFyUmluZ3NMYXllcigpO1xuXG4gICAgdGhpcy5vbE1hcC5nZXRJbnRlcmFjdGlvbnMoKS5mb3JFYWNoKChvbEludGVyYWN0aW9uOiBPbEludGVyYWN0aW9uKSA9PiB7XG4gICAgICBpZiAob2xJbnRlcmFjdGlvbiBpbnN0YW5jZW9mIE9sRHJhZ0JveEludGVyYWN0aW9uKSB7XG4gICAgICAgIHRoaXMub2xNYXAucmVtb3ZlSW50ZXJhY3Rpb24ob2xJbnRlcmFjdGlvbik7XG4gICAgICAgIHRoaXMucmVtb3ZlZE9sSW50ZXJhY3Rpb25zLnB1c2gob2xJbnRlcmFjdGlvbik7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLm9sRHJhd0ludGVyYWN0aW9uSXNBY3RpdmUgPSB0cnVlO1xuICAgIHRoaXMub25EcmF3U3RhcnRLZXkgPSB0aGlzLm9sRHJhd0ludGVyYWN0aW9uLm9uKFxuICAgICAgJ2RyYXdzdGFydCcsXG4gICAgICAoZXZlbnQ6IE9sRHJhd0V2ZW50KSA9PiB0aGlzLm9uRHJhd1N0YXJ0KGV2ZW50KVxuICAgICk7XG4gICAgdGhpcy5vbkRyYXdFbmRLZXkgPSB0aGlzLm9sRHJhd0ludGVyYWN0aW9uLm9uKFxuICAgICAgJ2RyYXdlbmQnLFxuICAgICAgKGV2ZW50OiBPbERyYXdFdmVudCkgPT4gdGhpcy5vbkRyYXdFbmQoZXZlbnQpXG4gICAgKTtcbiAgICB0aGlzLm9sTWFwLmFkZEludGVyYWN0aW9uKHRoaXMub2xEcmF3SW50ZXJhY3Rpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIERlYWN0aXZhdGUgdGhlIGRyYXcgaW50ZXJhY3Rpb25cbiAgICovXG4gIHByaXZhdGUgZGVhY3RpdmF0ZURyYXdJbnRlcmFjdGlvbigpIHtcbiAgICBpZiAodGhpcy5vbERyYXdJbnRlcmFjdGlvbklzQWN0aXZlID09PSBmYWxzZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucmVtb3ZlT2xMaW5lYXJSaW5nc0xheWVyKCk7XG5cbiAgICB0aGlzLnJlbW92ZWRPbEludGVyYWN0aW9ucy5mb3JFYWNoKChvbEludGVyYWN0aW9uOiBPbEludGVyYWN0aW9uKSA9PiB7XG4gICAgICB0aGlzLm9sTWFwLmFkZEludGVyYWN0aW9uKG9sSW50ZXJhY3Rpb24pO1xuICAgIH0pO1xuICAgIHRoaXMucmVtb3ZlZE9sSW50ZXJhY3Rpb25zID0gW107XG5cbiAgICB0aGlzLm9sRHJhd0ludGVyYWN0aW9uSXNBY3RpdmUgPSBmYWxzZTtcbiAgICB1bkJ5S2V5KFt0aGlzLm9uRHJhd1N0YXJ0S2V5LCB0aGlzLm9uRHJhd0VuZEtleSwgdGhpcy5vbkRyYXdLZXldKTtcbiAgICBpZiAodGhpcy5vbE1hcCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLm9sTWFwLnJlbW92ZUludGVyYWN0aW9uKHRoaXMub2xEcmF3SW50ZXJhY3Rpb24pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBXaGVuIGRyYXcgc3RhcnQsIGFkZCBhIG5ldyBsaW5lcmFyIHJpbmcgdG8gdGhlIGdlb21ldHJ5IGFuZCBzdGFydCB3YXRjaGluZyBmb3IgY2hhbmdlc1xuICAgKiBAcGFyYW0gZXZlbnQgRHJhdyBzdGFydCBldmVudFxuICAgKi9cbiAgcHJpdmF0ZSBvbkRyYXdTdGFydChldmVudDogT2xEcmF3RXZlbnQpIHtcbiAgICBjb25zdCBvbEdlb21ldHJ5ID0gZXZlbnQuZmVhdHVyZS5nZXRHZW9tZXRyeSgpO1xuICAgIHRoaXMub2xPdXRlckdlb21ldHJ5ID0gdGhpcy5nZXRPbEdlb21ldHJ5KCkuY2xvbmUoKTtcblxuICAgIGNvbnN0IGxpbmVhclJpbmdDb29yZGluYXRlcyA9IG9sR2VvbWV0cnkuZ2V0TGluZWFyUmluZygpLmdldENvb3JkaW5hdGVzKCk7XG4gICAgdGhpcy5hZGRMaW5lYXJSaW5nVG9PbEdlb21ldHJ5KGxpbmVhclJpbmdDb29yZGluYXRlcyk7XG4gICAgdGhpcy5zdGFydCQubmV4dCh0aGlzLmdldE9sR2VvbWV0cnkoKSk7XG5cbiAgICB0aGlzLm9uRHJhd0tleSA9IG9sR2VvbWV0cnkub24oXG4gICAgICAnY2hhbmdlJyxcbiAgICAgIChvbEdlb21ldHJ5RXZlbnQ6IEJhc2ljRXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy5tb3VzZVBvc2l0aW9uID0gZ2V0TW91c2VQb3NpdGlvbkZyb21PbEdlb21ldHJ5RXZlbnQoXG4gICAgICAgICAgb2xHZW9tZXRyeUV2ZW50XG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IG9sR2VvbWV0cnlUYXJnZXQgPSBvbEdlb21ldHJ5RXZlbnQudGFyZ2V0IGFzIE9sUG9seWdvbjtcbiAgICAgICAgY29uc3QgX2xpbmVhclJpbmdDb29yZGluYXRlcyA9IG9sR2VvbWV0cnlUYXJnZXRcbiAgICAgICAgICAuZ2V0TGluZWFyUmluZygwKVxuICAgICAgICAgIC5nZXRDb29yZGluYXRlcygpO1xuICAgICAgICB0aGlzLnVwZGF0ZUxpbmVhclJpbmdPZk9sR2VvbWV0cnkoX2xpbmVhclJpbmdDb29yZGluYXRlcyk7XG4gICAgICAgIHRoaXMuY2hhbmdlcyQubmV4dCh0aGlzLmdldE9sR2VvbWV0cnkoKSk7XG4gICAgICB9XG4gICAgKTtcbiAgICB0aGlzLnN1YnNjcmliZVRvS2V5RG93bigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZW4gdHJhbnNsYXRpb24gZW5kcywgdXBkYXRlIHRoZSBnZW9tZXRyeSBvYnNlcnZhYmxlIGFuZCBzdG9wIHdhdGNoaWduIGZvciBjaGFuZ2VzXG4gICAqIEBwYXJhbSBldmVudCBEcmF3IGVuZCBldmVudFxuICAgKi9cbiAgcHJpdmF0ZSBvbkRyYXdFbmQoZXZlbnQ6IE9sRHJhd0V2ZW50KSB7XG4gICAgdW5CeUtleSh0aGlzLm9uRHJhd0tleSk7XG4gICAgdGhpcy5vbE91dGVyR2VvbWV0cnkgPSB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBsaW5lYXJSaW5nQ29vcmRpbmF0ZXMgPSBldmVudC5mZWF0dXJlXG4gICAgICAuZ2V0R2VvbWV0cnkoKVxuICAgICAgLmdldExpbmVhclJpbmcoKVxuICAgICAgLmdldENvb3JkaW5hdGVzKCk7XG4gICAgdGhpcy51cGRhdGVMaW5lYXJSaW5nT2ZPbEdlb21ldHJ5KGxpbmVhclJpbmdDb29yZGluYXRlcyk7XG4gICAgdGhpcy5jbGVhck9sTGluZWFyUmluZ3NTb3VyY2UoKTtcbiAgICB0aGlzLmVuZCQubmV4dCh0aGlzLmdldE9sR2VvbWV0cnkoKSk7XG4gICAgdGhpcy51bnN1YnNjcmliZVRvS2V5RG93bigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIGxpbmVhciByaW5nIHRvIHRoZSBnZW9tZXRyeSBiZWluZyBtb2RpZmllZFxuICAgKiBAcGFyYW0gY29vcmRpbmF0ZXMgTGluZWFyIHJpbmcgY29vcmRpbmF0ZXNcbiAgICovXG4gIHByaXZhdGUgYWRkTGluZWFyUmluZ1RvT2xHZW9tZXRyeShjb29yZGluYXRlczogbnVtYmVyW10pIHtcbiAgICBjb25zdCBvbEdlb21ldHJ5ID0gdGhpcy5nZXRPbEdlb21ldHJ5KCkgYXMgT2xQb2x5Z29uO1xuICAgIGNvbnN0IG9sTGluZWFyUmluZyA9IG5ldyBPbExpbmVhclJpbmcoY29vcmRpbmF0ZXMpO1xuICAgIGFkZExpbmVhclJpbmdUb09sUG9seWdvbihvbEdlb21ldHJ5LCBvbExpbmVhclJpbmcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB0aGUgbGFzdCBsaW5lYXIgcmluZyBvZiB0aGUgZ2VvbWV0cnkgYmVpbmcgbW9kaWZpZWRcbiAgICogQHBhcmFtIGNvb3JkaW5hdGVzIExpbmVhciByaW5nIGNvb3JkaW5hdGVzXG4gICAqL1xuICBwcml2YXRlIHVwZGF0ZUxpbmVhclJpbmdPZk9sR2VvbWV0cnkoY29vcmRpbmF0ZXM6IG51bWJlcltdW10pIHtcbiAgICBjb25zdCBvbEdlb21ldHJ5ID0gdGhpcy5nZXRPbEdlb21ldHJ5KCkgYXMgT2xQb2x5Z29uO1xuICAgIC8vIFJlbW92ZSB0aGUgbGFzdCBsaW5lYXIgcmluZyAodGhlIG9uZSB3ZSBhcmUgdXBkYXRpbmcpXG4gICAgY29uc3Qgb2xMaW5lYXJSaW5ncyA9IG9sR2VvbWV0cnkuZ2V0TGluZWFyUmluZ3MoKS5zbGljZSgwLCAtMSk7XG4gICAgY29uc3QgbmV3Q29vcmRpbmF0ZXMgPSBvbExpbmVhclJpbmdzLm1hcCgob2xMaW5lYXJSaW5nOiBPbExpbmVhclJpbmcpID0+IHtcbiAgICAgIHJldHVybiBvbExpbmVhclJpbmcuZ2V0Q29vcmRpbmF0ZXMoKTtcbiAgICB9KTtcbiAgICBuZXdDb29yZGluYXRlcy5wdXNoKGNvb3JkaW5hdGVzKTtcbiAgICBvbEdlb21ldHJ5LnNldENvb3JkaW5hdGVzKG5ld0Nvb3JkaW5hdGVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGdlb21ldHJ5IGJlaW5nIG1vZGlmaWVkXG4gICAqIEByZXR1cm5zIE9MIEdlb21ldHJ5XG4gICAqL1xuICBwcml2YXRlIGdldE9sR2VvbWV0cnkoKTogT2xHZW9tZXRyeSB7XG4gICAgY29uc3Qgb2xGZWF0dXJlcyA9IHRoaXMub2xPdmVybGF5U291cmNlLmdldEZlYXR1cmVzKCk7XG4gICAgcmV0dXJuIG9sRmVhdHVyZXMubGVuZ3RoID4gMCA/IG9sRmVhdHVyZXNbMF0uZ2V0R2VvbWV0cnkoKSA6IHVuZGVmaW5lZDtcbiAgfVxufVxuIl19