@igo2/geo 1.14.2 → 1.14.3

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 (871) hide show
  1. package/esm2020/igo2-geo.mjs +4 -4
  2. package/esm2020/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +300 -300
  3. package/esm2020/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +305 -305
  4. package/esm2020/lib/catalog/catalog-browser/catalog-browser.component.mjs +246 -246
  5. package/esm2020/lib/catalog/catalog-browser/catalog-browser.module.mjs +79 -79
  6. package/esm2020/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +208 -208
  7. package/esm2020/lib/catalog/catalog-library/catalog-library-item.component.mjs +78 -78
  8. package/esm2020/lib/catalog/catalog-library/catalog-library.component.mjs +216 -216
  9. package/esm2020/lib/catalog/catalog-library/catalog-library.module.mjs +94 -94
  10. package/esm2020/lib/catalog/catalog.module.mjs +52 -52
  11. package/esm2020/lib/catalog/index.mjs +4 -4
  12. package/esm2020/lib/catalog/shared/catalog.abstract.mjs +94 -94
  13. package/esm2020/lib/catalog/shared/catalog.enum.mjs +15 -15
  14. package/esm2020/lib/catalog/shared/catalog.interface.mjs +1 -1
  15. package/esm2020/lib/catalog/shared/catalog.service.mjs +605 -605
  16. package/esm2020/lib/catalog/shared/index.mjs +4 -4
  17. package/esm2020/lib/datasource/datasource.module.mjs +21 -21
  18. package/esm2020/lib/datasource/index.mjs +2 -2
  19. package/esm2020/lib/datasource/shared/capabilities.service.mjs +430 -430
  20. package/esm2020/lib/datasource/shared/datasource.service.mjs +235 -235
  21. package/esm2020/lib/datasource/shared/datasources/any-datasource.interface.mjs +1 -1
  22. package/esm2020/lib/datasource/shared/datasources/any-datasource.mjs +1 -1
  23. package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.interface.mjs +1 -1
  24. package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +144 -144
  25. package/esm2020/lib/datasource/shared/datasources/carto-datasource.interface.mjs +1 -1
  26. package/esm2020/lib/datasource/shared/datasources/carto-datasource.mjs +108 -108
  27. package/esm2020/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +1 -1
  28. package/esm2020/lib/datasource/shared/datasources/cluster-datasource.mjs +14 -14
  29. package/esm2020/lib/datasource/shared/datasources/data.service.mjs +2 -2
  30. package/esm2020/lib/datasource/shared/datasources/datasource.interface.mjs +1 -1
  31. package/esm2020/lib/datasource/shared/datasources/datasource.mjs +28 -28
  32. package/esm2020/lib/datasource/shared/datasources/feature-datasource.interface.mjs +1 -1
  33. package/esm2020/lib/datasource/shared/datasources/feature-datasource.mjs +42 -42
  34. package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.mjs +1 -1
  35. package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +56 -56
  36. package/esm2020/lib/datasource/shared/datasources/index.mjs +35 -35
  37. package/esm2020/lib/datasource/shared/datasources/mvt-datasource.interface.mjs +1 -1
  38. package/esm2020/lib/datasource/shared/datasources/mvt-datasource.mjs +27 -27
  39. package/esm2020/lib/datasource/shared/datasources/osm-datasource.interface.mjs +1 -1
  40. package/esm2020/lib/datasource/shared/datasources/osm-datasource.mjs +11 -11
  41. package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.mjs +1 -1
  42. package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +48 -48
  43. package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.interface.mjs +1 -1
  44. package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.mjs +14 -14
  45. package/esm2020/lib/datasource/shared/datasources/websocket-datasource.interface.mjs +1 -1
  46. package/esm2020/lib/datasource/shared/datasources/websocket-datasource.mjs +53 -53
  47. package/esm2020/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +1 -1
  48. package/esm2020/lib/datasource/shared/datasources/wfs-datasource.mjs +71 -71
  49. package/esm2020/lib/datasource/shared/datasources/wfs.service.mjs +151 -151
  50. package/esm2020/lib/datasource/shared/datasources/wms-datasource.interface.mjs +1 -1
  51. package/esm2020/lib/datasource/shared/datasources/wms-datasource.mjs +205 -205
  52. package/esm2020/lib/datasource/shared/datasources/wms-wfs.utils.mjs +206 -206
  53. package/esm2020/lib/datasource/shared/datasources/wmts-datasource.interface.mjs +1 -1
  54. package/esm2020/lib/datasource/shared/datasources/wmts-datasource.mjs +15 -15
  55. package/esm2020/lib/datasource/shared/datasources/xyz-datasource.interface.mjs +1 -1
  56. package/esm2020/lib/datasource/shared/datasources/xyz-datasource.mjs +8 -8
  57. package/esm2020/lib/datasource/shared/index.mjs +4 -4
  58. package/esm2020/lib/datasource/shared/options/index.mjs +4 -4
  59. package/esm2020/lib/datasource/shared/options/options-api.interface.mjs +1 -1
  60. package/esm2020/lib/datasource/shared/options/options-api.providers.mjs +14 -14
  61. package/esm2020/lib/datasource/shared/options/options-api.service.mjs +80 -80
  62. package/esm2020/lib/datasource/shared/options/options.service.mjs +2 -2
  63. package/esm2020/lib/datasource/utils/esri-style-generator.mjs +356 -356
  64. package/esm2020/lib/datasource/utils/index.mjs +2 -2
  65. package/esm2020/lib/datasource/utils/tilegrid.mjs +19 -19
  66. package/esm2020/lib/directions/directions-buttons/directions-buttons.component.mjs +223 -223
  67. package/esm2020/lib/directions/directions-buttons/index.mjs +1 -1
  68. package/esm2020/lib/directions/directions-inputs/directions-inputs.component.mjs +289 -289
  69. package/esm2020/lib/directions/directions-inputs/index.mjs +1 -1
  70. package/esm2020/lib/directions/directions-results/directions-results.component.mjs +195 -195
  71. package/esm2020/lib/directions/directions-results/index.mjs +1 -1
  72. package/esm2020/lib/directions/directions-sources/directions-source.interface.mjs +1 -1
  73. package/esm2020/lib/directions/directions-sources/directions-source.mjs +2 -2
  74. package/esm2020/lib/directions/directions-sources/directions-source.provider.mjs +15 -15
  75. package/esm2020/lib/directions/directions-sources/index.mjs +4 -4
  76. package/esm2020/lib/directions/directions-sources/osrm-directions-source.mjs +98 -98
  77. package/esm2020/lib/directions/directions.component.mjs +310 -310
  78. package/esm2020/lib/directions/directions.module.mjs +101 -101
  79. package/esm2020/lib/directions/index.mjs +6 -6
  80. package/esm2020/lib/directions/shared/directions-source.service.mjs +16 -16
  81. package/esm2020/lib/directions/shared/directions.enum.mjs +27 -27
  82. package/esm2020/lib/directions/shared/directions.interface.mjs +1 -1
  83. package/esm2020/lib/directions/shared/directions.service.mjs +28 -28
  84. package/esm2020/lib/directions/shared/directions.utils.mjs +508 -508
  85. package/esm2020/lib/directions/shared/index.mjs +5 -5
  86. package/esm2020/lib/directions/shared/store.mjs +23 -23
  87. package/esm2020/lib/download/download-button/download-button.component.mjs +60 -60
  88. package/esm2020/lib/download/download-button/index.mjs +1 -1
  89. package/esm2020/lib/download/download.module.mjs +41 -41
  90. package/esm2020/lib/download/index.mjs +2 -2
  91. package/esm2020/lib/download/shared/download.interface.mjs +1 -1
  92. package/esm2020/lib/download/shared/download.service.mjs +64 -64
  93. package/esm2020/lib/download/shared/index.mjs +2 -2
  94. package/esm2020/lib/draw/draw/draw-layer-popup.component.mjs +54 -54
  95. package/esm2020/lib/draw/draw/draw-popup.component.mjs +590 -590
  96. package/esm2020/lib/draw/draw/draw-shorcuts.component.mjs +47 -47
  97. package/esm2020/lib/draw/draw/draw.component.mjs +1298 -1298
  98. package/esm2020/lib/draw/draw/draw.module.mjs +112 -112
  99. package/esm2020/lib/draw/drawingTool.module.mjs +19 -19
  100. package/esm2020/lib/draw/index.mjs +2 -2
  101. package/esm2020/lib/draw/shared/draw-icon.service.mjs +26 -26
  102. package/esm2020/lib/draw/shared/draw-style.service.mjs +189 -189
  103. package/esm2020/lib/draw/shared/draw.enum.mjs +36 -36
  104. package/esm2020/lib/draw/shared/draw.interface.mjs +1 -1
  105. package/esm2020/lib/draw/shared/draw.utils.mjs +121 -121
  106. package/esm2020/lib/draw/shared/index.mjs +5 -5
  107. package/esm2020/lib/feature/feature-details/feature-details.component.mjs +404 -404
  108. package/esm2020/lib/feature/feature-details/feature-details.directive.mjs +53 -53
  109. package/esm2020/lib/feature/feature-details/feature-details.module.mjs +47 -47
  110. package/esm2020/lib/feature/feature-form/feature-form.component.mjs +111 -111
  111. package/esm2020/lib/feature/feature-form/feature-form.module.mjs +33 -33
  112. package/esm2020/lib/feature/feature.module.mjs +27 -27
  113. package/esm2020/lib/feature/index.mjs +3 -3
  114. package/esm2020/lib/feature/shared/feature.enums.mjs +8 -8
  115. package/esm2020/lib/feature/shared/feature.interfaces.mjs +1 -1
  116. package/esm2020/lib/feature/shared/feature.utils.mjs +346 -346
  117. package/esm2020/lib/feature/shared/index.mjs +6 -6
  118. package/esm2020/lib/feature/shared/store.mjs +123 -123
  119. package/esm2020/lib/feature/shared/strategies/in-map-extent.mjs +112 -112
  120. package/esm2020/lib/feature/shared/strategies/in-map-resolution.mjs +93 -93
  121. package/esm2020/lib/feature/shared/strategies/index.mjs +5 -5
  122. package/esm2020/lib/feature/shared/strategies/loading-layer.mjs +103 -103
  123. package/esm2020/lib/feature/shared/strategies/loading.mjs +132 -132
  124. package/esm2020/lib/feature/shared/strategies/selection.mjs +369 -369
  125. package/esm2020/lib/feature/shared/strategies.utils.mjs +36 -36
  126. package/esm2020/lib/filter/filter.module.mjs +288 -288
  127. package/esm2020/lib/filter/index.mjs +15 -15
  128. package/esm2020/lib/filter/ogc-filter-button/index.mjs +1 -1
  129. package/esm2020/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +139 -139
  130. package/esm2020/lib/filter/ogc-filter-form/index.mjs +1 -1
  131. package/esm2020/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +644 -644
  132. package/esm2020/lib/filter/ogc-filter-selection/index.mjs +1 -1
  133. package/esm2020/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +1301 -1301
  134. package/esm2020/lib/filter/ogc-filter-time/index.mjs +2 -2
  135. package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +176 -176
  136. package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +897 -897
  137. package/esm2020/lib/filter/ogc-filterable-form/index.mjs +1 -1
  138. package/esm2020/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +58 -58
  139. package/esm2020/lib/filter/ogc-filterable-item/index.mjs +1 -1
  140. package/esm2020/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +306 -306
  141. package/esm2020/lib/filter/ogc-filterable-list/index.mjs +2 -2
  142. package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +30 -30
  143. package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +43 -43
  144. package/esm2020/lib/filter/shared/filterable-datasource.pipe.mjs +54 -54
  145. package/esm2020/lib/filter/shared/index.mjs +11 -11
  146. package/esm2020/lib/filter/shared/ogc-filter-time.service.mjs +71 -71
  147. package/esm2020/lib/filter/shared/ogc-filter.enum.mjs +29 -29
  148. package/esm2020/lib/filter/shared/ogc-filter.interface.mjs +1 -1
  149. package/esm2020/lib/filter/shared/ogc-filter.mjs +691 -691
  150. package/esm2020/lib/filter/shared/ogc-filter.service.mjs +45 -45
  151. package/esm2020/lib/filter/shared/spatial-filter.enum.mjs +22 -22
  152. package/esm2020/lib/filter/shared/spatial-filter.interface.mjs +1 -1
  153. package/esm2020/lib/filter/shared/spatial-filter.service.mjs +268 -268
  154. package/esm2020/lib/filter/shared/time-filter.enum.mjs +12 -12
  155. package/esm2020/lib/filter/shared/time-filter.interface.mjs +1 -1
  156. package/esm2020/lib/filter/shared/time-filter.service.mjs +106 -106
  157. package/esm2020/lib/filter/spatial-filter/spatial-filter-item/index.mjs +1 -1
  158. package/esm2020/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +1088 -1088
  159. package/esm2020/lib/filter/spatial-filter/spatial-filter-list/index.mjs +1 -1
  160. package/esm2020/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +207 -207
  161. package/esm2020/lib/filter/spatial-filter/spatial-filter-type/index.mjs +1 -1
  162. package/esm2020/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +143 -143
  163. package/esm2020/lib/filter/time-filter-button/index.mjs +1 -1
  164. package/esm2020/lib/filter/time-filter-button/time-filter-button.component.mjs +77 -77
  165. package/esm2020/lib/filter/time-filter-form/index.mjs +1 -1
  166. package/esm2020/lib/filter/time-filter-form/time-filter-form.component.mjs +733 -733
  167. package/esm2020/lib/filter/time-filter-item/index.mjs +1 -1
  168. package/esm2020/lib/filter/time-filter-item/time-filter-item.component.mjs +118 -118
  169. package/esm2020/lib/filter/time-filter-list/index.mjs +2 -2
  170. package/esm2020/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +30 -30
  171. package/esm2020/lib/filter/time-filter-list/time-filter-list.component.mjs +38 -38
  172. package/esm2020/lib/geo.module.mjs +101 -101
  173. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +520 -520
  174. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +188 -188
  175. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +63 -63
  176. package/esm2020/lib/geometry/geometry.module.mjs +26 -26
  177. package/esm2020/lib/geometry/index.mjs +3 -3
  178. package/esm2020/lib/geometry/shared/controls/draw.mjs +313 -313
  179. package/esm2020/lib/geometry/shared/controls/index.mjs +3 -3
  180. package/esm2020/lib/geometry/shared/controls/modify.mjs +520 -520
  181. package/esm2020/lib/geometry/shared/controls/slice.mjs +176 -176
  182. package/esm2020/lib/geometry/shared/geometry.errors.mjs +25 -25
  183. package/esm2020/lib/geometry/shared/geometry.interfaces.mjs +1 -1
  184. package/esm2020/lib/geometry/shared/geometry.utils.mjs +121 -121
  185. package/esm2020/lib/geometry/shared/index.mjs +4 -4
  186. package/esm2020/lib/import-export/export-button/export-button.component.mjs +63 -63
  187. package/esm2020/lib/import-export/export-button/index.mjs +1 -1
  188. package/esm2020/lib/import-export/import-export/import-export.component.mjs +1219 -1219
  189. package/esm2020/lib/import-export/import-export/index.mjs +1 -1
  190. package/esm2020/lib/import-export/import-export.module.mjs +95 -95
  191. package/esm2020/lib/import-export/index.mjs +4 -4
  192. package/esm2020/lib/import-export/shared/drop-geo-file.directive.mjs +134 -134
  193. package/esm2020/lib/import-export/shared/export.errors.mjs +14 -14
  194. package/esm2020/lib/import-export/shared/export.interface.mjs +1 -1
  195. package/esm2020/lib/import-export/shared/export.service.mjs +194 -194
  196. package/esm2020/lib/import-export/shared/export.type.mjs +3 -3
  197. package/esm2020/lib/import-export/shared/export.utils.mjs +54 -54
  198. package/esm2020/lib/import-export/shared/import.errors.mjs +38 -38
  199. package/esm2020/lib/import-export/shared/import.interface.mjs +1 -1
  200. package/esm2020/lib/import-export/shared/import.service.mjs +214 -214
  201. package/esm2020/lib/import-export/shared/import.utils.mjs +234 -234
  202. package/esm2020/lib/import-export/shared/index.mjs +10 -10
  203. package/esm2020/lib/import-export/style-list/index.mjs +4 -4
  204. package/esm2020/lib/import-export/style-list/style-list.interface.mjs +1 -1
  205. package/esm2020/lib/import-export/style-list/style-list.module.mjs +22 -22
  206. package/esm2020/lib/import-export/style-list/style-list.provider.mjs +20 -20
  207. package/esm2020/lib/import-export/style-list/style-list.service.mjs +50 -50
  208. package/esm2020/lib/layer/index.mjs +10 -10
  209. package/esm2020/lib/layer/layer-item/index.mjs +1 -1
  210. package/esm2020/lib/layer/layer-item/layer-item.component.mjs +299 -299
  211. package/esm2020/lib/layer/layer-legend/index.mjs +1 -1
  212. package/esm2020/lib/layer/layer-legend/layer-legend.component.mjs +387 -387
  213. package/esm2020/lib/layer/layer-legend-item/index.mjs +1 -1
  214. package/esm2020/lib/layer/layer-legend-item/layer-legend-item.component.mjs +83 -83
  215. package/esm2020/lib/layer/layer-legend-list/index.mjs +2 -2
  216. package/esm2020/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +47 -47
  217. package/esm2020/lib/layer/layer-legend-list/layer-legend-list.component.mjs +194 -194
  218. package/esm2020/lib/layer/layer-list/index.mjs +3 -3
  219. package/esm2020/lib/layer/layer-list/layer-list-binding.directive.mjs +58 -58
  220. package/esm2020/lib/layer/layer-list/layer-list.component.mjs +1008 -1008
  221. package/esm2020/lib/layer/layer-list/layer-list.enum.mjs +18 -18
  222. package/esm2020/lib/layer/layer-list-tool/index.mjs +4 -4
  223. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.component.mjs +164 -164
  224. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.enum.mjs +6 -6
  225. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.interface.mjs +1 -1
  226. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.service.mjs +21 -21
  227. package/esm2020/lib/layer/layer.module.mjs +184 -184
  228. package/esm2020/lib/layer/shared/clusterParam.mjs +1 -1
  229. package/esm2020/lib/layer/shared/index.mjs +6 -6
  230. package/esm2020/lib/layer/shared/layer.enums.mjs +1 -1
  231. package/esm2020/lib/layer/shared/layer.service.mjs +185 -185
  232. package/esm2020/lib/layer/shared/layers/any-layer.interface.mjs +1 -1
  233. package/esm2020/lib/layer/shared/layers/any-layer.mjs +1 -1
  234. package/esm2020/lib/layer/shared/layers/image-layer.interface.mjs +1 -1
  235. package/esm2020/lib/layer/shared/layers/image-layer.mjs +67 -67
  236. package/esm2020/lib/layer/shared/layers/index.mjs +12 -12
  237. package/esm2020/lib/layer/shared/layers/layer.interface.mjs +17 -17
  238. package/esm2020/lib/layer/shared/layers/layer.mjs +163 -163
  239. package/esm2020/lib/layer/shared/layers/tile-layer.interface.mjs +1 -1
  240. package/esm2020/lib/layer/shared/layers/tile-layer.mjs +46 -46
  241. package/esm2020/lib/layer/shared/layers/vector-layer.interface.mjs +1 -1
  242. package/esm2020/lib/layer/shared/layers/vector-layer.mjs +377 -377
  243. package/esm2020/lib/layer/shared/layers/vectortile-layer.interface.mjs +1 -1
  244. package/esm2020/lib/layer/shared/layers/vectortile-layer.mjs +103 -103
  245. package/esm2020/lib/layer/shared/style.service.mjs +355 -355
  246. package/esm2020/lib/layer/shared/vector-style.interface.mjs +1 -1
  247. package/esm2020/lib/layer/style-modal/index.mjs +1 -1
  248. package/esm2020/lib/layer/style-modal/style-modal.component.mjs +287 -287
  249. package/esm2020/lib/layer/track-feature-button/index.mjs +1 -1
  250. package/esm2020/lib/layer/track-feature-button/track-feature-button.component.mjs +58 -58
  251. package/esm2020/lib/layer/utils/image-watcher.mjs +61 -61
  252. package/esm2020/lib/layer/utils/index.mjs +5 -5
  253. package/esm2020/lib/layer/utils/layer.utils.mjs +9 -9
  254. package/esm2020/lib/layer/utils/outputLegend.mjs +26 -26
  255. package/esm2020/lib/layer/utils/tile-watcher.mjs +49 -49
  256. package/esm2020/lib/layer/utils/vector-watcher.mjs +47 -47
  257. package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.animation.mjs +19 -19
  258. package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +96 -96
  259. package/esm2020/lib/map/baselayers-switcher/index.mjs +2 -2
  260. package/esm2020/lib/map/baselayers-switcher/mini-basemap.component.mjs +141 -142
  261. package/esm2020/lib/map/geolocate-button/geolocate-button.component.mjs +78 -78
  262. package/esm2020/lib/map/geolocate-button/index.mjs +1 -1
  263. package/esm2020/lib/map/home-extent-button/home-extent-button.component.mjs +62 -62
  264. package/esm2020/lib/map/home-extent-button/index.mjs +1 -1
  265. package/esm2020/lib/map/index.mjs +13 -13
  266. package/esm2020/lib/map/info-section/index.mjs +1 -1
  267. package/esm2020/lib/map/info-section/info-section.component.mjs +29 -29
  268. package/esm2020/lib/map/map-browser/index.mjs +1 -1
  269. package/esm2020/lib/map/map-browser/map-browser.component.mjs +65 -65
  270. package/esm2020/lib/map/map-center/index.mjs +1 -1
  271. package/esm2020/lib/map/map-center/map-center.component.mjs +49 -49
  272. package/esm2020/lib/map/map.module.mjs +126 -126
  273. package/esm2020/lib/map/menu-button/index.mjs +1 -1
  274. package/esm2020/lib/map/menu-button/menu-button.component.mjs +61 -61
  275. package/esm2020/lib/map/offline-button/index.mjs +1 -1
  276. package/esm2020/lib/map/offline-button/offline-button.component.mjs +75 -75
  277. package/esm2020/lib/map/rotation-button/index.mjs +1 -1
  278. package/esm2020/lib/map/rotation-button/rotation-button.component.mjs +69 -69
  279. package/esm2020/lib/map/shared/controllers/controller.mjs +41 -41
  280. package/esm2020/lib/map/shared/controllers/geolocation.mjs +307 -307
  281. package/esm2020/lib/map/shared/controllers/index.mjs +3 -3
  282. package/esm2020/lib/map/shared/controllers/view.mjs +350 -350
  283. package/esm2020/lib/map/shared/hover-feature.directive.mjs +502 -502
  284. package/esm2020/lib/map/shared/index.mjs +13 -13
  285. package/esm2020/lib/map/shared/linkedLayers.utils.mjs +237 -237
  286. package/esm2020/lib/map/shared/map-pointer-position.directive.mjs +106 -106
  287. package/esm2020/lib/map/shared/map.enums.mjs +5 -5
  288. package/esm2020/lib/map/shared/map.interface.mjs +1 -1
  289. package/esm2020/lib/map/shared/map.mjs +406 -406
  290. package/esm2020/lib/map/shared/map.service.mjs +28 -28
  291. package/esm2020/lib/map/shared/map.utils.mjs +462 -462
  292. package/esm2020/lib/map/shared/mapOffline.directive.mjs +162 -162
  293. package/esm2020/lib/map/shared/projection.interfaces.mjs +1 -1
  294. package/esm2020/lib/map/shared/projection.service.mjs +64 -64
  295. package/esm2020/lib/map/shared/projection.utils.mjs +63 -63
  296. package/esm2020/lib/map/swipe-control/index.mjs +1 -1
  297. package/esm2020/lib/map/swipe-control/swipe-control.component.mjs +192 -192
  298. package/esm2020/lib/map/utils/layer-watcher.mjs +78 -78
  299. package/esm2020/lib/map/wake-lock-button/index.mjs +1 -1
  300. package/esm2020/lib/map/wake-lock-button/wake-lock-button.component.mjs +113 -113
  301. package/esm2020/lib/map/zoom-button/index.mjs +1 -1
  302. package/esm2020/lib/map/zoom-button/zoom-button.component.mjs +39 -39
  303. package/esm2020/lib/measure/index.mjs +3 -3
  304. package/esm2020/lib/measure/measure.module.mjs +19 -19
  305. package/esm2020/lib/measure/measurer/measure-format.pipe.mjs +36 -36
  306. package/esm2020/lib/measure/measurer/measurer-dialog.component.mjs +179 -179
  307. package/esm2020/lib/measure/measurer/measurer-item.component.mjs +139 -139
  308. package/esm2020/lib/measure/measurer/measurer.component.mjs +1041 -1041
  309. package/esm2020/lib/measure/measurer/measurer.module.mjs +93 -93
  310. package/esm2020/lib/measure/shared/index.mjs +3 -3
  311. package/esm2020/lib/measure/shared/measure.enum.mjs +36 -36
  312. package/esm2020/lib/measure/shared/measure.interfaces.mjs +1 -1
  313. package/esm2020/lib/measure/shared/measure.utils.mjs +488 -488
  314. package/esm2020/lib/metadata/index.mjs +2 -2
  315. package/esm2020/lib/metadata/metadata-button/index.mjs +1 -1
  316. package/esm2020/lib/metadata/metadata-button/metadata-button.component.mjs +133 -133
  317. package/esm2020/lib/metadata/metadata.module.mjs +54 -54
  318. package/esm2020/lib/metadata/shared/index.mjs +2 -2
  319. package/esm2020/lib/metadata/shared/metadata.interface.mjs +1 -1
  320. package/esm2020/lib/metadata/shared/metadata.service.mjs +18 -18
  321. package/esm2020/lib/offline/geoDB/configFileToGeoDB.service.mjs +104 -104
  322. package/esm2020/lib/offline/geoDB/geoDB.enums.mjs +5 -5
  323. package/esm2020/lib/offline/geoDB/geoDB.interface.mjs +1 -1
  324. package/esm2020/lib/offline/geoDB/geoDB.service.mjs +166 -166
  325. package/esm2020/lib/offline/geoDB/index.mjs +4 -4
  326. package/esm2020/lib/offline/index.mjs +2 -2
  327. package/esm2020/lib/offline/shared/geo-network.service.mjs +65 -65
  328. package/esm2020/lib/offline/shared/index.mjs +1 -1
  329. package/esm2020/lib/overlay/index.mjs +1 -1
  330. package/esm2020/lib/overlay/overlay.module.mjs +22 -22
  331. package/esm2020/lib/overlay/shared/index.mjs +6 -6
  332. package/esm2020/lib/overlay/shared/overlay-marker-style.utils.mjs +68 -68
  333. package/esm2020/lib/overlay/shared/overlay.directive.mjs +32 -32
  334. package/esm2020/lib/overlay/shared/overlay.enum.mjs +7 -7
  335. package/esm2020/lib/overlay/shared/overlay.mjs +129 -129
  336. package/esm2020/lib/overlay/shared/overlay.service.mjs +26 -26
  337. package/esm2020/lib/overlay/shared/overlay.utils.mjs +102 -102
  338. package/esm2020/lib/print/index.mjs +3 -3
  339. package/esm2020/lib/print/print/print.component.mjs +125 -125
  340. package/esm2020/lib/print/print-form/index.mjs +1 -1
  341. package/esm2020/lib/print/print-form/print-form.component.mjs +427 -427
  342. package/esm2020/lib/print/print.module.mjs +64 -64
  343. package/esm2020/lib/print/shared/geopdf.mjs +57 -57
  344. package/esm2020/lib/print/shared/index.mjs +4 -4
  345. package/esm2020/lib/print/shared/print.interface.mjs +1 -1
  346. package/esm2020/lib/print/shared/print.service.mjs +933 -933
  347. package/esm2020/lib/print/shared/print.type.mjs +29 -29
  348. package/esm2020/lib/query/index.mjs +1 -1
  349. package/esm2020/lib/query/query.module.mjs +28 -28
  350. package/esm2020/lib/query/shared/index.mjs +6 -6
  351. package/esm2020/lib/query/shared/query-search-source.mjs +34 -34
  352. package/esm2020/lib/query/shared/query-search-source.providers.mjs +21 -21
  353. package/esm2020/lib/query/shared/query.directive.mjs +260 -260
  354. package/esm2020/lib/query/shared/query.enums.mjs +29 -29
  355. package/esm2020/lib/query/shared/query.interfaces.mjs +1 -1
  356. package/esm2020/lib/query/shared/query.service.mjs +732 -732
  357. package/esm2020/lib/query/shared/query.utils.mjs +36 -36
  358. package/esm2020/lib/search/index.mjs +11 -11
  359. package/esm2020/lib/search/search-bar/search-bar.component.mjs +511 -511
  360. package/esm2020/lib/search/search-bar/search-bar.module.mjs +74 -74
  361. package/esm2020/lib/search/search-bar/search-url-param.directive.mjs +34 -34
  362. package/esm2020/lib/search/search-results/save-feature-dialog.component.mjs +117 -117
  363. package/esm2020/lib/search/search-results/search-results-add-button.component.mjs +370 -370
  364. package/esm2020/lib/search/search-results/search-results-item.component.mjs +123 -123
  365. package/esm2020/lib/search/search-results/search-results.component.mjs +339 -339
  366. package/esm2020/lib/search/search-results/search-results.module.mjs +103 -103
  367. package/esm2020/lib/search/search-selector/search-selector.component.mjs +122 -122
  368. package/esm2020/lib/search/search-selector/search-selector.module.mjs +55 -55
  369. package/esm2020/lib/search/search-settings/search-settings.component.mjs +441 -441
  370. package/esm2020/lib/search/search-settings/search-settings.module.mjs +59 -59
  371. package/esm2020/lib/search/search.module.mjs +66 -66
  372. package/esm2020/lib/search/shared/index.mjs +8 -8
  373. package/esm2020/lib/search/shared/search-pointer-summary.directive.mjs +321 -321
  374. package/esm2020/lib/search/shared/search-source-service.providers.mjs +19 -19
  375. package/esm2020/lib/search/shared/search-source.service.mjs +46 -46
  376. package/esm2020/lib/search/shared/search.enums.mjs +3 -3
  377. package/esm2020/lib/search/shared/search.interfaces.mjs +1 -1
  378. package/esm2020/lib/search/shared/search.service.mjs +120 -120
  379. package/esm2020/lib/search/shared/search.utils.mjs +90 -90
  380. package/esm2020/lib/search/shared/sources/coordinates.interfaces.mjs +1 -1
  381. package/esm2020/lib/search/shared/sources/coordinates.mjs +152 -152
  382. package/esm2020/lib/search/shared/sources/coordinates.providers.mjs +39 -39
  383. package/esm2020/lib/search/shared/sources/icherche.interfaces.mjs +1 -1
  384. package/esm2020/lib/search/shared/sources/icherche.mjs +766 -766
  385. package/esm2020/lib/search/shared/sources/icherche.providers.mjs +65 -65
  386. package/esm2020/lib/search/shared/sources/ilayer.interfaces.mjs +1 -1
  387. package/esm2020/lib/search/shared/sources/ilayer.mjs +319 -319
  388. package/esm2020/lib/search/shared/sources/ilayer.providers.mjs +39 -39
  389. package/esm2020/lib/search/shared/sources/index.mjs +17 -17
  390. package/esm2020/lib/search/shared/sources/nominatim.interfaces.mjs +1 -1
  391. package/esm2020/lib/search/shared/sources/nominatim.mjs +251 -251
  392. package/esm2020/lib/search/shared/sources/nominatim.providers.mjs +22 -22
  393. package/esm2020/lib/search/shared/sources/source.interfaces.mjs +1 -1
  394. package/esm2020/lib/search/shared/sources/source.mjs +178 -178
  395. package/esm2020/lib/search/shared/sources/storedqueries.interfaces.mjs +1 -1
  396. package/esm2020/lib/search/shared/sources/storedqueries.mjs +424 -424
  397. package/esm2020/lib/search/shared/sources/storedqueries.providers.mjs +40 -40
  398. package/esm2020/lib/toast/index.mjs +1 -1
  399. package/esm2020/lib/toast/toast.component.mjs +112 -112
  400. package/esm2020/lib/toast/toast.module.mjs +44 -44
  401. package/esm2020/lib/utils/commonVectorStyle.interface.mjs +1 -1
  402. package/esm2020/lib/utils/commonVectorStyle.mjs +74 -74
  403. package/esm2020/lib/utils/googleLinks.mjs +12 -12
  404. package/esm2020/lib/utils/id-generator.mjs +109 -109
  405. package/esm2020/lib/utils/index.mjs +5 -5
  406. package/esm2020/lib/utils/osmLinks.mjs +9 -9
  407. package/esm2020/lib/wkt/index.mjs +1 -1
  408. package/esm2020/lib/wkt/shared/index.mjs +1 -1
  409. package/esm2020/lib/wkt/shared/wkt.service.mjs +224 -224
  410. package/esm2020/lib/wkt/wkt.module.mjs +21 -21
  411. package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +47 -47
  412. package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +35 -35
  413. package/esm2020/lib/workspace/confirmation-popup/index.mjs +2 -2
  414. package/esm2020/lib/workspace/index.mjs +7 -7
  415. package/esm2020/lib/workspace/shared/edition-workspace.mjs +279 -279
  416. package/esm2020/lib/workspace/shared/edition-workspace.service.mjs +656 -656
  417. package/esm2020/lib/workspace/shared/feature-workspace.mjs +34 -34
  418. package/esm2020/lib/workspace/shared/feature-workspace.service.mjs +149 -149
  419. package/esm2020/lib/workspace/shared/index.mjs +7 -7
  420. package/esm2020/lib/workspace/shared/wfs-workspace.mjs +34 -34
  421. package/esm2020/lib/workspace/shared/wfs-workspace.service.mjs +149 -149
  422. package/esm2020/lib/workspace/shared/wms-workspace.service.mjs +259 -259
  423. package/esm2020/lib/workspace/shared/workspace.utils.mjs +23 -23
  424. package/esm2020/lib/workspace/widgets/index.mjs +3 -3
  425. package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +46 -46
  426. package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +35 -35
  427. package/esm2020/lib/workspace/widgets/widgets.mjs +14 -14
  428. package/esm2020/lib/workspace/workspace-selector/workspace-selector.directive.mjs +132 -132
  429. package/esm2020/lib/workspace/workspace-selector/workspace-selector.module.mjs +27 -27
  430. package/esm2020/lib/workspace/workspace-updator/workspace-updator.directive.mjs +112 -112
  431. package/esm2020/lib/workspace/workspace-updator/workspace-updator.module.mjs +27 -27
  432. package/esm2020/lib/workspace/workspace.module.mjs +61 -61
  433. package/esm2020/public_api.mjs +54 -54
  434. package/fesm2015/igo2-geo.mjs +44986 -44986
  435. package/fesm2015/igo2-geo.mjs.map +1 -1
  436. package/fesm2020/igo2-geo.mjs +43029 -43030
  437. package/fesm2020/igo2-geo.mjs.map +1 -1
  438. package/index.d.ts +5 -5
  439. package/lib/catalog/catalog-browser/catalog-browser-group.component.d.ts +126 -126
  440. package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +80 -80
  441. package/lib/catalog/catalog-browser/catalog-browser.component.d.ts +105 -105
  442. package/lib/catalog/catalog-browser/catalog-browser.module.d.ts +22 -22
  443. package/lib/catalog/catalog-library/add-catalog-dialog.component.d.ts +45 -45
  444. package/lib/catalog/catalog-library/catalog-library-item.component.d.ts +25 -25
  445. package/lib/catalog/catalog-library/catalog-library.component.d.ts +65 -65
  446. package/lib/catalog/catalog-library/catalog-library.module.d.ts +26 -26
  447. package/lib/catalog/catalog.module.d.ts +14 -14
  448. package/lib/catalog/index.d.ts +4 -4
  449. package/lib/catalog/shared/catalog.abstract.d.ts +50 -50
  450. package/lib/catalog/shared/catalog.enum.d.ts +14 -14
  451. package/lib/catalog/shared/catalog.interface.d.ts +66 -66
  452. package/lib/catalog/shared/catalog.service.d.ts +36 -36
  453. package/lib/catalog/shared/index.d.ts +4 -4
  454. package/lib/datasource/datasource.module.d.ts +8 -8
  455. package/lib/datasource/index.d.ts +2 -2
  456. package/lib/datasource/shared/capabilities.service.d.ts +37 -37
  457. package/lib/datasource/shared/datasource.service.d.ts +37 -37
  458. package/lib/datasource/shared/datasources/any-datasource.d.ts +16 -16
  459. package/lib/datasource/shared/datasources/any-datasource.interface.d.ts +15 -15
  460. package/lib/datasource/shared/datasources/arcgisrest-datasource.d.ts +14 -14
  461. package/lib/datasource/shared/datasources/arcgisrest-datasource.interface.d.ts +14 -14
  462. package/lib/datasource/shared/datasources/carto-datasource.d.ts +15 -15
  463. package/lib/datasource/shared/datasources/carto-datasource.interface.d.ts +13 -13
  464. package/lib/datasource/shared/datasources/cluster-datasource.d.ts +10 -10
  465. package/lib/datasource/shared/datasources/cluster-datasource.interface.d.ts +11 -11
  466. package/lib/datasource/shared/datasources/data.service.d.ts +3 -3
  467. package/lib/datasource/shared/datasources/datasource.d.ts +20 -20
  468. package/lib/datasource/shared/datasources/datasource.interface.d.ts +100 -100
  469. package/lib/datasource/shared/datasources/feature-datasource.d.ts +12 -12
  470. package/lib/datasource/shared/datasources/feature-datasource.interface.d.ts +18 -18
  471. package/lib/datasource/shared/datasources/imagearcgisrest-datasource.d.ts +15 -15
  472. package/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.d.ts +15 -15
  473. package/lib/datasource/shared/datasources/index.d.ts +35 -35
  474. package/lib/datasource/shared/datasources/mvt-datasource.d.ts +10 -10
  475. package/lib/datasource/shared/datasources/mvt-datasource.interface.d.ts +13 -13
  476. package/lib/datasource/shared/datasources/osm-datasource.d.ts +9 -9
  477. package/lib/datasource/shared/datasources/osm-datasource.interface.d.ts +7 -7
  478. package/lib/datasource/shared/datasources/tilearcgisrest-datasource.d.ts +15 -15
  479. package/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.d.ts +14 -14
  480. package/lib/datasource/shared/datasources/tiledebug-datasource.d.ts +9 -9
  481. package/lib/datasource/shared/datasources/tiledebug-datasource.interface.d.ts +9 -9
  482. package/lib/datasource/shared/datasources/websocket-datasource.d.ts +15 -15
  483. package/lib/datasource/shared/datasources/websocket-datasource.interface.d.ts +7 -7
  484. package/lib/datasource/shared/datasources/wfs-datasource.d.ts +20 -20
  485. package/lib/datasource/shared/datasources/wfs-datasource.interface.d.ts +20 -20
  486. package/lib/datasource/shared/datasources/wfs.service.d.ts +17 -17
  487. package/lib/datasource/shared/datasources/wms-datasource.d.ts +31 -31
  488. package/lib/datasource/shared/datasources/wms-datasource.interface.d.ts +32 -32
  489. package/lib/datasource/shared/datasources/wms-wfs.utils.d.ts +41 -41
  490. package/lib/datasource/shared/datasources/wmts-datasource.d.ts +10 -10
  491. package/lib/datasource/shared/datasources/wmts-datasource.interface.d.ts +13 -13
  492. package/lib/datasource/shared/datasources/xyz-datasource.d.ts +9 -9
  493. package/lib/datasource/shared/datasources/xyz-datasource.interface.d.ts +11 -11
  494. package/lib/datasource/shared/index.d.ts +4 -4
  495. package/lib/datasource/shared/options/index.d.ts +4 -4
  496. package/lib/datasource/shared/options/options-api.interface.d.ts +4 -4
  497. package/lib/datasource/shared/options/options-api.providers.d.ts +10 -10
  498. package/lib/datasource/shared/options/options-api.service.d.ts +16 -16
  499. package/lib/datasource/shared/options/options.service.d.ts +6 -6
  500. package/lib/datasource/utils/esri-style-generator.d.ts +21 -21
  501. package/lib/datasource/utils/index.d.ts +2 -2
  502. package/lib/datasource/utils/tilegrid.d.ts +2 -2
  503. package/lib/directions/directions-buttons/directions-buttons.component.d.ts +30 -30
  504. package/lib/directions/directions-buttons/index.d.ts +1 -1
  505. package/lib/directions/directions-inputs/directions-inputs.component.d.ts +45 -45
  506. package/lib/directions/directions-inputs/index.d.ts +1 -1
  507. package/lib/directions/directions-results/directions-results.component.d.ts +30 -30
  508. package/lib/directions/directions-results/index.d.ts +1 -1
  509. package/lib/directions/directions-sources/directions-source.d.ts +7 -7
  510. package/lib/directions/directions-sources/directions-source.interface.d.ts +11 -11
  511. package/lib/directions/directions-sources/directions-source.provider.d.ts +11 -11
  512. package/lib/directions/directions-sources/index.d.ts +4 -4
  513. package/lib/directions/directions-sources/osrm-directions-source.d.ts +23 -23
  514. package/lib/directions/directions.component.d.ts +56 -56
  515. package/lib/directions/directions.module.d.ts +26 -26
  516. package/lib/directions/index.d.ts +6 -6
  517. package/lib/directions/shared/directions-source.service.d.ts +11 -11
  518. package/lib/directions/shared/directions.enum.d.ts +22 -22
  519. package/lib/directions/shared/directions.interface.d.ts +126 -126
  520. package/lib/directions/shared/directions.service.d.ts +13 -13
  521. package/lib/directions/shared/directions.utils.d.ts +42 -42
  522. package/lib/directions/shared/index.d.ts +5 -5
  523. package/lib/directions/shared/store.d.ts +18 -18
  524. package/lib/download/download-button/download-button.component.d.ts +18 -18
  525. package/lib/download/download-button/index.d.ts +1 -1
  526. package/lib/download/download.module.d.ts +14 -14
  527. package/lib/download/index.d.ts +2 -2
  528. package/lib/download/shared/download.interface.d.ts +10 -10
  529. package/lib/download/shared/download.service.d.ts +11 -11
  530. package/lib/download/shared/index.d.ts +2 -2
  531. package/lib/draw/draw/draw-layer-popup.component.d.ts +14 -14
  532. package/lib/draw/draw/draw-popup.component.d.ts +63 -63
  533. package/lib/draw/draw/draw-shorcuts.component.d.ts +5 -5
  534. package/lib/draw/draw/draw.component.d.ts +239 -239
  535. package/lib/draw/draw/draw.module.d.ts +34 -34
  536. package/lib/draw/drawingTool.module.d.ts +7 -7
  537. package/lib/draw/index.d.ts +2 -2
  538. package/lib/draw/shared/draw-icon.service.d.ts +12 -12
  539. package/lib/draw/shared/draw-style.service.d.ts +36 -36
  540. package/lib/draw/shared/draw.enum.d.ts +32 -32
  541. package/lib/draw/shared/draw.interface.d.ts +40 -40
  542. package/lib/draw/shared/draw.utils.d.ts +35 -35
  543. package/lib/draw/shared/index.d.ts +5 -5
  544. package/lib/feature/feature-details/feature-details.component.d.ts +60 -60
  545. package/lib/feature/feature-details/feature-details.directive.d.ts +19 -19
  546. package/lib/feature/feature-details/feature-details.module.d.ts +15 -15
  547. package/lib/feature/feature-form/feature-form.component.d.ts +50 -50
  548. package/lib/feature/feature-form/feature-form.module.d.ts +12 -12
  549. package/lib/feature/feature.module.d.ts +9 -9
  550. package/lib/feature/index.d.ts +3 -3
  551. package/lib/feature/shared/feature.enums.d.ts +7 -7
  552. package/lib/feature/shared/feature.interfaces.d.ts +74 -74
  553. package/lib/feature/shared/feature.utils.d.ts +104 -104
  554. package/lib/feature/shared/index.d.ts +6 -6
  555. package/lib/feature/shared/store.d.ts +71 -71
  556. package/lib/feature/shared/strategies/in-map-extent.d.ts +52 -52
  557. package/lib/feature/shared/strategies/in-map-resolution.d.ts +52 -52
  558. package/lib/feature/shared/strategies/index.d.ts +5 -5
  559. package/lib/feature/shared/strategies/loading-layer.d.ts +59 -59
  560. package/lib/feature/shared/strategies/loading.d.ts +75 -75
  561. package/lib/feature/shared/strategies/selection.d.ts +176 -176
  562. package/lib/feature/shared/strategies.utils.d.ts +17 -17
  563. package/lib/filter/filter.module.d.ts +53 -53
  564. package/lib/filter/index.d.ts +15 -15
  565. package/lib/filter/ogc-filter-button/index.d.ts +1 -1
  566. package/lib/filter/ogc-filter-button/ogc-filter-button.component.d.ts +20 -20
  567. package/lib/filter/ogc-filter-form/index.d.ts +1 -1
  568. package/lib/filter/ogc-filter-form/ogc-filter-form.component.d.ts +65 -65
  569. package/lib/filter/ogc-filter-selection/index.d.ts +1 -1
  570. package/lib/filter/ogc-filter-selection/ogc-filter-selection.component.d.ts +93 -93
  571. package/lib/filter/ogc-filter-time/index.d.ts +2 -2
  572. package/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.d.ts +39 -39
  573. package/lib/filter/ogc-filter-time/ogc-filter-time.component.d.ts +86 -86
  574. package/lib/filter/ogc-filterable-form/index.d.ts +1 -1
  575. package/lib/filter/ogc-filterable-form/ogc-filterable-form.component.d.ts +15 -15
  576. package/lib/filter/ogc-filterable-item/index.d.ts +1 -1
  577. package/lib/filter/ogc-filterable-item/ogc-filterable-item.component.d.ts +41 -41
  578. package/lib/filter/ogc-filterable-list/index.d.ts +2 -2
  579. package/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.d.ts +14 -14
  580. package/lib/filter/ogc-filterable-list/ogc-filterable-list.component.d.ts +10 -10
  581. package/lib/filter/shared/filterable-datasource.pipe.d.ts +10 -10
  582. package/lib/filter/shared/index.d.ts +11 -11
  583. package/lib/filter/shared/ogc-filter-time.service.d.ts +19 -19
  584. package/lib/filter/shared/ogc-filter.d.ts +29 -29
  585. package/lib/filter/shared/ogc-filter.enum.d.ts +27 -27
  586. package/lib/filter/shared/ogc-filter.interface.d.ts +200 -200
  587. package/lib/filter/shared/ogc-filter.service.d.ts +11 -11
  588. package/lib/filter/shared/spatial-filter.enum.d.ts +19 -19
  589. package/lib/filter/shared/spatial-filter.interface.d.ts +10 -10
  590. package/lib/filter/shared/spatial-filter.service.d.ts +37 -37
  591. package/lib/filter/shared/time-filter.enum.d.ts +10 -10
  592. package/lib/filter/shared/time-filter.interface.d.ts +29 -29
  593. package/lib/filter/shared/time-filter.service.d.ts +11 -11
  594. package/lib/filter/spatial-filter/spatial-filter-item/index.d.ts +1 -1
  595. package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +166 -166
  596. package/lib/filter/spatial-filter/spatial-filter-list/index.d.ts +1 -1
  597. package/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.d.ts +58 -58
  598. package/lib/filter/spatial-filter/spatial-filter-type/index.d.ts +1 -1
  599. package/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.d.ts +45 -45
  600. package/lib/filter/time-filter-button/index.d.ts +1 -1
  601. package/lib/filter/time-filter-button/time-filter-button.component.d.ts +20 -20
  602. package/lib/filter/time-filter-form/index.d.ts +1 -1
  603. package/lib/filter/time-filter-form/time-filter-form.component.d.ts +77 -77
  604. package/lib/filter/time-filter-item/index.d.ts +1 -1
  605. package/lib/filter/time-filter-item/time-filter-item.component.d.ts +28 -28
  606. package/lib/filter/time-filter-list/index.d.ts +2 -2
  607. package/lib/filter/time-filter-list/time-filter-list-binding.directive.d.ts +14 -14
  608. package/lib/filter/time-filter-list/time-filter-list.component.d.ts +12 -12
  609. package/lib/geo.module.d.ts +28 -28
  610. package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +206 -206
  611. package/lib/geometry/geometry-form-field/geometry-form-field.component.d.ts +88 -88
  612. package/lib/geometry/geometry-form-field/geometry-form-field.module.d.ts +19 -19
  613. package/lib/geometry/geometry.module.d.ts +8 -8
  614. package/lib/geometry/index.d.ts +3 -3
  615. package/lib/geometry/shared/controls/draw.d.ts +150 -150
  616. package/lib/geometry/shared/controls/index.d.ts +3 -3
  617. package/lib/geometry/shared/controls/modify.d.ts +228 -228
  618. package/lib/geometry/shared/controls/slice.d.ts +99 -99
  619. package/lib/geometry/shared/geometry.errors.d.ts +11 -11
  620. package/lib/geometry/shared/geometry.interfaces.d.ts +13 -13
  621. package/lib/geometry/shared/geometry.utils.d.ts +45 -45
  622. package/lib/geometry/shared/index.d.ts +4 -4
  623. package/lib/import-export/export-button/export-button.component.d.ts +16 -16
  624. package/lib/import-export/export-button/index.d.ts +1 -1
  625. package/lib/import-export/import-export/import-export.component.d.ts +104 -104
  626. package/lib/import-export/import-export/index.d.ts +1 -1
  627. package/lib/import-export/import-export.module.d.ts +26 -26
  628. package/lib/import-export/index.d.ts +4 -4
  629. package/lib/import-export/shared/drop-geo-file.directive.d.ts +36 -36
  630. package/lib/import-export/shared/export.errors.d.ts +8 -8
  631. package/lib/import-export/shared/export.interface.d.ts +11 -11
  632. package/lib/import-export/shared/export.service.d.ts +30 -30
  633. package/lib/import-export/shared/export.type.d.ts +16 -16
  634. package/lib/import-export/shared/export.utils.d.ts +19 -19
  635. package/lib/import-export/shared/import.errors.d.ts +20 -20
  636. package/lib/import-export/shared/import.interface.d.ts +8 -8
  637. package/lib/import-export/shared/import.service.d.ts +31 -31
  638. package/lib/import-export/shared/import.utils.d.ts +18 -18
  639. package/lib/import-export/shared/index.d.ts +10 -10
  640. package/lib/import-export/style-list/index.d.ts +4 -4
  641. package/lib/import-export/style-list/style-list.interface.d.ts +6 -6
  642. package/lib/import-export/style-list/style-list.module.d.ts +8 -8
  643. package/lib/import-export/style-list/style-list.provider.d.ts +15 -15
  644. package/lib/import-export/style-list/style-list.service.d.ts +18 -18
  645. package/lib/layer/index.d.ts +10 -10
  646. package/lib/layer/layer-item/index.d.ts +1 -1
  647. package/lib/layer/layer-item/layer-item.component.d.ts +62 -62
  648. package/lib/layer/layer-legend/index.d.ts +1 -1
  649. package/lib/layer/layer-legend/layer-legend.component.d.ts +90 -90
  650. package/lib/layer/layer-legend-item/index.d.ts +1 -1
  651. package/lib/layer/layer-legend-item/layer-legend-item.component.d.ts +22 -22
  652. package/lib/layer/layer-legend-list/index.d.ts +2 -2
  653. package/lib/layer/layer-legend-list/layer-legend-list-binding.directive.d.ts +16 -16
  654. package/lib/layer/layer-legend-list/layer-legend-list.component.d.ts +31 -31
  655. package/lib/layer/layer-list/index.d.ts +3 -3
  656. package/lib/layer/layer-list/layer-list-binding.directive.d.ts +19 -19
  657. package/lib/layer/layer-list/layer-list.component.d.ts +127 -127
  658. package/lib/layer/layer-list/layer-list.enum.d.ts +15 -15
  659. package/lib/layer/layer-list-tool/index.d.ts +4 -4
  660. package/lib/layer/layer-list-tool/layer-list-tool.component.d.ts +32 -32
  661. package/lib/layer/layer-list-tool/layer-list-tool.enum.d.ts +5 -5
  662. package/lib/layer/layer-list-tool/layer-list-tool.interface.d.ts +8 -8
  663. package/lib/layer/layer-list-tool/layer-list-tool.service.d.ts +14 -14
  664. package/lib/layer/layer.module.d.ts +36 -36
  665. package/lib/layer/shared/clusterParam.d.ts +13 -13
  666. package/lib/layer/shared/index.d.ts +6 -6
  667. package/lib/layer/shared/layer.enums.d.ts +1 -1
  668. package/lib/layer/shared/layer.service.d.ts +30 -30
  669. package/lib/layer/shared/layers/any-layer.d.ts +6 -6
  670. package/lib/layer/shared/layers/any-layer.interface.d.ts +6 -6
  671. package/lib/layer/shared/layers/image-layer.d.ts +22 -22
  672. package/lib/layer/shared/layers/image-layer.interface.d.ts +19 -19
  673. package/lib/layer/shared/layers/index.d.ts +12 -12
  674. package/lib/layer/shared/layers/layer.d.ts +62 -62
  675. package/lib/layer/shared/layers/layer.interface.d.ts +109 -107
  676. package/lib/layer/shared/layers/tile-layer.d.ts +31 -31
  677. package/lib/layer/shared/layers/tile-layer.interface.d.ts +20 -20
  678. package/lib/layer/shared/layers/vector-layer.d.ts +78 -78
  679. package/lib/layer/shared/layers/vector-layer.interface.d.ts +41 -41
  680. package/lib/layer/shared/layers/vectortile-layer.d.ts +28 -28
  681. package/lib/layer/shared/layers/vectortile-layer.interface.d.ts +18 -18
  682. package/lib/layer/shared/style.service.d.ts +57 -57
  683. package/lib/layer/shared/vector-style.interface.d.ts +38 -38
  684. package/lib/layer/style-modal/index.d.ts +1 -1
  685. package/lib/layer/style-modal/style-modal.component.d.ts +42 -42
  686. package/lib/layer/track-feature-button/index.d.ts +1 -1
  687. package/lib/layer/track-feature-button/track-feature-button.component.d.ts +15 -15
  688. package/lib/layer/utils/image-watcher.d.ts +17 -17
  689. package/lib/layer/utils/index.d.ts +5 -5
  690. package/lib/layer/utils/layer.utils.d.ts +2 -2
  691. package/lib/layer/utils/outputLegend.d.ts +7 -7
  692. package/lib/layer/utils/tile-watcher.d.ts +14 -14
  693. package/lib/layer/utils/vector-watcher.d.ts +13 -13
  694. package/lib/map/baselayers-switcher/baselayers-switcher.animation.d.ts +2 -2
  695. package/lib/map/baselayers-switcher/baselayers-switcher.component.d.ts +21 -21
  696. package/lib/map/baselayers-switcher/index.d.ts +2 -2
  697. package/lib/map/baselayers-switcher/mini-basemap.component.d.ts +29 -29
  698. package/lib/map/geolocate-button/geolocate-button.component.d.ts +22 -22
  699. package/lib/map/geolocate-button/index.d.ts +1 -1
  700. package/lib/map/home-extent-button/home-extent-button.component.d.ts +20 -20
  701. package/lib/map/home-extent-button/index.d.ts +1 -1
  702. package/lib/map/index.d.ts +13 -13
  703. package/lib/map/info-section/index.d.ts +1 -1
  704. package/lib/map/info-section/info-section.component.d.ts +7 -7
  705. package/lib/map/map-browser/index.d.ts +1 -1
  706. package/lib/map/map-browser/map-browser.component.d.ts +25 -25
  707. package/lib/map/map-center/index.d.ts +1 -1
  708. package/lib/map/map-center/map-center.component.d.ts +31 -31
  709. package/lib/map/map.module.d.ts +28 -28
  710. package/lib/map/menu-button/index.d.ts +1 -1
  711. package/lib/map/menu-button/menu-button.component.d.ts +17 -17
  712. package/lib/map/offline-button/index.d.ts +1 -1
  713. package/lib/map/offline-button/offline-button.component.d.ts +23 -23
  714. package/lib/map/rotation-button/index.d.ts +1 -1
  715. package/lib/map/rotation-button/rotation-button.component.d.ts +17 -17
  716. package/lib/map/shared/controllers/controller.d.ts +29 -29
  717. package/lib/map/shared/controllers/geolocation.d.ts +112 -112
  718. package/lib/map/shared/controllers/index.d.ts +3 -3
  719. package/lib/map/shared/controllers/view.d.ts +200 -200
  720. package/lib/map/shared/hover-feature.directive.d.ts +132 -132
  721. package/lib/map/shared/index.d.ts +13 -13
  722. package/lib/map/shared/linkedLayers.utils.d.ts +17 -17
  723. package/lib/map/shared/map-pointer-position.directive.d.ts +71 -71
  724. package/lib/map/shared/map.d.ts +135 -135
  725. package/lib/map/shared/map.enums.d.ts +4 -4
  726. package/lib/map/shared/map.interface.d.ts +57 -57
  727. package/lib/map/shared/map.service.d.ts +19 -19
  728. package/lib/map/shared/map.utils.d.ts +90 -90
  729. package/lib/map/shared/mapOffline.directive.d.ts +21 -21
  730. package/lib/map/shared/projection.interfaces.d.ts +29 -29
  731. package/lib/map/shared/projection.service.d.ts +19 -19
  732. package/lib/map/shared/projection.utils.d.ts +19 -19
  733. package/lib/map/swipe-control/index.d.ts +1 -1
  734. package/lib/map/swipe-control/swipe-control.component.d.ts +97 -97
  735. package/lib/map/utils/layer-watcher.d.ts +20 -20
  736. package/lib/map/wake-lock-button/index.d.ts +1 -1
  737. package/lib/map/wake-lock-button/wake-lock-button.component.d.ts +30 -30
  738. package/lib/map/zoom-button/index.d.ts +1 -1
  739. package/lib/map/zoom-button/zoom-button.component.d.ts +12 -12
  740. package/lib/measure/index.d.ts +3 -3
  741. package/lib/measure/measure.module.d.ts +7 -7
  742. package/lib/measure/measurer/measure-format.pipe.d.ts +15 -15
  743. package/lib/measure/measurer/measurer-dialog.component.d.ts +14 -14
  744. package/lib/measure/measurer/measurer-item.component.d.ts +66 -66
  745. package/lib/measure/measurer/measurer.component.d.ts +405 -405
  746. package/lib/measure/measurer/measurer.module.d.ts +25 -25
  747. package/lib/measure/shared/index.d.ts +3 -3
  748. package/lib/measure/shared/measure.enum.d.ts +33 -33
  749. package/lib/measure/shared/measure.interfaces.d.ts +21 -21
  750. package/lib/measure/shared/measure.utils.d.ts +180 -180
  751. package/lib/metadata/index.d.ts +2 -2
  752. package/lib/metadata/metadata-button/index.d.ts +1 -1
  753. package/lib/metadata/metadata-button/metadata-button.component.d.ts +26 -26
  754. package/lib/metadata/metadata.module.d.ts +15 -15
  755. package/lib/metadata/shared/index.d.ts +2 -2
  756. package/lib/metadata/shared/metadata.interface.d.ts +13 -13
  757. package/lib/metadata/shared/metadata.service.d.ts +8 -8
  758. package/lib/offline/geoDB/configFileToGeoDB.service.d.ts +14 -14
  759. package/lib/offline/geoDB/geoDB.enums.d.ts +4 -4
  760. package/lib/offline/geoDB/geoDB.interface.d.ts +19 -19
  761. package/lib/offline/geoDB/geoDB.service.d.ts +37 -37
  762. package/lib/offline/geoDB/index.d.ts +4 -4
  763. package/lib/offline/index.d.ts +2 -2
  764. package/lib/offline/shared/geo-network.service.d.ts +28 -28
  765. package/lib/offline/shared/index.d.ts +1 -1
  766. package/lib/overlay/index.d.ts +1 -1
  767. package/lib/overlay/overlay.module.d.ts +9 -9
  768. package/lib/overlay/shared/index.d.ts +6 -6
  769. package/lib/overlay/shared/overlay-marker-style.utils.d.ts +11 -11
  770. package/lib/overlay/shared/overlay.d.ts +81 -81
  771. package/lib/overlay/shared/overlay.directive.d.ts +18 -18
  772. package/lib/overlay/shared/overlay.enum.d.ts +6 -6
  773. package/lib/overlay/shared/overlay.service.d.ts +14 -14
  774. package/lib/overlay/shared/overlay.utils.d.ts +17 -17
  775. package/lib/print/index.d.ts +3 -3
  776. package/lib/print/print/print.component.d.ts +35 -35
  777. package/lib/print/print-form/index.d.ts +1 -1
  778. package/lib/print/print-form/print-form.component.d.ts +97 -97
  779. package/lib/print/print.module.d.ts +19 -19
  780. package/lib/print/shared/geopdf.d.ts +1 -1
  781. package/lib/print/shared/index.d.ts +4 -4
  782. package/lib/print/shared/print.interface.d.ts +22 -22
  783. package/lib/print/shared/print.service.d.ts +168 -168
  784. package/lib/print/shared/print.type.d.ts +45 -45
  785. package/lib/query/index.d.ts +1 -1
  786. package/lib/query/query.module.d.ts +11 -11
  787. package/lib/query/shared/index.d.ts +6 -6
  788. package/lib/query/shared/query-search-source.d.ts +17 -17
  789. package/lib/query/shared/query-search-source.providers.d.ts +17 -17
  790. package/lib/query/shared/query.directive.d.ts +105 -105
  791. package/lib/query/shared/query.enums.d.ts +26 -26
  792. package/lib/query/shared/query.interfaces.d.ts +35 -35
  793. package/lib/query/shared/query.service.d.ts +56 -56
  794. package/lib/query/shared/query.utils.d.ts +27 -27
  795. package/lib/search/index.d.ts +11 -11
  796. package/lib/search/search-bar/search-bar.component.d.ts +230 -230
  797. package/lib/search/search-bar/search-bar.module.d.ts +23 -23
  798. package/lib/search/search-bar/search-url-param.directive.d.ts +13 -13
  799. package/lib/search/search-results/save-feature-dialog.component.d.ts +32 -32
  800. package/lib/search/search-results/search-results-add-button.component.d.ts +76 -76
  801. package/lib/search/search-results/search-results-item.component.d.ts +47 -47
  802. package/lib/search/search-results/search-results.component.d.ts +161 -161
  803. package/lib/search/search-results/search-results.module.d.ts +28 -28
  804. package/lib/search/search-selector/search-selector.component.d.ts +58 -58
  805. package/lib/search/search-selector/search-selector.module.d.ts +19 -19
  806. package/lib/search/search-settings/search-settings.component.d.ts +102 -102
  807. package/lib/search/search-settings/search-settings.module.d.ts +20 -20
  808. package/lib/search/search.module.d.ts +14 -14
  809. package/lib/search/shared/index.d.ts +8 -8
  810. package/lib/search/shared/search-pointer-summary.directive.d.ts +133 -133
  811. package/lib/search/shared/search-source-service.providers.d.ts +15 -15
  812. package/lib/search/shared/search-source.service.d.ts +32 -32
  813. package/lib/search/shared/search.enums.d.ts +1 -1
  814. package/lib/search/shared/search.interfaces.d.ts +29 -29
  815. package/lib/search/shared/search.service.d.ts +53 -53
  816. package/lib/search/shared/search.utils.d.ts +39 -39
  817. package/lib/search/shared/sources/coordinates.d.ts +40 -40
  818. package/lib/search/shared/sources/coordinates.interfaces.d.ts +12 -12
  819. package/lib/search/shared/sources/coordinates.providers.d.ts +31 -31
  820. package/lib/search/shared/sources/icherche.d.ts +96 -96
  821. package/lib/search/shared/sources/icherche.interfaces.d.ts +30 -30
  822. package/lib/search/shared/sources/icherche.providers.d.ts +46 -46
  823. package/lib/search/shared/sources/ilayer.d.ts +55 -55
  824. package/lib/search/shared/sources/ilayer.interfaces.d.ts +47 -47
  825. package/lib/search/shared/sources/ilayer.providers.d.ts +31 -31
  826. package/lib/search/shared/sources/index.d.ts +17 -17
  827. package/lib/search/shared/sources/nominatim.d.ts +45 -45
  828. package/lib/search/shared/sources/nominatim.interfaces.d.ts +10 -10
  829. package/lib/search/shared/sources/nominatim.providers.d.ts +18 -18
  830. package/lib/search/shared/sources/source.d.ts +108 -108
  831. package/lib/search/shared/sources/source.interfaces.d.ts +47 -47
  832. package/lib/search/shared/sources/storedqueries.d.ts +73 -73
  833. package/lib/search/shared/sources/storedqueries.interfaces.d.ts +42 -42
  834. package/lib/search/shared/sources/storedqueries.providers.d.ts +32 -32
  835. package/lib/toast/index.d.ts +1 -1
  836. package/lib/toast/toast.component.d.ts +33 -33
  837. package/lib/toast/toast.module.d.ts +14 -14
  838. package/lib/utils/commonVectorStyle.d.ts +14 -14
  839. package/lib/utils/commonVectorStyle.interface.d.ts +16 -16
  840. package/lib/utils/googleLinks.d.ts +5 -5
  841. package/lib/utils/id-generator.d.ts +54 -54
  842. package/lib/utils/index.d.ts +5 -5
  843. package/lib/utils/osmLinks.d.ts +4 -4
  844. package/lib/wkt/index.d.ts +1 -1
  845. package/lib/wkt/shared/index.d.ts +1 -1
  846. package/lib/wkt/shared/wkt.service.d.ts +19 -19
  847. package/lib/wkt/wkt.module.d.ts +8 -8
  848. package/lib/workspace/confirmation-popup/confirmation-popup.component.d.ts +23 -23
  849. package/lib/workspace/confirmation-popup/confirmation-popup.module.d.ts +14 -14
  850. package/lib/workspace/confirmation-popup/index.d.ts +2 -2
  851. package/lib/workspace/index.d.ts +7 -7
  852. package/lib/workspace/shared/edition-workspace.d.ts +82 -82
  853. package/lib/workspace/shared/edition-workspace.service.d.ts +52 -52
  854. package/lib/workspace/shared/feature-workspace.d.ts +18 -18
  855. package/lib/workspace/shared/feature-workspace.service.d.ts +19 -19
  856. package/lib/workspace/shared/index.d.ts +7 -7
  857. package/lib/workspace/shared/wfs-workspace.d.ts +18 -18
  858. package/lib/workspace/shared/wfs-workspace.service.d.ts +19 -19
  859. package/lib/workspace/shared/wms-workspace.service.d.ts +22 -22
  860. package/lib/workspace/shared/workspace.utils.d.ts +10 -10
  861. package/lib/workspace/widgets/index.d.ts +3 -3
  862. package/lib/workspace/widgets/ogc-filter/ogc-filter.component.d.ts +29 -29
  863. package/lib/workspace/widgets/ogc-filter/ogc-filter.module.d.ts +14 -14
  864. package/lib/workspace/widgets/widgets.d.ts +9 -9
  865. package/lib/workspace/workspace-selector/workspace-selector.directive.d.ts +32 -32
  866. package/lib/workspace/workspace-selector/workspace-selector.module.d.ts +11 -11
  867. package/lib/workspace/workspace-updator/workspace-updator.directive.d.ts +26 -26
  868. package/lib/workspace/workspace-updator/workspace-updator.module.d.ts +11 -11
  869. package/lib/workspace/workspace.module.d.ts +14 -14
  870. package/package.json +4 -4
  871. package/public_api.d.ts +51 -51
