@igo2/geo 1.15.4 → 16.0.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1433) hide show
  1. package/esm2022/igo2-geo.mjs +5 -0
  2. package/esm2022/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +320 -0
  3. package/esm2022/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +319 -0
  4. package/esm2022/lib/catalog/catalog-browser/catalog-browser.component.mjs +278 -0
  5. package/esm2022/lib/catalog/catalog-browser/catalog-browser.module.mjs +78 -0
  6. package/esm2022/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +223 -0
  7. package/esm2022/lib/catalog/catalog-library/catalog-library-item.component.mjs +89 -0
  8. package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +230 -0
  9. package/esm2022/lib/catalog/catalog-library/catalog-library.module.mjs +91 -0
  10. package/esm2022/lib/catalog/catalog.module.mjs +48 -0
  11. package/esm2022/lib/catalog/index.mjs +5 -0
  12. package/esm2022/lib/catalog/shared/catalog.abstract.mjs +32 -0
  13. package/esm2022/lib/catalog/shared/catalog.enum.mjs +16 -0
  14. package/esm2022/lib/catalog/shared/catalog.interface.mjs +2 -0
  15. package/esm2022/lib/catalog/shared/catalog.service.mjs +666 -0
  16. package/esm2022/lib/catalog/shared/catalogs.mjs +75 -0
  17. package/esm2022/lib/catalog/shared/index.mjs +5 -0
  18. package/esm2022/lib/datasource/datasource.module.mjs +22 -0
  19. package/esm2022/lib/datasource/index.mjs +3 -0
  20. package/esm2022/lib/datasource/shared/capabilities.service.mjs +448 -0
  21. package/esm2022/lib/datasource/shared/datasource.service.mjs +259 -0
  22. package/esm2022/lib/datasource/shared/datasources/any-datasource.interface.mjs +2 -0
  23. package/esm2022/lib/datasource/shared/datasources/any-datasource.mjs +2 -0
  24. package/esm2022/lib/datasource/shared/datasources/arcgisrest-datasource.interface.mjs +2 -0
  25. package/esm2022/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +212 -0
  26. package/esm2022/lib/datasource/shared/datasources/carto-datasource.interface.mjs +2 -0
  27. package/esm2022/lib/datasource/shared/datasources/carto-datasource.mjs +109 -0
  28. package/esm2022/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +2 -0
  29. package/esm2022/lib/datasource/shared/datasources/cluster-datasource.mjs +15 -0
  30. package/esm2022/lib/datasource/shared/datasources/data.service.mjs +3 -0
  31. package/esm2022/lib/datasource/shared/datasources/datasource.interface.mjs +2 -0
  32. package/esm2022/lib/datasource/shared/datasources/datasource.mjs +34 -0
  33. package/esm2022/lib/datasource/shared/datasources/feature-datasource.interface.mjs +2 -0
  34. package/esm2022/lib/datasource/shared/datasources/feature-datasource.mjs +43 -0
  35. package/esm2022/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.mjs +2 -0
  36. package/esm2022/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +61 -0
  37. package/esm2022/lib/datasource/shared/datasources/index.mjs +36 -0
  38. package/esm2022/lib/datasource/shared/datasources/mvt-datasource.interface.mjs +2 -0
  39. package/esm2022/lib/datasource/shared/datasources/mvt-datasource.mjs +28 -0
  40. package/esm2022/lib/datasource/shared/datasources/osm-datasource.interface.mjs +2 -0
  41. package/esm2022/lib/datasource/shared/datasources/osm-datasource.mjs +12 -0
  42. package/esm2022/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.mjs +2 -0
  43. package/esm2022/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +51 -0
  44. package/esm2022/lib/datasource/shared/datasources/tiledebug-datasource.interface.mjs +2 -0
  45. package/esm2022/lib/datasource/shared/datasources/tiledebug-datasource.mjs +15 -0
  46. package/esm2022/lib/datasource/shared/datasources/websocket-datasource.interface.mjs +2 -0
  47. package/esm2022/lib/datasource/shared/datasources/websocket-datasource.mjs +55 -0
  48. package/esm2022/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +2 -0
  49. package/esm2022/lib/datasource/shared/datasources/wfs-datasource.mjs +79 -0
  50. package/esm2022/lib/datasource/shared/datasources/wfs.service.mjs +169 -0
  51. package/esm2022/lib/datasource/shared/datasources/wms-datasource.interface.mjs +2 -0
  52. package/esm2022/lib/datasource/shared/datasources/wms-datasource.mjs +218 -0
  53. package/esm2022/lib/datasource/shared/datasources/wms-wfs.utils.mjs +222 -0
  54. package/esm2022/lib/datasource/shared/datasources/wmts-datasource.interface.mjs +2 -0
  55. package/esm2022/lib/datasource/shared/datasources/wmts-datasource.mjs +16 -0
  56. package/esm2022/lib/datasource/shared/datasources/xyz-datasource.interface.mjs +2 -0
  57. package/esm2022/lib/datasource/shared/datasources/xyz-datasource.mjs +9 -0
  58. package/esm2022/lib/datasource/shared/index.mjs +5 -0
  59. package/esm2022/lib/datasource/shared/options/index.mjs +5 -0
  60. package/esm2022/lib/datasource/shared/options/options-api.interface.mjs +2 -0
  61. package/esm2022/lib/datasource/shared/options/options-api.providers.mjs +15 -0
  62. package/esm2022/lib/datasource/shared/options/options-api.service.mjs +85 -0
  63. package/esm2022/lib/datasource/shared/options/options.service.mjs +3 -0
  64. package/esm2022/lib/datasource/utils/index.mjs +2 -0
  65. package/esm2022/lib/datasource/utils/tilegrid.mjs +20 -0
  66. package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +265 -0
  67. package/esm2022/lib/directions/directions-buttons/index.mjs +2 -0
  68. package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +294 -0
  69. package/esm2022/lib/directions/directions-inputs/index.mjs +2 -0
  70. package/esm2022/lib/directions/directions-results/directions-results.component.mjs +215 -0
  71. package/esm2022/lib/directions/directions-results/index.mjs +2 -0
  72. package/esm2022/lib/directions/directions-sources/directions-source.interface.mjs +2 -0
  73. package/esm2022/lib/directions/directions-sources/directions-source.mjs +3 -0
  74. package/esm2022/lib/directions/directions-sources/directions-source.provider.mjs +16 -0
  75. package/esm2022/lib/directions/directions-sources/index.mjs +5 -0
  76. package/esm2022/lib/directions/directions-sources/osrm-directions-source.mjs +128 -0
  77. package/esm2022/lib/directions/directions.component.mjs +349 -0
  78. package/esm2022/lib/directions/directions.module.mjs +102 -0
  79. package/esm2022/lib/directions/index.mjs +7 -0
  80. package/esm2022/lib/directions/shared/directions-source.service.mjs +18 -0
  81. package/esm2022/lib/directions/shared/directions.enum.mjs +28 -0
  82. package/esm2022/lib/directions/shared/directions.interface.mjs +2 -0
  83. package/esm2022/lib/directions/shared/directions.service.mjs +202 -0
  84. package/esm2022/lib/directions/shared/directions.utils.mjs +559 -0
  85. package/esm2022/lib/directions/shared/index.mjs +6 -0
  86. package/esm2022/lib/directions/shared/store.mjs +21 -0
  87. package/esm2022/lib/download/download-button/download-button.component.mjs +65 -0
  88. package/esm2022/lib/download/download-button/index.mjs +2 -0
  89. package/esm2022/lib/download/download.module.mjs +42 -0
  90. package/esm2022/lib/download/index.mjs +3 -0
  91. package/esm2022/lib/download/shared/download.interface.mjs +2 -0
  92. package/esm2022/lib/download/shared/download.service.mjs +67 -0
  93. package/esm2022/lib/download/shared/index.mjs +3 -0
  94. package/esm2022/lib/draw/draw/draw-layer-popup.component.mjs +57 -0
  95. package/esm2022/lib/draw/draw/draw-popup.component.mjs +677 -0
  96. package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +48 -0
  97. package/esm2022/lib/draw/draw/draw.component.mjs +1369 -0
  98. package/esm2022/lib/draw/draw/draw.module.mjs +117 -0
  99. package/esm2022/lib/draw/drawingTool.module.mjs +18 -0
  100. package/esm2022/lib/draw/index.mjs +3 -0
  101. package/esm2022/lib/draw/shared/draw-icon.service.mjs +30 -0
  102. package/esm2022/lib/draw/shared/draw.enum.mjs +21 -0
  103. package/esm2022/lib/draw/shared/draw.interface.mjs +2 -0
  104. package/esm2022/lib/draw/shared/draw.utils.mjs +125 -0
  105. package/esm2022/lib/draw/shared/index.mjs +5 -0
  106. package/esm2022/lib/feature/feature-details/feature-details.component.mjs +440 -0
  107. package/esm2022/lib/feature/feature-details/feature-details.directive.mjs +57 -0
  108. package/esm2022/lib/feature/feature-details/feature-details.module.mjs +40 -0
  109. package/esm2022/lib/feature/feature-form/feature-form.component.mjs +120 -0
  110. package/esm2022/lib/feature/feature-form/feature-form.module.mjs +23 -0
  111. package/esm2022/lib/feature/feature.module.mjs +21 -0
  112. package/esm2022/lib/feature/index.mjs +4 -0
  113. package/esm2022/lib/feature/shared/feature-store.utils.mjs +27 -0
  114. package/esm2022/lib/feature/shared/feature.enums.mjs +9 -0
  115. package/esm2022/lib/feature/shared/feature.interfaces.mjs +2 -0
  116. package/esm2022/lib/feature/shared/feature.utils.mjs +333 -0
  117. package/esm2022/lib/feature/shared/index.mjs +8 -0
  118. package/esm2022/lib/feature/shared/store.mjs +143 -0
  119. package/esm2022/lib/feature/shared/strategies/geo-properties.mjs +216 -0
  120. package/esm2022/lib/feature/shared/strategies/in-map-extent.mjs +115 -0
  121. package/esm2022/lib/feature/shared/strategies/in-map-resolution.mjs +96 -0
  122. package/esm2022/lib/feature/shared/strategies/index.mjs +8 -0
  123. package/esm2022/lib/feature/shared/strategies/loading-layer.mjs +104 -0
  124. package/esm2022/lib/feature/shared/strategies/loading.mjs +136 -0
  125. package/esm2022/lib/feature/shared/strategies/search.mjs +159 -0
  126. package/esm2022/lib/feature/shared/strategies/selection.mjs +384 -0
  127. package/esm2022/lib/feature/shared/strategies.utils.mjs +37 -0
  128. package/esm2022/lib/filter/filter.module.mjs +300 -0
  129. package/esm2022/lib/filter/index.mjs +16 -0
  130. package/esm2022/lib/filter/ogc-filter-button/index.mjs +2 -0
  131. package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +153 -0
  132. package/esm2022/lib/filter/ogc-filter-form/index.mjs +2 -0
  133. package/esm2022/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +663 -0
  134. package/esm2022/lib/filter/ogc-filter-selection/index.mjs +2 -0
  135. package/esm2022/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +1344 -0
  136. package/esm2022/lib/filter/ogc-filter-time/index.mjs +3 -0
  137. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +226 -0
  138. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +936 -0
  139. package/esm2022/lib/filter/ogc-filterable-form/index.mjs +2 -0
  140. package/esm2022/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +63 -0
  141. package/esm2022/lib/filter/ogc-filterable-item/index.mjs +2 -0
  142. package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +320 -0
  143. package/esm2022/lib/filter/ogc-filterable-list/index.mjs +3 -0
  144. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +36 -0
  145. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +47 -0
  146. package/esm2022/lib/filter/shared/filterable-datasource.pipe.mjs +55 -0
  147. package/esm2022/lib/filter/shared/index.mjs +12 -0
  148. package/esm2022/lib/filter/shared/ogc-filter-time.service.mjs +73 -0
  149. package/esm2022/lib/filter/shared/ogc-filter.enum.mjs +30 -0
  150. package/esm2022/lib/filter/shared/ogc-filter.interface.mjs +2 -0
  151. package/esm2022/lib/filter/shared/ogc-filter.mjs +699 -0
  152. package/esm2022/lib/filter/shared/ogc-filter.service.mjs +48 -0
  153. package/esm2022/lib/filter/shared/spatial-filter.enum.mjs +23 -0
  154. package/esm2022/lib/filter/shared/spatial-filter.interface.mjs +2 -0
  155. package/esm2022/lib/filter/shared/spatial-filter.service.mjs +280 -0
  156. package/esm2022/lib/filter/shared/time-filter.enum.mjs +13 -0
  157. package/esm2022/lib/filter/shared/time-filter.interface.mjs +2 -0
  158. package/esm2022/lib/filter/shared/time-filter.service.mjs +108 -0
  159. package/esm2022/lib/filter/spatial-filter/spatial-filter-item/index.mjs +2 -0
  160. package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +1150 -0
  161. package/esm2022/lib/filter/spatial-filter/spatial-filter-list/index.mjs +2 -0
  162. package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +244 -0
  163. package/esm2022/lib/filter/spatial-filter/spatial-filter-type/index.mjs +2 -0
  164. package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +157 -0
  165. package/esm2022/lib/filter/time-filter-button/index.mjs +2 -0
  166. package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +82 -0
  167. package/esm2022/lib/filter/time-filter-form/index.mjs +2 -0
  168. package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +755 -0
  169. package/esm2022/lib/filter/time-filter-item/index.mjs +2 -0
  170. package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +124 -0
  171. package/esm2022/lib/filter/time-filter-list/index.mjs +3 -0
  172. package/esm2022/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +36 -0
  173. package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +40 -0
  174. package/esm2022/lib/geo.module.mjs +106 -0
  175. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +563 -0
  176. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +218 -0
  177. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +56 -0
  178. package/esm2022/lib/geometry/geometry.module.mjs +20 -0
  179. package/esm2022/lib/geometry/index.mjs +4 -0
  180. package/esm2022/lib/geometry/shared/controls/draw.mjs +340 -0
  181. package/esm2022/lib/geometry/shared/controls/index.mjs +4 -0
  182. package/esm2022/lib/geometry/shared/controls/modify.mjs +541 -0
  183. package/esm2022/lib/geometry/shared/controls/slice.mjs +190 -0
  184. package/esm2022/lib/geometry/shared/geometry.errors.mjs +26 -0
  185. package/esm2022/lib/geometry/shared/geometry.interfaces.mjs +2 -0
  186. package/esm2022/lib/geometry/shared/geometry.utils.mjs +122 -0
  187. package/esm2022/lib/geometry/shared/index.mjs +5 -0
  188. package/esm2022/lib/import-export/export-button/export-button.component.mjs +66 -0
  189. package/esm2022/lib/import-export/export-button/index.mjs +2 -0
  190. package/esm2022/lib/import-export/import-export/import-export.component.mjs +1350 -0
  191. package/esm2022/lib/import-export/import-export/index.mjs +2 -0
  192. package/esm2022/lib/import-export/import-export.module.mjs +98 -0
  193. package/esm2022/lib/import-export/index.mjs +4 -0
  194. package/esm2022/lib/import-export/shared/drop-geo-file.directive.mjs +174 -0
  195. package/esm2022/lib/import-export/shared/export.errors.mjs +15 -0
  196. package/esm2022/lib/import-export/shared/export.interface.mjs +2 -0
  197. package/esm2022/lib/import-export/shared/export.service.mjs +205 -0
  198. package/esm2022/lib/import-export/shared/export.type.mjs +13 -0
  199. package/esm2022/lib/import-export/shared/export.utils.mjs +47 -0
  200. package/esm2022/lib/import-export/shared/import.errors.mjs +39 -0
  201. package/esm2022/lib/import-export/shared/import.interface.mjs +2 -0
  202. package/esm2022/lib/import-export/shared/import.service.mjs +221 -0
  203. package/esm2022/lib/import-export/shared/import.utils.mjs +203 -0
  204. package/esm2022/lib/import-export/shared/index.mjs +11 -0
  205. package/esm2022/lib/layer/index.mjs +10 -0
  206. package/esm2022/lib/layer/layer-item/index.mjs +2 -0
  207. package/esm2022/lib/layer/layer-item/layer-item.component.mjs +324 -0
  208. package/esm2022/lib/layer/layer-legend/index.mjs +2 -0
  209. package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +429 -0
  210. package/esm2022/lib/layer/layer-legend-item/index.mjs +2 -0
  211. package/esm2022/lib/layer/layer-legend-item/layer-legend-item.component.mjs +93 -0
  212. package/esm2022/lib/layer/layer-legend-list/index.mjs +3 -0
  213. package/esm2022/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +54 -0
  214. package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +201 -0
  215. package/esm2022/lib/layer/layer-list/index.mjs +4 -0
  216. package/esm2022/lib/layer/layer-list/layer-list-binding.directive.mjs +69 -0
  217. package/esm2022/lib/layer/layer-list/layer-list.component.mjs +1022 -0
  218. package/esm2022/lib/layer/layer-list/layer-list.enum.mjs +19 -0
  219. package/esm2022/lib/layer/layer-list-tool/index.mjs +5 -0
  220. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +157 -0
  221. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.enum.mjs +7 -0
  222. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.interface.mjs +2 -0
  223. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.service.mjs +22 -0
  224. package/esm2022/lib/layer/layer.module.mjs +175 -0
  225. package/esm2022/lib/layer/shared/clusterParam.mjs +2 -0
  226. package/esm2022/lib/layer/shared/index.mjs +5 -0
  227. package/esm2022/lib/layer/shared/layer.enums.mjs +2 -0
  228. package/esm2022/lib/layer/shared/layer.service.mjs +268 -0
  229. package/esm2022/lib/layer/shared/layers/any-layer.interface.mjs +2 -0
  230. package/esm2022/lib/layer/shared/layers/any-layer.mjs +2 -0
  231. package/esm2022/lib/layer/shared/layers/image-layer.interface.mjs +2 -0
  232. package/esm2022/lib/layer/shared/layers/image-layer.mjs +70 -0
  233. package/esm2022/lib/layer/shared/layers/index.mjs +13 -0
  234. package/esm2022/lib/layer/shared/layers/layer.interface.mjs +17 -0
  235. package/esm2022/lib/layer/shared/layers/layer.mjs +184 -0
  236. package/esm2022/lib/layer/shared/layers/legend.interface.mjs +2 -0
  237. package/esm2022/lib/layer/shared/layers/tile-layer.interface.mjs +2 -0
  238. package/esm2022/lib/layer/shared/layers/tile-layer.mjs +50 -0
  239. package/esm2022/lib/layer/shared/layers/vector-layer.interface.mjs +2 -0
  240. package/esm2022/lib/layer/shared/layers/vector-layer.mjs +562 -0
  241. package/esm2022/lib/layer/shared/layers/vectortile-layer.interface.mjs +2 -0
  242. package/esm2022/lib/layer/shared/layers/vectortile-layer.mjs +107 -0
  243. package/esm2022/lib/layer/track-feature-button/index.mjs +2 -0
  244. package/esm2022/lib/layer/track-feature-button/track-feature-button.component.mjs +60 -0
  245. package/esm2022/lib/layer/utils/image-watcher.mjs +62 -0
  246. package/esm2022/lib/layer/utils/index.mjs +6 -0
  247. package/esm2022/lib/layer/utils/layer.utils.mjs +11 -0
  248. package/esm2022/lib/layer/utils/outputLegend.mjs +28 -0
  249. package/esm2022/lib/layer/utils/tile-watcher.mjs +52 -0
  250. package/esm2022/lib/layer/utils/vector-watcher.mjs +50 -0
  251. package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.animation.mjs +16 -0
  252. package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +120 -0
  253. package/esm2022/lib/map/baselayers-switcher/index.mjs +3 -0
  254. package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +155 -0
  255. package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +87 -0
  256. package/esm2022/lib/map/geolocate-button/index.mjs +2 -0
  257. package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +80 -0
  258. package/esm2022/lib/map/home-extent-button/index.mjs +2 -0
  259. package/esm2022/lib/map/index.mjs +14 -0
  260. package/esm2022/lib/map/info-section/index.mjs +2 -0
  261. package/esm2022/lib/map/info-section/info-section.component.mjs +29 -0
  262. package/esm2022/lib/map/map-browser/index.mjs +2 -0
  263. package/esm2022/lib/map/map-browser/map-browser.component.mjs +74 -0
  264. package/esm2022/lib/map/map-center/index.mjs +2 -0
  265. package/esm2022/lib/map/map-center/map-center.component.mjs +61 -0
  266. package/esm2022/lib/map/map.module.mjs +120 -0
  267. package/esm2022/lib/map/menu-button/index.mjs +2 -0
  268. package/esm2022/lib/map/menu-button/menu-button.component.mjs +66 -0
  269. package/esm2022/lib/map/offline-button/index.mjs +2 -0
  270. package/esm2022/lib/map/offline-button/offline-button.component.mjs +55 -0
  271. package/esm2022/lib/map/rotation-button/index.mjs +2 -0
  272. package/esm2022/lib/map/rotation-button/rotation-button.component.mjs +73 -0
  273. package/esm2022/lib/map/shared/controllers/controller.mjs +44 -0
  274. package/esm2022/lib/map/shared/controllers/geolocation.interface.mjs +8 -0
  275. package/esm2022/lib/map/shared/controllers/geolocation.mjs +431 -0
  276. package/esm2022/lib/map/shared/controllers/index.mjs +5 -0
  277. package/esm2022/lib/map/shared/controllers/view.mjs +360 -0
  278. package/esm2022/lib/map/shared/hover-feature.directive.mjs +493 -0
  279. package/esm2022/lib/map/shared/index.mjs +15 -0
  280. package/esm2022/lib/map/shared/linkedLayers.utils.mjs +248 -0
  281. package/esm2022/lib/map/shared/map-pointer-position.directive.mjs +121 -0
  282. package/esm2022/lib/map/shared/map.abstract.mjs +23 -0
  283. package/esm2022/lib/map/shared/map.enums.mjs +6 -0
  284. package/esm2022/lib/map/shared/map.interface.mjs +2 -0
  285. package/esm2022/lib/map/shared/map.mjs +434 -0
  286. package/esm2022/lib/map/shared/map.service.mjs +30 -0
  287. package/esm2022/lib/map/shared/map.utils.mjs +456 -0
  288. package/esm2022/lib/map/shared/mapOffline.directive.mjs +107 -0
  289. package/esm2022/lib/map/shared/projection.interfaces.mjs +2 -0
  290. package/esm2022/lib/map/shared/projection.service.mjs +67 -0
  291. package/esm2022/lib/map/shared/projection.utils.mjs +64 -0
  292. package/esm2022/lib/map/swipe-control/index.mjs +2 -0
  293. package/esm2022/lib/map/swipe-control/swipe-control.component.mjs +219 -0
  294. package/esm2022/lib/map/utils/layer-watcher.mjs +78 -0
  295. package/esm2022/lib/map/wake-lock-button/index.mjs +2 -0
  296. package/esm2022/lib/map/wake-lock-button/wake-lock-button.component.mjs +106 -0
  297. package/esm2022/lib/map/zoom-button/index.mjs +2 -0
  298. package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +49 -0
  299. package/esm2022/lib/measure/index.mjs +4 -0
  300. package/esm2022/lib/measure/measure.module.mjs +18 -0
  301. package/esm2022/lib/measure/measurer/measure-format.pipe.mjs +39 -0
  302. package/esm2022/lib/measure/measurer/measurer-dialog.component.mjs +184 -0
  303. package/esm2022/lib/measure/measurer/measurer-item.component.mjs +162 -0
  304. package/esm2022/lib/measure/measurer/measurer.component.mjs +1121 -0
  305. package/esm2022/lib/measure/measurer/measurer.module.mjs +95 -0
  306. package/esm2022/lib/measure/shared/index.mjs +4 -0
  307. package/esm2022/lib/measure/shared/measure.enum.mjs +37 -0
  308. package/esm2022/lib/measure/shared/measure.interfaces.mjs +2 -0
  309. package/esm2022/lib/measure/shared/measure.utils.mjs +497 -0
  310. package/esm2022/lib/metadata/index.mjs +3 -0
  311. package/esm2022/lib/metadata/metadata-button/index.mjs +2 -0
  312. package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +140 -0
  313. package/esm2022/lib/metadata/metadata.module.mjs +47 -0
  314. package/esm2022/lib/metadata/shared/index.mjs +3 -0
  315. package/esm2022/lib/metadata/shared/metadata.interface.mjs +2 -0
  316. package/esm2022/lib/metadata/shared/metadata.service.mjs +19 -0
  317. package/esm2022/lib/offline/geoDB/configFileToGeoDB.service.mjs +128 -0
  318. package/esm2022/lib/offline/geoDB/geoDB.enums.mjs +6 -0
  319. package/esm2022/lib/offline/geoDB/geoDB.interface.mjs +2 -0
  320. package/esm2022/lib/offline/geoDB/geoDB.service.mjs +175 -0
  321. package/esm2022/lib/offline/geoDB/index.mjs +5 -0
  322. package/esm2022/lib/offline/index.mjs +4 -0
  323. package/esm2022/lib/offline/layerDB/index.mjs +3 -0
  324. package/esm2022/lib/offline/layerDB/layerDB.interface.mjs +2 -0
  325. package/esm2022/lib/offline/layerDB/layerDB.service.mjs +84 -0
  326. package/esm2022/lib/offline/shared/geo-network.service.mjs +87 -0
  327. package/esm2022/lib/offline/shared/index.mjs +2 -0
  328. package/esm2022/lib/overlay/index.mjs +2 -0
  329. package/esm2022/lib/overlay/overlay.module.mjs +23 -0
  330. package/esm2022/lib/overlay/shared/index.mjs +6 -0
  331. package/esm2022/lib/overlay/shared/overlay.directive.mjs +38 -0
  332. package/esm2022/lib/overlay/shared/overlay.enum.mjs +8 -0
  333. package/esm2022/lib/overlay/shared/overlay.mjs +138 -0
  334. package/esm2022/lib/overlay/shared/overlay.service.mjs +26 -0
  335. package/esm2022/lib/overlay/shared/overlay.utils.mjs +17 -0
  336. package/esm2022/lib/print/index.mjs +4 -0
  337. package/esm2022/lib/print/print/print.component.mjs +122 -0
  338. package/esm2022/lib/print/print-form/index.mjs +2 -0
  339. package/esm2022/lib/print/print-form/print-form.component.mjs +580 -0
  340. package/esm2022/lib/print/print.module.mjs +65 -0
  341. package/esm2022/lib/print/shared/geopdf.mjs +68 -0
  342. package/esm2022/lib/print/shared/index.mjs +5 -0
  343. package/esm2022/lib/print/shared/print.interface.mjs +2 -0
  344. package/esm2022/lib/print/shared/print.service.mjs +1093 -0
  345. package/esm2022/lib/print/shared/print.type.mjs +30 -0
  346. package/esm2022/lib/query/index.mjs +2 -0
  347. package/esm2022/lib/query/query.module.mjs +29 -0
  348. package/esm2022/lib/query/shared/index.mjs +7 -0
  349. package/esm2022/lib/query/shared/query-search-source.mjs +35 -0
  350. package/esm2022/lib/query/shared/query-search-source.providers.mjs +22 -0
  351. package/esm2022/lib/query/shared/query.directive.mjs +285 -0
  352. package/esm2022/lib/query/shared/query.enums.mjs +30 -0
  353. package/esm2022/lib/query/shared/query.interfaces.mjs +2 -0
  354. package/esm2022/lib/query/shared/query.service.mjs +753 -0
  355. package/esm2022/lib/query/shared/query.utils.mjs +41 -0
  356. package/esm2022/lib/search/index.mjs +12 -0
  357. package/esm2022/lib/search/search-bar/search-bar.component.mjs +559 -0
  358. package/esm2022/lib/search/search-bar/search-bar.module.mjs +73 -0
  359. package/esm2022/lib/search/search-bar/search-url-param.directive.mjs +40 -0
  360. package/esm2022/lib/search/search-results/save-feature-dialog.component.mjs +132 -0
  361. package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +456 -0
  362. package/esm2022/lib/search/search-results/search-results-item.component.mjs +166 -0
  363. package/esm2022/lib/search/search-results/search-results.component.mjs +480 -0
  364. package/esm2022/lib/search/search-results/search-results.module.mjs +104 -0
  365. package/esm2022/lib/search/search-selector/search-selector.component.mjs +133 -0
  366. package/esm2022/lib/search/search-selector/search-selector.module.mjs +56 -0
  367. package/esm2022/lib/search/search-settings/search-settings.component.mjs +448 -0
  368. package/esm2022/lib/search/search-settings/search-settings.module.mjs +60 -0
  369. package/esm2022/lib/search/search.module.mjs +67 -0
  370. package/esm2022/lib/search/shared/index.mjs +9 -0
  371. package/esm2022/lib/search/shared/search-pointer-summary.directive.mjs +337 -0
  372. package/esm2022/lib/search/shared/search-source-service.providers.mjs +20 -0
  373. package/esm2022/lib/search/shared/search-source.service.mjs +56 -0
  374. package/esm2022/lib/search/shared/search.enums.mjs +4 -0
  375. package/esm2022/lib/search/shared/search.interfaces.mjs +2 -0
  376. package/esm2022/lib/search/shared/search.service.mjs +130 -0
  377. package/esm2022/lib/search/shared/search.utils.mjs +92 -0
  378. package/esm2022/lib/search/shared/sources/cadastre.mjs +139 -0
  379. package/esm2022/lib/search/shared/sources/cadastre.providers.mjs +23 -0
  380. package/esm2022/lib/search/shared/sources/coordinates.interfaces.mjs +2 -0
  381. package/esm2022/lib/search/shared/sources/coordinates.mjs +166 -0
  382. package/esm2022/lib/search/shared/sources/coordinates.providers.mjs +40 -0
  383. package/esm2022/lib/search/shared/sources/icherche.interfaces.mjs +2 -0
  384. package/esm2022/lib/search/shared/sources/icherche.mjs +796 -0
  385. package/esm2022/lib/search/shared/sources/icherche.providers.mjs +66 -0
  386. package/esm2022/lib/search/shared/sources/ilayer.interfaces.mjs +2 -0
  387. package/esm2022/lib/search/shared/sources/ilayer.mjs +335 -0
  388. package/esm2022/lib/search/shared/sources/ilayer.providers.mjs +46 -0
  389. package/esm2022/lib/search/shared/sources/index.mjs +23 -0
  390. package/esm2022/lib/search/shared/sources/nominatim.interfaces.mjs +2 -0
  391. package/esm2022/lib/search/shared/sources/nominatim.mjs +263 -0
  392. package/esm2022/lib/search/shared/sources/nominatim.providers.mjs +23 -0
  393. package/esm2022/lib/search/shared/sources/source.interfaces.mjs +2 -0
  394. package/esm2022/lib/search/shared/sources/source.mjs +220 -0
  395. package/esm2022/lib/search/shared/sources/storedqueries.interfaces.mjs +2 -0
  396. package/esm2022/lib/search/shared/sources/storedqueries.mjs +455 -0
  397. package/esm2022/lib/search/shared/sources/storedqueries.providers.mjs +41 -0
  398. package/esm2022/lib/search/shared/sources/workspace.interfaces.mjs +2 -0
  399. package/esm2022/lib/search/shared/sources/workspace.mjs +191 -0
  400. package/esm2022/lib/search/shared/sources/workspace.providers.mjs +22 -0
  401. package/esm2022/lib/style/index.mjs +5 -0
  402. package/esm2022/lib/style/shared/datasource/esri-style-generator.mjs +359 -0
  403. package/esm2022/lib/style/shared/datasource/index.mjs +2 -0
  404. package/esm2022/lib/style/shared/feature/feature-style.mjs +161 -0
  405. package/esm2022/lib/style/shared/feature/index.mjs +2 -0
  406. package/esm2022/lib/style/shared/font.enum.mjs +17 -0
  407. package/esm2022/lib/style/shared/index.mjs +5 -0
  408. package/esm2022/lib/style/shared/overlay/index.mjs +3 -0
  409. package/esm2022/lib/style/shared/overlay/overlay-marker-style.utils.mjs +45 -0
  410. package/esm2022/lib/style/shared/overlay/overlay-style.utils.mjs +88 -0
  411. package/esm2022/lib/style/shared/vector/commonVectorStyle.mjs +78 -0
  412. package/esm2022/lib/style/shared/vector/conversion.utils.mjs +27 -0
  413. package/esm2022/lib/style/shared/vector/index.mjs +4 -0
  414. package/esm2022/lib/style/shared/vector/vector-style.interface.mjs +2 -0
  415. package/esm2022/lib/style/style-list/index.mjs +5 -0
  416. package/esm2022/lib/style/style-list/style-list.interface.mjs +2 -0
  417. package/esm2022/lib/style/style-list/style-list.module.mjs +23 -0
  418. package/esm2022/lib/style/style-list/style-list.provider.mjs +21 -0
  419. package/esm2022/lib/style/style-list/style-list.service.mjs +52 -0
  420. package/esm2022/lib/style/style-modal/drawing/index.mjs +2 -0
  421. package/esm2022/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +288 -0
  422. package/esm2022/lib/style/style-modal/index.mjs +5 -0
  423. package/esm2022/lib/style/style-modal/layer/index.mjs +2 -0
  424. package/esm2022/lib/style/style-modal/layer/style-modal-layer.component.mjs +182 -0
  425. package/esm2022/lib/style/style-modal/layer-button/index.mjs +2 -0
  426. package/esm2022/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +48 -0
  427. package/esm2022/lib/style/style-modal/shared/index.mjs +2 -0
  428. package/esm2022/lib/style/style-modal/shared/style-modal.interface.mjs +2 -0
  429. package/esm2022/lib/style/style-service/draw-style.service.mjs +256 -0
  430. package/esm2022/lib/style/style-service/index.mjs +3 -0
  431. package/esm2022/lib/style/style-service/style.service.mjs +393 -0
  432. package/esm2022/lib/style/style.module.mjs +92 -0
  433. package/esm2022/lib/toast/index.mjs +2 -0
  434. package/esm2022/lib/toast/toast.component.mjs +119 -0
  435. package/esm2022/lib/toast/toast.module.mjs +45 -0
  436. package/esm2022/lib/utils/googleLinks.mjs +13 -0
  437. package/esm2022/lib/utils/id-generator.mjs +110 -0
  438. package/esm2022/lib/utils/index.mjs +5 -0
  439. package/esm2022/lib/utils/osmLinks.mjs +9 -0
  440. package/esm2022/lib/utils/propertyTypeDetector/index.mjs +3 -0
  441. package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.interface.mjs +2 -0
  442. package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.service.mjs +64 -0
  443. package/esm2022/lib/wkt/index.mjs +2 -0
  444. package/esm2022/lib/wkt/shared/index.mjs +2 -0
  445. package/esm2022/lib/wkt/shared/wkt.service.mjs +236 -0
  446. package/esm2022/lib/wkt/wkt.module.mjs +22 -0
  447. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +52 -0
  448. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +36 -0
  449. package/esm2022/lib/workspace/confirmation-popup/index.mjs +3 -0
  450. package/esm2022/lib/workspace/index.mjs +8 -0
  451. package/esm2022/lib/workspace/shared/edition-workspace.mjs +304 -0
  452. package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +711 -0
  453. package/esm2022/lib/workspace/shared/feature-workspace.mjs +41 -0
  454. package/esm2022/lib/workspace/shared/feature-workspace.service.mjs +109 -0
  455. package/esm2022/lib/workspace/shared/index.mjs +8 -0
  456. package/esm2022/lib/workspace/shared/wfs-workspace.mjs +41 -0
  457. package/esm2022/lib/workspace/shared/wfs-workspace.service.mjs +102 -0
  458. package/esm2022/lib/workspace/shared/wms-workspace.service.mjs +225 -0
  459. package/esm2022/lib/workspace/shared/workspace.utils.mjs +185 -0
  460. package/esm2022/lib/workspace/widgets/index.mjs +4 -0
  461. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +52 -0
  462. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +25 -0
  463. package/esm2022/lib/workspace/widgets/widgets.mjs +15 -0
  464. package/esm2022/lib/workspace/workspace-selector/workspace-selector.directive.mjs +167 -0
  465. package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +22 -0
  466. package/esm2022/lib/workspace/workspace-updator/workspace-updator.directive.mjs +135 -0
  467. package/esm2022/lib/workspace/workspace-updator/workspace-updator.module.mjs +22 -0
  468. package/esm2022/lib/workspace/workspace.module.mjs +58 -0
  469. package/esm2022/public_api.mjs +57 -0
  470. package/fesm2022/igo2-geo.mjs +48131 -0
  471. package/fesm2022/igo2-geo.mjs.map +1 -0
  472. package/geo-theme.scss +21 -0
  473. package/index.d.ts +5 -5
  474. package/lib/catalog/catalog-browser/catalog-browser-group.component.d.ts +117 -117
  475. package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +77 -77
  476. package/lib/catalog/catalog-browser/catalog-browser.component.d.ts +99 -99
  477. package/lib/catalog/catalog-browser/catalog-browser.module.d.ts +22 -22
  478. package/lib/catalog/catalog-library/add-catalog-dialog.component.d.ts +45 -45
  479. package/lib/catalog/catalog-library/catalog-library-item.component.d.ts +25 -25
  480. package/lib/catalog/catalog-library/catalog-library.component.d.ts +64 -64
  481. package/lib/catalog/catalog-library/catalog-library.module.d.ts +26 -26
  482. package/lib/catalog/catalog.module.d.ts +14 -14
  483. package/lib/catalog/index.d.ts +4 -4
  484. package/lib/catalog/shared/catalog.abstract.d.ts +41 -50
  485. package/lib/catalog/shared/catalog.enum.d.ts +14 -14
  486. package/lib/catalog/shared/catalog.interface.d.ts +76 -76
  487. package/lib/catalog/shared/catalog.service.d.ts +36 -36
  488. package/lib/catalog/shared/catalogs.d.ts +35 -0
  489. package/lib/catalog/shared/index.d.ts +4 -4
  490. package/lib/datasource/datasource.module.d.ts +8 -8
  491. package/lib/datasource/index.d.ts +2 -2
  492. package/lib/datasource/shared/capabilities.service.d.ts +37 -37
  493. package/lib/datasource/shared/datasource.service.d.ts +37 -37
  494. package/lib/datasource/shared/datasources/any-datasource.d.ts +16 -16
  495. package/lib/datasource/shared/datasources/any-datasource.interface.d.ts +15 -15
  496. package/lib/datasource/shared/datasources/arcgisrest-datasource.d.ts +14 -14
  497. package/lib/datasource/shared/datasources/arcgisrest-datasource.interface.d.ts +14 -14
  498. package/lib/datasource/shared/datasources/carto-datasource.d.ts +15 -15
  499. package/lib/datasource/shared/datasources/carto-datasource.interface.d.ts +13 -13
  500. package/lib/datasource/shared/datasources/cluster-datasource.d.ts +10 -10
  501. package/lib/datasource/shared/datasources/cluster-datasource.interface.d.ts +11 -11
  502. package/lib/datasource/shared/datasources/data.service.d.ts +3 -3
  503. package/lib/datasource/shared/datasources/datasource.d.ts +20 -20
  504. package/lib/datasource/shared/datasources/datasource.interface.d.ts +113 -113
  505. package/lib/datasource/shared/datasources/feature-datasource.d.ts +12 -12
  506. package/lib/datasource/shared/datasources/feature-datasource.interface.d.ts +23 -23
  507. package/lib/datasource/shared/datasources/imagearcgisrest-datasource.d.ts +15 -15
  508. package/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.d.ts +15 -15
  509. package/lib/datasource/shared/datasources/index.d.ts +35 -35
  510. package/lib/datasource/shared/datasources/mvt-datasource.d.ts +10 -10
  511. package/lib/datasource/shared/datasources/mvt-datasource.interface.d.ts +13 -13
  512. package/lib/datasource/shared/datasources/osm-datasource.d.ts +9 -9
  513. package/lib/datasource/shared/datasources/osm-datasource.interface.d.ts +7 -7
  514. package/lib/datasource/shared/datasources/tilearcgisrest-datasource.d.ts +15 -15
  515. package/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.d.ts +14 -14
  516. package/lib/datasource/shared/datasources/tiledebug-datasource.d.ts +9 -9
  517. package/lib/datasource/shared/datasources/tiledebug-datasource.interface.d.ts +9 -9
  518. package/lib/datasource/shared/datasources/websocket-datasource.d.ts +15 -15
  519. package/lib/datasource/shared/datasources/websocket-datasource.interface.d.ts +7 -7
  520. package/lib/datasource/shared/datasources/wfs-datasource.d.ts +20 -20
  521. package/lib/datasource/shared/datasources/wfs-datasource.interface.d.ts +20 -20
  522. package/lib/datasource/shared/datasources/wfs.service.d.ts +17 -17
  523. package/lib/datasource/shared/datasources/wms-datasource.d.ts +45 -31
  524. package/lib/datasource/shared/datasources/wms-datasource.interface.d.ts +37 -32
  525. package/lib/datasource/shared/datasources/wms-wfs.utils.d.ts +41 -41
  526. package/lib/datasource/shared/datasources/wmts-datasource.d.ts +10 -10
  527. package/lib/datasource/shared/datasources/wmts-datasource.interface.d.ts +13 -13
  528. package/lib/datasource/shared/datasources/xyz-datasource.d.ts +9 -9
  529. package/lib/datasource/shared/datasources/xyz-datasource.interface.d.ts +11 -11
  530. package/lib/datasource/shared/index.d.ts +4 -4
  531. package/lib/datasource/shared/options/index.d.ts +4 -4
  532. package/lib/datasource/shared/options/options-api.interface.d.ts +4 -4
  533. package/lib/datasource/shared/options/options-api.providers.d.ts +10 -10
  534. package/lib/datasource/shared/options/options-api.service.d.ts +16 -16
  535. package/lib/datasource/shared/options/options.service.d.ts +6 -6
  536. package/lib/datasource/utils/index.d.ts +1 -1
  537. package/lib/datasource/utils/tilegrid.d.ts +2 -2
  538. package/lib/directions/directions-buttons/directions-buttons.component.d.ts +35 -30
  539. package/lib/directions/directions-buttons/index.d.ts +1 -1
  540. package/lib/directions/directions-inputs/directions-inputs.component.d.ts +45 -45
  541. package/lib/directions/directions-inputs/index.d.ts +1 -1
  542. package/lib/directions/directions-results/directions-results.component.d.ts +30 -30
  543. package/lib/directions/directions-results/directions-results.theming.scss +10 -0
  544. package/lib/directions/directions-results/index.d.ts +1 -1
  545. package/lib/directions/directions-sources/directions-source.d.ts +7 -7
  546. package/lib/directions/directions-sources/directions-source.interface.d.ts +11 -11
  547. package/lib/directions/directions-sources/directions-source.provider.d.ts +11 -11
  548. package/lib/directions/directions-sources/index.d.ts +4 -4
  549. package/lib/directions/directions-sources/osrm-directions-source.d.ts +24 -23
  550. package/lib/directions/directions.component.d.ts +56 -56
  551. package/lib/directions/directions.module.d.ts +26 -26
  552. package/lib/directions/directions.theming.scss +6 -0
  553. package/lib/directions/index.d.ts +6 -6
  554. package/lib/directions/shared/directions-source.service.d.ts +11 -11
  555. package/lib/directions/shared/directions.enum.d.ts +22 -22
  556. package/lib/directions/shared/directions.interface.d.ts +126 -126
  557. package/lib/directions/shared/directions.service.d.ts +28 -13
  558. package/lib/directions/shared/directions.utils.d.ts +42 -42
  559. package/lib/directions/shared/index.d.ts +5 -5
  560. package/lib/directions/shared/store.d.ts +18 -18
  561. package/lib/download/download-button/download-button.component.d.ts +18 -18
  562. package/lib/download/download-button/index.d.ts +1 -1
  563. package/lib/download/download.module.d.ts +14 -14
  564. package/lib/download/index.d.ts +2 -2
  565. package/lib/download/shared/download.interface.d.ts +10 -10
  566. package/lib/download/shared/download.service.d.ts +10 -10
  567. package/lib/download/shared/index.d.ts +2 -2
  568. package/lib/draw/draw/draw-layer-popup.component.d.ts +14 -14
  569. package/lib/draw/draw/draw-popup.component.d.ts +63 -63
  570. package/lib/draw/draw/draw-shorcuts.component.d.ts +5 -5
  571. package/lib/draw/draw/draw.component.d.ts +240 -240
  572. package/lib/draw/draw/draw.module.d.ts +33 -34
  573. package/lib/draw/draw.theming.scss +32 -0
  574. package/lib/draw/drawingTool.module.d.ts +7 -7
  575. package/lib/draw/index.d.ts +2 -2
  576. package/lib/draw/shared/draw-icon.service.d.ts +12 -12
  577. package/lib/draw/shared/draw.enum.d.ts +17 -17
  578. package/lib/draw/shared/draw.interface.d.ts +40 -40
  579. package/lib/draw/shared/draw.utils.d.ts +35 -35
  580. package/lib/draw/shared/index.d.ts +4 -4
  581. package/lib/feature/feature-details/feature-details.component.d.ts +60 -60
  582. package/lib/feature/feature-details/feature-details.directive.d.ts +19 -19
  583. package/lib/feature/feature-details/feature-details.module.d.ts +15 -15
  584. package/lib/feature/feature-details/feature-details.theming.scss +16 -0
  585. package/lib/feature/feature-form/feature-form.component.d.ts +50 -50
  586. package/lib/feature/feature-form/feature-form.module.d.ts +12 -12
  587. package/lib/feature/feature.module.d.ts +9 -9
  588. package/lib/feature/feature.theming.scss +4 -0
  589. package/lib/feature/index.d.ts +3 -3
  590. package/lib/feature/shared/feature-store.utils.d.ts +10 -0
  591. package/lib/feature/shared/feature.enums.d.ts +7 -7
  592. package/lib/feature/shared/feature.interfaces.d.ts +82 -79
  593. package/lib/feature/shared/feature.utils.d.ts +97 -106
  594. package/lib/feature/shared/index.d.ts +7 -6
  595. package/lib/feature/shared/store.d.ts +78 -78
  596. package/lib/feature/shared/strategies/geo-properties.d.ts +61 -0
  597. package/lib/feature/shared/strategies/in-map-extent.d.ts +52 -52
  598. package/lib/feature/shared/strategies/in-map-resolution.d.ts +52 -52
  599. package/lib/feature/shared/strategies/index.d.ts +7 -6
  600. package/lib/feature/shared/strategies/loading-layer.d.ts +59 -59
  601. package/lib/feature/shared/strategies/loading.d.ts +75 -75
  602. package/lib/feature/shared/strategies/search.d.ts +55 -55
  603. package/lib/feature/shared/strategies/selection.d.ts +176 -176
  604. package/lib/feature/shared/strategies.utils.d.ts +17 -17
  605. package/lib/filter/filter.module.d.ts +53 -53
  606. package/lib/filter/filter.theming.scss +16 -0
  607. package/lib/filter/index.d.ts +15 -15
  608. package/lib/filter/ogc-filter-button/index.d.ts +1 -1
  609. package/lib/filter/ogc-filter-button/ogc-filter-button.component.d.ts +20 -20
  610. package/lib/filter/ogc-filter-form/index.d.ts +1 -1
  611. package/lib/filter/ogc-filter-form/ogc-filter-form.component.d.ts +65 -65
  612. package/lib/filter/ogc-filter-selection/index.d.ts +1 -1
  613. package/lib/filter/ogc-filter-selection/ogc-filter-selection.component.d.ts +93 -93
  614. package/lib/filter/ogc-filter-selection/ogc-filter-selection.theming.scss +18 -0
  615. package/lib/filter/ogc-filter-time/index.d.ts +2 -2
  616. package/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.d.ts +39 -39
  617. package/lib/filter/ogc-filter-time/ogc-filter-time-slider.theming.scss +15 -0
  618. package/lib/filter/ogc-filter-time/ogc-filter-time.component.d.ts +86 -86
  619. package/lib/filter/ogc-filterable-form/index.d.ts +1 -1
  620. package/lib/filter/ogc-filterable-form/ogc-filterable-form.component.d.ts +15 -15
  621. package/lib/filter/ogc-filterable-item/index.d.ts +1 -1
  622. package/lib/filter/ogc-filterable-item/ogc-filterable-item.component.d.ts +41 -41
  623. package/lib/filter/ogc-filterable-list/index.d.ts +2 -2
  624. package/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.d.ts +14 -14
  625. package/lib/filter/ogc-filterable-list/ogc-filterable-list.component.d.ts +10 -10
  626. package/lib/filter/shared/filterable-datasource.pipe.d.ts +10 -10
  627. package/lib/filter/shared/index.d.ts +11 -11
  628. package/lib/filter/shared/ogc-filter-time.service.d.ts +19 -19
  629. package/lib/filter/shared/ogc-filter.d.ts +29 -29
  630. package/lib/filter/shared/ogc-filter.enum.d.ts +27 -27
  631. package/lib/filter/shared/ogc-filter.interface.d.ts +200 -200
  632. package/lib/filter/shared/ogc-filter.service.d.ts +11 -11
  633. package/lib/filter/shared/spatial-filter.enum.d.ts +19 -19
  634. package/lib/filter/shared/spatial-filter.interface.d.ts +10 -10
  635. package/lib/filter/shared/spatial-filter.service.d.ts +37 -37
  636. package/lib/filter/shared/time-filter.enum.d.ts +10 -10
  637. package/lib/filter/shared/time-filter.interface.d.ts +15 -29
  638. package/lib/filter/shared/time-filter.service.d.ts +11 -11
  639. package/lib/filter/spatial-filter/spatial-filter-item/index.d.ts +1 -1
  640. package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +166 -166
  641. package/lib/filter/spatial-filter/spatial-filter-list/index.d.ts +1 -1
  642. package/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.d.ts +57 -57
  643. package/lib/filter/spatial-filter/spatial-filter-type/index.d.ts +1 -1
  644. package/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.d.ts +45 -45
  645. package/lib/filter/time-filter-button/index.d.ts +1 -1
  646. package/lib/filter/time-filter-button/time-filter-button.component.d.ts +20 -20
  647. package/lib/filter/time-filter-form/index.d.ts +1 -1
  648. package/lib/filter/time-filter-form/time-filter-form.component.d.ts +77 -77
  649. package/lib/filter/time-filter-form/time-filter-form.theming.scss +5 -0
  650. package/lib/filter/time-filter-item/index.d.ts +1 -1
  651. package/lib/filter/time-filter-item/time-filter-item.component.d.ts +28 -28
  652. package/lib/filter/time-filter-list/index.d.ts +2 -2
  653. package/lib/filter/time-filter-list/time-filter-list-binding.directive.d.ts +14 -14
  654. package/lib/filter/time-filter-list/time-filter-list.component.d.ts +12 -12
  655. package/lib/geo.module.d.ts +29 -29
  656. package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +202 -202
  657. package/lib/geometry/geometry-form-field/geometry-form-field.component.d.ts +88 -88
  658. package/lib/geometry/geometry-form-field/geometry-form-field.module.d.ts +19 -19
  659. package/lib/geometry/geometry.module.d.ts +8 -8
  660. package/lib/geometry/index.d.ts +3 -3
  661. package/lib/geometry/shared/controls/draw.d.ts +150 -150
  662. package/lib/geometry/shared/controls/index.d.ts +3 -3
  663. package/lib/geometry/shared/controls/modify.d.ts +228 -228
  664. package/lib/geometry/shared/controls/slice.d.ts +99 -99
  665. package/lib/geometry/shared/geometry.errors.d.ts +11 -11
  666. package/lib/geometry/shared/geometry.interfaces.d.ts +13 -13
  667. package/lib/geometry/shared/geometry.utils.d.ts +45 -45
  668. package/lib/geometry/shared/index.d.ts +4 -4
  669. package/lib/import-export/export-button/export-button.component.d.ts +16 -16
  670. package/lib/import-export/export-button/index.d.ts +1 -1
  671. package/lib/import-export/import-export/import-export.component.d.ts +109 -109
  672. package/lib/import-export/import-export/index.d.ts +1 -1
  673. package/lib/import-export/import-export.module.d.ts +25 -25
  674. package/lib/import-export/index.d.ts +3 -3
  675. package/lib/import-export/shared/drop-geo-file.directive.d.ts +39 -39
  676. package/lib/import-export/shared/export.errors.d.ts +8 -8
  677. package/lib/import-export/shared/export.interface.d.ts +11 -11
  678. package/lib/import-export/shared/export.service.d.ts +30 -30
  679. package/lib/import-export/shared/export.type.d.ts +16 -16
  680. package/lib/import-export/shared/export.utils.d.ts +19 -19
  681. package/lib/import-export/shared/import.errors.d.ts +20 -20
  682. package/lib/import-export/shared/import.interface.d.ts +10 -10
  683. package/lib/import-export/shared/import.service.d.ts +31 -31
  684. package/lib/import-export/shared/import.utils.d.ts +20 -20
  685. package/lib/import-export/shared/index.d.ts +10 -10
  686. package/lib/layer/index.d.ts +9 -9
  687. package/lib/layer/layer-item/index.d.ts +1 -1
  688. package/lib/layer/layer-item/layer-item.component.d.ts +62 -62
  689. package/lib/layer/layer-legend/index.d.ts +1 -1
  690. package/lib/layer/layer-legend/layer-legend.component.d.ts +90 -90
  691. package/lib/layer/layer-legend/layer-legend.theming.scss +10 -0
  692. package/lib/layer/layer-legend-item/index.d.ts +1 -1
  693. package/lib/layer/layer-legend-item/layer-legend-item.component.d.ts +22 -22
  694. package/lib/layer/layer-legend-list/index.d.ts +2 -2
  695. package/lib/layer/layer-legend-list/layer-legend-list-binding.directive.d.ts +16 -16
  696. package/lib/layer/layer-legend-list/layer-legend-list.component.d.ts +31 -31
  697. package/lib/layer/layer-list/index.d.ts +3 -3
  698. package/lib/layer/layer-list/layer-list-binding.directive.d.ts +19 -19
  699. package/lib/layer/layer-list/layer-list.component.d.ts +127 -127
  700. package/lib/layer/layer-list/layer-list.enum.d.ts +15 -15
  701. package/lib/layer/layer-list-tool/index.d.ts +4 -4
  702. package/lib/layer/layer-list-tool/layer-list-tool.component.d.ts +32 -32
  703. package/lib/layer/layer-list-tool/layer-list-tool.enum.d.ts +5 -5
  704. package/lib/layer/layer-list-tool/layer-list-tool.interface.d.ts +8 -8
  705. package/lib/layer/layer-list-tool/layer-list-tool.service.d.ts +14 -14
  706. package/lib/layer/layer-list-tool/layer-list-tool.theming.scss +22 -0
  707. package/lib/layer/layer.module.d.ts +34 -35
  708. package/lib/layer/layer.theming.scss +24 -0
  709. package/lib/layer/shared/clusterParam.d.ts +13 -13
  710. package/lib/layer/shared/index.d.ts +4 -4
  711. package/lib/layer/shared/layer.enums.d.ts +1 -1
  712. package/lib/layer/shared/layer.service.d.ts +33 -33
  713. package/lib/layer/shared/layers/any-layer.d.ts +6 -6
  714. package/lib/layer/shared/layers/any-layer.interface.d.ts +6 -6
  715. package/lib/layer/shared/layers/image-layer.d.ts +21 -21
  716. package/lib/layer/shared/layers/image-layer.interface.d.ts +19 -19
  717. package/lib/layer/shared/layers/index.d.ts +12 -12
  718. package/lib/layer/shared/layers/layer.d.ts +66 -66
  719. package/lib/layer/shared/layers/layer.interface.d.ts +90 -109
  720. package/lib/layer/shared/layers/legend.interface.d.ts +22 -0
  721. package/lib/layer/shared/layers/tile-layer.d.ts +31 -31
  722. package/lib/layer/shared/layers/tile-layer.interface.d.ts +20 -20
  723. package/lib/layer/shared/layers/vector-layer.d.ts +94 -94
  724. package/lib/layer/shared/layers/vector-layer.interface.d.ts +42 -42
  725. package/lib/layer/shared/layers/vectortile-layer.d.ts +28 -28
  726. package/lib/layer/shared/layers/vectortile-layer.interface.d.ts +16 -16
  727. package/lib/layer/track-feature-button/index.d.ts +1 -1
  728. package/lib/layer/track-feature-button/track-feature-button.component.d.ts +15 -15
  729. package/lib/layer/utils/image-watcher.d.ts +16 -16
  730. package/lib/layer/utils/index.d.ts +5 -5
  731. package/lib/layer/utils/layer.utils.d.ts +2 -2
  732. package/lib/layer/utils/outputLegend.d.ts +7 -7
  733. package/lib/layer/utils/tile-watcher.d.ts +14 -14
  734. package/lib/layer/utils/vector-watcher.d.ts +13 -13
  735. package/lib/map/baselayers-switcher/baselayers-switcher.animation.d.ts +2 -2
  736. package/lib/map/baselayers-switcher/baselayers-switcher.component.d.ts +22 -21
  737. package/lib/map/baselayers-switcher/index.d.ts +2 -2
  738. package/lib/map/baselayers-switcher/mini-basemap.component.d.ts +29 -29
  739. package/lib/map/geolocate-button/geolocate-button.component.d.ts +22 -22
  740. package/lib/map/geolocate-button/index.d.ts +1 -1
  741. package/lib/map/home-extent-button/home-extent-button.component.d.ts +20 -20
  742. package/lib/map/home-extent-button/index.d.ts +1 -1
  743. package/lib/map/index.d.ts +13 -13
  744. package/lib/map/info-section/index.d.ts +1 -1
  745. package/lib/map/info-section/info-section.component.d.ts +7 -7
  746. package/lib/map/map-browser/index.d.ts +1 -1
  747. package/lib/map/map-browser/map-browser.component.d.ts +25 -25
  748. package/lib/map/map-browser/map-browser.theming.scss +46 -0
  749. package/lib/map/map-center/index.d.ts +1 -1
  750. package/lib/map/map-center/map-center.component.d.ts +31 -31
  751. package/lib/map/map.module.d.ts +28 -28
  752. package/lib/map/map.theming.scss +9 -0
  753. package/lib/map/menu-button/index.d.ts +1 -1
  754. package/lib/map/menu-button/menu-button.component.d.ts +17 -17
  755. package/lib/map/menu-button/menu-button.theming.scss +24 -0
  756. package/lib/map/offline-button/index.d.ts +1 -1
  757. package/lib/map/offline-button/offline-button.component.d.ts +15 -15
  758. package/lib/map/rotation-button/index.d.ts +1 -1
  759. package/lib/map/rotation-button/rotation-button.component.d.ts +17 -17
  760. package/lib/map/shared/controllers/controller.d.ts +29 -29
  761. package/lib/map/shared/controllers/geolocation.d.ts +95 -127
  762. package/lib/map/shared/controllers/geolocation.interface.d.ts +30 -0
  763. package/lib/map/shared/controllers/index.d.ts +4 -3
  764. package/lib/map/shared/controllers/view.d.ts +200 -200
  765. package/lib/map/shared/hover-feature.directive.d.ts +124 -124
  766. package/lib/map/shared/index.d.ts +14 -13
  767. package/lib/map/shared/linkedLayers.utils.d.ts +17 -17
  768. package/lib/map/shared/map-pointer-position.directive.d.ts +71 -71
  769. package/lib/map/shared/map.abstract.d.ts +59 -0
  770. package/lib/map/shared/map.d.ts +140 -135
  771. package/lib/map/shared/map.enums.d.ts +4 -4
  772. package/lib/map/shared/map.interface.d.ts +57 -57
  773. package/lib/map/shared/map.service.d.ts +19 -19
  774. package/lib/map/shared/map.utils.d.ts +90 -90
  775. package/lib/map/shared/mapOffline.directive.d.ts +18 -18
  776. package/lib/map/shared/projection.interfaces.d.ts +29 -29
  777. package/lib/map/shared/projection.service.d.ts +19 -19
  778. package/lib/map/shared/projection.utils.d.ts +19 -19
  779. package/lib/map/swipe-control/index.d.ts +1 -1
  780. package/lib/map/swipe-control/swipe-control.component.d.ts +97 -97
  781. package/lib/map/utils/layer-watcher.d.ts +20 -20
  782. package/lib/map/wake-lock-button/index.d.ts +1 -1
  783. package/lib/map/wake-lock-button/wake-lock-button.component.d.ts +27 -27
  784. package/lib/map/zoom-button/index.d.ts +1 -1
  785. package/lib/map/zoom-button/zoom-button.component.d.ts +12 -12
  786. package/lib/map/zoom-button/zoom-button.theming.scss +32 -0
  787. package/lib/measure/index.d.ts +3 -3
  788. package/lib/measure/measure.module.d.ts +7 -7
  789. package/lib/measure/measure.theming.scss +5 -0
  790. package/lib/measure/measurer/measure-format.pipe.d.ts +15 -15
  791. package/lib/measure/measurer/measurer-dialog.component.d.ts +14 -14
  792. package/lib/measure/measurer/measurer-item.component.d.ts +66 -66
  793. package/lib/measure/measurer/measurer.component.d.ts +405 -405
  794. package/lib/measure/measurer/measurer.module.d.ts +26 -25
  795. package/lib/measure/measurer/measurer.theming.scss +26 -0
  796. package/lib/measure/shared/index.d.ts +3 -3
  797. package/lib/measure/shared/measure.enum.d.ts +33 -33
  798. package/lib/measure/shared/measure.interfaces.d.ts +21 -21
  799. package/lib/measure/shared/measure.utils.d.ts +180 -180
  800. package/lib/metadata/index.d.ts +2 -2
  801. package/lib/metadata/metadata-button/index.d.ts +1 -1
  802. package/lib/metadata/metadata-button/metadata-button.component.d.ts +26 -26
  803. package/lib/metadata/metadata.module.d.ts +15 -15
  804. package/lib/metadata/shared/index.d.ts +2 -2
  805. package/lib/metadata/shared/metadata.interface.d.ts +13 -13
  806. package/lib/metadata/shared/metadata.service.d.ts +8 -8
  807. package/lib/offline/geoDB/configFileToGeoDB.service.d.ts +14 -14
  808. package/lib/offline/geoDB/geoDB.enums.d.ts +4 -4
  809. package/lib/offline/geoDB/geoDB.interface.d.ts +19 -19
  810. package/lib/offline/geoDB/geoDB.service.d.ts +37 -37
  811. package/lib/offline/geoDB/index.d.ts +4 -4
  812. package/lib/offline/index.d.ts +3 -3
  813. package/lib/offline/layerDB/index.d.ts +2 -2
  814. package/lib/offline/layerDB/layerDB.interface.d.ts +7 -7
  815. package/lib/offline/layerDB/layerDB.service.d.ts +36 -36
  816. package/lib/offline/shared/geo-network.service.d.ts +28 -28
  817. package/lib/offline/shared/index.d.ts +1 -1
  818. package/lib/overlay/index.d.ts +1 -1
  819. package/lib/overlay/overlay.module.d.ts +9 -9
  820. package/lib/overlay/shared/index.d.ts +5 -5
  821. package/lib/overlay/shared/overlay.d.ts +81 -81
  822. package/lib/overlay/shared/overlay.directive.d.ts +18 -18
  823. package/lib/overlay/shared/overlay.enum.d.ts +6 -6
  824. package/lib/overlay/shared/overlay.service.d.ts +14 -14
  825. package/lib/overlay/shared/overlay.utils.d.ts +6 -6
  826. package/lib/print/index.d.ts +3 -3
  827. package/lib/print/print/print.component.d.ts +35 -35
  828. package/lib/print/print-form/index.d.ts +1 -1
  829. package/lib/print/print-form/print-form.component.d.ts +99 -99
  830. package/lib/print/print.module.d.ts +19 -19
  831. package/lib/print/shared/geopdf.d.ts +1 -1
  832. package/lib/print/shared/index.d.ts +4 -4
  833. package/lib/print/shared/print.interface.d.ts +22 -22
  834. package/lib/print/shared/print.service.d.ts +171 -174
  835. package/lib/print/shared/print.type.d.ts +45 -45
  836. package/lib/query/index.d.ts +1 -1
  837. package/lib/query/query.module.d.ts +11 -11
  838. package/lib/query/shared/index.d.ts +6 -6
  839. package/lib/query/shared/query-search-source.d.ts +17 -17
  840. package/lib/query/shared/query-search-source.providers.d.ts +17 -17
  841. package/lib/query/shared/query.directive.d.ts +105 -105
  842. package/lib/query/shared/query.enums.d.ts +26 -26
  843. package/lib/query/shared/query.interfaces.d.ts +35 -35
  844. package/lib/query/shared/query.service.d.ts +56 -56
  845. package/lib/query/shared/query.utils.d.ts +27 -27
  846. package/lib/search/index.d.ts +11 -11
  847. package/lib/search/search-bar/search-bar.component.d.ts +231 -230
  848. package/lib/search/search-bar/search-bar.module.d.ts +24 -23
  849. package/lib/search/search-bar/search-bar.theming.scss +36 -0
  850. package/lib/search/search-bar/search-url-param.directive.d.ts +13 -13
  851. package/lib/search/search-results/save-feature-dialog.component.d.ts +32 -32
  852. package/lib/search/search-results/search-results-add-button.component.d.ts +84 -84
  853. package/lib/search/search-results/search-results-item.component.d.ts +52 -52
  854. package/lib/search/search-results/search-results.component.d.ts +165 -165
  855. package/lib/search/search-results/search-results.module.d.ts +29 -29
  856. package/lib/search/search-selector/search-selector.component.d.ts +58 -58
  857. package/lib/search/search-selector/search-selector.module.d.ts +19 -19
  858. package/lib/search/search-settings/search-settings.component.d.ts +102 -102
  859. package/lib/search/search-settings/search-settings.module.d.ts +20 -20
  860. package/lib/search/search.module.d.ts +14 -14
  861. package/lib/search/search.theming.scss +5 -0
  862. package/lib/search/shared/index.d.ts +8 -8
  863. package/lib/search/shared/search-pointer-summary.directive.d.ts +125 -124
  864. package/lib/search/shared/search-source-service.providers.d.ts +15 -15
  865. package/lib/search/shared/search-source.service.d.ts +39 -39
  866. package/lib/search/shared/search.enums.d.ts +1 -1
  867. package/lib/search/shared/search.interfaces.d.ts +54 -29
  868. package/lib/search/shared/search.service.d.ts +53 -53
  869. package/lib/search/shared/search.utils.d.ts +39 -39
  870. package/lib/search/shared/sources/cadastre.d.ts +34 -33
  871. package/lib/search/shared/sources/cadastre.providers.d.ts +18 -18
  872. package/lib/search/shared/sources/coordinates.d.ts +40 -40
  873. package/lib/search/shared/sources/coordinates.interfaces.d.ts +12 -12
  874. package/lib/search/shared/sources/coordinates.providers.d.ts +31 -31
  875. package/lib/search/shared/sources/icherche.d.ts +98 -96
  876. package/lib/search/shared/sources/icherche.interfaces.d.ts +30 -30
  877. package/lib/search/shared/sources/icherche.providers.d.ts +46 -46
  878. package/lib/search/shared/sources/ilayer.d.ts +56 -55
  879. package/lib/search/shared/sources/ilayer.interfaces.d.ts +47 -47
  880. package/lib/search/shared/sources/ilayer.providers.d.ts +31 -31
  881. package/lib/search/shared/sources/index.d.ts +22 -22
  882. package/lib/search/shared/sources/nominatim.d.ts +46 -45
  883. package/lib/search/shared/sources/nominatim.interfaces.d.ts +10 -10
  884. package/lib/search/shared/sources/nominatim.providers.d.ts +18 -18
  885. package/lib/search/shared/sources/source.d.ts +86 -114
  886. package/lib/search/shared/sources/source.interfaces.d.ts +54 -47
  887. package/lib/search/shared/sources/storedqueries.d.ts +75 -73
  888. package/lib/search/shared/sources/storedqueries.interfaces.d.ts +42 -42
  889. package/lib/search/shared/sources/storedqueries.providers.d.ts +32 -32
  890. package/lib/search/shared/sources/workspace.d.ts +33 -33
  891. package/lib/search/shared/sources/workspace.interfaces.d.ts +9 -9
  892. package/lib/search/shared/sources/workspace.providers.d.ts +17 -17
  893. package/lib/style/index.d.ts +4 -4
  894. package/lib/style/shared/datasource/esri-style-generator.d.ts +21 -21
  895. package/lib/style/shared/datasource/index.d.ts +1 -1
  896. package/lib/style/shared/feature/feature-style.d.ts +18 -18
  897. package/lib/style/shared/feature/index.d.ts +1 -1
  898. package/lib/style/shared/font.enum.d.ts +15 -15
  899. package/lib/style/shared/index.d.ts +4 -4
  900. package/lib/style/shared/overlay/index.d.ts +2 -2
  901. package/lib/style/shared/overlay/overlay-marker-style.utils.d.ts +11 -11
  902. package/lib/style/shared/overlay/overlay-style.utils.d.ts +19 -19
  903. package/lib/style/shared/vector/commonVectorStyle.d.ts +14 -14
  904. package/lib/style/shared/vector/conversion.utils.d.ts +22 -22
  905. package/lib/style/shared/vector/index.d.ts +3 -3
  906. package/lib/style/shared/vector/vector-style.interface.d.ts +69 -69
  907. package/lib/style/style-list/index.d.ts +4 -4
  908. package/lib/style/style-list/style-list.interface.d.ts +6 -6
  909. package/lib/style/style-list/style-list.module.d.ts +8 -8
  910. package/lib/style/style-list/style-list.provider.d.ts +15 -15
  911. package/lib/style/style-list/style-list.service.d.ts +18 -18
  912. package/lib/style/style-modal/drawing/index.d.ts +1 -1
  913. package/lib/style/style-modal/drawing/style-modal-drawing.component.d.ts +33 -31
  914. package/lib/style/style-modal/index.d.ts +4 -4
  915. package/lib/style/style-modal/layer/index.d.ts +1 -1
  916. package/lib/style/style-modal/layer/style-modal-layer.component.d.ts +32 -30
  917. package/lib/style/style-modal/layer-button/index.d.ts +1 -1
  918. package/lib/style/style-modal/layer-button/style-modal-layer-button.component.d.ts +14 -14
  919. package/lib/style/style-modal/shared/index.d.ts +1 -1
  920. package/lib/style/style-modal/shared/style-modal.interface.d.ts +17 -17
  921. package/lib/style/style-service/draw-style.service.d.ts +35 -35
  922. package/lib/style/style-service/index.d.ts +2 -2
  923. package/lib/style/style-service/style.service.d.ts +57 -57
  924. package/lib/style/style.module.d.ts +23 -22
  925. package/lib/toast/index.d.ts +1 -1
  926. package/lib/toast/toast.component.d.ts +33 -33
  927. package/lib/toast/toast.module.d.ts +14 -14
  928. package/lib/utils/googleLinks.d.ts +5 -5
  929. package/lib/utils/id-generator.d.ts +54 -54
  930. package/lib/utils/index.d.ts +4 -3
  931. package/lib/utils/osmLinks.d.ts +4 -4
  932. package/lib/utils/propertyTypeDetector/index.d.ts +2 -0
  933. package/lib/utils/propertyTypeDetector/propertyTypeDetector.interface.d.ts +5 -0
  934. package/lib/utils/propertyTypeDetector/propertyTypeDetector.service.d.ts +15 -0
  935. package/lib/wkt/index.d.ts +1 -1
  936. package/lib/wkt/shared/index.d.ts +1 -1
  937. package/lib/wkt/shared/wkt.service.d.ts +19 -19
  938. package/lib/wkt/wkt.module.d.ts +8 -8
  939. package/lib/workspace/confirmation-popup/confirmation-popup.component.d.ts +23 -23
  940. package/lib/workspace/confirmation-popup/confirmation-popup.module.d.ts +14 -14
  941. package/lib/workspace/confirmation-popup/confirmation-popup.theming.scss +14 -0
  942. package/lib/workspace/confirmation-popup/index.d.ts +2 -2
  943. package/lib/workspace/index.d.ts +7 -7
  944. package/lib/workspace/shared/edition-workspace.d.ts +84 -82
  945. package/lib/workspace/shared/edition-workspace.service.d.ts +50 -51
  946. package/lib/workspace/shared/feature-workspace.d.ts +18 -18
  947. package/lib/workspace/shared/feature-workspace.service.d.ts +22 -19
  948. package/lib/workspace/shared/index.d.ts +7 -7
  949. package/lib/workspace/shared/wfs-workspace.d.ts +18 -18
  950. package/lib/workspace/shared/wfs-workspace.service.d.ts +22 -19
  951. package/lib/workspace/shared/wms-workspace.service.d.ts +24 -22
  952. package/lib/workspace/shared/workspace.utils.d.ts +23 -10
  953. package/lib/workspace/widgets/index.d.ts +3 -3
  954. package/lib/workspace/widgets/ogc-filter/ogc-filter.component.d.ts +29 -29
  955. package/lib/workspace/widgets/ogc-filter/ogc-filter.module.d.ts +14 -14
  956. package/lib/workspace/widgets/widgets.d.ts +9 -9
  957. package/lib/workspace/workspace-selector/workspace-selector.directive.d.ts +32 -32
  958. package/lib/workspace/workspace-selector/workspace-selector.module.d.ts +11 -11
  959. package/lib/workspace/workspace-updator/workspace-updator.directive.d.ts +26 -26
  960. package/lib/workspace/workspace-updator/workspace-updator.module.d.ts +11 -11
  961. package/lib/workspace/workspace.module.d.ts +14 -14
  962. package/lib/workspace/workspace.theming.scss +6 -0
  963. package/locale/en.geo.json +807 -0
  964. package/locale/fr.geo.json +808 -0
  965. package/package.json +38 -38
  966. package/public_api.d.ts +53 -53
  967. package/style/style.css +350 -0
  968. package/esm2020/igo2-geo.mjs +0 -5
  969. package/esm2020/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +0 -303
  970. package/esm2020/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +0 -306
  971. package/esm2020/lib/catalog/catalog-browser/catalog-browser.component.mjs +0 -250
  972. package/esm2020/lib/catalog/catalog-browser/catalog-browser.module.mjs +0 -80
  973. package/esm2020/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +0 -209
  974. package/esm2020/lib/catalog/catalog-library/catalog-library-item.component.mjs +0 -79
  975. package/esm2020/lib/catalog/catalog-library/catalog-library.component.mjs +0 -212
  976. package/esm2020/lib/catalog/catalog-library/catalog-library.module.mjs +0 -95
  977. package/esm2020/lib/catalog/catalog.module.mjs +0 -53
  978. package/esm2020/lib/catalog/index.mjs +0 -5
  979. package/esm2020/lib/catalog/shared/catalog.abstract.mjs +0 -95
  980. package/esm2020/lib/catalog/shared/catalog.enum.mjs +0 -16
  981. package/esm2020/lib/catalog/shared/catalog.interface.mjs +0 -2
  982. package/esm2020/lib/catalog/shared/catalog.service.mjs +0 -604
  983. package/esm2020/lib/catalog/shared/index.mjs +0 -5
  984. package/esm2020/lib/datasource/datasource.module.mjs +0 -22
  985. package/esm2020/lib/datasource/index.mjs +0 -3
  986. package/esm2020/lib/datasource/shared/capabilities.service.mjs +0 -431
  987. package/esm2020/lib/datasource/shared/datasource.service.mjs +0 -232
  988. package/esm2020/lib/datasource/shared/datasources/any-datasource.interface.mjs +0 -2
  989. package/esm2020/lib/datasource/shared/datasources/any-datasource.mjs +0 -2
  990. package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.interface.mjs +0 -2
  991. package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +0 -145
  992. package/esm2020/lib/datasource/shared/datasources/carto-datasource.interface.mjs +0 -2
  993. package/esm2020/lib/datasource/shared/datasources/carto-datasource.mjs +0 -109
  994. package/esm2020/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +0 -2
  995. package/esm2020/lib/datasource/shared/datasources/cluster-datasource.mjs +0 -15
  996. package/esm2020/lib/datasource/shared/datasources/data.service.mjs +0 -3
  997. package/esm2020/lib/datasource/shared/datasources/datasource.interface.mjs +0 -2
  998. package/esm2020/lib/datasource/shared/datasources/datasource.mjs +0 -29
  999. package/esm2020/lib/datasource/shared/datasources/feature-datasource.interface.mjs +0 -2
  1000. package/esm2020/lib/datasource/shared/datasources/feature-datasource.mjs +0 -43
  1001. package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.mjs +0 -2
  1002. package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +0 -57
  1003. package/esm2020/lib/datasource/shared/datasources/index.mjs +0 -36
  1004. package/esm2020/lib/datasource/shared/datasources/mvt-datasource.interface.mjs +0 -2
  1005. package/esm2020/lib/datasource/shared/datasources/mvt-datasource.mjs +0 -28
  1006. package/esm2020/lib/datasource/shared/datasources/osm-datasource.interface.mjs +0 -2
  1007. package/esm2020/lib/datasource/shared/datasources/osm-datasource.mjs +0 -12
  1008. package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.mjs +0 -2
  1009. package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +0 -49
  1010. package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.interface.mjs +0 -2
  1011. package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.mjs +0 -15
  1012. package/esm2020/lib/datasource/shared/datasources/websocket-datasource.interface.mjs +0 -2
  1013. package/esm2020/lib/datasource/shared/datasources/websocket-datasource.mjs +0 -54
  1014. package/esm2020/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +0 -2
  1015. package/esm2020/lib/datasource/shared/datasources/wfs-datasource.mjs +0 -72
  1016. package/esm2020/lib/datasource/shared/datasources/wfs.service.mjs +0 -152
  1017. package/esm2020/lib/datasource/shared/datasources/wms-datasource.interface.mjs +0 -2
  1018. package/esm2020/lib/datasource/shared/datasources/wms-datasource.mjs +0 -206
  1019. package/esm2020/lib/datasource/shared/datasources/wms-wfs.utils.mjs +0 -207
  1020. package/esm2020/lib/datasource/shared/datasources/wmts-datasource.interface.mjs +0 -2
  1021. package/esm2020/lib/datasource/shared/datasources/wmts-datasource.mjs +0 -16
  1022. package/esm2020/lib/datasource/shared/datasources/xyz-datasource.interface.mjs +0 -2
  1023. package/esm2020/lib/datasource/shared/datasources/xyz-datasource.mjs +0 -9
  1024. package/esm2020/lib/datasource/shared/index.mjs +0 -5
  1025. package/esm2020/lib/datasource/shared/options/index.mjs +0 -5
  1026. package/esm2020/lib/datasource/shared/options/options-api.interface.mjs +0 -2
  1027. package/esm2020/lib/datasource/shared/options/options-api.providers.mjs +0 -15
  1028. package/esm2020/lib/datasource/shared/options/options-api.service.mjs +0 -81
  1029. package/esm2020/lib/datasource/shared/options/options.service.mjs +0 -3
  1030. package/esm2020/lib/datasource/utils/index.mjs +0 -2
  1031. package/esm2020/lib/datasource/utils/tilegrid.mjs +0 -20
  1032. package/esm2020/lib/directions/directions-buttons/directions-buttons.component.mjs +0 -218
  1033. package/esm2020/lib/directions/directions-buttons/index.mjs +0 -2
  1034. package/esm2020/lib/directions/directions-inputs/directions-inputs.component.mjs +0 -290
  1035. package/esm2020/lib/directions/directions-inputs/index.mjs +0 -2
  1036. package/esm2020/lib/directions/directions-results/directions-results.component.mjs +0 -196
  1037. package/esm2020/lib/directions/directions-results/index.mjs +0 -2
  1038. package/esm2020/lib/directions/directions-sources/directions-source.interface.mjs +0 -2
  1039. package/esm2020/lib/directions/directions-sources/directions-source.mjs +0 -3
  1040. package/esm2020/lib/directions/directions-sources/directions-source.provider.mjs +0 -16
  1041. package/esm2020/lib/directions/directions-sources/index.mjs +0 -5
  1042. package/esm2020/lib/directions/directions-sources/osrm-directions-source.mjs +0 -99
  1043. package/esm2020/lib/directions/directions.component.mjs +0 -311
  1044. package/esm2020/lib/directions/directions.module.mjs +0 -102
  1045. package/esm2020/lib/directions/index.mjs +0 -7
  1046. package/esm2020/lib/directions/shared/directions-source.service.mjs +0 -17
  1047. package/esm2020/lib/directions/shared/directions.enum.mjs +0 -28
  1048. package/esm2020/lib/directions/shared/directions.interface.mjs +0 -2
  1049. package/esm2020/lib/directions/shared/directions.service.mjs +0 -29
  1050. package/esm2020/lib/directions/shared/directions.utils.mjs +0 -509
  1051. package/esm2020/lib/directions/shared/index.mjs +0 -6
  1052. package/esm2020/lib/directions/shared/store.mjs +0 -24
  1053. package/esm2020/lib/download/download-button/download-button.component.mjs +0 -61
  1054. package/esm2020/lib/download/download-button/index.mjs +0 -2
  1055. package/esm2020/lib/download/download.module.mjs +0 -42
  1056. package/esm2020/lib/download/index.mjs +0 -3
  1057. package/esm2020/lib/download/shared/download.interface.mjs +0 -2
  1058. package/esm2020/lib/download/shared/download.service.mjs +0 -62
  1059. package/esm2020/lib/download/shared/index.mjs +0 -3
  1060. package/esm2020/lib/draw/draw/draw-layer-popup.component.mjs +0 -55
  1061. package/esm2020/lib/draw/draw/draw-popup.component.mjs +0 -591
  1062. package/esm2020/lib/draw/draw/draw-shorcuts.component.mjs +0 -48
  1063. package/esm2020/lib/draw/draw/draw.component.mjs +0 -1300
  1064. package/esm2020/lib/draw/draw/draw.module.mjs +0 -113
  1065. package/esm2020/lib/draw/drawingTool.module.mjs +0 -20
  1066. package/esm2020/lib/draw/index.mjs +0 -3
  1067. package/esm2020/lib/draw/shared/draw-icon.service.mjs +0 -27
  1068. package/esm2020/lib/draw/shared/draw.enum.mjs +0 -21
  1069. package/esm2020/lib/draw/shared/draw.interface.mjs +0 -2
  1070. package/esm2020/lib/draw/shared/draw.utils.mjs +0 -122
  1071. package/esm2020/lib/draw/shared/index.mjs +0 -5
  1072. package/esm2020/lib/feature/feature-details/feature-details.component.mjs +0 -404
  1073. package/esm2020/lib/feature/feature-details/feature-details.directive.mjs +0 -54
  1074. package/esm2020/lib/feature/feature-details/feature-details.module.mjs +0 -48
  1075. package/esm2020/lib/feature/feature-form/feature-form.component.mjs +0 -112
  1076. package/esm2020/lib/feature/feature-form/feature-form.module.mjs +0 -34
  1077. package/esm2020/lib/feature/feature.module.mjs +0 -28
  1078. package/esm2020/lib/feature/index.mjs +0 -4
  1079. package/esm2020/lib/feature/shared/feature.enums.mjs +0 -9
  1080. package/esm2020/lib/feature/shared/feature.interfaces.mjs +0 -2
  1081. package/esm2020/lib/feature/shared/feature.utils.mjs +0 -349
  1082. package/esm2020/lib/feature/shared/index.mjs +0 -7
  1083. package/esm2020/lib/feature/shared/store.mjs +0 -133
  1084. package/esm2020/lib/feature/shared/strategies/in-map-extent.mjs +0 -113
  1085. package/esm2020/lib/feature/shared/strategies/in-map-resolution.mjs +0 -94
  1086. package/esm2020/lib/feature/shared/strategies/index.mjs +0 -7
  1087. package/esm2020/lib/feature/shared/strategies/loading-layer.mjs +0 -104
  1088. package/esm2020/lib/feature/shared/strategies/loading.mjs +0 -133
  1089. package/esm2020/lib/feature/shared/strategies/search.mjs +0 -150
  1090. package/esm2020/lib/feature/shared/strategies/selection.mjs +0 -370
  1091. package/esm2020/lib/feature/shared/strategies.utils.mjs +0 -37
  1092. package/esm2020/lib/filter/filter.module.mjs +0 -289
  1093. package/esm2020/lib/filter/index.mjs +0 -16
  1094. package/esm2020/lib/filter/ogc-filter-button/index.mjs +0 -2
  1095. package/esm2020/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +0 -140
  1096. package/esm2020/lib/filter/ogc-filter-form/index.mjs +0 -2
  1097. package/esm2020/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +0 -645
  1098. package/esm2020/lib/filter/ogc-filter-selection/index.mjs +0 -2
  1099. package/esm2020/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +0 -1302
  1100. package/esm2020/lib/filter/ogc-filter-time/index.mjs +0 -3
  1101. package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +0 -177
  1102. package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +0 -898
  1103. package/esm2020/lib/filter/ogc-filterable-form/index.mjs +0 -2
  1104. package/esm2020/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +0 -59
  1105. package/esm2020/lib/filter/ogc-filterable-item/index.mjs +0 -2
  1106. package/esm2020/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +0 -307
  1107. package/esm2020/lib/filter/ogc-filterable-list/index.mjs +0 -3
  1108. package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +0 -31
  1109. package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +0 -44
  1110. package/esm2020/lib/filter/shared/filterable-datasource.pipe.mjs +0 -55
  1111. package/esm2020/lib/filter/shared/index.mjs +0 -12
  1112. package/esm2020/lib/filter/shared/ogc-filter-time.service.mjs +0 -72
  1113. package/esm2020/lib/filter/shared/ogc-filter.enum.mjs +0 -30
  1114. package/esm2020/lib/filter/shared/ogc-filter.interface.mjs +0 -2
  1115. package/esm2020/lib/filter/shared/ogc-filter.mjs +0 -692
  1116. package/esm2020/lib/filter/shared/ogc-filter.service.mjs +0 -46
  1117. package/esm2020/lib/filter/shared/spatial-filter.enum.mjs +0 -23
  1118. package/esm2020/lib/filter/shared/spatial-filter.interface.mjs +0 -2
  1119. package/esm2020/lib/filter/shared/spatial-filter.service.mjs +0 -269
  1120. package/esm2020/lib/filter/shared/time-filter.enum.mjs +0 -13
  1121. package/esm2020/lib/filter/shared/time-filter.interface.mjs +0 -2
  1122. package/esm2020/lib/filter/shared/time-filter.service.mjs +0 -107
  1123. package/esm2020/lib/filter/spatial-filter/spatial-filter-item/index.mjs +0 -2
  1124. package/esm2020/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +0 -1089
  1125. package/esm2020/lib/filter/spatial-filter/spatial-filter-list/index.mjs +0 -2
  1126. package/esm2020/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +0 -207
  1127. package/esm2020/lib/filter/spatial-filter/spatial-filter-type/index.mjs +0 -2
  1128. package/esm2020/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +0 -144
  1129. package/esm2020/lib/filter/time-filter-button/index.mjs +0 -2
  1130. package/esm2020/lib/filter/time-filter-button/time-filter-button.component.mjs +0 -78
  1131. package/esm2020/lib/filter/time-filter-form/index.mjs +0 -2
  1132. package/esm2020/lib/filter/time-filter-form/time-filter-form.component.mjs +0 -734
  1133. package/esm2020/lib/filter/time-filter-item/index.mjs +0 -2
  1134. package/esm2020/lib/filter/time-filter-item/time-filter-item.component.mjs +0 -119
  1135. package/esm2020/lib/filter/time-filter-list/index.mjs +0 -3
  1136. package/esm2020/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +0 -31
  1137. package/esm2020/lib/filter/time-filter-list/time-filter-list.component.mjs +0 -39
  1138. package/esm2020/lib/geo.module.mjs +0 -106
  1139. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +0 -522
  1140. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +0 -189
  1141. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +0 -64
  1142. package/esm2020/lib/geometry/geometry.module.mjs +0 -27
  1143. package/esm2020/lib/geometry/index.mjs +0 -4
  1144. package/esm2020/lib/geometry/shared/controls/draw.mjs +0 -314
  1145. package/esm2020/lib/geometry/shared/controls/index.mjs +0 -4
  1146. package/esm2020/lib/geometry/shared/controls/modify.mjs +0 -521
  1147. package/esm2020/lib/geometry/shared/controls/slice.mjs +0 -177
  1148. package/esm2020/lib/geometry/shared/geometry.errors.mjs +0 -26
  1149. package/esm2020/lib/geometry/shared/geometry.interfaces.mjs +0 -2
  1150. package/esm2020/lib/geometry/shared/geometry.utils.mjs +0 -122
  1151. package/esm2020/lib/geometry/shared/index.mjs +0 -5
  1152. package/esm2020/lib/import-export/export-button/export-button.component.mjs +0 -64
  1153. package/esm2020/lib/import-export/export-button/index.mjs +0 -2
  1154. package/esm2020/lib/import-export/import-export/import-export.component.mjs +0 -1228
  1155. package/esm2020/lib/import-export/import-export/index.mjs +0 -2
  1156. package/esm2020/lib/import-export/import-export.module.mjs +0 -92
  1157. package/esm2020/lib/import-export/index.mjs +0 -4
  1158. package/esm2020/lib/import-export/shared/drop-geo-file.directive.mjs +0 -152
  1159. package/esm2020/lib/import-export/shared/export.errors.mjs +0 -15
  1160. package/esm2020/lib/import-export/shared/export.interface.mjs +0 -2
  1161. package/esm2020/lib/import-export/shared/export.service.mjs +0 -195
  1162. package/esm2020/lib/import-export/shared/export.type.mjs +0 -4
  1163. package/esm2020/lib/import-export/shared/export.utils.mjs +0 -46
  1164. package/esm2020/lib/import-export/shared/import.errors.mjs +0 -39
  1165. package/esm2020/lib/import-export/shared/import.interface.mjs +0 -2
  1166. package/esm2020/lib/import-export/shared/import.service.mjs +0 -215
  1167. package/esm2020/lib/import-export/shared/import.utils.mjs +0 -202
  1168. package/esm2020/lib/import-export/shared/index.mjs +0 -11
  1169. package/esm2020/lib/layer/index.mjs +0 -10
  1170. package/esm2020/lib/layer/layer-item/index.mjs +0 -2
  1171. package/esm2020/lib/layer/layer-item/layer-item.component.mjs +0 -300
  1172. package/esm2020/lib/layer/layer-legend/index.mjs +0 -2
  1173. package/esm2020/lib/layer/layer-legend/layer-legend.component.mjs +0 -388
  1174. package/esm2020/lib/layer/layer-legend-item/index.mjs +0 -2
  1175. package/esm2020/lib/layer/layer-legend-item/layer-legend-item.component.mjs +0 -84
  1176. package/esm2020/lib/layer/layer-legend-list/index.mjs +0 -3
  1177. package/esm2020/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +0 -48
  1178. package/esm2020/lib/layer/layer-legend-list/layer-legend-list.component.mjs +0 -195
  1179. package/esm2020/lib/layer/layer-list/index.mjs +0 -4
  1180. package/esm2020/lib/layer/layer-list/layer-list-binding.directive.mjs +0 -59
  1181. package/esm2020/lib/layer/layer-list/layer-list.component.mjs +0 -1009
  1182. package/esm2020/lib/layer/layer-list/layer-list.enum.mjs +0 -19
  1183. package/esm2020/lib/layer/layer-list-tool/index.mjs +0 -5
  1184. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.component.mjs +0 -165
  1185. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.enum.mjs +0 -7
  1186. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.interface.mjs +0 -2
  1187. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.service.mjs +0 -22
  1188. package/esm2020/lib/layer/layer.module.mjs +0 -180
  1189. package/esm2020/lib/layer/shared/clusterParam.mjs +0 -2
  1190. package/esm2020/lib/layer/shared/index.mjs +0 -5
  1191. package/esm2020/lib/layer/shared/layer.enums.mjs +0 -2
  1192. package/esm2020/lib/layer/shared/layer.service.mjs +0 -237
  1193. package/esm2020/lib/layer/shared/layers/any-layer.interface.mjs +0 -2
  1194. package/esm2020/lib/layer/shared/layers/any-layer.mjs +0 -2
  1195. package/esm2020/lib/layer/shared/layers/image-layer.interface.mjs +0 -2
  1196. package/esm2020/lib/layer/shared/layers/image-layer.mjs +0 -67
  1197. package/esm2020/lib/layer/shared/layers/index.mjs +0 -13
  1198. package/esm2020/lib/layer/shared/layers/layer.interface.mjs +0 -17
  1199. package/esm2020/lib/layer/shared/layers/layer.mjs +0 -166
  1200. package/esm2020/lib/layer/shared/layers/tile-layer.interface.mjs +0 -2
  1201. package/esm2020/lib/layer/shared/layers/tile-layer.mjs +0 -47
  1202. package/esm2020/lib/layer/shared/layers/vector-layer.interface.mjs +0 -2
  1203. package/esm2020/lib/layer/shared/layers/vector-layer.mjs +0 -527
  1204. package/esm2020/lib/layer/shared/layers/vectortile-layer.interface.mjs +0 -2
  1205. package/esm2020/lib/layer/shared/layers/vectortile-layer.mjs +0 -104
  1206. package/esm2020/lib/layer/track-feature-button/index.mjs +0 -2
  1207. package/esm2020/lib/layer/track-feature-button/track-feature-button.component.mjs +0 -59
  1208. package/esm2020/lib/layer/utils/image-watcher.mjs +0 -59
  1209. package/esm2020/lib/layer/utils/index.mjs +0 -6
  1210. package/esm2020/lib/layer/utils/layer.utils.mjs +0 -10
  1211. package/esm2020/lib/layer/utils/outputLegend.mjs +0 -28
  1212. package/esm2020/lib/layer/utils/tile-watcher.mjs +0 -50
  1213. package/esm2020/lib/layer/utils/vector-watcher.mjs +0 -48
  1214. package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.animation.mjs +0 -20
  1215. package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +0 -97
  1216. package/esm2020/lib/map/baselayers-switcher/index.mjs +0 -3
  1217. package/esm2020/lib/map/baselayers-switcher/mini-basemap.component.mjs +0 -142
  1218. package/esm2020/lib/map/geolocate-button/geolocate-button.component.mjs +0 -79
  1219. package/esm2020/lib/map/geolocate-button/index.mjs +0 -2
  1220. package/esm2020/lib/map/home-extent-button/home-extent-button.component.mjs +0 -63
  1221. package/esm2020/lib/map/home-extent-button/index.mjs +0 -2
  1222. package/esm2020/lib/map/index.mjs +0 -14
  1223. package/esm2020/lib/map/info-section/index.mjs +0 -2
  1224. package/esm2020/lib/map/info-section/info-section.component.mjs +0 -30
  1225. package/esm2020/lib/map/map-browser/index.mjs +0 -2
  1226. package/esm2020/lib/map/map-browser/map-browser.component.mjs +0 -66
  1227. package/esm2020/lib/map/map-center/index.mjs +0 -2
  1228. package/esm2020/lib/map/map-center/map-center.component.mjs +0 -50
  1229. package/esm2020/lib/map/map.module.mjs +0 -127
  1230. package/esm2020/lib/map/menu-button/index.mjs +0 -2
  1231. package/esm2020/lib/map/menu-button/menu-button.component.mjs +0 -62
  1232. package/esm2020/lib/map/offline-button/index.mjs +0 -2
  1233. package/esm2020/lib/map/offline-button/offline-button.component.mjs +0 -53
  1234. package/esm2020/lib/map/rotation-button/index.mjs +0 -2
  1235. package/esm2020/lib/map/rotation-button/rotation-button.component.mjs +0 -70
  1236. package/esm2020/lib/map/shared/controllers/controller.mjs +0 -42
  1237. package/esm2020/lib/map/shared/controllers/geolocation.mjs +0 -423
  1238. package/esm2020/lib/map/shared/controllers/index.mjs +0 -4
  1239. package/esm2020/lib/map/shared/controllers/view.mjs +0 -351
  1240. package/esm2020/lib/map/shared/hover-feature.directive.mjs +0 -454
  1241. package/esm2020/lib/map/shared/index.mjs +0 -14
  1242. package/esm2020/lib/map/shared/linkedLayers.utils.mjs +0 -240
  1243. package/esm2020/lib/map/shared/map-pointer-position.directive.mjs +0 -107
  1244. package/esm2020/lib/map/shared/map.enums.mjs +0 -6
  1245. package/esm2020/lib/map/shared/map.interface.mjs +0 -2
  1246. package/esm2020/lib/map/shared/map.mjs +0 -409
  1247. package/esm2020/lib/map/shared/map.service.mjs +0 -29
  1248. package/esm2020/lib/map/shared/map.utils.mjs +0 -463
  1249. package/esm2020/lib/map/shared/mapOffline.directive.mjs +0 -98
  1250. package/esm2020/lib/map/shared/projection.interfaces.mjs +0 -2
  1251. package/esm2020/lib/map/shared/projection.service.mjs +0 -65
  1252. package/esm2020/lib/map/shared/projection.utils.mjs +0 -64
  1253. package/esm2020/lib/map/swipe-control/index.mjs +0 -2
  1254. package/esm2020/lib/map/swipe-control/swipe-control.component.mjs +0 -193
  1255. package/esm2020/lib/map/utils/layer-watcher.mjs +0 -79
  1256. package/esm2020/lib/map/wake-lock-button/index.mjs +0 -2
  1257. package/esm2020/lib/map/wake-lock-button/wake-lock-button.component.mjs +0 -103
  1258. package/esm2020/lib/map/zoom-button/index.mjs +0 -2
  1259. package/esm2020/lib/map/zoom-button/zoom-button.component.mjs +0 -40
  1260. package/esm2020/lib/measure/index.mjs +0 -4
  1261. package/esm2020/lib/measure/measure.module.mjs +0 -20
  1262. package/esm2020/lib/measure/measurer/measure-format.pipe.mjs +0 -37
  1263. package/esm2020/lib/measure/measurer/measurer-dialog.component.mjs +0 -180
  1264. package/esm2020/lib/measure/measurer/measurer-item.component.mjs +0 -140
  1265. package/esm2020/lib/measure/measurer/measurer.component.mjs +0 -1042
  1266. package/esm2020/lib/measure/measurer/measurer.module.mjs +0 -94
  1267. package/esm2020/lib/measure/shared/index.mjs +0 -4
  1268. package/esm2020/lib/measure/shared/measure.enum.mjs +0 -37
  1269. package/esm2020/lib/measure/shared/measure.interfaces.mjs +0 -2
  1270. package/esm2020/lib/measure/shared/measure.utils.mjs +0 -489
  1271. package/esm2020/lib/metadata/index.mjs +0 -3
  1272. package/esm2020/lib/metadata/metadata-button/index.mjs +0 -2
  1273. package/esm2020/lib/metadata/metadata-button/metadata-button.component.mjs +0 -134
  1274. package/esm2020/lib/metadata/metadata.module.mjs +0 -55
  1275. package/esm2020/lib/metadata/shared/index.mjs +0 -3
  1276. package/esm2020/lib/metadata/shared/metadata.interface.mjs +0 -2
  1277. package/esm2020/lib/metadata/shared/metadata.service.mjs +0 -19
  1278. package/esm2020/lib/offline/geoDB/configFileToGeoDB.service.mjs +0 -105
  1279. package/esm2020/lib/offline/geoDB/geoDB.enums.mjs +0 -6
  1280. package/esm2020/lib/offline/geoDB/geoDB.interface.mjs +0 -2
  1281. package/esm2020/lib/offline/geoDB/geoDB.service.mjs +0 -167
  1282. package/esm2020/lib/offline/geoDB/index.mjs +0 -5
  1283. package/esm2020/lib/offline/index.mjs +0 -4
  1284. package/esm2020/lib/offline/layerDB/index.mjs +0 -3
  1285. package/esm2020/lib/offline/layerDB/layerDB.interface.mjs +0 -2
  1286. package/esm2020/lib/offline/layerDB/layerDB.service.mjs +0 -76
  1287. package/esm2020/lib/offline/shared/geo-network.service.mjs +0 -66
  1288. package/esm2020/lib/offline/shared/index.mjs +0 -2
  1289. package/esm2020/lib/overlay/index.mjs +0 -2
  1290. package/esm2020/lib/overlay/overlay.module.mjs +0 -23
  1291. package/esm2020/lib/overlay/shared/index.mjs +0 -6
  1292. package/esm2020/lib/overlay/shared/overlay.directive.mjs +0 -33
  1293. package/esm2020/lib/overlay/shared/overlay.enum.mjs +0 -8
  1294. package/esm2020/lib/overlay/shared/overlay.mjs +0 -130
  1295. package/esm2020/lib/overlay/shared/overlay.service.mjs +0 -27
  1296. package/esm2020/lib/overlay/shared/overlay.utils.mjs +0 -17
  1297. package/esm2020/lib/print/index.mjs +0 -4
  1298. package/esm2020/lib/print/print/print.component.mjs +0 -112
  1299. package/esm2020/lib/print/print-form/index.mjs +0 -2
  1300. package/esm2020/lib/print/print-form/print-form.component.mjs +0 -514
  1301. package/esm2020/lib/print/print.module.mjs +0 -65
  1302. package/esm2020/lib/print/shared/geopdf.mjs +0 -58
  1303. package/esm2020/lib/print/shared/index.mjs +0 -5
  1304. package/esm2020/lib/print/shared/print.interface.mjs +0 -2
  1305. package/esm2020/lib/print/shared/print.service.mjs +0 -984
  1306. package/esm2020/lib/print/shared/print.type.mjs +0 -30
  1307. package/esm2020/lib/query/index.mjs +0 -2
  1308. package/esm2020/lib/query/query.module.mjs +0 -29
  1309. package/esm2020/lib/query/shared/index.mjs +0 -7
  1310. package/esm2020/lib/query/shared/query-search-source.mjs +0 -35
  1311. package/esm2020/lib/query/shared/query-search-source.providers.mjs +0 -22
  1312. package/esm2020/lib/query/shared/query.directive.mjs +0 -261
  1313. package/esm2020/lib/query/shared/query.enums.mjs +0 -30
  1314. package/esm2020/lib/query/shared/query.interfaces.mjs +0 -2
  1315. package/esm2020/lib/query/shared/query.service.mjs +0 -731
  1316. package/esm2020/lib/query/shared/query.utils.mjs +0 -37
  1317. package/esm2020/lib/search/index.mjs +0 -12
  1318. package/esm2020/lib/search/search-bar/search-bar.component.mjs +0 -512
  1319. package/esm2020/lib/search/search-bar/search-bar.module.mjs +0 -75
  1320. package/esm2020/lib/search/search-bar/search-url-param.directive.mjs +0 -35
  1321. package/esm2020/lib/search/search-results/save-feature-dialog.component.mjs +0 -118
  1322. package/esm2020/lib/search/search-results/search-results-add-button.component.mjs +0 -429
  1323. package/esm2020/lib/search/search-results/search-results-item.component.mjs +0 -147
  1324. package/esm2020/lib/search/search-results/search-results.component.mjs +0 -454
  1325. package/esm2020/lib/search/search-results/search-results.module.mjs +0 -108
  1326. package/esm2020/lib/search/search-selector/search-selector.component.mjs +0 -123
  1327. package/esm2020/lib/search/search-selector/search-selector.module.mjs +0 -56
  1328. package/esm2020/lib/search/search-settings/search-settings.component.mjs +0 -440
  1329. package/esm2020/lib/search/search-settings/search-settings.module.mjs +0 -60
  1330. package/esm2020/lib/search/search.module.mjs +0 -67
  1331. package/esm2020/lib/search/shared/index.mjs +0 -9
  1332. package/esm2020/lib/search/shared/search-pointer-summary.directive.mjs +0 -295
  1333. package/esm2020/lib/search/shared/search-source-service.providers.mjs +0 -20
  1334. package/esm2020/lib/search/shared/search-source.service.mjs +0 -55
  1335. package/esm2020/lib/search/shared/search.enums.mjs +0 -4
  1336. package/esm2020/lib/search/shared/search.interfaces.mjs +0 -2
  1337. package/esm2020/lib/search/shared/search.service.mjs +0 -121
  1338. package/esm2020/lib/search/shared/search.utils.mjs +0 -91
  1339. package/esm2020/lib/search/shared/sources/cadastre.mjs +0 -126
  1340. package/esm2020/lib/search/shared/sources/cadastre.providers.mjs +0 -23
  1341. package/esm2020/lib/search/shared/sources/coordinates.interfaces.mjs +0 -2
  1342. package/esm2020/lib/search/shared/sources/coordinates.mjs +0 -153
  1343. package/esm2020/lib/search/shared/sources/coordinates.providers.mjs +0 -40
  1344. package/esm2020/lib/search/shared/sources/icherche.interfaces.mjs +0 -2
  1345. package/esm2020/lib/search/shared/sources/icherche.mjs +0 -767
  1346. package/esm2020/lib/search/shared/sources/icherche.providers.mjs +0 -66
  1347. package/esm2020/lib/search/shared/sources/ilayer.interfaces.mjs +0 -2
  1348. package/esm2020/lib/search/shared/sources/ilayer.mjs +0 -320
  1349. package/esm2020/lib/search/shared/sources/ilayer.providers.mjs +0 -40
  1350. package/esm2020/lib/search/shared/sources/index.mjs +0 -23
  1351. package/esm2020/lib/search/shared/sources/nominatim.interfaces.mjs +0 -2
  1352. package/esm2020/lib/search/shared/sources/nominatim.mjs +0 -253
  1353. package/esm2020/lib/search/shared/sources/nominatim.providers.mjs +0 -23
  1354. package/esm2020/lib/search/shared/sources/source.interfaces.mjs +0 -2
  1355. package/esm2020/lib/search/shared/sources/source.mjs +0 -209
  1356. package/esm2020/lib/search/shared/sources/storedqueries.interfaces.mjs +0 -2
  1357. package/esm2020/lib/search/shared/sources/storedqueries.mjs +0 -425
  1358. package/esm2020/lib/search/shared/sources/storedqueries.providers.mjs +0 -41
  1359. package/esm2020/lib/search/shared/sources/workspace.interfaces.mjs +0 -2
  1360. package/esm2020/lib/search/shared/sources/workspace.mjs +0 -186
  1361. package/esm2020/lib/search/shared/sources/workspace.providers.mjs +0 -26
  1362. package/esm2020/lib/style/index.mjs +0 -5
  1363. package/esm2020/lib/style/shared/datasource/esri-style-generator.mjs +0 -357
  1364. package/esm2020/lib/style/shared/datasource/index.mjs +0 -2
  1365. package/esm2020/lib/style/shared/feature/feature-style.mjs +0 -141
  1366. package/esm2020/lib/style/shared/feature/index.mjs +0 -2
  1367. package/esm2020/lib/style/shared/font.enum.mjs +0 -17
  1368. package/esm2020/lib/style/shared/index.mjs +0 -5
  1369. package/esm2020/lib/style/shared/overlay/index.mjs +0 -3
  1370. package/esm2020/lib/style/shared/overlay/overlay-marker-style.utils.mjs +0 -43
  1371. package/esm2020/lib/style/shared/overlay/overlay-style.utils.mjs +0 -88
  1372. package/esm2020/lib/style/shared/vector/commonVectorStyle.mjs +0 -75
  1373. package/esm2020/lib/style/shared/vector/conversion.utils.mjs +0 -27
  1374. package/esm2020/lib/style/shared/vector/index.mjs +0 -4
  1375. package/esm2020/lib/style/shared/vector/vector-style.interface.mjs +0 -2
  1376. package/esm2020/lib/style/style-list/index.mjs +0 -5
  1377. package/esm2020/lib/style/style-list/style-list.interface.mjs +0 -2
  1378. package/esm2020/lib/style/style-list/style-list.module.mjs +0 -23
  1379. package/esm2020/lib/style/style-list/style-list.provider.mjs +0 -21
  1380. package/esm2020/lib/style/style-list/style-list.service.mjs +0 -51
  1381. package/esm2020/lib/style/style-modal/drawing/index.mjs +0 -2
  1382. package/esm2020/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +0 -288
  1383. package/esm2020/lib/style/style-modal/index.mjs +0 -5
  1384. package/esm2020/lib/style/style-modal/layer/index.mjs +0 -2
  1385. package/esm2020/lib/style/style-modal/layer/style-modal-layer.component.mjs +0 -187
  1386. package/esm2020/lib/style/style-modal/layer-button/index.mjs +0 -2
  1387. package/esm2020/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +0 -44
  1388. package/esm2020/lib/style/style-modal/shared/index.mjs +0 -2
  1389. package/esm2020/lib/style/style-modal/shared/style-modal.interface.mjs +0 -2
  1390. package/esm2020/lib/style/style-service/draw-style.service.mjs +0 -187
  1391. package/esm2020/lib/style/style-service/index.mjs +0 -3
  1392. package/esm2020/lib/style/style-service/style.service.mjs +0 -356
  1393. package/esm2020/lib/style/style.module.mjs +0 -74
  1394. package/esm2020/lib/toast/index.mjs +0 -2
  1395. package/esm2020/lib/toast/toast.component.mjs +0 -113
  1396. package/esm2020/lib/toast/toast.module.mjs +0 -45
  1397. package/esm2020/lib/utils/googleLinks.mjs +0 -13
  1398. package/esm2020/lib/utils/id-generator.mjs +0 -110
  1399. package/esm2020/lib/utils/index.mjs +0 -4
  1400. package/esm2020/lib/utils/osmLinks.mjs +0 -10
  1401. package/esm2020/lib/wkt/index.mjs +0 -2
  1402. package/esm2020/lib/wkt/shared/index.mjs +0 -2
  1403. package/esm2020/lib/wkt/shared/wkt.service.mjs +0 -239
  1404. package/esm2020/lib/wkt/wkt.module.mjs +0 -22
  1405. package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +0 -48
  1406. package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +0 -36
  1407. package/esm2020/lib/workspace/confirmation-popup/index.mjs +0 -3
  1408. package/esm2020/lib/workspace/index.mjs +0 -8
  1409. package/esm2020/lib/workspace/shared/edition-workspace.mjs +0 -280
  1410. package/esm2020/lib/workspace/shared/edition-workspace.service.mjs +0 -642
  1411. package/esm2020/lib/workspace/shared/feature-workspace.mjs +0 -35
  1412. package/esm2020/lib/workspace/shared/feature-workspace.service.mjs +0 -157
  1413. package/esm2020/lib/workspace/shared/index.mjs +0 -8
  1414. package/esm2020/lib/workspace/shared/wfs-workspace.mjs +0 -35
  1415. package/esm2020/lib/workspace/shared/wfs-workspace.service.mjs +0 -150
  1416. package/esm2020/lib/workspace/shared/wms-workspace.service.mjs +0 -260
  1417. package/esm2020/lib/workspace/shared/workspace.utils.mjs +0 -24
  1418. package/esm2020/lib/workspace/widgets/index.mjs +0 -4
  1419. package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +0 -47
  1420. package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +0 -36
  1421. package/esm2020/lib/workspace/widgets/widgets.mjs +0 -15
  1422. package/esm2020/lib/workspace/workspace-selector/workspace-selector.directive.mjs +0 -133
  1423. package/esm2020/lib/workspace/workspace-selector/workspace-selector.module.mjs +0 -28
  1424. package/esm2020/lib/workspace/workspace-updator/workspace-updator.directive.mjs +0 -113
  1425. package/esm2020/lib/workspace/workspace-updator/workspace-updator.module.mjs +0 -28
  1426. package/esm2020/lib/workspace/workspace.module.mjs +0 -62
  1427. package/esm2020/public_api.mjs +0 -57
  1428. package/fesm2015/igo2-geo.mjs +0 -46894
  1429. package/fesm2015/igo2-geo.mjs.map +0 -1
  1430. package/fesm2020/igo2-geo.mjs +0 -44993
  1431. package/fesm2020/igo2-geo.mjs.map +0 -1
  1432. package/ngcc.config.js +0 -3
  1433. package/style/geo.theming.scss +0 -12
