@igo2/geo 1.14.1 → 1.14.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (871) hide show
  1. package/esm2020/igo2-geo.mjs +4 -4
  2. package/esm2020/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +301 -299
  3. package/esm2020/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +306 -268
  4. package/esm2020/lib/catalog/catalog-browser/catalog-browser.component.mjs +247 -247
  5. package/esm2020/lib/catalog/catalog-browser/catalog-browser.module.mjs +79 -79
  6. package/esm2020/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +208 -208
  7. package/esm2020/lib/catalog/catalog-library/catalog-library-item.component.mjs +78 -78
  8. package/esm2020/lib/catalog/catalog-library/catalog-library.component.mjs +216 -216
  9. package/esm2020/lib/catalog/catalog-library/catalog-library.module.mjs +94 -94
  10. package/esm2020/lib/catalog/catalog.module.mjs +52 -52
  11. package/esm2020/lib/catalog/index.mjs +4 -4
  12. package/esm2020/lib/catalog/shared/catalog.abstract.mjs +94 -94
  13. package/esm2020/lib/catalog/shared/catalog.enum.mjs +15 -15
  14. package/esm2020/lib/catalog/shared/catalog.interface.mjs +1 -1
  15. package/esm2020/lib/catalog/shared/catalog.service.mjs +605 -605
  16. package/esm2020/lib/catalog/shared/index.mjs +4 -4
  17. package/esm2020/lib/datasource/datasource.module.mjs +21 -21
  18. package/esm2020/lib/datasource/index.mjs +2 -2
  19. package/esm2020/lib/datasource/shared/capabilities.service.mjs +430 -430
  20. package/esm2020/lib/datasource/shared/datasource.service.mjs +235 -235
  21. package/esm2020/lib/datasource/shared/datasources/any-datasource.interface.mjs +1 -1
  22. package/esm2020/lib/datasource/shared/datasources/any-datasource.mjs +1 -1
  23. package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.interface.mjs +1 -1
  24. package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +144 -144
  25. package/esm2020/lib/datasource/shared/datasources/carto-datasource.interface.mjs +1 -1
  26. package/esm2020/lib/datasource/shared/datasources/carto-datasource.mjs +108 -108
  27. package/esm2020/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +1 -1
  28. package/esm2020/lib/datasource/shared/datasources/cluster-datasource.mjs +14 -14
  29. package/esm2020/lib/datasource/shared/datasources/data.service.mjs +2 -2
  30. package/esm2020/lib/datasource/shared/datasources/datasource.interface.mjs +1 -1
  31. package/esm2020/lib/datasource/shared/datasources/datasource.mjs +28 -28
  32. package/esm2020/lib/datasource/shared/datasources/feature-datasource.interface.mjs +1 -1
  33. package/esm2020/lib/datasource/shared/datasources/feature-datasource.mjs +42 -42
  34. package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.mjs +1 -1
  35. package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +56 -56
  36. package/esm2020/lib/datasource/shared/datasources/index.mjs +35 -35
  37. package/esm2020/lib/datasource/shared/datasources/mvt-datasource.interface.mjs +1 -1
  38. package/esm2020/lib/datasource/shared/datasources/mvt-datasource.mjs +27 -27
  39. package/esm2020/lib/datasource/shared/datasources/osm-datasource.interface.mjs +1 -1
  40. package/esm2020/lib/datasource/shared/datasources/osm-datasource.mjs +11 -11
  41. package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.mjs +1 -1
  42. package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +48 -48
  43. package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.interface.mjs +1 -1
  44. package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.mjs +14 -14
  45. package/esm2020/lib/datasource/shared/datasources/websocket-datasource.interface.mjs +1 -1
  46. package/esm2020/lib/datasource/shared/datasources/websocket-datasource.mjs +53 -53
  47. package/esm2020/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +1 -1
  48. package/esm2020/lib/datasource/shared/datasources/wfs-datasource.mjs +71 -71
  49. package/esm2020/lib/datasource/shared/datasources/wfs.service.mjs +151 -151
  50. package/esm2020/lib/datasource/shared/datasources/wms-datasource.interface.mjs +1 -1
  51. package/esm2020/lib/datasource/shared/datasources/wms-datasource.mjs +205 -205
  52. package/esm2020/lib/datasource/shared/datasources/wms-wfs.utils.mjs +206 -206
  53. package/esm2020/lib/datasource/shared/datasources/wmts-datasource.interface.mjs +1 -1
  54. package/esm2020/lib/datasource/shared/datasources/wmts-datasource.mjs +15 -15
  55. package/esm2020/lib/datasource/shared/datasources/xyz-datasource.interface.mjs +1 -1
  56. package/esm2020/lib/datasource/shared/datasources/xyz-datasource.mjs +8 -8
  57. package/esm2020/lib/datasource/shared/index.mjs +4 -4
  58. package/esm2020/lib/datasource/shared/options/index.mjs +4 -4
  59. package/esm2020/lib/datasource/shared/options/options-api.interface.mjs +1 -1
  60. package/esm2020/lib/datasource/shared/options/options-api.providers.mjs +14 -14
  61. package/esm2020/lib/datasource/shared/options/options-api.service.mjs +80 -80
  62. package/esm2020/lib/datasource/shared/options/options.service.mjs +2 -2
  63. package/esm2020/lib/datasource/utils/esri-style-generator.mjs +356 -356
  64. package/esm2020/lib/datasource/utils/index.mjs +2 -2
  65. package/esm2020/lib/datasource/utils/tilegrid.mjs +19 -19
  66. package/esm2020/lib/directions/directions-buttons/directions-buttons.component.mjs +223 -223
  67. package/esm2020/lib/directions/directions-buttons/index.mjs +1 -1
  68. package/esm2020/lib/directions/directions-inputs/directions-inputs.component.mjs +289 -289
  69. package/esm2020/lib/directions/directions-inputs/index.mjs +1 -1
  70. package/esm2020/lib/directions/directions-results/directions-results.component.mjs +195 -195
  71. package/esm2020/lib/directions/directions-results/index.mjs +1 -1
  72. package/esm2020/lib/directions/directions-sources/directions-source.interface.mjs +1 -1
  73. package/esm2020/lib/directions/directions-sources/directions-source.mjs +2 -2
  74. package/esm2020/lib/directions/directions-sources/directions-source.provider.mjs +15 -15
  75. package/esm2020/lib/directions/directions-sources/index.mjs +4 -4
  76. package/esm2020/lib/directions/directions-sources/osrm-directions-source.mjs +98 -98
  77. package/esm2020/lib/directions/directions.component.mjs +310 -310
  78. package/esm2020/lib/directions/directions.module.mjs +101 -101
  79. package/esm2020/lib/directions/index.mjs +6 -6
  80. package/esm2020/lib/directions/shared/directions-source.service.mjs +16 -16
  81. package/esm2020/lib/directions/shared/directions.enum.mjs +27 -27
  82. package/esm2020/lib/directions/shared/directions.interface.mjs +1 -1
  83. package/esm2020/lib/directions/shared/directions.service.mjs +28 -28
  84. package/esm2020/lib/directions/shared/directions.utils.mjs +508 -508
  85. package/esm2020/lib/directions/shared/index.mjs +5 -5
  86. package/esm2020/lib/directions/shared/store.mjs +23 -23
  87. package/esm2020/lib/download/download-button/download-button.component.mjs +60 -60
  88. package/esm2020/lib/download/download-button/index.mjs +1 -1
  89. package/esm2020/lib/download/download.module.mjs +41 -41
  90. package/esm2020/lib/download/index.mjs +2 -2
  91. package/esm2020/lib/download/shared/download.interface.mjs +1 -1
  92. package/esm2020/lib/download/shared/download.service.mjs +64 -64
  93. package/esm2020/lib/download/shared/index.mjs +2 -2
  94. package/esm2020/lib/draw/draw/draw-layer-popup.component.mjs +54 -54
  95. package/esm2020/lib/draw/draw/draw-popup.component.mjs +590 -590
  96. package/esm2020/lib/draw/draw/draw-shorcuts.component.mjs +47 -47
  97. package/esm2020/lib/draw/draw/draw.component.mjs +1298 -1298
  98. package/esm2020/lib/draw/draw/draw.module.mjs +112 -112
  99. package/esm2020/lib/draw/drawingTool.module.mjs +19 -19
  100. package/esm2020/lib/draw/index.mjs +2 -2
  101. package/esm2020/lib/draw/shared/draw-icon.service.mjs +26 -26
  102. package/esm2020/lib/draw/shared/draw-style.service.mjs +189 -189
  103. package/esm2020/lib/draw/shared/draw.enum.mjs +36 -36
  104. package/esm2020/lib/draw/shared/draw.interface.mjs +1 -1
  105. package/esm2020/lib/draw/shared/draw.utils.mjs +121 -121
  106. package/esm2020/lib/draw/shared/index.mjs +5 -5
  107. package/esm2020/lib/feature/feature-details/feature-details.component.mjs +404 -404
  108. package/esm2020/lib/feature/feature-details/feature-details.directive.mjs +53 -53
  109. package/esm2020/lib/feature/feature-details/feature-details.module.mjs +47 -47
  110. package/esm2020/lib/feature/feature-form/feature-form.component.mjs +111 -111
  111. package/esm2020/lib/feature/feature-form/feature-form.module.mjs +33 -33
  112. package/esm2020/lib/feature/feature.module.mjs +27 -27
  113. package/esm2020/lib/feature/index.mjs +3 -3
  114. package/esm2020/lib/feature/shared/feature.enums.mjs +8 -8
  115. package/esm2020/lib/feature/shared/feature.interfaces.mjs +1 -1
  116. package/esm2020/lib/feature/shared/feature.utils.mjs +346 -346
  117. package/esm2020/lib/feature/shared/index.mjs +6 -6
  118. package/esm2020/lib/feature/shared/store.mjs +123 -123
  119. package/esm2020/lib/feature/shared/strategies/in-map-extent.mjs +112 -112
  120. package/esm2020/lib/feature/shared/strategies/in-map-resolution.mjs +93 -93
  121. package/esm2020/lib/feature/shared/strategies/index.mjs +5 -5
  122. package/esm2020/lib/feature/shared/strategies/loading-layer.mjs +103 -103
  123. package/esm2020/lib/feature/shared/strategies/loading.mjs +132 -132
  124. package/esm2020/lib/feature/shared/strategies/selection.mjs +369 -369
  125. package/esm2020/lib/feature/shared/strategies.utils.mjs +36 -36
  126. package/esm2020/lib/filter/filter.module.mjs +288 -288
  127. package/esm2020/lib/filter/index.mjs +15 -15
  128. package/esm2020/lib/filter/ogc-filter-button/index.mjs +1 -1
  129. package/esm2020/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +139 -139
  130. package/esm2020/lib/filter/ogc-filter-form/index.mjs +1 -1
  131. package/esm2020/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +644 -644
  132. package/esm2020/lib/filter/ogc-filter-selection/index.mjs +1 -1
  133. package/esm2020/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +1301 -1301
  134. package/esm2020/lib/filter/ogc-filter-time/index.mjs +2 -2
  135. package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +176 -176
  136. package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +897 -897
  137. package/esm2020/lib/filter/ogc-filterable-form/index.mjs +1 -1
  138. package/esm2020/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +58 -58
  139. package/esm2020/lib/filter/ogc-filterable-item/index.mjs +1 -1
  140. package/esm2020/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +306 -306
  141. package/esm2020/lib/filter/ogc-filterable-list/index.mjs +2 -2
  142. package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +30 -30
  143. package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +43 -43
  144. package/esm2020/lib/filter/shared/filterable-datasource.pipe.mjs +54 -54
  145. package/esm2020/lib/filter/shared/index.mjs +11 -11
  146. package/esm2020/lib/filter/shared/ogc-filter-time.service.mjs +71 -71
  147. package/esm2020/lib/filter/shared/ogc-filter.enum.mjs +29 -29
  148. package/esm2020/lib/filter/shared/ogc-filter.interface.mjs +1 -1
  149. package/esm2020/lib/filter/shared/ogc-filter.mjs +691 -691
  150. package/esm2020/lib/filter/shared/ogc-filter.service.mjs +45 -45
  151. package/esm2020/lib/filter/shared/spatial-filter.enum.mjs +22 -22
  152. package/esm2020/lib/filter/shared/spatial-filter.interface.mjs +1 -1
  153. package/esm2020/lib/filter/shared/spatial-filter.service.mjs +268 -268
  154. package/esm2020/lib/filter/shared/time-filter.enum.mjs +12 -12
  155. package/esm2020/lib/filter/shared/time-filter.interface.mjs +1 -1
  156. package/esm2020/lib/filter/shared/time-filter.service.mjs +106 -106
  157. package/esm2020/lib/filter/spatial-filter/spatial-filter-item/index.mjs +1 -1
  158. package/esm2020/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +1088 -1088
  159. package/esm2020/lib/filter/spatial-filter/spatial-filter-list/index.mjs +1 -1
  160. package/esm2020/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +207 -207
  161. package/esm2020/lib/filter/spatial-filter/spatial-filter-type/index.mjs +1 -1
  162. package/esm2020/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +143 -143
  163. package/esm2020/lib/filter/time-filter-button/index.mjs +1 -1
  164. package/esm2020/lib/filter/time-filter-button/time-filter-button.component.mjs +77 -77
  165. package/esm2020/lib/filter/time-filter-form/index.mjs +1 -1
  166. package/esm2020/lib/filter/time-filter-form/time-filter-form.component.mjs +733 -733
  167. package/esm2020/lib/filter/time-filter-item/index.mjs +1 -1
  168. package/esm2020/lib/filter/time-filter-item/time-filter-item.component.mjs +118 -118
  169. package/esm2020/lib/filter/time-filter-list/index.mjs +2 -2
  170. package/esm2020/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +30 -30
  171. package/esm2020/lib/filter/time-filter-list/time-filter-list.component.mjs +38 -38
  172. package/esm2020/lib/geo.module.mjs +101 -101
  173. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +520 -520
  174. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +188 -188
  175. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +63 -63
  176. package/esm2020/lib/geometry/geometry.module.mjs +26 -26
  177. package/esm2020/lib/geometry/index.mjs +3 -3
  178. package/esm2020/lib/geometry/shared/controls/draw.mjs +313 -313
  179. package/esm2020/lib/geometry/shared/controls/index.mjs +3 -3
  180. package/esm2020/lib/geometry/shared/controls/modify.mjs +520 -520
  181. package/esm2020/lib/geometry/shared/controls/slice.mjs +176 -176
  182. package/esm2020/lib/geometry/shared/geometry.errors.mjs +25 -25
  183. package/esm2020/lib/geometry/shared/geometry.interfaces.mjs +1 -1
  184. package/esm2020/lib/geometry/shared/geometry.utils.mjs +121 -121
  185. package/esm2020/lib/geometry/shared/index.mjs +4 -4
  186. package/esm2020/lib/import-export/export-button/export-button.component.mjs +63 -63
  187. package/esm2020/lib/import-export/export-button/index.mjs +1 -1
  188. package/esm2020/lib/import-export/import-export/import-export.component.mjs +1219 -1219
  189. package/esm2020/lib/import-export/import-export/index.mjs +1 -1
  190. package/esm2020/lib/import-export/import-export.module.mjs +95 -95
  191. package/esm2020/lib/import-export/index.mjs +4 -4
  192. package/esm2020/lib/import-export/shared/drop-geo-file.directive.mjs +134 -134
  193. package/esm2020/lib/import-export/shared/export.errors.mjs +14 -14
  194. package/esm2020/lib/import-export/shared/export.interface.mjs +1 -1
  195. package/esm2020/lib/import-export/shared/export.service.mjs +195 -195
  196. package/esm2020/lib/import-export/shared/export.type.mjs +3 -3
  197. package/esm2020/lib/import-export/shared/export.utils.mjs +54 -54
  198. package/esm2020/lib/import-export/shared/import.errors.mjs +38 -38
  199. package/esm2020/lib/import-export/shared/import.interface.mjs +1 -1
  200. package/esm2020/lib/import-export/shared/import.service.mjs +214 -214
  201. package/esm2020/lib/import-export/shared/import.utils.mjs +234 -234
  202. package/esm2020/lib/import-export/shared/index.mjs +10 -10
  203. package/esm2020/lib/import-export/style-list/index.mjs +4 -4
  204. package/esm2020/lib/import-export/style-list/style-list.interface.mjs +1 -1
  205. package/esm2020/lib/import-export/style-list/style-list.module.mjs +22 -22
  206. package/esm2020/lib/import-export/style-list/style-list.provider.mjs +20 -20
  207. package/esm2020/lib/import-export/style-list/style-list.service.mjs +50 -50
  208. package/esm2020/lib/layer/index.mjs +10 -10
  209. package/esm2020/lib/layer/layer-item/index.mjs +1 -1
  210. package/esm2020/lib/layer/layer-item/layer-item.component.mjs +299 -299
  211. package/esm2020/lib/layer/layer-legend/index.mjs +1 -1
  212. package/esm2020/lib/layer/layer-legend/layer-legend.component.mjs +387 -387
  213. package/esm2020/lib/layer/layer-legend-item/index.mjs +1 -1
  214. package/esm2020/lib/layer/layer-legend-item/layer-legend-item.component.mjs +83 -83
  215. package/esm2020/lib/layer/layer-legend-list/index.mjs +2 -2
  216. package/esm2020/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +47 -47
  217. package/esm2020/lib/layer/layer-legend-list/layer-legend-list.component.mjs +194 -194
  218. package/esm2020/lib/layer/layer-list/index.mjs +3 -3
  219. package/esm2020/lib/layer/layer-list/layer-list-binding.directive.mjs +58 -58
  220. package/esm2020/lib/layer/layer-list/layer-list.component.mjs +1008 -1008
  221. package/esm2020/lib/layer/layer-list/layer-list.enum.mjs +18 -18
  222. package/esm2020/lib/layer/layer-list-tool/index.mjs +4 -4
  223. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.component.mjs +164 -164
  224. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.enum.mjs +6 -6
  225. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.interface.mjs +1 -1
  226. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.service.mjs +21 -21
  227. package/esm2020/lib/layer/layer.module.mjs +184 -184
  228. package/esm2020/lib/layer/shared/clusterParam.mjs +1 -1
  229. package/esm2020/lib/layer/shared/index.mjs +6 -6
  230. package/esm2020/lib/layer/shared/layer.enums.mjs +1 -1
  231. package/esm2020/lib/layer/shared/layer.service.mjs +185 -185
  232. package/esm2020/lib/layer/shared/layers/any-layer.interface.mjs +1 -1
  233. package/esm2020/lib/layer/shared/layers/any-layer.mjs +1 -1
  234. package/esm2020/lib/layer/shared/layers/image-layer.interface.mjs +1 -1
  235. package/esm2020/lib/layer/shared/layers/image-layer.mjs +67 -67
  236. package/esm2020/lib/layer/shared/layers/index.mjs +12 -12
  237. package/esm2020/lib/layer/shared/layers/layer.interface.mjs +17 -17
  238. package/esm2020/lib/layer/shared/layers/layer.mjs +163 -163
  239. package/esm2020/lib/layer/shared/layers/tile-layer.interface.mjs +1 -1
  240. package/esm2020/lib/layer/shared/layers/tile-layer.mjs +46 -46
  241. package/esm2020/lib/layer/shared/layers/vector-layer.interface.mjs +1 -1
  242. package/esm2020/lib/layer/shared/layers/vector-layer.mjs +377 -377
  243. package/esm2020/lib/layer/shared/layers/vectortile-layer.interface.mjs +1 -1
  244. package/esm2020/lib/layer/shared/layers/vectortile-layer.mjs +103 -103
  245. package/esm2020/lib/layer/shared/style.service.mjs +355 -355
  246. package/esm2020/lib/layer/shared/vector-style.interface.mjs +1 -1
  247. package/esm2020/lib/layer/style-modal/index.mjs +1 -1
  248. package/esm2020/lib/layer/style-modal/style-modal.component.mjs +287 -287
  249. package/esm2020/lib/layer/track-feature-button/index.mjs +1 -1
  250. package/esm2020/lib/layer/track-feature-button/track-feature-button.component.mjs +58 -58
  251. package/esm2020/lib/layer/utils/image-watcher.mjs +61 -61
  252. package/esm2020/lib/layer/utils/index.mjs +5 -5
  253. package/esm2020/lib/layer/utils/layer.utils.mjs +9 -9
  254. package/esm2020/lib/layer/utils/outputLegend.mjs +26 -26
  255. package/esm2020/lib/layer/utils/tile-watcher.mjs +49 -49
  256. package/esm2020/lib/layer/utils/vector-watcher.mjs +47 -47
  257. package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.animation.mjs +19 -19
  258. package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +96 -96
  259. package/esm2020/lib/map/baselayers-switcher/index.mjs +2 -2
  260. package/esm2020/lib/map/baselayers-switcher/mini-basemap.component.mjs +141 -133
  261. package/esm2020/lib/map/geolocate-button/geolocate-button.component.mjs +78 -78
  262. package/esm2020/lib/map/geolocate-button/index.mjs +1 -1
  263. package/esm2020/lib/map/home-extent-button/home-extent-button.component.mjs +62 -62
  264. package/esm2020/lib/map/home-extent-button/index.mjs +1 -1
  265. package/esm2020/lib/map/index.mjs +13 -13
  266. package/esm2020/lib/map/info-section/index.mjs +1 -1
  267. package/esm2020/lib/map/info-section/info-section.component.mjs +29 -29
  268. package/esm2020/lib/map/map-browser/index.mjs +1 -1
  269. package/esm2020/lib/map/map-browser/map-browser.component.mjs +65 -65
  270. package/esm2020/lib/map/map-center/index.mjs +1 -1
  271. package/esm2020/lib/map/map-center/map-center.component.mjs +49 -49
  272. package/esm2020/lib/map/map.module.mjs +126 -126
  273. package/esm2020/lib/map/menu-button/index.mjs +1 -1
  274. package/esm2020/lib/map/menu-button/menu-button.component.mjs +61 -61
  275. package/esm2020/lib/map/offline-button/index.mjs +1 -1
  276. package/esm2020/lib/map/offline-button/offline-button.component.mjs +75 -75
  277. package/esm2020/lib/map/rotation-button/index.mjs +1 -1
  278. package/esm2020/lib/map/rotation-button/rotation-button.component.mjs +69 -69
  279. package/esm2020/lib/map/shared/controllers/controller.mjs +41 -41
  280. package/esm2020/lib/map/shared/controllers/geolocation.mjs +307 -307
  281. package/esm2020/lib/map/shared/controllers/index.mjs +3 -3
  282. package/esm2020/lib/map/shared/controllers/view.mjs +350 -350
  283. package/esm2020/lib/map/shared/hover-feature.directive.mjs +502 -502
  284. package/esm2020/lib/map/shared/index.mjs +13 -13
  285. package/esm2020/lib/map/shared/linkedLayers.utils.mjs +237 -237
  286. package/esm2020/lib/map/shared/map-pointer-position.directive.mjs +106 -106
  287. package/esm2020/lib/map/shared/map.enums.mjs +5 -5
  288. package/esm2020/lib/map/shared/map.interface.mjs +1 -1
  289. package/esm2020/lib/map/shared/map.mjs +406 -406
  290. package/esm2020/lib/map/shared/map.service.mjs +28 -28
  291. package/esm2020/lib/map/shared/map.utils.mjs +463 -462
  292. package/esm2020/lib/map/shared/mapOffline.directive.mjs +162 -162
  293. package/esm2020/lib/map/shared/projection.interfaces.mjs +1 -1
  294. package/esm2020/lib/map/shared/projection.service.mjs +64 -64
  295. package/esm2020/lib/map/shared/projection.utils.mjs +63 -63
  296. package/esm2020/lib/map/swipe-control/index.mjs +1 -1
  297. package/esm2020/lib/map/swipe-control/swipe-control.component.mjs +192 -192
  298. package/esm2020/lib/map/utils/layer-watcher.mjs +78 -78
  299. package/esm2020/lib/map/wake-lock-button/index.mjs +1 -1
  300. package/esm2020/lib/map/wake-lock-button/wake-lock-button.component.mjs +113 -113
  301. package/esm2020/lib/map/zoom-button/index.mjs +1 -1
  302. package/esm2020/lib/map/zoom-button/zoom-button.component.mjs +39 -39
  303. package/esm2020/lib/measure/index.mjs +3 -3
  304. package/esm2020/lib/measure/measure.module.mjs +19 -19
  305. package/esm2020/lib/measure/measurer/measure-format.pipe.mjs +36 -36
  306. package/esm2020/lib/measure/measurer/measurer-dialog.component.mjs +179 -179
  307. package/esm2020/lib/measure/measurer/measurer-item.component.mjs +139 -139
  308. package/esm2020/lib/measure/measurer/measurer.component.mjs +1041 -1041
  309. package/esm2020/lib/measure/measurer/measurer.module.mjs +93 -93
  310. package/esm2020/lib/measure/shared/index.mjs +3 -3
  311. package/esm2020/lib/measure/shared/measure.enum.mjs +36 -36
  312. package/esm2020/lib/measure/shared/measure.interfaces.mjs +1 -1
  313. package/esm2020/lib/measure/shared/measure.utils.mjs +488 -488
  314. package/esm2020/lib/metadata/index.mjs +2 -2
  315. package/esm2020/lib/metadata/metadata-button/index.mjs +1 -1
  316. package/esm2020/lib/metadata/metadata-button/metadata-button.component.mjs +133 -133
  317. package/esm2020/lib/metadata/metadata.module.mjs +54 -54
  318. package/esm2020/lib/metadata/shared/index.mjs +2 -2
  319. package/esm2020/lib/metadata/shared/metadata.interface.mjs +1 -1
  320. package/esm2020/lib/metadata/shared/metadata.service.mjs +18 -18
  321. package/esm2020/lib/offline/geoDB/configFileToGeoDB.service.mjs +104 -104
  322. package/esm2020/lib/offline/geoDB/geoDB.enums.mjs +5 -5
  323. package/esm2020/lib/offline/geoDB/geoDB.interface.mjs +1 -1
  324. package/esm2020/lib/offline/geoDB/geoDB.service.mjs +166 -166
  325. package/esm2020/lib/offline/geoDB/index.mjs +4 -4
  326. package/esm2020/lib/offline/index.mjs +2 -2
  327. package/esm2020/lib/offline/shared/geo-network.service.mjs +65 -65
  328. package/esm2020/lib/offline/shared/index.mjs +1 -1
  329. package/esm2020/lib/overlay/index.mjs +1 -1
  330. package/esm2020/lib/overlay/overlay.module.mjs +22 -22
  331. package/esm2020/lib/overlay/shared/index.mjs +6 -6
  332. package/esm2020/lib/overlay/shared/overlay-marker-style.utils.mjs +68 -68
  333. package/esm2020/lib/overlay/shared/overlay.directive.mjs +32 -32
  334. package/esm2020/lib/overlay/shared/overlay.enum.mjs +7 -7
  335. package/esm2020/lib/overlay/shared/overlay.mjs +129 -129
  336. package/esm2020/lib/overlay/shared/overlay.service.mjs +26 -26
  337. package/esm2020/lib/overlay/shared/overlay.utils.mjs +102 -102
  338. package/esm2020/lib/print/index.mjs +3 -3
  339. package/esm2020/lib/print/print/print.component.mjs +126 -123
  340. package/esm2020/lib/print/print-form/index.mjs +1 -1
  341. package/esm2020/lib/print/print-form/print-form.component.mjs +428 -405
  342. package/esm2020/lib/print/print.module.mjs +64 -64
  343. package/esm2020/lib/print/shared/geopdf.mjs +57 -57
  344. package/esm2020/lib/print/shared/index.mjs +4 -4
  345. package/esm2020/lib/print/shared/print.interface.mjs +1 -1
  346. package/esm2020/lib/print/shared/print.service.mjs +934 -861
  347. package/esm2020/lib/print/shared/print.type.mjs +29 -29
  348. package/esm2020/lib/query/index.mjs +1 -1
  349. package/esm2020/lib/query/query.module.mjs +28 -28
  350. package/esm2020/lib/query/shared/index.mjs +6 -6
  351. package/esm2020/lib/query/shared/query-search-source.mjs +34 -34
  352. package/esm2020/lib/query/shared/query-search-source.providers.mjs +21 -21
  353. package/esm2020/lib/query/shared/query.directive.mjs +260 -260
  354. package/esm2020/lib/query/shared/query.enums.mjs +29 -29
  355. package/esm2020/lib/query/shared/query.interfaces.mjs +2 -2
  356. package/esm2020/lib/query/shared/query.service.mjs +733 -619
  357. package/esm2020/lib/query/shared/query.utils.mjs +36 -36
  358. package/esm2020/lib/search/index.mjs +11 -11
  359. package/esm2020/lib/search/search-bar/search-bar.component.mjs +512 -493
  360. package/esm2020/lib/search/search-bar/search-bar.module.mjs +74 -74
  361. package/esm2020/lib/search/search-bar/search-url-param.directive.mjs +34 -34
  362. package/esm2020/lib/search/search-results/save-feature-dialog.component.mjs +118 -0
  363. package/esm2020/lib/search/search-results/search-results-add-button.component.mjs +371 -193
  364. package/esm2020/lib/search/search-results/search-results-item.component.mjs +124 -124
  365. package/esm2020/lib/search/search-results/search-results.component.mjs +340 -340
  366. package/esm2020/lib/search/search-results/search-results.module.mjs +104 -77
  367. package/esm2020/lib/search/search-selector/search-selector.component.mjs +122 -122
  368. package/esm2020/lib/search/search-selector/search-selector.module.mjs +55 -55
  369. package/esm2020/lib/search/search-settings/search-settings.component.mjs +442 -418
  370. package/esm2020/lib/search/search-settings/search-settings.module.mjs +59 -59
  371. package/esm2020/lib/search/search.module.mjs +66 -66
  372. package/esm2020/lib/search/shared/index.mjs +8 -8
  373. package/esm2020/lib/search/shared/search-pointer-summary.directive.mjs +321 -321
  374. package/esm2020/lib/search/shared/search-source-service.providers.mjs +19 -19
  375. package/esm2020/lib/search/shared/search-source.service.mjs +46 -46
  376. package/esm2020/lib/search/shared/search.enums.mjs +3 -3
  377. package/esm2020/lib/search/shared/search.interfaces.mjs +1 -1
  378. package/esm2020/lib/search/shared/search.service.mjs +121 -118
  379. package/esm2020/lib/search/shared/search.utils.mjs +90 -90
  380. package/esm2020/lib/search/shared/sources/coordinates.interfaces.mjs +1 -1
  381. package/esm2020/lib/search/shared/sources/coordinates.mjs +153 -147
  382. package/esm2020/lib/search/shared/sources/coordinates.providers.mjs +39 -39
  383. package/esm2020/lib/search/shared/sources/icherche.interfaces.mjs +1 -1
  384. package/esm2020/lib/search/shared/sources/icherche.mjs +767 -767
  385. package/esm2020/lib/search/shared/sources/icherche.providers.mjs +65 -65
  386. package/esm2020/lib/search/shared/sources/ilayer.interfaces.mjs +1 -1
  387. package/esm2020/lib/search/shared/sources/ilayer.mjs +320 -320
  388. package/esm2020/lib/search/shared/sources/ilayer.providers.mjs +39 -39
  389. package/esm2020/lib/search/shared/sources/index.mjs +17 -17
  390. package/esm2020/lib/search/shared/sources/nominatim.interfaces.mjs +1 -1
  391. package/esm2020/lib/search/shared/sources/nominatim.mjs +251 -251
  392. package/esm2020/lib/search/shared/sources/nominatim.providers.mjs +22 -22
  393. package/esm2020/lib/search/shared/sources/source.interfaces.mjs +1 -1
  394. package/esm2020/lib/search/shared/sources/source.mjs +179 -179
  395. package/esm2020/lib/search/shared/sources/storedqueries.interfaces.mjs +1 -1
  396. package/esm2020/lib/search/shared/sources/storedqueries.mjs +424 -424
  397. package/esm2020/lib/search/shared/sources/storedqueries.providers.mjs +40 -40
  398. package/esm2020/lib/toast/index.mjs +1 -1
  399. package/esm2020/lib/toast/toast.component.mjs +112 -112
  400. package/esm2020/lib/toast/toast.module.mjs +44 -44
  401. package/esm2020/lib/utils/commonVectorStyle.interface.mjs +1 -1
  402. package/esm2020/lib/utils/commonVectorStyle.mjs +74 -74
  403. package/esm2020/lib/utils/googleLinks.mjs +12 -12
  404. package/esm2020/lib/utils/id-generator.mjs +109 -109
  405. package/esm2020/lib/utils/index.mjs +5 -5
  406. package/esm2020/lib/utils/osmLinks.mjs +9 -9
  407. package/esm2020/lib/wkt/index.mjs +1 -1
  408. package/esm2020/lib/wkt/shared/index.mjs +1 -1
  409. package/esm2020/lib/wkt/shared/wkt.service.mjs +224 -224
  410. package/esm2020/lib/wkt/wkt.module.mjs +21 -21
  411. package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +47 -47
  412. package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +35 -35
  413. package/esm2020/lib/workspace/confirmation-popup/index.mjs +2 -2
  414. package/esm2020/lib/workspace/index.mjs +7 -7
  415. package/esm2020/lib/workspace/shared/edition-workspace.mjs +279 -279
  416. package/esm2020/lib/workspace/shared/edition-workspace.service.mjs +656 -656
  417. package/esm2020/lib/workspace/shared/feature-workspace.mjs +34 -34
  418. package/esm2020/lib/workspace/shared/feature-workspace.service.mjs +149 -149
  419. package/esm2020/lib/workspace/shared/index.mjs +7 -7
  420. package/esm2020/lib/workspace/shared/wfs-workspace.mjs +34 -34
  421. package/esm2020/lib/workspace/shared/wfs-workspace.service.mjs +149 -149
  422. package/esm2020/lib/workspace/shared/wms-workspace.service.mjs +259 -259
  423. package/esm2020/lib/workspace/shared/workspace.utils.mjs +23 -23
  424. package/esm2020/lib/workspace/widgets/index.mjs +3 -3
  425. package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +46 -46
  426. package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +35 -35
  427. package/esm2020/lib/workspace/widgets/widgets.mjs +14 -14
  428. package/esm2020/lib/workspace/workspace-selector/workspace-selector.directive.mjs +132 -132
  429. package/esm2020/lib/workspace/workspace-selector/workspace-selector.module.mjs +27 -27
  430. package/esm2020/lib/workspace/workspace-updator/workspace-updator.directive.mjs +112 -112
  431. package/esm2020/lib/workspace/workspace-updator/workspace-updator.module.mjs +27 -27
  432. package/esm2020/lib/workspace/workspace.module.mjs +61 -61
  433. package/esm2020/public_api.mjs +54 -54
  434. package/fesm2015/igo2-geo.mjs +44993 -44364
  435. package/fesm2015/igo2-geo.mjs.map +1 -1
  436. package/fesm2020/igo2-geo.mjs +43075 -42470
  437. package/fesm2020/igo2-geo.mjs.map +1 -1
  438. package/index.d.ts +5 -5
  439. package/lib/catalog/catalog-browser/catalog-browser-group.component.d.ts +126 -124
  440. package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +80 -73
  441. package/lib/catalog/catalog-browser/catalog-browser.component.d.ts +105 -105
  442. package/lib/catalog/catalog-browser/catalog-browser.module.d.ts +22 -22
  443. package/lib/catalog/catalog-library/add-catalog-dialog.component.d.ts +45 -45
  444. package/lib/catalog/catalog-library/catalog-library-item.component.d.ts +25 -25
  445. package/lib/catalog/catalog-library/catalog-library.component.d.ts +65 -65
  446. package/lib/catalog/catalog-library/catalog-library.module.d.ts +26 -26
  447. package/lib/catalog/catalog.module.d.ts +14 -14
  448. package/lib/catalog/index.d.ts +4 -4
  449. package/lib/catalog/shared/catalog.abstract.d.ts +50 -50
  450. package/lib/catalog/shared/catalog.enum.d.ts +14 -14
  451. package/lib/catalog/shared/catalog.interface.d.ts +66 -66
  452. package/lib/catalog/shared/catalog.service.d.ts +36 -36
  453. package/lib/catalog/shared/index.d.ts +4 -4
  454. package/lib/datasource/datasource.module.d.ts +8 -8
  455. package/lib/datasource/index.d.ts +2 -2
  456. package/lib/datasource/shared/capabilities.service.d.ts +37 -37
  457. package/lib/datasource/shared/datasource.service.d.ts +37 -37
  458. package/lib/datasource/shared/datasources/any-datasource.d.ts +16 -16
  459. package/lib/datasource/shared/datasources/any-datasource.interface.d.ts +15 -15
  460. package/lib/datasource/shared/datasources/arcgisrest-datasource.d.ts +14 -14
  461. package/lib/datasource/shared/datasources/arcgisrest-datasource.interface.d.ts +14 -14
  462. package/lib/datasource/shared/datasources/carto-datasource.d.ts +15 -15
  463. package/lib/datasource/shared/datasources/carto-datasource.interface.d.ts +13 -13
  464. package/lib/datasource/shared/datasources/cluster-datasource.d.ts +10 -10
  465. package/lib/datasource/shared/datasources/cluster-datasource.interface.d.ts +11 -11
  466. package/lib/datasource/shared/datasources/data.service.d.ts +3 -3
  467. package/lib/datasource/shared/datasources/datasource.d.ts +20 -20
  468. package/lib/datasource/shared/datasources/datasource.interface.d.ts +100 -100
  469. package/lib/datasource/shared/datasources/feature-datasource.d.ts +12 -12
  470. package/lib/datasource/shared/datasources/feature-datasource.interface.d.ts +18 -18
  471. package/lib/datasource/shared/datasources/imagearcgisrest-datasource.d.ts +15 -15
  472. package/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.d.ts +15 -15
  473. package/lib/datasource/shared/datasources/index.d.ts +35 -35
  474. package/lib/datasource/shared/datasources/mvt-datasource.d.ts +10 -10
  475. package/lib/datasource/shared/datasources/mvt-datasource.interface.d.ts +13 -13
  476. package/lib/datasource/shared/datasources/osm-datasource.d.ts +9 -9
  477. package/lib/datasource/shared/datasources/osm-datasource.interface.d.ts +7 -7
  478. package/lib/datasource/shared/datasources/tilearcgisrest-datasource.d.ts +15 -15
  479. package/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.d.ts +14 -14
  480. package/lib/datasource/shared/datasources/tiledebug-datasource.d.ts +9 -9
  481. package/lib/datasource/shared/datasources/tiledebug-datasource.interface.d.ts +9 -9
  482. package/lib/datasource/shared/datasources/websocket-datasource.d.ts +15 -15
  483. package/lib/datasource/shared/datasources/websocket-datasource.interface.d.ts +7 -7
  484. package/lib/datasource/shared/datasources/wfs-datasource.d.ts +20 -20
  485. package/lib/datasource/shared/datasources/wfs-datasource.interface.d.ts +20 -20
  486. package/lib/datasource/shared/datasources/wfs.service.d.ts +17 -17
  487. package/lib/datasource/shared/datasources/wms-datasource.d.ts +31 -31
  488. package/lib/datasource/shared/datasources/wms-datasource.interface.d.ts +32 -32
  489. package/lib/datasource/shared/datasources/wms-wfs.utils.d.ts +41 -41
  490. package/lib/datasource/shared/datasources/wmts-datasource.d.ts +10 -10
  491. package/lib/datasource/shared/datasources/wmts-datasource.interface.d.ts +13 -13
  492. package/lib/datasource/shared/datasources/xyz-datasource.d.ts +9 -9
  493. package/lib/datasource/shared/datasources/xyz-datasource.interface.d.ts +11 -11
  494. package/lib/datasource/shared/index.d.ts +4 -4
  495. package/lib/datasource/shared/options/index.d.ts +4 -4
  496. package/lib/datasource/shared/options/options-api.interface.d.ts +4 -4
  497. package/lib/datasource/shared/options/options-api.providers.d.ts +10 -10
  498. package/lib/datasource/shared/options/options-api.service.d.ts +16 -16
  499. package/lib/datasource/shared/options/options.service.d.ts +6 -6
  500. package/lib/datasource/utils/esri-style-generator.d.ts +21 -21
  501. package/lib/datasource/utils/index.d.ts +2 -2
  502. package/lib/datasource/utils/tilegrid.d.ts +2 -2
  503. package/lib/directions/directions-buttons/directions-buttons.component.d.ts +30 -30
  504. package/lib/directions/directions-buttons/index.d.ts +1 -1
  505. package/lib/directions/directions-inputs/directions-inputs.component.d.ts +45 -45
  506. package/lib/directions/directions-inputs/index.d.ts +1 -1
  507. package/lib/directions/directions-results/directions-results.component.d.ts +30 -30
  508. package/lib/directions/directions-results/index.d.ts +1 -1
  509. package/lib/directions/directions-sources/directions-source.d.ts +7 -7
  510. package/lib/directions/directions-sources/directions-source.interface.d.ts +11 -11
  511. package/lib/directions/directions-sources/directions-source.provider.d.ts +11 -11
  512. package/lib/directions/directions-sources/index.d.ts +4 -4
  513. package/lib/directions/directions-sources/osrm-directions-source.d.ts +23 -23
  514. package/lib/directions/directions.component.d.ts +56 -56
  515. package/lib/directions/directions.module.d.ts +26 -26
  516. package/lib/directions/index.d.ts +6 -6
  517. package/lib/directions/shared/directions-source.service.d.ts +11 -11
  518. package/lib/directions/shared/directions.enum.d.ts +22 -22
  519. package/lib/directions/shared/directions.interface.d.ts +126 -126
  520. package/lib/directions/shared/directions.service.d.ts +13 -13
  521. package/lib/directions/shared/directions.utils.d.ts +42 -42
  522. package/lib/directions/shared/index.d.ts +5 -5
  523. package/lib/directions/shared/store.d.ts +18 -18
  524. package/lib/download/download-button/download-button.component.d.ts +18 -18
  525. package/lib/download/download-button/index.d.ts +1 -1
  526. package/lib/download/download.module.d.ts +14 -14
  527. package/lib/download/index.d.ts +2 -2
  528. package/lib/download/shared/download.interface.d.ts +10 -10
  529. package/lib/download/shared/download.service.d.ts +11 -11
  530. package/lib/download/shared/index.d.ts +2 -2
  531. package/lib/draw/draw/draw-layer-popup.component.d.ts +14 -14
  532. package/lib/draw/draw/draw-popup.component.d.ts +63 -63
  533. package/lib/draw/draw/draw-shorcuts.component.d.ts +5 -5
  534. package/lib/draw/draw/draw.component.d.ts +239 -239
  535. package/lib/draw/draw/draw.module.d.ts +34 -34
  536. package/lib/draw/drawingTool.module.d.ts +7 -7
  537. package/lib/draw/index.d.ts +2 -2
  538. package/lib/draw/shared/draw-icon.service.d.ts +12 -12
  539. package/lib/draw/shared/draw-style.service.d.ts +36 -36
  540. package/lib/draw/shared/draw.enum.d.ts +32 -32
  541. package/lib/draw/shared/draw.interface.d.ts +40 -40
  542. package/lib/draw/shared/draw.utils.d.ts +35 -35
  543. package/lib/draw/shared/index.d.ts +5 -5
  544. package/lib/feature/feature-details/feature-details.component.d.ts +60 -60
  545. package/lib/feature/feature-details/feature-details.directive.d.ts +19 -19
  546. package/lib/feature/feature-details/feature-details.module.d.ts +15 -15
  547. package/lib/feature/feature-form/feature-form.component.d.ts +50 -50
  548. package/lib/feature/feature-form/feature-form.module.d.ts +12 -12
  549. package/lib/feature/feature.module.d.ts +9 -9
  550. package/lib/feature/index.d.ts +3 -3
  551. package/lib/feature/shared/feature.enums.d.ts +7 -7
  552. package/lib/feature/shared/feature.interfaces.d.ts +74 -74
  553. package/lib/feature/shared/feature.utils.d.ts +104 -104
  554. package/lib/feature/shared/index.d.ts +6 -6
  555. package/lib/feature/shared/store.d.ts +71 -71
  556. package/lib/feature/shared/strategies/in-map-extent.d.ts +52 -52
  557. package/lib/feature/shared/strategies/in-map-resolution.d.ts +52 -52
  558. package/lib/feature/shared/strategies/index.d.ts +5 -5
  559. package/lib/feature/shared/strategies/loading-layer.d.ts +59 -59
  560. package/lib/feature/shared/strategies/loading.d.ts +75 -75
  561. package/lib/feature/shared/strategies/selection.d.ts +176 -176
  562. package/lib/feature/shared/strategies.utils.d.ts +17 -17
  563. package/lib/filter/filter.module.d.ts +53 -53
  564. package/lib/filter/index.d.ts +15 -15
  565. package/lib/filter/ogc-filter-button/index.d.ts +1 -1
  566. package/lib/filter/ogc-filter-button/ogc-filter-button.component.d.ts +20 -20
  567. package/lib/filter/ogc-filter-form/index.d.ts +1 -1
  568. package/lib/filter/ogc-filter-form/ogc-filter-form.component.d.ts +65 -65
  569. package/lib/filter/ogc-filter-selection/index.d.ts +1 -1
  570. package/lib/filter/ogc-filter-selection/ogc-filter-selection.component.d.ts +93 -93
  571. package/lib/filter/ogc-filter-time/index.d.ts +2 -2
  572. package/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.d.ts +39 -39
  573. package/lib/filter/ogc-filter-time/ogc-filter-time.component.d.ts +86 -86
  574. package/lib/filter/ogc-filterable-form/index.d.ts +1 -1
  575. package/lib/filter/ogc-filterable-form/ogc-filterable-form.component.d.ts +15 -15
  576. package/lib/filter/ogc-filterable-item/index.d.ts +1 -1
  577. package/lib/filter/ogc-filterable-item/ogc-filterable-item.component.d.ts +41 -41
  578. package/lib/filter/ogc-filterable-list/index.d.ts +2 -2
  579. package/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.d.ts +14 -14
  580. package/lib/filter/ogc-filterable-list/ogc-filterable-list.component.d.ts +10 -10
  581. package/lib/filter/shared/filterable-datasource.pipe.d.ts +10 -10
  582. package/lib/filter/shared/index.d.ts +11 -11
  583. package/lib/filter/shared/ogc-filter-time.service.d.ts +19 -19
  584. package/lib/filter/shared/ogc-filter.d.ts +29 -29
  585. package/lib/filter/shared/ogc-filter.enum.d.ts +27 -27
  586. package/lib/filter/shared/ogc-filter.interface.d.ts +200 -200
  587. package/lib/filter/shared/ogc-filter.service.d.ts +11 -11
  588. package/lib/filter/shared/spatial-filter.enum.d.ts +19 -19
  589. package/lib/filter/shared/spatial-filter.interface.d.ts +10 -10
  590. package/lib/filter/shared/spatial-filter.service.d.ts +37 -37
  591. package/lib/filter/shared/time-filter.enum.d.ts +10 -10
  592. package/lib/filter/shared/time-filter.interface.d.ts +29 -29
  593. package/lib/filter/shared/time-filter.service.d.ts +11 -11
  594. package/lib/filter/spatial-filter/spatial-filter-item/index.d.ts +1 -1
  595. package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +166 -166
  596. package/lib/filter/spatial-filter/spatial-filter-list/index.d.ts +1 -1
  597. package/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.d.ts +58 -58
  598. package/lib/filter/spatial-filter/spatial-filter-type/index.d.ts +1 -1
  599. package/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.d.ts +45 -45
  600. package/lib/filter/time-filter-button/index.d.ts +1 -1
  601. package/lib/filter/time-filter-button/time-filter-button.component.d.ts +20 -20
  602. package/lib/filter/time-filter-form/index.d.ts +1 -1
  603. package/lib/filter/time-filter-form/time-filter-form.component.d.ts +77 -77
  604. package/lib/filter/time-filter-item/index.d.ts +1 -1
  605. package/lib/filter/time-filter-item/time-filter-item.component.d.ts +28 -28
  606. package/lib/filter/time-filter-list/index.d.ts +2 -2
  607. package/lib/filter/time-filter-list/time-filter-list-binding.directive.d.ts +14 -14
  608. package/lib/filter/time-filter-list/time-filter-list.component.d.ts +12 -12
  609. package/lib/geo.module.d.ts +28 -28
  610. package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +206 -206
  611. package/lib/geometry/geometry-form-field/geometry-form-field.component.d.ts +88 -88
  612. package/lib/geometry/geometry-form-field/geometry-form-field.module.d.ts +19 -19
  613. package/lib/geometry/geometry.module.d.ts +8 -8
  614. package/lib/geometry/index.d.ts +3 -3
  615. package/lib/geometry/shared/controls/draw.d.ts +150 -150
  616. package/lib/geometry/shared/controls/index.d.ts +3 -3
  617. package/lib/geometry/shared/controls/modify.d.ts +228 -228
  618. package/lib/geometry/shared/controls/slice.d.ts +99 -99
  619. package/lib/geometry/shared/geometry.errors.d.ts +11 -11
  620. package/lib/geometry/shared/geometry.interfaces.d.ts +13 -13
  621. package/lib/geometry/shared/geometry.utils.d.ts +45 -45
  622. package/lib/geometry/shared/index.d.ts +4 -4
  623. package/lib/import-export/export-button/export-button.component.d.ts +16 -16
  624. package/lib/import-export/export-button/index.d.ts +1 -1
  625. package/lib/import-export/import-export/import-export.component.d.ts +104 -104
  626. package/lib/import-export/import-export/index.d.ts +1 -1
  627. package/lib/import-export/import-export.module.d.ts +26 -26
  628. package/lib/import-export/index.d.ts +4 -4
  629. package/lib/import-export/shared/drop-geo-file.directive.d.ts +36 -36
  630. package/lib/import-export/shared/export.errors.d.ts +8 -8
  631. package/lib/import-export/shared/export.interface.d.ts +11 -11
  632. package/lib/import-export/shared/export.service.d.ts +30 -30
  633. package/lib/import-export/shared/export.type.d.ts +16 -16
  634. package/lib/import-export/shared/export.utils.d.ts +19 -19
  635. package/lib/import-export/shared/import.errors.d.ts +20 -20
  636. package/lib/import-export/shared/import.interface.d.ts +8 -8
  637. package/lib/import-export/shared/import.service.d.ts +31 -31
  638. package/lib/import-export/shared/import.utils.d.ts +18 -18
  639. package/lib/import-export/shared/index.d.ts +10 -10
  640. package/lib/import-export/style-list/index.d.ts +4 -4
  641. package/lib/import-export/style-list/style-list.interface.d.ts +6 -6
  642. package/lib/import-export/style-list/style-list.module.d.ts +8 -8
  643. package/lib/import-export/style-list/style-list.provider.d.ts +15 -15
  644. package/lib/import-export/style-list/style-list.service.d.ts +18 -18
  645. package/lib/layer/index.d.ts +10 -10
  646. package/lib/layer/layer-item/index.d.ts +1 -1
  647. package/lib/layer/layer-item/layer-item.component.d.ts +62 -62
  648. package/lib/layer/layer-legend/index.d.ts +1 -1
  649. package/lib/layer/layer-legend/layer-legend.component.d.ts +90 -90
  650. package/lib/layer/layer-legend-item/index.d.ts +1 -1
  651. package/lib/layer/layer-legend-item/layer-legend-item.component.d.ts +22 -22
  652. package/lib/layer/layer-legend-list/index.d.ts +2 -2
  653. package/lib/layer/layer-legend-list/layer-legend-list-binding.directive.d.ts +16 -16
  654. package/lib/layer/layer-legend-list/layer-legend-list.component.d.ts +31 -31
  655. package/lib/layer/layer-list/index.d.ts +3 -3
  656. package/lib/layer/layer-list/layer-list-binding.directive.d.ts +19 -19
  657. package/lib/layer/layer-list/layer-list.component.d.ts +127 -127
  658. package/lib/layer/layer-list/layer-list.enum.d.ts +15 -15
  659. package/lib/layer/layer-list-tool/index.d.ts +4 -4
  660. package/lib/layer/layer-list-tool/layer-list-tool.component.d.ts +32 -32
  661. package/lib/layer/layer-list-tool/layer-list-tool.enum.d.ts +5 -5
  662. package/lib/layer/layer-list-tool/layer-list-tool.interface.d.ts +8 -8
  663. package/lib/layer/layer-list-tool/layer-list-tool.service.d.ts +14 -14
  664. package/lib/layer/layer.module.d.ts +36 -36
  665. package/lib/layer/shared/clusterParam.d.ts +13 -13
  666. package/lib/layer/shared/index.d.ts +6 -6
  667. package/lib/layer/shared/layer.enums.d.ts +1 -1
  668. package/lib/layer/shared/layer.service.d.ts +30 -30
  669. package/lib/layer/shared/layers/any-layer.d.ts +6 -6
  670. package/lib/layer/shared/layers/any-layer.interface.d.ts +6 -6
  671. package/lib/layer/shared/layers/image-layer.d.ts +22 -22
  672. package/lib/layer/shared/layers/image-layer.interface.d.ts +19 -19
  673. package/lib/layer/shared/layers/index.d.ts +12 -12
  674. package/lib/layer/shared/layers/layer.d.ts +62 -62
  675. package/lib/layer/shared/layers/layer.interface.d.ts +109 -107
  676. package/lib/layer/shared/layers/tile-layer.d.ts +31 -31
  677. package/lib/layer/shared/layers/tile-layer.interface.d.ts +20 -20
  678. package/lib/layer/shared/layers/vector-layer.d.ts +78 -78
  679. package/lib/layer/shared/layers/vector-layer.interface.d.ts +41 -41
  680. package/lib/layer/shared/layers/vectortile-layer.d.ts +28 -28
  681. package/lib/layer/shared/layers/vectortile-layer.interface.d.ts +18 -18
  682. package/lib/layer/shared/style.service.d.ts +57 -57
  683. package/lib/layer/shared/vector-style.interface.d.ts +38 -38
  684. package/lib/layer/style-modal/index.d.ts +1 -1
  685. package/lib/layer/style-modal/style-modal.component.d.ts +42 -42
  686. package/lib/layer/track-feature-button/index.d.ts +1 -1
  687. package/lib/layer/track-feature-button/track-feature-button.component.d.ts +15 -15
  688. package/lib/layer/utils/image-watcher.d.ts +17 -17
  689. package/lib/layer/utils/index.d.ts +5 -5
  690. package/lib/layer/utils/layer.utils.d.ts +2 -2
  691. package/lib/layer/utils/outputLegend.d.ts +7 -7
  692. package/lib/layer/utils/tile-watcher.d.ts +14 -14
  693. package/lib/layer/utils/vector-watcher.d.ts +13 -13
  694. package/lib/map/baselayers-switcher/baselayers-switcher.animation.d.ts +2 -2
  695. package/lib/map/baselayers-switcher/baselayers-switcher.component.d.ts +21 -21
  696. package/lib/map/baselayers-switcher/index.d.ts +2 -2
  697. package/lib/map/baselayers-switcher/mini-basemap.component.d.ts +29 -26
  698. package/lib/map/geolocate-button/geolocate-button.component.d.ts +22 -22
  699. package/lib/map/geolocate-button/index.d.ts +1 -1
  700. package/lib/map/home-extent-button/home-extent-button.component.d.ts +20 -20
  701. package/lib/map/home-extent-button/index.d.ts +1 -1
  702. package/lib/map/index.d.ts +13 -13
  703. package/lib/map/info-section/index.d.ts +1 -1
  704. package/lib/map/info-section/info-section.component.d.ts +7 -7
  705. package/lib/map/map-browser/index.d.ts +1 -1
  706. package/lib/map/map-browser/map-browser.component.d.ts +25 -25
  707. package/lib/map/map-center/index.d.ts +1 -1
  708. package/lib/map/map-center/map-center.component.d.ts +31 -31
  709. package/lib/map/map.module.d.ts +28 -28
  710. package/lib/map/menu-button/index.d.ts +1 -1
  711. package/lib/map/menu-button/menu-button.component.d.ts +17 -17
  712. package/lib/map/offline-button/index.d.ts +1 -1
  713. package/lib/map/offline-button/offline-button.component.d.ts +23 -23
  714. package/lib/map/rotation-button/index.d.ts +1 -1
  715. package/lib/map/rotation-button/rotation-button.component.d.ts +17 -17
  716. package/lib/map/shared/controllers/controller.d.ts +29 -29
  717. package/lib/map/shared/controllers/geolocation.d.ts +112 -112
  718. package/lib/map/shared/controllers/index.d.ts +3 -3
  719. package/lib/map/shared/controllers/view.d.ts +200 -200
  720. package/lib/map/shared/hover-feature.directive.d.ts +132 -132
  721. package/lib/map/shared/index.d.ts +13 -13
  722. package/lib/map/shared/linkedLayers.utils.d.ts +17 -17
  723. package/lib/map/shared/map-pointer-position.directive.d.ts +71 -71
  724. package/lib/map/shared/map.d.ts +135 -135
  725. package/lib/map/shared/map.enums.d.ts +4 -4
  726. package/lib/map/shared/map.interface.d.ts +57 -57
  727. package/lib/map/shared/map.service.d.ts +19 -19
  728. package/lib/map/shared/map.utils.d.ts +90 -89
  729. package/lib/map/shared/mapOffline.directive.d.ts +21 -21
  730. package/lib/map/shared/projection.interfaces.d.ts +29 -29
  731. package/lib/map/shared/projection.service.d.ts +19 -19
  732. package/lib/map/shared/projection.utils.d.ts +19 -19
  733. package/lib/map/swipe-control/index.d.ts +1 -1
  734. package/lib/map/swipe-control/swipe-control.component.d.ts +97 -97
  735. package/lib/map/utils/layer-watcher.d.ts +20 -20
  736. package/lib/map/wake-lock-button/index.d.ts +1 -1
  737. package/lib/map/wake-lock-button/wake-lock-button.component.d.ts +30 -30
  738. package/lib/map/zoom-button/index.d.ts +1 -1
  739. package/lib/map/zoom-button/zoom-button.component.d.ts +12 -12
  740. package/lib/measure/index.d.ts +3 -3
  741. package/lib/measure/measure.module.d.ts +7 -7
  742. package/lib/measure/measurer/measure-format.pipe.d.ts +15 -15
  743. package/lib/measure/measurer/measurer-dialog.component.d.ts +14 -14
  744. package/lib/measure/measurer/measurer-item.component.d.ts +66 -66
  745. package/lib/measure/measurer/measurer.component.d.ts +405 -405
  746. package/lib/measure/measurer/measurer.module.d.ts +25 -25
  747. package/lib/measure/shared/index.d.ts +3 -3
  748. package/lib/measure/shared/measure.enum.d.ts +33 -33
  749. package/lib/measure/shared/measure.interfaces.d.ts +21 -21
  750. package/lib/measure/shared/measure.utils.d.ts +180 -180
  751. package/lib/metadata/index.d.ts +2 -2
  752. package/lib/metadata/metadata-button/index.d.ts +1 -1
  753. package/lib/metadata/metadata-button/metadata-button.component.d.ts +26 -26
  754. package/lib/metadata/metadata.module.d.ts +15 -15
  755. package/lib/metadata/shared/index.d.ts +2 -2
  756. package/lib/metadata/shared/metadata.interface.d.ts +13 -13
  757. package/lib/metadata/shared/metadata.service.d.ts +8 -8
  758. package/lib/offline/geoDB/configFileToGeoDB.service.d.ts +14 -14
  759. package/lib/offline/geoDB/geoDB.enums.d.ts +4 -4
  760. package/lib/offline/geoDB/geoDB.interface.d.ts +19 -19
  761. package/lib/offline/geoDB/geoDB.service.d.ts +37 -37
  762. package/lib/offline/geoDB/index.d.ts +4 -4
  763. package/lib/offline/index.d.ts +2 -2
  764. package/lib/offline/shared/geo-network.service.d.ts +28 -28
  765. package/lib/offline/shared/index.d.ts +1 -1
  766. package/lib/overlay/index.d.ts +1 -1
  767. package/lib/overlay/overlay.module.d.ts +9 -9
  768. package/lib/overlay/shared/index.d.ts +6 -6
  769. package/lib/overlay/shared/overlay-marker-style.utils.d.ts +11 -11
  770. package/lib/overlay/shared/overlay.d.ts +81 -81
  771. package/lib/overlay/shared/overlay.directive.d.ts +18 -18
  772. package/lib/overlay/shared/overlay.enum.d.ts +6 -6
  773. package/lib/overlay/shared/overlay.service.d.ts +14 -14
  774. package/lib/overlay/shared/overlay.utils.d.ts +17 -17
  775. package/lib/print/index.d.ts +3 -3
  776. package/lib/print/print/print.component.d.ts +35 -35
  777. package/lib/print/print-form/index.d.ts +1 -1
  778. package/lib/print/print-form/print-form.component.d.ts +97 -97
  779. package/lib/print/print.module.d.ts +19 -19
  780. package/lib/print/shared/geopdf.d.ts +1 -1
  781. package/lib/print/shared/index.d.ts +4 -4
  782. package/lib/print/shared/print.interface.d.ts +22 -22
  783. package/lib/print/shared/print.service.d.ts +168 -159
  784. package/lib/print/shared/print.type.d.ts +45 -45
  785. package/lib/query/index.d.ts +1 -1
  786. package/lib/query/query.module.d.ts +11 -11
  787. package/lib/query/shared/index.d.ts +6 -6
  788. package/lib/query/shared/query-search-source.d.ts +17 -17
  789. package/lib/query/shared/query-search-source.providers.d.ts +17 -17
  790. package/lib/query/shared/query.directive.d.ts +105 -105
  791. package/lib/query/shared/query.enums.d.ts +26 -26
  792. package/lib/query/shared/query.interfaces.d.ts +35 -28
  793. package/lib/query/shared/query.service.d.ts +56 -54
  794. package/lib/query/shared/query.utils.d.ts +27 -27
  795. package/lib/search/index.d.ts +11 -11
  796. package/lib/search/search-bar/search-bar.component.d.ts +230 -220
  797. package/lib/search/search-bar/search-bar.module.d.ts +23 -23
  798. package/lib/search/search-bar/search-url-param.directive.d.ts +13 -13
  799. package/lib/search/search-results/save-feature-dialog.component.d.ts +32 -0
  800. package/lib/search/search-results/search-results-add-button.component.d.ts +76 -58
  801. package/lib/search/search-results/search-results-item.component.d.ts +47 -48
  802. package/lib/search/search-results/search-results.component.d.ts +161 -161
  803. package/lib/search/search-results/search-results.module.d.ts +28 -21
  804. package/lib/search/search-selector/search-selector.component.d.ts +58 -58
  805. package/lib/search/search-selector/search-selector.module.d.ts +19 -19
  806. package/lib/search/search-settings/search-settings.component.d.ts +102 -96
  807. package/lib/search/search-settings/search-settings.module.d.ts +20 -20
  808. package/lib/search/search.module.d.ts +14 -14
  809. package/lib/search/shared/index.d.ts +8 -8
  810. package/lib/search/shared/search-pointer-summary.directive.d.ts +133 -133
  811. package/lib/search/shared/search-source-service.providers.d.ts +15 -15
  812. package/lib/search/shared/search-source.service.d.ts +32 -32
  813. package/lib/search/shared/search.enums.d.ts +1 -1
  814. package/lib/search/shared/search.interfaces.d.ts +29 -29
  815. package/lib/search/shared/search.service.d.ts +53 -51
  816. package/lib/search/shared/search.utils.d.ts +39 -39
  817. package/lib/search/shared/sources/coordinates.d.ts +40 -40
  818. package/lib/search/shared/sources/coordinates.interfaces.d.ts +12 -12
  819. package/lib/search/shared/sources/coordinates.providers.d.ts +31 -31
  820. package/lib/search/shared/sources/icherche.d.ts +96 -96
  821. package/lib/search/shared/sources/icherche.interfaces.d.ts +30 -30
  822. package/lib/search/shared/sources/icherche.providers.d.ts +46 -46
  823. package/lib/search/shared/sources/ilayer.d.ts +55 -55
  824. package/lib/search/shared/sources/ilayer.interfaces.d.ts +47 -47
  825. package/lib/search/shared/sources/ilayer.providers.d.ts +31 -31
  826. package/lib/search/shared/sources/index.d.ts +17 -17
  827. package/lib/search/shared/sources/nominatim.d.ts +45 -45
  828. package/lib/search/shared/sources/nominatim.interfaces.d.ts +10 -10
  829. package/lib/search/shared/sources/nominatim.providers.d.ts +18 -18
  830. package/lib/search/shared/sources/source.d.ts +108 -108
  831. package/lib/search/shared/sources/source.interfaces.d.ts +47 -47
  832. package/lib/search/shared/sources/storedqueries.d.ts +73 -73
  833. package/lib/search/shared/sources/storedqueries.interfaces.d.ts +42 -42
  834. package/lib/search/shared/sources/storedqueries.providers.d.ts +32 -32
  835. package/lib/toast/index.d.ts +1 -1
  836. package/lib/toast/toast.component.d.ts +33 -33
  837. package/lib/toast/toast.module.d.ts +14 -14
  838. package/lib/utils/commonVectorStyle.d.ts +14 -14
  839. package/lib/utils/commonVectorStyle.interface.d.ts +16 -16
  840. package/lib/utils/googleLinks.d.ts +5 -5
  841. package/lib/utils/id-generator.d.ts +54 -54
  842. package/lib/utils/index.d.ts +5 -5
  843. package/lib/utils/osmLinks.d.ts +4 -4
  844. package/lib/wkt/index.d.ts +1 -1
  845. package/lib/wkt/shared/index.d.ts +1 -1
  846. package/lib/wkt/shared/wkt.service.d.ts +19 -19
  847. package/lib/wkt/wkt.module.d.ts +8 -8
  848. package/lib/workspace/confirmation-popup/confirmation-popup.component.d.ts +23 -23
  849. package/lib/workspace/confirmation-popup/confirmation-popup.module.d.ts +14 -14
  850. package/lib/workspace/confirmation-popup/index.d.ts +2 -2
  851. package/lib/workspace/index.d.ts +7 -7
  852. package/lib/workspace/shared/edition-workspace.d.ts +82 -82
  853. package/lib/workspace/shared/edition-workspace.service.d.ts +52 -52
  854. package/lib/workspace/shared/feature-workspace.d.ts +18 -18
  855. package/lib/workspace/shared/feature-workspace.service.d.ts +19 -19
  856. package/lib/workspace/shared/index.d.ts +7 -7
  857. package/lib/workspace/shared/wfs-workspace.d.ts +18 -18
  858. package/lib/workspace/shared/wfs-workspace.service.d.ts +19 -19
  859. package/lib/workspace/shared/wms-workspace.service.d.ts +22 -22
  860. package/lib/workspace/shared/workspace.utils.d.ts +10 -10
  861. package/lib/workspace/widgets/index.d.ts +3 -3
  862. package/lib/workspace/widgets/ogc-filter/ogc-filter.component.d.ts +29 -29
  863. package/lib/workspace/widgets/ogc-filter/ogc-filter.module.d.ts +14 -14
  864. package/lib/workspace/widgets/widgets.d.ts +9 -9
  865. package/lib/workspace/workspace-selector/workspace-selector.directive.d.ts +32 -32
  866. package/lib/workspace/workspace-selector/workspace-selector.module.d.ts +11 -11
  867. package/lib/workspace/workspace-updator/workspace-updator.directive.d.ts +26 -26
  868. package/lib/workspace/workspace-updator/workspace-updator.module.d.ts +11 -11
  869. package/lib/workspace/workspace.module.d.ts +14 -14
  870. package/package.json +4 -4
  871. package/public_api.d.ts +51 -51