@@ -1,308 +1,308 @@
1
- import olGeolocation from 'ol/Geolocation';
2
- import { BehaviorSubject, interval } from 'rxjs';
3
- import olFeature from 'ol/Feature';
4
- import { MapController } from './controller';
5
- import { Point } from 'ol/geom';
6
- import { fromCircle } from 'ol/geom/Polygon';
7
- import OlCircle from 'ol/geom/Circle';
8
- import * as olstyle from 'ol/style';
9
- import { Overlay } from '../../../overlay/shared/overlay';
10
- import { FeatureMotion } from '../../../feature/shared/feature.enums';
11
- import { switchMap } from 'rxjs/operators';
12
- var GeolocationOverlayType;
13
- (function (GeolocationOverlayType) {
14
- GeolocationOverlayType["Position"] = "position";
15
- GeolocationOverlayType["Accuracy"] = "accuracy";
16
- GeolocationOverlayType["Buffer"] = "buffer";
17
- })(GeolocationOverlayType || (GeolocationOverlayType = {}));
18
- /**
19
- * Controller to handle map view interactions
20
- */
21
- export class MapGeolocationController extends MapController {
22
- constructor(map, options, storageService, configService) {
23
- super();
24
- this.map = map;
25
- this.options = options;
26
- this.storageService = storageService;
27
- this.configService = configService;
28
- this.subscriptions$$ = [];
29
- this.positionFeatureStyle = new olstyle.Style({
30
- image: new olstyle.Circle({
31
- radius: 6,
32
- fill: new olstyle.Fill({
33
- color: '#3399CC',
34
- }),
35
- stroke: new olstyle.Stroke({
36
- color: '#fff',
37
- width: 2,
38
- }),
39
- }),
40
- });
41
- this.accuracyFeatureStyle = new olstyle.Style({
42
- stroke: new olstyle.Stroke({
43
- color: 'rgba(120, 120, 120, 0.4)',
44
- width: 1,
45
- }),
46
- fill: new olstyle.Fill({
47
- color: 'rgba(120, 120, 120, 0.4)',
48
- }),
49
- });
50
- /**
51
- * Observable of the current emission interval of the position. In seconds
52
- */
53
- this.emissionIntervalSeconds$ = new BehaviorSubject(5);
54
- /**
55
- * Observable of the current position
56
- */
57
- this.position$ = new BehaviorSubject(undefined);
58
- /**
59
- * Observable of the tracking state
60
- */
61
- this.tracking$ = new BehaviorSubject(undefined);
62
- /**
63
- * Observable of the follow position state
64
- */
65
- this.followPosition$ = new BehaviorSubject(undefined);
66
- this._buffer = this.options && this.options.buffer ? this.options.buffer : undefined;
67
- this._accuracyThreshold = this.options && this.options.accuracyThreshold ? this.options.accuracyThreshold : 5000;
68
- this._followPosition = this.options && this.options.followPosition ? this.options.followPosition : false;
69
- this.geolocationOverlay = new Overlay(this.map);
70
- }
71
- /**
72
- * History of positions
73
- */
74
- // private positions: MapGeolocationState[] = [];
75
- /**
76
- * Whether the geolocate controller should keep the position history
77
- */
78
- /*
79
- // todo: refine this method
80
- set keepPositionHistory(value) {
81
- this._keepPositionHistory = value;
82
- }
83
- get keepPositionHistory(): boolean {
84
- return this._keepPositionHistory;
85
- }
86
- private _keepPositionHistory: boolean = this.options && this.options.keepPositionHistory ? this.options.keepPositionHistory : true;
87
- */
88
- /**
89
- * Whether the geolocate should show a buffer around the current position
90
- */
91
- set buffer(value) {
92
- this._buffer = value;
93
- this.handleFeatureCreation(this.position$.value);
94
- }
95
- get buffer() {
96
- return this._buffer;
97
- }
98
- /**
99
- * Whether the geolocate controller accuracy threshold to store/show the position.
100
- */
101
- set accuracyThreshold(value) {
102
- this._accuracyThreshold = value;
103
- this.handleFeatureCreation(this.position$.value);
104
- }
105
- get accuracyThreshold() {
106
- return this._accuracyThreshold;
107
- }
108
- /**
109
- * Whether the activate the geolocation.
110
- */
111
- get tracking() {
112
- return this.geolocation.getTracking();
113
- }
114
- set tracking(value) {
115
- this.geolocation.setTracking(value || false);
116
- this.tracking$.next(value);
117
- if (this.storageService && value !== undefined) {
118
- this.storageService.set('geolocation.tracking', value);
119
- }
120
- if (!value) {
121
- this.position$.next(undefined);
122
- }
123
- }
124
- /**
125
- * Whether the activate the view tracking of the current position
126
- */
127
- set followPosition(value) {
128
- this._followPosition = value;
129
- this.followPosition$.next(value);
130
- if (this.configService?.getConfig('geolocate.followPosition') === false) {
131
- this._followPosition = false;
132
- this.followPosition$.next(false);
133
- }
134
- this.handleFeatureCreation(this.position$.value);
135
- if (this.storageService && value !== undefined) {
136
- this.storageService.set('geolocation.followPosition', value);
137
- }
138
- }
139
- get followPosition() {
140
- return this._followPosition;
141
- }
142
- /**
143
- * Add or remove this controller to/from a map.
144
- * @param map OL Map
145
- */
146
- setOlMap(olMap) {
147
- super.setOlMap(olMap);
148
- this.setupObservers();
149
- }
150
- deleteGeolocationFeatures() {
151
- this.deleteFeatureByType(GeolocationOverlayType.Position);
152
- this.deleteFeatureByType(GeolocationOverlayType.Accuracy);
153
- this.deleteFeatureByType(GeolocationOverlayType.Buffer);
154
- }
155
- setupObservers() {
156
- this.tracking$.subscribe(tracking => {
157
- if (tracking) {
158
- this.onPositionChange(true, true);
159
- }
160
- else {
161
- this.deleteGeolocationFeatures();
162
- }
163
- });
164
- this.geolocation = new olGeolocation({
165
- // enableHighAccuracy must be set to true to have the heading value.
166
- trackingOptions: {
167
- enableHighAccuracy: true,
168
- maximumAge: 10000,
169
- timeout: 600000
170
- },
171
- projection: this.options.projection,
172
- });
173
- let tracking = false;
174
- this.subscriptions$$.push(this.emissionIntervalSeconds$
175
- .pipe(switchMap(value => interval(value * 1000)))
176
- .subscribe(() => {
177
- if (tracking === this.tracking) {
178
- this.onPositionChange(true);
179
- }
180
- else {
181
- tracking = this.tracking;
182
- this.onPositionChange(true, true);
183
- }
184
- }));
185
- }
186
- updateGeolocationOptions(options) {
187
- if (!options) {
188
- return;
189
- }
190
- // todo maybe a dedicated interface for geolocation should be defined instead of putting these inside the mapviewoptions?
191
- let tracking = options.geolocate;
192
- let followPosition = options.alwaysTracking;
193
- if (this.storageService) {
194
- const storedTracking = this.storageService.get('geolocation.tracking');
195
- if (storedTracking !== null && storedTracking !== undefined) {
196
- tracking = storedTracking;
197
- }
198
- const storedFollowPosition = this.storageService.get('geolocation.followPosition');
199
- if (storedFollowPosition !== null && storedFollowPosition !== undefined) {
200
- followPosition = storedFollowPosition;
201
- }
202
- }
203
- this.tracking = tracking;
204
- this.followPosition = followPosition;
205
- this.buffer = options.buffer;
206
- }
207
- /**
208
- * Teardown any observers
209
- */
210
- teardownObservers() {
211
- if (this.subscriptions$$.length) {
212
- this.subscriptions$$.map(s => s.unsubscribe());
213
- }
214
- super.teardownObservers();
215
- }
216
- /**
217
- * Clear the position history
218
- */
219
- /*
220
- // todo
221
- clearPositionsHistory() {
222
- this.positions = [];
223
- }*/
224
- /**
225
- * On position change, get the position, show it on the map and record it.
226
- * @param emitEvent Map event
227
- */
228
- onPositionChange(emitEvent = false, zoomTo = false) {
229
- if (!this.tracking) {
230
- return;
231
- }
232
- const geolocateProperties = this.geolocation.getProperties();
233
- if (geolocateProperties.accuracy > this.accuracyThreshold) {
234
- console.warn('Poor geolocation accuracy. No position are stored/shown');
235
- this.position$.next(undefined);
236
- return;
237
- }
238
- const position = {
239
- position: geolocateProperties.position,
240
- projection: this.geolocation.getProjection().getCode(),
241
- accuracy: geolocateProperties.accuracy,
242
- altitude: geolocateProperties.altitude,
243
- altitudeAccuracy: geolocateProperties.altitudeAccuracy,
244
- heading: geolocateProperties.heading,
245
- speed: geolocateProperties.speed,
246
- enableHighAccuracy: geolocateProperties.trackingOptions?.enableHighAccuracy ? true : false,
247
- timestamp: new Date()
248
- };
249
- this.handleFeatureCreation(position, zoomTo);
250
- if (emitEvent) {
251
- this.position$.next(position);
252
- /*if (this.keepPositionHistory === true) {
253
- // handle position diff to store only true diff;
254
- this.positions.push(position);
255
- }*/
256
- }
257
- }
258
- deleteFeatureByType(type) {
259
- const featureById = this.geolocationOverlay.dataSource.ol.getFeatureById(type);
260
- if (featureById) {
261
- this.geolocationOverlay.dataSource.ol.removeFeature(featureById);
262
- }
263
- }
264
- handleFeatureCreation(position, zoomTo = false) {
265
- if (!position || !position.position) {
266
- return;
267
- }
268
- this.deleteGeolocationFeatures();
269
- const positionGeometry = new Point(position.position);
270
- const accuracyGeometry = fromCircle(new OlCircle(position.position, position.accuracy || 0));
271
- const positionFeature = new olFeature({ geometry: positionGeometry });
272
- const accuracyFeature = new olFeature({ geometry: accuracyGeometry });
273
- if (positionGeometry) {
274
- let motion = this.followPosition ? FeatureMotion.Move : FeatureMotion.None;
275
- if (zoomTo) {
276
- motion = FeatureMotion.Zoom;
277
- }
278
- positionFeature.setId(GeolocationOverlayType.Position);
279
- positionFeature.setStyle(this.positionFeatureStyle);
280
- this.geolocationOverlay.addOlFeature(positionFeature, motion);
281
- if (accuracyGeometry) {
282
- accuracyFeature.setId(GeolocationOverlayType.Accuracy);
283
- accuracyFeature.setStyle(this.accuracyFeatureStyle);
284
- this.geolocationOverlay.addOlFeature(accuracyFeature, motion);
285
- }
286
- if (this.buffer) {
287
- const bufferFeature = new olFeature(new OlCircle(position.position, this.buffer.bufferRadius));
288
- const bufferStyle = new olstyle.Style({
289
- stroke: new olstyle.Stroke({ width: 2, color: this.buffer.bufferStroke }),
290
- fill: new olstyle.Fill({ color: this.buffer.bufferFill }),
291
- text: new olstyle.Text({
292
- textAlign: 'left',
293
- offsetX: 10,
294
- offsetY: -10,
295
- font: '12px Calibri,sans-serif',
296
- text: this.buffer.showBufferRadius ? `${this.buffer.bufferRadius}m` : '',
297
- fill: new olstyle.Fill({ color: '#000' }),
298
- stroke: new olstyle.Stroke({ color: '#fff', width: 3 })
299
- })
300
- });
301
- bufferFeature.setId(GeolocationOverlayType.Buffer);
302
- bufferFeature.setStyle(bufferStyle);
303
- this.geolocationOverlay.addOlFeature(bufferFeature, motion);
304
- }
305
- }
306
- }
307
- }
1
+ import olGeolocation from 'ol/Geolocation';
2
+ import { BehaviorSubject, interval } from 'rxjs';
3
+ import olFeature from 'ol/Feature';
4
+ import { MapController } from './controller';
5
+ import { Point } from 'ol/geom';
6
+ import { fromCircle } from 'ol/geom/Polygon';
7
+ import OlCircle from 'ol/geom/Circle';
8
+ import * as olstyle from 'ol/style';
9
+ import { Overlay } from '../../../overlay/shared/overlay';
10
+ import { FeatureMotion } from '../../../feature/shared/feature.enums';
11
+ import { switchMap } from 'rxjs/operators';
12
+ var GeolocationOverlayType;
13
+ (function (GeolocationOverlayType) {
14
+ GeolocationOverlayType["Position"] = "position";
15
+ GeolocationOverlayType["Accuracy"] = "accuracy";
16
+ GeolocationOverlayType["Buffer"] = "buffer";
17
+ })(GeolocationOverlayType || (GeolocationOverlayType = {}));
18
+ /**
19
+ * Controller to handle map view interactions
20
+ */
21
+ export class MapGeolocationController extends MapController {
22
+ constructor(map, options, storageService, configService) {
23
+ super();
24
+ this.map = map;
25
+ this.options = options;
26
+ this.storageService = storageService;
27
+ this.configService = configService;
28
+ this.subscriptions$$ = [];
29
+ this.positionFeatureStyle = new olstyle.Style({
30
+ image: new olstyle.Circle({
31
+ radius: 6,
32
+ fill: new olstyle.Fill({
33
+ color: '#3399CC',
34
+ }),
35
+ stroke: new olstyle.Stroke({
36
+ color: '#fff',
37
+ width: 2,
38
+ }),
39
+ }),
40
+ });
41
+ this.accuracyFeatureStyle = new olstyle.Style({
42
+ stroke: new olstyle.Stroke({
43
+ color: 'rgba(120, 120, 120, 0.4)',
44
+ width: 1,
45
+ }),
46
+ fill: new olstyle.Fill({
47
+ color: 'rgba(120, 120, 120, 0.4)',
48
+ }),
49
+ });
50
+ /**
51
+ * Observable of the current emission interval of the position. In seconds
52
+ */
53
+ this.emissionIntervalSeconds$ = new BehaviorSubject(5);
54
+ /**
55
+ * Observable of the current position
56
+ */
57
+ this.position$ = new BehaviorSubject(undefined);
58
+ /**
59
+ * Observable of the tracking state
60
+ */
61
+ this.tracking$ = new BehaviorSubject(undefined);
62
+ /**
63
+ * Observable of the follow position state
64
+ */
65
+ this.followPosition$ = new BehaviorSubject(undefined);
66
+ this._buffer = this.options && this.options.buffer ? this.options.buffer : undefined;
67
+ this._accuracyThreshold = this.options && this.options.accuracyThreshold ? this.options.accuracyThreshold : 5000;
68
+ this._followPosition = this.options && this.options.followPosition ? this.options.followPosition : false;
69
+ this.geolocationOverlay = new Overlay(this.map);
70
+ }
71
+ /**
72
+ * History of positions
73
+ */
74
+ // private positions: MapGeolocationState[] = [];
75
+ /**
76
+ * Whether the geolocate controller should keep the position history
77
+ */
78
+ /*
79
+ // todo: refine this method
80
+ set keepPositionHistory(value) {
81
+ this._keepPositionHistory = value;
82
+ }
83
+ get keepPositionHistory(): boolean {
84
+ return this._keepPositionHistory;
85
+ }
86
+ private _keepPositionHistory: boolean = this.options && this.options.keepPositionHistory ? this.options.keepPositionHistory : true;
87
+ */
88
+ /**
89
+ * Whether the geolocate should show a buffer around the current position
90
+ */
91
+ set buffer(value) {
92
+ this._buffer = value;
93
+ this.handleFeatureCreation(this.position$.value);
94
+ }
95
+ get buffer() {
96
+ return this._buffer;
97
+ }
98
+ /**
99
+ * Whether the geolocate controller accuracy threshold to store/show the position.
100
+ */
101
+ set accuracyThreshold(value) {
102
+ this._accuracyThreshold = value;
103
+ this.handleFeatureCreation(this.position$.value);
104
+ }
105
+ get accuracyThreshold() {
106
+ return this._accuracyThreshold;
107
+ }
108
+ /**
109
+ * Whether the activate the geolocation.
110
+ */
111
+ get tracking() {
112
+ return this.geolocation.getTracking();
113
+ }
114
+ set tracking(value) {
115
+ this.geolocation.setTracking(value || false);
116
+ this.tracking$.next(value);
117
+ if (this.storageService && value !== undefined) {
118
+ this.storageService.set('geolocation.tracking', value);
119
+ }
120
+ if (!value) {
121
+ this.position$.next(undefined);
122
+ }
123
+ }
124
+ /**
125
+ * Whether the activate the view tracking of the current position
126
+ */
127
+ set followPosition(value) {
128
+ this._followPosition = value;
129
+ this.followPosition$.next(value);
130
+ if (this.configService?.getConfig('geolocate.followPosition') === false) {
131
+ this._followPosition = false;
132
+ this.followPosition$.next(false);
133
+ }
134
+ this.handleFeatureCreation(this.position$.value);
135
+ if (this.storageService && value !== undefined) {
136
+ this.storageService.set('geolocation.followPosition', value);
137
+ }
138
+ }
139
+ get followPosition() {
140
+ return this._followPosition;
141
+ }
142
+ /**
143
+ * Add or remove this controller to/from a map.
144
+ * @param map OL Map
145
+ */
146
+ setOlMap(olMap) {
147
+ super.setOlMap(olMap);
148
+ this.setupObservers();
149
+ }
150
+ deleteGeolocationFeatures() {
151
+ this.deleteFeatureByType(GeolocationOverlayType.Position);
152
+ this.deleteFeatureByType(GeolocationOverlayType.Accuracy);
153
+ this.deleteFeatureByType(GeolocationOverlayType.Buffer);
154
+ }
155
+ setupObservers() {
156
+ this.tracking$.subscribe(tracking => {
157
+ if (tracking) {
158
+ this.onPositionChange(true, true);
159
+ }
160
+ else {
161
+ this.deleteGeolocationFeatures();
162
+ }
163
+ });
164
+ this.geolocation = new olGeolocation({
165
+ // enableHighAccuracy must be set to true to have the heading value.
166
+ trackingOptions: {
167
+ enableHighAccuracy: true,
168
+ maximumAge: 10000,
169
+ timeout: 600000
170
+ },
171
+ projection: this.options.projection,
172
+ });
173
+ let tracking = false;
174
+ this.subscriptions$$.push(this.emissionIntervalSeconds$
175
+ .pipe(switchMap(value => interval(value * 1000)))
176
+ .subscribe(() => {
177
+ if (tracking === this.tracking) {
178
+ this.onPositionChange(true);
179
+ }
180
+ else {
181
+ tracking = this.tracking;
182
+ this.onPositionChange(true, true);
183
+ }
184
+ }));
185
+ }
186
+ updateGeolocationOptions(options) {
187
+ if (!options) {
188
+ return;
189
+ }
190
+ // todo maybe a dedicated interface for geolocation should be defined instead of putting these inside the mapviewoptions?
191
+ let tracking = options.geolocate;
192
+ let followPosition = options.alwaysTracking;
193
+ if (this.storageService) {
194
+ const storedTracking = this.storageService.get('geolocation.tracking');
195
+ if (storedTracking !== null && storedTracking !== undefined) {
196
+ tracking = storedTracking;
197
+ }
198
+ const storedFollowPosition = this.storageService.get('geolocation.followPosition');
199
+ if (storedFollowPosition !== null && storedFollowPosition !== undefined) {
200
+ followPosition = storedFollowPosition;
201
+ }
202
+ }
203
+ this.tracking = tracking;
204
+ this.followPosition = followPosition;
205
+ this.buffer = options.buffer;
206
+ }
207
+ /**
208
+ * Teardown any observers
209
+ */
210
+ teardownObservers() {
211
+ if (this.subscriptions$$.length) {
212
+ this.subscriptions$$.map(s => s.unsubscribe());
213
+ }
214
+ super.teardownObservers();
215
+ }
216
+ /**
217
+ * Clear the position history
218
+ */
219
+ /*
220
+ // todo
221
+ clearPositionsHistory() {
222
+ this.positions = [];
223
+ }*/
224
+ /**
225
+ * On position change, get the position, show it on the map and record it.
226
+ * @param emitEvent Map event
227
+ */
228
+ onPositionChange(emitEvent = false, zoomTo = false) {
229
+ if (!this.tracking) {
230
+ return;
231
+ }
232
+ const geolocateProperties = this.geolocation.getProperties();
233
+ if (geolocateProperties.accuracy > this.accuracyThreshold) {
234
+ console.warn('Poor geolocation accuracy. No position are stored/shown');
235
+ this.position$.next(undefined);
236
+ return;
237
+ }
238
+ const position = {
239
+ position: geolocateProperties.position,
240
+ projection: this.geolocation.getProjection().getCode(),
241
+ accuracy: geolocateProperties.accuracy,
242
+ altitude: geolocateProperties.altitude,
243
+ altitudeAccuracy: geolocateProperties.altitudeAccuracy,
244
+ heading: geolocateProperties.heading,
245
+ speed: geolocateProperties.speed,
246
+ enableHighAccuracy: geolocateProperties.trackingOptions?.enableHighAccuracy ? true : false,
247
+ timestamp: new Date()
248
+ };
249
+ this.handleFeatureCreation(position, zoomTo);
250
+ if (emitEvent) {
251
+ this.position$.next(position);
252
+ /*if (this.keepPositionHistory === true) {
253
+ // handle position diff to store only true diff;
254
+ this.positions.push(position);
255
+ }*/
256
+ }
257
+ }
258
+ deleteFeatureByType(type) {
259
+ const featureById = this.geolocationOverlay.dataSource.ol.getFeatureById(type);
260
+ if (featureById) {
261
+ this.geolocationOverlay.dataSource.ol.removeFeature(featureById);
262
+ }
263
+ }
264
+ handleFeatureCreation(position, zoomTo = false) {
265
+ if (!position || !position.position) {
266
+ return;
267
+ }
268
+ this.deleteGeolocationFeatures();
269
+ const positionGeometry = new Point(position.position);
270
+ const accuracyGeometry = fromCircle(new OlCircle(position.position, position.accuracy || 0));
271
+ const positionFeature = new olFeature({ geometry: positionGeometry });
272
+ const accuracyFeature = new olFeature({ geometry: accuracyGeometry });
273
+ if (positionGeometry) {
274
+ let motion = this.followPosition ? FeatureMotion.Move : FeatureMotion.None;
275
+ if (zoomTo) {
276
+ motion = FeatureMotion.Zoom;
277
+ }
278
+ positionFeature.setId(GeolocationOverlayType.Position);
279
+ positionFeature.setStyle(this.positionFeatureStyle);
280
+ this.geolocationOverlay.addOlFeature(positionFeature, motion);
281
+ if (accuracyGeometry) {
282
+ accuracyFeature.setId(GeolocationOverlayType.Accuracy);
283
+ accuracyFeature.setStyle(this.accuracyFeatureStyle);
284
+ this.geolocationOverlay.addOlFeature(accuracyFeature, motion);
285
+ }
286
+ if (this.buffer) {
287
+ const bufferFeature = new olFeature(new OlCircle(position.position, this.buffer.bufferRadius));
288
+ const bufferStyle = new olstyle.Style({
289
+ stroke: new olstyle.Stroke({ width: 2, color: this.buffer.bufferStroke }),
290
+ fill: new olstyle.Fill({ color: this.buffer.bufferFill }),
291
+ text: new olstyle.Text({
292
+ textAlign: 'left',
293
+ offsetX: 10,
294
+ offsetY: -10,
295
+ font: '12px Calibri,sans-serif',
296
+ text: this.buffer.showBufferRadius ? `${this.buffer.bufferRadius}m` : '',
297
+ fill: new olstyle.Fill({ color: '#000' }),
298
+ stroke: new olstyle.Stroke({ color: '#fff', width: 3 })
299
+ })
300
+ });
301
+ bufferFeature.setId(GeolocationOverlayType.Buffer);
302
+ bufferFeature.setStyle(bufferStyle);
303
+ this.geolocationOverlay.addOlFeature(bufferFeature, motion);
304
+ }
305
+ }
306
+ }
307
+ }
308
308
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbG9jYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9tYXAvc2hhcmVkL2NvbnRyb2xsZXJzL2dlb2xvY2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sYUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUcvRCxPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFDbkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM3QyxPQUFPLEVBQUUsS0FBSyxFQUFXLE1BQU0sU0FBUyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLFFBQVEsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0QyxPQUFPLEtBQUssT0FBTyxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBR3RFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQTJCM0MsSUFBSyxzQkFJSjtBQUpELFdBQUssc0JBQXNCO0lBQ3pCLCtDQUFxQixDQUFBO0lBQ3JCLCtDQUFxQixDQUFBO0lBQ3JCLDJDQUFnQixDQUFBO0FBQ2xCLENBQUMsRUFKSSxzQkFBc0IsS0FBdEIsc0JBQXNCLFFBSTFCO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsYUFBYTtJQXFJekQsWUFDVSxHQUFXLEVBQ1gsT0FBeUMsRUFDekMsY0FBK0IsRUFDL0IsYUFBNkI7UUFDckMsS0FBSyxFQUFFLENBQUM7UUFKQSxRQUFHLEdBQUgsR0FBRyxDQUFRO1FBQ1gsWUFBTyxHQUFQLE9BQU8s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Q0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO29CQUN6RCxJQUFJLEVBQUUsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDO3dCQUNyQixTQUFTLEVBQUUsTUFBTTt3QkFDakIsT0FBTyxFQUFFLEVBQUU7d0JBQ1gsT0FBTyxFQUFFLENBQUMsRUFBRTt3QkFDWixJQUFJLEVBQUUseUJBQXlCO3dCQUMvQixJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO3dCQUN4RSxJQUFJLEVBQUUsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO3dCQUN6QyxNQUFNLEVBQUUsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUM7cUJBQ3hELENBQUM7aUJBQ0gsQ0FBQyxDQUFDO2dCQUNILGFBQWEsQ0FBQyxLQUFLLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ25ELGFBQWEsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2FBQzdEO1NBRUY7SUFFSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgT2xNYXAgZnJvbSAnb2wvTWFwJztcbmltcG9ydCBvbEdlb2xvY2F0aW9uIGZyb20gJ29sL0dlb2xvY2F0aW9uJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgaW50ZXJ2YWwsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgKiBhcyBvbHByb2ogZnJvbSAnb2wvcHJvaic7XG5pbXBvcnQgb2xGZWF0dXJlIGZyb20gJ29sL0ZlYXR1cmUnO1xuaW1wb3J0IHsgTWFwQ29udHJvbGxlciB9IGZyb20gJy4vY29udHJvbGxlcic7XG5pbXBvcnQgeyBQb2ludCwgUG9seWdvbiB9IGZyb20gJ29sL2dlb20nO1xuaW1wb3J0IHsgZnJvbUNpcmNsZSB9IGZyb20gJ29sL2dlb20vUG9seWdvbic7XG5pbXBvcnQgT2xDaXJjbGUgZnJvbSAnb2wvZ2VvbS9DaXJjbGUnO1xuaW1wb3J0IHsgSWdvTWFwIH0gZnJvbSAnLi4vbWFwJztcbmltcG9ydCAqIGFzIG9sc3R5bGUgZnJvbSAnb2wvc3R5bGUnO1xuaW1wb3J0IHsgT3ZlcmxheSB9IGZyb20gJy4uLy4uLy4uL292ZXJsYXkvc2hhcmVkL292ZXJsYXknO1xuaW1wb3J0IHsgRmVhdHVyZU1vdGlvbiB9IGZyb20gJy4uLy4uLy4uL2ZlYXR1cmUvc2hhcmVkL2ZlYXR1cmUuZW51bXMnO1xuaW1wb3J0IHsgU3RvcmFnZVNlcnZpY2UsIENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcbmltcG9ydCB7IE1hcFZpZXdPcHRpb25zIH0gZnJvbSAnLi4vbWFwLmludGVyZmFjZSc7XG5pbXBvcnQgeyBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5leHBvcnQgaW50ZXJmYWNlIE1hcEdlb2xvY2F0aW9uQ29udHJvbGxlck9wdGlvbnMge1xuICAvLyAgdG9kbyBrZWVwUG9zaXRpb25IaXN0b3J5PzogYm9vbGVhbjtcbiAgcHJvamVjdGlvbjogb2xwcm9qLlByb2plY3Rpb25MaWtlXG4gIGFjY3VyYWN5VGhyZXNob2xkPzogbnVtYmVyO1xuICBmb2xsb3dQb3NpdGlvbj86IGJvb2xlYW47XG4gIGJ1ZmZlcj86IEdlb2xvY2F0aW9uQnVmZmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBNYXBHZW9sb2NhdGlvblN0YXRlIHtcbiAgcG9zaXRpb246IG51bWJlcltdO1xuICBwcm9qZWN0aW9uOiBzdHJpbmc7XG4gIGFjY3VyYWN5OiBudW1iZXI7XG4gIGFsdGl0dWRlOiBudW1iZXI7XG4gIGFsdGl0dWRlQWNjdXJhY3k6IG51bWJlcjtcbiAgaGVhZGluZzogbnVtYmVyO1xuICBzcGVlZDogbnVtYmVyO1xuICBlbmFibGVIaWdoQWNjdXJhY3k6IGJvb2xlYW47XG4gIHRpbWVzdGFtcDogRGF0ZTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgR2VvbG9jYXRpb25CdWZmZXIge1xuICBidWZmZXJSYWRpdXM/OiBudW1iZXI7XG4gIGJ1ZmZlclN0cm9rZT86IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdO1xuICBidWZmZXJGaWxsPzogW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl07XG4gIHNob3dCdWZmZXJSYWRpdXM/OiBib29sZWFuO1xufVxuXG5cbmVudW0gR2VvbG9jYXRpb25PdmVybGF5VHlwZSB7XG4gIFBvc2l0aW9uID0gJ3Bvc2l0aW9uJyxcbiAgQWNjdXJhY3kgPSAnYWNjdXJhY3knLFxuICBCdWZmZXI9ICdidWZmZXInXG59XG5cbi8qKlxuICogQ29udHJvbGxlciB0byBoYW5kbGUgbWFwIHZpZXcgaW50ZXJhY3Rpb25zXG4gKi9cbmV4cG9ydCBjbGFzcyBNYXBHZW9sb2NhdGlvbkNvbnRyb2xsZXIgZXh0ZW5kcyBNYXBDb250cm9sbGVyIHtcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnMkJDogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgcHJpdmF0ZSBnZW9sb2NhdGlvbk92ZXJsYXk6IE92ZXJsYXk7XG4gIHByaXZhdGUgcG9zaXRpb25GZWF0dXJlU3R5bGU6IG9sc3R5bGUuU3R5bGUgfCBvbHN0eWxlLlN0eWxlW10gPSBuZXcgb2xzdHlsZS5TdHlsZSh7XG4gICAgaW1hZ2U6IG5ldyBvbHN0eWxlLkNpcmNsZSh7XG4gICAgICByYWRpdXM6IDYsXG4gICAgICBmaWxsOiBuZXcgb2xzdHlsZS5GaWxsKHtcbiAgICAgICAgY29sb3I6ICcjMzM5OUNDJyxcbiAgICAgIH0pLFxuICAgICAgc3Ryb2tlOiBuZXcgb2xzdHlsZS5TdHJva2Uoe1xuICAgICAgICBjb2xvcjogJyNmZmYnLFxuICAgICAgICB3aWR0aDogMixcbiAgICAgIH0pLFxuICAgIH0pLFxuICB9KTtcbiAgcHJpdmF0ZSBhY2N1cmFjeUZlYXR1cmVTdHlsZTogb2xzdHlsZS5TdHlsZSB8IG9sc3R5bGUuU3R5bGVbXSA9IG5ldyBvbHN0eWxlLlN0eWxlKHtcbiAgICBzdHJva2U6IG5ldyBvbHN0eWxlLlN0cm9rZSh7XG4gICAgICBjb2xvcjogJ3JnYmEoMTIwLCAxMjAsIDEyMCwgMC40KScsXG4gICAgICB3aWR0aDogMSxcbiAgICB9KSxcbiAgICBmaWxsOiBuZXcgb2xzdHlsZS5GaWxsKHtcbiAgICAgIGNvbG9yOiAncmdiYSgxMjAsIDEyMCwgMTIwLCAwLjQpJyxcbiAgICB9KSxcbiAgfSk7XG5cbiAgcHJpdmF0ZSBnZW9sb2NhdGlvbjogb2xHZW9sb2NhdGlvbjtcblxuICAvKipcbiAgICogT2JzZXJ2YWJsZSBvZiB0aGUgY3VycmVudCBlbWlzc2lvbiBpbnRlcnZhbCBvZiB0aGUgcG9zaXRpb24uIEluIHNlY29uZHNcbiAgICovXG4gICBwdWJsaWMgcmVhZG9ubHkgZW1pc3Npb25JbnRlcnZhbFNlY29uZHMkOiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoNSk7XG5cbiAgLyoqXG4gICAqIE9ic2VydmFibGUgb2YgdGhlIGN1cnJlbnQgcG9zaXRpb25cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwb3NpdGlvbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1hcEdlb2xvY2F0aW9uU3RhdGU+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBPYnNlcnZhYmxlIG9mIHRoZSB0cmFja2luZyBzdGF0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHRyYWNraW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odW5kZWZpbmVkKTtcbiAgLyoqXG4gICAqIE9ic2VydmFibGUgb2YgdGhlIGZvbGxvdyBwb3NpdGlvbiBzdGF0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGZvbGxvd1Bvc2l0aW9uJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odW5kZWZpbmVkKTtcblxuXG4gIC8qKlxuICAgKiBIaXN0b3J5IG9mIHBvc2l0aW9uc1xuICAgKi9cbiAgLy8gcHJpdmF0ZSBwb3NpdGlvbnM6IE1hcEdlb2xvY2F0aW9uU3RhdGVbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBnZW9sb2NhdGUgY29udHJvbGxlciBzaG91bGQga2VlcCB0aGUgcG9zaXRpb24gaGlzdG9yeVxuICAgKi9cbiAgLypcbiAgLy8gdG9kbzogcmVmaW5lIHRoaXMgbWV0aG9kXG4gIHNldCBrZWVwUG9zaXRpb25IaXN0b3J5KHZhbHVlKSB7XG4gICAgdGhpcy5fa2VlcFBvc2l0aW9uSGlzdG9yeSA9IHZhbHVlO1xuICB9XG4gIGdldCBrZWVwUG9zaXRpb25IaXN0b3J5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9rZWVwUG9zaXRpb25IaXN0b3J5O1xuICB9XG4gIHByaXZhdGUgX2tlZXBQb3NpdGlvbkhpc3Rvcnk6IGJvb2xlYW4gPSB0aGlzLm9wdGlvbnMgJiYgdGhpcy5vcHRpb25zLmtlZXBQb3NpdGlvbkhpc3RvcnkgPyB0aGlzLm9wdGlvbnMua2VlcFBvc2l0aW9uSGlzdG9yeSA6IHRydWU7XG4qL1xuICAvKipcbiAgICogV2hldGhlciB0aGUgZ2VvbG9jYXRlIHNob3VsZCBzaG93IGEgYnVmZmVyIGFyb3VuZCB0aGUgY3VycmVudCBwb3NpdGlvblxuICAgKi9cbiAgIHNldCBidWZmZXIodmFsdWU6IEdlb2xvY2F0aW9uQnVmZmVyKSB7XG4gICAgdGhpcy5fYnVmZmVyID0gdmFsdWU7XG4gICAgdGhpcy5oYW5kbGVGZWF0dXJlQ3JlYXRpb24odGhpcy5wb3NpdGlvbiQudmFsdWUpO1xuICB9XG4gICBnZXQgYnVmZmVyKCk6IEdlb2xvY2F0aW9uQnVmZmVyIHtcbiAgICByZXR1cm4gdGhpcy5fYnVmZmVyO1xuICB9XG4gIHByaXZhdGUgX2J1ZmZlcjogR2VvbG9jYXRpb25CdWZmZXIgPSB0aGlzLm9wdGlvbnMgJiYgdGhpcy5vcHRpb25zLmJ1ZmZlciA/IHRoaXMub3B0aW9ucy5idWZmZXIgOiB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGdlb2xvY2F0ZSBjb250cm9sbGVyIGFjY3VyYWN5IHRocmVzaG9sZCB0byBzdG9yZS9zaG93IHRoZSBwb3NpdGlvbi5cbiAgICovXG4gIHNldCBhY2N1cmFjeVRocmVzaG9sZCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fYWNjdXJhY3lUaHJlc2hvbGQgPSB2YWx1ZTtcbiAgICB0aGlzLmhhbmRsZUZlYXR1cmVDcmVhdGlvbih0aGlzLnBvc2l0aW9uJC52YWx1ZSk7XG4gIH1cblxuICBnZXQgYWNjdXJhY3lUaHJlc2hvbGQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fYWNjdXJhY3lUaHJlc2hvbGQ7XG4gIH1cbiAgcHJpdmF0ZSBfYWNjdXJhY3lUaHJlc2hvbGQgPSB0aGlzLm9wdGlvbnMgJiYgdGhpcy5vcHRpb25zLmFjY3VyYWN5VGhyZXNob2xkID8gdGhpcy5vcHRpb25zLmFjY3VyYWN5VGhyZXNob2xkIDogNTAwMDtcblxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBhY3RpdmF0ZSB0aGUgZ2VvbG9jYXRpb24uXG4gICAqL1xuICBnZXQgdHJhY2tpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2VvbG9jYXRpb24uZ2V0VHJhY2tpbmcoKTtcbiAgfVxuXG4gIHNldCB0cmFja2luZyh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuZ2VvbG9jYXRpb24uc2V0VHJhY2tpbmcodmFsdWUgfHwgZmFsc2UpO1xuICAgIHRoaXMudHJhY2tpbmckLm5leHQodmFsdWUpO1xuICAgIGlmICh0aGlzLnN0b3JhZ2VTZXJ2aWNlICYmIHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0KCdnZW9sb2NhdGlvbi50cmFja2luZycsIHZhbHVlKTtcbiAgICB9XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgdGhpcy5wb3NpdGlvbiQubmV4dCh1bmRlZmluZWQpO1xuICAgIH1cbiAgfVxuXG4gICAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGFjdGl2YXRlIHRoZSB2aWV3IHRyYWNraW5nIG9mIHRoZSBjdXJyZW50IHBvc2l0aW9uXG4gICAqL1xuICBzZXQgZm9sbG93UG9zaXRpb24odmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9mb2xsb3dQb3NpdGlvbiA9IHZhbHVlO1xuICAgIHRoaXMuZm9sbG93UG9zaXRpb24kLm5leHQodmFsdWUpO1xuICAgIGlmICh0aGlzLmNvbmZpZ1NlcnZpY2U/LmdldENvbmZpZygnZ2VvbG9jYXRlLmZvbGxvd1Bvc2l0aW9uJykgPT09IGZhbHNlKSB7XG4gICAgICB0aGlzLl9mb2xsb3dQb3NpdGlvbiA9IGZhbHNlO1xuICAgICAgdGhpcy5mb2xsb3dQb3NpdGlvbiQubmV4dChmYWxzZSk7XG4gICAgfVxuICAgIHRoaXMuaGFuZGxlRmVhdHVyZUNyZWF0aW9uKHRoaXMucG9zaXRpb24kLnZhbHVlKTtcbiAgICBpZiAodGhpcy5zdG9yYWdlU2VydmljZSAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldCgnZ2VvbG9jYXRpb24uZm9sbG93UG9zaXRpb24nLCB2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGZvbGxvd1Bvc2l0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLl9mb2xsb3dQb3NpdGlvbjtcbiAgfVxuXG5cbiAgcHJpdmF0ZSBfZm9sbG93UG9zaXRpb24gPSB0aGlzLm9wdGlvbnMgJiYgdGhpcy5vcHRpb25zLmZvbGxvd1Bvc2l0aW9uID8gdGhpcy5vcHRpb25zLmZvbGxvd1Bvc2l0aW9uIDogZmFsc2U7XG5cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG1hcDogSWdvTWFwLFxuICAgIHByaXZhdGUgb3B0aW9ucz86IE1hcEdlb2xvY2F0aW9uQ29udHJvbGxlck9wdGlvbnMsXG4gICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZT86IFN0b3JhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlnU2VydmljZT86IENvbmZpZ1NlcnZpY2UpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuZ2VvbG9jYXRpb25PdmVybGF5ID0gbmV3IE92ZXJsYXkodGhpcy5tYXApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBvciByZW1vdmUgdGhpcyBjb250cm9sbGVyIHRvL2Zyb20gYSBtYXAuXG4gICAqIEBwYXJhbSBtYXAgT0wgTWFwXG4gICAqL1xuICBzZXRPbE1hcChvbE1hcDogT2xNYXAgfCB1bmRlZmluZWQpIHtcbiAgICBzdXBlci5zZXRPbE1hcChvbE1hcCk7XG4gICAgdGhpcy5zZXR1cE9ic2VydmVycygpO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWxldGVHZW9sb2NhdGlvbkZlYXR1cmVzKCkge1xuICAgIHRoaXMuZGVsZXRlRmVhdHVyZUJ5VHlwZShHZW9sb2NhdGlvbk92ZXJsYXlUeXBlLlBvc2l0aW9uKTtcbiAgICB0aGlzLmRlbGV0ZUZlYXR1cmVCeVR5cGUoR2VvbG9jYXRpb25PdmVybGF5VHlwZS5BY2N1cmFjeSk7XG4gICAgdGhpcy5kZWxldGVGZWF0dXJlQnlUeXBlKEdlb2xvY2F0aW9uT3ZlcmxheVR5cGUuQnVmZmVyKTtcbiAgfVxuXG4gIHNldHVwT2JzZXJ2ZXJzKCkge1xuICAgIHRoaXMudHJhY2tpbmckLnN1YnNjcmliZSh0cmFja2luZyA9PiB7XG4gICAgICBpZiAodHJhY2tpbmcpIHtcbiAgICAgICAgdGhpcy5vblBvc2l0aW9uQ2hhbmdlKHRydWUsIHRydWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5kZWxldGVHZW9sb2NhdGlvbkZlYXR1cmVzKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmdlb2xvY2F0aW9uID0gbmV3IG9sR2VvbG9jYXRpb24oe1xuICAgICAgLy8gZW5hYmxlSGlnaEFjY3VyYWN5IG11c3QgYmUgc2V0IHRvIHRydWUgdG8gaGF2ZSB0aGUgaGVhZGluZyB2YWx1ZS5cbiAgICAgIHRyYWNraW5nT3B0aW9uczoge1xuICAgICAgICBlbmFibGVIaWdoQWNjdXJhY3k6IHRydWUsXG4gICAgICAgIG1heGltdW1BZ2U6IDEwMDAwLFxuICAgICAgICB0aW1lb3V0OiA2MDAwMDBcbiAgICAgIH0sXG4gICAgICBwcm9qZWN0aW9uOiB0aGlzLm9wdGlvbnMucHJvamVjdGlvbixcbiAgICB9KTtcbiAgICBsZXQgdHJhY2tpbmcgPSBmYWxzZTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMkJC5wdXNoKHRoaXMuZW1pc3Npb25JbnRlcnZhbFNlY29uZHMkXG4gICAgICAucGlwZShzd2l0Y2hNYXAodmFsdWUgPT4gaW50ZXJ2YWwodmFsdWUgKiAxMDAwKSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKHRyYWNraW5nID09PSB0aGlzLnRyYWNraW5nKSB7XG4gICAgICAgICAgdGhpcy5vblBvc2l0aW9uQ2hhbmdlKHRydWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRyYWNraW5nID0gdGhpcy50cmFja2luZztcbiAgICAgICAgICB0aGlzLm9uUG9zaXRpb25DaGFuZ2UodHJ1ZSwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0pKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVHZW9sb2NhdGlvbk9wdGlvbnMob3B0aW9uczogTWFwVmlld09wdGlvbnMpIHtcbiAgICBpZiAoIW9wdGlvbnMpIHsgcmV0dXJuO31cbiAgICAvLyB0b2RvIG1heWJlIGEgZGVkaWNhdGVkIGludGVyZmFjZSBmb3IgZ2VvbG9jYXRpb24gc2hvdWxkIGJlIGRlZmluZWQgaW5zdGVhZCBvZiBwdXR0aW5nIHRoZXNlIGluc2lkZSB0aGUgbWFwdmlld29wdGlvbnM/XG4gICAgbGV0IHRyYWNraW5nID0gb3B0aW9ucy5nZW9sb2NhdGU7XG4gICAgbGV0IGZvbGxvd1Bvc2l0aW9uID0gb3B0aW9ucy5hbHdheXNUcmFja2luZztcbiAgICBpZiAodGhpcy5zdG9yYWdlU2VydmljZSkge1xuICAgICAgY29uc3Qgc3RvcmVkVHJhY2tpbmcgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldCgnZ2VvbG9jYXRpb24udHJhY2tpbmcnKSBhcyBib29sZWFuO1xuICAgICAgaWYgKHN0b3JlZFRyYWNraW5nICE9PSBudWxsICYmIHN0b3JlZFRyYWNraW5nICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdHJhY2tpbmcgPSBzdG9yZWRUcmFja2luZztcbiAgICAgIH1cblxuICAgICAgY29uc3Qgc3RvcmVkRm9sbG93UG9zaXRpb24gPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldCgnZ2VvbG9jYXRpb24uZm9sbG93UG9zaXRpb24nKSBhcyBib29sZWFuO1xuICAgICAgaWYgKHN0b3JlZEZvbGxvd1Bvc2l0aW9uICE9PSBudWxsICYmIHN0b3JlZEZvbGxvd1Bvc2l0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZm9sbG93UG9zaXRpb24gPSBzdG9yZWRGb2xsb3dQb3NpdGlvbjtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy50cmFja2luZyA9IHRyYWNraW5nO1xuICAgIHRoaXMuZm9sbG93UG9zaXRpb24gPSBmb2xsb3dQb3NpdGlvbjtcbiAgICB0aGlzLmJ1ZmZlciA9IG9wdGlvbnMuYnVmZmVyO1xuICB9XG5cbiAgLyoqXG4gICAqIFRlYXJkb3duIGFueSBvYnNlcnZlcnNcbiAgICovXG4gIHRlYXJkb3duT2JzZXJ2ZXJzKCkge1xuICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbnMkJC5sZW5ndGgpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucyQkLm1hcChzID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gICAgfVxuICAgIHN1cGVyLnRlYXJkb3duT2JzZXJ2ZXJzKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXIgdGhlIHBvc2l0aW9uICBoaXN0b3J5XG4gICAqL1xuICAvKlxuICAvLyB0b2RvXG4gIGNsZWFyUG9zaXRpb25zSGlzdG9yeSgpIHtcbiAgICB0aGlzLnBvc2l0aW9ucyA9IFtdO1xuICB9Ki9cblxuICAvKipcbiAgICogT24gcG9zaXRpb24gY2hhbmdlLCBnZXQgdGhlIHBvc2l0aW9uLCBzaG93IGl0IG9uIHRoZSBtYXAgYW5kIHJlY29yZCBpdC5cbiAgICogQHBhcmFtIGVtaXRFdmVudCBNYXAgZXZlbnRcbiAgICovXG4gIHByaXZhdGUgb25Qb3NpdGlvbkNoYW5nZShlbWl0RXZlbnQ6IGJvb2xlYW4gPSBmYWxzZSwgem9vbVRvOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICBpZiAoIXRoaXMudHJhY2tpbmcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZ2VvbG9jYXRlUHJvcGVydGllcyA9IHRoaXMuZ2VvbG9jYXRpb24uZ2V0UHJvcGVydGllcygpO1xuXG4gICAgaWYgKGdlb2xvY2F0ZVByb3BlcnRpZXMuYWNjdXJhY3kgPiB0aGlzLmFjY3VyYWN5VGhyZXNob2xkKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1Bvb3IgZ2VvbG9jYXRpb24gYWNjdXJhY3kuIE5vIHBvc2l0aW9uIGFyZSBzdG9yZWQvc2hvd24nKTtcbiAgICAgIHRoaXMucG9zaXRpb24kLm5leHQodW5kZWZpbmVkKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwb3NpdGlvbjogTWFwR2VvbG9jYXRpb25TdGF0ZSA9IHtcbiAgICAgIHBvc2l0aW9uOiBnZW9sb2NhdGVQcm9wZXJ0aWVzLnBvc2l0aW9uLFxuICAgICAgcHJvamVjdGlvbjogdGhpcy5nZW9sb2NhdGlvbi5nZXRQcm9qZWN0aW9uKCkuZ2V0Q29kZSgpLFxuICAgICAgYWNjdXJhY3k6IGdlb2xvY2F0ZVByb3BlcnRpZXMuYWNjdXJhY3ksXG4gICAgICBhbHRpdHVkZTogZ2VvbG9jYXRlUHJvcGVydGllcy5hbHRpdHVkZSxcbiAgICAgIGFsdGl0dWRlQWNjdXJhY3k6IGdlb2xvY2F0ZVByb3BlcnRpZXMuYWx0aXR1ZGVBY2N1cmFjeSxcbiAgICAgIGhlYWRpbmc6IGdlb2xvY2F0ZVByb3BlcnRpZXMuaGVhZGluZyxcbiAgICAgIHNwZWVkOiBnZW9sb2NhdGVQcm9wZXJ0aWVzLnNwZWVkLFxuICAgICAgZW5hYmxlSGlnaEFjY3VyYWN5OiBnZW9sb2NhdGVQcm9wZXJ0aWVzLnRyYWNraW5nT3B0aW9ucz8uZW5hYmxlSGlnaEFjY3VyYWN5ID8gdHJ1ZSA6IGZhbHNlLFxuICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpXG4gICAgfTtcbiAgICB0aGlzLmhhbmRsZUZlYXR1cmVDcmVhdGlvbihwb3NpdGlvbiwgem9vbVRvKTtcbiAgICBpZiAoZW1pdEV2ZW50KSB7XG4gICAgICB0aGlzLnBvc2l0aW9uJC5uZXh0KHBvc2l0aW9uKTtcbiAgICAgIC8qaWYgKHRoaXMua2VlcFBvc2l0aW9uSGlzdG9yeSA9PT0gdHJ1ZSkge1xuICAgICAgICAvLyBoYW5kbGUgcG9zaXRpb24gZGlmZiB0byBzdG9yZSBvbmx5IHRydWUgZGlmZjtcbiAgICAgICAgdGhpcy5wb3NpdGlvbnMucHVzaChwb3NpdGlvbik7XG4gICAgICB9Ki9cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGRlbGV0ZUZlYXR1cmVCeVR5cGUodHlwZTogR2VvbG9jYXRpb25PdmVybGF5VHlwZSkge1xuICAgIGNvbnN0IGZlYXR1cmVCeUlkID0gdGhpcy5nZW9sb2NhdGlvbk92ZXJsYXkuZGF0YVNvdXJjZS5vbC5nZXRGZWF0dXJlQnlJZCh0eXBlKTtcbiAgICBpZiAoZmVhdHVyZUJ5SWQpIHtcbiAgICAgIHRoaXMuZ2VvbG9jYXRpb25PdmVybGF5LmRhdGFTb3VyY2Uub2wucmVtb3ZlRmVhdHVyZShmZWF0dXJlQnlJZCk7XG4gICAgfVxuXG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUZlYXR1cmVDcmVhdGlvbihwb3NpdGlvbjogTWFwR2VvbG9jYXRpb25TdGF0ZSwgem9vbVRvOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICBpZiAoIXBvc2l0aW9uIHx8ICFwb3NpdGlvbi5wb3NpdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmRlbGV0ZUdlb2xvY2F0aW9uRmVhdHVyZXMoKTtcbiAgICBjb25zdCBwb3NpdGlvbkdlb21ldHJ5ID0gbmV3IFBvaW50KHBvc2l0aW9uLnBvc2l0aW9uKTtcbiAgICBjb25zdCBhY2N1cmFjeUdlb21ldHJ5ID0gZnJvbUNpcmNsZShuZXcgT2xDaXJjbGUocG9zaXRpb24ucG9zaXRpb24sIHBvc2l0aW9uLmFjY3VyYWN5IHx8IDApKTtcblxuICAgIGNvbnN0IHBvc2l0aW9uRmVhdHVyZSA9IG5ldyBvbEZlYXR1cmU8UG9pbnQ+KHsgZ2VvbWV0cnk6IHBvc2l0aW9uR2VvbWV0cnkgfSk7XG4gICAgY29uc3QgYWNjdXJhY3lGZWF0dXJlID0gbmV3IG9sRmVhdHVyZTxQb2x5Z29uPih7IGdlb21ldHJ5OiBhY2N1cmFjeUdlb21ldHJ5IH0pO1xuXG4gICAgaWYgKHBvc2l0aW9uR2VvbWV0cnkpIHtcbiAgICAgIGxldCBtb3Rpb24gPSB0aGlzLmZvbGxvd1Bvc2l0aW9uID8gRmVhdHVyZU1vdGlvbi5Nb3ZlIDogRmVhdHVyZU1vdGlvbi5Ob25lO1xuICAgICAgaWYgKHpvb21Ubykge1xuICAgICAgICBtb3Rpb24gPSBGZWF0dXJlTW90aW9uLlpvb207XG4gICAgICB9XG4gICAgICBwb3NpdGlvbkZlYXR1cmUuc2V0SWQoR2VvbG9jYXRpb25PdmVybGF5VHlwZS5Qb3NpdGlvbik7XG4gICAgICBwb3NpdGlvbkZlYXR1cmUuc2V0U3R5bGUodGhpcy5wb3NpdGlvbkZlYXR1cmVTdHlsZSk7XG4gICAgICB0aGlzLmdlb2xvY2F0aW9uT3ZlcmxheS5hZGRPbEZlYXR1cmUocG9zaXRpb25GZWF0dXJlLCBtb3Rpb24pO1xuICAgICAgaWYgKGFjY3VyYWN5R2VvbWV0cnkpIHtcbiAgICAgICAgYWNjdXJhY3lGZWF0dXJlLnNldElkKEdlb2xvY2F0aW9uT3ZlcmxheVR5cGUuQWNjdXJhY3kpO1xuICAgICAgICBhY2N1cmFjeUZlYXR1cmUuc2V0U3R5bGUodGhpcy5hY2N1cmFjeUZlYXR1cmVTdHlsZSk7XG4gICAgICAgIHRoaXMuZ2VvbG9jYXRpb25PdmVybGF5LmFkZE9sRmVhdHVyZShhY2N1cmFjeUZlYXR1cmUsIG1vdGlvbik7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5idWZmZXIpIHtcbiAgICAgICAgY29uc3QgYnVmZmVyRmVhdHVyZSA9IG5ldyBvbEZlYXR1cmUobmV3IE9sQ2lyY2xlKHBvc2l0aW9uLnBvc2l0aW9uLCB0aGlzLmJ1ZmZlci5idWZmZXJSYWRpdXMpKTtcbiAgICAgICAgY29uc3QgYnVmZmVyU3R5bGUgPSBuZXcgb2xzdHlsZS5TdHlsZSh7XG4gICAgICAgICAgc3Ryb2tlOiBuZXcgb2xzdHlsZS5TdHJva2UoeyB3aWR0aDogMiwgY29sb3I6IHRoaXMuYnVmZmVyLmJ1ZmZlclN0cm9rZSB9KSxcbiAgICAgICAgICBmaWxsOiBuZXcgb2xzdHlsZS5GaWxsKHsgY29sb3I6IHRoaXMuYnVmZmVyLmJ1ZmZlckZpbGwgfSksXG4gICAgICAgICAgdGV4dDogbmV3IG9sc3R5bGUuVGV4dCh7XG4gICAgICAgICAgICB0ZXh0QWxpZ246ICdsZWZ0JyxcbiAgICAgICAgICAgIG9mZnNldFg6IDEwLFxuICAgICAgICAgICAgb2Zmc2V0WTogLTEwLFxuICAgICAgICAgICAgZm9udDogJzEycHggQ2FsaWJyaSxzYW5zLXNlcmlmJyxcbiAgICAgICAgICAgIHRleHQ6IHRoaXMuYnVmZmVyLnNob3dCdWZmZXJSYWRpdXMgPyBgJHt0aGlzLmJ1ZmZlci5idWZmZXJSYWRpdXN9bWAgOiAnJyxcbiAgICAgICAgICAgIGZpbGw6IG5ldyBvbHN0eWxlLkZpbGwoeyBjb2xvcjogJyMwMDAnIH0pLFxuICAgICAgICAgICAgc3Ryb2tlOiBuZXcgb2xzdHlsZS5TdHJva2UoeyBjb2xvcjogJyNmZmYnLCB3aWR0aDogMyB9KVxuICAgICAgICAgIH0pXG4gICAgICAgIH0pO1xuICAgICAgICBidWZmZXJGZWF0dXJlLnNldElkKEdlb2xvY2F0aW9uT3ZlcmxheVR5cGUuQnVmZmVyKTtcbiAgICAgICAgYnVmZmVyRmVhdHVyZS5zZXRTdHlsZShidWZmZXJTdHlsZSk7XG4gICAgICAgIHRoaXMuZ2VvbG9jYXRpb25PdmVybGF5LmFkZE9sRmVhdHVyZShidWZmZXJGZWF0dXJlLCBtb3Rpb24pO1xuICAgICAgfVxuXG4gICAgfVxuXG4gIH1cbn1cbiJdfQ==