@igo2/geo 1.14.3 → 1.14.4

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 (876) 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/esm2020/igo2-geo.mjs +4 -4
  7. package/esm2020/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +300 -300
  8. package/esm2020/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +305 -305
  9. package/esm2020/lib/catalog/catalog-browser/catalog-browser.component.mjs +246 -246
  10. package/esm2020/lib/catalog/catalog-browser/catalog-browser.module.mjs +79 -79
  11. package/esm2020/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +208 -208
  12. package/esm2020/lib/catalog/catalog-library/catalog-library-item.component.mjs +78 -78
  13. package/esm2020/lib/catalog/catalog-library/catalog-library.component.mjs +216 -216
  14. package/esm2020/lib/catalog/catalog-library/catalog-library.module.mjs +94 -94
  15. package/esm2020/lib/catalog/catalog.module.mjs +52 -52
  16. package/esm2020/lib/catalog/index.mjs +4 -4
  17. package/esm2020/lib/catalog/shared/catalog.abstract.mjs +94 -94
  18. package/esm2020/lib/catalog/shared/catalog.enum.mjs +15 -15
  19. package/esm2020/lib/catalog/shared/catalog.interface.mjs +1 -1
  20. package/esm2020/lib/catalog/shared/catalog.service.mjs +605 -605
  21. package/esm2020/lib/catalog/shared/index.mjs +5 -5
  22. package/esm2020/lib/datasource/datasource.module.mjs +21 -21
  23. package/esm2020/lib/datasource/index.mjs +3 -3
  24. package/esm2020/lib/datasource/shared/capabilities.service.mjs +431 -431
  25. package/esm2020/lib/datasource/shared/datasource.service.mjs +235 -235
  26. package/esm2020/lib/datasource/shared/datasources/any-datasource.interface.mjs +1 -1
  27. package/esm2020/lib/datasource/shared/datasources/any-datasource.mjs +1 -1
  28. package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.interface.mjs +1 -1
  29. package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +144 -144
  30. package/esm2020/lib/datasource/shared/datasources/carto-datasource.interface.mjs +1 -1
  31. package/esm2020/lib/datasource/shared/datasources/carto-datasource.mjs +108 -108
  32. package/esm2020/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +1 -1
  33. package/esm2020/lib/datasource/shared/datasources/cluster-datasource.mjs +14 -14
  34. package/esm2020/lib/datasource/shared/datasources/data.service.mjs +2 -2
  35. package/esm2020/lib/datasource/shared/datasources/datasource.interface.mjs +1 -1
  36. package/esm2020/lib/datasource/shared/datasources/datasource.mjs +28 -28
  37. package/esm2020/lib/datasource/shared/datasources/feature-datasource.interface.mjs +1 -1
  38. package/esm2020/lib/datasource/shared/datasources/feature-datasource.mjs +42 -42
  39. package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.mjs +1 -1
  40. package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +56 -56
  41. package/esm2020/lib/datasource/shared/datasources/index.mjs +36 -36
  42. package/esm2020/lib/datasource/shared/datasources/mvt-datasource.interface.mjs +1 -1
  43. package/esm2020/lib/datasource/shared/datasources/mvt-datasource.mjs +27 -27
  44. package/esm2020/lib/datasource/shared/datasources/osm-datasource.interface.mjs +1 -1
  45. package/esm2020/lib/datasource/shared/datasources/osm-datasource.mjs +11 -11
  46. package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.mjs +1 -1
  47. package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +48 -48
  48. package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.interface.mjs +1 -1
  49. package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.mjs +14 -14
  50. package/esm2020/lib/datasource/shared/datasources/websocket-datasource.interface.mjs +1 -1
  51. package/esm2020/lib/datasource/shared/datasources/websocket-datasource.mjs +53 -53
  52. package/esm2020/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +1 -1
  53. package/esm2020/lib/datasource/shared/datasources/wfs-datasource.mjs +71 -71
  54. package/esm2020/lib/datasource/shared/datasources/wfs.service.mjs +151 -151
  55. package/esm2020/lib/datasource/shared/datasources/wms-datasource.interface.mjs +1 -1
  56. package/esm2020/lib/datasource/shared/datasources/wms-datasource.mjs +205 -205
  57. package/esm2020/lib/datasource/shared/datasources/wms-wfs.utils.mjs +206 -206
  58. package/esm2020/lib/datasource/shared/datasources/wmts-datasource.interface.mjs +1 -1
  59. package/esm2020/lib/datasource/shared/datasources/wmts-datasource.mjs +15 -15
  60. package/esm2020/lib/datasource/shared/datasources/xyz-datasource.interface.mjs +1 -1
  61. package/esm2020/lib/datasource/shared/datasources/xyz-datasource.mjs +8 -8
  62. package/esm2020/lib/datasource/shared/index.mjs +4 -4
  63. package/esm2020/lib/datasource/shared/options/index.mjs +4 -4
  64. package/esm2020/lib/datasource/shared/options/options-api.interface.mjs +1 -1
  65. package/esm2020/lib/datasource/shared/options/options-api.providers.mjs +14 -14
  66. package/esm2020/lib/datasource/shared/options/options-api.service.mjs +80 -80
  67. package/esm2020/lib/datasource/shared/options/options.service.mjs +2 -2
  68. package/esm2020/lib/datasource/utils/esri-style-generator.mjs +356 -356
  69. package/esm2020/lib/datasource/utils/index.mjs +2 -2
  70. package/esm2020/lib/datasource/utils/tilegrid.mjs +19 -19
  71. package/esm2020/lib/directions/directions-buttons/directions-buttons.component.mjs +223 -223
  72. package/esm2020/lib/directions/directions-buttons/index.mjs +2 -2
  73. package/esm2020/lib/directions/directions-inputs/directions-inputs.component.mjs +289 -289
  74. package/esm2020/lib/directions/directions-inputs/index.mjs +2 -2
  75. package/esm2020/lib/directions/directions-results/directions-results.component.mjs +195 -195
  76. package/esm2020/lib/directions/directions-results/index.mjs +2 -2
  77. package/esm2020/lib/directions/directions-sources/directions-source.interface.mjs +1 -1
  78. package/esm2020/lib/directions/directions-sources/directions-source.mjs +2 -2
  79. package/esm2020/lib/directions/directions-sources/directions-source.provider.mjs +15 -15
  80. package/esm2020/lib/directions/directions-sources/index.mjs +5 -5
  81. package/esm2020/lib/directions/directions-sources/osrm-directions-source.mjs +99 -99
  82. package/esm2020/lib/directions/directions.component.mjs +310 -310
  83. package/esm2020/lib/directions/directions.module.mjs +101 -101
  84. package/esm2020/lib/directions/index.mjs +7 -7
  85. package/esm2020/lib/directions/shared/directions-source.service.mjs +17 -17
  86. package/esm2020/lib/directions/shared/directions.enum.mjs +28 -28
  87. package/esm2020/lib/directions/shared/directions.interface.mjs +1 -1
  88. package/esm2020/lib/directions/shared/directions.service.mjs +28 -28
  89. package/esm2020/lib/directions/shared/directions.utils.mjs +508 -508
  90. package/esm2020/lib/directions/shared/index.mjs +6 -6
  91. package/esm2020/lib/directions/shared/store.mjs +23 -23
  92. package/esm2020/lib/download/download-button/download-button.component.mjs +60 -60
  93. package/esm2020/lib/download/download-button/index.mjs +2 -2
  94. package/esm2020/lib/download/download.module.mjs +41 -41
  95. package/esm2020/lib/download/index.mjs +3 -3
  96. package/esm2020/lib/download/shared/download.interface.mjs +2 -2
  97. package/esm2020/lib/download/shared/download.service.mjs +64 -64
  98. package/esm2020/lib/download/shared/index.mjs +3 -3
  99. package/esm2020/lib/draw/draw/draw-layer-popup.component.mjs +54 -54
  100. package/esm2020/lib/draw/draw/draw-popup.component.mjs +590 -590
  101. package/esm2020/lib/draw/draw/draw-shorcuts.component.mjs +47 -47
  102. package/esm2020/lib/draw/draw/draw.component.mjs +1298 -1298
  103. package/esm2020/lib/draw/draw/draw.module.mjs +112 -112
  104. package/esm2020/lib/draw/drawingTool.module.mjs +19 -19
  105. package/esm2020/lib/draw/index.mjs +3 -3
  106. package/esm2020/lib/draw/shared/draw-icon.service.mjs +26 -26
  107. package/esm2020/lib/draw/shared/draw-style.service.mjs +189 -189
  108. package/esm2020/lib/draw/shared/draw.enum.mjs +36 -36
  109. package/esm2020/lib/draw/shared/draw.interface.mjs +1 -1
  110. package/esm2020/lib/draw/shared/draw.utils.mjs +121 -121
  111. package/esm2020/lib/draw/shared/index.mjs +5 -5
  112. package/esm2020/lib/feature/feature-details/feature-details.component.mjs +404 -404
  113. package/esm2020/lib/feature/feature-details/feature-details.directive.mjs +53 -53
  114. package/esm2020/lib/feature/feature-details/feature-details.module.mjs +47 -47
  115. package/esm2020/lib/feature/feature-form/feature-form.component.mjs +111 -111
  116. package/esm2020/lib/feature/feature-form/feature-form.module.mjs +33 -33
  117. package/esm2020/lib/feature/feature.module.mjs +27 -27
  118. package/esm2020/lib/feature/index.mjs +3 -3
  119. package/esm2020/lib/feature/shared/feature.enums.mjs +9 -9
  120. package/esm2020/lib/feature/shared/feature.interfaces.mjs +1 -1
  121. package/esm2020/lib/feature/shared/feature.utils.mjs +346 -346
  122. package/esm2020/lib/feature/shared/index.mjs +6 -6
  123. package/esm2020/lib/feature/shared/store.mjs +123 -123
  124. package/esm2020/lib/feature/shared/strategies/in-map-extent.mjs +112 -112
  125. package/esm2020/lib/feature/shared/strategies/in-map-resolution.mjs +93 -93
  126. package/esm2020/lib/feature/shared/strategies/index.mjs +5 -5
  127. package/esm2020/lib/feature/shared/strategies/loading-layer.mjs +103 -103
  128. package/esm2020/lib/feature/shared/strategies/loading.mjs +132 -132
  129. package/esm2020/lib/feature/shared/strategies/selection.mjs +369 -369
  130. package/esm2020/lib/feature/shared/strategies.utils.mjs +36 -36
  131. package/esm2020/lib/filter/filter.module.mjs +288 -288
  132. package/esm2020/lib/filter/index.mjs +15 -15
  133. package/esm2020/lib/filter/ogc-filter-button/index.mjs +1 -1
  134. package/esm2020/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +139 -139
  135. package/esm2020/lib/filter/ogc-filter-form/index.mjs +1 -1
  136. package/esm2020/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +644 -644
  137. package/esm2020/lib/filter/ogc-filter-selection/index.mjs +1 -1
  138. package/esm2020/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +1301 -1301
  139. package/esm2020/lib/filter/ogc-filter-time/index.mjs +2 -2
  140. package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +176 -176
  141. package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +897 -897
  142. package/esm2020/lib/filter/ogc-filterable-form/index.mjs +1 -1
  143. package/esm2020/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +58 -58
  144. package/esm2020/lib/filter/ogc-filterable-item/index.mjs +1 -1
  145. package/esm2020/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +306 -306
  146. package/esm2020/lib/filter/ogc-filterable-list/index.mjs +2 -2
  147. package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +30 -30
  148. package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +43 -43
  149. package/esm2020/lib/filter/shared/filterable-datasource.pipe.mjs +54 -54
  150. package/esm2020/lib/filter/shared/index.mjs +11 -11
  151. package/esm2020/lib/filter/shared/ogc-filter-time.service.mjs +71 -71
  152. package/esm2020/lib/filter/shared/ogc-filter.enum.mjs +29 -29
  153. package/esm2020/lib/filter/shared/ogc-filter.interface.mjs +1 -1
  154. package/esm2020/lib/filter/shared/ogc-filter.mjs +691 -691
  155. package/esm2020/lib/filter/shared/ogc-filter.service.mjs +45 -45
  156. package/esm2020/lib/filter/shared/spatial-filter.enum.mjs +22 -22
  157. package/esm2020/lib/filter/shared/spatial-filter.interface.mjs +1 -1
  158. package/esm2020/lib/filter/shared/spatial-filter.service.mjs +268 -268
  159. package/esm2020/lib/filter/shared/time-filter.enum.mjs +12 -12
  160. package/esm2020/lib/filter/shared/time-filter.interface.mjs +1 -1
  161. package/esm2020/lib/filter/shared/time-filter.service.mjs +106 -106
  162. package/esm2020/lib/filter/spatial-filter/spatial-filter-item/index.mjs +1 -1
  163. package/esm2020/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +1088 -1088
  164. package/esm2020/lib/filter/spatial-filter/spatial-filter-list/index.mjs +1 -1
  165. package/esm2020/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +207 -207
  166. package/esm2020/lib/filter/spatial-filter/spatial-filter-type/index.mjs +1 -1
  167. package/esm2020/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +143 -143
  168. package/esm2020/lib/filter/time-filter-button/index.mjs +1 -1
  169. package/esm2020/lib/filter/time-filter-button/time-filter-button.component.mjs +77 -77
  170. package/esm2020/lib/filter/time-filter-form/index.mjs +1 -1
  171. package/esm2020/lib/filter/time-filter-form/time-filter-form.component.mjs +733 -733
  172. package/esm2020/lib/filter/time-filter-item/index.mjs +1 -1
  173. package/esm2020/lib/filter/time-filter-item/time-filter-item.component.mjs +118 -118
  174. package/esm2020/lib/filter/time-filter-list/index.mjs +2 -2
  175. package/esm2020/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +30 -30
  176. package/esm2020/lib/filter/time-filter-list/time-filter-list.component.mjs +38 -38
  177. package/esm2020/lib/geo.module.mjs +101 -101
  178. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +520 -520
  179. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +188 -188
  180. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +63 -63
  181. package/esm2020/lib/geometry/geometry.module.mjs +26 -26
  182. package/esm2020/lib/geometry/index.mjs +3 -3
  183. package/esm2020/lib/geometry/shared/controls/draw.mjs +313 -313
  184. package/esm2020/lib/geometry/shared/controls/index.mjs +4 -4
  185. package/esm2020/lib/geometry/shared/controls/modify.mjs +520 -520
  186. package/esm2020/lib/geometry/shared/controls/slice.mjs +176 -176
  187. package/esm2020/lib/geometry/shared/geometry.errors.mjs +25 -25
  188. package/esm2020/lib/geometry/shared/geometry.interfaces.mjs +1 -1
  189. package/esm2020/lib/geometry/shared/geometry.utils.mjs +121 -121
  190. package/esm2020/lib/geometry/shared/index.mjs +5 -5
  191. package/esm2020/lib/import-export/export-button/export-button.component.mjs +63 -63
  192. package/esm2020/lib/import-export/export-button/index.mjs +2 -2
  193. package/esm2020/lib/import-export/import-export/import-export.component.mjs +1219 -1219
  194. package/esm2020/lib/import-export/import-export/index.mjs +2 -2
  195. package/esm2020/lib/import-export/import-export.module.mjs +95 -95
  196. package/esm2020/lib/import-export/index.mjs +4 -4
  197. package/esm2020/lib/import-export/shared/drop-geo-file.directive.mjs +134 -134
  198. package/esm2020/lib/import-export/shared/export.errors.mjs +15 -15
  199. package/esm2020/lib/import-export/shared/export.interface.mjs +1 -1
  200. package/esm2020/lib/import-export/shared/export.service.mjs +194 -194
  201. package/esm2020/lib/import-export/shared/export.type.mjs +3 -3
  202. package/esm2020/lib/import-export/shared/export.utils.mjs +54 -54
  203. package/esm2020/lib/import-export/shared/import.errors.mjs +38 -38
  204. package/esm2020/lib/import-export/shared/import.interface.mjs +1 -1
  205. package/esm2020/lib/import-export/shared/import.service.mjs +214 -214
  206. package/esm2020/lib/import-export/shared/import.utils.mjs +234 -234
  207. package/esm2020/lib/import-export/shared/index.mjs +11 -11
  208. package/esm2020/lib/import-export/style-list/index.mjs +4 -4
  209. package/esm2020/lib/import-export/style-list/style-list.interface.mjs +1 -1
  210. package/esm2020/lib/import-export/style-list/style-list.module.mjs +22 -22
  211. package/esm2020/lib/import-export/style-list/style-list.provider.mjs +20 -20
  212. package/esm2020/lib/import-export/style-list/style-list.service.mjs +50 -50
  213. package/esm2020/lib/layer/index.mjs +10 -10
  214. package/esm2020/lib/layer/layer-item/index.mjs +1 -1
  215. package/esm2020/lib/layer/layer-item/layer-item.component.mjs +299 -299
  216. package/esm2020/lib/layer/layer-legend/index.mjs +1 -1
  217. package/esm2020/lib/layer/layer-legend/layer-legend.component.mjs +387 -387
  218. package/esm2020/lib/layer/layer-legend-item/index.mjs +1 -1
  219. package/esm2020/lib/layer/layer-legend-item/layer-legend-item.component.mjs +83 -83
  220. package/esm2020/lib/layer/layer-legend-list/index.mjs +2 -2
  221. package/esm2020/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +47 -47
  222. package/esm2020/lib/layer/layer-legend-list/layer-legend-list.component.mjs +194 -194
  223. package/esm2020/lib/layer/layer-list/index.mjs +3 -3
  224. package/esm2020/lib/layer/layer-list/layer-list-binding.directive.mjs +58 -58
  225. package/esm2020/lib/layer/layer-list/layer-list.component.mjs +1008 -1008
  226. package/esm2020/lib/layer/layer-list/layer-list.enum.mjs +18 -18
  227. package/esm2020/lib/layer/layer-list-tool/index.mjs +4 -4
  228. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.component.mjs +164 -164
  229. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.enum.mjs +6 -6
  230. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.interface.mjs +1 -1
  231. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.service.mjs +21 -21
  232. package/esm2020/lib/layer/layer.module.mjs +184 -184
  233. package/esm2020/lib/layer/shared/clusterParam.mjs +1 -1
  234. package/esm2020/lib/layer/shared/index.mjs +6 -6
  235. package/esm2020/lib/layer/shared/layer.enums.mjs +1 -1
  236. package/esm2020/lib/layer/shared/layer.service.mjs +185 -185
  237. package/esm2020/lib/layer/shared/layers/any-layer.interface.mjs +1 -1
  238. package/esm2020/lib/layer/shared/layers/any-layer.mjs +1 -1
  239. package/esm2020/lib/layer/shared/layers/image-layer.interface.mjs +1 -1
  240. package/esm2020/lib/layer/shared/layers/image-layer.mjs +67 -67
  241. package/esm2020/lib/layer/shared/layers/index.mjs +13 -13
  242. package/esm2020/lib/layer/shared/layers/layer.interface.mjs +16 -16
  243. package/esm2020/lib/layer/shared/layers/layer.mjs +163 -163
  244. package/esm2020/lib/layer/shared/layers/tile-layer.interface.mjs +1 -1
  245. package/esm2020/lib/layer/shared/layers/tile-layer.mjs +46 -46
  246. package/esm2020/lib/layer/shared/layers/vector-layer.interface.mjs +1 -1
  247. package/esm2020/lib/layer/shared/layers/vector-layer.mjs +377 -377
  248. package/esm2020/lib/layer/shared/layers/vectortile-layer.interface.mjs +1 -1
  249. package/esm2020/lib/layer/shared/layers/vectortile-layer.mjs +103 -103
  250. package/esm2020/lib/layer/shared/style.service.mjs +355 -355
  251. package/esm2020/lib/layer/shared/vector-style.interface.mjs +1 -1
  252. package/esm2020/lib/layer/style-modal/index.mjs +1 -1
  253. package/esm2020/lib/layer/style-modal/style-modal.component.mjs +287 -287
  254. package/esm2020/lib/layer/track-feature-button/index.mjs +1 -1
  255. package/esm2020/lib/layer/track-feature-button/track-feature-button.component.mjs +58 -58
  256. package/esm2020/lib/layer/utils/image-watcher.mjs +61 -61
  257. package/esm2020/lib/layer/utils/index.mjs +5 -5
  258. package/esm2020/lib/layer/utils/layer.utils.mjs +9 -9
  259. package/esm2020/lib/layer/utils/outputLegend.mjs +26 -26
  260. package/esm2020/lib/layer/utils/tile-watcher.mjs +49 -49
  261. package/esm2020/lib/layer/utils/vector-watcher.mjs +47 -47
  262. package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.animation.mjs +19 -19
  263. package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +96 -96
  264. package/esm2020/lib/map/baselayers-switcher/index.mjs +2 -2
  265. package/esm2020/lib/map/baselayers-switcher/mini-basemap.component.mjs +140 -140
  266. package/esm2020/lib/map/geolocate-button/geolocate-button.component.mjs +78 -78
  267. package/esm2020/lib/map/geolocate-button/index.mjs +1 -1
  268. package/esm2020/lib/map/home-extent-button/home-extent-button.component.mjs +62 -62
  269. package/esm2020/lib/map/home-extent-button/index.mjs +1 -1
  270. package/esm2020/lib/map/index.mjs +13 -13
  271. package/esm2020/lib/map/info-section/index.mjs +1 -1
  272. package/esm2020/lib/map/info-section/info-section.component.mjs +29 -29
  273. package/esm2020/lib/map/map-browser/index.mjs +1 -1
  274. package/esm2020/lib/map/map-browser/map-browser.component.mjs +65 -65
  275. package/esm2020/lib/map/map-center/index.mjs +1 -1
  276. package/esm2020/lib/map/map-center/map-center.component.mjs +49 -49
  277. package/esm2020/lib/map/map.module.mjs +126 -126
  278. package/esm2020/lib/map/menu-button/index.mjs +1 -1
  279. package/esm2020/lib/map/menu-button/menu-button.component.mjs +61 -61
  280. package/esm2020/lib/map/offline-button/index.mjs +1 -1
  281. package/esm2020/lib/map/offline-button/offline-button.component.mjs +75 -75
  282. package/esm2020/lib/map/rotation-button/index.mjs +1 -1
  283. package/esm2020/lib/map/rotation-button/rotation-button.component.mjs +69 -69
  284. package/esm2020/lib/map/shared/controllers/controller.mjs +41 -41
  285. package/esm2020/lib/map/shared/controllers/geolocation.mjs +307 -307
  286. package/esm2020/lib/map/shared/controllers/index.mjs +3 -3
  287. package/esm2020/lib/map/shared/controllers/view.mjs +350 -350
  288. package/esm2020/lib/map/shared/hover-feature.directive.mjs +502 -502
  289. package/esm2020/lib/map/shared/index.mjs +13 -13
  290. package/esm2020/lib/map/shared/linkedLayers.utils.mjs +237 -237
  291. package/esm2020/lib/map/shared/map-pointer-position.directive.mjs +106 -106
  292. package/esm2020/lib/map/shared/map.enums.mjs +5 -5
  293. package/esm2020/lib/map/shared/map.interface.mjs +1 -1
  294. package/esm2020/lib/map/shared/map.mjs +412 -407
  295. package/esm2020/lib/map/shared/map.service.mjs +28 -28
  296. package/esm2020/lib/map/shared/map.utils.mjs +462 -462
  297. package/esm2020/lib/map/shared/mapOffline.directive.mjs +162 -162
  298. package/esm2020/lib/map/shared/projection.interfaces.mjs +1 -1
  299. package/esm2020/lib/map/shared/projection.service.mjs +64 -64
  300. package/esm2020/lib/map/shared/projection.utils.mjs +63 -63
  301. package/esm2020/lib/map/swipe-control/index.mjs +1 -1
  302. package/esm2020/lib/map/swipe-control/swipe-control.component.mjs +192 -192
  303. package/esm2020/lib/map/utils/layer-watcher.mjs +78 -78
  304. package/esm2020/lib/map/wake-lock-button/index.mjs +1 -1
  305. package/esm2020/lib/map/wake-lock-button/wake-lock-button.component.mjs +113 -113
  306. package/esm2020/lib/map/zoom-button/index.mjs +1 -1
  307. package/esm2020/lib/map/zoom-button/zoom-button.component.mjs +39 -39
  308. package/esm2020/lib/measure/index.mjs +3 -3
  309. package/esm2020/lib/measure/measure.module.mjs +19 -19
  310. package/esm2020/lib/measure/measurer/measure-format.pipe.mjs +36 -36
  311. package/esm2020/lib/measure/measurer/measurer-dialog.component.mjs +179 -179
  312. package/esm2020/lib/measure/measurer/measurer-item.component.mjs +139 -139
  313. package/esm2020/lib/measure/measurer/measurer.component.mjs +1041 -1041
  314. package/esm2020/lib/measure/measurer/measurer.module.mjs +93 -93
  315. package/esm2020/lib/measure/shared/index.mjs +4 -4
  316. package/esm2020/lib/measure/shared/measure.enum.mjs +36 -36
  317. package/esm2020/lib/measure/shared/measure.interfaces.mjs +1 -1
  318. package/esm2020/lib/measure/shared/measure.utils.mjs +488 -488
  319. package/esm2020/lib/metadata/index.mjs +2 -2
  320. package/esm2020/lib/metadata/metadata-button/index.mjs +2 -2
  321. package/esm2020/lib/metadata/metadata-button/metadata-button.component.mjs +134 -134
  322. package/esm2020/lib/metadata/metadata.module.mjs +54 -54
  323. package/esm2020/lib/metadata/shared/index.mjs +3 -3
  324. package/esm2020/lib/metadata/shared/metadata.interface.mjs +1 -1
  325. package/esm2020/lib/metadata/shared/metadata.service.mjs +19 -19
  326. package/esm2020/lib/offline/geoDB/configFileToGeoDB.service.mjs +104 -104
  327. package/esm2020/lib/offline/geoDB/geoDB.enums.mjs +5 -5
  328. package/esm2020/lib/offline/geoDB/geoDB.interface.mjs +1 -1
  329. package/esm2020/lib/offline/geoDB/geoDB.service.mjs +166 -166
  330. package/esm2020/lib/offline/geoDB/index.mjs +5 -5
  331. package/esm2020/lib/offline/index.mjs +2 -2
  332. package/esm2020/lib/offline/shared/geo-network.service.mjs +65 -65
  333. package/esm2020/lib/offline/shared/index.mjs +2 -2
  334. package/esm2020/lib/overlay/index.mjs +2 -2
  335. package/esm2020/lib/overlay/overlay.module.mjs +22 -22
  336. package/esm2020/lib/overlay/shared/index.mjs +6 -6
  337. package/esm2020/lib/overlay/shared/overlay-marker-style.utils.mjs +68 -68
  338. package/esm2020/lib/overlay/shared/overlay.directive.mjs +32 -32
  339. package/esm2020/lib/overlay/shared/overlay.enum.mjs +7 -7
  340. package/esm2020/lib/overlay/shared/overlay.mjs +129 -129
  341. package/esm2020/lib/overlay/shared/overlay.service.mjs +26 -26
  342. package/esm2020/lib/overlay/shared/overlay.utils.mjs +102 -102
  343. package/esm2020/lib/print/index.mjs +4 -4
  344. package/esm2020/lib/print/print/print.component.mjs +125 -125
  345. package/esm2020/lib/print/print-form/index.mjs +2 -2
  346. package/esm2020/lib/print/print-form/print-form.component.mjs +427 -427
  347. package/esm2020/lib/print/print.module.mjs +64 -64
  348. package/esm2020/lib/print/shared/geopdf.mjs +57 -57
  349. package/esm2020/lib/print/shared/index.mjs +5 -5
  350. package/esm2020/lib/print/shared/print.interface.mjs +1 -1
  351. package/esm2020/lib/print/shared/print.service.mjs +933 -933
  352. package/esm2020/lib/print/shared/print.type.mjs +29 -29
  353. package/esm2020/lib/query/index.mjs +2 -2
  354. package/esm2020/lib/query/query.module.mjs +28 -28
  355. package/esm2020/lib/query/shared/index.mjs +7 -7
  356. package/esm2020/lib/query/shared/query-search-source.mjs +34 -34
  357. package/esm2020/lib/query/shared/query-search-source.providers.mjs +21 -21
  358. package/esm2020/lib/query/shared/query.directive.mjs +260 -260
  359. package/esm2020/lib/query/shared/query.enums.mjs +30 -30
  360. package/esm2020/lib/query/shared/query.interfaces.mjs +1 -1
  361. package/esm2020/lib/query/shared/query.service.mjs +732 -732
  362. package/esm2020/lib/query/shared/query.utils.mjs +36 -36
  363. package/esm2020/lib/search/index.mjs +11 -11
  364. package/esm2020/lib/search/search-bar/search-bar.component.mjs +511 -511
  365. package/esm2020/lib/search/search-bar/search-bar.module.mjs +74 -74
  366. package/esm2020/lib/search/search-bar/search-url-param.directive.mjs +34 -34
  367. package/esm2020/lib/search/search-results/save-feature-dialog.component.mjs +117 -117
  368. package/esm2020/lib/search/search-results/search-results-add-button.component.mjs +370 -370
  369. package/esm2020/lib/search/search-results/search-results-item.component.mjs +123 -123
  370. package/esm2020/lib/search/search-results/search-results.component.mjs +339 -339
  371. package/esm2020/lib/search/search-results/search-results.module.mjs +103 -103
  372. package/esm2020/lib/search/search-selector/search-selector.component.mjs +122 -122
  373. package/esm2020/lib/search/search-selector/search-selector.module.mjs +55 -55
  374. package/esm2020/lib/search/search-settings/search-settings.component.mjs +441 -441
  375. package/esm2020/lib/search/search-settings/search-settings.module.mjs +59 -59
  376. package/esm2020/lib/search/search.module.mjs +66 -66
  377. package/esm2020/lib/search/shared/index.mjs +9 -9
  378. package/esm2020/lib/search/shared/search-pointer-summary.directive.mjs +321 -321
  379. package/esm2020/lib/search/shared/search-source-service.providers.mjs +19 -19
  380. package/esm2020/lib/search/shared/search-source.service.mjs +46 -46
  381. package/esm2020/lib/search/shared/search.enums.mjs +3 -3
  382. package/esm2020/lib/search/shared/search.interfaces.mjs +1 -1
  383. package/esm2020/lib/search/shared/search.service.mjs +120 -120
  384. package/esm2020/lib/search/shared/search.utils.mjs +90 -90
  385. package/esm2020/lib/search/shared/sources/coordinates.interfaces.mjs +1 -1
  386. package/esm2020/lib/search/shared/sources/coordinates.mjs +153 -153
  387. package/esm2020/lib/search/shared/sources/coordinates.providers.mjs +39 -39
  388. package/esm2020/lib/search/shared/sources/icherche.interfaces.mjs +1 -1
  389. package/esm2020/lib/search/shared/sources/icherche.mjs +767 -767
  390. package/esm2020/lib/search/shared/sources/icherche.providers.mjs +65 -65
  391. package/esm2020/lib/search/shared/sources/ilayer.interfaces.mjs +1 -1
  392. package/esm2020/lib/search/shared/sources/ilayer.mjs +320 -320
  393. package/esm2020/lib/search/shared/sources/ilayer.providers.mjs +39 -39
  394. package/esm2020/lib/search/shared/sources/index.mjs +17 -17
  395. package/esm2020/lib/search/shared/sources/nominatim.interfaces.mjs +2 -2
  396. package/esm2020/lib/search/shared/sources/nominatim.mjs +252 -252
  397. package/esm2020/lib/search/shared/sources/nominatim.providers.mjs +22 -22
  398. package/esm2020/lib/search/shared/sources/source.interfaces.mjs +1 -1
  399. package/esm2020/lib/search/shared/sources/source.mjs +178 -178
  400. package/esm2020/lib/search/shared/sources/storedqueries.interfaces.mjs +1 -1
  401. package/esm2020/lib/search/shared/sources/storedqueries.mjs +425 -425
  402. package/esm2020/lib/search/shared/sources/storedqueries.providers.mjs +40 -40
  403. package/esm2020/lib/toast/index.mjs +2 -2
  404. package/esm2020/lib/toast/toast.component.mjs +112 -112
  405. package/esm2020/lib/toast/toast.module.mjs +44 -44
  406. package/esm2020/lib/utils/commonVectorStyle.interface.mjs +1 -1
  407. package/esm2020/lib/utils/commonVectorStyle.mjs +74 -74
  408. package/esm2020/lib/utils/googleLinks.mjs +12 -12
  409. package/esm2020/lib/utils/id-generator.mjs +109 -109
  410. package/esm2020/lib/utils/index.mjs +5 -5
  411. package/esm2020/lib/utils/osmLinks.mjs +9 -9
  412. package/esm2020/lib/wkt/index.mjs +2 -2
  413. package/esm2020/lib/wkt/shared/index.mjs +2 -2
  414. package/esm2020/lib/wkt/shared/wkt.service.mjs +224 -224
  415. package/esm2020/lib/wkt/wkt.module.mjs +21 -21
  416. package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +47 -47
  417. package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +35 -35
  418. package/esm2020/lib/workspace/confirmation-popup/index.mjs +2 -2
  419. package/esm2020/lib/workspace/index.mjs +8 -8
  420. package/esm2020/lib/workspace/shared/edition-workspace.mjs +279 -279
  421. package/esm2020/lib/workspace/shared/edition-workspace.service.mjs +656 -656
  422. package/esm2020/lib/workspace/shared/feature-workspace.mjs +34 -34
  423. package/esm2020/lib/workspace/shared/feature-workspace.service.mjs +149 -149
  424. package/esm2020/lib/workspace/shared/index.mjs +8 -8
  425. package/esm2020/lib/workspace/shared/wfs-workspace.mjs +34 -34
  426. package/esm2020/lib/workspace/shared/wfs-workspace.service.mjs +149 -149
  427. package/esm2020/lib/workspace/shared/wms-workspace.service.mjs +259 -259
  428. package/esm2020/lib/workspace/shared/workspace.utils.mjs +23 -23
  429. package/esm2020/lib/workspace/widgets/index.mjs +4 -4
  430. package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +46 -46
  431. package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +35 -35
  432. package/esm2020/lib/workspace/widgets/widgets.mjs +15 -15
  433. package/esm2020/lib/workspace/workspace-selector/workspace-selector.directive.mjs +132 -132
  434. package/esm2020/lib/workspace/workspace-selector/workspace-selector.module.mjs +27 -27
  435. package/esm2020/lib/workspace/workspace-updator/workspace-updator.directive.mjs +112 -112
  436. package/esm2020/lib/workspace/workspace-updator/workspace-updator.module.mjs +27 -27
  437. package/esm2020/lib/workspace/workspace.module.mjs +61 -61
  438. package/esm2020/public_api.mjs +54 -54
  439. package/fesm2015/igo2-geo.mjs +44992 -44987
  440. package/fesm2015/igo2-geo.mjs.map +1 -1
  441. package/fesm2020/igo2-geo.mjs +43034 -43029
  442. package/fesm2020/igo2-geo.mjs.map +1 -1
  443. package/index.d.ts +5 -5
  444. package/lib/catalog/catalog-browser/catalog-browser-group.component.d.ts +126 -126
  445. package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +80 -80
  446. package/lib/catalog/catalog-browser/catalog-browser.component.d.ts +105 -105
  447. package/lib/catalog/catalog-browser/catalog-browser.module.d.ts +22 -22
  448. package/lib/catalog/catalog-library/add-catalog-dialog.component.d.ts +45 -45
  449. package/lib/catalog/catalog-library/catalog-library-item.component.d.ts +25 -25
  450. package/lib/catalog/catalog-library/catalog-library.component.d.ts +65 -65
  451. package/lib/catalog/catalog-library/catalog-library.module.d.ts +26 -26
  452. package/lib/catalog/catalog.module.d.ts +14 -14
  453. package/lib/catalog/index.d.ts +4 -4
  454. package/lib/catalog/shared/catalog.abstract.d.ts +50 -50
  455. package/lib/catalog/shared/catalog.enum.d.ts +14 -14
  456. package/lib/catalog/shared/catalog.interface.d.ts +66 -66
  457. package/lib/catalog/shared/catalog.service.d.ts +36 -36
  458. package/lib/catalog/shared/index.d.ts +4 -4
  459. package/lib/datasource/datasource.module.d.ts +8 -8
  460. package/lib/datasource/index.d.ts +2 -2
  461. package/lib/datasource/shared/capabilities.service.d.ts +37 -37
  462. package/lib/datasource/shared/datasource.service.d.ts +37 -37
  463. package/lib/datasource/shared/datasources/any-datasource.d.ts +16 -16
  464. package/lib/datasource/shared/datasources/any-datasource.interface.d.ts +15 -15
  465. package/lib/datasource/shared/datasources/arcgisrest-datasource.d.ts +14 -14
  466. package/lib/datasource/shared/datasources/arcgisrest-datasource.interface.d.ts +14 -14
  467. package/lib/datasource/shared/datasources/carto-datasource.d.ts +15 -15
  468. package/lib/datasource/shared/datasources/carto-datasource.interface.d.ts +13 -13
  469. package/lib/datasource/shared/datasources/cluster-datasource.d.ts +10 -10
  470. package/lib/datasource/shared/datasources/cluster-datasource.interface.d.ts +11 -11
  471. package/lib/datasource/shared/datasources/data.service.d.ts +3 -3
  472. package/lib/datasource/shared/datasources/datasource.d.ts +20 -20
  473. package/lib/datasource/shared/datasources/datasource.interface.d.ts +100 -100
  474. package/lib/datasource/shared/datasources/feature-datasource.d.ts +12 -12
  475. package/lib/datasource/shared/datasources/feature-datasource.interface.d.ts +18 -18
  476. package/lib/datasource/shared/datasources/imagearcgisrest-datasource.d.ts +15 -15
  477. package/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.d.ts +15 -15
  478. package/lib/datasource/shared/datasources/index.d.ts +35 -35
  479. package/lib/datasource/shared/datasources/mvt-datasource.d.ts +10 -10
  480. package/lib/datasource/shared/datasources/mvt-datasource.interface.d.ts +13 -13
  481. package/lib/datasource/shared/datasources/osm-datasource.d.ts +9 -9
  482. package/lib/datasource/shared/datasources/osm-datasource.interface.d.ts +7 -7
  483. package/lib/datasource/shared/datasources/tilearcgisrest-datasource.d.ts +15 -15
  484. package/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.d.ts +14 -14
  485. package/lib/datasource/shared/datasources/tiledebug-datasource.d.ts +9 -9
  486. package/lib/datasource/shared/datasources/tiledebug-datasource.interface.d.ts +9 -9
  487. package/lib/datasource/shared/datasources/websocket-datasource.d.ts +15 -15
  488. package/lib/datasource/shared/datasources/websocket-datasource.interface.d.ts +7 -7
  489. package/lib/datasource/shared/datasources/wfs-datasource.d.ts +20 -20
  490. package/lib/datasource/shared/datasources/wfs-datasource.interface.d.ts +20 -20
  491. package/lib/datasource/shared/datasources/wfs.service.d.ts +17 -17
  492. package/lib/datasource/shared/datasources/wms-datasource.d.ts +31 -31
  493. package/lib/datasource/shared/datasources/wms-datasource.interface.d.ts +32 -32
  494. package/lib/datasource/shared/datasources/wms-wfs.utils.d.ts +41 -41
  495. package/lib/datasource/shared/datasources/wmts-datasource.d.ts +10 -10
  496. package/lib/datasource/shared/datasources/wmts-datasource.interface.d.ts +13 -13
  497. package/lib/datasource/shared/datasources/xyz-datasource.d.ts +9 -9
  498. package/lib/datasource/shared/datasources/xyz-datasource.interface.d.ts +11 -11
  499. package/lib/datasource/shared/index.d.ts +4 -4
  500. package/lib/datasource/shared/options/index.d.ts +4 -4
  501. package/lib/datasource/shared/options/options-api.interface.d.ts +4 -4
  502. package/lib/datasource/shared/options/options-api.providers.d.ts +10 -10
  503. package/lib/datasource/shared/options/options-api.service.d.ts +16 -16
  504. package/lib/datasource/shared/options/options.service.d.ts +6 -6
  505. package/lib/datasource/utils/esri-style-generator.d.ts +21 -21
  506. package/lib/datasource/utils/index.d.ts +2 -2
  507. package/lib/datasource/utils/tilegrid.d.ts +2 -2
  508. package/lib/directions/directions-buttons/directions-buttons.component.d.ts +30 -30
  509. package/lib/directions/directions-buttons/index.d.ts +1 -1
  510. package/lib/directions/directions-inputs/directions-inputs.component.d.ts +45 -45
  511. package/lib/directions/directions-inputs/index.d.ts +1 -1
  512. package/lib/directions/directions-results/directions-results.component.d.ts +30 -30
  513. package/lib/directions/directions-results/index.d.ts +1 -1
  514. package/lib/directions/directions-sources/directions-source.d.ts +7 -7
  515. package/lib/directions/directions-sources/directions-source.interface.d.ts +11 -11
  516. package/lib/directions/directions-sources/directions-source.provider.d.ts +11 -11
  517. package/lib/directions/directions-sources/index.d.ts +4 -4
  518. package/lib/directions/directions-sources/osrm-directions-source.d.ts +23 -23
  519. package/lib/directions/directions.component.d.ts +56 -56
  520. package/lib/directions/directions.module.d.ts +26 -26
  521. package/lib/directions/index.d.ts +6 -6
  522. package/lib/directions/shared/directions-source.service.d.ts +11 -11
  523. package/lib/directions/shared/directions.enum.d.ts +22 -22
  524. package/lib/directions/shared/directions.interface.d.ts +126 -126
  525. package/lib/directions/shared/directions.service.d.ts +13 -13
  526. package/lib/directions/shared/directions.utils.d.ts +42 -42
  527. package/lib/directions/shared/index.d.ts +5 -5
  528. package/lib/directions/shared/store.d.ts +18 -18
  529. package/lib/download/download-button/download-button.component.d.ts +18 -18
  530. package/lib/download/download-button/index.d.ts +1 -1
  531. package/lib/download/download.module.d.ts +14 -14
  532. package/lib/download/index.d.ts +2 -2
  533. package/lib/download/shared/download.interface.d.ts +10 -10
  534. package/lib/download/shared/download.service.d.ts +11 -11
  535. package/lib/download/shared/index.d.ts +2 -2
  536. package/lib/draw/draw/draw-layer-popup.component.d.ts +14 -14
  537. package/lib/draw/draw/draw-popup.component.d.ts +63 -63
  538. package/lib/draw/draw/draw-shorcuts.component.d.ts +5 -5
  539. package/lib/draw/draw/draw.component.d.ts +239 -239
  540. package/lib/draw/draw/draw.module.d.ts +34 -34
  541. package/lib/draw/drawingTool.module.d.ts +7 -7
  542. package/lib/draw/index.d.ts +2 -2
  543. package/lib/draw/shared/draw-icon.service.d.ts +12 -12
  544. package/lib/draw/shared/draw-style.service.d.ts +36 -36
  545. package/lib/draw/shared/draw.enum.d.ts +32 -32
  546. package/lib/draw/shared/draw.interface.d.ts +40 -40
  547. package/lib/draw/shared/draw.utils.d.ts +35 -35
  548. package/lib/draw/shared/index.d.ts +5 -5
  549. package/lib/feature/feature-details/feature-details.component.d.ts +60 -60
  550. package/lib/feature/feature-details/feature-details.directive.d.ts +19 -19
  551. package/lib/feature/feature-details/feature-details.module.d.ts +15 -15
  552. package/lib/feature/feature-form/feature-form.component.d.ts +50 -50
  553. package/lib/feature/feature-form/feature-form.module.d.ts +12 -12
  554. package/lib/feature/feature.module.d.ts +9 -9
  555. package/lib/feature/index.d.ts +3 -3
  556. package/lib/feature/shared/feature.enums.d.ts +7 -7
  557. package/lib/feature/shared/feature.interfaces.d.ts +74 -74
  558. package/lib/feature/shared/feature.utils.d.ts +104 -104
  559. package/lib/feature/shared/index.d.ts +6 -6
  560. package/lib/feature/shared/store.d.ts +71 -71
  561. package/lib/feature/shared/strategies/in-map-extent.d.ts +52 -52
  562. package/lib/feature/shared/strategies/in-map-resolution.d.ts +52 -52
  563. package/lib/feature/shared/strategies/index.d.ts +5 -5
  564. package/lib/feature/shared/strategies/loading-layer.d.ts +59 -59
  565. package/lib/feature/shared/strategies/loading.d.ts +75 -75
  566. package/lib/feature/shared/strategies/selection.d.ts +176 -176
  567. package/lib/feature/shared/strategies.utils.d.ts +17 -17
  568. package/lib/filter/filter.module.d.ts +53 -53
  569. package/lib/filter/index.d.ts +15 -15
  570. package/lib/filter/ogc-filter-button/index.d.ts +1 -1
  571. package/lib/filter/ogc-filter-button/ogc-filter-button.component.d.ts +20 -20
  572. package/lib/filter/ogc-filter-form/index.d.ts +1 -1
  573. package/lib/filter/ogc-filter-form/ogc-filter-form.component.d.ts +65 -65
  574. package/lib/filter/ogc-filter-selection/index.d.ts +1 -1
  575. package/lib/filter/ogc-filter-selection/ogc-filter-selection.component.d.ts +93 -93
  576. package/lib/filter/ogc-filter-time/index.d.ts +2 -2
  577. package/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.d.ts +39 -39
  578. package/lib/filter/ogc-filter-time/ogc-filter-time.component.d.ts +86 -86
  579. package/lib/filter/ogc-filterable-form/index.d.ts +1 -1
  580. package/lib/filter/ogc-filterable-form/ogc-filterable-form.component.d.ts +15 -15
  581. package/lib/filter/ogc-filterable-item/index.d.ts +1 -1
  582. package/lib/filter/ogc-filterable-item/ogc-filterable-item.component.d.ts +41 -41
  583. package/lib/filter/ogc-filterable-list/index.d.ts +2 -2
  584. package/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.d.ts +14 -14
  585. package/lib/filter/ogc-filterable-list/ogc-filterable-list.component.d.ts +10 -10
  586. package/lib/filter/shared/filterable-datasource.pipe.d.ts +10 -10
  587. package/lib/filter/shared/index.d.ts +11 -11
  588. package/lib/filter/shared/ogc-filter-time.service.d.ts +19 -19
  589. package/lib/filter/shared/ogc-filter.d.ts +29 -29
  590. package/lib/filter/shared/ogc-filter.enum.d.ts +27 -27
  591. package/lib/filter/shared/ogc-filter.interface.d.ts +200 -200
  592. package/lib/filter/shared/ogc-filter.service.d.ts +11 -11
  593. package/lib/filter/shared/spatial-filter.enum.d.ts +19 -19
  594. package/lib/filter/shared/spatial-filter.interface.d.ts +10 -10
  595. package/lib/filter/shared/spatial-filter.service.d.ts +37 -37
  596. package/lib/filter/shared/time-filter.enum.d.ts +10 -10
  597. package/lib/filter/shared/time-filter.interface.d.ts +29 -29
  598. package/lib/filter/shared/time-filter.service.d.ts +11 -11
  599. package/lib/filter/spatial-filter/spatial-filter-item/index.d.ts +1 -1
  600. package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +166 -166
  601. package/lib/filter/spatial-filter/spatial-filter-list/index.d.ts +1 -1
  602. package/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.d.ts +58 -58
  603. package/lib/filter/spatial-filter/spatial-filter-type/index.d.ts +1 -1
  604. package/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.d.ts +45 -45
  605. package/lib/filter/time-filter-button/index.d.ts +1 -1
  606. package/lib/filter/time-filter-button/time-filter-button.component.d.ts +20 -20
  607. package/lib/filter/time-filter-form/index.d.ts +1 -1
  608. package/lib/filter/time-filter-form/time-filter-form.component.d.ts +77 -77
  609. package/lib/filter/time-filter-item/index.d.ts +1 -1
  610. package/lib/filter/time-filter-item/time-filter-item.component.d.ts +28 -28
  611. package/lib/filter/time-filter-list/index.d.ts +2 -2
  612. package/lib/filter/time-filter-list/time-filter-list-binding.directive.d.ts +14 -14
  613. package/lib/filter/time-filter-list/time-filter-list.component.d.ts +12 -12
  614. package/lib/geo.module.d.ts +28 -28
  615. package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +206 -206
  616. package/lib/geometry/geometry-form-field/geometry-form-field.component.d.ts +88 -88
  617. package/lib/geometry/geometry-form-field/geometry-form-field.module.d.ts +19 -19
  618. package/lib/geometry/geometry.module.d.ts +8 -8
  619. package/lib/geometry/index.d.ts +3 -3
  620. package/lib/geometry/shared/controls/draw.d.ts +150 -150
  621. package/lib/geometry/shared/controls/index.d.ts +3 -3
  622. package/lib/geometry/shared/controls/modify.d.ts +228 -228
  623. package/lib/geometry/shared/controls/slice.d.ts +99 -99
  624. package/lib/geometry/shared/geometry.errors.d.ts +11 -11
  625. package/lib/geometry/shared/geometry.interfaces.d.ts +13 -13
  626. package/lib/geometry/shared/geometry.utils.d.ts +45 -45
  627. package/lib/geometry/shared/index.d.ts +4 -4
  628. package/lib/import-export/export-button/export-button.component.d.ts +16 -16
  629. package/lib/import-export/export-button/index.d.ts +1 -1
  630. package/lib/import-export/import-export/import-export.component.d.ts +104 -104
  631. package/lib/import-export/import-export/index.d.ts +1 -1
  632. package/lib/import-export/import-export.module.d.ts +26 -26
  633. package/lib/import-export/index.d.ts +4 -4
  634. package/lib/import-export/shared/drop-geo-file.directive.d.ts +36 -36
  635. package/lib/import-export/shared/export.errors.d.ts +8 -8
  636. package/lib/import-export/shared/export.interface.d.ts +11 -11
  637. package/lib/import-export/shared/export.service.d.ts +30 -30
  638. package/lib/import-export/shared/export.type.d.ts +16 -16
  639. package/lib/import-export/shared/export.utils.d.ts +19 -19
  640. package/lib/import-export/shared/import.errors.d.ts +20 -20
  641. package/lib/import-export/shared/import.interface.d.ts +8 -8
  642. package/lib/import-export/shared/import.service.d.ts +31 -31
  643. package/lib/import-export/shared/import.utils.d.ts +18 -18
  644. package/lib/import-export/shared/index.d.ts +10 -10
  645. package/lib/import-export/style-list/index.d.ts +4 -4
  646. package/lib/import-export/style-list/style-list.interface.d.ts +6 -6
  647. package/lib/import-export/style-list/style-list.module.d.ts +8 -8
  648. package/lib/import-export/style-list/style-list.provider.d.ts +15 -15
  649. package/lib/import-export/style-list/style-list.service.d.ts +18 -18
  650. package/lib/layer/index.d.ts +10 -10
  651. package/lib/layer/layer-item/index.d.ts +1 -1
  652. package/lib/layer/layer-item/layer-item.component.d.ts +62 -62
  653. package/lib/layer/layer-legend/index.d.ts +1 -1
  654. package/lib/layer/layer-legend/layer-legend.component.d.ts +90 -90
  655. package/lib/layer/layer-legend-item/index.d.ts +1 -1
  656. package/lib/layer/layer-legend-item/layer-legend-item.component.d.ts +22 -22
  657. package/lib/layer/layer-legend-list/index.d.ts +2 -2
  658. package/lib/layer/layer-legend-list/layer-legend-list-binding.directive.d.ts +16 -16
  659. package/lib/layer/layer-legend-list/layer-legend-list.component.d.ts +31 -31
  660. package/lib/layer/layer-list/index.d.ts +3 -3
  661. package/lib/layer/layer-list/layer-list-binding.directive.d.ts +19 -19
  662. package/lib/layer/layer-list/layer-list.component.d.ts +127 -127
  663. package/lib/layer/layer-list/layer-list.enum.d.ts +15 -15
  664. package/lib/layer/layer-list-tool/index.d.ts +4 -4
  665. package/lib/layer/layer-list-tool/layer-list-tool.component.d.ts +32 -32
  666. package/lib/layer/layer-list-tool/layer-list-tool.enum.d.ts +5 -5
  667. package/lib/layer/layer-list-tool/layer-list-tool.interface.d.ts +8 -8
  668. package/lib/layer/layer-list-tool/layer-list-tool.service.d.ts +14 -14
  669. package/lib/layer/layer.module.d.ts +36 -36
  670. package/lib/layer/shared/clusterParam.d.ts +13 -13
  671. package/lib/layer/shared/index.d.ts +6 -6
  672. package/lib/layer/shared/layer.enums.d.ts +1 -1
  673. package/lib/layer/shared/layer.service.d.ts +30 -30
  674. package/lib/layer/shared/layers/any-layer.d.ts +6 -6
  675. package/lib/layer/shared/layers/any-layer.interface.d.ts +6 -6
  676. package/lib/layer/shared/layers/image-layer.d.ts +22 -22
  677. package/lib/layer/shared/layers/image-layer.interface.d.ts +19 -19
  678. package/lib/layer/shared/layers/index.d.ts +12 -12
  679. package/lib/layer/shared/layers/layer.d.ts +62 -62
  680. package/lib/layer/shared/layers/layer.interface.d.ts +109 -109
  681. package/lib/layer/shared/layers/tile-layer.d.ts +31 -31
  682. package/lib/layer/shared/layers/tile-layer.interface.d.ts +20 -20
  683. package/lib/layer/shared/layers/vector-layer.d.ts +78 -78
  684. package/lib/layer/shared/layers/vector-layer.interface.d.ts +41 -41
  685. package/lib/layer/shared/layers/vectortile-layer.d.ts +28 -28
  686. package/lib/layer/shared/layers/vectortile-layer.interface.d.ts +18 -18
  687. package/lib/layer/shared/style.service.d.ts +57 -57
  688. package/lib/layer/shared/vector-style.interface.d.ts +38 -38
  689. package/lib/layer/style-modal/index.d.ts +1 -1
  690. package/lib/layer/style-modal/style-modal.component.d.ts +42 -42
  691. package/lib/layer/track-feature-button/index.d.ts +1 -1
  692. package/lib/layer/track-feature-button/track-feature-button.component.d.ts +15 -15
  693. package/lib/layer/utils/image-watcher.d.ts +17 -17
  694. package/lib/layer/utils/index.d.ts +5 -5
  695. package/lib/layer/utils/layer.utils.d.ts +2 -2
  696. package/lib/layer/utils/outputLegend.d.ts +7 -7
  697. package/lib/layer/utils/tile-watcher.d.ts +14 -14
  698. package/lib/layer/utils/vector-watcher.d.ts +13 -13
  699. package/lib/map/baselayers-switcher/baselayers-switcher.animation.d.ts +2 -2
  700. package/lib/map/baselayers-switcher/baselayers-switcher.component.d.ts +21 -21
  701. package/lib/map/baselayers-switcher/index.d.ts +2 -2
  702. package/lib/map/baselayers-switcher/mini-basemap.component.d.ts +29 -29
  703. package/lib/map/geolocate-button/geolocate-button.component.d.ts +22 -22
  704. package/lib/map/geolocate-button/index.d.ts +1 -1
  705. package/lib/map/home-extent-button/home-extent-button.component.d.ts +20 -20
  706. package/lib/map/home-extent-button/index.d.ts +1 -1
  707. package/lib/map/index.d.ts +13 -13
  708. package/lib/map/info-section/index.d.ts +1 -1
  709. package/lib/map/info-section/info-section.component.d.ts +7 -7
  710. package/lib/map/map-browser/index.d.ts +1 -1
  711. package/lib/map/map-browser/map-browser.component.d.ts +25 -25
  712. package/lib/map/map-center/index.d.ts +1 -1
  713. package/lib/map/map-center/map-center.component.d.ts +31 -31
  714. package/lib/map/map.module.d.ts +28 -28
  715. package/lib/map/menu-button/index.d.ts +1 -1
  716. package/lib/map/menu-button/menu-button.component.d.ts +17 -17
  717. package/lib/map/offline-button/index.d.ts +1 -1
  718. package/lib/map/offline-button/offline-button.component.d.ts +23 -23
  719. package/lib/map/rotation-button/index.d.ts +1 -1
  720. package/lib/map/rotation-button/rotation-button.component.d.ts +17 -17
  721. package/lib/map/shared/controllers/controller.d.ts +29 -29
  722. package/lib/map/shared/controllers/geolocation.d.ts +112 -112
  723. package/lib/map/shared/controllers/index.d.ts +3 -3
  724. package/lib/map/shared/controllers/view.d.ts +200 -200
  725. package/lib/map/shared/hover-feature.directive.d.ts +132 -132
  726. package/lib/map/shared/index.d.ts +13 -13
  727. package/lib/map/shared/linkedLayers.utils.d.ts +17 -17
  728. package/lib/map/shared/map-pointer-position.directive.d.ts +71 -71
  729. package/lib/map/shared/map.d.ts +135 -135
  730. package/lib/map/shared/map.enums.d.ts +4 -4
  731. package/lib/map/shared/map.interface.d.ts +57 -57
  732. package/lib/map/shared/map.service.d.ts +19 -19
  733. package/lib/map/shared/map.utils.d.ts +90 -90
  734. package/lib/map/shared/mapOffline.directive.d.ts +21 -21
  735. package/lib/map/shared/projection.interfaces.d.ts +29 -29
  736. package/lib/map/shared/projection.service.d.ts +19 -19
  737. package/lib/map/shared/projection.utils.d.ts +19 -19
  738. package/lib/map/swipe-control/index.d.ts +1 -1
  739. package/lib/map/swipe-control/swipe-control.component.d.ts +97 -97
  740. package/lib/map/utils/layer-watcher.d.ts +20 -20
  741. package/lib/map/wake-lock-button/index.d.ts +1 -1
  742. package/lib/map/wake-lock-button/wake-lock-button.component.d.ts +30 -30
  743. package/lib/map/zoom-button/index.d.ts +1 -1
  744. package/lib/map/zoom-button/zoom-button.component.d.ts +12 -12
  745. package/lib/measure/index.d.ts +3 -3
  746. package/lib/measure/measure.module.d.ts +7 -7
  747. package/lib/measure/measurer/measure-format.pipe.d.ts +15 -15
  748. package/lib/measure/measurer/measurer-dialog.component.d.ts +14 -14
  749. package/lib/measure/measurer/measurer-item.component.d.ts +66 -66
  750. package/lib/measure/measurer/measurer.component.d.ts +405 -405
  751. package/lib/measure/measurer/measurer.module.d.ts +25 -25
  752. package/lib/measure/shared/index.d.ts +3 -3
  753. package/lib/measure/shared/measure.enum.d.ts +33 -33
  754. package/lib/measure/shared/measure.interfaces.d.ts +21 -21
  755. package/lib/measure/shared/measure.utils.d.ts +180 -180
  756. package/lib/metadata/index.d.ts +2 -2
  757. package/lib/metadata/metadata-button/index.d.ts +1 -1
  758. package/lib/metadata/metadata-button/metadata-button.component.d.ts +26 -26
  759. package/lib/metadata/metadata.module.d.ts +15 -15
  760. package/lib/metadata/shared/index.d.ts +2 -2
  761. package/lib/metadata/shared/metadata.interface.d.ts +13 -13
  762. package/lib/metadata/shared/metadata.service.d.ts +8 -8
  763. package/lib/offline/geoDB/configFileToGeoDB.service.d.ts +14 -14
  764. package/lib/offline/geoDB/geoDB.enums.d.ts +4 -4
  765. package/lib/offline/geoDB/geoDB.interface.d.ts +19 -19
  766. package/lib/offline/geoDB/geoDB.service.d.ts +37 -37
  767. package/lib/offline/geoDB/index.d.ts +4 -4
  768. package/lib/offline/index.d.ts +2 -2
  769. package/lib/offline/shared/geo-network.service.d.ts +28 -28
  770. package/lib/offline/shared/index.d.ts +1 -1
  771. package/lib/overlay/index.d.ts +1 -1
  772. package/lib/overlay/overlay.module.d.ts +9 -9
  773. package/lib/overlay/shared/index.d.ts +6 -6
  774. package/lib/overlay/shared/overlay-marker-style.utils.d.ts +11 -11
  775. package/lib/overlay/shared/overlay.d.ts +81 -81
  776. package/lib/overlay/shared/overlay.directive.d.ts +18 -18
  777. package/lib/overlay/shared/overlay.enum.d.ts +6 -6
  778. package/lib/overlay/shared/overlay.service.d.ts +14 -14
  779. package/lib/overlay/shared/overlay.utils.d.ts +17 -17
  780. package/lib/print/index.d.ts +3 -3
  781. package/lib/print/print/print.component.d.ts +35 -35
  782. package/lib/print/print-form/index.d.ts +1 -1
  783. package/lib/print/print-form/print-form.component.d.ts +97 -97
  784. package/lib/print/print.module.d.ts +19 -19
  785. package/lib/print/shared/geopdf.d.ts +1 -1
  786. package/lib/print/shared/index.d.ts +4 -4
  787. package/lib/print/shared/print.interface.d.ts +22 -22
  788. package/lib/print/shared/print.service.d.ts +168 -168
  789. package/lib/print/shared/print.type.d.ts +45 -45
  790. package/lib/query/index.d.ts +1 -1
  791. package/lib/query/query.module.d.ts +11 -11
  792. package/lib/query/shared/index.d.ts +6 -6
  793. package/lib/query/shared/query-search-source.d.ts +17 -17
  794. package/lib/query/shared/query-search-source.providers.d.ts +17 -17
  795. package/lib/query/shared/query.directive.d.ts +105 -105
  796. package/lib/query/shared/query.enums.d.ts +26 -26
  797. package/lib/query/shared/query.interfaces.d.ts +35 -35
  798. package/lib/query/shared/query.service.d.ts +56 -56
  799. package/lib/query/shared/query.utils.d.ts +27 -27
  800. package/lib/search/index.d.ts +11 -11
  801. package/lib/search/search-bar/search-bar.component.d.ts +230 -230
  802. package/lib/search/search-bar/search-bar.module.d.ts +23 -23
  803. package/lib/search/search-bar/search-url-param.directive.d.ts +13 -13
  804. package/lib/search/search-results/save-feature-dialog.component.d.ts +32 -32
  805. package/lib/search/search-results/search-results-add-button.component.d.ts +76 -76
  806. package/lib/search/search-results/search-results-item.component.d.ts +47 -47
  807. package/lib/search/search-results/search-results.component.d.ts +161 -161
  808. package/lib/search/search-results/search-results.module.d.ts +28 -28
  809. package/lib/search/search-selector/search-selector.component.d.ts +58 -58
  810. package/lib/search/search-selector/search-selector.module.d.ts +19 -19
  811. package/lib/search/search-settings/search-settings.component.d.ts +102 -102
  812. package/lib/search/search-settings/search-settings.module.d.ts +20 -20
  813. package/lib/search/search.module.d.ts +14 -14
  814. package/lib/search/shared/index.d.ts +8 -8
  815. package/lib/search/shared/search-pointer-summary.directive.d.ts +133 -133
  816. package/lib/search/shared/search-source-service.providers.d.ts +15 -15
  817. package/lib/search/shared/search-source.service.d.ts +32 -32
  818. package/lib/search/shared/search.enums.d.ts +1 -1
  819. package/lib/search/shared/search.interfaces.d.ts +29 -29
  820. package/lib/search/shared/search.service.d.ts +53 -53
  821. package/lib/search/shared/search.utils.d.ts +39 -39
  822. package/lib/search/shared/sources/coordinates.d.ts +40 -40
  823. package/lib/search/shared/sources/coordinates.interfaces.d.ts +12 -12
  824. package/lib/search/shared/sources/coordinates.providers.d.ts +31 -31
  825. package/lib/search/shared/sources/icherche.d.ts +96 -96
  826. package/lib/search/shared/sources/icherche.interfaces.d.ts +30 -30
  827. package/lib/search/shared/sources/icherche.providers.d.ts +46 -46
  828. package/lib/search/shared/sources/ilayer.d.ts +55 -55
  829. package/lib/search/shared/sources/ilayer.interfaces.d.ts +47 -47
  830. package/lib/search/shared/sources/ilayer.providers.d.ts +31 -31
  831. package/lib/search/shared/sources/index.d.ts +17 -17
  832. package/lib/search/shared/sources/nominatim.d.ts +45 -45
  833. package/lib/search/shared/sources/nominatim.interfaces.d.ts +10 -10
  834. package/lib/search/shared/sources/nominatim.providers.d.ts +18 -18
  835. package/lib/search/shared/sources/source.d.ts +108 -108
  836. package/lib/search/shared/sources/source.interfaces.d.ts +47 -47
  837. package/lib/search/shared/sources/storedqueries.d.ts +73 -73
  838. package/lib/search/shared/sources/storedqueries.interfaces.d.ts +42 -42
  839. package/lib/search/shared/sources/storedqueries.providers.d.ts +32 -32
  840. package/lib/toast/index.d.ts +1 -1
  841. package/lib/toast/toast.component.d.ts +33 -33
  842. package/lib/toast/toast.module.d.ts +14 -14
  843. package/lib/utils/commonVectorStyle.d.ts +14 -14
  844. package/lib/utils/commonVectorStyle.interface.d.ts +16 -16
  845. package/lib/utils/googleLinks.d.ts +5 -5
  846. package/lib/utils/id-generator.d.ts +54 -54
  847. package/lib/utils/index.d.ts +5 -5
  848. package/lib/utils/osmLinks.d.ts +4 -4
  849. package/lib/wkt/index.d.ts +1 -1
  850. package/lib/wkt/shared/index.d.ts +1 -1
  851. package/lib/wkt/shared/wkt.service.d.ts +19 -19
  852. package/lib/wkt/wkt.module.d.ts +8 -8
  853. package/lib/workspace/confirmation-popup/confirmation-popup.component.d.ts +23 -23
  854. package/lib/workspace/confirmation-popup/confirmation-popup.module.d.ts +14 -14
  855. package/lib/workspace/confirmation-popup/index.d.ts +2 -2
  856. package/lib/workspace/index.d.ts +7 -7
  857. package/lib/workspace/shared/edition-workspace.d.ts +82 -82
  858. package/lib/workspace/shared/edition-workspace.service.d.ts +52 -52
  859. package/lib/workspace/shared/feature-workspace.d.ts +18 -18
  860. package/lib/workspace/shared/feature-workspace.service.d.ts +19 -19
  861. package/lib/workspace/shared/index.d.ts +7 -7
  862. package/lib/workspace/shared/wfs-workspace.d.ts +18 -18
  863. package/lib/workspace/shared/wfs-workspace.service.d.ts +19 -19
  864. package/lib/workspace/shared/wms-workspace.service.d.ts +22 -22
  865. package/lib/workspace/shared/workspace.utils.d.ts +10 -10
  866. package/lib/workspace/widgets/index.d.ts +3 -3
  867. package/lib/workspace/widgets/ogc-filter/ogc-filter.component.d.ts +29 -29
  868. package/lib/workspace/widgets/ogc-filter/ogc-filter.module.d.ts +14 -14
  869. package/lib/workspace/widgets/widgets.d.ts +9 -9
  870. package/lib/workspace/workspace-selector/workspace-selector.directive.d.ts +32 -32
  871. package/lib/workspace/workspace-selector/workspace-selector.module.d.ts +11 -11
  872. package/lib/workspace/workspace-updator/workspace-updator.directive.d.ts +26 -26
  873. package/lib/workspace/workspace-updator/workspace-updator.module.d.ts +11 -11
  874. package/lib/workspace/workspace.module.d.ts +14 -14
  875. package/package.json +4 -4
  876. package/public_api.d.ts +51 -51