@@ -1,320 +1,320 @@
1
- import { __decorate } from "tslib";
2
- import { Injectable, Inject } from '@angular/core';
3
- import { HttpParams } from '@angular/common/http';
4
- import { BehaviorSubject, of } from 'rxjs';
5
- import { map } from 'rxjs/operators';
6
- import { ObjectUtils } from '@igo2/utils';
7
- import { getResolutionFromScale } from '../../../map/shared/map.utils';
8
- import { LAYER } from '../../../layer';
9
- import { QueryFormat } from '../../../query';
10
- import { SearchSource } from './source';
11
- import { computeTermSimilarity } from '../search.utils';
12
- import { Cacheable } from 'ts-cacheable';
13
- import * as i0 from "@angular/core";
14
- import * as i1 from "@igo2/core";
15
- import * as i2 from "@angular/common/http";
16
- export class ILayerSearchResultFormatter {
17
- constructor(languageService) {
18
- this.languageService = languageService;
19
- }
20
- formatResult(data) {
21
- const allowedKey = [
22
- 'title',
23
- 'abstract',
24
- 'groupTitle',
25
- 'metadataUrl',
26
- 'downloadUrl',
27
- 'urlInfo',
28
- 'name'
29
- ];
30
- const property = Object.entries(data.properties)
31
- .filter(([key]) => allowedKey.indexOf(key) !== -1)
32
- .reduce((out, entries) => {
33
- const [key, value] = entries;
34
- let newKey;
35
- try {
36
- newKey = this.languageService.translate.instant('igo.geo.search.ilayer.properties.' + key);
37
- }
38
- catch (e) {
39
- newKey = key;
40
- }
41
- out[newKey] = value ? value : '';
42
- return out;
43
- }, {});
44
- const dataR = Object.assign({}, data);
45
- dataR.properties = property;
46
- return dataR;
47
- }
48
- }
49
- ILayerSearchResultFormatter.ɵfac = function ILayerSearchResultFormatter_Factory(t) { return new (t || ILayerSearchResultFormatter)(i0.ɵɵinject(i1.LanguageService)); };
50
- ILayerSearchResultFormatter.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ILayerSearchResultFormatter, factory: ILayerSearchResultFormatter.ɵfac });
51
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ILayerSearchResultFormatter, [{
52
- type: Injectable
53
- }], function () { return [{ type: i1.LanguageService }]; }, null); })();
54
- /**
55
- * ILayer search source
56
- */
57
- export class ILayerSearchSource extends SearchSource {
58
- constructor(http, languageService, storageService, options, formatter) {
59
- super(options, storageService);
60
- this.http = http;
61
- this.languageService = languageService;
62
- this.formatter = formatter;
63
- this.title$ = new BehaviorSubject('');
64
- this.languageService.translate
65
- .get(this.options.title)
66
- .subscribe(title => this.title$.next(title));
67
- }
68
- get title() {
69
- return this.title$.getValue();
70
- }
71
- getId() {
72
- return ILayerSearchSource.id;
73
- }
74
- getType() {
75
- return ILayerSearchSource.type;
76
- }
77
- getDefaultOptions() {
78
- const limit = this.options.params && this.options.params.limit
79
- ? Number(this.options.params.limit)
80
- : undefined;
81
- const ecmax = this.options.params && this.options.params.ecmax
82
- ? Number(this.options.params.ecmax)
83
- : undefined;
84
- return {
85
- title: 'igo.geo.search.ilayer.name',
86
- searchUrl: 'https://geoegl.msp.gouv.qc.ca/apis/layers/search',
87
- settings: [
88
- {
89
- type: 'checkbox',
90
- title: 'results type',
91
- name: 'type',
92
- values: [
93
- {
94
- title: 'igo.geo.search.ilayer.type.layer',
95
- value: 'layer',
96
- enabled: true,
97
- hashtags: ['layer', 'layers', 'couche', 'couches']
98
- },
99
- {
100
- title: 'igo.geo.search.ilayer.type.groupLayer',
101
- value: 'group',
102
- enabled: false,
103
- hashtags: ['gr-layer', 'gr-layers', 'gr-couche', 'gr-couches']
104
- }
105
- ]
106
- },
107
- {
108
- type: 'radiobutton',
109
- title: 'results limit',
110
- name: 'limit',
111
- values: [
112
- {
113
- title: '1',
114
- value: 1,
115
- enabled: limit === 1
116
- },
117
- {
118
- title: '5',
119
- value: 5,
120
- enabled: limit === 5 || !limit
121
- },
122
- {
123
- title: '10',
124
- value: 10,
125
- enabled: limit === 10
126
- },
127
- {
128
- title: '25',
129
- value: 25,
130
- enabled: limit === 25
131
- },
132
- {
133
- title: '50',
134
- value: 50,
135
- enabled: limit === 50
136
- }
137
- ]
138
- },
139
- {
140
- type: 'radiobutton',
141
- title: 'ecmax',
142
- name: 'ecmax',
143
- values: [
144
- {
145
- title: '10 %',
146
- value: 10,
147
- enabled: ecmax === 10
148
- },
149
- {
150
- title: '30 %',
151
- value: 30,
152
- enabled: ecmax === 30
153
- },
154
- {
155
- title: '50 %',
156
- value: 50,
157
- enabled: ecmax === 50 || !ecmax
158
- },
159
- {
160
- title: '75 %',
161
- value: 75,
162
- enabled: ecmax === 75
163
- },
164
- {
165
- title: '100 %',
166
- value: 100,
167
- enabled: ecmax === 100
168
- }
169
- ]
170
- }
171
- ]
172
- };
173
- }
174
- /**
175
- * Search a layer by name or keyword
176
- * @param term Layer name or keyword
177
- * @returns Observable of <SearchResult<LayerOptions>[]
178
- */
179
- search(term, options) {
180
- const params = this.computeSearchRequestParams(term, options || {});
181
- if (!params.get('q') || !params.get('type')) {
182
- return of([]);
183
- }
184
- this.options.params.page = params.get('page') || '1';
185
- return this.http
186
- .get(this.searchUrl, { params })
187
- .pipe(map((response) => this.extractResults(response, term)));
188
- }
189
- computeSearchRequestParams(term, options) {
190
- return new HttpParams({
191
- fromObject: ObjectUtils.removeUndefined(Object.assign({
192
- q: this.computeTerm(term)
193
- }, this.params, this.computeOptionsParam(term, options || {}).params, {
194
- page: options.page
195
- }))
196
- });
197
- }
198
- /**
199
- * Remove hashtag from query
200
- * @param term Query with hashtag
201
- */
202
- computeTerm(term) {
203
- return term.replace(/(#[^\s]*)/g, '').replace(/[^\wÀ-ÿ !\-\(\),'#]+/g, '');
204
- }
205
- /**
206
- * Add hashtag to param if valid
207
- * @param term Query with hashtag
208
- * @param options TextSearchOptions
209
- */
210
- computeOptionsParam(term, options) {
211
- const hashtags = super.getHashtagsValid(term, 'type');
212
- if (hashtags) {
213
- options.params = Object.assign(options.params || {}, {
214
- type: hashtags.join(',')
215
- });
216
- }
217
- return options;
218
- }
219
- extractResults(response, term) {
220
- return response.items.map((data) => this.dataToResult(data, term, response));
221
- }
222
- dataToResult(data, term, response) {
223
- const layerOptions = this.computeLayerOptions(data);
224
- const titleHtml = data.highlight.title || data.properties.title;
225
- const groupTitle = data.highlight.groupTitle || data.properties.groupTitle;
226
- const subtitleHtml = groupTitle
227
- ? ' <small style="color: #6f6969"> ' + groupTitle + '</small>'
228
- : '';
229
- return {
230
- source: this,
231
- meta: {
232
- dataType: LAYER,
233
- id: [this.getId(), data.properties.id].join('.'),
234
- title: data.properties.title,
235
- titleHtml: titleHtml + subtitleHtml,
236
- icon: data.properties.type === 'Layer' ? 'layers' : 'map',
237
- score: data.score || computeTermSimilarity(term.trim(), data.properties.name),
238
- nextPage: response.items.length % +this.options.params.limit === 0 &&
239
- +this.options.params.page < 10
240
- },
241
- data: layerOptions
242
- };
243
- }
244
- computeLayerOptions(data) {
245
- const url = data.properties.url;
246
- const queryParams = this.extractQueryParamsFromSourceUrl(url);
247
- return ObjectUtils.removeUndefined({
248
- sourceOptions: {
249
- id: data.properties.id,
250
- type: data.properties.format,
251
- url,
252
- queryFormat: queryParams.queryFormat,
253
- queryHtmlTarget: queryParams.queryHtmlTarget,
254
- params: data.properties.format === 'wms' ? { LAYERS: data.properties.name } : undefined,
255
- layer: data.properties.format === 'wms' ? undefined : data.properties.name,
256
- optionsFromCapabilities: true,
257
- crossOrigin: 'anonymous'
258
- },
259
- title: data.properties.title,
260
- maxResolution: getResolutionFromScale(Number(data.properties.maxScaleDenom)),
261
- minResolution: getResolutionFromScale(Number(data.properties.minScaleDenom)),
262
- metadata: {
263
- url: data.properties.metadataUrl,
264
- extern: data.properties.metadataUrl ? true : undefined,
265
- abstract: data.properties.abstract || undefined
266
- },
267
- properties: this.formatter.formatResult(data).properties
268
- });
269
- }
270
- extractQueryParamsFromSourceUrl(url) {
271
- let queryFormat;
272
- let queryHtmlTarget;
273
- const formatOpt = this.options.queryFormat;
274
- if (formatOpt) {
275
- for (const key of Object.keys(formatOpt)) {
276
- const value = formatOpt[key];
277
- if (value === '*') {
278
- queryFormat = QueryFormat[key.toUpperCase()];
279
- break;
280
- }
281
- const urls = value.urls;
282
- if (Array.isArray(urls)) {
283
- urls.forEach(urlOpt => {
284
- if (url.indexOf(urlOpt) !== -1) {
285
- queryFormat = QueryFormat[key.toUpperCase()];
286
- }
287
- });
288
- break;
289
- }
290
- }
291
- if (queryFormat === QueryFormat.HTML ||
292
- queryFormat === QueryFormat.HTMLGML2) {
293
- queryHtmlTarget = 'iframe';
294
- }
295
- }
296
- return {
297
- queryFormat,
298
- queryHtmlTarget
299
- };
300
- }
301
- }
302
- ILayerSearchSource.id = 'ilayer';
303
- ILayerSearchSource.type = LAYER;
304
- ILayerSearchSource.ɵfac = function ILayerSearchSource_Factory(t) { return new (t || ILayerSearchSource)(i0.ɵɵinject(i2.HttpClient), i0.ɵɵinject(i1.LanguageService), i0.ɵɵinject(i1.StorageService), i0.ɵɵinject('options'), i0.ɵɵinject(ILayerSearchResultFormatter)); };
305
- ILayerSearchSource.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ILayerSearchSource, factory: ILayerSearchSource.ɵfac });
306
- __decorate([
307
- Cacheable({
308
- maxCacheCount: 20
309
- })
310
- ], ILayerSearchSource.prototype, "search", null);
311
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ILayerSearchSource, [{
312
- type: Injectable
313
- }], function () { return [{ type: i2.HttpClient }, { type: i1.LanguageService }, { type: i1.StorageService }, { type: undefined, decorators: [{
314
- type: Inject,
315
- args: ['options']
316
- }] }, { type: ILayerSearchResultFormatter, decorators: [{
317
- type: Inject,
318
- args: [ILayerSearchResultFormatter]
319
- }] }]; }, { search: [] }); })();
320
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWxheWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvc2VhcmNoL3NoYXJlZC9zb3VyY2VzL2lsYXllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTlELE9BQU8sRUFBYyxlQUFlLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdyQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2QyxPQUFPLEVBQThCLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXpFLE9BQU8sRUFBRSxZQUFZLEVBQWMsTUFBTSxVQUFVLENBQUM7QUFTcEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7OztBQUd6QyxNQUFNLE9BQU8sMkJBQTJCO0lBQ3RDLFlBQW9CLGVBQWdDO1FBQWhDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtJQUFHLENBQUM7SUFFeEQsWUFBWSxDQUFDLElBQWdCO1FBQzNCLE1BQU0sVUFBVSxHQUFHO1lBQ2pCLE9BQU87WUFDUCxVQUFVO1lBQ1YsWUFBWTtZQUNaLGFBQWE7WUFDYixhQUFhO1lBQ2IsU0FBUztZQUNULE1BQU07U0FDUCxDQUFDO1FBRUYsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENB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QUFFLENBQUMsQ0FBQztvQkFDN0MsTUFBTTtpQkFDUDtnQkFFRCxNQUFNLElBQUksR0FBSyxLQUFvQyxDQUFDLElBQUksQ0FBQztnQkFDekQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO3dCQUNwQixJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7NEJBQzlCLFdBQVcsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7eUJBQzlDO29CQUNILENBQUMsQ0FBQyxDQUFDO29CQUNILE1BQU07aUJBQ1A7YUFDRjtZQUVELElBQ0UsV0FBVyxLQUFLLFdBQVcsQ0FBQyxJQUFJO2dCQUNoQyxXQUFXLEtBQUssV0FBVyxDQUFDLFFBQVEsRUFDcEM7Z0JBQ0EsZUFBZSxHQUFHLFFBQVEsQ0FBQzthQUM1QjtTQUNGO1FBRUQsT0FBTztZQUNMLFdBQVc7WUFDWCxlQUFlO1NBQ2hCLENBQUM7SUFDSixDQUFDOztBQXhUTSxxQkFBRSxHQUFHLFFBQVEsQ0FBQztBQUNkLHVCQUFJLEdBQUcsS0FBSyxDQUFDO29GQUZULGtCQUFrQiwyR0FjbkIsU0FBUyxlQUNULDJCQUEyQjt3RUFmMUIsa0JBQWtCLFdBQWxCLGtCQUFrQjtBQTZJN0I7SUFIQyxTQUFTLENBQUM7UUFDVCxhQUFhLEVBQUUsRUFBRTtLQUNsQixDQUFDO2dEQWdCRDt1RkE1SlUsa0JBQWtCO2NBRDlCLFVBQVU7O3NCQWVOLE1BQU07dUJBQUMsU0FBUzswQkFFRSwyQkFBMkI7c0JBRDdDLE1BQU07dUJBQUMsMkJBQTJCO3dCQThIckMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgQmVoYXZpb3JTdWJqZWN0LCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBMYW5ndWFnZVNlcnZpY2UsIFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XG5pbXBvcnQgeyBPYmplY3RVdGlscyB9IGZyb20gJ0BpZ28yL3V0aWxzJztcblxuaW1wb3J0IHsgZ2V0UmVzb2x1dGlvbkZyb21TY2FsZSB9IGZyb20gJy4uLy4uLy4uL21hcC9zaGFyZWQvbWFwLnV0aWxzJztcbmltcG9ydCB7IExBWUVSIH0gZnJvbSAnLi4vLi4vLi4vbGF5ZXInO1xuaW1wb3J0IHsgUXVlcnlhYmxlRGF0YVNvdXJjZU9wdGlvbnMsIFF1ZXJ5Rm9ybWF0IH0gZnJvbSAnLi4vLi4vLi4vcXVlcnknO1xuaW1wb3J0IHsgUXVlcnlIdG1sVGFyZ2V0IH0gZnJvbSAnLi8uLi8uLi8uLi9xdWVyeS9zaGFyZWQvcXVlcnkuZW51bXMnO1xuXG5pbXBvcnQgeyBTZWFyY2hSZXN1bHQgfSBmcm9tICcuLi9zZWFyY2guaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBTZWFyY2hTb3VyY2UsIFRleHRTZWFyY2ggfSBmcm9tICcuL3NvdXJjZSc7XG5pbXBvcnQgeyBUZXh0U2VhcmNoT3B0aW9ucyB9IGZyb20gJy4vc291cmNlLmludGVyZmFjZXMnO1xuaW1wb3J0IHtcbiAgSUxheWVyU2VhcmNoU291cmNlT3B0aW9ucyxcbiAgSUxheWVyRGF0YSxcbiAgSUxheWVySXRlbVJlc3BvbnNlLFxuICBJTGF5ZXJTZXJ2aWNlUmVzcG9uc2UsXG4gIElMYXllckRhdGFTb3VyY2Vcbn0gZnJvbSAnLi9pbGF5ZXIuaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBjb21wdXRlVGVybVNpbWlsYXJpdHkgfSBmcm9tICcuLi9zZWFyY2gudXRpbHMnO1xuaW1wb3J0IHsgQ2FjaGVhYmxlIH0gZnJvbSAndHMtY2FjaGVhYmxlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIElMYXllclNlYXJjaFJlc3VsdEZvcm1hdHRlciB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UpIHt9XG5cbiAgZm9ybWF0UmVzdWx0KGRhdGE6IElMYXllckRhdGEpOiBJTGF5ZXJEYXRhIHtcbiAgICBjb25zdCBhbGxvd2VkS2V5ID0gW1xuICAgICAgJ3RpdGxlJyxcbiAgICAgICdhYnN0cmFjdCcsXG4gICAgICAnZ3JvdXBUaXRsZScsXG4gICAgICAnbWV0YWRhdGFVcmwnLFxuICAgICAgJ2Rvd25sb2FkVXJsJyxcbiAgICAgICd1cmxJbmZvJyxcbiAgICAgICduYW1lJ1xuICAgIF07XG5cbiAgICBjb25zdCBwcm9wZXJ0eSA9IE9iamVjdC5lbnRyaWVzKGRhdGEucHJvcGVydGllcylcbiAgICAgIC5maWx0ZXIoKFtrZXldKSA9PiBhbGxvd2VkS2V5LmluZGV4T2Yoa2V5KSAhPT0gLTEpXG4gICAgICAucmVkdWNlKChvdXQ6IHsgW2tleTogc3RyaW5nXTogYW55IH0sIGVudHJpZXM6IFtzdHJpbmcsIGFueV0pID0+IHtcbiAgICAgICAgY29uc3QgW2tleSwgdmFsdWVdID0gZW50cmllcztcbiAgICAgICAgbGV0IG5ld0tleTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBuZXdLZXkgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAgICdpZ28uZ2VvLnNlYXJjaC5pbGF5ZXIucHJvcGVydGllcy4nICsga2V5XG4gICAgICAgICAgKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIG5ld0tleSA9IGtleTtcbiAgICAgICAgfVxuICAgICAgICBvdXRbbmV3S2V5XSA9IHZhbHVlID8gdmFsdWUgOiAnJztcbiAgICAgICAgcmV0dXJuIG91dDtcbiAgICAgIH0sIHt9KTtcblxuICAgIGNvbnN0IGRhdGFSID0gT2JqZWN0LmFzc2lnbih7fSwgZGF0YSk7XG4gICAgZGF0YVIucHJvcGVydGllcyA9IHByb3BlcnR5IGFzIElMYXllckRhdGFTb3VyY2U7XG5cbiAgICByZXR1cm4gZGF0YVI7XG4gIH1cbn1cblxuLyoqXG4gKiBJTGF5ZXIgc2VhcmNoIHNvdXJjZVxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSUxheWVyU2VhcmNoU291cmNlIGV4dGVuZHMgU2VhcmNoU291cmNlIGltcGxlbWVudHMgVGV4dFNlYXJjaCB7XG4gIHN0YXRpYyBpZCA9ICdpbGF5ZXInO1xuICBzdGF0aWMgdHlwZSA9IExBWUVSO1xuXG4gIHRpdGxlJDogQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuXG4gIGdldCB0aXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRpdGxlJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UsXG4gICAgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlLFxuICAgIEBJbmplY3QoJ29wdGlvbnMnKSBvcHRpb25zOiBJTGF5ZXJTZWFyY2hTb3VyY2VPcHRpb25zLFxuICAgIEBJbmplY3QoSUxheWVyU2VhcmNoUmVzdWx0Rm9ybWF0dGVyKVxuICAgIHByaXZhdGUgZm9ybWF0dGVyOiBJTGF5ZXJTZWFyY2hSZXN1bHRGb3JtYXR0ZXJcbiAgKSB7XG4gICAgc3VwZXIob3B0aW9ucywgc3RvcmFnZVNlcnZpY2UpO1xuICAgIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZVxuICAgICAgLmdldCh0aGlzLm9wdGlvbnMudGl0bGUpXG4gICAgICAuc3Vic2NyaWJlKHRpdGxlID0+IHRoaXMudGl0bGUkLm5leHQodGl0bGUpKTtcbiAgfVxuXG4gIGdldElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIElMYXllclNlYXJjaFNvdXJjZS5pZDtcbiAgfVxuXG4gIGdldFR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gSUxheWVyU2VhcmNoU291cmNlLnR5cGU7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0RGVmYXVsdE9wdGlvbnMoKTogSUxheWVyU2VhcmNoU291cmNlT3B0aW9ucyB7XG4gICAgY29uc3QgbGltaXQgPVxuICAgICAgdGhpcy5vcHRpb25zLnBhcmFtcyAmJiB0aGlzLm9wdGlvbnMucGFyYW1zLmxpbWl0XG4gICAgICAgID8gTnVtYmVyKHRoaXMub3B0aW9ucy5wYXJhbXMubGltaXQpXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IGVjbWF4ID1cbiAgICAgIHRoaXMub3B0aW9ucy5wYXJhbXMgJiYgdGhpcy5vcHRpb25zLnBhcmFtcy5lY21heFxuICAgICAgICA/IE51bWJlcih0aGlzLm9wdGlvbnMucGFyYW1zLmVjbWF4KVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICByZXR1cm4ge1xuICAgICAgdGl0bGU6ICdpZ28uZ2VvLnNlYXJjaC5pbGF5ZXIubmFtZScsXG4gICAgICBzZWFyY2hVcmw6ICdodHRwczovL2dlb2VnbC5tc3AuZ291di5xYy5jYS9hcGlzL2xheWVycy9zZWFyY2gnLFxuICAgICAgc2V0dGluZ3M6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdjaGVja2JveCcsXG4gICAgICAgICAgdGl0bGU6ICdyZXN1bHRzIHR5cGUnLFxuICAgICAgICAgIG5hbWU6ICd0eXBlJyxcbiAgICAgICAgICB2YWx1ZXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGl0bGU6ICdpZ28uZ2VvLnNlYXJjaC5pbGF5ZXIudHlwZS5sYXllcicsXG4gICAgICAgICAgICAgIHZhbHVlOiAnbGF5ZXInLFxuICAgICAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgICBoYXNodGFnczogWydsYXllcicsICdsYXllcnMnLCAnY291Y2hlJywgJ2NvdWNoZXMnXVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGl0bGU6ICdpZ28uZ2VvLnNlYXJjaC5pbGF5ZXIudHlwZS5ncm91cExheWVyJyxcbiAgICAgICAgICAgICAgdmFsdWU6ICdncm91cCcsXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICBoYXNodGFnczogWydnci1sYXllcicsICdnci1sYXllcnMnLCAnZ3ItY291Y2hlJywgJ2dyLWNvdWNoZXMnXVxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdyYWRpb2J1dHRvbicsXG4gICAgICAgICAgdGl0bGU6ICdyZXN1bHRzIGxpbWl0JyxcbiAgICAgICAgICBuYW1lOiAnbGltaXQnLFxuICAgICAgICAgIHZhbHVlczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aXRsZTogJzEnLFxuICAgICAgICAgICAgICB2YWx1ZTogMSxcbiAgICAgICAgICAgICAgZW5hYmxlZDogbGltaXQgPT09IDFcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnNScsXG4gICAgICAgICAgICAgIHZhbHVlOiA1LFxuICAgICAgICAgICAgICBlbmFibGVkOiBsaW1pdCA9PT0gNSB8fCAhbGltaXRcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnMTAnLFxuICAgICAgICAgICAgICB2YWx1ZTogMTAsXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IGxpbWl0ID09PSAxMFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGl0bGU6ICcyNScsXG4gICAgICAgICAgICAgIHZhbHVlOiAyNSxcbiAgICAgICAgICAgICAgZW5hYmxlZDogbGltaXQgPT09IDI1XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aXRsZTogJzUwJyxcbiAgICAgICAgICAgICAgdmFsdWU6IDUwLFxuICAgICAgICAgICAgICBlbmFibGVkOiBsaW1pdCA9PT0gNTBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAncmFkaW9idXR0b24nLFxuICAgICAgICAgIHRpdGxlOiAnZWNtYXgnLFxuICAgICAgICAgIG5hbWU6ICdlY21heCcsXG4gICAgICAgICAgdmFsdWVzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnMTAgJScsXG4gICAgICAgICAgICAgIHZhbHVlOiAxMCxcbiAgICAgICAgICAgICAgZW5hYmxlZDogZWNtYXggPT09IDEwXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aXRsZTogJzMwICUnLFxuICAgICAgICAgICAgICB2YWx1ZTogMzAsXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IGVjbWF4ID09PSAzMFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGl0bGU6ICc1MCAlJyxcbiAgICAgICAgICAgICAgdmFsdWU6IDUwLFxuICAgICAgICAgICAgICBlbmFibGVkOiBlY21heCA9PT0gNTAgfHwgIWVjbWF4XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aXRsZTogJzc1ICUnLFxuICAgICAgICAgICAgICB2YWx1ZTogNzUsXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IGVjbWF4ID09PSA3NVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGl0bGU6ICcxMDAgJScsXG4gICAgICAgICAgICAgIHZhbHVlOiAxMDAsXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IGVjbWF4ID09PSAxMDBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFNlYXJjaCBhIGxheWVyIGJ5IG5hbWUgb3Iga2V5d29yZFxuICAgKiBAcGFyYW0gdGVybSBMYXllciBuYW1lIG9yIGtleXdvcmRcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBvZiA8U2VhcmNoUmVzdWx0PExheWVyT3B0aW9ucz5bXVxuICAgKi9cblxuICBAQ2FjaGVhYmxlKHtcbiAgICBtYXhDYWNoZUNvdW50OiAyMFxuICB9KVxuICBzZWFyY2goXG4gICAgdGVybTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIG9wdGlvbnM/OiBUZXh0U2VhcmNoT3B0aW9uc1xuICApOiBPYnNlcnZhYmxlPFNlYXJjaFJlc3VsdDxJTGF5ZXJJdGVtUmVzcG9uc2U+W10+IHtcbiAgICBjb25zdCBwYXJhbXMgPSB0aGlzLmNvbXB1dGVTZWFyY2hSZXF1ZXN0UGFyYW1zKHRlcm0sIG9wdGlvbnMgfHwge30pO1xuICAgIGlmICghcGFyYW1zLmdldCgncScpIHx8ICFwYXJhbXMuZ2V0KCd0eXBlJykpIHtcbiAgICAgIHJldHVybiBvZihbXSk7XG4gICAgfVxuICAgIHRoaXMub3B0aW9ucy5wYXJhbXMucGFnZSA9IHBhcmFtcy5nZXQoJ3BhZ2UnKSB8fCAnMSc7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0KHRoaXMuc2VhcmNoVXJsLCB7IHBhcmFtcyB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IElMYXllclNlcnZpY2VSZXNwb25zZSkgPT4gdGhpcy5leHRyYWN0UmVzdWx0cyhyZXNwb25zZSwgdGVybSkpXG4gICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjb21wdXRlU2VhcmNoUmVxdWVzdFBhcmFtcyhcbiAgICB0ZXJtOiBzdHJpbmcsXG4gICAgb3B0aW9uczogVGV4dFNlYXJjaE9wdGlvbnNcbiAgKTogSHR0cFBhcmFtcyB7XG4gICAgcmV0dXJuIG5ldyBIdHRwUGFyYW1zKHtcbiAgICAgIGZyb21PYmplY3Q6IE9iamVjdFV0aWxzLnJlbW92ZVVuZGVmaW5lZChcbiAgICAgICAgT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICB7XG4gICAgICAgICAgICBxOiB0aGlzLmNvbXB1dGVUZXJtKHRlcm0pXG4gICAgICAgICAgfSxcbiAgICAgICAgICB0aGlzLnBhcmFtcyxcbiAgICAgICAgICB0aGlzLmNvbXB1dGVPcHRpb25zUGFyYW0odGVybSwgb3B0aW9ucyB8fCB7fSkucGFyYW1zLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHBhZ2U6IG9wdGlvbnMucGFnZVxuICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgICAgKVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBoYXNodGFnIGZyb20gcXVlcnlcbiAgICogQHBhcmFtIHRlcm0gUXVlcnkgd2l0aCBoYXNodGFnXG4gICAqL1xuICBwcml2YXRlIGNvbXB1dGVUZXJtKHRlcm06IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRlcm0ucmVwbGFjZSgvKCNbXlxcc10qKS9nLCAnJykucmVwbGFjZSgvW15cXHfDgC3DvyAhXFwtXFwoXFwpLCcjXSsvZywgJycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBoYXNodGFnIHRvIHBhcmFtIGlmIHZhbGlkXG4gICAqIEBwYXJhbSB0ZXJtIFF1ZXJ5IHdpdGggaGFzaHRhZ1xuICAgKiBAcGFyYW0gb3B0aW9ucyBUZXh0U2VhcmNoT3B0aW9uc1xuICAgKi9cbiAgcHJpdmF0ZSBjb21wdXRlT3B0aW9uc1BhcmFtKFxuICAgIHRlcm06IHN0cmluZyxcbiAgICBvcHRpb25zOiBUZXh0U2VhcmNoT3B0aW9uc1xuICApOiBUZXh0U2VhcmNoT3B0aW9ucyB7XG4gICAgY29uc3QgaGFzaHRhZ3MgPSBzdXBlci5nZXRIYXNodGFnc1ZhbGlkKHRlcm0sICd0eXBlJyk7XG4gICAgaWYgKGhhc2h0YWdzKSB7XG4gICAgICBvcHRpb25zLnBhcmFtcyA9IE9iamVjdC5hc3NpZ24ob3B0aW9ucy5wYXJhbXMgfHwge30sIHtcbiAgICAgICAgdHlwZTogaGFzaHRhZ3Muam9pbignLCcpXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gb3B0aW9ucztcbiAgfVxuXG4gIHByaXZhdGUgZXh0cmFjdFJlc3VsdHMoXG4gICAgcmVzcG9uc2U6IElMYXllclNlcnZpY2VSZXNwb25zZSwgdGVybTogc3RyaW5nXG4gICk6IFNlYXJjaFJlc3VsdDxJTGF5ZXJJdGVtUmVzcG9uc2U+W10ge1xuICAgIHJldHVybiByZXNwb25zZS5pdGVtcy5tYXAoKGRhdGE6IElMYXllckRhdGEpID0+XG4gICAgdGhpcy5kYXRhVG9SZXN1bHQoZGF0YSwgdGVybSwgcmVzcG9uc2UpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZGF0YVRvUmVzdWx0KFxuICAgIGRhdGE6IElMYXllckRhdGEsXG4gICAgdGVybTogc3RyaW5nLFxuICAgIHJlc3BvbnNlPzogSUxheWVyU2VydmljZVJlc3BvbnNlXG4gICk6IFNlYXJjaFJlc3VsdDxJTGF5ZXJJdGVtUmVzcG9uc2U+IHtcbiAgICBjb25zdCBsYXllck9wdGlvbnMgPSB0aGlzLmNvbXB1dGVMYXllck9wdGlvbnMoZGF0YSk7XG5cbiAgICBjb25zdCB0aXRsZUh0bWwgPSBkYXRhLmhpZ2hsaWdodC50aXRsZSB8fCBkYXRhLnByb3BlcnRpZXMudGl0bGU7XG4gICAgY29uc3QgZ3JvdXBUaXRsZSA9IGRhdGEuaGlnaGxpZ2h0Lmdyb3VwVGl0bGUgfHwgZGF0YS5wcm9wZXJ0aWVzLmdyb3VwVGl0bGU7XG4gICAgY29uc3Qgc3VidGl0bGVIdG1sID0gZ3JvdXBUaXRsZVxuICAgICAgPyAnIDxzbWFsbCBzdHlsZT1cImNvbG9yOiAjNmY2OTY5XCI+ICcgKyBncm91cFRpdGxlICsgJzwvc21hbGw+J1xuICAgICAgOiAnJztcblxuICAgIHJldHVybiB7XG4gICAgICBzb3VyY2U6IHRoaXMsXG4gICAgICBtZXRhOiB7XG4gICAgICAgIGRhdGFUeXBlOiBMQVlFUixcbiAgICAgICAgaWQ6IFt0aGlzLmdldElkKCksIGRhdGEucHJvcGVydGllcy5pZF0uam9pbignLicpLFxuICAgICAgICB0aXRsZTogZGF0YS5wcm9wZXJ0aWVzLnRpdGxlLFxuICAgICAgICB0aXRsZUh0bWw6IHRpdGxlSHRtbCArIHN1YnRpdGxlSHRtbCxcbiAgICAgICAgaWNvbjogZGF0YS5wcm9wZXJ0aWVzLnR5cGUgPT09ICdMYXllcicgPyAnbGF5ZXJzJyA6ICdtYXAnLFxuICAgICAgICBzY29yZTogZGF0YS5zY29yZSB8fCBjb21wdXRlVGVybVNpbWlsYXJpdHkodGVybS50cmltKCksIGRhdGEucHJvcGVydGllcy5uYW1lKSxcbiAgICAgICAgbmV4dFBhZ2U6XG4gICAgICAgICAgcmVzcG9uc2UuaXRlbXMubGVuZ3RoICUgK3RoaXMub3B0aW9ucy5wYXJhbXMubGltaXQgPT09IDAgJiZcbiAgICAgICAgICArdGhpcy5vcHRpb25zLnBhcmFtcy5wYWdlIDwgMTBcbiAgICAgIH0sXG4gICAgICBkYXRhOiBsYXllck9wdGlvbnNcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBjb21wdXRlTGF5ZXJPcHRpb25zKGRhdGE6IElMYXllckRhdGEpOiBJTGF5ZXJJdGVtUmVzcG9uc2Uge1xuICAgIGNvbnN0IHVybCA9IGRhdGEucHJvcGVydGllcy51cmw7XG4gICAgY29uc3QgcXVlcnlQYXJhbXM6IFF1ZXJ5YWJsZURhdGFTb3VyY2VPcHRpb25zID0gdGhpcy5leHRyYWN0UXVlcnlQYXJhbXNGcm9tU291cmNlVXJsKFxuICAgICAgdXJsXG4gICAgKTtcbiAgICByZXR1cm4gT2JqZWN0VXRpbHMucmVtb3ZlVW5kZWZpbmVkKHtcbiAgICAgIHNvdXJjZU9wdGlvbnM6IHtcbiAgICAgICAgaWQ6IGRhdGEucHJvcGVydGllcy5pZCxcbiAgICAgICAgdHlwZTogZGF0YS5wcm9wZXJ0aWVzLmZvcm1hdCxcbiAgICAgICAgdXJsLFxuICAgICAgICBxdWVyeUZvcm1hdDogcXVlcnlQYXJhbXMucXVlcnlGb3JtYXQsXG4gICAgICAgIHF1ZXJ5SHRtbFRhcmdldDogcXVlcnlQYXJhbXMucXVlcnlIdG1sVGFyZ2V0LFxuICAgICAgICBwYXJhbXM6IGRhdGEucHJvcGVydGllcy5mb3JtYXQgPT09ICd3bXMnID8ge0xBWUVSUzogZGF0YS5wcm9wZXJ0aWVzLm5hbWV9IDogdW5kZWZpbmVkLFxuICAgICAgICBsYXllcjogZGF0YS5wcm9wZXJ0aWVzLmZvcm1hdCA9PT0gJ3dtcycgPyB1bmRlZmluZWQgOiBkYXRhLnByb3BlcnRpZXMubmFtZSxcbiAgICAgICAgb3B0aW9uc0Zyb21DYXBhYmlsaXRpZXM6IHRydWUsXG4gICAgICAgIGNyb3NzT3JpZ2luOiAnYW5vbnltb3VzJ1xuICAgICAgfSxcbiAgICAgIHRpdGxlOiBkYXRhLnByb3BlcnRpZXMudGl0bGUsXG4gICAgICBtYXhSZXNvbHV0aW9uOiBnZXRSZXNvbHV0aW9uRnJvbVNjYWxlKFxuICAgICAgICBOdW1iZXIoZGF0YS5wcm9wZXJ0aWVzLm1heFNjYWxlRGVub20pXG4gICAgICApLFxuICAgICAgbWluUmVzb2x1dGlvbjogZ2V0UmVzb2x1dGlvbkZyb21TY2FsZShcbiAgICAgICAgTnVtYmVyKGRhdGEucHJvcGVydGllcy5taW5TY2FsZURlbm9tKVxuICAgICAgKSxcbiAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIHVybDogZGF0YS5wcm9wZXJ0aWVzLm1ldGFkYXRhVXJsLFxuICAgICAgICBleHRlcm46IGRhdGEucHJvcGVydGllcy5tZXRhZGF0YVVybCA/IHRydWUgOiB1bmRlZmluZWQsXG4gICAgICAgIGFic3RyYWN0OiBkYXRhLnByb3BlcnRpZXMuYWJzdHJhY3QgfHwgdW5kZWZpbmVkXG4gICAgICB9LFxuICAgICAgcHJvcGVydGllczogdGhpcy5mb3JtYXR0ZXIuZm9ybWF0UmVzdWx0KGRhdGEpLnByb3BlcnRpZXNcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZXh0cmFjdFF1ZXJ5UGFyYW1zRnJvbVNvdXJjZVVybChcbiAgICB1cmw6IHN0cmluZ1xuICApOiB7IHF1ZXJ5Rm9ybWF0OiBRdWVyeUZvcm1hdDsgcXVlcnlIdG1sVGFyZ2V0OiBRdWVyeUh0bWxUYXJnZXQgfSB7XG4gICAgbGV0IHF1ZXJ5Rm9ybWF0O1xuICAgIGxldCBxdWVyeUh0bWxUYXJnZXQ7XG4gICAgY29uc3QgZm9ybWF0T3B0ID0gKHRoaXMub3B0aW9ucyBhcyBJTGF5ZXJTZWFyY2hTb3VyY2VPcHRpb25zKS5xdWVyeUZvcm1hdDtcbiAgICBpZiAoZm9ybWF0T3B0KSB7XG4gICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhmb3JtYXRPcHQpKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gZm9ybWF0T3B0W2tleV07XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gJyonKSB7XG4gICAgICAgICAgcXVlcnlGb3JtYXQgPSBRdWVyeUZvcm1hdFtrZXkudG9VcHBlckNhc2UoKV07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB1cmxzID0gKCh2YWx1ZSBhcyBhbnkpIGFzIHsgdXJsczogc3RyaW5nW10gfSkudXJscztcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodXJscykpIHtcbiAgICAgICAgICB1cmxzLmZvckVhY2godXJsT3B0ID0+IHtcbiAgICAgICAgICAgIGlmICh1cmwuaW5kZXhPZih1cmxPcHQpICE9PSAtMSkge1xuICAgICAgICAgICAgICBxdWVyeUZvcm1hdCA9IFF1ZXJ5Rm9ybWF0W2tleS50b1VwcGVyQ2FzZSgpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIHF1ZXJ5Rm9ybWF0ID09PSBRdWVyeUZvcm1hdC5IVE1MIHx8XG4gICAgICAgIHF1ZXJ5Rm9ybWF0ID09PSBRdWVyeUZvcm1hdC5IVE1MR01MMlxuICAgICAgKSB7XG4gICAgICAgIHF1ZXJ5SHRtbFRhcmdldCA9ICdpZnJhbWUnO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBxdWVyeUZvcm1hdCxcbiAgICAgIHF1ZXJ5SHRtbFRhcmdldFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
1
+ import { __decorate } from "tslib";
2
+ import { Injectable, Inject } from '@angular/core';
3
+ import { HttpParams } from '@angular/common/http';
4
+ import { BehaviorSubject, of } from 'rxjs';
5
+ import { map } from 'rxjs/operators';
6
+ import { ObjectUtils } from '@igo2/utils';
7
+ import { getResolutionFromScale } from '../../../map/shared/map.utils';
8
+ import { LAYER } from '../../../layer';
9
+ import { QueryFormat } from '../../../query';
10
+ import { SearchSource } from './source';
11
+ import { computeTermSimilarity } from '../search.utils';
12
+ import { Cacheable } from 'ts-cacheable';
13
+ import * as i0 from "@angular/core";
14
+ import * as i1 from "@igo2/core";
15
+ import * as i2 from "@angular/common/http";
16
+ export class ILayerSearchResultFormatter {
17
+ constructor(languageService) {
18
+ this.languageService = languageService;
19
+ }
20
+ formatResult(data) {
21
+ const allowedKey = [
22
+ 'title',
23
+ 'abstract',
24
+ 'groupTitle',
25
+ 'metadataUrl',
26
+ 'downloadUrl',
27
+ 'urlInfo',
28
+ 'name'
29
+ ];
30
+ const property = Object.entries(data.properties)
31
+ .filter(([key]) => allowedKey.indexOf(key) !== -1)
32
+ .reduce((out, entries) => {
33
+ const [key, value] = entries;
34
+ let newKey;
35
+ try {
36
+ newKey = this.languageService.translate.instant('igo.geo.search.ilayer.properties.' + key);
37
+ }
38
+ catch (e) {
39
+ newKey = key;
40
+ }
41
+ out[newKey] = value ? value : '';
42
+ return out;
43
+ }, {});
44
+ const dataR = Object.assign({}, data);
45
+ dataR.properties = property;
46
+ return dataR;
47
+ }
48
+ }
49
+ ILayerSearchResultFormatter.ɵfac = function ILayerSearchResultFormatter_Factory(t) { return new (t || ILayerSearchResultFormatter)(i0.ɵɵinject(i1.LanguageService)); };
50
+ ILayerSearchResultFormatter.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ILayerSearchResultFormatter, factory: ILayerSearchResultFormatter.ɵfac });
51
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ILayerSearchResultFormatter, [{
52
+ type: Injectable
53
+ }], function () { return [{ type: i1.LanguageService }]; }, null); })();
54
+ /**
55
+ * ILayer search source
56
+ */
57
+ export class ILayerSearchSource extends SearchSource {
58
+ constructor(http, languageService, storageService, options, formatter) {
59
+ super(options, storageService);
60
+ this.http = http;
61
+ this.languageService = languageService;
62
+ this.formatter = formatter;
63
+ this.title$ = new BehaviorSubject('');
64
+ this.languageService.language$.subscribe(() => {
65
+ this.title$.next(this.languageService.translate.instant(this.options.title));
66
+ });
67
+ }
68
+ get title() {
69
+ return this.title$.getValue();
70
+ }
71
+ getId() {
72
+ return ILayerSearchSource.id;
73
+ }
74
+ getType() {
75
+ return ILayerSearchSource.type;
76
+ }
77
+ getDefaultOptions() {
78
+ const limit = this.options.params && this.options.params.limit
79
+ ? Number(this.options.params.limit)
80
+ : undefined;
81
+ const ecmax = this.options.params && this.options.params.ecmax
82
+ ? Number(this.options.params.ecmax)
83
+ : undefined;
84
+ return {
85
+ title: 'igo.geo.search.ilayer.name',
86
+ searchUrl: 'https://geoegl.msp.gouv.qc.ca/apis/layers/search',
87
+ settings: [
88
+ {
89
+ type: 'checkbox',
90
+ title: 'results type',
91
+ name: 'type',
92
+ values: [
93
+ {
94
+ title: 'igo.geo.search.ilayer.type.layer',
95
+ value: 'layer',
96
+ enabled: true,
97
+ hashtags: ['layer', 'layers', 'couche', 'couches']
98
+ },
99
+ {
100
+ title: 'igo.geo.search.ilayer.type.groupLayer',
101
+ value: 'group',
102
+ enabled: false,
103
+ hashtags: ['gr-layer', 'gr-layers', 'gr-couche', 'gr-couches']
104
+ }
105
+ ]
106
+ },
107
+ {
108
+ type: 'radiobutton',
109
+ title: 'results limit',
110
+ name: 'limit',
111
+ values: [
112
+ {
113
+ title: '1',
114
+ value: 1,
115
+ enabled: limit === 1
116
+ },
117
+ {
118
+ title: '5',
119
+ value: 5,
120
+ enabled: limit === 5 || !limit
121
+ },
122
+ {
123
+ title: '10',
124
+ value: 10,
125
+ enabled: limit === 10
126
+ },
127
+ {
128
+ title: '25',
129
+ value: 25,
130
+ enabled: limit === 25
131
+ },
132
+ {
133
+ title: '50',
134
+ value: 50,
135
+ enabled: limit === 50
136
+ }
137
+ ]
138
+ },
139
+ {
140
+ type: 'radiobutton',
141
+ title: 'ecmax',
142
+ name: 'ecmax',
143
+ values: [
144
+ {
145
+ title: '10 %',
146
+ value: 10,
147
+ enabled: ecmax === 10
148
+ },
149
+ {
150
+ title: '30 %',
151
+ value: 30,
152
+ enabled: ecmax === 30
153
+ },
154
+ {
155
+ title: '50 %',
156
+ value: 50,
157
+ enabled: ecmax === 50 || !ecmax
158
+ },
159
+ {
160
+ title: '75 %',
161
+ value: 75,
162
+ enabled: ecmax === 75
163
+ },
164
+ {
165
+ title: '100 %',
166
+ value: 100,
167
+ enabled: ecmax === 100
168
+ }
169
+ ]
170
+ }
171
+ ]
172
+ };
173
+ }
174
+ /**
175
+ * Search a layer by name or keyword
176
+ * @param term Layer name or keyword
177
+ * @returns Observable of <SearchResult<LayerOptions>[]
178
+ */
179
+ search(term, options) {
180
+ const params = this.computeSearchRequestParams(term, options || {});
181
+ if (!params.get('q') || !params.get('type')) {
182
+ return of([]);
183
+ }
184
+ this.options.params.page = params.get('page') || '1';
185
+ return this.http
186
+ .get(this.searchUrl, { params })
187
+ .pipe(map((response) => this.extractResults(response, term)));
188
+ }
189
+ computeSearchRequestParams(term, options) {
190
+ return new HttpParams({
191
+ fromObject: ObjectUtils.removeUndefined(Object.assign({
192
+ q: this.computeTerm(term)
193
+ }, this.params, this.computeOptionsParam(term, options || {}).params, {
194
+ page: options.page
195
+ }))
196
+ });
197
+ }
198
+ /**
199
+ * Remove hashtag from query
200
+ * @param term Query with hashtag
201
+ */
202
+ computeTerm(term) {
203
+ return term.replace(/(#[^\s]*)/g, '').replace(/[^\wÀ-ÿ !\-\(\),'#]+/g, '');
204
+ }
205
+ /**
206
+ * Add hashtag to param if valid
207
+ * @param term Query with hashtag
208
+ * @param options TextSearchOptions
209
+ */
210
+ computeOptionsParam(term, options) {
211
+ const hashtags = super.getHashtagsValid(term, 'type');
212
+ if (hashtags) {
213
+ options.params = Object.assign(options.params || {}, {
214
+ type: hashtags.join(',')
215
+ });
216
+ }
217
+ return options;
218
+ }
219
+ extractResults(response, term) {
220
+ return response.items.map((data) => this.dataToResult(data, term, response));
221
+ }
222
+ dataToResult(data, term, response) {
223
+ const layerOptions = this.computeLayerOptions(data);
224
+ const titleHtml = data.highlight.title || data.properties.title;
225
+ const groupTitle = data.highlight.groupTitle || data.properties.groupTitle;
226
+ const subtitleHtml = groupTitle
227
+ ? ' <small style="color: #6f6969"> ' + groupTitle + '</small>'
228
+ : '';
229
+ return {
230
+ source: this,
231
+ meta: {
232
+ dataType: LAYER,
233
+ id: [this.getId(), data.properties.id].join('.'),
234
+ title: data.properties.title,
235
+ titleHtml: titleHtml + subtitleHtml,
236
+ icon: data.properties.type === 'Layer' ? 'layers' : 'map',
237
+ score: data.score || computeTermSimilarity(term.trim(), data.properties.name),
238
+ nextPage: response.items.length % +this.options.params.limit === 0 &&
239
+ +this.options.params.page < 10
240
+ },
241
+ data: layerOptions
242
+ };
243
+ }
244
+ computeLayerOptions(data) {
245
+ const url = data.properties.url;
246
+ const queryParams = this.extractQueryParamsFromSourceUrl(url);
247
+ return ObjectUtils.removeUndefined({
248
+ sourceOptions: {
249
+ id: data.properties.id,
250
+ type: data.properties.format,
251
+ url,
252
+ queryFormat: queryParams.queryFormat,
253
+ queryHtmlTarget: queryParams.queryHtmlTarget,
254
+ params: data.properties.format === 'wms' ? { LAYERS: data.properties.name } : undefined,
255
+ layer: data.properties.format === 'wms' ? undefined : data.properties.name,
256
+ optionsFromCapabilities: true,
257
+ crossOrigin: 'anonymous'
258
+ },
259
+ title: data.properties.title,
260
+ maxResolution: getResolutionFromScale(Number(data.properties.maxScaleDenom)),
261
+ minResolution: getResolutionFromScale(Number(data.properties.minScaleDenom)),
262
+ metadata: {
263
+ url: data.properties.metadataUrl,
264
+ extern: data.properties.metadataUrl ? true : undefined,
265
+ abstract: data.properties.abstract || undefined
266
+ },
267
+ properties: this.formatter.formatResult(data).properties
268
+ });
269
+ }
270
+ extractQueryParamsFromSourceUrl(url) {
271
+ let queryFormat;
272
+ let queryHtmlTarget;
273
+ const formatOpt = this.options.queryFormat;
274
+ if (formatOpt) {
275
+ for (const key of Object.keys(formatOpt)) {
276
+ const value = formatOpt[key];
277
+ if (value === '*') {
278
+ queryFormat = QueryFormat[key.toUpperCase()];
279
+ break;
280
+ }
281
+ const urls = value.urls;
282
+ if (Array.isArray(urls)) {
283
+ urls.forEach(urlOpt => {
284
+ if (url.indexOf(urlOpt) !== -1) {
285
+ queryFormat = QueryFormat[key.toUpperCase()];
286
+ }
287
+ });
288
+ break;
289
+ }
290
+ }
291
+ if (queryFormat === QueryFormat.HTML ||
292
+ queryFormat === QueryFormat.HTMLGML2) {
293
+ queryHtmlTarget = 'iframe';
294
+ }
295
+ }
296
+ return {
297
+ queryFormat,
298
+ queryHtmlTarget
299
+ };
300
+ }
301
+ }
302
+ ILayerSearchSource.id = 'ilayer';
303
+ ILayerSearchSource.type = LAYER;
304
+ ILayerSearchSource.ɵfac = function ILayerSearchSource_Factory(t) { return new (t || ILayerSearchSource)(i0.ɵɵinject(i2.HttpClient), i0.ɵɵinject(i1.LanguageService), i0.ɵɵinject(i1.StorageService), i0.ɵɵinject('options'), i0.ɵɵinject(ILayerSearchResultFormatter)); };
305
+ ILayerSearchSource.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ILayerSearchSource, factory: ILayerSearchSource.ɵfac });
306
+ __decorate([
307
+ Cacheable({
308
+ maxCacheCount: 20
309
+ })
310
+ ], ILayerSearchSource.prototype, "search", null);
311
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ILayerSearchSource, [{
312
+ type: Injectable
313
+ }], function () { return [{ type: i2.HttpClient }, { type: i1.LanguageService }, { type: i1.StorageService }, { type: undefined, decorators: [{
314
+ type: Inject,
315
+ args: ['options']
316
+ }] }, { type: ILayerSearchResultFormatter, decorators: [{
317
+ type: Inject,
318
+ args: [ILayerSearchResultFormatter]
319
+ }] }]; }, { search: [] }); })();
320
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWxheWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvc2VhcmNoL3NoYXJlZC9zb3VyY2VzL2lsYXllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTlELE9BQU8sRUFBYyxlQUFlLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdyQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2QyxPQUFPLEVBQThCLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXpFLE9BQU8sRUFBRSxZQUFZLEVBQWMsTUFBTSxVQUFVLENBQUM7QUFTcEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7OztBQUd6QyxNQUFNLE9BQU8sMkJBQTJCO0lBQ3RDLFlBQW9CLGVBQWdDO1FBQWhDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtJQUFHLENBQUM7SUFFeEQsWUFBWSxDQUFDLElBQWdCO1FBQzNCLE1BQU0sVUFBVSxHQUFHO1lBQ2pCLE9BQU87WUFDUCxVQUFVO1lBQ1YsWUFBWTtZQUNaLGFBQWE7WUFDYixhQUFhO1lBQ2IsU0FBUztZQUNULE1BQU07U0FDUCxDQUFDO1FBRUYsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO2FBQzdDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7YUFDakQsTUFBTSxDQUFDLENBQUMsR0FBMkIsRUFBRSxPQUFzQixFQUFFLEVBQUU7WUFDOUQsTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxPQUFPLENBQUM7WUFDN0IsSUFBSSxNQUFNLENBQUM7WUFDWCxJQUFJO2dCQUNGLE1BQU0sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQzdDLG1DQUFtQyxHQUFHLEdBQUcsQ0FDMUMsQ0FBQzthQUNIO1lBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ1YsTUFBTSxHQUFHLEdBQUcsQ0FBQzthQUNkO1lBQ0QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDakMsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFVCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN0QyxLQUFLLENBQUMsVUFBVSxHQUFHLFFBQTRCLENBQUM7UUFFaEQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOztzR0FsQ1UsMkJBQTJCO2lGQUEzQiwyQkFBMkIsV0FBM0IsMkJBQTJCO3VGQUEzQiwyQkFBMkI7Y0FEdkMsVUFBVTs7QUFzQ1g7O0dBRUc7QUFFSCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsWUFBWTtJQVVsRCxZQUNVLElBQWdCLEVBQ2hCLGVBQWdDLEVBQ3hDLGNBQThCLEVBQ1gsT0FBa0MsRUFFN0MsU0FBc0M7UUFFOUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQztRQVB2QixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUloQyxjQUFTLEdBQVQsU0FBUyxDQUE2QjtRQVpoRCxXQUFNLEdBQTRCLElBQUksZUFBZSxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBZWhFLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDNUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUMvRSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFoQkQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFnQkQsS0FBSztRQUNILE9BQU8sa0JBQWtCLENBQUMsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7SUFDakMsQ0FBQztJQUVTLGlCQUFpQjtRQUN6QixNQUFNLEtBQUssR0FDVCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLO1lBQzlDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1lBQ25DLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDaEIsTUFBTSxLQUFLLEdBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSztZQUM5QyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUNuQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2hCLE9BQU87WUFDTCxLQUFLLEVBQUUsNEJBQTRCO1lBQ25DLFNBQVMsRUFBRSxrREFBa0Q7WUFDN0QsUUFBUSxFQUFFO2dCQUNSO29CQUNFLElBQUksRUFBRSxVQUFVO29CQUNoQixLQUFLLEVBQUUsY0FBYztvQkFDckIsSUFBSSxFQUFFLE1BQU07b0JBQ1osTUFBTSxFQUFFO3dCQUNOOzRCQUNFLEtBQUssRUFBRSxrQ0FBa0M7NEJBQ3pDLEtBQUssRUFBRSxPQUFPOzRCQUNkLE9BQU8sRUFBRSxJQUFJOzRCQUNiLFFBQVEsRUFBRSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQzt5QkFDbkQ7d0JBQ0Q7NEJBQ0UsS0FBSyxFQUFFLHVDQUF1Qzs0QkFDOUMsS0FBSyxFQUFFLE9BQU87NEJBQ2QsT0FBTyxFQUFFLEtBQUs7NEJBQ2QsUUFBUSxFQUFFLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsWUFBWSxDQUFDO3lCQUMvRDtxQkFDRjtpQkFDRjtnQkFDRDtvQkFDRSxJQUFJLEVBQUUsYUFBYTtvQkFDbkIsS0FBSyxFQUFFLGVBQWU7b0JBQ3RCLElBQUksRUFBRSxPQUFPO29CQUNiLE1BQU0sRUFBRTt3QkFDTjs0QkFDRSxLQUFLLEVBQUUsR0FBRzs0QkFDVixLQUFLLEVBQUUsQ0FBQzs0QkFDUixPQUFPLEVBQUUsS0FBSyxLQUFLLENBQUM7eUJBQ3JCO3dCQUNEOzRCQUNFLEtBQUssRUFBRSxHQUFHOzRCQUNWLEtBQUssRUFBRSxDQUFDOzRCQUNSLE9BQU8sRUFBRSxLQUFLLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSzt5QkFDL0I7d0JBQ0Q7NEJBQ0UsS0FBSyxFQUFFLElBQUk7NEJBQ1gsS0FBSyxFQUFFLEVBQUU7NEJBQ1QsT0FBTyxFQUFFLEtBQUssS0FBSyxFQUFFO3lCQUN0Qjt3QkFDRDs0QkFDRSxLQUFLLEVBQUUsSUFBSTs0QkFDWCxLQUFLLEVBQUUsRUFBRTs0QkFDVCxPQUFPLEVBQUUsS0FBSyxLQUFLLEVBQUU7eUJBQ3RCO3dCQUNEOzRCQUNFLEtBQUssRUFBRSxJQUFJOzRCQUNYLEtBQUssRUFBRSxFQUFFOzRCQUNULE9BQU8sRUFBRSxLQUFLLEtBQUssRUFBRTt5QkFDdEI7cUJBQ0Y7aUJBQ0Y7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFFLGFBQWE7b0JBQ25CLEtBQUssRUFBRSxPQUFPO29CQUNkLElBQUksRUFBRSxPQUFPO29CQUNiLE1BQU0sRUFBRTt3QkFDTjs0QkFDRSxLQUFLLEVBQUUsTUFBTTs0QkFDYixLQUFLLEVBQUUsRUFBRTs0QkFDVCxPQUFPLEVBQUUsS0FBSyxLQUFLLEVBQUU7eUJBQ3RCO3dCQUNEOzRCQUNFLEtBQUssRUFBRSxNQUFNOzRCQUNiLEtBQUssRUFBRSxFQUFFOzRCQUNULE9BQU8sRUFBRSxLQUFLLEtBQUssRUFBRTt5QkFDdEI7d0JBQ0Q7NEJBQ0UsS0FBSyxFQUFFLE1BQU07NEJBQ2IsS0FBSyxFQUFFLEVBQUU7NEJBQ1QsT0FBTyxFQUFFLEtBQUssS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO3lCQUNoQzt3QkFDRDs0QkFDRSxLQUFLLEVBQUUsTUFBTTs0QkFDYixLQUFLLEVBQUUsRUFBRTs0QkFDVCxPQUFPLEVBQUUsS0FBSyxLQUFLLEVBQUU7eUJBQ3RCO3dCQUNEOzRCQUNFLEtBQUssRUFBRSxPQUFPOzRCQUNkLEtBQUssRUFBRSxHQUFHOzRCQUNWLE9BQU8sRUFBRSxLQUFLLEtBQUssR0FBRzt5QkFDdkI7cUJBQ0Y7aUJBQ0Y7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUtILE1BQU0sQ0FDSixJQUF3QixFQUN4QixPQUEyQjtRQUUzQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxFQUFFLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDM0MsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDZjtRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsQ0FBQztRQUVyRCxPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQzthQUMvQixJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsUUFBK0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FDOUUsQ0FBQztJQUNOLENBQUM7SUFFTywwQkFBMEIsQ0FDaEMsSUFBWSxFQUNaLE9BQTBCO1FBRTFCLE9BQU8sSUFBSSxVQUFVLENBQUM7WUFDcEIsVUFBVSxFQUFFLFdBQVcsQ0FBQyxlQUFlLENBQ3JDLE1BQU0sQ0FBQyxNQUFNLENBQ1g7Z0JBQ0UsQ0FBQyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO2FBQzFCLEVBQ0QsSUFBSSxDQUFDLE1BQU0sRUFDWCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQ3BEO2dCQUNFLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTthQUNuQixDQUNGLENBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssV0FBVyxDQUFDLElBQVk7UUFDOUIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxtQkFBbUIsQ0FDekIsSUFBWSxFQUNaLE9BQTBCO1FBRTFCLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDdEQsSUFBSSxRQUFRLEVBQUU7WUFDWixPQUFPLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxFQUFFLEVBQUU7Z0JBQ25ELElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQzthQUN6QixDQUFDLENBQUM7U0FDSjtRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFTyxjQUFjLENBQ3BCLFFBQStCLEVBQUUsSUFBWTtRQUU3QyxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBZ0IsRUFBRSxFQUFFLENBQy9DLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsQ0FDdEMsQ0FBQztJQUNKLENBQUM7SUFFTyxZQUFZLENBQ2xCLElBQWdCLEVBQ2hCLElBQVksRUFDWixRQUFnQztRQUVoQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFcEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFDaEUsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUM7UUFDM0UsTUFBTSxZQUFZLEdBQUcsVUFBVTtZQUM3QixDQUFDLENBQUMsa0NBQWtDLEdBQUcsVUFBVSxHQUFHLFVBQVU7WUFDOUQsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVQLE9BQU87WUFDTCxNQUFNLEVBQUUsSUFBSTtZQUNaLElBQUksRUFBRTtnQkFDSixRQUFRLEVBQUUsS0FBSztnQkFDZixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO2dCQUNoRCxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLO2dCQUM1QixTQUFTLEVBQUUsU0FBUyxHQUFHLFlBQVk7Z0JBQ25DLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSztnQkFDekQsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLElBQUkscUJBQXFCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO2dCQUM3RSxRQUFRLEVBQ04sUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEtBQUssQ0FBQztvQkFDeEQsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsRUFBRTthQUNqQztZQUNELElBQUksRUFBRSxZQUFZO1NBQ25CLENBQUM7SUFDSixDQUFDO0lBRU8sbUJBQW1CLENBQUMsSUFBZ0I7UUFDMUMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUM7UUFDaEMsTUFBTSxXQUFXLEdBQStCLElBQUksQ0FBQywrQkFBK0IsQ0FDbEYsR0FBRyxDQUNKLENBQUM7UUFDRixPQUFPLFdBQVcsQ0FBQyxlQUFlLENBQUM7WUFDakMsYUFBYSxFQUFFO2dCQUNiLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQ3RCLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU07Z0JBQzVCLEdBQUc7Z0JBQ0gsV0FBVyxFQUFFLFdBQVcsQ0FBQyxXQUFXO2dCQUNwQyxlQUFlLEVBQUUsV0FBVyxDQUFDLGVBQWU7Z0JBQzVDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7Z0JBQ3JGLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJO2dCQUMxRSx1QkFBdUIsRUFBRSxJQUFJO2dCQUM3QixXQUFXLEVBQUUsV0FBVzthQUN6QjtZQUNELEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUs7WUFDNUIsYUFBYSxFQUFFLHNCQUFzQixDQUNuQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FDdEM7WUFDRCxhQUFhLEVBQUUsc0JBQXNCLENBQ25DLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUN0QztZQUNELFFBQVEsRUFBRTtnQkFDUixHQUFHLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXO2dCQUNoQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUztnQkFDdEQsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxJQUFJLFNBQVM7YUFDaEQ7WUFDRCxVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVTtTQUN6RCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sK0JBQStCLENBQ3JDLEdBQVc7UUFFWCxJQUFJLFdBQVcsQ0FBQztRQUNoQixJQUFJLGVBQWUsQ0FBQztRQUNwQixNQUFNLFNBQVMsR0FBSSxJQUFJLENBQUMsT0FBcUMsQ0FBQyxXQUFXLENBQUM7UUFDMUUsSUFBSSxTQUFTLEVBQUU7WUFDYixLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQ3hDLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDN0IsSUFBSSxLQUFLLEtBQUssR0FBRyxFQUFFO29CQUNqQixXQUFXLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO29CQUM3QyxNQUFNO2lCQUNQO2dCQUVELE1BQU0sSUFBSSxHQUFLLEtBQW9DLENBQUMsSUFBSSxDQUFDO2dCQUN6RCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7d0JBQ3BCLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTs0QkFDOUIsV0FBVyxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQzt5QkFDOUM7b0JBQ0gsQ0FBQyxDQUFDLENBQUM7b0JBQ0gsTUFBTTtpQkFDUDthQUNGO1lBRUQsSUFDRSxXQUFXLEtBQUssV0FBVyxDQUFDLElBQUk7Z0JBQ2hDLFdBQVcsS0FBSyxXQUFXLENBQUMsUUFBUSxFQUNwQztnQkFDQSxlQUFlLEdBQUcsUUFBUSxDQUFDO2FBQzVCO1NBQ0Y7UUFFRCxPQUFPO1lBQ0wsV0FBVztZQUNYLGVBQWU7U0FDaEIsQ0FBQztJQUNKLENBQUM7O0FBeFRNLHFCQUFFLEdBQUcsUUFBUSxDQUFDO0FBQ2QsdUJBQUksR0FBRyxLQUFLLENBQUM7b0ZBRlQsa0JBQWtCLDJHQWNuQixTQUFTLGVBQ1QsMkJBQTJCO3dFQWYxQixrQkFBa0IsV0FBbEIsa0JBQWtCO0FBNkk3QjtJQUhDLFNBQVMsQ0FBQztRQUNULGFBQWEsRUFBRSxFQUFFO0tBQ2xCLENBQUM7Z0RBZ0JEO3VGQTVKVSxrQkFBa0I7Y0FEOUIsVUFBVTs7c0JBZU4sTUFBTTt1QkFBQyxTQUFTOzBCQUVFLDJCQUEyQjtzQkFEN0MsTUFBTTt1QkFBQywyQkFBMkI7d0JBOEhyQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBCZWhhdmlvclN1YmplY3QsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IExhbmd1YWdlU2VydmljZSwgU3RvcmFnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcbmltcG9ydCB7IE9iamVjdFV0aWxzIH0gZnJvbSAnQGlnbzIvdXRpbHMnO1xuXG5pbXBvcnQgeyBnZXRSZXNvbHV0aW9uRnJvbVNjYWxlIH0gZnJvbSAnLi4vLi4vLi4vbWFwL3NoYXJlZC9tYXAudXRpbHMnO1xuaW1wb3J0IHsgTEFZRVIgfSBmcm9tICcuLi8uLi8uLi9sYXllcic7XG5pbXBvcnQgeyBRdWVyeWFibGVEYXRhU291cmNlT3B0aW9ucywgUXVlcnlGb3JtYXQgfSBmcm9tICcuLi8uLi8uLi9xdWVyeSc7XG5pbXBvcnQgeyBRdWVyeUh0bWxUYXJnZXQgfSBmcm9tICcuLy4uLy4uLy4uL3F1ZXJ5L3NoYXJlZC9xdWVyeS5lbnVtcyc7XG5cbmltcG9ydCB7IFNlYXJjaFJlc3VsdCB9IGZyb20gJy4uL3NlYXJjaC5pbnRlcmZhY2VzJztcbmltcG9ydCB7IFNlYXJjaFNvdXJjZSwgVGV4dFNlYXJjaCB9IGZyb20gJy4vc291cmNlJztcbmltcG9ydCB7IFRleHRTZWFyY2hPcHRpb25zIH0gZnJvbSAnLi9zb3VyY2UuaW50ZXJmYWNlcyc7XG5pbXBvcnQge1xuICBJTGF5ZXJTZWFyY2hTb3VyY2VPcHRpb25zLFxuICBJTGF5ZXJEYXRhLFxuICBJTGF5ZXJJdGVtUmVzcG9uc2UsXG4gIElMYXllclNlcnZpY2VSZXNwb25zZSxcbiAgSUxheWVyRGF0YVNvdXJjZVxufSBmcm9tICcuL2lsYXllci5pbnRlcmZhY2VzJztcbmltcG9ydCB7IGNvbXB1dGVUZXJtU2ltaWxhcml0eSB9IGZyb20gJy4uL3NlYXJjaC51dGlscyc7XG5pbXBvcnQgeyBDYWNoZWFibGUgfSBmcm9tICd0cy1jYWNoZWFibGUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSUxheWVyU2VhcmNoUmVzdWx0Rm9ybWF0dGVyIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSkge31cblxuICBmb3JtYXRSZXN1bHQoZGF0YTogSUxheWVyRGF0YSk6IElMYXllckRhdGEge1xuICAgIGNvbnN0IGFsbG93ZWRLZXkgPSBbXG4gICAgICAndGl0bGUnLFxuICAgICAgJ2Fic3RyYWN0JyxcbiAgICAgICdncm91cFRpdGxlJyxcbiAgICAgICdtZXRhZGF0YVVybCcsXG4gICAgICAnZG93bmxvYWRVcmwnLFxuICAgICAgJ3VybEluZm8nLFxuICAgICAgJ25hbWUnXG4gICAgXTtcblxuICAgIGNvbnN0IHByb3BlcnR5ID0gT2JqZWN0LmVudHJpZXMoZGF0YS5wcm9wZXJ0aWVzKVxuICAgICAgLmZpbHRlcigoW2tleV0pID0+IGFsbG93ZWRLZXkuaW5kZXhPZihrZXkpICE9PSAtMSlcbiAgICAgIC5yZWR1Y2UoKG91dDogeyBba2V5OiBzdHJpbmddOiBhbnkgfSwgZW50cmllczogW3N0cmluZywgYW55XSkgPT4ge1xuICAgICAgICBjb25zdCBba2V5LCB2YWx1ZV0gPSBlbnRyaWVzO1xuICAgICAgICBsZXQgbmV3S2V5O1xuICAgICAgICB0cnkge1xuICAgICAgICAgIG5ld0tleSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICAgJ2lnby5nZW8uc2VhcmNoLmlsYXllci5wcm9wZXJ0aWVzLicgKyBrZXlcbiAgICAgICAgICApO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgbmV3S2V5ID0ga2V5O1xuICAgICAgICB9XG4gICAgICAgIG91dFtuZXdLZXldID0gdmFsdWUgPyB2YWx1ZSA6ICcnO1xuICAgICAgICByZXR1cm4gb3V0O1xuICAgICAgfSwge30pO1xuXG4gICAgY29uc3QgZGF0YVIgPSBPYmplY3QuYXNzaWduKHt9LCBkYXRhKTtcbiAgICBkYXRhUi5wcm9wZXJ0aWVzID0gcHJvcGVydHkgYXMgSUxheWVyRGF0YVNvdXJjZTtcblxuICAgIHJldHVybiBkYXRhUjtcbiAgfVxufVxuXG4vKipcbiAqIElMYXllciBzZWFyY2ggc291cmNlXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBJTGF5ZXJTZWFyY2hTb3VyY2UgZXh0ZW5kcyBTZWFyY2hTb3VyY2UgaW1wbGVtZW50cyBUZXh0U2VhcmNoIHtcbiAgc3RhdGljIGlkID0gJ2lsYXllcic7XG4gIHN0YXRpYyB0eXBlID0gTEFZRVI7XG5cbiAgdGl0bGUkOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG5cbiAgZ2V0IHRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudGl0bGUkLmdldFZhbHVlKCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSxcbiAgICBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2UsXG4gICAgQEluamVjdCgnb3B0aW9ucycpIG9wdGlvbnM6IElMYXllclNlYXJjaFNvdXJjZU9wdGlvbnMsXG4gICAgQEluamVjdChJTGF5ZXJTZWFyY2hSZXN1bHRGb3JtYXR0ZXIpXG4gICAgcHJpdmF0ZSBmb3JtYXR0ZXI6IElMYXllclNlYXJjaFJlc3VsdEZvcm1hdHRlclxuICApIHtcbiAgICBzdXBlcihvcHRpb25zLCBzdG9yYWdlU2VydmljZSk7XG4gICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UubGFuZ3VhZ2UkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnRpdGxlJC5uZXh0KHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KHRoaXMub3B0aW9ucy50aXRsZSkpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gSUxheWVyU2VhcmNoU291cmNlLmlkO1xuICB9XG5cbiAgZ2V0VHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBJTGF5ZXJTZWFyY2hTb3VyY2UudHlwZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXREZWZhdWx0T3B0aW9ucygpOiBJTGF5ZXJTZWFyY2hTb3VyY2VPcHRpb25zIHtcbiAgICBjb25zdCBsaW1pdCA9XG4gICAgICB0aGlzLm9wdGlvbnMucGFyYW1zICYmIHRoaXMub3B0aW9ucy5wYXJhbXMubGltaXRcbiAgICAgICAgPyBOdW1iZXIodGhpcy5vcHRpb25zLnBhcmFtcy5saW1pdClcbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgZWNtYXggPVxuICAgICAgdGhpcy5vcHRpb25zLnBhcmFtcyAmJiB0aGlzLm9wdGlvbnMucGFyYW1zLmVjbWF4XG4gICAgICAgID8gTnVtYmVyKHRoaXMub3B0aW9ucy5wYXJhbXMuZWNtYXgpXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIHJldHVybiB7XG4gICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmlsYXllci5uYW1lJyxcbiAgICAgIHNlYXJjaFVybDogJ2h0dHBzOi8vZ2VvZWdsLm1zcC5nb3V2LnFjLmNhL2FwaXMvbGF5ZXJzL3NlYXJjaCcsXG4gICAgICBzZXR0aW5nczogW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2NoZWNrYm94JyxcbiAgICAgICAgICB0aXRsZTogJ3Jlc3VsdHMgdHlwZScsXG4gICAgICAgICAgbmFtZTogJ3R5cGUnLFxuICAgICAgICAgIHZhbHVlczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmlsYXllci50eXBlLmxheWVyJyxcbiAgICAgICAgICAgICAgdmFsdWU6ICdsYXllcicsXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICAgIGhhc2h0YWdzOiBbJ2xheWVyJywgJ2xheWVycycsICdjb3VjaGUnLCAnY291Y2hlcyddXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmlsYXllci50eXBlLmdyb3VwTGF5ZXInLFxuICAgICAgICAgICAgICB2YWx1ZTogJ2dyb3VwJyxcbiAgICAgICAgICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICAgICAgICAgIGhhc2h0YWdzOiBbJ2dyLWxheWVyJywgJ2dyLWxheWVycycsICdnci1jb3VjaGUnLCAnZ3ItY291Y2hlcyddXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ3JhZGlvYnV0dG9uJyxcbiAgICAgICAgICB0aXRsZTogJ3Jlc3VsdHMgbGltaXQnLFxuICAgICAgICAgIG5hbWU6ICdsaW1pdCcsXG4gICAgICAgICAgdmFsdWVzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnMScsXG4gICAgICAgICAgICAgIHZhbHVlOiAxLFxuICAgICAgICAgICAgICBlbmFibGVkOiBsaW1pdCA9PT0gMVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGl0bGU6ICc1JyxcbiAgICAgICAgICAgICAgdmFsdWU6IDUsXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IGxpbWl0ID09PSA1IHx8ICFsaW1pdFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGl0bGU6ICcxMCcsXG4gICAgICAgICAgICAgIHZhbHVlOiAxMCxcbiAgICAgICAgICAgICAgZW5hYmxlZDogbGltaXQgPT09IDEwXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aXRsZTogJzI1JyxcbiAgICAgICAgICAgICAgdmFsdWU6IDI1LFxuICAgICAgICAgICAgICBlbmFibGVkOiBsaW1pdCA9PT0gMjVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnNTAnLFxuICAgICAgICAgICAgICB2YWx1ZTogNTAsXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IGxpbWl0ID09PSA1MFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdyYWRpb2J1dHRvbicsXG4gICAgICAgICAgdGl0bGU6ICdlY21heCcsXG4gICAgICAgICAgbmFtZTogJ2VjbWF4JyxcbiAgICAgICAgICB2YWx1ZXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGl0bGU6ICcxMCAlJyxcbiAgICAgICAgICAgICAgdmFsdWU6IDEwLFxuICAgICAgICAgICAgICBlbmFibGVkOiBlY21heCA9PT0gMTBcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnMzAgJScsXG4gICAgICAgICAgICAgIHZhbHVlOiAzMCxcbiAgICAgICAgICAgICAgZW5hYmxlZDogZWNtYXggPT09IDMwXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aXRsZTogJzUwICUnLFxuICAgICAgICAgICAgICB2YWx1ZTogNTAsXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IGVjbWF4ID09PSA1MCB8fCAhZWNtYXhcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnNzUgJScsXG4gICAgICAgICAgICAgIHZhbHVlOiA3NSxcbiAgICAgICAgICAgICAgZW5hYmxlZDogZWNtYXggPT09IDc1XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aXRsZTogJzEwMCAlJyxcbiAgICAgICAgICAgICAgdmFsdWU6IDEwMCxcbiAgICAgICAgICAgICAgZW5hYmxlZDogZWNtYXggPT09IDEwMFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogU2VhcmNoIGEgbGF5ZXIgYnkgbmFtZSBvciBrZXl3b3JkXG4gICAqIEBwYXJhbSB0ZXJtIExheWVyIG5hbWUgb3Iga2V5d29yZFxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIG9mIDxTZWFyY2hSZXN1bHQ8TGF5ZXJPcHRpb25zPltdXG4gICAqL1xuXG4gIEBDYWNoZWFibGUoe1xuICAgIG1heENhY2hlQ291bnQ6IDIwXG4gIH0pXG4gIHNlYXJjaChcbiAgICB0ZXJtOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgb3B0aW9ucz86IFRleHRTZWFyY2hPcHRpb25zXG4gICk6IE9ic2VydmFibGU8U2VhcmNoUmVzdWx0PElMYXllckl0ZW1SZXNwb25zZT5bXT4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuY29tcHV0ZVNlYXJjaFJlcXVlc3RQYXJhbXModGVybSwgb3B0aW9ucyB8fCB7fSk7XG4gICAgaWYgKCFwYXJhbXMuZ2V0KCdxJykgfHwgIXBhcmFtcy5nZXQoJ3R5cGUnKSkge1xuICAgICAgcmV0dXJuIG9mKFtdKTtcbiAgICB9XG4gICAgdGhpcy5vcHRpb25zLnBhcmFtcy5wYWdlID0gcGFyYW1zLmdldCgncGFnZScpIHx8ICcxJztcblxuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQodGhpcy5zZWFyY2hVcmwsIHsgcGFyYW1zIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogSUxheWVyU2VydmljZVJlc3BvbnNlKSA9PiB0aGlzLmV4dHJhY3RSZXN1bHRzKHJlc3BvbnNlLCB0ZXJtKSlcbiAgICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNvbXB1dGVTZWFyY2hSZXF1ZXN0UGFyYW1zKFxuICAgIHRlcm06IHN0cmluZyxcbiAgICBvcHRpb25zOiBUZXh0U2VhcmNoT3B0aW9uc1xuICApOiBIdHRwUGFyYW1zIHtcbiAgICByZXR1cm4gbmV3IEh0dHBQYXJhbXMoe1xuICAgICAgZnJvbU9iamVjdDogT2JqZWN0VXRpbHMucmVtb3ZlVW5kZWZpbmVkKFxuICAgICAgICBPYmplY3QuYXNzaWduKFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHE6IHRoaXMuY29tcHV0ZVRlcm0odGVybSlcbiAgICAgICAgICB9LFxuICAgICAgICAgIHRoaXMucGFyYW1zLFxuICAgICAgICAgIHRoaXMuY29tcHV0ZU9wdGlvbnNQYXJhbSh0ZXJtLCBvcHRpb25zIHx8IHt9KS5wYXJhbXMsXG4gICAgICAgICAge1xuICAgICAgICAgICAgcGFnZTogb3B0aW9ucy5wYWdlXG4gICAgICAgICAgfVxuICAgICAgICApXG4gICAgICApXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGhhc2h0YWcgZnJvbSBxdWVyeVxuICAgKiBAcGFyYW0gdGVybSBRdWVyeSB3aXRoIGhhc2h0YWdcbiAgICovXG4gIHByaXZhdGUgY29tcHV0ZVRlcm0odGVybTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGVybS5yZXBsYWNlKC8oI1teXFxzXSopL2csICcnKS5yZXBsYWNlKC9bXlxcd8OALcO/ICFcXC1cXChcXCksJyNdKy9nLCAnJyk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGhhc2h0YWcgdG8gcGFyYW0gaWYgdmFsaWRcbiAgICogQHBhcmFtIHRlcm0gUXVlcnkgd2l0aCBoYXNodGFnXG4gICAqIEBwYXJhbSBvcHRpb25zIFRleHRTZWFyY2hPcHRpb25zXG4gICAqL1xuICBwcml2YXRlIGNvbXB1dGVPcHRpb25zUGFyYW0oXG4gICAgdGVybTogc3RyaW5nLFxuICAgIG9wdGlvbnM6IFRleHRTZWFyY2hPcHRpb25zXG4gICk6IFRleHRTZWFyY2hPcHRpb25zIHtcbiAgICBjb25zdCBoYXNodGFncyA9IHN1cGVyLmdldEhhc2h0YWdzVmFsaWQodGVybSwgJ3R5cGUnKTtcbiAgICBpZiAoaGFzaHRhZ3MpIHtcbiAgICAgIG9wdGlvbnMucGFyYW1zID0gT2JqZWN0LmFzc2lnbihvcHRpb25zLnBhcmFtcyB8fCB7fSwge1xuICAgICAgICB0eXBlOiBoYXNodGFncy5qb2luKCcsJylcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG5cbiAgcHJpdmF0ZSBleHRyYWN0UmVzdWx0cyhcbiAgICByZXNwb25zZTogSUxheWVyU2VydmljZVJlc3BvbnNlLCB0ZXJtOiBzdHJpbmdcbiAgKTogU2VhcmNoUmVzdWx0PElMYXllckl0ZW1SZXNwb25zZT5bXSB7XG4gICAgcmV0dXJuIHJlc3BvbnNlLml0ZW1zLm1hcCgoZGF0YTogSUxheWVyRGF0YSkgPT5cbiAgICB0aGlzLmRhdGFUb1Jlc3VsdChkYXRhLCB0ZXJtLCByZXNwb25zZSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBkYXRhVG9SZXN1bHQoXG4gICAgZGF0YTogSUxheWVyRGF0YSxcbiAgICB0ZXJtOiBzdHJpbmcsXG4gICAgcmVzcG9uc2U/OiBJTGF5ZXJTZXJ2aWNlUmVzcG9uc2VcbiAgKTogU2VhcmNoUmVzdWx0PElMYXllckl0ZW1SZXNwb25zZT4ge1xuICAgIGNvbnN0IGxheWVyT3B0aW9ucyA9IHRoaXMuY29tcHV0ZUxheWVyT3B0aW9ucyhkYXRhKTtcblxuICAgIGNvbnN0IHRpdGxlSHRtbCA9IGRhdGEuaGlnaGxpZ2h0LnRpdGxlIHx8IGRhdGEucHJvcGVydGllcy50aXRsZTtcbiAgICBjb25zdCBncm91cFRpdGxlID0gZGF0YS5oaWdobGlnaHQuZ3JvdXBUaXRsZSB8fCBkYXRhLnByb3BlcnRpZXMuZ3JvdXBUaXRsZTtcbiAgICBjb25zdCBzdWJ0aXRsZUh0bWwgPSBncm91cFRpdGxlXG4gICAgICA/ICcgPHNtYWxsIHN0eWxlPVwiY29sb3I6ICM2ZjY5NjlcIj4gJyArIGdyb3VwVGl0bGUgKyAnPC9zbWFsbD4nXG4gICAgICA6ICcnO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHNvdXJjZTogdGhpcyxcbiAgICAgIG1ldGE6IHtcbiAgICAgICAgZGF0YVR5cGU6IExBWUVSLFxuICAgICAgICBpZDogW3RoaXMuZ2V0SWQoKSwgZGF0YS5wcm9wZXJ0aWVzLmlkXS5qb2luKCcuJyksXG4gICAgICAgIHRpdGxlOiBkYXRhLnByb3BlcnRpZXMudGl0bGUsXG4gICAgICAgIHRpdGxlSHRtbDogdGl0bGVIdG1sICsgc3VidGl0bGVIdG1sLFxuICAgICAgICBpY29uOiBkYXRhLnByb3BlcnRpZXMudHlwZSA9PT0gJ0xheWVyJyA/ICdsYXllcnMnIDogJ21hcCcsXG4gICAgICAgIHNjb3JlOiBkYXRhLnNjb3JlIHx8IGNvbXB1dGVUZXJtU2ltaWxhcml0eSh0ZXJtLnRyaW0oKSwgZGF0YS5wcm9wZXJ0aWVzLm5hbWUpLFxuICAgICAgICBuZXh0UGFnZTpcbiAgICAgICAgICByZXNwb25zZS5pdGVtcy5sZW5ndGggJSArdGhpcy5vcHRpb25zLnBhcmFtcy5saW1pdCA9PT0gMCAmJlxuICAgICAgICAgICt0aGlzLm9wdGlvbnMucGFyYW1zLnBhZ2UgPCAxMFxuICAgICAgfSxcbiAgICAgIGRhdGE6IGxheWVyT3B0aW9uc1xuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGNvbXB1dGVMYXllck9wdGlvbnMoZGF0YTogSUxheWVyRGF0YSk6IElMYXllckl0ZW1SZXNwb25zZSB7XG4gICAgY29uc3QgdXJsID0gZGF0YS5wcm9wZXJ0aWVzLnVybDtcbiAgICBjb25zdCBxdWVyeVBhcmFtczogUXVlcnlhYmxlRGF0YVNvdXJjZU9wdGlvbnMgPSB0aGlzLmV4dHJhY3RRdWVyeVBhcmFtc0Zyb21Tb3VyY2VVcmwoXG4gICAgICB1cmxcbiAgICApO1xuICAgIHJldHVybiBPYmplY3RVdGlscy5yZW1vdmVVbmRlZmluZWQoe1xuICAgICAgc291cmNlT3B0aW9uczoge1xuICAgICAgICBpZDogZGF0YS5wcm9wZXJ0aWVzLmlkLFxuICAgICAgICB0eXBlOiBkYXRhLnByb3BlcnRpZXMuZm9ybWF0LFxuICAgICAgICB1cmwsXG4gICAgICAgIHF1ZXJ5Rm9ybWF0OiBxdWVyeVBhcmFtcy5xdWVyeUZvcm1hdCxcbiAgICAgICAgcXVlcnlIdG1sVGFyZ2V0OiBxdWVyeVBhcmFtcy5xdWVyeUh0bWxUYXJnZXQsXG4gICAgICAgIHBhcmFtczogZGF0YS5wcm9wZXJ0aWVzLmZvcm1hdCA9PT0gJ3dtcycgPyB7TEFZRVJTOiBkYXRhLnByb3BlcnRpZXMubmFtZX0gOiB1bmRlZmluZWQsXG4gICAgICAgIGxheWVyOiBkYXRhLnByb3BlcnRpZXMuZm9ybWF0ID09PSAnd21zJyA/IHVuZGVmaW5lZCA6IGRhdGEucHJvcGVydGllcy5uYW1lLFxuICAgICAgICBvcHRpb25zRnJvbUNhcGFiaWxpdGllczogdHJ1ZSxcbiAgICAgICAgY3Jvc3NPcmlnaW46ICdhbm9ueW1vdXMnXG4gICAgICB9LFxuICAgICAgdGl0bGU6IGRhdGEucHJvcGVydGllcy50aXRsZSxcbiAgICAgIG1heFJlc29sdXRpb246IGdldFJlc29sdXRpb25Gcm9tU2NhbGUoXG4gICAgICAgIE51bWJlcihkYXRhLnByb3BlcnRpZXMubWF4U2NhbGVEZW5vbSlcbiAgICAgICksXG4gICAgICBtaW5SZXNvbHV0aW9uOiBnZXRSZXNvbHV0aW9uRnJvbVNjYWxlKFxuICAgICAgICBOdW1iZXIoZGF0YS5wcm9wZXJ0aWVzLm1pblNjYWxlRGVub20pXG4gICAgICApLFxuICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgdXJsOiBkYXRhLnByb3BlcnRpZXMubWV0YWRhdGFVcmwsXG4gICAgICAgIGV4dGVybjogZGF0YS5wcm9wZXJ0aWVzLm1ldGFkYXRhVXJsID8gdHJ1ZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgYWJzdHJhY3Q6IGRhdGEucHJvcGVydGllcy5hYnN0cmFjdCB8fCB1bmRlZmluZWRcbiAgICAgIH0sXG4gICAgICBwcm9wZXJ0aWVzOiB0aGlzLmZvcm1hdHRlci5mb3JtYXRSZXN1bHQoZGF0YSkucHJvcGVydGllc1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBleHRyYWN0UXVlcnlQYXJhbXNGcm9tU291cmNlVXJsKFxuICAgIHVybDogc3RyaW5nXG4gICk6IHsgcXVlcnlGb3JtYXQ6IFF1ZXJ5Rm9ybWF0OyBxdWVyeUh0bWxUYXJnZXQ6IFF1ZXJ5SHRtbFRhcmdldCB9IHtcbiAgICBsZXQgcXVlcnlGb3JtYXQ7XG4gICAgbGV0IHF1ZXJ5SHRtbFRhcmdldDtcbiAgICBjb25zdCBmb3JtYXRPcHQgPSAodGhpcy5vcHRpb25zIGFzIElMYXllclNlYXJjaFNvdXJjZU9wdGlvbnMpLnF1ZXJ5Rm9ybWF0O1xuICAgIGlmIChmb3JtYXRPcHQpIHtcbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGZvcm1hdE9wdCkpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBmb3JtYXRPcHRba2V5XTtcbiAgICAgICAgaWYgKHZhbHVlID09PSAnKicpIHtcbiAgICAgICAgICBxdWVyeUZvcm1hdCA9IFF1ZXJ5Rm9ybWF0W2tleS50b1VwcGVyQ2FzZSgpXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHVybHMgPSAoKHZhbHVlIGFzIGFueSkgYXMgeyB1cmxzOiBzdHJpbmdbXSB9KS51cmxzO1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh1cmxzKSkge1xuICAgICAgICAgIHVybHMuZm9yRWFjaCh1cmxPcHQgPT4ge1xuICAgICAgICAgICAgaWYgKHVybC5pbmRleE9mKHVybE9wdCkgIT09IC0xKSB7XG4gICAgICAgICAgICAgIHF1ZXJ5Rm9ybWF0ID0gUXVlcnlGb3JtYXRba2V5LnRvVXBwZXJDYXNlKCldO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgcXVlcnlGb3JtYXQgPT09IFF1ZXJ5Rm9ybWF0LkhUTUwgfHxcbiAgICAgICAgcXVlcnlGb3JtYXQgPT09IFF1ZXJ5Rm9ybWF0LkhUTUxHTUwyXG4gICAgICApIHtcbiAgICAgICAgcXVlcnlIdG1sVGFyZ2V0ID0gJ2lmcmFtZSc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHF1ZXJ5Rm9ybWF0LFxuICAgICAgcXVlcnlIdG1sVGFyZ2V0XG4gICAgfTtcbiAgfVxufVxuIl19