@@ -0,0 +1,796 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Injectable, Inject, Injector } from '@angular/core';
3
+ import { HttpClient, HttpParams } from '@angular/common/http';
4
+ import { Observable, of, BehaviorSubject } from 'rxjs';
5
+ import { map, catchError } from 'rxjs/operators';
6
+ import { AuthService } from '@igo2/auth';
7
+ import { LanguageService, StorageService } from '@igo2/core';
8
+ import { ObjectUtils, customCacheHasher } from '@igo2/utils';
9
+ import pointOnFeature from '@turf/point-on-feature';
10
+ import { FEATURE } from '../../../feature';
11
+ import { GoogleLinks } from './../../../utils/googleLinks';
12
+ import { SearchSource } from './source';
13
+ import { computeTermSimilarity } from '../search.utils';
14
+ import { Cacheable } from 'ts-cacheable';
15
+ import * as i0 from "@angular/core";
16
+ import * as i1 from "@igo2/core";
17
+ import * as i2 from "@angular/common/http";
18
+ export class IChercheSearchResultFormatter {
19
+ languageService;
20
+ constructor(languageService) {
21
+ this.languageService = languageService;
22
+ }
23
+ formatResult(result) {
24
+ return result;
25
+ }
26
+ static ɵfac = function IChercheSearchResultFormatter_Factory(t) { return new (t || IChercheSearchResultFormatter)(i0.ɵɵinject(i1.LanguageService)); };
27
+ static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: IChercheSearchResultFormatter, factory: IChercheSearchResultFormatter.ɵfac });
28
+ }
29
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(IChercheSearchResultFormatter, [{
30
+ type: Injectable
31
+ }], function () { return [{ type: i1.LanguageService }]; }, null); })();
32
+ // Fix the "+" is replaced with space " " in a query string
33
+ // https://github.com/angular/angular/issues/11058
34
+ export class IgoHttpParameterCodec {
35
+ encodeKey(key) {
36
+ return encodeURIComponent(key);
37
+ }
38
+ encodeValue(value) {
39
+ return encodeURIComponent(value);
40
+ }
41
+ decodeKey(key) {
42
+ return decodeURIComponent(key);
43
+ }
44
+ decodeValue(value) {
45
+ return decodeURIComponent(value);
46
+ }
47
+ }
48
+ /**
49
+ * ICherche search source
50
+ */
51
+ export class IChercheSearchSource extends SearchSource {
52
+ http;
53
+ languageService;
54
+ formatter;
55
+ static id = 'icherche';
56
+ static type = FEATURE;
57
+ static propertiesBlacklist = [];
58
+ title$ = new BehaviorSubject('');
59
+ hashtagsLieuxToKeep = [];
60
+ get title() {
61
+ return this.title$.getValue();
62
+ }
63
+ constructor(http, languageService, storageService, options, formatter, injector) {
64
+ super(options, storageService);
65
+ this.http = http;
66
+ this.languageService = languageService;
67
+ this.formatter = formatter;
68
+ const authService = injector.get(AuthService);
69
+ if (this.settings.length) {
70
+ if (!authService) {
71
+ this.getAllowedTypes();
72
+ }
73
+ else {
74
+ authService.authenticate$.subscribe(() => {
75
+ this.getAllowedTypes();
76
+ });
77
+ }
78
+ }
79
+ this.languageService.language$.subscribe(() => {
80
+ this.title$.next(this.languageService.translate.instant(this.options.title));
81
+ });
82
+ }
83
+ getId() {
84
+ return IChercheSearchSource.id;
85
+ }
86
+ getType() {
87
+ return IChercheSearchSource.type;
88
+ }
89
+ getDefaultOptions() {
90
+ const limit = this.options.params && this.options.params.limit
91
+ ? Number(this.options.params.limit)
92
+ : undefined;
93
+ const ecmax = this.options.params && this.options.params.ecmax
94
+ ? Number(this.options.params.ecmax)
95
+ : undefined;
96
+ const types = this.options.params?.type
97
+ ? this.options.params.type.replace(/\s/g, '').toLowerCase().split(',')
98
+ : [
99
+ 'adresses',
100
+ 'codes-postaux',
101
+ 'routes',
102
+ 'intersections',
103
+ 'municipalites',
104
+ 'mrc',
105
+ 'regadmin',
106
+ 'lieux'
107
+ ];
108
+ const showAdvancedParams = this.options.showAdvancedSettings ?? true;
109
+ return {
110
+ title: 'igo.geo.search.icherche.name',
111
+ searchUrl: 'https://geoegl.msp.gouv.qc.ca/apis/icherche',
112
+ settings: [
113
+ {
114
+ type: 'checkbox',
115
+ title: 'results type',
116
+ name: 'type',
117
+ values: [
118
+ {
119
+ title: 'igo.geo.search.icherche.type.address',
120
+ value: 'adresses',
121
+ enabled: types.indexOf('adresses') !== -1,
122
+ hashtags: ['adresse']
123
+ },
124
+ {
125
+ title: 'igo.geo.search.icherche.type.oldAddress',
126
+ value: 'anciennes-adresses',
127
+ enabled: types.indexOf('anciennes-adresses') !== -1,
128
+ hashtags: ['anciennes-adresses']
129
+ },
130
+ {
131
+ title: 'igo.geo.search.icherche.type.oldCity',
132
+ value: 'anciennes-municipalites',
133
+ enabled: types.indexOf('anciennes-municipalites') !== -1,
134
+ hashtags: ['anciennes-municipalites']
135
+ },
136
+ {
137
+ title: 'igo.geo.search.icherche.type.cn',
138
+ value: 'bornes-cn',
139
+ enabled: types.indexOf('bornes-cn') !== -1,
140
+ hashtags: ['borne', 'bornes', 'cn']
141
+ },
142
+ {
143
+ title: 'igo.geo.search.icherche.type.sumi',
144
+ value: 'bornes-sumi',
145
+ enabled: types.indexOf('bornes-sumi') !== -1,
146
+ hashtags: ['borne', 'bornes', 'sumi']
147
+ },
148
+ {
149
+ title: 'igo.geo.search.icherche.type.cadastre',
150
+ value: 'cadastre',
151
+ enabled: types.indexOf('cadastre') !== -1,
152
+ hashtags: ['cadastre']
153
+ },
154
+ {
155
+ title: 'igo.geo.search.icherche.type.postalCode',
156
+ value: 'codes-postaux',
157
+ enabled: types.indexOf('codes-postaux') !== -1,
158
+ hashtags: ['code-postal']
159
+ },
160
+ {
161
+ title: 'igo.geo.search.icherche.type.entreprise',
162
+ value: 'entreprises',
163
+ enabled: types.indexOf('entreprises') !== -1,
164
+ available: false,
165
+ hashtags: ['entreprise']
166
+ },
167
+ {
168
+ title: 'igo.geo.search.icherche.type.cycleStop',
169
+ value: 'haltes_cyclables',
170
+ enabled: types.indexOf('haltes_cyclables') !== -1,
171
+ hashtags: ['haltevelo', 'haltes_cyclables']
172
+ },
173
+ {
174
+ title: 'igo.geo.search.icherche.type.restArea',
175
+ value: 'haltes_routieres',
176
+ enabled: types.indexOf('haltes_routieres') !== -1,
177
+ hashtags: ['halteroute', 'haltes_routieres']
178
+ },
179
+ {
180
+ title: 'igo.geo.search.icherche.type.hq',
181
+ value: 'hq',
182
+ enabled: types.indexOf('hq') !== -1,
183
+ hashtags: ['hq']
184
+ },
185
+ {
186
+ title: 'igo.geo.search.icherche.type.intersection',
187
+ value: 'intersections',
188
+ enabled: types.indexOf('intersections') !== -1,
189
+ hashtags: ['intersection', '+']
190
+ },
191
+ {
192
+ title: 'igo.geo.search.icherche.type.place',
193
+ value: 'lieux',
194
+ enabled: types.indexOf('lieux') !== -1,
195
+ hashtags: ['lieu']
196
+ },
197
+ {
198
+ title: 'igo.geo.search.icherche.type.mrc',
199
+ value: 'mrc',
200
+ enabled: types.indexOf('mrc') !== -1,
201
+ hashtags: ['mrc']
202
+ },
203
+ {
204
+ title: 'igo.geo.search.icherche.type.city',
205
+ value: 'municipalites',
206
+ enabled: types.indexOf('municipalites') !== -1,
207
+ hashtags: ['municipalité', 'mun']
208
+ },
209
+ {
210
+ title: 'igo.geo.search.icherche.type.regadmin',
211
+ value: 'regadmin',
212
+ enabled: types.indexOf('regadmin') !== -1,
213
+ hashtags: ['région-administrative', 'regadmin']
214
+ },
215
+ {
216
+ title: 'igo.geo.search.icherche.type.gcc',
217
+ value: 'bornes-gcc',
218
+ enabled: types.indexOf('bornes-gcc') !== -1,
219
+ hashtags: ['borne', 'bornes', 'repère', 'gcc', 'ccg']
220
+ },
221
+ {
222
+ title: 'igo.geo.search.icherche.type.km',
223
+ value: 'bornes-km',
224
+ enabled: types.indexOf('bornes-km') !== -1,
225
+ hashtags: ['borne', 'bornes', 'repère', 'km']
226
+ },
227
+ {
228
+ title: 'igo.geo.search.icherche.type.road',
229
+ value: 'routes',
230
+ enabled: types.indexOf('routes') !== -1,
231
+ hashtags: ['route']
232
+ },
233
+ {
234
+ title: 'igo.geo.search.icherche.type.exit',
235
+ value: 'sorties-autoroute',
236
+ enabled: types.indexOf('sorties-autoroute') !== -1,
237
+ hashtags: ['sortie', 'sorties', 'exit']
238
+ },
239
+ {
240
+ title: 'igo.geo.search.icherche.type.cultpatri',
241
+ value: 'culture',
242
+ enabled: types.indexOf('culture') !== -1,
243
+ hashtags: ['grille', 'culture']
244
+ }
245
+ ]
246
+ },
247
+ {
248
+ type: 'radiobutton',
249
+ title: 'results limit',
250
+ name: 'limit',
251
+ values: [
252
+ {
253
+ title: '1',
254
+ value: 1,
255
+ enabled: limit === 1
256
+ },
257
+ {
258
+ title: '5',
259
+ value: 5,
260
+ enabled: limit === 5 || !limit
261
+ },
262
+ {
263
+ title: '10',
264
+ value: 10,
265
+ enabled: limit === 10
266
+ },
267
+ {
268
+ title: '25',
269
+ value: 25,
270
+ enabled: limit === 25
271
+ },
272
+ {
273
+ title: '50',
274
+ value: 50,
275
+ enabled: limit === 50
276
+ }
277
+ ]
278
+ },
279
+ showAdvancedParams && {
280
+ type: 'radiobutton',
281
+ title: 'ecmax',
282
+ name: 'ecmax',
283
+ values: [
284
+ {
285
+ title: '10 %',
286
+ value: 10,
287
+ enabled: ecmax === 10
288
+ },
289
+ {
290
+ title: '30 %',
291
+ value: 30,
292
+ enabled: ecmax === 30 || !ecmax
293
+ },
294
+ {
295
+ title: '50 %',
296
+ value: 50,
297
+ enabled: ecmax === 50
298
+ },
299
+ {
300
+ title: '75 %',
301
+ value: 75,
302
+ enabled: ecmax === 75
303
+ },
304
+ {
305
+ title: '100 %',
306
+ value: 100,
307
+ enabled: ecmax === 100
308
+ }
309
+ ]
310
+ },
311
+ {
312
+ type: 'radiobutton',
313
+ title: 'restrictExtent',
314
+ name: 'loc',
315
+ values: [
316
+ {
317
+ title: 'igo.geo.search.icherche.restrictExtent.map',
318
+ value: 'true',
319
+ enabled: false
320
+ },
321
+ {
322
+ title: 'igo.geo.search.icherche.restrictExtent.quebec',
323
+ value: 'false',
324
+ enabled: true
325
+ }
326
+ ]
327
+ }
328
+ ].filter(Boolean)
329
+ };
330
+ }
331
+ /**
332
+ * Search a location by name or keyword
333
+ * @param term Location name or keyword
334
+ * @returns Observable of <SearchResult<Feature>[]
335
+ */
336
+ search(term, options) {
337
+ const params = this.computeRequestParams(term, options || {});
338
+ if (!params.get('type').length) {
339
+ return of([]);
340
+ }
341
+ this.options.params.page = params.get('page') || '1';
342
+ return this.getSearch(term, params);
343
+ }
344
+ getSearch(term, params) {
345
+ return this.http.get(`${this.searchUrl}/geocode`, { params }).pipe(map((response) => this.extractResults(response, term)), catchError((err) => {
346
+ err.error.toDisplay = true;
347
+ err.error.title = this.languageService.translate.instant(this.getDefaultOptions().title);
348
+ throw err;
349
+ }));
350
+ }
351
+ getAllowedTypes() {
352
+ return this.http
353
+ .get(`${this.searchUrl}/types`)
354
+ .subscribe((types) => {
355
+ const typeSetting = this.settings.find((s) => s.name === 'type');
356
+ typeSetting.values.forEach((v) => {
357
+ const regex = new RegExp(`^${v.value}(\\.|$)`);
358
+ const typesMatched = types.filter((value) => regex.test(value));
359
+ v.available = typesMatched.length > 0;
360
+ if (v.value === 'lieux') {
361
+ this.hashtagsLieuxToKeep = [
362
+ ...new Set(typesMatched
363
+ .map((t) => t.split('.'))
364
+ .reduce((a, b) => a.concat(b))
365
+ .filter((t) => t !== 'lieux'))
366
+ ];
367
+ }
368
+ });
369
+ this.setParamFromSetting(typeSetting, false);
370
+ });
371
+ }
372
+ computeRequestParams(term, options) {
373
+ const queryParams = Object.assign({
374
+ geometry: true,
375
+ bbox: true,
376
+ icon: true,
377
+ type: 'adresses,codes-postaux,municipalites,mrc,regadmin,lieux,entreprises,bornes-sumi'
378
+ }, this.params, this.computeOptionsParam(term, options || {}).params, {
379
+ q: this.computeTerm(term),
380
+ page: options.page
381
+ });
382
+ if (queryParams.loc === 'true') {
383
+ const [xMin, yMin, xMax, yMax] = options.extent;
384
+ queryParams.loc = `${xMin},${yMin};${xMax},${yMin};${xMax},${yMax};${xMin},${yMax};${xMin},${yMin}`;
385
+ }
386
+ else if (queryParams.loc === 'false') {
387
+ delete queryParams.loc;
388
+ }
389
+ if (/#[A-Za-z]+/.test(queryParams.q)) {
390
+ queryParams.type = 'lieux';
391
+ }
392
+ return new HttpParams({
393
+ fromObject: ObjectUtils.removeUndefined(queryParams),
394
+ encoder: new IgoHttpParameterCodec()
395
+ });
396
+ }
397
+ extractResults(response, term) {
398
+ return response.features.map((data) => {
399
+ return this.formatter.formatResult(this.dataToResult(data, term, response));
400
+ });
401
+ }
402
+ dataToResult(data, term, response) {
403
+ const properties = this.computeProperties(data);
404
+ const id = [this.getId(), properties.type, properties.code].join('.');
405
+ const titleHtml = data.highlight.title || data.properties.nom;
406
+ const subtitleHtml = data.highlight.title2
407
+ ? ' <small> ' + data.highlight.title2 + '</small>'
408
+ : '';
409
+ const subtitleHtml2 = data.highlight.title3
410
+ ? '<br><small> ' + data.highlight.title3 + '</small>'
411
+ : '';
412
+ return {
413
+ source: this,
414
+ data: {
415
+ type: FEATURE,
416
+ projection: 'EPSG:4326',
417
+ geometry: data.geometry,
418
+ extent: data.bbox,
419
+ properties,
420
+ meta: {
421
+ id,
422
+ title: data.properties.nom
423
+ }
424
+ },
425
+ meta: {
426
+ dataType: FEATURE,
427
+ id,
428
+ title: data.properties.nom,
429
+ titleHtml: titleHtml + subtitleHtml + subtitleHtml2,
430
+ icon: data.icon || 'map-marker',
431
+ score: data.score || computeTermSimilarity(term.trim(), data.properties.nom),
432
+ nextPage: response.features.length % +this.options.params.limit === 0 &&
433
+ +this.options.params.page < 10
434
+ }
435
+ };
436
+ }
437
+ computeProperties(data) {
438
+ const properties = ObjectUtils.removeKeys(data.properties, IChercheSearchSource.propertiesBlacklist);
439
+ if (!data.geometry) {
440
+ return Object.assign({ type: data.index }, properties);
441
+ }
442
+ const googleLinksProperties = {
443
+ GoogleMaps: ''
444
+ };
445
+ let googleMaps;
446
+ if (data.geometry.type === 'Point') {
447
+ googleMaps = GoogleLinks.getGoogleMapsCoordLink(data.geometry.coordinates[0], data.geometry.coordinates[1]);
448
+ }
449
+ else {
450
+ const point = pointOnFeature(data.geometry);
451
+ googleMaps = GoogleLinks.getGoogleMapsCoordLink(point.geometry.coordinates[0], point.geometry.coordinates[1]);
452
+ }
453
+ let googleMapsNom;
454
+ if (data.index === 'routes') {
455
+ googleMapsNom = GoogleLinks.getGoogleMapsNameLink(data.properties.nom + ', ' + data.properties.municipalite);
456
+ }
457
+ else if (data.index === 'municipalites') {
458
+ googleMapsNom = GoogleLinks.getGoogleMapsNameLink(data.properties.nom + ', ' + 'ville');
459
+ }
460
+ else if (data.index === 'mrc') {
461
+ googleMapsNom = GoogleLinks.getGoogleMapsNameLink('mrc+' + data.properties.nom);
462
+ }
463
+ else if (data.index === 'regadmin') {
464
+ googleMapsNom = GoogleLinks.getGoogleMapsNameLink(data.properties.nom + ',+QC');
465
+ }
466
+ else {
467
+ googleMapsNom = GoogleLinks.getGoogleMapsNameLink(data.properties.nom || data.highlight.title);
468
+ }
469
+ googleLinksProperties.GoogleMaps =
470
+ '<a href=' +
471
+ googleMaps +
472
+ ' target="_blank">' +
473
+ this.languageService.translate.instant('igo.geo.searchByCoord') +
474
+ '</a> <br /> <a href=' +
475
+ googleMapsNom +
476
+ ' target="_blank">' +
477
+ this.languageService.translate.instant('igo.geo.searchByName') +
478
+ '</a>';
479
+ if (data.geometry.type === 'Point') {
480
+ googleLinksProperties.GoogleStreetView =
481
+ GoogleLinks.getGoogleStreetViewLink(data.geometry.coordinates[0], data.geometry.coordinates[1]);
482
+ }
483
+ const routing = {
484
+ Route: '<span class="routing"> <u>' +
485
+ this.languageService.translate.instant('igo.geo.seeRouting') +
486
+ '</u> </span>'
487
+ };
488
+ return Object.assign({ type: data.index }, properties, googleLinksProperties, routing);
489
+ }
490
+ /**
491
+ * Remove hashtag from query
492
+ * @param term Query with hashtag
493
+ */
494
+ computeTerm(term) {
495
+ // Keep hashtags for "lieux"
496
+ const hashtags = term.match(/(#[A-Za-z]+)/g) || [];
497
+ let keep = false;
498
+ keep = hashtags.some((hashtag) => {
499
+ const hashtagKey = hashtag.substring(1);
500
+ return this.hashtagsLieuxToKeep.some((h) => h
501
+ .toLowerCase()
502
+ .normalize('NFD')
503
+ .replace(/[\u0300-\u036f]/g, '') ===
504
+ hashtagKey
505
+ .toLowerCase()
506
+ .normalize('NFD')
507
+ .replace(/[\u0300-\u036f]/g, ''));
508
+ });
509
+ if (!keep) {
510
+ term = term.replace(/(#[A-Za-z]+)/g, '');
511
+ }
512
+ return term.replace(/[^\wÀ-ÿ !\-\+\(\)\.\/½¼¾,'#]+/g, '');
513
+ }
514
+ /**
515
+ * Add hashtag to param if valid
516
+ * @param term Query with hashtag
517
+ * @param options TextSearchOptions
518
+ */
519
+ computeOptionsParam(term, options) {
520
+ const hashtags = super.getHashtagsValid(term, 'type');
521
+ if (hashtags) {
522
+ options.params = Object.assign(options.params || {}, {
523
+ type: hashtags.join(',')
524
+ });
525
+ }
526
+ return options;
527
+ }
528
+ static ɵfac = function IChercheSearchSource_Factory(t) { return new (t || IChercheSearchSource)(i0.ɵɵinject(i2.HttpClient), i0.ɵɵinject(i1.LanguageService), i0.ɵɵinject(i1.StorageService), i0.ɵɵinject('options'), i0.ɵɵinject(IChercheSearchResultFormatter), i0.ɵɵinject(i0.Injector)); };
529
+ static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: IChercheSearchSource, factory: IChercheSearchSource.ɵfac });
530
+ }
531
+ __decorate([
532
+ Cacheable({
533
+ maxCacheCount: 20,
534
+ cacheHasher: customCacheHasher
535
+ }),
536
+ __metadata("design:type", Function),
537
+ __metadata("design:paramtypes", [String, HttpParams]),
538
+ __metadata("design:returntype", Observable)
539
+ ], IChercheSearchSource.prototype, "getSearch", null);
540
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(IChercheSearchSource, [{
541
+ type: Injectable
542
+ }], function () { return [{ type: i2.HttpClient }, { type: i1.LanguageService }, { type: i1.StorageService }, { type: undefined, decorators: [{
543
+ type: Inject,
544
+ args: ['options']
545
+ }] }, { type: IChercheSearchResultFormatter, decorators: [{
546
+ type: Inject,
547
+ args: [IChercheSearchResultFormatter]
548
+ }] }, { type: i0.Injector }]; }, { getSearch: [] }); })();
549
+ /**
550
+ * IChercheReverse search source
551
+ */
552
+ export class IChercheReverseSearchSource extends SearchSource {
553
+ http;
554
+ languageService;
555
+ static id = 'icherchereverse';
556
+ static type = FEATURE;
557
+ static propertiesBlacklist = [];
558
+ title$ = new BehaviorSubject('');
559
+ get title() {
560
+ return this.title$.getValue();
561
+ }
562
+ constructor(http, languageService, storageService, options, injector) {
563
+ super(options, storageService);
564
+ this.http = http;
565
+ this.languageService = languageService;
566
+ this.languageService.language$.subscribe(() => {
567
+ this.title$.next(this.languageService.translate.instant(this.options.title));
568
+ });
569
+ const authService = injector.get(AuthService);
570
+ if (this.settings.length) {
571
+ if (!authService) {
572
+ this.getAllowedTypes();
573
+ }
574
+ else {
575
+ authService.authenticate$.subscribe(() => {
576
+ this.getAllowedTypes();
577
+ });
578
+ }
579
+ }
580
+ }
581
+ getId() {
582
+ return IChercheReverseSearchSource.id;
583
+ }
584
+ getType() {
585
+ return IChercheReverseSearchSource.type;
586
+ }
587
+ getDefaultOptions() {
588
+ const types = this.options.params && this.options.params.type
589
+ ? this.options.params.type.replace(/\s/g, '').toLowerCase().split(',')
590
+ : ['adresses', 'municipalites', 'mrc', 'regadmin'];
591
+ return {
592
+ title: 'igo.geo.search.ichercheReverse.name',
593
+ searchUrl: 'https://geoegl.msp.gouv.qc.ca/apis/terrapi',
594
+ settings: [
595
+ {
596
+ type: 'checkbox',
597
+ title: 'results type',
598
+ name: 'type',
599
+ values: [
600
+ {
601
+ title: 'igo.geo.search.icherche.type.address',
602
+ value: 'adresses',
603
+ enabled: types.indexOf('adresses') !== -1
604
+ },
605
+ {
606
+ title: 'igo.geo.search.icherche.type.road',
607
+ value: 'routes',
608
+ enabled: types.indexOf('routes') !== -1,
609
+ available: false
610
+ },
611
+ {
612
+ title: 'igo.geo.search.icherche.type.district',
613
+ value: 'arrondissements',
614
+ enabled: types.indexOf('arrondissements') !== -1
615
+ },
616
+ {
617
+ title: 'igo.geo.search.icherche.type.city',
618
+ value: 'municipalites',
619
+ enabled: types.indexOf('municipalites') !== -1
620
+ },
621
+ {
622
+ title: 'igo.geo.search.icherche.type.mrc',
623
+ value: 'mrc',
624
+ enabled: types.indexOf('mrc') !== -1
625
+ },
626
+ {
627
+ title: 'igo.geo.search.icherche.type.regadmin',
628
+ value: 'regadmin',
629
+ enabled: types.indexOf('regadmin') !== -1
630
+ }
631
+ ]
632
+ },
633
+ {
634
+ type: 'radiobutton',
635
+ title: 'radius',
636
+ name: 'bufferInput',
637
+ values: [
638
+ {
639
+ title: '100 m',
640
+ value: 100,
641
+ enabled: !this.options.distance || this.options.distance === 100
642
+ },
643
+ {
644
+ title: '500 m',
645
+ value: 500,
646
+ enabled: this.options.distance === 500
647
+ },
648
+ {
649
+ title: '1 km',
650
+ value: 1000,
651
+ enabled: this.options.distance === 1000
652
+ },
653
+ {
654
+ title: '2 km',
655
+ value: 2000,
656
+ enabled: this.options.distance === 2000
657
+ },
658
+ {
659
+ title: '5 km',
660
+ value: 5000,
661
+ enabled: this.options.distance === 5000
662
+ }
663
+ ]
664
+ }
665
+ ]
666
+ };
667
+ }
668
+ /**
669
+ * Search a location by coordinates
670
+ * @param lonLat Location coordinates
671
+ * @param distance Search raidus around lonLat
672
+ * @returns Observable of <SearchResult<Feature>[]
673
+ */
674
+ reverseSearch(lonLat, options) {
675
+ const params = this.computeRequestParams(lonLat, options || {});
676
+ if (!params.get('type').length) {
677
+ return of([]);
678
+ }
679
+ return this.getReverseSearch(params);
680
+ }
681
+ getReverseSearch(params) {
682
+ return this.http.get(`${this.searchUrl}/locate`, { params }).pipe(map((response) => {
683
+ return this.extractResults(response);
684
+ }));
685
+ }
686
+ getAllowedTypes() {
687
+ return this.http
688
+ .get(`${this.searchUrl}/types`)
689
+ .subscribe((types) => {
690
+ const typeSetting = this.settings.find((s) => s.name === 'type');
691
+ typeSetting.values.forEach((v) => {
692
+ v.available = types.indexOf(v.value) > -1;
693
+ });
694
+ this.setParamFromSetting(typeSetting, false);
695
+ });
696
+ }
697
+ computeRequestParams(lonLat, options) {
698
+ if (options.distance || this.options.distance) {
699
+ options.params = Object.assign(options.params || {}, {
700
+ bufferInput: options.distance || this.options.distance
701
+ });
702
+ }
703
+ return new HttpParams({
704
+ fromObject: Object.assign({
705
+ loc: lonLat.join(','),
706
+ sort: 'distance',
707
+ geometry: true,
708
+ icon: true
709
+ }, options.params || {}, this.params)
710
+ });
711
+ }
712
+ extractResults(response) {
713
+ return response.features.map((data) => {
714
+ return this.dataToResult(data);
715
+ });
716
+ }
717
+ getSubtitle(data) {
718
+ if (!this.settings.length) {
719
+ return '';
720
+ }
721
+ let subtitle = '';
722
+ switch (data.properties.type) {
723
+ case 'arrondissements':
724
+ subtitle = data.properties.municipalite + ' (Arrondissement)';
725
+ break;
726
+ default:
727
+ const typeSetting = this.settings.find((s) => s.name === 'type');
728
+ const type = typeSetting.values.find((t) => t.value === data.properties.type);
729
+ if (type) {
730
+ subtitle = this.languageService.translate.instant(type.title);
731
+ }
732
+ }
733
+ return subtitle;
734
+ }
735
+ dataToResult(data) {
736
+ const properties = this.computeProperties(data);
737
+ const extent = this.computeExtent(data);
738
+ const id = [this.getId(), properties.type, properties.code].join('.');
739
+ const titleHtml = data.properties.nom;
740
+ const subtitleHtml = ' <small> ' + this.getSubtitle(data) + '</small>';
741
+ return {
742
+ source: this,
743
+ data: {
744
+ type: FEATURE,
745
+ projection: 'EPSG:4326',
746
+ geometry: data.geometry,
747
+ extent,
748
+ properties,
749
+ meta: {
750
+ id,
751
+ title: data.properties.nom
752
+ }
753
+ },
754
+ meta: {
755
+ dataType: FEATURE,
756
+ id,
757
+ title: data.properties.nom,
758
+ titleHtml: titleHtml + subtitleHtml,
759
+ icon: data.icon || 'map-marker',
760
+ pointerSummaryTitle: this.getSubtitle(data) + ': ' + data.properties.nom
761
+ }
762
+ };
763
+ }
764
+ computeProperties(data) {
765
+ const properties = ObjectUtils.removeKeys(data.properties, IChercheReverseSearchSource.propertiesBlacklist);
766
+ const routing = {
767
+ Route: '<span class="routing"> <u>' +
768
+ this.languageService.translate.instant('igo.geo.seeRouting') +
769
+ '</u> </span>'
770
+ };
771
+ return Object.assign(properties, routing);
772
+ }
773
+ computeExtent(data) {
774
+ return data.bbox
775
+ ? [data.bbox[0], data.bbox[2], data.bbox[1], data.bbox[3]]
776
+ : undefined;
777
+ }
778
+ static ɵfac = function IChercheReverseSearchSource_Factory(t) { return new (t || IChercheReverseSearchSource)(i0.ɵɵinject(i2.HttpClient), i0.ɵɵinject(i1.LanguageService), i0.ɵɵinject(i1.StorageService), i0.ɵɵinject('options'), i0.ɵɵinject(i0.Injector)); };
779
+ static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: IChercheReverseSearchSource, factory: IChercheReverseSearchSource.ɵfac });
780
+ }
781
+ __decorate([
782
+ Cacheable({
783
+ maxCacheCount: 20,
784
+ cacheHasher: customCacheHasher
785
+ }),
786
+ __metadata("design:type", Function),
787
+ __metadata("design:paramtypes", [HttpParams]),
788
+ __metadata("design:returntype", Observable)
789
+ ], IChercheReverseSearchSource.prototype, "getReverseSearch", null);
790
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(IChercheReverseSearchSource, [{
791
+ type: Injectable
792
+ }], function () { return [{ type: i2.HttpClient }, { type: i1.LanguageService }, { type: i1.StorageService }, { type: undefined, decorators: [{
793
+ type: Inject,
794
+ args: ['options']
795
+ }] }, { type: i0.Injector }]; }, { getReverseSearch: [] }); })();
796
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNoZXJjaGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9zZWFyY2gvc2hhcmVkL3NvdXJjZXMvaWNoZXJjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQ0wsVUFBVSxFQUNWLFVBQVUsRUFFWCxNQUFNLHNCQUFzQixDQUFDO0FBRTlCLE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU3RCxPQUFPLGNBQWMsTUFBTSx3QkFBd0IsQ0FBQztBQUVwRCxPQUFPLEVBQUUsT0FBTyxFQUFXLE1BQU0sa0JBQWtCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFheEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7OztBQUd6QyxNQUFNLE9BQU8sNkJBQTZCO0lBQ3BCO0lBQXBCLFlBQW9CLGVBQWdDO1FBQWhDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtJQUFHLENBQUM7SUFFeEQsWUFBWSxDQUFDLE1BQTZCO1FBQ3hDLE9B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QUFTLENBQUM7UUFDVCxhQUFhLEVBQUUsRUFBRTtRQUNqQixXQUFXLEVBQUUsaUJBQWlCO0tBQy9CLENBQUM7O3FDQUVRLFVBQVU7b0NBQ2pCLFVBQVU7bUVBTVo7dUZBbEtVLDJCQUEyQjtjQUR2QyxVQUFVOztzQkFtQk4sTUFBTTt1QkFBQyxTQUFTOytDQXdJWCxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgSHR0cENsaWVudCxcclxuICBIdHRwUGFyYW1zLFxyXG4gIEh0dHBQYXJhbWV0ZXJDb2RlY1xyXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwLCBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICdAaWdvMi9hdXRoJztcclxuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlLCBTdG9yYWdlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5pbXBvcnQgeyBPYmplY3RVdGlscywgY3VzdG9tQ2FjaGVIYXNoZXIgfSBmcm9tICdAaWdvMi91dGlscyc7XHJcblxyXG5pbXBvcnQgcG9pbnRPbkZlYXR1cmUgZnJvbSAnQHR1cmYvcG9pbnQtb24tZmVhdHVyZSc7XHJcblxyXG5pbXBvcnQgeyBGRUFUVVJFLCBGZWF0dXJlIH0gZnJvbSAnLi4vLi4vLi4vZmVhdHVyZSc7XHJcbmltcG9ydCB7IEdvb2dsZUxpbmtzIH0gZnJvbSAnLi8uLi8uLi8uLi91dGlscy9nb29nbGVMaW5rcyc7XHJcblxyXG5pbXBvcnQgeyBTZWFyY2hSZXN1bHQsIFRleHRTZWFyY2gsIFJldmVyc2VTZWFyY2ggfSBmcm9tICcuLi9zZWFyY2guaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IFNlYXJjaFNvdXJjZSB9IGZyb20gJy4vc291cmNlJztcclxuaW1wb3J0IHtcclxuICBTZWFyY2hTb3VyY2VPcHRpb25zLFxyXG4gIFRleHRTZWFyY2hPcHRpb25zLFxyXG4gIFJldmVyc2VTZWFyY2hPcHRpb25zLFxyXG4gIFNlYXJjaFNvdXJjZVNldHRpbmdzXHJcbn0gZnJvbSAnLi9zb3VyY2UuaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7XHJcbiAgSUNoZXJjaGVEYXRhLFxyXG4gIElDaGVyY2hlUmVzcG9uc2UsXHJcbiAgSUNoZXJjaGVSZXZlcnNlRGF0YSxcclxuICBJQ2hlcmNoZVJldmVyc2VSZXNwb25zZVxyXG59IGZyb20gJy4vaWNoZXJjaGUuaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IGNvbXB1dGVUZXJtU2ltaWxhcml0eSB9IGZyb20gJy4uL3NlYXJjaC51dGlscyc7XHJcbmltcG9ydCB7IENhY2hlYWJsZSB9IGZyb20gJ3RzLWNhY2hlYWJsZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBJQ2hlcmNoZVNlYXJjaFJlc3VsdEZvcm1hdHRlciB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSkge31cclxuXHJcbiAgZm9ybWF0UmVzdWx0KHJlc3VsdDogU2VhcmNoUmVzdWx0PEZlYXR1cmU+KTogU2VhcmNoUmVzdWx0PEZlYXR1cmU+IHtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBGaXggdGhlIFwiK1wiIGlzIHJlcGxhY2VkIHdpdGggc3BhY2UgXCIgXCIgaW4gYSBxdWVyeSBzdHJpbmdcclxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTEwNThcclxuZXhwb3J0IGNsYXNzIElnb0h0dHBQYXJhbWV0ZXJDb2RlYyBpbXBsZW1lbnRzIEh0dHBQYXJhbWV0ZXJDb2RlYyB7XHJcbiAgZW5jb2RlS2V5KGtleTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBlbmNvZGVVUklDb21wb25lbnQoa2V5KTtcclxuICB9XHJcblxyXG4gIGVuY29kZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBkZWNvZGVLZXkoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChrZXkpO1xyXG4gIH1cclxuXHJcbiAgZGVjb2RlVmFsdWUodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHZhbHVlKTtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBJQ2hlcmNoZSBzZWFyY2ggc291cmNlXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBJQ2hlcmNoZVNlYXJjaFNvdXJjZSBleHRlbmRzIFNlYXJjaFNvdXJjZSBpbXBsZW1lbnRzIFRleHRTZWFyY2gge1xyXG4gIHN0YXRpYyBpZCA9ICdpY2hlcmNoZSc7XHJcbiAgc3RhdGljIHR5cGUgPSBGRUFUVVJFO1xyXG4gIHN0YXRpYyBwcm9wZXJ0aWVzQmxhY2tsaXN0OiBzdHJpbmdbXSA9IFtdO1xyXG4gIHRpdGxlJDogQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xyXG5cclxuICBwcml2YXRlIGhhc2h0YWdzTGlldXhUb0tlZXAgPSBbXTtcclxuXHJcbiAgZ2V0IHRpdGxlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy50aXRsZSQuZ2V0VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSxcclxuICAgIHN0b3JhZ2VTZXJ2aWNlOiBTdG9yYWdlU2VydmljZSxcclxuICAgIEBJbmplY3QoJ29wdGlvbnMnKSBvcHRpb25zOiBTZWFyY2hTb3VyY2VPcHRpb25zLFxyXG4gICAgQEluamVjdChJQ2hlcmNoZVNlYXJjaFJlc3VsdEZvcm1hdHRlcilcclxuICAgIHByaXZhdGUgZm9ybWF0dGVyOiBJQ2hlcmNoZVNlYXJjaFJlc3VsdEZvcm1hdHRlcixcclxuICAgIGluamVjdG9yOiBJbmplY3RvclxyXG4gICkge1xyXG4gICAgc3VwZXIob3B0aW9ucywgc3RvcmFnZVNlcnZpY2UpO1xyXG5cclxuICAgIGNvbnN0IGF1dGhTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KEF1dGhTZXJ2aWNlKTtcclxuICAgIGlmICh0aGlzLnNldHRpbmdzLmxlbmd0aCkge1xyXG4gICAgICBpZiAoIWF1dGhTZXJ2aWNlKSB7XHJcbiAgICAgICAgdGhpcy5nZXRBbGxvd2VkVHlwZXMoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBhdXRoU2VydmljZS5hdXRoZW50aWNhdGUkLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmdldEFsbG93ZWRUeXBlcygpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UubGFuZ3VhZ2UkLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMudGl0bGUkLm5leHQoXHJcbiAgICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQodGhpcy5vcHRpb25zLnRpdGxlKVxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRJZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIElDaGVyY2hlU2VhcmNoU291cmNlLmlkO1xyXG4gIH1cclxuXHJcbiAgZ2V0VHlwZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIElDaGVyY2hlU2VhcmNoU291cmNlLnR5cGU7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgZ2V0RGVmYXVsdE9wdGlvbnMoKTogU2VhcmNoU291cmNlT3B0aW9ucyB7XHJcbiAgICBjb25zdCBsaW1pdCA9XHJcbiAgICAgIHRoaXMub3B0aW9ucy5wYXJhbXMgJiYgdGhpcy5vcHRpb25zLnBhcmFtcy5saW1pdFxyXG4gICAgICAgID8gTnVtYmVyKHRoaXMub3B0aW9ucy5wYXJhbXMubGltaXQpXHJcbiAgICAgICAgOiB1bmRlZmluZWQ7XHJcbiAgICBjb25zdCBlY21heCA9XHJcbiAgICAgIHRoaXMub3B0aW9ucy5wYXJhbXMgJiYgdGhpcy5vcHRpb25zLnBhcmFtcy5lY21heFxyXG4gICAgICAgID8gTnVtYmVyKHRoaXMub3B0aW9ucy5wYXJhbXMuZWNtYXgpXHJcbiAgICAgICAgOiB1bmRlZmluZWQ7XHJcblxyXG4gICAgY29uc3QgdHlwZXMgPSB0aGlzLm9wdGlvbnMucGFyYW1zPy50eXBlXHJcbiAgICAgID8gdGhpcy5vcHRpb25zLnBhcmFtcy50eXBlLnJlcGxhY2UoL1xccy9nLCAnJykudG9Mb3dlckNhc2UoKS5zcGxpdCgnLCcpXHJcbiAgICAgIDogW1xyXG4gICAgICAgICAgJ2FkcmVzc2VzJyxcclxuICAgICAgICAgICdjb2Rlcy1wb3N0YXV4JyxcclxuICAgICAgICAgICdyb3V0ZXMnLFxyXG4gICAgICAgICAgJ2ludGVyc2VjdGlvbnMnLFxyXG4gICAgICAgICAgJ211bmljaXBhbGl0ZXMnLFxyXG4gICAgICAgICAgJ21yYycsXHJcbiAgICAgICAgICAncmVnYWRtaW4nLFxyXG4gICAgICAgICAgJ2xpZXV4J1xyXG4gICAgICAgIF07XHJcblxyXG4gICAgY29uc3Qgc2hvd0FkdmFuY2VkUGFyYW1zID0gdGhpcy5vcHRpb25zLnNob3dBZHZhbmNlZFNldHRpbmdzID8/IHRydWU7XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdGl0bGU6ICdpZ28uZ2VvLnNlYXJjaC5pY2hlcmNoZS5uYW1lJyxcclxuICAgICAgc2VhcmNoVXJsOiAnaHR0cHM6Ly9nZW9lZ2wubXNwLmdvdXYucWMuY2EvYXBpcy9pY2hlcmNoZScsXHJcbiAgICAgIHNldHRpbmdzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdHlwZTogJ2NoZWNrYm94JyxcclxuICAgICAgICAgIHRpdGxlOiAncmVzdWx0cyB0eXBlJyxcclxuICAgICAgICAgIG5hbWU6ICd0eXBlJyxcclxuICAgICAgICAgIHZhbHVlczogW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6ICdpZ28uZ2VvLnNlYXJjaC5pY2hlcmNoZS50eXBlLmFkZHJlc3MnLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAnYWRyZXNzZXMnLFxyXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHR5cGVzLmluZGV4T2YoJ2FkcmVzc2VzJykgIT09IC0xLFxyXG4gICAgICAgICAgICAgIGhhc2h0YWdzOiBbJ2FkcmVzc2UnXVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6ICdpZ28uZ2VvLnNlYXJjaC5pY2hlcmNoZS50eXBlLm9sZEFkZHJlc3MnLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAnYW5jaWVubmVzLWFkcmVzc2VzJyxcclxuICAgICAgICAgICAgICBlbmFibGVkOiB0eXBlcy5pbmRleE9mKCdhbmNpZW5uZXMtYWRyZXNzZXMnKSAhPT0gLTEsXHJcbiAgICAgICAgICAgICAgaGFzaHRhZ3M6IFsnYW5jaWVubmVzLWFkcmVzc2VzJ11cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnaWdvLmdlby5zZWFyY2guaWNoZXJjaGUudHlwZS5vbGRDaXR5JyxcclxuICAgICAgICAgICAgICB2YWx1ZTogJ2FuY2llbm5lcy1tdW5pY2lwYWxpdGVzJyxcclxuICAgICAgICAgICAgICBlbmFibGVkOiB0eXBlcy5pbmRleE9mKCdhbmNpZW5uZXMtbXVuaWNpcGFsaXRlcycpICE9PSAtMSxcclxuICAgICAgICAgICAgICBoYXNodGFnczogWydhbmNpZW5uZXMtbXVuaWNpcGFsaXRlcyddXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmljaGVyY2hlLnR5cGUuY24nLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAnYm9ybmVzLWNuJyxcclxuICAgICAgICAgICAgICBlbmFibGVkOiB0eXBlcy5pbmRleE9mKCdib3JuZXMtY24nKSAhPT0gLTEsXHJcbiAgICAgICAgICAgICAgaGFzaHRhZ3M6IFsnYm9ybmUnLCAnYm9ybmVzJywgJ2NuJ11cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnaWdvLmdlby5zZWFyY2guaWNoZXJjaGUudHlwZS5zdW1pJyxcclxuICAgICAgICAgICAgICB2YWx1ZTogJ2Jvcm5lcy1zdW1pJyxcclxuICAgICAgICAgICAgICBlbmFibGVkOiB0eXBlcy5pbmRleE9mKCdib3JuZXMtc3VtaScpICE9PSAtMSxcclxuICAgICAgICAgICAgICBoYXNodGFnczogWydib3JuZScsICdib3JuZXMnLCAnc3VtaSddXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmljaGVyY2hlLnR5cGUuY2FkYXN0cmUnLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAnY2FkYXN0cmUnLFxyXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHR5cGVzLmluZGV4T2YoJ2NhZGFzdHJlJykgIT09IC0xLFxyXG4gICAgICAgICAgICAgIGhhc2h0YWdzOiBbJ2NhZGFzdHJlJ11cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnaWdvLmdlby5zZWFyY2guaWNoZXJjaGUudHlwZS5wb3N0YWxDb2RlJyxcclxuICAgICAgICAgICAgICB2YWx1ZTogJ2NvZGVzLXBvc3RhdXgnLFxyXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHR5cGVzLmluZGV4T2YoJ2NvZGVzLXBvc3RhdXgnKSAhPT0gLTEsXHJcbiAgICAgICAgICAgICAgaGFzaHRhZ3M6IFsnY29kZS1wb3N0YWwnXVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6ICdpZ28uZ2VvLnNlYXJjaC5pY2hlcmNoZS50eXBlLmVudHJlcHJpc2UnLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAnZW50cmVwcmlzZXMnLFxyXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHR5cGVzLmluZGV4T2YoJ2VudHJlcHJpc2VzJykgIT09IC0xLFxyXG4gICAgICAgICAgICAgIGF2YWlsYWJsZTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgaGFzaHRhZ3M6IFsnZW50cmVwcmlzZSddXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmljaGVyY2hlLnR5cGUuY3ljbGVTdG9wJyxcclxuICAgICAgICAgICAgICB2YWx1ZTogJ2hhbHRlc19jeWNsYWJsZXMnLFxyXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHR5cGVzLmluZGV4T2YoJ2hhbHRlc19jeWNsYWJsZXMnKSAhPT0gLTEsXHJcbiAgICAgICAgICAgICAgaGFzaHRhZ3M6IFsnaGFsdGV2ZWxvJywgJ2hhbHRlc19jeWNsYWJsZXMnXVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6ICdpZ28uZ2VvLnNlYXJjaC5pY2hlcmNoZS50eXBlLnJlc3RBcmVhJyxcclxuICAgICAgICAgICAgICB2YWx1ZTogJ2hhbHRlc19yb3V0aWVyZXMnLFxyXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHR5cGVzLmluZGV4T2YoJ2hhbHRlc19yb3V0aWVyZXMnKSAhPT0gLTEsXHJcbiAgICAgICAgICAgICAgaGFzaHRhZ3M6IFsnaGFsdGVyb3V0ZScsICdoYWx0ZXNfcm91dGllcmVzJ11cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnaWdvLmdlby5zZWFyY2guaWNoZXJjaGUudHlwZS5ocScsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICdocScsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogdHlwZXMuaW5kZXhPZignaHEnKSAhPT0gLTEsXHJcbiAgICAgICAgICAgICAgaGFzaHRhZ3M6IFsnaHEnXVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6ICdpZ28uZ2VvLnNlYXJjaC5pY2hlcmNoZS50eXBlLmludGVyc2VjdGlvbicsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICdpbnRlcnNlY3Rpb25zJyxcclxuICAgICAgICAgICAgICBlbmFibGVkOiB0eXBlcy5pbmRleE9mKCdpbnRlcnNlY3Rpb25zJykgIT09IC0xLFxyXG4gICAgICAgICAgICAgIGhhc2h0YWdzOiBbJ2ludGVyc2VjdGlvbicsICcrJ11cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnaWdvLmdlby5zZWFyY2guaWNoZXJjaGUudHlwZS5wbGFjZScsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICdsaWV1eCcsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogdHlwZXMuaW5kZXhPZignbGlldXgnKSAhPT0gLTEsXHJcbiAgICAgICAgICAgICAgaGFzaHRhZ3M6IFsnbGlldSddXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmljaGVyY2hlLnR5cGUubXJjJyxcclxuICAgICAgICAgICAgICB2YWx1ZTogJ21yYycsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogdHlwZXMuaW5kZXhPZignbXJjJykgIT09IC0xLFxyXG4gICAgICAgICAgICAgIGhhc2h0YWdzOiBbJ21yYyddXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmljaGVyY2hlLnR5cGUuY2l0eScsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICdtdW5pY2lwYWxpdGVzJyxcclxuICAgICAgICAgICAgICBlbmFibGVkOiB0eXBlcy5pbmRleE9mKCdtdW5pY2lwYWxpdGVzJykgIT09IC0xLFxyXG4gICAgICAgICAgICAgIGhhc2h0YWdzOiBbJ211bmljaXBhbGl0w6knLCAnbXVuJ11cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnaWdvLmdlby5zZWFyY2guaWNoZXJjaGUudHlwZS5yZWdhZG1pbicsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICdyZWdhZG1pbicsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogdHlwZXMuaW5kZXhPZigncmVnYWRtaW4nKSAhPT0gLTEsXHJcbiAgICAgICAgICAgICAgaGFzaHRhZ3M6IFsncsOpZ2lvbi1hZG1pbmlzdHJhdGl2ZScsICdyZWdhZG1pbiddXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmljaGVyY2hlLnR5cGUuZ2NjJyxcclxuICAgICAgICAgICAgICB2YWx1ZTogJ2Jvcm5lcy1nY2MnLFxyXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHR5cGVzLmluZGV4T2YoJ2Jvcm5lcy1nY2MnKSAhPT0gLTEsXHJcbiAgICAgICAgICAgICAgaGFzaHRhZ3M6IFsnYm9ybmUnLCAnYm9ybmVzJywgJ3JlcMOocmUnLCAnZ2NjJywgJ2NjZyddXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmljaGVyY2hlLnR5cGUua20nLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAnYm9ybmVzLWttJyxcclxuICAgICAgICAgICAgICBlbmFibGVkOiB0eXBlcy5pbmRleE9mKCdib3JuZXMta20nKSAhPT0gLTEsXHJcbiAgICAgICAgICAgICAgaGFzaHRhZ3M6IFsnYm9ybmUnLCAnYm9ybmVzJywgJ3JlcMOocmUnLCAna20nXVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6ICdpZ28uZ2VvLnNlYXJjaC5pY2hlcmNoZS50eXBlLnJvYWQnLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAncm91dGVzJyxcclxuICAgICAgICAgICAgICBlbmFibGVkOiB0eXBlcy5pbmRleE9mKCdyb3V0ZXMnKSAhPT0gLTEsXHJcbiAgICAgICAgICAgICAgaGFzaHRhZ3M6IFsncm91dGUnXVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6ICdpZ28uZ2VvLnNlYXJjaC5pY2hlcmNoZS50eXBlLmV4aXQnLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAnc29ydGllcy1hdXRvcm91dGUnLFxyXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHR5cGVzLmluZGV4T2YoJ3NvcnRpZXMtYXV0b3JvdXRlJykgIT09IC0xLFxyXG4gICAgICAgICAgICAgIGhhc2h0YWdzOiBbJ3NvcnRpZScsICdzb3J0aWVzJywgJ2V4aXQnXVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6ICdpZ28uZ2VvLnNlYXJjaC5pY2hlcmNoZS50eXBlLmN1bHRwYXRyaScsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICdjdWx0dXJlJyxcclxuICAgICAgICAgICAgICBlbmFibGVkOiB0eXBlcy5pbmRleE9mKCdjdWx0dXJlJykgIT09IC0xLFxyXG4gICAgICAgICAgICAgIGhhc2h0YWdzOiBbJ2dyaWxsZScsICdjdWx0dXJlJ11cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgXVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdHlwZTogJ3JhZGlvYnV0dG9uJyxcclxuICAgICAgICAgIHRpdGxlOiAncmVzdWx0cyBsaW1pdCcsXHJcbiAgICAgICAgICBuYW1lOiAnbGltaXQnLFxyXG4gICAgICAgICAgdmFsdWVzOiBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJzEnLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAxLFxyXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IGxpbWl0ID09PSAxXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJzUnLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiA1LFxyXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IGxpbWl0ID09PSA1IHx8ICFsaW1pdFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6ICcxMCcsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IDEwLFxyXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IGxpbWl0ID09PSAxMFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6ICcyNScsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IDI1LFxyXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IGxpbWl0ID09PSAyNVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6ICc1MCcsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IDUwLFxyXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IGxpbWl0ID09PSA1MFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICBdXHJcbiAgICAgICAgfSxcclxuICAgICAgICBzaG93QWR2YW5jZWRQYXJhbXMgJiYge1xyXG4gICAgICAgICAgdHlwZTogJ3JhZGlvYnV0dG9uJyxcclxuICAgICAgICAgIHRpdGxlOiAnZWNtYXgnLFxyXG4gICAgICAgICAgbmFtZTogJ2VjbWF4JyxcclxuICAgICAgICAgIHZhbHVlczogW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6ICcxMCAlJyxcclxuICAgICAgICAgICAgICB2YWx1ZTogMTAsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogZWNtYXggPT09IDEwXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJzMwICUnLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAzMCxcclxuICAgICAgICAgICAgICBlbmFibGVkOiBlY21heCA9PT0gMzAgfHwgIWVjbWF4XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJzUwICUnLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiA1MCxcclxuICAgICAgICAgICAgICBlbmFibGVkOiBlY21heCA9PT0gNTBcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnNzUgJScsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IDc1LFxyXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IGVjbWF4ID09PSA3NVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6ICcxMDAgJScsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IDEwMCxcclxuICAgICAgICAgICAgICBlbmFibGVkOiBlY21heCA9PT0gMTAwXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIF1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHR5cGU6ICdyYWRpb2J1dHRvbicsXHJcbiAgICAgICAgICB0aXRsZTogJ3Jlc3RyaWN0RXh0ZW50JyxcclxuICAgICAgICAgIG5hbWU6ICdsb2MnLFxyXG4gICAgICAgICAgdmFsdWVzOiBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmljaGVyY2hlLnJlc3RyaWN0RXh0ZW50Lm1hcCcsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICd0cnVlJyxcclxuICAgICAgICAgICAgICBlbmFibGVkOiBmYWxzZVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6ICdpZ28uZ2VvLnNlYXJjaC5pY2hlcmNoZS5yZXN0cmljdEV4dGVudC5xdWViZWMnLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAnZmFsc2UnLFxyXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHRydWVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgXVxyXG4gICAgICAgIH1cclxuICAgICAgXS5maWx0ZXIoQm9vbGVhbikgYXMgU2VhcmNoU291cmNlU2V0dGluZ3NbXVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlYXJjaCBhIGxvY2F0aW9uIGJ5IG5hbWUgb3Iga2V5d29yZFxyXG4gICAqIEBwYXJhbSB0ZXJtIExvY2F0aW9uIG5hbWUgb3Iga2V5d29yZFxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGUgb2YgPFNlYXJjaFJlc3VsdDxGZWF0dXJlPltdXHJcbiAgICovXHJcbiAgc2VhcmNoKFxyXG4gICAgdGVybTogc3RyaW5nLFxyXG4gICAgb3B0aW9ucz86IFRleHRTZWFyY2hPcHRpb25zXHJcbiAgKTogT2JzZXJ2YWJsZTxTZWFyY2hSZXN1bHQ8RmVhdHVyZT5bXT4ge1xyXG4gICAgY29uc3QgcGFyYW1zID0gdGhpcy5jb21wdXRlUmVxdWVzdFBhcmFtcyh0ZXJtLCBvcHRpb25zIHx8IHt9KTtcclxuICAgIGlmICghcGFyYW1zLmdldCgndHlwZScpLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gb2YoW10pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vcHRpb25zLnBhcmFtcy5wYWdlID0gcGFyYW1zLmdldCgncGFnZScpIHx8ICcxJztcclxuXHJcbiAgICByZXR1cm4gdGhpcy5nZXRTZWFyY2godGVybSwgcGFyYW1zKTtcclxuICB9XHJcblxyXG4gIEBDYWNoZWFibGUoe1xyXG4gICAgbWF4Q2FjaGVDb3VudDogMjAsXHJcbiAgICBjYWNoZUhhc2hlcjogY3VzdG9tQ2FjaGVIYXNoZXJcclxuICB9KVxyXG4gIHByaXZhdGUgZ2V0U2VhcmNoKFxyXG4gICAgdGVybTogc3RyaW5nLFxyXG4gICAgcGFyYW1zOiBIdHRwUGFyYW1zXHJcbiAgKTogT2JzZXJ2YWJsZTxTZWFyY2hSZXN1bHQ8RmVhdHVyZT5bXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5zZWFyY2hVcmx9L2dlb2NvZGVgLCB7IHBhcmFtcyB9KS5waXBlKFxyXG4gICAgICBtYXAoKHJlc3BvbnNlOiBJQ2hlcmNoZVJlc3BvbnNlKSA9PiB0aGlzLmV4dHJhY3RSZXN1bHRzKHJlc3BvbnNlLCB0ZXJtKSksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgIGVyci5lcnJvci50b0Rpc3BsYXkgPSB0cnVlO1xyXG4gICAgICAgIGVyci5lcnJvci50aXRsZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICAgdGhpcy5nZXREZWZhdWx0T3B0aW9ucygpLnRpdGxlXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuICBwcml2YXRlIGdldEFsbG93ZWRUeXBlcygpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldChgJHt0aGlzLnNlYXJjaFVybH0vdHlwZXNgKVxyXG4gICAgICAuc3Vic2NyaWJlKCh0eXBlczogc3RyaW5nW10pID0+IHtcclxuICAgICAgICBjb25zdCB0eXBlU2V0dGluZyA9IHRoaXMuc2V0dGluZ3MuZmluZCgocykgPT4gcy5uYW1lID09PSAndHlwZScpO1xyXG4gICAgICAgIHR5cGVTZXR0aW5nLnZhbHVlcy5mb3JFYWNoKCh2KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoYF4ke3YudmFsdWV9KFxcXFwufCQpYCk7XHJcbiAgICAgICAgICBjb25zdCB0eXBlc01hdGNoZWQgPSB0eXBlcy5maWx0ZXIoKHZhbHVlKSA9PiByZWdleC50ZXN0KHZhbHVlKSk7XHJcbiAgICAgICAgICB2LmF2YWlsYWJsZSA9IHR5cGVzTWF0Y2hlZC5sZW5ndGggPiAwO1xyXG4gICAgICAgICAgaWYgKHYudmFsdWUgPT09ICdsaWV1eCcpIHtcclxuICAgICAgICAgICAgdGhpcy5oYXNodGFnc0xpZXV4VG9LZWVwID0gW1xyXG4gICAgICAgICAgICAgIC4uLihuZXcgU2V0KFxyXG4gICAgICAgICAgICAgICAgdHlwZXNNYXRjaGVkXHJcbiAgICAgICAgICAgICAgICAgIC5tYXAoKHQpID0+IHQuc3BsaXQoJy4nKSlcclxuICAgICAgICAgICAgICAgICAgLnJlZHVjZSgoYSwgYikgPT4gYS5jb25jYXQoYikpXHJcbiAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKHQpID0+IHQgIT09ICdsaWV1eCcpXHJcbiAgICAgICAgICAgICAgKSBhcyBhbnkpXHJcbiAgICAgICAgICAgIF07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5zZXRQYXJhbUZyb21TZXR0aW5nKHR5cGVTZXR0aW5nLCBmYWxzZSk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb21wdXRlUmVxdWVzdFBhcmFtcyhcclxuICAgIHRlcm06IHN0cmluZyxcclxuICAgIG9wdGlvbnM6IFRleHRTZWFyY2hPcHRpb25zXHJcbiAgKTogSHR0cFBhcmFtcyB7XHJcbiAgICBjb25zdCBxdWVyeVBhcmFtczogYW55ID0gT2JqZWN0LmFzc2lnbihcclxuICAgICAge1xyXG4gICAgICAgIGdlb21ldHJ5OiB0cnVlLFxyXG4gICAgICAgIGJib3g6IHRydWUsXHJcbiAgICAgICAgaWNvbjogdHJ1ZSxcclxuICAgICAgICB0eXBlOiAnYWRyZXNzZXMsY29kZXMtcG9zdGF1eCxtdW5pY2lwYWxpdGVzLG1yYyxyZWdhZG1pbixsaWV1eCxlbnRyZXByaXNlcyxib3JuZXMtc3VtaSdcclxuICAgICAgfSxcclxuICAgICAgdGhpcy5wYXJhbXMsXHJcbiAgICAgIHRoaXMuY29tcHV0ZU9wdGlvbnNQYXJhbSh0ZXJtLCBvcHRpb25zIHx8IHt9KS5wYXJhbXMsXHJcbiAgICAgIHtcclxuICAgICAgICBxOiB0aGlzLmNvbXB1dGVUZXJtKHRlcm0pLFxyXG4gICAgICAgIHBhZ2U6IG9wdGlvbnMucGFnZVxyXG4gICAgICB9XHJcbiAgICApO1xyXG5cclxuICAgIGlmIChxdWVyeVBhcmFtcy5sb2MgPT09ICd0cnVlJykge1xyXG4gICAgICBjb25zdCBbeE1pbiwgeU1pbiwgeE1heCwgeU1heF0gPSBvcHRpb25zLmV4dGVudDtcclxuICAgICAgcXVlcnlQYXJhbXMubG9jID0gYCR7eE1pbn0sJHt5TWlufTske3hNYXh9LCR7eU1pbn07JHt4TWF4fSwke3lNYXh9OyR7eE1pbn0sJHt5TWF4fTske3hNaW59LCR7eU1pbn1gO1xyXG4gICAgfSBlbHNlIGlmIChxdWVyeVBhcmFtcy5sb2MgPT09ICdmYWxzZScpIHtcclxuICAgICAgZGVsZXRlIHF1ZXJ5UGFyYW1zLmxvYztcclxuICAgIH1cclxuXHJcbiAgICBpZiAoLyNbQS1aYS16XSsvLnRlc3QocXVlcnlQYXJhbXMucSkpIHtcclxuICAgICAgcXVlcnlQYXJhbXMudHlwZSA9ICdsaWV1eCc7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG5ldyBIdHRwUGFyYW1zKHtcclxuICAgICAgZnJvbU9iamVjdDogT2JqZWN0VXRpbHMucmVtb3ZlVW5kZWZpbmVkKHF1ZXJ5UGFyYW1zKSxcclxuICAgICAgZW5jb2RlcjogbmV3IElnb0h0dHBQYXJhbWV0ZXJDb2RlYygpXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZXh0cmFjdFJlc3VsdHMoXHJcbiAgICByZXNwb25zZTogSUNoZXJjaGVSZXNwb25zZSxcclxuICAgIHRlcm06IHN0cmluZ1xyXG4gICk6IFNlYXJjaFJlc3VsdDxGZWF0dXJlPltdIHtcclxuICAgIHJldHVybiByZXNwb25zZS5mZWF0dXJlcy5tYXAoKGRhdGE6IElDaGVyY2hlRGF0YSkgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5mb3JtYXR0ZXIuZm9ybWF0UmVzdWx0KFxyXG4gICAgICAgIHRoaXMuZGF0YVRvUmVzdWx0KGRhdGEsIHRlcm0sIHJlc3BvbnNlKVxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRhdGFUb1Jlc3VsdChcclxuICAgIGRhdGE6IElDaGVyY2hlRGF0YSxcclxuICAgIHRlcm06IHN0cmluZyxcclxuICAgIHJlc3BvbnNlPzogSUNoZXJjaGVSZXNwb25zZVxyXG4gICk6IFNlYXJjaFJlc3VsdDxGZWF0dXJlPiB7XHJcbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gdGhpcy5jb21wdXRlUHJvcGVydGllcyhkYXRhKTtcclxuICAgIGNvbnN0IGlkID0gW3RoaXMuZ2V0SWQoKSwgcHJvcGVydGllcy50eXBlLCBwcm9wZXJ0aWVzLmNvZGVdLmpvaW4oJy4nKTtcclxuXHJcbiAgICBjb25zdCB0aXRsZUh0bWwgPSBkYXRhLmhpZ2hsaWdodC50aXRsZSB8fCBkYXRhLnByb3BlcnRpZXMubm9tO1xyXG4gICAgY29uc3Qgc3VidGl0bGVIdG1sID0gZGF0YS5oaWdobGlnaHQudGl0bGUyXHJcbiAgICAgID8gJyA8c21hbGw+ICcgKyBkYXRhLmhpZ2hsaWdodC50aXRsZTIgKyAnPC9zbWFsbD4nXHJcbiAgICAgIDogJyc7XHJcbiAgICBjb25zdCBzdWJ0aXRsZUh0bWwyID0gZGF0YS5oaWdobGlnaHQudGl0bGUzXHJcbiAgICAgID8gJzxicj48c21hbGw+ICcgKyBkYXRhLmhpZ2hsaWdodC50aXRsZTMgKyAnPC9zbWFsbD4nXHJcbiAgICAgIDogJyc7XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgc291cmNlOiB0aGlzLFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgdHlwZTogRkVBVFVSRSxcclxuICAgICAgICBwcm9qZWN0aW9uOiAnRVBTRzo0MzI2JyxcclxuICAgICAgICBnZW9tZXRyeTogZGF0YS5nZW9tZXRyeSxcclxuICAgICAgICBleHRlbnQ6IGRhdGEuYmJveCxcclxuICAgICAgICBwcm9wZXJ0aWVzLFxyXG4gICAgICAgIG1ldGE6IHtcclxuICAgICAgICAgIGlkLFxyXG4gICAgICAgICAgdGl0bGU6IGRhdGEucHJvcGVydGllcy5ub21cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIG1ldGE6IHtcclxuICAgICAgICBkYXRhVHlwZTogRkVBVFVSRSxcclxuICAgICAgICBpZCxcclxuICAgICAgICB0aXRsZTogZGF0YS5wcm9wZXJ0aWVzLm5vbSxcclxuICAgICAgICB0aXRsZUh0bWw6IHRpdGxlSHRtbCArIHN1YnRpdGxlSHRtbCArIHN1YnRpdGxlSHRtbDIsXHJcbiAgICAgICAgaWNvbjogZGF0YS5pY29uIHx8ICdtYXAtbWFya2VyJyxcclxuICAgICAgICBzY29yZTpcclxuICAgICAgICAgIGRhdGEuc2NvcmUgfHwgY29tcHV0ZVRlcm1TaW1pbGFyaXR5KHRlcm0udHJpbSgpLCBkYXRhLnByb3BlcnRpZXMubm9tKSxcclxuICAgICAgICBuZXh0UGFnZTpcclxuICAgICAgICAgIHJlc3BvbnNlLmZlYXR1cmVzLmxlbmd0aCAlICt0aGlzLm9wdGlvbnMucGFyYW1zLmxpbWl0ID09PSAwICYmXHJcbiAgICAgICAgICArdGhpcy5vcHRpb25zLnBhcmFtcy5wYWdlIDwgMTBcclxuICAgICAgfVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29tcHV0ZVByb3BlcnRpZXMoZGF0YTogSUNoZXJjaGVEYXRhKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB7XHJcbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gT2JqZWN0VXRpbHMucmVtb3ZlS2V5cyhcclxuICAgICAgZGF0YS5wcm9wZXJ0aWVzLFxyXG4gICAgICBJQ2hlcmNoZVNlYXJjaFNvdXJjZS5wcm9wZXJ0aWVzQmxhY2tsaXN0XHJcbiAgICApO1xyXG5cclxuICAgIGlmICghZGF0YS5nZW9tZXRyeSkge1xyXG4gICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7IHR5cGU6IGRhdGEuaW5kZXggfSwgcHJvcGVydGllcyk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZ29vZ2xlTGlua3NQcm9wZXJ0aWVzOiB7XHJcbiAgICAgIEdvb2dsZU1hcHM6IHN0cmluZztcclxuICAgICAgR29vZ2xlU3RyZWV0Vmlldz86IHN0cmluZztcclxuICAgIH0gPSB7XHJcbiAgICAgIEdvb2dsZU1hcHM6ICcnXHJcbiAgICB9O1xyXG5cclxuICAgIGxldCBnb29nbGVNYXBzO1xyXG4gICAgaWYgKGRhdGEuZ2VvbWV0cnkudHlwZSA9PT0gJ1BvaW50Jykge1xyXG4gICAgICBnb29nbGVNYXBzID0gR29vZ2xlTGlua3MuZ2V0R29vZ2xlTWFwc0Nvb3JkTGluayhcclxuICAgICAgICBkYXRhLmdlb21ldHJ5LmNvb3JkaW5hdGVzWzBdLFxyXG4gICAgICAgIGRhdGEuZ2VvbWV0cnkuY29vcmRpbmF0ZXNbMV1cclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHBvaW50ID0gcG9pbnRPbkZlYXR1cmUoZGF0YS5nZW9tZXRyeSk7XHJcbiAgICAgIGdvb2dsZU1hcHMgPSBHb29nbGVMaW5rcy5nZXRHb29nbGVNYXBzQ29vcmRMaW5rKFxyXG4gICAgICAgIHBvaW50Lmdlb21ldHJ5LmNvb3JkaW5hdGVzWzBdLFxyXG4gICAgICAgIHBvaW50Lmdlb21ldHJ5LmNvb3JkaW5hdGVzWzFdXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGdvb2dsZU1hcHNOb207XHJcbiAgICBpZiAoZGF0YS5pbmRleCA9PT0gJ3JvdXRlcycpIHtcclxuICAgICAgZ29vZ2xlTWFwc05vbSA9IEdvb2dsZUxpbmtzLmdldEdvb2dsZU1hcHNOYW1lTGluayhcclxuICAgICAgICBkYXRhLnByb3BlcnRpZXMubm9tICsgJywgJyArIGRhdGEucHJvcGVydGllcy5tdW5pY2lwYWxpdGVcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSBpZiAoZGF0YS5pbmRleCA9PT0gJ211bmljaXBhbGl0ZXMnKSB7XHJcbiAgICAgIGdvb2dsZU1hcHNOb20gPSBHb29nbGVMaW5rcy5nZXRHb29nbGVNYXBzTmFtZUxpbmsoXHJcbiAgICAgICAgZGF0YS5wcm9wZXJ0aWVzLm5vbSArICcsICcgKyAndmlsbGUnXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2UgaWYgKGRhdGEuaW5kZXggPT09ICdtcmMnKSB7XHJcbiAgICAgIGdvb2dsZU1hcHNOb20gPSBHb29nbGVMaW5rcy5nZXRHb29nbGVNYXBzTmFtZUxpbmsoXHJcbiAgICAgICAgJ21yYysnICsgZGF0YS5wcm9wZXJ0aWVzLm5vbVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIGlmIChkYXRhLmluZGV4ID09PSAncmVnYWRtaW4nKSB7XHJcbiAgICAgIGdvb2dsZU1hcHNOb20gPSBHb29nbGVMaW5rcy5nZXRHb29nbGVNYXBzTmFtZUxpbmsoXHJcbiAgICAgICAgZGF0YS5wcm9wZXJ0aWVzLm5vbSArICcsK1FDJ1xyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZ29vZ2xlTWFwc05vbSA9IEdvb2dsZUxpbmtzLmdldEdvb2dsZU1hcHNOYW1lTGluayhcclxuICAgICAgICBkYXRhLnByb3BlcnRpZXMubm9tIHx8IGRhdGEuaGlnaGxpZ2h0LnRpdGxlXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ29vZ2xlTGlua3NQcm9wZXJ0aWVzLkdvb2dsZU1hcHMgPVxyXG4gICAgICAnPGEgaHJlZj0nICtcclxuICAgICAgZ29vZ2xlTWFwcyArXHJcbiAgICAgICcgdGFyZ2V0PVwiX2JsYW5rXCI+JyArXHJcbiAgICAgIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLnNlYXJjaEJ5Q29vcmQnKSArXHJcbiAgICAgICc8L2E+IDxiciAvPiA8YSBocmVmPScgK1xyXG4gICAgICBnb29nbGVNYXBzTm9tICtcclxuICAgICAgJyB0YXJnZXQ9XCJfYmxhbmtcIj4nICtcclxuICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uc2VhcmNoQnlOYW1lJykgK1xyXG4gICAgICAnPC9hPic7XHJcblxyXG4gICAgaWYgKGRhdGEuZ2VvbWV0cnkudHlwZSA9PT0gJ1BvaW50Jykge1xyXG4gICAgICBnb29nbGVMaW5rc1Byb3BlcnRpZXMuR29vZ2xlU3RyZWV0VmlldyA9XHJcbiAgICAgICAgR29vZ2xlTGlua3MuZ2V0R29vZ2xlU3RyZWV0Vmlld0xpbmsoXHJcbiAgICAgICAgICBkYXRhLmdlb21ldHJ5LmNvb3JkaW5hdGVzWzBdLFxyXG4gICAgICAgICAgZGF0YS5nZW9tZXRyeS5jb29yZGluYXRlc1sxXVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgcm91dGluZzoge1xyXG4gICAgICBSb3V0ZTogc3RyaW5nO1xyXG4gICAgfSA9IHtcclxuICAgICAgUm91dGU6XHJcbiAgICAgICAgJzxzcGFuIGNsYXNzPVwicm91dGluZ1wiPiA8dT4nICtcclxuICAgICAgICB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5zZWVSb3V0aW5nJykgK1xyXG4gICAgICAgICc8L3U+IDwvc3Bhbj4nXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKFxyXG4gICAgICB7IHR5cGU6IGRhdGEuaW5kZXggfSxcclxuICAgICAgcHJvcGVydGllcyxcclxuICAgICAgZ29vZ2xlTGlua3NQcm9wZXJ0aWVzLFxyXG4gICAgICByb3V0aW5nXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlIGhhc2h0YWcgZnJvbSBxdWVyeVxyXG4gICAqIEBwYXJhbSB0ZXJtIFF1ZXJ5IHdpdGggaGFzaHRhZ1xyXG4gICAqL1xyXG4gIHByaXZhdGUgY29tcHV0ZVRlcm0odGVybTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIC8vIEtlZXAgaGFzaHRhZ3MgZm9yIFwibGlldXhcIlxyXG4gICAgY29uc3QgaGFzaHRhZ3MgPSB0ZXJtLm1hdGNoKC8oI1tBLVphLXpdKykvZykgfHwgW107XHJcbiAgICBsZXQga2VlcCA9IGZhbHNlO1xyXG4gICAga2VlcCA9IGhhc2h0YWdzLnNvbWUoKGhhc2h0YWcpID0+IHtcclxuICAgICAgY29uc3QgaGFzaHRhZ0tleSA9IGhhc2h0YWcuc3Vic3RyaW5nKDEpO1xyXG4gICAgICByZXR1cm4gdGhpcy5oYXNodGFnc0xpZXV4VG9LZWVwLnNvbWUoXHJcbiAgICAgICAgKGgpID0+XHJcbiAgICAgICAgICBoXHJcbiAgICAgICAgICAgIC50b0xvd2VyQ2FzZSgpXHJcbiAgICAgICAgICAgIC5ub3JtYWxpemUoJ05GRCcpXHJcbiAgICAgICAgICAgIC5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCAnJykgPT09XHJcbiAgICAgICAgICBoYXNodGFnS2V5XHJcbiAgICAgICAgICAgIC50b0xvd2VyQ2FzZSgpXHJcbiAgICAgICAgICAgIC5ub3JtYWxpemUoJ05GRCcpXHJcbiAgICAgICAgICAgIC5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCAnJylcclxuICAgICAgKTtcclxuICAgIH0pO1xyXG5cclxuICAgIGlmICgha2VlcCkge1xyXG4gICAgICB0ZXJtID0gdGVybS5yZXBsYWNlKC8oI1tBLVphLXpdKykvZywgJycpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0ZXJtLnJlcGxhY2UoL1teXFx3w4Atw78gIVxcLVxcK1xcKFxcKVxcLlxcL8K9wrzCviwnI10rL2csICcnKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZCBoYXNodGFnIHRvIHBhcmFtIGlmIHZhbGlkXHJcbiAgICogQHBhcmFtIHRlcm0gUXVlcnkgd2l0aCBoYXNodGFnXHJcbiAgICogQHBhcmFtIG9wdGlvbnMgVGV4dFNlYXJjaE9wdGlvbnNcclxuICAgKi9cclxuICBwcml2YXRlIGNvbXB1dGVPcHRpb25zUGFyYW0oXHJcbiAgICB0ZXJtOiBzdHJpbmcsXHJcbiAgICBvcHRpb25zOiBUZXh0U2VhcmNoT3B0aW9uc1xyXG4gICk6IFRleHRTZWFyY2hPcHRpb25zIHtcclxuICAgIGNvbnN0IGhhc2h0YWdzID0gc3VwZXIuZ2V0SGFzaHRhZ3NWYWxpZCh0ZXJtLCAndHlwZScpO1xyXG4gICAgaWYgKGhhc2h0YWdzKSB7XHJcbiAgICAgIG9wdGlvbnMucGFyYW1zID0gT2JqZWN0LmFzc2lnbihvcHRpb25zLnBhcmFtcyB8fCB7fSwge1xyXG4gICAgICAgIHR5cGU6IGhhc2h0YWdzLmpvaW4oJywnKVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gb3B0aW9ucztcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBJQ2hlcmNoZVJldmVyc2Ugc2VhcmNoIHNvdXJjZVxyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgSUNoZXJjaGVSZXZlcnNlU2VhcmNoU291cmNlXHJcbiAgZXh0ZW5kcyBTZWFyY2hTb3VyY2VcclxuICBpbXBsZW1lbnRzIFJldmVyc2VTZWFyY2hcclxue1xyXG4gIHN0YXRpYyBpZCA9ICdpY2hlcmNoZXJldmVyc2UnO1xyXG4gIHN0YXRpYyB0eXBlID0gRkVBVFVSRTtcclxuICBzdGF0aWMgcHJvcGVydGllc0JsYWNrbGlzdDogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgdGl0bGUkOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XHJcblxyXG4gIGdldCB0aXRsZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMudGl0bGUkLmdldFZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2UsXHJcbiAgICBASW5qZWN0KCdvcHRpb25zJykgb3B0aW9uczogU2VhcmNoU291cmNlT3B0aW9ucyxcclxuICAgIGluamVjdG9yOiBJbmplY3RvclxyXG4gICkge1xyXG4gICAgc3VwZXIob3B0aW9ucywgc3RvcmFnZVNlcnZpY2UpO1xyXG5cclxuICAgIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLmxhbmd1YWdlJC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLnRpdGxlJC5uZXh0KFxyXG4gICAgICAgIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KHRoaXMub3B0aW9ucy50aXRsZSlcclxuICAgICAgKTtcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IGF1dGhTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KEF1dGhTZXJ2aWNlKTtcclxuICAgIGlmICh0aGlzLnNldHRpbmdzLmxlbmd0aCkge1xyXG4gICAgICBpZiAoIWF1dGhTZXJ2aWNlKSB7XHJcbiAgICAgICAgdGhpcy5nZXRBbGxvd2VkVHlwZXMoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBhdXRoU2VydmljZS5hdXRoZW50aWNhdGUkLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmdldEFsbG93ZWRUeXBlcygpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRJZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIElDaGVyY2hlUmV2ZXJzZVNlYXJjaFNvdXJjZS5pZDtcclxuICB9XHJcblxyXG4gIGdldFR5cGUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBJQ2hlcmNoZVJldmVyc2VTZWFyY2hTb3VyY2UudHlwZTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBnZXREZWZhdWx0T3B0aW9ucygpOiBTZWFyY2hTb3VyY2VPcHRpb25zIHtcclxuICAgIGNvbnN0IHR5cGVzID1cclxuICAgICAgdGhpcy5vcHRpb25zLnBhcmFtcyAmJiB0aGlzLm9wdGlvbnMucGFyYW1zLnR5cGVcclxuICAgICAgICA/IHRoaXMub3B0aW9ucy5wYXJhbXMudHlwZS5yZXBsYWNlKC9cXHMvZywgJycpLnRvTG93ZXJDYXNlKCkuc3BsaXQoJywnKVxyXG4gICAgICAgIDogWydhZHJlc3NlcycsICdtdW5pY2lwYWxpdGVzJywgJ21yYycsICdyZWdhZG1pbiddO1xyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIHRpdGxlOiAnaWdvLmdlby5zZWFyY2guaWNoZXJjaGVSZXZlcnNlLm5hbWUnLFxyXG4gICAgICBzZWFyY2hVcmw6ICdodHRwczovL2dlb2VnbC5tc3AuZ291di5xYy5jYS9hcGlzL3RlcnJhcGknLFxyXG4gICAgICBzZXR0aW5nczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIHR5cGU6ICdjaGVja2JveCcsXHJcbiAgICAgICAgICB0aXRsZTogJ3Jlc3VsdHMgdHlwZScsXHJcbiAgICAgICAgICBuYW1lOiAndHlwZScsXHJcbiAgICAgICAgICB2YWx1ZXM6IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnaWdvLmdlby5zZWFyY2guaWNoZXJjaGUudHlwZS5hZGRyZXNzJyxcclxuICAgICAgICAgICAgICB2YWx1ZTogJ2FkcmVzc2VzJyxcclxuICAgICAgICAgICAgICBlbmFibGVkOiB0eXBlcy5pbmRleE9mKCdhZHJlc3NlcycpICE9PSAtMVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6ICdpZ28uZ2VvLnNlYXJjaC5pY2hlcmNoZS50eXBlLnJvYWQnLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAncm91dGVzJyxcclxuICAgICAgICAgICAgICBlbmFibGVkOiB0eXBlcy5pbmRleE9mKCdyb3V0ZXMnKSAhPT0gLTEsXHJcbiAgICAgICAgICAgICAgYXZhaWxhYmxlOiBmYWxzZVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6ICdpZ28uZ2VvLnNlYXJjaC5pY2hlcmNoZS50eXBlLmRpc3RyaWN0JyxcclxuICAgICAgICAgICAgICB2YWx1ZTogJ2Fycm9uZGlzc2VtZW50cycsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogdHlwZXMuaW5kZXhPZignYXJyb25kaXNzZW1lbnRzJykgIT09IC0xXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmljaGVyY2hlLnR5cGUuY2l0eScsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICdtdW5pY2lwYWxpdGVzJyxcclxuICAgICAgICAgICAgICBlbmFibGVkOiB0eXBlcy5pbmRleE9mKCdtdW5pY2lwYWxpdGVzJykgIT09IC0xXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmljaGVyY2hlLnR5cGUubXJjJyxcclxuICAgICAgICAgICAgICB2YWx1ZTogJ21yYycsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogdHlwZXMuaW5kZXhPZignbXJjJykgIT09IC0xXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmljaGVyY2hlLnR5cGUucmVnYWRtaW4nLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAncmVnYWRtaW4nLFxyXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHR5cGVzLmluZGV4T2YoJ3JlZ2FkbWluJykgIT09IC0xXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIF1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHR5cGU6ICdyYWRpb2J1dHRvbicsXHJcbiAgICAgICAgICB0aXRsZTogJ3JhZGl1cycsXHJcbiAgICAgICAgICBuYW1lOiAnYnVmZmVySW5wdXQnLFxyXG4gICAgICAgICAgdmFsdWVzOiBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJzEwMCBtJyxcclxuICAgICAgICAgICAgICB2YWx1ZTogMTAwLFxyXG4gICAgICAgICAgICAgIGVuYWJsZWQ6ICF0aGlzLm9wdGlvbnMuZGlzdGFuY2UgfHwgdGhpcy5vcHRpb25zLmRpc3RhbmNlID09PSAxMDBcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnNTAwIG0nLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiA1MDAsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogdGhpcy5vcHRpb25zLmRpc3RhbmNlID09PSA1MDBcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnMSBrbScsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IDEwMDAsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogdGhpcy5vcHRpb25zLmRpc3RhbmNlID09PSAxMDAwXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJzIga20nLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAyMDAwLFxyXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHRoaXMub3B0aW9ucy5kaXN0YW5jZSA9PT0gMjAwMFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6ICc1IGttJyxcclxuICAgICAgICAgICAgICB2YWx1ZTogNTAwMCxcclxuICAgICAgICAgICAgICBlbmFibGVkOiB0aGlzLm9wdGlvbnMuZGlzdGFuY2UgPT09IDUwMDBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgXVxyXG4gICAgICAgIH1cclxuICAgICAgXVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlYXJjaCBhIGxvY2F0aW9uIGJ5IGNvb3JkaW5hdGVzXHJcbiAgICogQHBhcmFtIGxvbkxhdCBMb2NhdGlvbiBjb29yZGluYXRlc1xyXG4gICAqIEBwYXJhbSBkaXN0YW5jZSBTZWFyY2ggcmFpZHVzIGFyb3VuZCBsb25MYXRcclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIG9mIDxTZWFyY2hSZXN1bHQ8RmVhdHVyZT5bXVxyXG4gICAqL1xyXG4gIHJldmVyc2VTZWFyY2goXHJcbiAgICBsb25MYXQ6IFtudW1iZXIsIG51bWJlcl0sXHJcbiAgICBvcHRpb25zPzogUmV2ZXJzZVNlYXJjaE9wdGlvbnNcclxuICApOiBPYnNlcnZhYmxlPFNlYXJjaFJlc3VsdDxGZWF0dXJlPltdPiB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSB0aGlzLmNvbXB1dGVSZXF1ZXN0UGFyYW1zKGxvbkxhdCwgb3B0aW9ucyB8fCB7fSk7XHJcbiAgICBpZiAoIXBhcmFtcy5nZXQoJ3R5cGUnKS5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIG9mKFtdKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmdldFJldmVyc2VTZWFyY2gocGFyYW1zKTtcclxuICB9XHJcblxyXG4gIEBDYWNoZWFibGUoe1xyXG4gICAgbWF4Q2FjaGVDb3VudDogMjAsXHJcbiAgICBjYWNoZUhhc2hlcjogY3VzdG9tQ2FjaGVIYXNoZXJcclxuICB9KVxyXG4gIHByaXZhdGUgZ2V0UmV2ZXJzZVNlYXJjaChcclxuICAgIHBhcmFtczogSHR0cFBhcmFtc1xyXG4gICk6IE9ic2VydmFibGU8U2VhcmNoUmVzdWx0PEZlYXR1cmU+W10+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuc2VhcmNoVXJsfS9sb2NhdGVgLCB7IHBhcmFtcyB9KS5waXBlKFxyXG4gICAgICBtYXAoKHJlc3BvbnNlOiBJQ2hlcmNoZVJldmVyc2VSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmV4dHJhY3RSZXN1bHRzKHJlc3BvbnNlKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEFsbG93ZWRUeXBlcygpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldChgJHt0aGlzLnNlYXJjaFVybH0vdHlwZXNgKVxyXG4gICAgICAuc3Vic2NyaWJlKCh0eXBlczogc3RyaW5nW10pID0+IHtcclxuICAgICAgICBjb25zdCB0eXBlU2V0dGluZyA9IHRoaXMuc2V0dGluZ3MuZmluZCgocykgPT4gcy5uYW1lID09PSAndHlwZScpO1xyXG4gICAgICAgIHR5cGVTZXR0aW5nLnZhbHVlcy5mb3JFYWNoKCh2KSA9PiB7XHJcbiAgICAgICAgICB2LmF2YWlsYWJsZSA9IHR5cGVzLmluZGV4T2Yodi52YWx1ZSBhcyBzdHJpbmcpID4gLTE7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5zZXRQYXJhbUZyb21TZXR0aW5nKHR5cGVTZXR0aW5nLCBmYWxzZSk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb21wdXRlUmVxdWVzdFBhcmFtcyhcclxuICAgIGxvbkxhdDogW251bWJlciwgbnVtYmVyXSxcclxuICAgIG9wdGlvbnM/OiBSZXZlcnNlU2VhcmNoT3B0aW9uc1xyXG4gICk6IEh0dHBQYXJhbXMge1xyXG4gICAgaWYgKG9wdGlvbnMuZGlzdGFuY2UgfHwgdGhpcy5vcHRpb25zLmRpc3RhbmNlKSB7XHJcbiAgICAgIG9wdGlvbnMucGFyYW1zID0gT2JqZWN0LmFzc2lnbihvcHRpb25zLnBhcmFtcyB8fCB7fSwge1xyXG4gICAgICAgIGJ1ZmZlcklucHV0OiBvcHRpb25zLmRpc3RhbmNlIHx8IHRoaXMub3B0aW9ucy5kaXN0YW5jZVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbmV3IEh0dHBQYXJhbXMoe1xyXG4gICAgICBmcm9tT2JqZWN0OiBPYmplY3QuYXNzaWduKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGxvYzogbG9uTGF0LmpvaW4oJywnKSxcclxuICAgICAgICAgIHNvcnQ6ICdkaXN0YW5jZScsXHJcbiAgICAgICAgICBnZW9tZXRyeTogdHJ1ZSxcclxuICAgICAgICAgIGljb246IHRydWVcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9wdGlvbnMucGFyYW1zIHx8IHt9LFxyXG4gICAgICAgIHRoaXMucGFyYW1zXHJcbiAgICAgIClcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBleHRyYWN0UmVzdWx0cyhcclxuICAgIHJlc3BvbnNlOiBJQ2hlcmNoZVJldmVyc2VSZXNwb25zZVxyXG4gICk6IFNlYXJjaFJlc3VsdDxGZWF0dXJlPltdIHtcclxuICAgIHJldHVybiByZXNwb25zZS5mZWF0dXJlcy5tYXAoKGRhdGE6IElDaGVyY2hlUmV2ZXJzZURhdGEpID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuZGF0YVRvUmVzdWx0KGRhdGEpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFN1YnRpdGxlKGRhdGE6IElDaGVyY2hlUmV2ZXJzZURhdGEpIHtcclxuICAgIGlmICghdGhpcy5zZXR0aW5ncy5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG4gICAgbGV0IHN1YnRpdGxlID0gJyc7XHJcbiAgICBzd2l0Y2ggKGRhdGEucHJvcGVydGllcy50eXBlKSB7XHJcbiAgICAgIGNhc2UgJ2Fycm9uZGlzc2VtZW50cyc6XHJcbiAgICAgICAgc3VidGl0bGUgPSBkYXRhLnByb3BlcnRpZXMubXVuaWNpcGFsaXRlICsgJyAoQXJyb25kaXNzZW1lbnQpJztcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBjb25zdCB0eXBlU2V0dGluZyA9IHRoaXMuc2V0dGluZ3MuZmluZCgocykgPT4gcy5uYW1lID09PSAndHlwZScpO1xyXG4gICAgICAgIGNvbnN0IHR5cGUgPSB0eXBlU2V0dGluZy52YWx1ZXMuZmluZChcclxuICAgICAgICAgICh0KSA9PiB0LnZhbHVlID09PSBkYXRhLnByb3BlcnRpZXMudHlwZVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKHR5cGUpIHtcclxuICAgICAgICAgIHN1YnRpdGxlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQodHlwZS50aXRsZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN1YnRpdGxlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkYXRhVG9SZXN1bHQoZGF0YTogSUNoZXJjaGVSZXZlcnNlRGF0YSk6IFNlYXJjaFJlc3VsdDxGZWF0dXJlPiB7XHJcbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gdGhpcy5jb21wdXRlUHJvcGVydGllcyhkYXRhKTtcclxuICAgIGNvbnN0IGV4dGVudCA9IHRoaXMuY29tcHV0ZUV4dGVudChkYXRhKTtcclxuICAgIGNvbnN0IGlkID0gW3RoaXMuZ2V0SWQoKSwgcHJvcGVydGllcy50eXBlLCBwcm9wZXJ0aWVzLmNvZGVdLmpvaW4oJy4nKTtcclxuXHJcbiAgICBjb25zdCB0aXRsZUh0bWwgPSBkYXRhLnByb3BlcnRpZXMubm9tO1xyXG4gICAgY29uc3Qgc3VidGl0bGVIdG1sID0gJyA8c21hbGw+ICcgKyB0aGlzLmdldFN1YnRpdGxlKGRhdGEpICsgJzwvc21hbGw+JztcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBzb3VyY2U6IHRoaXMsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICB0eXBlOiBGRUFUVVJFLFxyXG4gICAgICAgIHByb2plY3Rpb246ICdFUFNHOjQzMjYnLFxyXG4gICAgICAgIGdlb21ldHJ5OiBkYXRhLmdlb21ldHJ5LFxyXG4gICAgICAgIGV4dGVudCxcclxuICAgICAgICBwcm9wZXJ0aWVzLFxyXG4gICAgICAgIG1ldGE6IHtcclxuICAgICAgICAgIGlkLFxyXG4gICAgICAgICAgdGl0bGU6IGRhdGEucHJvcGVydGllcy5ub21cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIG1ldGE6IHtcclxuICAgICAgICBkYXRhVHlwZTogRkVBVFVSRSxcclxuICAgICAgICBpZCxcclxuICAgICAgICB0aXRsZTogZGF0YS5wcm9wZXJ0aWVzLm5vbSxcclxuICAgICAgICB0aXRsZUh0bWw6IHRpdGxlSHRtbCArIHN1YnRpdGxlSHRtbCxcclxuICAgICAgICBpY29uOiBkYXRhLmljb24gfHwgJ21hcC1tYXJrZXInLFxyXG4gICAgICAgIHBvaW50ZXJTdW1tYXJ5VGl0bGU6IHRoaXMuZ2V0U3VidGl0bGUoZGF0YSkgKyAnOiAnICsgZGF0YS5wcm9wZXJ0aWVzLm5vbVxyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb21wdXRlUHJvcGVydGllcyhkYXRhOiBJQ2hlcmNoZVJldmVyc2VEYXRhKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB7XHJcbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gT2JqZWN0VXRpbHMucmVtb3ZlS2V5cyhcclxuICAgICAgZGF0YS5wcm9wZXJ0aWVzLFxyXG4gICAgICBJQ2hlcmNoZVJldmVyc2VTZWFyY2hTb3VyY2UucHJvcGVydGllc0JsYWNrbGlzdFxyXG4gICAgKTtcclxuXHJcbiAgICBjb25zdCByb3V0aW5nOiB7XHJcbiAgICAgIFJvdXRlOiBzdHJpbmc7XHJcbiAgICB9ID0ge1xyXG4gICAgICBSb3V0ZTpcclxuICAgICAgICAnPHNwYW4gY2xhc3M9XCJyb3V0aW5nXCI+IDx1PicgK1xyXG4gICAgICAgIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLnNlZVJvdXRpbmcnKSArXHJcbiAgICAgICAgJzwvdT4gPC9zcGFuPidcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24ocHJvcGVydGllcywgcm91dGluZyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbXB1dGVFeHRlbnQoXHJcbiAgICBkYXRhOiBJQ2hlcmNoZVJldmVyc2VEYXRhXHJcbiAgKTogW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl0gfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIGRhdGEuYmJveFxyXG4gICAgICA/IFtkYXRhLmJib3hbMF0sIGRhdGEuYmJveFsyXSwgZGF0YS5iYm94WzFdLCBkYXRhLmJib3hbM11dXHJcbiAgICAgIDogdW5kZWZpbmVkO1xyXG4gIH1cclxufVxyXG4iXX0=