@@ -1,314 +1,314 @@
1
- import OlVectorSource from 'ol/source/Vector';
2
- import OlVectorLayer from 'ol/layer/Vector';
3
- import OlDraw from 'ol/interaction/Draw';
4
- import OlModify from 'ol/interaction/Modify';
5
- import OlSelect from 'ol/interaction/Select';
6
- import { unByKey } from 'ol/Observable';
7
- import { doubleClick } from 'ol/events/condition';
8
- import { Subject, fromEvent, BehaviorSubject } from 'rxjs';
9
- import { getMousePositionFromOlGeometryEvent } from '../geometry.utils';
10
- /**
11
- * Control to draw entities
12
- */
13
- export class DrawControl {
14
- constructor(options) {
15
- this.options = options;
16
- /**
17
- * Draw start observable
18
- */
19
- this.start$ = new Subject();
20
- /**
21
- * Draw end observable
22
- */
23
- this.end$ = new Subject();
24
- /**
25
- * Draw changes observable (while drawing)
26
- */
27
- this.changes$ = new Subject();
28
- /**
29
- * Draw modify observable (modify drawn features)
30
- */
31
- this.modify$ = new Subject();
32
- /**
33
- * Draw select observable (modify drawn features)
34
- */
35
- this.select$ = new Subject();
36
- /**
37
- * Draw abort observable (abort drawn features)
38
- */
39
- this.abort$ = new Subject();
40
- /**
41
- * Freehand mode observable (defaults to false)
42
- */
43
- this.freehand$ = new BehaviorSubject(false);
44
- /**
45
- * Observables from predefined radius (defaults to false and undefined)
46
- */
47
- this.ispredefinedRadius$ = new BehaviorSubject(false);
48
- this.predefinedRadius$ = new BehaviorSubject(undefined);
49
- this.radiusDrawEnd$ = new BehaviorSubject(undefined);
50
- this.olDrawingLayer = options.drawingLayer ? options.drawingLayer : this.createOlInnerOverlayLayer();
51
- this.olGeometryType = this.options.geometryType;
52
- this.olInteractionStyle = this.options.interactionStyle;
53
- }
54
- /**
55
- * take the value of radius
56
- */
57
- get radiusVal() {
58
- return this.predefinedRadius$.getValue();
59
- }
60
- set radiusValData(radiusCercle) {
61
- this.predefinedRadius$.next(radiusCercle);
62
- }
63
- /**
64
- * Wheter the control is active
65
- */
66
- get active() {
67
- return this.olMap !== undefined;
68
- }
69
- /**
70
- * OL overlay source
71
- * @internal
72
- */
73
- get olDrawingLayerSource() {
74
- return this.olDrawingLayer.getSource();
75
- }
76
- /**
77
- * Add or remove this control to/from a map.
78
- * @param map OL Map
79
- */
80
- setOlMap(olMap, activateModifyAndSelect) {
81
- if (!olMap) {
82
- this.clearOlInnerOverlaySource();
83
- this.removeOlInnerOverlayLayer();
84
- this.removeOlInteractions();
85
- this.olMap = olMap;
86
- return;
87
- }
88
- this.olMap = olMap;
89
- this.addOlInnerOverlayLayer();
90
- this.addOlInteractions(activateModifyAndSelect);
91
- }
92
- /**
93
- * Return the drawing layer source
94
- */
95
- getSource() {
96
- return this.olDrawingLayerSource;
97
- }
98
- setOlInteractionStyle(style) {
99
- this.olInteractionStyle = style;
100
- }
101
- /**
102
- * Set the current geometry type
103
- * @param geometryType the geometry type
104
- */
105
- setGeometryType(geometryType) {
106
- this.olGeometryType = geometryType;
107
- }
108
- /**
109
- * Get the current geometry type
110
- */
111
- getGeometryType() {
112
- return this.olGeometryType;
113
- }
114
- /**
115
- * Create a drawing source if none is defined in the options
116
- */
117
- createOlInnerOverlayLayer() {
118
- return new OlVectorLayer({
119
- source: this.options.drawingLayerSource ? this.options.drawingLayerSource : new OlVectorSource(),
120
- style: this.options.drawingLayerStyle,
121
- zIndex: 500
122
- });
123
- }
124
- /**
125
- * Clear the drawing layer if it wasn't defined in the options
126
- */
127
- removeOlInnerOverlayLayer() {
128
- if (!this.options.drawingLayer && this.olMap) {
129
- this.olMap.removeLayer(this.olDrawingLayer);
130
- }
131
- }
132
- /**
133
- * Add the drawing layer if it wasn't defined in the options
134
- */
135
- addOlInnerOverlayLayer() {
136
- if (!this.options.drawingLayer) {
137
- this.olMap.addLayer(this.olDrawingLayer);
138
- }
139
- }
140
- /**
141
- * Clear the drawing layer source if it wasn't defined in the options
142
- */
143
- clearOlInnerOverlaySource() {
144
- if (!this.options.drawingLayer && !this.options.drawingLayerSource) {
145
- this.olDrawingLayerSource.clear(true);
146
- }
147
- }
148
- /**
149
- * Add interactions to the map an set up some listeners
150
- */
151
- addOlInteractions(activateModifyAndSelect) {
152
- // Create Draw interaction
153
- let olDrawInteraction;
154
- if (!this.freehand$.getValue()) {
155
- if (!this.ispredefinedRadius$.getValue()) {
156
- olDrawInteraction = new OlDraw({
157
- type: this.olGeometryType,
158
- source: this.getSource(),
159
- stopClick: true,
160
- style: this.olInteractionStyle,
161
- maxPoints: this.options.maxPoints,
162
- freehand: false,
163
- freehandCondition: () => false
164
- });
165
- }
166
- else {
167
- olDrawInteraction = new OlDraw({
168
- type: 'Point',
169
- source: this.getSource(),
170
- stopClick: true,
171
- style: this.olInteractionStyle,
172
- maxPoints: this.options.maxPoints,
173
- freehand: false,
174
- freehandCondition: () => false
175
- });
176
- }
177
- }
178
- else {
179
- if (this.olGeometryType === 'Point') {
180
- olDrawInteraction = new OlDraw({
181
- type: 'Circle',
182
- source: this.getSource(),
183
- style: typeof this.olInteractionStyle === 'function' ? undefined : this.olInteractionStyle,
184
- maxPoints: this.options.maxPoints,
185
- freehand: true
186
- });
187
- }
188
- else {
189
- olDrawInteraction = new OlDraw({
190
- type: this.olGeometryType,
191
- source: this.getSource(),
192
- style: this.olInteractionStyle,
193
- maxPoints: this.options.maxPoints,
194
- freehand: true
195
- });
196
- }
197
- }
198
- // Add Draw interaction to map and create listeners
199
- this.olMap.addInteraction(olDrawInteraction);
200
- this.olDrawInteraction = olDrawInteraction;
201
- this.onDrawStartKey = olDrawInteraction.on('drawstart', (event) => this.onDrawStart(event));
202
- this.onDrawEndKey = olDrawInteraction.on('drawend', (event) => this.onDrawEnd(event));
203
- this.onDrawAbortKey = olDrawInteraction.on('drawabort', (event) => this.abort$.next(event.feature.getGeometry()));
204
- if (activateModifyAndSelect) {
205
- // Create a Modify interaction, add it to map and create a listener
206
- const olModifyInteraction = new OlModify({
207
- source: this.getSource()
208
- });
209
- this.olMap.addInteraction(olModifyInteraction);
210
- this.olModifyInteraction = olModifyInteraction;
211
- // Create a select interaction and add it to map
212
- if (!this.olSelectInteraction) {
213
- const olSelectInteraction = new OlSelect({
214
- condition: doubleClick,
215
- style: undefined
216
- });
217
- this.olMap.addInteraction(olSelectInteraction);
218
- this.olSelectInteraction = olSelectInteraction;
219
- this.olSelectInteraction.on('select', (event) => this.onSelect(event));
220
- }
221
- }
222
- }
223
- /**
224
- * Remove interactions
225
- */
226
- removeOlInteractions() {
227
- this.unsubscribeKeyDown();
228
- unByKey([this.onDrawStartKey, this.onDrawEndKey, this.onDrawKey, this.onDrawAbortKey]);
229
- if (this.olMap) {
230
- this.olMap.removeInteraction(this.olDrawInteraction);
231
- this.olMap.removeInteraction(this.olModifyInteraction);
232
- }
233
- this.olDrawInteraction = undefined;
234
- this.olModifyInteraction = undefined;
235
- }
236
- /**
237
- * When drawing starts, clear the overlay and start watching for changes
238
- * @param event Draw start event
239
- */
240
- onDrawStart(event) {
241
- const olGeometry = event.feature.getGeometry();
242
- this.start$.next(olGeometry);
243
- this.clearOlInnerOverlaySource();
244
- this.onDrawKey = olGeometry.on('change', (olGeometryEvent) => {
245
- this.mousePosition = getMousePositionFromOlGeometryEvent(olGeometryEvent);
246
- this.changes$.next(olGeometryEvent.target);
247
- });
248
- this.subscribeKeyDown();
249
- }
250
- /**
251
- * When drawing ends, update the drawing (feature) geometry observable and add
252
- * @param event Draw event (drawend)
253
- */
254
- onDrawEnd(event) {
255
- if (event.feature.getGeometry().getType() === 'Point') {
256
- this.radiusDrawEnd$.next(this.predefinedRadius$.getValue());
257
- }
258
- this.unsubscribeKeyDown();
259
- unByKey(this.onDrawKey);
260
- const olGeometry = event.feature.getGeometry();
261
- olGeometry.on('change', () => {
262
- this.modify$.next(olGeometry);
263
- });
264
- this.end$.next(olGeometry);
265
- }
266
- /**
267
- * When a feature is selected, update the selected feature observable
268
- * @param event Modify event (modifyend)
269
- */
270
- onSelect(event) {
271
- if (event.selected.length === 1) {
272
- this.select$.next(event.selected[0]);
273
- }
274
- }
275
- /**
276
- * Subscribe to key downs used as drawing interaction shorcuts
277
- */
278
- subscribeKeyDown() {
279
- this.unsubscribeKeyDown();
280
- this.keyDown$$ = fromEvent(document, 'keydown').subscribe((event) => {
281
- // On Escape or 'c' keydowns, abort the current drawing
282
- if (event.key === 'Escape') {
283
- this.olDrawInteraction.abortDrawing();
284
- return;
285
- }
286
- // On Backspace or 'u' keydowns, remove last vertex of current drawing
287
- if (event.key === 'Backspace') {
288
- this.olDrawInteraction.removeLastPoint();
289
- }
290
- // On Enter or 'f' keydowns, finish current drawing
291
- if (event.key === 'Enter') {
292
- this.olDrawInteraction.finishDrawing();
293
- }
294
- // On space bar key down, pan to the current mouse position
295
- if (event.key === ' ') {
296
- this.olMap.getView().animate({
297
- center: this.mousePosition,
298
- duration: 100
299
- });
300
- return;
301
- }
302
- });
303
- }
304
- /**
305
- * Unsubscribe to key down
306
- */
307
- unsubscribeKeyDown() {
308
- if (this.keyDown$$) {
309
- this.keyDown$$.unsubscribe();
310
- this.keyDown$$ = undefined;
311
- }
312
- }
313
- }
1
+ import OlVectorSource from 'ol/source/Vector';
2
+ import OlVectorLayer from 'ol/layer/Vector';
3
+ import OlDraw from 'ol/interaction/Draw';
4
+ import OlModify from 'ol/interaction/Modify';
5
+ import OlSelect from 'ol/interaction/Select';
6
+ import { unByKey } from 'ol/Observable';
7
+ import { doubleClick } from 'ol/events/condition';
8
+ import { Subject, fromEvent, BehaviorSubject } from 'rxjs';
9
+ import { getMousePositionFromOlGeometryEvent } from '../geometry.utils';
10
+ /**
11
+ * Control to draw entities
12
+ */
13
+ export class DrawControl {
14
+ constructor(options) {
15
+ this.options = options;
16
+ /**
17
+ * Draw start observable
18
+ */
19
+ this.start$ = new Subject();
20
+ /**
21
+ * Draw end observable
22
+ */
23
+ this.end$ = new Subject();
24
+ /**
25
+ * Draw changes observable (while drawing)
26
+ */
27
+ this.changes$ = new Subject();
28
+ /**
29
+ * Draw modify observable (modify drawn features)
30
+ */
31
+ this.modify$ = new Subject();
32
+ /**
33
+ * Draw select observable (modify drawn features)
34
+ */
35
+ this.select$ = new Subject();
36
+ /**
37
+ * Draw abort observable (abort drawn features)
38
+ */
39
+ this.abort$ = new Subject();
40
+ /**
41
+ * Freehand mode observable (defaults to false)
42
+ */
43
+ this.freehand$ = new BehaviorSubject(false);
44
+ /**
45
+ * Observables from predefined radius (defaults to false and undefined)
46
+ */
47
+ this.ispredefinedRadius$ = new BehaviorSubject(false);
48
+ this.predefinedRadius$ = new BehaviorSubject(undefined);
49
+ this.radiusDrawEnd$ = new BehaviorSubject(undefined);
50
+ this.olDrawingLayer = options.drawingLayer ? options.drawingLayer : this.createOlInnerOverlayLayer();
51
+ this.olGeometryType = this.options.geometryType;
52
+ this.olInteractionStyle = this.options.interactionStyle;
53
+ }
54
+ /**
55
+ * take the value of radius
56
+ */
57
+ get radiusVal() {
58
+ return this.predefinedRadius$.getValue();
59
+ }
60
+ set radiusValData(radiusCercle) {
61
+ this.predefinedRadius$.next(radiusCercle);
62
+ }
63
+ /**
64
+ * Wheter the control is active
65
+ */
66
+ get active() {
67
+ return this.olMap !== undefined;
68
+ }
69
+ /**
70
+ * OL overlay source
71
+ * @internal
72
+ */
73
+ get olDrawingLayerSource() {
74
+ return this.olDrawingLayer.getSource();
75
+ }
76
+ /**
77
+ * Add or remove this control to/from a map.
78
+ * @param map OL Map
79
+ */
80
+ setOlMap(olMap, activateModifyAndSelect) {
81
+ if (!olMap) {
82
+ this.clearOlInnerOverlaySource();
83
+ this.removeOlInnerOverlayLayer();
84
+ this.removeOlInteractions();
85
+ this.olMap = olMap;
86
+ return;
87
+ }
88
+ this.olMap = olMap;
89
+ this.addOlInnerOverlayLayer();
90
+ this.addOlInteractions(activateModifyAndSelect);
91
+ }
92
+ /**
93
+ * Return the drawing layer source
94
+ */
95
+ getSource() {
96
+ return this.olDrawingLayerSource;
97
+ }
98
+ setOlInteractionStyle(style) {
99
+ this.olInteractionStyle = style;
100
+ }
101
+ /**
102
+ * Set the current geometry type
103
+ * @param geometryType the geometry type
104
+ */
105
+ setGeometryType(geometryType) {
106
+ this.olGeometryType = geometryType;
107
+ }
108
+ /**
109
+ * Get the current geometry type
110
+ */
111
+ getGeometryType() {
112
+ return this.olGeometryType;
113
+ }
114
+ /**
115
+ * Create a drawing source if none is defined in the options
116
+ */
117
+ createOlInnerOverlayLayer() {
118
+ return new OlVectorLayer({
119
+ source: this.options.drawingLayerSource ? this.options.drawingLayerSource : new OlVectorSource(),
120
+ style: this.options.drawingLayerStyle,
121
+ zIndex: 500
122
+ });
123
+ }
124
+ /**
125
+ * Clear the drawing layer if it wasn't defined in the options
126
+ */
127
+ removeOlInnerOverlayLayer() {
128
+ if (!this.options.drawingLayer && this.olMap) {
129
+ this.olMap.removeLayer(this.olDrawingLayer);
130
+ }
131
+ }
132
+ /**
133
+ * Add the drawing layer if it wasn't defined in the options
134
+ */
135
+ addOlInnerOverlayLayer() {
136
+ if (!this.options.drawingLayer) {
137
+ this.olMap.addLayer(this.olDrawingLayer);
138
+ }
139
+ }
140
+ /**
141
+ * Clear the drawing layer source if it wasn't defined in the options
142
+ */
143
+ clearOlInnerOverlaySource() {
144
+ if (!this.options.drawingLayer && !this.options.drawingLayerSource) {
145
+ this.olDrawingLayerSource.clear(true);
146
+ }
147
+ }
148
+ /**
149
+ * Add interactions to the map an set up some listeners
150
+ */
151
+ addOlInteractions(activateModifyAndSelect) {
152
+ // Create Draw interaction
153
+ let olDrawInteraction;
154
+ if (!this.freehand$.getValue()) {
155
+ if (!this.ispredefinedRadius$.getValue()) {
156
+ olDrawInteraction = new OlDraw({
157
+ type: this.olGeometryType,
158
+ source: this.getSource(),
159
+ stopClick: true,
160
+ style: this.olInteractionStyle,
161
+ maxPoints: this.options.maxPoints,
162
+ freehand: false,
163
+ freehandCondition: () => false
164
+ });
165
+ }
166
+ else {
167
+ olDrawInteraction = new OlDraw({
168
+ type: 'Point',
169
+ source: this.getSource(),
170
+ stopClick: true,
171
+ style: this.olInteractionStyle,
172
+ maxPoints: this.options.maxPoints,
173
+ freehand: false,
174
+ freehandCondition: () => false
175
+ });
176
+ }
177
+ }
178
+ else {
179
+ if (this.olGeometryType === 'Point') {
180
+ olDrawInteraction = new OlDraw({
181
+ type: 'Circle',
182
+ source: this.getSource(),
183
+ style: typeof this.olInteractionStyle === 'function' ? undefined : this.olInteractionStyle,
184
+ maxPoints: this.options.maxPoints,
185
+ freehand: true
186
+ });
187
+ }
188
+ else {
189
+ olDrawInteraction = new OlDraw({
190
+ type: this.olGeometryType,
191
+ source: this.getSource(),
192
+ style: this.olInteractionStyle,
193
+ maxPoints: this.options.maxPoints,
194
+ freehand: true
195
+ });
196
+ }
197
+ }
198
+ // Add Draw interaction to map and create listeners
199
+ this.olMap.addInteraction(olDrawInteraction);
200
+ this.olDrawInteraction = olDrawInteraction;
201
+ this.onDrawStartKey = olDrawInteraction.on('drawstart', (event) => this.onDrawStart(event));
202
+ this.onDrawEndKey = olDrawInteraction.on('drawend', (event) => this.onDrawEnd(event));
203
+ this.onDrawAbortKey = olDrawInteraction.on('drawabort', (event) => this.abort$.next(event.feature.getGeometry()));
204
+ if (activateModifyAndSelect) {
205
+ // Create a Modify interaction, add it to map and create a listener
206
+ const olModifyInteraction = new OlModify({
207
+ source: this.getSource()
208
+ });
209
+ this.olMap.addInteraction(olModifyInteraction);
210
+ this.olModifyInteraction = olModifyInteraction;
211
+ // Create a select interaction and add it to map
212
+ if (!this.olSelectInteraction) {
213
+ const olSelectInteraction = new OlSelect({
214
+ condition: doubleClick,
215
+ style: undefined
216
+ });
217
+ this.olMap.addInteraction(olSelectInteraction);
218
+ this.olSelectInteraction = olSelectInteraction;
219
+ this.olSelectInteraction.on('select', (event) => this.onSelect(event));
220
+ }
221
+ }
222
+ }
223
+ /**
224
+ * Remove interactions
225
+ */
226
+ removeOlInteractions() {
227
+ this.unsubscribeKeyDown();
228
+ unByKey([this.onDrawStartKey, this.onDrawEndKey, this.onDrawKey, this.onDrawAbortKey]);
229
+ if (this.olMap) {
230
+ this.olMap.removeInteraction(this.olDrawInteraction);
231
+ this.olMap.removeInteraction(this.olModifyInteraction);
232
+ }
233
+ this.olDrawInteraction = undefined;
234
+ this.olModifyInteraction = undefined;
235
+ }
236
+ /**
237
+ * When drawing starts, clear the overlay and start watching for changes
238
+ * @param event Draw start event
239
+ */
240
+ onDrawStart(event) {
241
+ const olGeometry = event.feature.getGeometry();
242
+ this.start$.next(olGeometry);
243
+ this.clearOlInnerOverlaySource();
244
+ this.onDrawKey = olGeometry.on('change', (olGeometryEvent) => {
245
+ this.mousePosition = getMousePositionFromOlGeometryEvent(olGeometryEvent);
246
+ this.changes$.next(olGeometryEvent.target);
247
+ });
248
+ this.subscribeKeyDown();
249
+ }
250
+ /**
251
+ * When drawing ends, update the drawing (feature) geometry observable and add
252
+ * @param event Draw event (drawend)
253
+ */
254
+ onDrawEnd(event) {
255
+ if (event.feature.getGeometry().getType() === 'Point') {
256
+ this.radiusDrawEnd$.next(this.predefinedRadius$.getValue());
257
+ }
258
+ this.unsubscribeKeyDown();
259
+ unByKey(this.onDrawKey);
260
+ const olGeometry = event.feature.getGeometry();
261
+ olGeometry.on('change', () => {
262
+ this.modify$.next(olGeometry);
263
+ });
264
+ this.end$.next(olGeometry);
265
+ }
266
+ /**
267
+ * When a feature is selected, update the selected feature observable
268
+ * @param event Modify event (modifyend)
269
+ */
270
+ onSelect(event) {
271
+ if (event.selected.length === 1) {
272
+ this.select$.next(event.selected[0]);
273
+ }
274
+ }
275
+ /**
276
+ * Subscribe to key downs used as drawing interaction shorcuts
277
+ */
278
+ subscribeKeyDown() {
279
+ this.unsubscribeKeyDown();
280
+ this.keyDown$$ = fromEvent(document, 'keydown').subscribe((event) => {
281
+ // On Escape or 'c' keydowns, abort the current drawing
282
+ if (event.key === 'Escape') {
283
+ this.olDrawInteraction.abortDrawing();
284
+ return;
285
+ }
286
+ // On Backspace or 'u' keydowns, remove last vertex of current drawing
287
+ if (event.key === 'Backspace') {
288
+ this.olDrawInteraction.removeLastPoint();
289
+ }
290
+ // On Enter or 'f' keydowns, finish current drawing
291
+ if (event.key === 'Enter') {
292
+ this.olDrawInteraction.finishDrawing();
293
+ }
294
+ // On space bar key down, pan to the current mouse position
295
+ if (event.key === ' ') {
296
+ this.olMap.getView().animate({
297
+ center: this.mousePosition,
298
+ duration: 100
299
+ });
300
+ return;
301
+ }
302
+ });
303
+ }
304
+ /**
305
+ * Unsubscribe to key down
306
+ */
307
+ unsubscribeKeyDown() {
308
+ if (this.keyDown$$) {
309
+ this.keyDown$$.unsubscribe();
310
+ this.keyDown$$ = undefined;
311
+ }
312
+ }
313
+ }
314
314
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2dlb21ldHJ5L3NoYXJlZC9jb250cm9scy9kcmF3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sY0FBYyxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sYUFBYSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sTUFBTSxNQUFNLHFCQUFxQixDQUFDO0FBRXpDLE9BQU8sUUFBUSxNQUFNLHVCQUF1QixDQUFDO0FBQzdDLE9BQU8sUUFBUSxNQUFNLHVCQUF1QixDQUFDO0FBSTdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWxELE9BQU8sRUFBRSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFekUsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFXeEU7O0dBRUc7QUFDSCxNQUFNLE9BQU8sV0FBVztJQXFGdEIsWUFBb0IsT0FBMkI7UUFBM0IsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFwRi9DOztXQUVHO1FBQ0ksV0FBTSxHQUF3QixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRW5EOztXQUVHO1FBQ0ksU0FBSSxHQUF3QixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRWpEOztXQUVHO1FBQ0ksYUFBUSxHQUFpQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRTlDOztXQUVHO1FBQ0ksWUFBTyxHQUF3QixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRXBEOztXQUVHO1FBQ0ksWUFBTyxHQUFpQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRTdDOztXQUVHO1FBQ0ksV0FBTSxHQUFpQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRTVDOztXQUVHO1FBQ0gsY0FB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QUUsQ0FBQztnQkFDdEMsT0FBTzthQUNSO1lBRUQsc0VBQXNFO1lBQ3RFLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxXQUFXLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQzthQUMxQztZQUVELG1EQUFtRDtZQUNuRCxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssT0FBTyxFQUFFO2dCQUN6QixJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7YUFDeEM7WUFFRCwyREFBMkQ7WUFDM0QsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLEdBQUcsRUFBRTtnQkFDckIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQzNCLE1BQU0sRUFBRSxJQUFJLENBQUMsYUFBYTtvQkFDMUIsUUFBUSxFQUFFLEdBQUc7aUJBQ2QsQ0FBQyxDQUFDO2dCQUNILE9BQU87YUFDUjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ssa0JBQWtCO1FBQ3hCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRzS2V5IH0gZnJvbSAnb2wvZXZlbnRzJztcbmltcG9ydCBPbE1hcCBmcm9tICdvbC9NYXAnO1xuaW1wb3J0IHsgU3R5bGVMaWtlIGFzIE9sU3R5bGVMaWtlIH0gZnJvbSAnb2wvc3R5bGUvU3R5bGUnO1xuaW1wb3J0IHR5cGUgeyBUeXBlIH0gZnJvbSAnb2wvZ2VvbS9HZW9tZXRyeSc7XG5pbXBvcnQgT2xWZWN0b3JTb3VyY2UgZnJvbSAnb2wvc291cmNlL1ZlY3Rvcic7XG5pbXBvcnQgT2xWZWN0b3JMYXllciBmcm9tICdvbC9sYXllci9WZWN0b3InO1xuaW1wb3J0IE9sRHJhdyBmcm9tICdvbC9pbnRlcmFjdGlvbi9EcmF3JztcbmltcG9ydCB0eXBlIHsgZGVmYXVsdCBhcyBPbEdlb21ldHJ5IH0gZnJvbSAnb2wvZ2VvbS9HZW9tZXRyeSc7XG5pbXBvcnQgT2xNb2RpZnkgZnJvbSAnb2wvaW50ZXJhY3Rpb24vTW9kaWZ5JztcbmltcG9ydCBPbFNlbGVjdCBmcm9tICdvbC9pbnRlcmFjdGlvbi9TZWxlY3QnO1xuaW1wb3J0IEJhc2ljRXZlbnQgZnJvbSAnb2wvZXZlbnRzL0V2ZW50JztcbmltcG9ydCB7IERyYXdFdmVudCBhcyBPbERyYXdFdmVudCB9IGZyb20gJ29sL2ludGVyYWN0aW9uL0RyYXcnO1xuaW1wb3J0IHsgU2VsZWN0RXZlbnQgYXMgT2xTZWxlY3RFdmVudCB9IGZyb20gJ29sL2ludGVyYWN0aW9uL1NlbGVjdCc7XG5pbXBvcnQgeyB1bkJ5S2V5IH0gZnJvbSAnb2wvT2JzZXJ2YWJsZSc7XG5pbXBvcnQgeyBkb3VibGVDbGljayB9IGZyb20gJ29sL2V2ZW50cy9jb25kaXRpb24nO1xuXG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGZyb21FdmVudCwgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IGdldE1vdXNlUG9zaXRpb25Gcm9tT2xHZW9tZXRyeUV2ZW50IH0gZnJvbSAnLi4vZ2VvbWV0cnkudXRpbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERyYXdDb250cm9sT3B0aW9ucyB7XG4gIGdlb21ldHJ5VHlwZTogVHlwZSB8IHN0cmluZztcbiAgZHJhd2luZ0xheWVyU291cmNlPzogT2xWZWN0b3JTb3VyY2U8T2xHZW9tZXRyeT47XG4gIGRyYXdpbmdMYXllcj86IE9sVmVjdG9yTGF5ZXI8T2xWZWN0b3JTb3VyY2U8T2xHZW9tZXRyeT4+O1xuICBkcmF3aW5nTGF5ZXJTdHlsZT86IE9sU3R5bGVMaWtlO1xuICBpbnRlcmFjdGlvblN0eWxlPzogT2xTdHlsZUxpa2U7XG4gIG1heFBvaW50cz86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBDb250cm9sIHRvIGRyYXcgZW50aXRpZXNcbiAqL1xuZXhwb3J0IGNsYXNzIERyYXdDb250cm9sIHtcbiAgLyoqXG4gICAqIERyYXcgc3RhcnQgb2JzZXJ2YWJsZVxuICAgKi9cbiAgcHVibGljIHN0YXJ0JDogU3ViamVjdDxPbEdlb21ldHJ5PiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgLyoqXG4gICAqIERyYXcgZW5kIG9ic2VydmFibGVcbiAgICovXG4gIHB1YmxpYyBlbmQkOiBTdWJqZWN0PE9sR2VvbWV0cnk+ID0gbmV3IFN1YmplY3QoKTtcblxuICAvKipcbiAgICogRHJhdyBjaGFuZ2VzIG9ic2VydmFibGUgKHdoaWxlIGRyYXdpbmcpXG4gICAqL1xuICBwdWJsaWMgY2hhbmdlcyQ6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgLyoqXG4gICAqIERyYXcgbW9kaWZ5IG9ic2VydmFibGUgKG1vZGlmeSBkcmF3biBmZWF0dXJlcylcbiAgICovXG4gIHB1YmxpYyBtb2RpZnkkOiBTdWJqZWN0PE9sR2VvbWV0cnk+ID0gbmV3IFN1YmplY3QoKTtcblxuICAvKipcbiAgICogRHJhdyBzZWxlY3Qgb2JzZXJ2YWJsZSAobW9kaWZ5IGRyYXduIGZlYXR1cmVzKVxuICAgKi9cbiAgcHVibGljIHNlbGVjdCQ6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgLyoqXG4gICAqIERyYXcgYWJvcnQgb2JzZXJ2YWJsZSAoYWJvcnQgZHJhd24gZmVhdHVyZXMpXG4gICAqL1xuICBwdWJsaWMgYWJvcnQkOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIC8qKlxuICAgKiBGcmVlaGFuZCBtb2RlIG9ic2VydmFibGUgKGRlZmF1bHRzIHRvIGZhbHNlKVxuICAgKi9cbiAgZnJlZWhhbmQkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgLyoqXG4gICAqIE9ic2VydmFibGVzIGZyb20gcHJlZGVmaW5lZCByYWRpdXMgKGRlZmF1bHRzIHRvIGZhbHNlIGFuZCB1bmRlZmluZWQpXG4gICAqL1xuICBpc3ByZWRlZmluZWRSYWRpdXMkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgcHJlZGVmaW5lZFJhZGl1cyQ6IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh1bmRlZmluZWQpO1xuICByYWRpdXNEcmF3RW5kJDogQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHVuZGVmaW5lZCk7XG5cbiAgcHJpdmF0ZSBrZXlEb3duJCQ6IFN1YnNjcmlwdGlvbjtcblxuICBwcml2YXRlIG9sR2VvbWV0cnlUeXBlOiB0eXBlb2YgT2xHZW9tZXRyeSB8IHVuZGVmaW5lZCB8IHN0cmluZztcbiAgcHJpdmF0ZSBvbEludGVyYWN0aW9uU3R5bGU6IE9sU3R5bGVMaWtlO1xuICBwcml2YXRlIG9sTWFwOiBPbE1hcDtcbiAgcHJpdmF0ZSBvbERyYXdpbmdMYXllcjogT2xWZWN0b3JMYXllcjxPbFZlY3RvclNvdXJjZTxPbEdlb21ldHJ5Pj47XG4gIHByaXZhdGUgb2xEcmF3SW50ZXJhY3Rpb246IE9sRHJhdztcbiAgcHJpdmF0ZSBvbFNlbGVjdEludGVyYWN0aW9uOiBPbFNlbGVjdDtcbiAgcHJpdmF0ZSBvbE1vZGlmeUludGVyYWN0aW9uOiBPbE1vZGlmeTtcbiAgcHJpdmF0ZSBvbkRyYXdTdGFydEtleTogRXZlbnRzS2V5O1xuICBwcml2YXRlIG9uRHJhd0VuZEtleTogRXZlbnRzS2V5O1xuICBwcml2YXRlIG9uRHJhd0Fib3J0S2V5OiBFdmVudHNLZXk7XG4gIHByaXZhdGUgb25EcmF3S2V5OiBFdmVudHNLZXk7XG4gIHB1YmxpYyByYWRpdXM6IG51bWJlcjtcblxuICBwcml2YXRlIG1vdXNlUG9zaXRpb246IFtudW1iZXIsIG51bWJlcl07XG5cbiAgLyoqXG4gICAqIHRha2UgdGhlIHZhbHVlIG9mIHJhZGl1c1xuICAgKi9cbiAgZ2V0IHJhZGl1c1ZhbCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRSYWRpdXMkLmdldFZhbHVlKCk7XG4gIH1cbiAgc2V0IHJhZGl1c1ZhbERhdGEocmFkaXVzQ2VyY2xlOiBudW1iZXIpIHtcbiAgICB0aGlzLnByZWRlZmluZWRSYWRpdXMkLm5leHQocmFkaXVzQ2VyY2xlKTtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIFdoZXRlciB0aGUgY29udHJvbCBpcyBhY3RpdmVcbiAgICovXG4gIGdldCBhY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMub2xNYXAgIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBPTCBvdmVybGF5IHNvdXJjZVxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGdldCBvbERyYXdpbmdMYXllclNvdXJjZSgpOiBPbFZlY3RvclNvdXJjZTxPbEdlb21ldHJ5PiB7XG4gICAgcmV0dXJuIHRoaXMub2xEcmF3aW5nTGF5ZXIuZ2V0U291cmNlKCk7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG9wdGlvbnM6IERyYXdDb250cm9sT3B0aW9ucykge1xuICAgIHRoaXMub2xEcmF3aW5nTGF5ZXIgPSBvcHRpb25zLmRyYXdpbmdMYXllciA/IG9wdGlvbnMuZHJhd2luZ0xheWVyIDogdGhpcy5jcmVhdGVPbElubmVyT3ZlcmxheUxheWVyKCk7XG4gICAgdGhpcy5vbEdlb21ldHJ5VHlwZSA9IHRoaXMub3B0aW9ucy5nZW9tZXRyeVR5cGU7XG4gICAgdGhpcy5vbEludGVyYWN0aW9uU3R5bGUgPSB0aGlzLm9wdGlvbnMuaW50ZXJhY3Rpb25TdHlsZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgb3IgcmVtb3ZlIHRoaXMgY29udHJvbCB0by9mcm9tIGEgbWFwLlxuICAgKiBAcGFyYW0gbWFwIE9MIE1hcFxuICAgKi9cbiAgc2V0T2xNYXAob2xNYXA6IE9sTWFwIHwgdW5kZWZpbmVkLCBhY3RpdmF0ZU1vZGlmeUFuZFNlbGVjdD86IGJvb2xlYW4pIHtcbiAgICBpZiAoIW9sTWFwKSB7XG4gICAgICB0aGlzLmNsZWFyT2xJbm5lck92ZXJsYXlTb3VyY2UoKTtcbiAgICAgIHRoaXMucmVtb3ZlT2xJbm5lck92ZXJsYXlMYXllcigpO1xuICAgICAgdGhpcy5yZW1vdmVPbEludGVyYWN0aW9ucygpO1xuICAgICAgdGhpcy5vbE1hcCA9IG9sTWFwO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMub2xNYXAgPSBvbE1hcDtcbiAgICB0aGlzLmFkZE9sSW5uZXJPdmVybGF5TGF5ZXIoKTtcbiAgICB0aGlzLmFkZE9sSW50ZXJhY3Rpb25zKGFjdGl2YXRlTW9kaWZ5QW5kU2VsZWN0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGRyYXdpbmcgbGF5ZXIgc291cmNlXG4gICAqL1xuICBnZXRTb3VyY2UoKTogT2xWZWN0b3JTb3VyY2U8T2xHZW9tZXRyeT4ge1xuICAgIHJldHVybiB0aGlzLm9sRHJhd2luZ0xheWVyU291cmNlO1xuXG4gIH1cblxuICBzZXRPbEludGVyYWN0aW9uU3R5bGUoc3R5bGUpIHtcbiAgICB0aGlzLm9sSW50ZXJhY3Rpb25TdHlsZSA9IHN0eWxlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgY3VycmVudCBnZW9tZXRyeSB0eXBlXG4gICAqIEBwYXJhbSBnZW9tZXRyeVR5cGUgdGhlIGdlb21ldHJ5IHR5cGVcbiAgICovXG4gIHNldEdlb21ldHJ5VHlwZShnZW9tZXRyeVR5cGU6IFR5cGUpIHtcbiAgICB0aGlzLm9sR2VvbWV0cnlUeXBlID0gZ2VvbWV0cnlUeXBlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgY3VycmVudCBnZW9tZXRyeSB0eXBlXG4gICAqL1xuICBnZXRHZW9tZXRyeVR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMub2xHZW9tZXRyeVR5cGU7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgZHJhd2luZyBzb3VyY2UgaWYgbm9uZSBpcyBkZWZpbmVkIGluIHRoZSBvcHRpb25zXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZU9sSW5uZXJPdmVybGF5TGF5ZXIoKTogT2xWZWN0b3JMYXllcjxPbFZlY3RvclNvdXJjZTxPbEdlb21ldHJ5Pj4ge1xuICAgIHJldHVybiBuZXcgT2xWZWN0b3JMYXllcih7XG4gICAgICBzb3VyY2U6IHRoaXMub3B0aW9ucy5kcmF3aW5nTGF5ZXJTb3VyY2UgPyB0aGlzLm9wdGlvbnMuZHJhd2luZ0xheWVyU291cmNlIDogbmV3IE9sVmVjdG9yU291cmNlKCksXG4gICAgICBzdHlsZTogdGhpcy5vcHRpb25zLmRyYXdpbmdMYXllclN0eWxlLFxuICAgICAgekluZGV4OiA1MDBcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhciB0aGUgZHJhd2luZyBsYXllciBpZiBpdCB3YXNuJ3QgZGVmaW5lZCBpbiB0aGUgb3B0aW9uc1xuICAgKi9cbiAgcHJpdmF0ZSByZW1vdmVPbElubmVyT3ZlcmxheUxheWVyKCkge1xuICAgIGlmICghdGhpcy5vcHRpb25zLmRyYXdpbmdMYXllciAmJiB0aGlzLm9sTWFwKSB7XG4gICAgICB0aGlzLm9sTWFwLnJlbW92ZUxheWVyKHRoaXMub2xEcmF3aW5nTGF5ZXIpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgdGhlIGRyYXdpbmcgbGF5ZXIgaWYgaXQgd2Fzbid0IGRlZmluZWQgaW4gdGhlIG9wdGlvbnNcbiAgICovXG4gIHByaXZhdGUgYWRkT2xJbm5lck92ZXJsYXlMYXllcigpIHtcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5kcmF3aW5nTGF5ZXIpIHtcbiAgICAgIHRoaXMub2xNYXAuYWRkTGF5ZXIodGhpcy5vbERyYXdpbmdMYXllcik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENsZWFyIHRoZSBkcmF3aW5nIGxheWVyIHNvdXJjZSBpZiBpdCB3YXNuJ3QgZGVmaW5lZCBpbiB0aGUgb3B0aW9uc1xuICAgKi9cbiAgcHJpdmF0ZSBjbGVhck9sSW5uZXJPdmVybGF5U291cmNlKCkge1xuICAgIGlmICghdGhpcy5vcHRpb25zLmRyYXdpbmdMYXllciAmJiAhdGhpcy5vcHRpb25zLmRyYXdpbmdMYXllclNvdXJjZSkge1xuICAgICAgdGhpcy5vbERyYXdpbmdMYXllclNvdXJjZS5jbGVhcih0cnVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWRkIGludGVyYWN0aW9ucyB0byB0aGUgbWFwIGFuIHNldCB1cCBzb21lIGxpc3RlbmVyc1xuICAgKi9cbiAgYWRkT2xJbnRlcmFjdGlvbnMoYWN0aXZhdGVNb2RpZnlBbmRTZWxlY3Q/OiBib29sZWFuKSB7XG4gICAgLy8gQ3JlYXRlIERyYXcgaW50ZXJhY3Rpb25cbiAgICBsZXQgb2xEcmF3SW50ZXJhY3Rpb247XG4gICAgaWYgKCF0aGlzLmZyZWVoYW5kJC5nZXRWYWx1ZSgpKSB7XG4gICAgICBpZiAoIXRoaXMuaXNwcmVkZWZpbmVkUmFkaXVzJC5nZXRWYWx1ZSgpKSB7XG4gICAgICAgIG9sRHJhd0ludGVyYWN0aW9uID0gbmV3IE9sRHJhdyh7XG4gICAgICAgICAgdHlwZTogdGhpcy5vbEdlb21ldHJ5VHlwZSBhcyBUeXBlLFxuICAgICAgICAgIHNvdXJjZTogdGhpcy5nZXRTb3VyY2UoKSxcbiAgICAgICAgICBzdG9wQ2xpY2s6IHRydWUsXG4gICAgICAgICAgc3R5bGU6IHRoaXMub2xJbnRlcmFjdGlvblN0eWxlLFxuICAgICAgICAgIG1heFBvaW50czogdGhpcy5vcHRpb25zLm1heFBvaW50cyxcbiAgICAgICAgICBmcmVlaGFuZDogZmFsc2UsXG4gICAgICAgICAgZnJlZWhhbmRDb25kaXRpb246ICgpID0+IGZhbHNlXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb2xEcmF3SW50ZXJhY3Rpb24gPSBuZXcgT2xEcmF3KHtcbiAgICAgICAgICB0eXBlOiAnUG9pbnQnLFxuICAgICAgICAgIHNvdXJjZTogdGhpcy5nZXRTb3VyY2UoKSxcbiAgICAgICAgICBzdG9wQ2xpY2s6IHRydWUsXG4gICAgICAgICAgc3R5bGU6IHRoaXMub2xJbnRlcmFjdGlvblN0eWxlLFxuICAgICAgICAgIG1heFBvaW50czogdGhpcy5vcHRpb25zLm1heFBvaW50cyxcbiAgICAgICAgICBmcmVlaGFuZDogZmFsc2UsXG4gICAgICAgICAgZnJlZWhhbmRDb25kaXRpb246ICgpID0+IGZhbHNlXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLm9sR2VvbWV0cnlUeXBlID09PSAnUG9pbnQnKSB7XG4gICAgICAgIG9sRHJhd0ludGVyYWN0aW9uID0gbmV3IE9sRHJhdyh7XG4gICAgICAgICAgdHlwZTogJ0NpcmNsZScsXG4gICAgICAgICAgc291cmNlOiB0aGlzLmdldFNvdXJjZSgpLFxuICAgICAgICAgIHN0eWxlOiB0eXBlb2YgdGhpcy5vbEludGVyYWN0aW9uU3R5bGUgPT09ICdmdW5jdGlvbicgPyB1bmRlZmluZWQgOiB0aGlzLm9sSW50ZXJhY3Rpb25TdHlsZSxcbiAgICAgICAgICBtYXhQb2ludHM6IHRoaXMub3B0aW9ucy5tYXhQb2ludHMsXG4gICAgICAgICAgZnJlZWhhbmQ6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvbERyYXdJbnRlcmFjdGlvbiA9IG5ldyBPbERyYXcoe1xuICAgICAgICAgIHR5cGU6IHRoaXMub2xHZW9tZXRyeVR5cGUgYXMgVHlwZSxcbiAgICAgICAgICBzb3VyY2U6IHRoaXMuZ2V0U291cmNlKCksXG4gICAgICAgICAgc3R5bGU6IHRoaXMub2xJbnRlcmFjdGlvblN0eWxlLFxuICAgICAgICAgIG1heFBvaW50czogdGhpcy5vcHRpb25zLm1heFBvaW50cyxcbiAgICAgICAgICBmcmVlaGFuZDogdHJ1ZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBZGQgRHJhdyBpbnRlcmFjdGlvbiB0byBtYXAgYW5kIGNyZWF0ZSBsaXN0ZW5lcnNcbiAgICB0aGlzLm9sTWFwLmFkZEludGVyYWN0aW9uKG9sRHJhd0ludGVyYWN0aW9uKTtcbiAgICB0aGlzLm9sRHJhd0ludGVyYWN0aW9uID0gb2xEcmF3SW50ZXJhY3Rpb247XG4gICAgdGhpcy5vbkRyYXdTdGFydEtleSA9IG9sRHJhd0ludGVyYWN0aW9uLm9uKCdkcmF3c3RhcnQnLCAoZXZlbnQ6IE9sRHJhd0V2ZW50KSA9PiB0aGlzLm9uRHJhd1N0YXJ0KGV2ZW50KSk7XG4gICAgdGhpcy5vbkRyYXdFbmRLZXkgPSBvbERyYXdJbnRlcmFjdGlvbi5vbignZHJhd2VuZCcsIChldmVudDogT2xEcmF3RXZlbnQpID0+IHRoaXMub25EcmF3RW5kKGV2ZW50KSk7XG4gICAgdGhpcy5vbkRyYXdBYm9ydEtleSA9IG9sRHJhd0ludGVyYWN0aW9uLm9uKCdkcmF3YWJvcnQnLCAoZXZlbnQ6IE9sRHJhd0V2ZW50KSA9PiB0aGlzLmFib3J0JC5uZXh0KGV2ZW50LmZlYXR1cmUuZ2V0R2VvbWV0cnkoKSkpO1xuXG4gICAgaWYgKGFjdGl2YXRlTW9kaWZ5QW5kU2VsZWN0KSB7XG4gICAgICAvLyBDcmVhdGUgYSBNb2RpZnkgaW50ZXJhY3Rpb24sIGFkZCBpdCB0byBtYXAgYW5kIGNyZWF0ZSBhIGxpc3RlbmVyXG4gICAgICBjb25zdCBvbE1vZGlmeUludGVyYWN0aW9uID0gbmV3IE9sTW9kaWZ5KHtcbiAgICAgICAgc291cmNlOiB0aGlzLmdldFNvdXJjZSgpXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5vbE1hcC5hZGRJbnRlcmFjdGlvbihvbE1vZGlmeUludGVyYWN0aW9uKTtcbiAgICAgIHRoaXMub2xNb2RpZnlJbnRlcmFjdGlvbiA9IG9sTW9kaWZ5SW50ZXJhY3Rpb247XG5cbiAgICAgIC8vIENyZWF0ZSBhIHNlbGVjdCBpbnRlcmFjdGlvbiBhbmQgYWRkIGl0IHRvIG1hcFxuICAgICAgaWYgKCF0aGlzLm9sU2VsZWN0SW50ZXJhY3Rpb24pIHtcbiAgICAgICAgY29uc3Qgb2xTZWxlY3RJbnRlcmFjdGlvbiA9IG5ldyBPbFNlbGVjdCh7XG4gICAgICAgICAgY29uZGl0aW9uOiBkb3VibGVDbGljayxcbiAgICAgICAgICBzdHlsZTogdW5kZWZpbmVkXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm9sTWFwLmFkZEludGVyYWN0aW9uKG9sU2VsZWN0SW50ZXJhY3Rpb24pO1xuICAgICAgICB0aGlzLm9sU2VsZWN0SW50ZXJhY3Rpb24gPSBvbFNlbGVjdEludGVyYWN0aW9uO1xuXG4gICAgICAgIHRoaXMub2xTZWxlY3RJbnRlcmFjdGlvbi5vbignc2VsZWN0JywgKGV2ZW50OiBPbFNlbGVjdEV2ZW50KSA9PiB0aGlzLm9uU2VsZWN0KGV2ZW50KSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBpbnRlcmFjdGlvbnNcbiAgICovXG4gIHByaXZhdGUgcmVtb3ZlT2xJbnRlcmFjdGlvbnMoKSB7XG4gICAgdGhpcy51bnN1YnNjcmliZUtleURvd24oKTtcbiAgICB1bkJ5S2V5KFt0aGlzLm9uRHJhd1N0YXJ0S2V5LCB0aGlzLm9uRHJhd0VuZEtleSwgdGhpcy5vbkRyYXdLZXksIHRoaXMub25EcmF3QWJvcnRLZXldKTtcblxuICAgIGlmICh0aGlzLm9sTWFwKSB7XG4gICAgICB0aGlzLm9sTWFwLnJlbW92ZUludGVyYWN0aW9uKHRoaXMub2xEcmF3SW50ZXJhY3Rpb24pO1xuICAgICAgdGhpcy5vbE1hcC5yZW1vdmVJbnRlcmFjdGlvbih0aGlzLm9sTW9kaWZ5SW50ZXJhY3Rpb24pO1xuICAgIH1cblxuICAgIHRoaXMub2xEcmF3SW50ZXJhY3Rpb24gPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5vbE1vZGlmeUludGVyYWN0aW9uID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZW4gZHJhd2luZyBzdGFydHMsIGNsZWFyIHRoZSBvdmVybGF5IGFuZCBzdGFydCB3YXRjaGluZyBmb3IgY2hhbmdlc1xuICAgKiBAcGFyYW0gZXZlbnQgRHJhdyBzdGFydCBldmVudFxuICAgKi9cbiAgcHJpdmF0ZSBvbkRyYXdTdGFydChldmVudDogT2xEcmF3RXZlbnQpIHtcbiAgICBjb25zdCBvbEdlb21ldHJ5ID0gZXZlbnQuZmVhdHVyZS5nZXRHZW9tZXRyeSgpO1xuICAgIHRoaXMuc3RhcnQkLm5leHQob2xHZW9tZXRyeSk7XG4gICAgdGhpcy5jbGVhck9sSW5uZXJPdmVybGF5U291cmNlKCk7XG4gICAgdGhpcy5vbkRyYXdLZXkgPSBvbEdlb21ldHJ5Lm9uKCdjaGFuZ2UnLCAob2xHZW9tZXRyeUV2ZW50OiBCYXNpY0V2ZW50KSA9PiB7XG4gICAgICB0aGlzLm1vdXNlUG9zaXRpb24gPSBnZXRNb3VzZVBvc2l0aW9uRnJvbU9sR2VvbWV0cnlFdmVudChvbEdlb21ldHJ5RXZlbnQpO1xuICAgICAgdGhpcy5jaGFuZ2VzJC5uZXh0KG9sR2VvbWV0cnlFdmVudC50YXJnZXQpO1xuICAgIH0pO1xuICAgIHRoaXMuc3Vic2NyaWJlS2V5RG93bigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZW4gZHJhd2luZyBlbmRzLCB1cGRhdGUgdGhlIGRyYXdpbmcgKGZlYXR1cmUpIGdlb21ldHJ5IG9ic2VydmFibGUgYW5kIGFkZFxuICAgKiBAcGFyYW0gZXZlbnQgRHJhdyBldmVudCAoZHJhd2VuZClcbiAgICovXG4gIHByaXZhdGUgb25EcmF3RW5kKGV2ZW50OiBPbERyYXdFdmVudCkge1xuICAgIGlmIChldmVudC5mZWF0dXJlLmdldEdlb21ldHJ5KCkuZ2V0VHlwZSgpID09PSAnUG9pbnQnKSB7XG4gICAgICB0aGlzLnJhZGl1c0RyYXdFbmQkLm5leHQodGhpcy5wcmVkZWZpbmVkUmFkaXVzJC5nZXRWYWx1ZSgpKTtcbiAgICB9XG4gICAgdGhpcy51bnN1YnNjcmliZUtleURvd24oKTtcbiAgICB1bkJ5S2V5KHRoaXMub25EcmF3S2V5KTtcbiAgICBjb25zdCBvbEdlb21ldHJ5ID0gZXZlbnQuZmVhdHVyZS5nZXRHZW9tZXRyeSgpO1xuICAgIG9sR2VvbWV0cnkub24oJ2NoYW5nZScsICgpID0+IHtcbiAgICAgIHRoaXMubW9kaWZ5JC5uZXh0KG9sR2VvbWV0cnkpO1xuICAgIH0pO1xuICAgIHRoaXMuZW5kJC5uZXh0KG9sR2VvbWV0cnkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZW4gYSBmZWF0dXJlIGlzIHNlbGVjdGVkLCB1cGRhdGUgdGhlIHNlbGVjdGVkIGZlYXR1cmUgb2JzZXJ2YWJsZVxuICAgKiBAcGFyYW0gZXZlbnQgTW9kaWZ5IGV2ZW50IChtb2RpZnllbmQpXG4gICAqL1xuICBwcml2YXRlIG9uU2VsZWN0KGV2ZW50OiBPbFNlbGVjdEV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LnNlbGVjdGVkLmxlbmd0aCA9PT0gMSkge1xuICAgICAgdGhpcy5zZWxlY3QkLm5leHQoZXZlbnQuc2VsZWN0ZWRbMF0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJzY3JpYmUgdG8ga2V5IGRvd25zIHVzZWQgYXMgZHJhd2luZyBpbnRlcmFjdGlvbiBzaG9yY3V0c1xuICAgKi9cbiAgcHJpdmF0ZSBzdWJzY3JpYmVLZXlEb3duKCkge1xuICAgIHRoaXMudW5zdWJzY3JpYmVLZXlEb3duKCk7XG4gICAgdGhpcy5rZXlEb3duJCQgPSBmcm9tRXZlbnQoZG9jdW1lbnQsICdrZXlkb3duJykuc3Vic2NyaWJlKChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgLy8gT24gRXNjYXBlIG9yICdjJyBrZXlkb3ducywgYWJvcnQgdGhlIGN1cnJlbnQgZHJhd2luZ1xuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgdGhpcy5vbERyYXdJbnRlcmFjdGlvbi5hYm9ydERyYXdpbmcoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBPbiBCYWNrc3BhY2Ugb3IgJ3UnIGtleWRvd25zLCByZW1vdmUgbGFzdCB2ZXJ0ZXggb2YgY3VycmVudCBkcmF3aW5nXG4gICAgICBpZiAoZXZlbnQua2V5ID09PSAnQmFja3NwYWNlJykge1xuICAgICAgICB0aGlzLm9sRHJhd0ludGVyYWN0aW9uLnJlbW92ZUxhc3RQb2ludCgpO1xuICAgICAgfVxuXG4gICAgICAvLyBPbiBFbnRlciBvciAnZicga2V5ZG93bnMsIGZpbmlzaCBjdXJyZW50IGRyYXdpbmdcbiAgICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgdGhpcy5vbERyYXdJbnRlcmFjdGlvbi5maW5pc2hEcmF3aW5nKCk7XG4gICAgICB9XG5cbiAgICAgIC8vIE9uIHNwYWNlIGJhciBrZXkgZG93biwgcGFuIHRvIHRoZSBjdXJyZW50IG1vdXNlIHBvc2l0aW9uXG4gICAgICBpZiAoZXZlbnQua2V5ID09PSAnICcpIHtcbiAgICAgICAgdGhpcy5vbE1hcC5nZXRWaWV3KCkuYW5pbWF0ZSh7XG4gICAgICAgICAgY2VudGVyOiB0aGlzLm1vdXNlUG9zaXRpb24sXG4gICAgICAgICAgZHVyYXRpb246IDEwMFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuc3Vic2NyaWJlIHRvIGtleSBkb3duXG4gICAqL1xuICBwcml2YXRlIHVuc3Vic2NyaWJlS2V5RG93bigpIHtcbiAgICBpZiAodGhpcy5rZXlEb3duJCQpIHtcbiAgICAgIHRoaXMua2V5RG93biQkLnVuc3Vic2NyaWJlKCk7XG4gICAgICB0aGlzLmtleURvd24kJCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==