@igo2/geo 1.9.0 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (387) hide show
  1. package/assets/icons/cross_black_18px.svg +88 -88
  2. package/assets/icons/place_blue_36px.svg +55 -55
  3. package/assets/icons/place_green_36px.svg +55 -55
  4. package/assets/icons/place_red_36px.svg +55 -55
  5. package/assets/icons/place_yellow_36px.svg +55 -55
  6. package/bundles/igo2-geo.umd.js +3651 -2762
  7. package/bundles/igo2-geo.umd.js.map +1 -1
  8. package/esm2015/lib/catalog/catalog-browser/catalog-browser-group.component.js +2 -2
  9. package/esm2015/lib/catalog/catalog-browser/catalog-browser-layer.component.js +2 -2
  10. package/esm2015/lib/catalog/catalog-browser/catalog-browser.module.js +1 -1
  11. package/esm2015/lib/catalog/catalog-library/add-catalog-dialog.component.js +72 -53
  12. package/esm2015/lib/catalog/catalog-library/catalog-library.component.js +2 -1
  13. package/esm2015/lib/catalog/catalog.module.js +1 -1
  14. package/esm2015/lib/catalog/shared/catalog.abstract.js +1 -1
  15. package/esm2015/lib/catalog/shared/catalog.interface.js +1 -1
  16. package/esm2015/lib/catalog/shared/catalog.service.js +13 -3
  17. package/esm2015/lib/catalog/shared/index.js +1 -1
  18. package/esm2015/lib/datasource/datasource.module.js +1 -1
  19. package/esm2015/lib/datasource/index.js +1 -1
  20. package/esm2015/lib/datasource/shared/capabilities.service.js +4 -4
  21. package/esm2015/lib/datasource/shared/datasources/carto-datasource.interface.js +1 -1
  22. package/esm2015/lib/datasource/shared/datasources/carto-datasource.js +2 -2
  23. package/esm2015/lib/datasource/shared/datasources/cluster-datasource.js +1 -1
  24. package/esm2015/lib/datasource/shared/datasources/data.service.js +1 -1
  25. package/esm2015/lib/datasource/shared/datasources/datasource.interface.js +1 -1
  26. package/esm2015/lib/datasource/shared/datasources/datasource.js +1 -1
  27. package/esm2015/lib/datasource/shared/datasources/mvt-datasource.interface.js +1 -1
  28. package/esm2015/lib/datasource/shared/datasources/mvt-datasource.js +2 -2
  29. package/esm2015/lib/datasource/shared/datasources/osm-datasource.interface.js +1 -1
  30. package/esm2015/lib/datasource/shared/datasources/websocket-datasource.interface.js +1 -1
  31. package/esm2015/lib/datasource/shared/datasources/websocket-datasource.js +1 -1
  32. package/esm2015/lib/datasource/shared/datasources/wfs-datasource.interface.js +1 -1
  33. package/esm2015/lib/datasource/shared/datasources/wfs.service.js +1 -1
  34. package/esm2015/lib/datasource/shared/datasources/wms-wfs.utils.js +1 -1
  35. package/esm2015/lib/datasource/shared/datasources/wmts-datasource.interface.js +1 -1
  36. package/esm2015/lib/datasource/shared/datasources/xyz-datasource.interface.js +1 -1
  37. package/esm2015/lib/datasource/shared/datasources/xyz-datasource.js +1 -1
  38. package/esm2015/lib/datasource/shared/index.js +1 -1
  39. package/esm2015/lib/datasource/shared/options/index.js +1 -1
  40. package/esm2015/lib/datasource/shared/options/options-api.interface.js +1 -1
  41. package/esm2015/lib/datasource/shared/options/options-api.providers.js +1 -1
  42. package/esm2015/lib/datasource/shared/options/options-api.service.js +1 -1
  43. package/esm2015/lib/datasource/shared/options/options.service.js +1 -1
  44. package/esm2015/lib/datasource/utils/esri-style-generator.js +1 -1
  45. package/esm2015/lib/datasource/utils/index.js +1 -1
  46. package/esm2015/lib/datasource/utils/tilegrid.js +1 -1
  47. package/esm2015/lib/directions/directions-buttons/directions-buttons.component.js +223 -0
  48. package/esm2015/lib/directions/directions-buttons/index.js +2 -0
  49. package/esm2015/lib/directions/directions-inputs/directions-inputs.component.js +300 -0
  50. package/esm2015/lib/directions/directions-inputs/index.js +2 -0
  51. package/esm2015/lib/directions/directions-results/directions-results.component.js +204 -0
  52. package/esm2015/lib/directions/directions-results/index.js +2 -0
  53. package/esm2015/lib/directions/directions-sources/directions-source.interface.js +1 -1
  54. package/esm2015/lib/directions/directions-sources/directions-source.js +1 -1
  55. package/esm2015/lib/directions/directions-sources/directions-source.provider.js +1 -1
  56. package/esm2015/lib/directions/directions-sources/index.js +1 -1
  57. package/esm2015/lib/directions/directions-sources/osrm-directions-source.js +11 -2
  58. package/esm2015/lib/directions/directions.component.js +314 -0
  59. package/esm2015/lib/directions/directions.module.js +31 -10
  60. package/esm2015/lib/directions/index.js +5 -2
  61. package/esm2015/lib/directions/shared/directions-source.service.js +1 -1
  62. package/esm2015/lib/directions/shared/directions.enum.js +20 -3
  63. package/esm2015/lib/directions/shared/directions.interface.js +1 -1
  64. package/esm2015/lib/directions/shared/directions.service.js +1 -1
  65. package/esm2015/lib/directions/shared/directions.utils.js +507 -0
  66. package/esm2015/lib/directions/shared/index.js +3 -1
  67. package/esm2015/lib/directions/shared/store.js +24 -0
  68. package/esm2015/lib/download/download-button/download-button.component.js +1 -1
  69. package/esm2015/lib/download/download-button/index.js +1 -1
  70. package/esm2015/lib/download/download.module.js +1 -1
  71. package/esm2015/lib/download/index.js +1 -1
  72. package/esm2015/lib/download/shared/download.interface.js +1 -1
  73. package/esm2015/lib/download/shared/download.service.js +1 -1
  74. package/esm2015/lib/download/shared/index.js +1 -1
  75. package/esm2015/lib/draw/draw/draw-popup.component.js +6 -5
  76. package/esm2015/lib/draw/draw/draw.component.js +22 -17
  77. package/esm2015/lib/draw/shared/draw.utils.js +1 -1
  78. package/esm2015/lib/feature/feature-details/feature-details.directive.js +1 -1
  79. package/esm2015/lib/feature/feature-details/feature-details.module.js +1 -1
  80. package/esm2015/lib/feature/feature-form/feature-form.component.js +1 -1
  81. package/esm2015/lib/feature/feature-form/feature-form.module.js +1 -1
  82. package/esm2015/lib/feature/feature.module.js +1 -1
  83. package/esm2015/lib/feature/index.js +1 -1
  84. package/esm2015/lib/feature/shared/feature.enums.js +1 -1
  85. package/esm2015/lib/feature/shared/feature.interfaces.js +1 -1
  86. package/esm2015/lib/feature/shared/index.js +1 -1
  87. package/esm2015/lib/feature/shared/strategies/in-map-extent.js +1 -1
  88. package/esm2015/lib/feature/shared/strategies/in-map-resolution.js +1 -1
  89. package/esm2015/lib/feature/shared/strategies/index.js +1 -1
  90. package/esm2015/lib/feature/shared/strategies/loading-layer.js +1 -1
  91. package/esm2015/lib/feature/shared/strategies/loading.js +1 -1
  92. package/esm2015/lib/feature/shared/strategies/selection.js +5 -9
  93. package/esm2015/lib/feature/shared/strategies.utils.js +1 -1
  94. package/esm2015/lib/filter/filter.module.js +7 -4
  95. package/esm2015/lib/filter/ogc-filter-button/index.js +1 -1
  96. package/esm2015/lib/filter/ogc-filter-button/ogc-filter-button.component.js +1 -1
  97. package/esm2015/lib/filter/ogc-filter-form/index.js +1 -1
  98. package/esm2015/lib/filter/ogc-filter-form/ogc-filter-form.component.js +3 -3
  99. package/esm2015/lib/filter/ogc-filter-selection/ogc-filter-selection.component.js +1 -1
  100. package/esm2015/lib/filter/ogc-filter-time/ogc-filter-time.component.js +240 -121
  101. package/esm2015/lib/filter/ogc-filterable-form/index.js +1 -1
  102. package/esm2015/lib/filter/ogc-filterable-item/index.js +1 -1
  103. package/esm2015/lib/filter/ogc-filterable-item/ogc-filterable-item.component.js +2 -2
  104. package/esm2015/lib/filter/ogc-filterable-list/index.js +1 -1
  105. package/esm2015/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.js +1 -1
  106. package/esm2015/lib/filter/ogc-filterable-list/ogc-filterable-list.component.js +1 -1
  107. package/esm2015/lib/filter/shared/filterable-datasource.pipe.js +1 -1
  108. package/esm2015/lib/filter/shared/index.js +1 -1
  109. package/esm2015/lib/filter/shared/ogc-filter.enum.js +1 -1
  110. package/esm2015/lib/filter/shared/ogc-filter.interface.js +1 -1
  111. package/esm2015/lib/filter/shared/ogc-filter.js +1 -1
  112. package/esm2015/lib/filter/shared/ogc-filter.service.js +1 -1
  113. package/esm2015/lib/filter/shared/spatial-filter.enum.js +1 -1
  114. package/esm2015/lib/filter/shared/spatial-filter.interface.js +1 -1
  115. package/esm2015/lib/filter/shared/time-filter.enum.js +1 -1
  116. package/esm2015/lib/filter/shared/time-filter.interface.js +1 -1
  117. package/esm2015/lib/filter/shared/time-filter.service.js +1 -1
  118. package/esm2015/lib/filter/spatial-filter/spatial-filter-item/index.js +1 -1
  119. package/esm2015/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.js +185 -95
  120. package/esm2015/lib/filter/spatial-filter/spatial-filter-list/index.js +1 -1
  121. package/esm2015/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.js +1 -1
  122. package/esm2015/lib/filter/spatial-filter/spatial-filter-type/index.js +1 -1
  123. package/esm2015/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.js +1 -1
  124. package/esm2015/lib/filter/time-filter-button/index.js +1 -1
  125. package/esm2015/lib/filter/time-filter-button/time-filter-button.component.js +1 -1
  126. package/esm2015/lib/filter/time-filter-form/index.js +1 -1
  127. package/esm2015/lib/filter/time-filter-form/time-filter-form.component.js +1 -1
  128. package/esm2015/lib/filter/time-filter-item/index.js +1 -1
  129. package/esm2015/lib/filter/time-filter-item/time-filter-item.component.js +2 -2
  130. package/esm2015/lib/filter/time-filter-list/index.js +1 -1
  131. package/esm2015/lib/filter/time-filter-list/time-filter-list-binding.directive.js +1 -1
  132. package/esm2015/lib/filter/time-filter-list/time-filter-list.component.js +1 -1
  133. package/esm2015/lib/geometry/geometry-form-field/geometry-form-field-input.component.js +3 -3
  134. package/esm2015/lib/geometry/geometry-form-field/geometry-form-field.component.js +1 -1
  135. package/esm2015/lib/geometry/geometry-form-field/geometry-form-field.module.js +1 -1
  136. package/esm2015/lib/geometry/geometry.module.js +1 -1
  137. package/esm2015/lib/geometry/index.js +1 -1
  138. package/esm2015/lib/geometry/shared/controls/draw.js +1 -1
  139. package/esm2015/lib/geometry/shared/controls/index.js +1 -1
  140. package/esm2015/lib/geometry/shared/geometry.errors.js +3 -3
  141. package/esm2015/lib/geometry/shared/index.js +1 -1
  142. package/esm2015/lib/import-export/export-button/export-button.component.js +1 -1
  143. package/esm2015/lib/import-export/export-button/index.js +1 -1
  144. package/esm2015/lib/import-export/import-export/import-export.component.js +179 -66
  145. package/esm2015/lib/import-export/import-export.module.js +1 -1
  146. package/esm2015/lib/import-export/index.js +1 -1
  147. package/esm2015/lib/import-export/shared/drop-geo-file.directive.js +1 -1
  148. package/esm2015/lib/import-export/shared/export.errors.js +1 -1
  149. package/esm2015/lib/import-export/shared/export.interface.js +1 -1
  150. package/esm2015/lib/import-export/shared/export.type.js +1 -1
  151. package/esm2015/lib/import-export/shared/export.utils.js +1 -1
  152. package/esm2015/lib/import-export/shared/import.interface.js +1 -1
  153. package/esm2015/lib/import-export/shared/import.service.js +1 -1
  154. package/esm2015/lib/import-export/shared/import.utils.js +1 -1
  155. package/esm2015/lib/import-export/shared/index.js +1 -1
  156. package/esm2015/lib/import-export/style-list/index.js +1 -1
  157. package/esm2015/lib/import-export/style-list/style-list.interface.js +1 -1
  158. package/esm2015/lib/import-export/style-list/style-list.module.js +1 -1
  159. package/esm2015/lib/import-export/style-list/style-list.provider.js +1 -1
  160. package/esm2015/lib/import-export/style-list/style-list.service.js +1 -1
  161. package/esm2015/lib/layer/index.js +1 -1
  162. package/esm2015/lib/layer/layer-item/index.js +1 -1
  163. package/esm2015/lib/layer/layer-item/layer-item.component.js +3 -3
  164. package/esm2015/lib/layer/layer-legend/index.js +1 -1
  165. package/esm2015/lib/layer/layer-legend/layer-legend.component.js +23 -16
  166. package/esm2015/lib/layer/layer-legend-item/index.js +1 -1
  167. package/esm2015/lib/layer/layer-legend-item/layer-legend-item.component.js +1 -1
  168. package/esm2015/lib/layer/layer-legend-list/index.js +1 -1
  169. package/esm2015/lib/layer/layer-legend-list/layer-legend-list-binding.directive.js +1 -1
  170. package/esm2015/lib/layer/layer-legend-list/layer-legend-list.component.js +5 -5
  171. package/esm2015/lib/layer/layer-list/index.js +1 -1
  172. package/esm2015/lib/layer/layer-list/layer-list-binding.directive.js +1 -1
  173. package/esm2015/lib/layer/layer-list/layer-list.component.js +44 -44
  174. package/esm2015/lib/layer/layer-list/layer-list.enum.js +1 -1
  175. package/esm2015/lib/layer/layer-list-tool/index.js +1 -1
  176. package/esm2015/lib/layer/layer-list-tool/layer-list-tool.component.js +2 -2
  177. package/esm2015/lib/layer/layer-list-tool/layer-list-tool.enum.js +1 -1
  178. package/esm2015/lib/layer/layer-list-tool/layer-list-tool.interface.js +1 -1
  179. package/esm2015/lib/layer/layer-list-tool/layer-list-tool.service.js +1 -1
  180. package/esm2015/lib/layer/layer.module.js +8 -5
  181. package/esm2015/lib/layer/shared/clusterParam.js +1 -1
  182. package/esm2015/lib/layer/shared/index.js +1 -1
  183. package/esm2015/lib/layer/shared/layer.enums.js +1 -1
  184. package/esm2015/lib/layer/shared/layer.service.js +20 -17
  185. package/esm2015/lib/layer/shared/layers/any-layer.interface.js +1 -1
  186. package/esm2015/lib/layer/shared/layers/any-layer.js +1 -1
  187. package/esm2015/lib/layer/shared/layers/image-layer.js +9 -4
  188. package/esm2015/lib/layer/shared/layers/index.js +1 -1
  189. package/esm2015/lib/layer/shared/layers/layer.js +15 -5
  190. package/esm2015/lib/layer/shared/layers/tile-layer.js +23 -3
  191. package/esm2015/lib/layer/shared/layers/vector-layer.interface.js +1 -1
  192. package/esm2015/lib/layer/shared/layers/vector-layer.js +20 -10
  193. package/esm2015/lib/layer/shared/layers/vectortile-layer.interface.js +1 -1
  194. package/esm2015/lib/layer/shared/layers/vectortile-layer.js +13 -3
  195. package/esm2015/lib/layer/shared/style.service.js +21 -16
  196. package/esm2015/lib/layer/shared/vector-style.interface.js +1 -1
  197. package/esm2015/lib/layer/track-feature-button/index.js +1 -1
  198. package/esm2015/lib/layer/track-feature-button/track-feature-button.component.js +1 -1
  199. package/esm2015/lib/layer/utils/index.js +2 -1
  200. package/esm2015/lib/layer/utils/layer.utils.js +11 -0
  201. package/esm2015/lib/layer/utils/layerSync-watcher.js +1 -1
  202. package/esm2015/lib/layer/utils/tile-watcher.js +1 -1
  203. package/esm2015/lib/map/baselayers-switcher/baselayers-switcher.animation.js +1 -1
  204. package/esm2015/lib/map/baselayers-switcher/index.js +1 -1
  205. package/esm2015/lib/map/baselayers-switcher/mini-basemap.component.js +1 -1
  206. package/esm2015/lib/map/geolocate-button/geolocate-button.component.js +1 -1
  207. package/esm2015/lib/map/geolocate-button/index.js +1 -1
  208. package/esm2015/lib/map/index.js +2 -1
  209. package/esm2015/lib/map/map-browser/index.js +1 -1
  210. package/esm2015/lib/map/map-browser/map-browser.component.js +1 -1
  211. package/esm2015/lib/map/map.module.js +10 -5
  212. package/esm2015/lib/map/menu-button/index.js +2 -0
  213. package/esm2015/lib/map/menu-button/menu-button.component.js +66 -0
  214. package/esm2015/lib/map/offline-button/index.js +1 -1
  215. package/esm2015/lib/map/offline-button/offline-button.component.js +1 -1
  216. package/esm2015/lib/map/rotation-button/index.js +1 -1
  217. package/esm2015/lib/map/rotation-button/rotation-button.component.js +1 -1
  218. package/esm2015/lib/map/shared/controllers/index.js +1 -1
  219. package/esm2015/lib/map/shared/hover-feature.directive.js +231 -80
  220. package/esm2015/lib/map/shared/map-pointer-position.directive.js +3 -1
  221. package/esm2015/lib/map/shared/map.enums.js +1 -1
  222. package/esm2015/lib/map/shared/map.interface.js +1 -1
  223. package/esm2015/lib/map/shared/map.js +38 -16
  224. package/esm2015/lib/map/shared/map.service.js +1 -1
  225. package/esm2015/lib/map/shared/map.utils.js +7 -3
  226. package/esm2015/lib/map/shared/projection.service.js +1 -1
  227. package/esm2015/lib/map/shared/projection.utils.js +1 -1
  228. package/esm2015/lib/map/swipe-control/swipe-control.component.js +1 -1
  229. package/esm2015/lib/map/zoom-button/index.js +1 -1
  230. package/esm2015/lib/map/zoom-button/zoom-button.component.js +1 -1
  231. package/esm2015/lib/measure/index.js +1 -1
  232. package/esm2015/lib/measure/measure.module.js +1 -1
  233. package/esm2015/lib/measure/measurer/measure-format.pipe.js +1 -1
  234. package/esm2015/lib/measure/measurer/measurer-dialog.component.js +188 -176
  235. package/esm2015/lib/measure/measurer/measurer-item.component.js +17 -12
  236. package/esm2015/lib/measure/measurer/measurer.component.js +170 -69
  237. package/esm2015/lib/measure/measurer/measurer.module.js +13 -8
  238. package/esm2015/lib/measure/shared/index.js +1 -1
  239. package/esm2015/lib/measure/shared/measure.enum.js +1 -1
  240. package/esm2015/lib/measure/shared/measure.interfaces.js +1 -1
  241. package/esm2015/lib/measure/shared/measure.utils.js +1 -1
  242. package/esm2015/lib/metadata/index.js +1 -1
  243. package/esm2015/lib/metadata/metadata-button/index.js +1 -1
  244. package/esm2015/lib/metadata/shared/index.js +1 -1
  245. package/esm2015/lib/metadata/shared/metadata.service.js +1 -1
  246. package/esm2015/lib/overlay/index.js +1 -1
  247. package/esm2015/lib/overlay/overlay.module.js +1 -1
  248. package/esm2015/lib/overlay/shared/index.js +1 -1
  249. package/esm2015/lib/overlay/shared/overlay-marker-style.utils.js +2 -2
  250. package/esm2015/lib/overlay/shared/overlay.directive.js +1 -1
  251. package/esm2015/lib/overlay/shared/overlay.enum.js +1 -1
  252. package/esm2015/lib/overlay/shared/overlay.service.js +1 -1
  253. package/esm2015/lib/print/index.js +1 -1
  254. package/esm2015/lib/print/print-form/index.js +1 -1
  255. package/esm2015/lib/print/print.module.js +1 -1
  256. package/esm2015/lib/print/shared/index.js +1 -1
  257. package/esm2015/lib/print/shared/print.service.js +1 -1
  258. package/esm2015/lib/query/index.js +1 -1
  259. package/esm2015/lib/query/query.module.js +1 -1
  260. package/esm2015/lib/query/shared/index.js +1 -1
  261. package/esm2015/lib/query/shared/query-search-source.js +1 -1
  262. package/esm2015/lib/query/shared/query-search-source.providers.js +1 -1
  263. package/esm2015/lib/query/shared/query.directive.js +4 -4
  264. package/esm2015/lib/query/shared/query.enums.js +1 -1
  265. package/esm2015/lib/query/shared/query.interfaces.js +1 -1
  266. package/esm2015/lib/query/shared/query.service.js +24 -3
  267. package/esm2015/lib/query/shared/query.utils.js +19 -1
  268. package/esm2015/lib/search/index.js +1 -1
  269. package/esm2015/lib/search/search-bar/search-bar.component.js +2 -2
  270. package/esm2015/lib/search/search-bar/search-bar.module.js +1 -1
  271. package/esm2015/lib/search/search-bar/search-url-param.directive.js +1 -1
  272. package/esm2015/lib/search/search-results/search-results-add-button.component.js +2 -2
  273. package/esm2015/lib/search/search-results/search-results-item.component.js +1 -1
  274. package/esm2015/lib/search/search-results/search-results.component.js +1 -1
  275. package/esm2015/lib/search/search-results/search-results.module.js +1 -1
  276. package/esm2015/lib/search/search-selector/search-selector.component.js +1 -1
  277. package/esm2015/lib/search/search-selector/search-selector.module.js +1 -1
  278. package/esm2015/lib/search/search-settings/search-settings.module.js +1 -1
  279. package/esm2015/lib/search/shared/index.js +1 -1
  280. package/esm2015/lib/search/shared/search-pointer-summary.directive.js +17 -6
  281. package/esm2015/lib/search/shared/search-source-service.providers.js +1 -1
  282. package/esm2015/lib/search/shared/search-source.service.js +1 -1
  283. package/esm2015/lib/search/shared/search.enums.js +1 -1
  284. package/esm2015/lib/search/shared/search.interfaces.js +1 -1
  285. package/esm2015/lib/search/shared/search.utils.js +1 -1
  286. package/esm2015/lib/search/shared/sources/cadastre.js +9 -2
  287. package/esm2015/lib/search/shared/sources/coordinates.interfaces.js +1 -1
  288. package/esm2015/lib/search/shared/sources/coordinates.js +9 -2
  289. package/esm2015/lib/search/shared/sources/icherche.js +17 -4
  290. package/esm2015/lib/search/shared/sources/ilayer.interfaces.js +1 -1
  291. package/esm2015/lib/search/shared/sources/ilayer.js +9 -2
  292. package/esm2015/lib/search/shared/sources/index.js +1 -1
  293. package/esm2015/lib/search/shared/sources/nominatim.interfaces.js +1 -1
  294. package/esm2015/lib/search/shared/sources/nominatim.js +9 -2
  295. package/esm2015/lib/search/shared/sources/storedqueries.interfaces.js +1 -1
  296. package/esm2015/lib/search/shared/sources/storedqueries.js +20 -12
  297. package/esm2015/lib/toast/index.js +1 -1
  298. package/esm2015/lib/toast/toast.component.js +1 -1
  299. package/esm2015/lib/toast/toast.module.js +1 -1
  300. package/esm2015/lib/utils/commonVectorStyle.interface.js +1 -1
  301. package/esm2015/lib/utils/googleLinks.js +1 -1
  302. package/esm2015/lib/utils/osmLinks.js +1 -1
  303. package/esm2015/lib/wkt/index.js +1 -1
  304. package/esm2015/lib/wkt/shared/index.js +1 -1
  305. package/esm2015/lib/wkt/shared/wkt.service.js +15 -15
  306. package/esm2015/lib/wkt/wkt.module.js +1 -1
  307. package/esm2015/lib/workspace/index.js +1 -1
  308. package/esm2015/lib/workspace/shared/feature-workspace.js +1 -1
  309. package/esm2015/lib/workspace/shared/feature-workspace.service.js +1 -1
  310. package/esm2015/lib/workspace/shared/index.js +1 -1
  311. package/esm2015/lib/workspace/shared/wfs-workspace.js +1 -1
  312. package/esm2015/lib/workspace/shared/wfs-workspace.service.js +1 -1
  313. package/esm2015/lib/workspace/shared/wms-workspace.service.js +1 -1
  314. package/esm2015/lib/workspace/widgets/index.js +1 -1
  315. package/esm2015/lib/workspace/widgets/ogc-filter/ogc-filter.component.js +1 -1
  316. package/esm2015/lib/workspace/widgets/ogc-filter/ogc-filter.module.js +1 -1
  317. package/esm2015/lib/workspace/widgets/widgets.js +1 -1
  318. package/esm2015/lib/workspace/workspace-selector/workspace-selector.directive.js +1 -1
  319. package/esm2015/lib/workspace/workspace-selector/workspace-selector.module.js +1 -1
  320. package/esm2015/lib/workspace/workspace-updator/workspace-updator.directive.js +1 -1
  321. package/esm2015/lib/workspace/workspace-updator/workspace-updator.module.js +1 -1
  322. package/esm2015/lib/workspace/workspace.module.js +1 -1
  323. package/fesm2015/igo2-geo.js +3221 -2431
  324. package/fesm2015/igo2-geo.js.map +1 -1
  325. package/lib/catalog/catalog-library/add-catalog-dialog.component.d.ts +1 -1
  326. package/lib/datasource/shared/datasources/datasource.interface.d.ts +1 -0
  327. package/lib/directions/directions-buttons/directions-buttons.component.d.ts +29 -0
  328. package/lib/directions/directions-buttons/index.d.ts +1 -0
  329. package/lib/directions/directions-inputs/directions-inputs.component.d.ts +45 -0
  330. package/lib/directions/directions-inputs/index.d.ts +1 -0
  331. package/lib/directions/directions-results/directions-results.component.d.ts +30 -0
  332. package/lib/directions/directions-results/index.d.ts +1 -0
  333. package/lib/directions/directions-sources/directions-source.d.ts +2 -2
  334. package/lib/directions/directions-sources/osrm-directions-source.d.ts +2 -2
  335. package/lib/directions/directions.component.d.ts +55 -0
  336. package/lib/directions/directions.module.d.ts +19 -16
  337. package/lib/directions/index.d.ts +4 -1
  338. package/lib/directions/shared/directions.enum.d.ts +16 -2
  339. package/lib/directions/shared/directions.interface.d.ts +53 -3
  340. package/lib/directions/shared/directions.service.d.ts +3 -3
  341. package/lib/directions/shared/directions.utils.d.ts +42 -0
  342. package/lib/directions/shared/index.d.ts +2 -0
  343. package/lib/directions/shared/store.d.ts +18 -0
  344. package/lib/draw/draw/draw-popup.component.d.ts +6 -2
  345. package/lib/feature/shared/strategies/selection.d.ts +1 -0
  346. package/lib/filter/filter.module.d.ts +1 -1
  347. package/lib/filter/ogc-filter-time/ogc-filter-time.component.d.ts +6 -1
  348. package/lib/filter/shared/ogc-filter.interface.d.ts +1 -0
  349. package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +7 -2
  350. package/lib/import-export/import-export/import-export.component.d.ts +2 -0
  351. package/lib/import-export/shared/export.interface.d.ts +2 -1
  352. package/lib/layer/layer-legend/layer-legend.component.d.ts +0 -1
  353. package/lib/layer/layer.module.d.ts +1 -1
  354. package/lib/layer/shared/layer.service.d.ts +1 -1
  355. package/lib/layer/shared/layers/layer.d.ts +1 -0
  356. package/lib/layer/shared/layers/tile-layer.d.ts +10 -1
  357. package/lib/layer/shared/layers/vector-layer.interface.d.ts +1 -0
  358. package/lib/layer/shared/layers/vectortile-layer.interface.d.ts +1 -0
  359. package/lib/layer/shared/style.service.d.ts +4 -1
  360. package/lib/layer/shared/vector-style.interface.d.ts +9 -5
  361. package/lib/layer/utils/index.d.ts +1 -0
  362. package/lib/layer/utils/layer.utils.d.ts +2 -0
  363. package/lib/map/index.d.ts +1 -0
  364. package/lib/map/map.module.d.ts +8 -7
  365. package/lib/map/menu-button/index.d.ts +1 -0
  366. package/lib/map/menu-button/menu-button.component.d.ts +17 -0
  367. package/lib/map/shared/hover-feature.directive.d.ts +14 -5
  368. package/lib/map/shared/map.d.ts +2 -1
  369. package/lib/map/shared/map.interface.d.ts +1 -0
  370. package/lib/map/shared/map.utils.d.ts +1 -1
  371. package/lib/measure/measurer/measurer.component.d.ts +10 -0
  372. package/lib/measure/measurer/measurer.module.d.ts +4 -3
  373. package/lib/query/shared/query.interfaces.d.ts +2 -0
  374. package/lib/query/shared/query.service.d.ts +9 -1
  375. package/lib/query/shared/query.utils.d.ts +12 -0
  376. package/lib/search/shared/search-pointer-summary.directive.d.ts +6 -0
  377. package/lib/search/shared/search.interfaces.d.ts +1 -0
  378. package/ngcc.config.js +3 -3
  379. package/package.json +14 -13
  380. package/esm2015/lib/directions/directions-form/directions-form-binding.directive.js +0 -99
  381. package/esm2015/lib/directions/directions-form/directions-form.component.js +0 -1537
  382. package/esm2015/lib/directions/directions-form/directions-form.service.js +0 -26
  383. package/esm2015/lib/directions/directions-form/index.js +0 -4
  384. package/lib/directions/directions-form/directions-form-binding.directive.d.ts +0 -18
  385. package/lib/directions/directions-form/directions-form.component.d.ts +0 -137
  386. package/lib/directions/directions-form/directions-form.service.d.ts +0 -11
  387. package/lib/directions/directions-form/index.d.ts +0 -3
@@ -50,6 +50,7 @@ export declare abstract class Layer {
50
50
  constructor(options: LayerOptions, messageService?: MessageService, authInterceptor?: AuthInterceptor);
51
51
  protected abstract createOlLayer(): olLayer<olSource>;
52
52
  setMap(igoMap: IgoMap | undefined): void;
53
+ private showMessage;
53
54
  private observeResolution;
54
55
  private unobserveResolution;
55
56
  private updateInResolutionsRange;
@@ -10,13 +10,22 @@ import { TileDebugDataSource } from '../../../datasource/shared/datasources/tile
10
10
  import { Layer } from './layer';
11
11
  import { TileLayerOptions } from './tile-layer.interface';
12
12
  import { MessageService } from '@igo2/core';
13
+ import { AuthInterceptor } from '@igo2/auth';
13
14
  export declare class TileLayer extends Layer {
14
15
  messageService?: MessageService;
16
+ authInterceptor?: AuthInterceptor;
15
17
  dataSource: OSMDataSource | WMTSDataSource | XYZDataSource | TileDebugDataSource | CartoDataSource | TileArcGISRestDataSource;
16
18
  options: TileLayerOptions;
17
19
  ol: olLayerTile<olSourceTile>;
18
20
  private watcher;
19
- constructor(options: TileLayerOptions, messageService?: MessageService);
21
+ constructor(options: TileLayerOptions, messageService?: MessageService, authInterceptor?: AuthInterceptor);
20
22
  protected createOlLayer(): olLayerTile<olSourceTile>;
23
+ /**
24
+ * Custom loader for tile layer.
25
+ * @internal
26
+ * @param tile the current tile
27
+ * @param url the url string or function to retrieve the data
28
+ */
29
+ customLoader(tile: any, url: string, interceptor: AuthInterceptor): void;
21
30
  setMap(map: IgoMap | undefined): void;
22
31
  }
@@ -27,6 +27,7 @@ export interface VectorLayerOptions extends LayerOptions {
27
27
  ol?: olLayerVector<olSourceVector<OlGeometry>>;
28
28
  animation?: VectorAnimation;
29
29
  styleByAttribute?: StyleByAttribute;
30
+ hoverStyle?: StyleByAttribute;
30
31
  clusterBaseStyle?: {
31
32
  [key: string]: any;
32
33
  } | olStyle | olStyle[];
@@ -13,5 +13,6 @@ export interface VectorTileLayerOptions extends LayerOptions {
13
13
  ol?: olLayerVectorTile;
14
14
  declutter?: boolean;
15
15
  styleByAttribute?: StyleByAttribute;
16
+ hoverStyle?: StyleByAttribute;
16
17
  mapboxStyle?: MapboxStyle;
17
18
  }
@@ -1,6 +1,9 @@
1
+ import type { default as OlGeometry } from 'ol/geom/Geometry';
1
2
  import * as olstyle from 'ol/style';
3
+ import OlFeature from 'ol/Feature';
2
4
  import { StyleByAttribute } from './vector-style.interface';
3
5
  import { ClusterParam } from './clusterParam';
6
+ import RenderFeature from 'ol/render/Feature';
4
7
  import * as i0 from "@angular/core";
5
8
  export declare class StyleService {
6
9
  style: olstyle.Style;
@@ -10,7 +13,7 @@ export declare class StyleService {
10
13
  private parseStyle;
11
14
  private getOlKey;
12
15
  private getOlCls;
13
- createStyleByAttribute(feature: any, styleByAttribute: StyleByAttribute): any;
16
+ createStyleByAttribute(feature: RenderFeature | OlFeature<OlGeometry>, styleByAttribute: StyleByAttribute): any;
14
17
  createClusterStyle(feature: any, clusterParam: ClusterParam, layerStyle: any): any;
15
18
  getLabel(feature: any, labelMatch: any): string;
16
19
  private guessTypeFeature;
@@ -1,5 +1,5 @@
1
- import olStyle from 'ol/style/Style';
2
1
  export interface StyleByAttribute {
2
+ anchor?: Array<[number, number]>;
3
3
  type?: string;
4
4
  attribute?: string;
5
5
  data?: Array<any>;
@@ -9,14 +9,18 @@ export interface StyleByAttribute {
9
9
  radius?: Array<number>;
10
10
  icon?: Array<string>;
11
11
  scale?: Array<number>;
12
- label?: string | {
13
- [key: string]: any;
14
- } | olStyle | olStyle[];
12
+ label?: IgoLabel;
15
13
  baseStyle?: {
16
14
  [key: string]: any;
17
- } | olStyle | olStyle[];
15
+ };
18
16
  hoverStyle?: StyleByAttribute;
19
17
  }
18
+ export interface IgoLabel {
19
+ attribute: string;
20
+ style?: {
21
+ [key: string]: any;
22
+ };
23
+ }
20
24
  export interface MapboxStyle {
21
25
  url: string;
22
26
  source: string;
@@ -1,4 +1,5 @@
1
1
  export * from './image-watcher';
2
+ export * from './layer.utils';
2
3
  export * from './layerSync-watcher';
3
4
  export * from './tile-watcher';
4
5
  export * from './outputLegend';
@@ -0,0 +1,2 @@
1
+ import { AnyLayerOptions } from "../shared/layers/any-layer.interface";
2
+ export declare function computeMVTOptionsOnHover(layerOptions: AnyLayerOptions): AnyLayerOptions;
@@ -1,6 +1,7 @@
1
1
  export * from './shared';
2
2
  export * from './map-browser';
3
3
  export * from './zoom-button';
4
+ export * from './menu-button';
4
5
  export * from './geolocate-button';
5
6
  export * from './offline-button';
6
7
  export * from './baselayers-switcher';
@@ -11,14 +11,15 @@ import * as i9 from "./shared/map-pointer-position.directive";
11
11
  import * as i10 from "./shared/hover-feature.directive";
12
12
  import * as i11 from "./swipe-control/swipe-control.component";
13
13
  import * as i12 from "./map-center/map-center.component";
14
- import * as i13 from "@angular/common";
15
- import * as i14 from "@igo2/core";
16
- import * as i15 from "@igo2/common";
17
- import * as i16 from "@angular/material/icon";
18
- import * as i17 from "@angular/material/button";
19
- import * as i18 from "@angular/material/tooltip";
14
+ import * as i13 from "./menu-button/menu-button.component";
15
+ import * as i14 from "@angular/common";
16
+ import * as i15 from "@igo2/core";
17
+ import * as i16 from "@igo2/common";
18
+ import * as i17 from "@angular/material/icon";
19
+ import * as i18 from "@angular/material/button";
20
+ import * as i19 from "@angular/material/tooltip";
20
21
  export declare class IgoMapModule {
21
22
  static ɵfac: i0.ɵɵFactoryDeclaration<IgoMapModule, never>;
22
- static ɵmod: i0.ɵɵNgModuleDeclaration<IgoMapModule, [typeof i1.MapBrowserComponent, typeof i2.ZoomButtonComponent, typeof i3.GeolocateButtonComponent, typeof i4.RotationButtonComponent, typeof i5.BaseLayersSwitcherComponent, typeof i6.MiniBaseMapComponent, typeof i7.MapOfflineDirective, typeof i8.OfflineButtonComponent, typeof i9.PointerPositionDirective, typeof i10.HoverFeatureDirective, typeof i11.SwipeControlComponent, typeof i12.MapCenterComponent], [typeof i13.CommonModule, typeof i14.IgoLanguageModule, typeof i15.IgoConfirmDialogModule, typeof i16.MatIconModule, typeof i17.MatButtonModule, typeof i18.MatTooltipModule], [typeof i1.MapBrowserComponent, typeof i2.ZoomButtonComponent, typeof i3.GeolocateButtonComponent, typeof i4.RotationButtonComponent, typeof i5.BaseLayersSwitcherComponent, typeof i6.MiniBaseMapComponent, typeof i7.MapOfflineDirective, typeof i8.OfflineButtonComponent, typeof i9.PointerPositionDirective, typeof i10.HoverFeatureDirective, typeof i11.SwipeControlComponent, typeof i12.MapCenterComponent]>;
23
+ static ɵmod: i0.ɵɵNgModuleDeclaration<IgoMapModule, [typeof i1.MapBrowserComponent, typeof i2.ZoomButtonComponent, typeof i3.GeolocateButtonComponent, typeof i4.RotationButtonComponent, typeof i5.BaseLayersSwitcherComponent, typeof i6.MiniBaseMapComponent, typeof i7.MapOfflineDirective, typeof i8.OfflineButtonComponent, typeof i9.PointerPositionDirective, typeof i10.HoverFeatureDirective, typeof i11.SwipeControlComponent, typeof i12.MapCenterComponent, typeof i13.MenuButtonComponent], [typeof i14.CommonModule, typeof i15.IgoLanguageModule, typeof i16.IgoConfirmDialogModule, typeof i17.MatIconModule, typeof i18.MatButtonModule, typeof i19.MatTooltipModule], [typeof i1.MapBrowserComponent, typeof i2.ZoomButtonComponent, typeof i3.GeolocateButtonComponent, typeof i4.RotationButtonComponent, typeof i5.BaseLayersSwitcherComponent, typeof i6.MiniBaseMapComponent, typeof i7.MapOfflineDirective, typeof i8.OfflineButtonComponent, typeof i9.PointerPositionDirective, typeof i10.HoverFeatureDirective, typeof i11.SwipeControlComponent, typeof i12.MapCenterComponent, typeof i13.MenuButtonComponent]>;
23
24
  static ɵinj: i0.ɵɵInjectorDeclaration<IgoMapModule>;
24
25
  }
@@ -0,0 +1 @@
1
+ export * from './menu-button.component';
@@ -0,0 +1,17 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { ConfigService } from '@igo2/core';
3
+ import * as i0 from "@angular/core";
4
+ export declare class MenuButtonComponent {
5
+ configService: ConfigService;
6
+ get sidenavOpened(): boolean;
7
+ set sidenavOpened(value: boolean);
8
+ private _sidenavOpenend;
9
+ openSidenav: EventEmitter<any>;
10
+ menuButtonReverseColor: boolean;
11
+ menuButtonClass: any;
12
+ constructor(configService: ConfigService);
13
+ getClassMenuButton(): void;
14
+ onToggleSidenavClick(): void;
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<MenuButtonComponent, never>;
16
+ static ɵcmp: i0.ɵɵComponentDeclaration<MenuButtonComponent, "igo-menu-button", never, { "sidenavOpened": "sidenavOpened"; }, { "openSidenav": "openSidenav"; }, never, never>;
17
+ }
@@ -2,12 +2,16 @@ import { OnDestroy, OnInit } from '@angular/core';
2
2
  import { IgoMap } from '../../map/shared/map';
3
3
  import { MapBrowserComponent } from '../../map/map-browser/map-browser.component';
4
4
  import { Feature } from '../../feature/shared/feature.interfaces';
5
- import olFeature from 'ol/Feature';
6
- import * as olstyle from 'ol/style';
7
- import * as olgeom from 'ol/geom';
5
+ import type { default as OlGeometry } from 'ol/geom/Geometry';
6
+ import OlFeature from 'ol/Feature';
7
+ import * as OlStyle from 'ol/style';
8
+ import * as OlGeom from 'ol/geom';
9
+ import { VectorLayer, VectorTileLayer } from '../../layer/shared/layers';
8
10
  import { FeatureStore } from '../../feature/shared/store';
9
11
  import { MediaService } from '@igo2/core';
10
12
  import { StyleService } from '../../layer/shared/style.service';
13
+ import RenderFeature from 'ol/render/Feature';
14
+ import { StyleByAttribute } from '../../layer/shared/vector-style.interface';
11
15
  import * as i0 from "@angular/core";
12
16
  /**
13
17
  * This directive makes the mouse coordinate trigger a reverse search on available search sources.
@@ -24,6 +28,9 @@ export declare class HoverFeatureDirective implements OnInit, OnDestroy {
24
28
  private lastTimeoutRequest;
25
29
  private store$$;
26
30
  private layers$$;
31
+ private selectionLayer;
32
+ private selectionMVT;
33
+ private mvtStyleOptions;
27
34
  /**
28
35
  * Listener to the pointer move event
29
36
  */
@@ -56,6 +63,7 @@ export declare class HoverFeatureDirective implements OnInit, OnDestroy {
56
63
  * @internal
57
64
  */
58
65
  private initStore;
66
+ createHoverStyle(feature: RenderFeature | OlFeature<OlGeometry>, hoverStyle: StyleByAttribute): any;
59
67
  /**
60
68
  * Stop listening to pointermove and reverse search results.
61
69
  * @internal
@@ -104,6 +112,8 @@ export declare class HoverFeatureDirective implements OnInit, OnDestroy {
104
112
  * @param event OL map browser pointer event
105
113
  */
106
114
  private onMapEvent;
115
+ canProcessHover(igoLayer: VectorLayer | VectorTileLayer): boolean;
116
+ handleRenderFeature(feature: RenderFeature | OlFeature<OlGeometry>): OlFeature<OlGeometry>;
107
117
  /**
108
118
  * Add a feature to the pointer store
109
119
  * @param text string
@@ -112,7 +122,6 @@ export declare class HoverFeatureDirective implements OnInit, OnDestroy {
112
122
  private setLayerStyleFromOptions;
113
123
  private getHoverSummary;
114
124
  private getGeometry;
115
- private getSameFeatureNeighbour;
116
125
  /**
117
126
  * Clear the pointer store features
118
127
  */
@@ -125,4 +134,4 @@ export declare class HoverFeatureDirective implements OnInit, OnDestroy {
125
134
  * @param feature OlFeature
126
135
  * @returns OL style function
127
136
  */
128
- export declare function hoverFeatureMarker(feature: olFeature<olgeom.Geometry>, resolution: number): olstyle.Style[];
137
+ export declare function hoverFeatureMarker(feature: OlFeature<OlGeom.Geometry>, resolution: number): OlStyle.Style[];
@@ -19,7 +19,8 @@ export declare class IgoMap {
19
19
  alwaysTracking: boolean;
20
20
  positionFollower: boolean;
21
21
  geolocation$: BehaviorSubject<olGeolocation>;
22
- geolocationFeature: olFeature<OlGeometry>;
22
+ geolocationPositionFeature: olFeature<OlGeometry>;
23
+ geolocationAccuracyFeature: olFeature<OlGeometry>;
23
24
  bufferGeom: olCircle;
24
25
  bufferFeature: olFeature<OlGeometry>;
25
26
  buffer: Overlay;
@@ -6,6 +6,7 @@ export interface MapViewOptions {
6
6
  geolocate?: boolean;
7
7
  buffer?: Buffer;
8
8
  alwaysTracking?: boolean;
9
+ autoRefreshGeolocate?: boolean;
9
10
  constrainRotation?: boolean | number;
10
11
  enableRotation?: boolean;
11
12
  extent?: MapExtent;
@@ -59,7 +59,7 @@ export declare function getScaleFromResolution(resolution: number, unit?: string
59
59
  * @returns Whether the CTRL key is pushed
60
60
  */
61
61
  export declare function ctrlKeyDown(event: MapBrowserPointerEvent<any>): boolean;
62
- export declare function roundCoordTo(coord: [number, number], decimal?: number): string[];
62
+ export declare function roundCoordTo(coord: [number, number], decimal?: number): [number, number];
63
63
  /**
64
64
  * Returns an array of converted coordinates.
65
65
  * Conversion is done for every configured projections
@@ -57,6 +57,11 @@ export declare class MeasurerComponent implements OnInit, OnDestroy {
57
57
  * @internal
58
58
  */
59
59
  displayAreas: boolean;
60
+ /**
61
+ * Observable of line boolean
62
+ * @internal
63
+ */
64
+ hasLine$: BehaviorSubject<boolean>;
60
65
  /**
61
66
  * Observable of area boolean
62
67
  * @internal
@@ -77,6 +82,11 @@ export declare class MeasurerComponent implements OnInit, OnDestroy {
77
82
  * @internal
78
83
  */
79
84
  showTooltips: boolean;
85
+ /**
86
+ * Whether draw control toggle is disabled or not
87
+ * @internal
88
+ */
89
+ drawControlIsDisabled: boolean;
80
90
  /**
81
91
  * Draw line control
82
92
  */
@@ -12,13 +12,14 @@ import * as i10 from "@angular/material/form-field";
12
12
  import * as i11 from "@angular/material/input";
13
13
  import * as i12 from "@angular/material/select";
14
14
  import * as i13 from "@angular/material/slide-toggle";
15
- import * as i14 from "@igo2/core";
16
- import * as i15 from "@igo2/common";
15
+ import * as i14 from "@angular/material/divider";
16
+ import * as i15 from "@igo2/core";
17
+ import * as i16 from "@igo2/common";
17
18
  /**
18
19
  * @ignore
19
20
  */
20
21
  export declare class IgoMeasurerModule {
21
22
  static ɵfac: i0.ɵɵFactoryDeclaration<IgoMeasurerModule, never>;
22
- static ɵmod: i0.ɵɵNgModuleDeclaration<IgoMeasurerModule, [typeof i1.MeasureFormatPipe, typeof i2.MeasurerItemComponent, typeof i3.MeasurerComponent, typeof i4.MeasurerDialogComponent], [typeof i5.CommonModule, typeof i6.MatButtonModule, typeof i7.MatButtonToggleModule, typeof i8.MatIconModule, typeof i9.MatTooltipModule, typeof i10.MatFormFieldModule, typeof i11.MatInputModule, typeof i12.MatSelectModule, typeof i13.MatSlideToggleModule, typeof i14.IgoLanguageModule, typeof i15.IgoEntityTableModule], [typeof i1.MeasureFormatPipe, typeof i3.MeasurerComponent]>;
23
+ static ɵmod: i0.ɵɵNgModuleDeclaration<IgoMeasurerModule, [typeof i1.MeasureFormatPipe, typeof i2.MeasurerItemComponent, typeof i3.MeasurerComponent, typeof i4.MeasurerDialogComponent], [typeof i5.CommonModule, typeof i6.MatButtonModule, typeof i7.MatButtonToggleModule, typeof i8.MatIconModule, typeof i9.MatTooltipModule, typeof i10.MatFormFieldModule, typeof i11.MatInputModule, typeof i12.MatSelectModule, typeof i13.MatSlideToggleModule, typeof i14.MatDividerModule, typeof i15.IgoLanguageModule, typeof i16.IgoEntityTableModule], [typeof i1.MeasureFormatPipe, typeof i3.MeasurerComponent]>;
23
24
  static ɵinj: i0.ɵɵInjectorDeclaration<IgoMeasurerModule>;
24
25
  }
@@ -13,6 +13,8 @@ export interface QueryableDataSourceOptions extends DataSourceOptions {
13
13
  queryable?: boolean;
14
14
  queryFormat?: QueryFormat;
15
15
  queryTitle?: string;
16
+ queryUrl?: string;
17
+ queryLayerFeatures?: boolean;
16
18
  mapLabel?: string;
17
19
  queryHtmlTarget?: QueryHtmlTarget;
18
20
  ol?: olSourceVector<OlGeometry> | olSource;
@@ -4,7 +4,8 @@ import olFeature from 'ol/Feature';
4
4
  import * as olgeom from 'ol/geom';
5
5
  import { Feature } from '../../feature/shared/feature.interfaces';
6
6
  import { Layer } from '../../layer/shared/layers/layer';
7
- import { QueryOptions } from './query.interfaces';
7
+ import { QueryOptions, QueryableDataSource } from './query.interfaces';
8
+ import { MapExtent } from '../../map/shared/map.interface';
8
9
  import * as i0 from "@angular/core";
9
10
  export declare class QueryService {
10
11
  private http;
@@ -35,6 +36,13 @@ export declare class QueryService {
35
36
  getAllowedFieldsAndAlias(layer: any): any;
36
37
  getQueryTitle(feature: Feature, layer: Layer): string;
37
38
  getLabelMatch(feature: Feature, labelMatch: any): string;
39
+ /**
40
+ * @param datasource QueryableDataSource
41
+ * @param options QueryOptions
42
+ * @mapExtent extent of the map when click event
43
+ *
44
+ */
45
+ getCustomQueryUrl(datasource: QueryableDataSource, options: QueryOptions, mapExtent?: MapExtent): string;
38
46
  static ɵfac: i0.ɵɵFactoryDeclaration<QueryService, never>;
39
47
  static ɵprov: i0.ɵɵInjectableDeclaration<QueryService>;
40
48
  }
@@ -13,3 +13,15 @@ export declare function layerIsQueryable(layer: AnyLayer): boolean;
13
13
  * @returns True if the ol layer is queryable
14
14
  */
15
15
  export declare function olLayerIsQueryable(olLayer: OlLayer<OlSource>): boolean;
16
+ /**
17
+ * Whether a layer's feature is queryable
18
+ * @param layer Layer
19
+ * @returns True if the layer's feature is queryable
20
+ */
21
+ export declare function layerFeatureIsQueryable(layer: AnyLayer): boolean;
22
+ /**
23
+ * Whether an OL Vector layer is queryable
24
+ * @param layer Layer
25
+ * @returns True if the ol vector layer is queryable
26
+ */
27
+ export declare function olLayerFeatureIsQueryable(olLayer: OlLayer<OlSource>): boolean;
@@ -105,6 +105,12 @@ export declare class SearchPointerSummaryDirective implements OnInit, OnDestroy,
105
105
  * @param event OL map browser pointer event
106
106
  */
107
107
  private onMapEvent;
108
+ /**
109
+ * Sort the results by display order.
110
+ * @param r1 First result
111
+ * @param r2 Second result
112
+ */
113
+ private sortByOrder;
108
114
  private onSearchCoordinate;
109
115
  private onSearch;
110
116
  /**
@@ -16,6 +16,7 @@ export interface SearchResult<T = {
16
16
  id: string;
17
17
  title: string;
18
18
  titleHtml?: string;
19
+ pointerSummaryTitle?: string;
19
20
  icon: string;
20
21
  score?: number;
21
22
  nextPage?: boolean;
package/ngcc.config.js CHANGED
@@ -1,3 +1,3 @@
1
- module.exports = {
2
- ignorableDeepImportMatchers: [/ol\//, /ol-mapbox-style\//]
3
- };
1
+ module.exports = {
2
+ ignorableDeepImportMatchers: [/ol\//, /ol-mapbox-style\//]
3
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@igo2/geo",
3
- "version": "1.9.0",
3
+ "version": "1.10.0",
4
4
  "description": "IGO Library",
5
5
  "author": "MSP",
6
6
  "keywords": [
@@ -18,21 +18,21 @@
18
18
  "dependencies": {
19
19
  "ts-cacheable": "^1.0.5",
20
20
  "ts-md5": "^1.2.4",
21
- "@turf/helpers": "^6.1.4",
22
- "@turf/line-intersect": "^6.0.2",
23
- "@turf/point-on-feature": "^5.1.5",
21
+ "@turf/helpers": "^6.5.0",
22
+ "@turf/line-intersect": "^6.5.0",
23
+ "@turf/point-on-feature": "^6.5.0",
24
24
  "tslib": "^2.0.0"
25
25
  },
26
26
  "peerDependencies": {
27
- "@angular/animations": "~12.1.3",
28
- "@angular/common": "^12.1.3",
29
- "@angular/core": "^12.1.3",
30
- "@angular/forms": "^12.1.3",
31
- "@angular/material": "~12.1.3",
32
- "@igo2/common": "^1.9.0",
33
- "@igo2/core": "^1.9.0",
34
- "@igo2/utils": "^1.9.0",
35
- "ol": "^6.7.0",
27
+ "@angular/animations": "^12.2.9",
28
+ "@angular/common": "^12.2.9",
29
+ "@angular/core": "^12.2.9",
30
+ "@angular/forms": "^12.2.9",
31
+ "@angular/material": "^12.2.9",
32
+ "@igo2/common": "^1.10.0",
33
+ "@igo2/core": "^1.10.0",
34
+ "@igo2/utils": "^1.10.0",
35
+ "ol": "^6.8.1",
36
36
  "proj4": "^2.7.5",
37
37
  "rxjs": "^6.6.7",
38
38
  "ol-mapbox-style": "^6.4.1",
@@ -54,5 +54,6 @@
54
54
  "typings": "igo2-geo.d.ts",
55
55
  "sideEffects": false,
56
56
  "scripts": {
57
+
57
58
  }
58
59
  }
@@ -1,99 +0,0 @@
1
- import { Directive, Self, Optional } from '@angular/core';
2
- import { delay } from 'rxjs/operators';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "./directions-form.component";
5
- import * as i2 from "./directions-form.service";
6
- import * as i3 from "../shared/directions.service";
7
- import * as i4 from "@igo2/core";
8
- export class DirectionsFormBindingDirective {
9
- constructor(component, directionsFormService, directionsService, changeDetectorRefs, route) {
10
- this.component = component;
11
- this.directionsFormService = directionsFormService;
12
- this.directionsService = directionsService;
13
- this.changeDetectorRefs = changeDetectorRefs;
14
- this.route = route;
15
- }
16
- ngAfterViewInit() {
17
- const storedStops = this.directionsFormService.getStops();
18
- if (!storedStops && this.route && this.route.options.directionsCoordKey) {
19
- this.route.queryParams.subscribe((params) => {
20
- const directionsParams = params[this.route.options.directionsCoordKey];
21
- const stopsCoordinatesFromURL = [];
22
- if (directionsParams) {
23
- const directionsCoordUrl = directionsParams.split(';');
24
- if (directionsCoordUrl.length >= 2) {
25
- let cnt = 0;
26
- directionsCoordUrl.forEach((coord) => {
27
- if (cnt !== 0 && cnt !== directionsCoordUrl.length - 1) {
28
- this.component.stops.insert(cnt, this.component.createStop());
29
- }
30
- const stopCoordinatesFromURL = JSON.parse('[' + coord + ']');
31
- this.component.stops
32
- .at(cnt)
33
- .patchValue({ stopCoordinates: stopCoordinatesFromURL });
34
- this.component.stops
35
- .at(cnt)
36
- .patchValue({ stopPoint: stopCoordinatesFromURL });
37
- this.component.handleLocationProposals(stopCoordinatesFromURL, cnt);
38
- stopsCoordinatesFromURL.push(stopCoordinatesFromURL);
39
- this.component.addStopOverlay(stopCoordinatesFromURL, cnt);
40
- cnt++;
41
- });
42
- this.component.activeRoute$
43
- .pipe(delay(250))
44
- .subscribe((activeRoute) => {
45
- this.getRoutes(activeRoute);
46
- });
47
- }
48
- }
49
- });
50
- }
51
- else if (storedStops) {
52
- for (let i = 0; i < storedStops.length; i++) {
53
- if (i !== 0 && i !== storedStops.length - 1) {
54
- this.component.stops.insert(i, this.component.createStop());
55
- }
56
- if (storedStops[i].stopCoordinates instanceof Array) {
57
- this.component.addStopOverlay(storedStops[i].stopCoordinates, i);
58
- this.component.stops.at(i).patchValue(storedStops[i]);
59
- }
60
- }
61
- this.component.getRoutes();
62
- }
63
- this.component.writeStopsToFormService();
64
- }
65
- getRoutes(activeRoute) {
66
- this.component.deleteStoreFeatureByID(this.component.routeStore, 'vertex');
67
- this.component.writeStopsToFormService();
68
- const coords = this.directionsFormService.getStopsCoordinates();
69
- if (coords.length < 2) {
70
- return;
71
- }
72
- const routeResponse = this.directionsService.route(coords, {});
73
- if (routeResponse) {
74
- routeResponse.map((res) => this.component.routesQueries$$.push(res.subscribe((route) => {
75
- this.component.routesResults = route;
76
- if (!activeRoute) {
77
- this.component.activeRoute = route[0];
78
- this.component.showRouteGeometry(true);
79
- return;
80
- }
81
- this.component.showRouteGeometry(true);
82
- this.changeDetectorRefs.detectChanges();
83
- })));
84
- }
85
- }
86
- }
87
- DirectionsFormBindingDirective.ɵfac = function DirectionsFormBindingDirective_Factory(t) { return new (t || DirectionsFormBindingDirective)(i0.ɵɵdirectiveInject(i1.DirectionsFormComponent, 2), i0.ɵɵdirectiveInject(i2.DirectionsFormService), i0.ɵɵdirectiveInject(i3.DirectionsService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i4.RouteService, 8)); };
88
- DirectionsFormBindingDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: DirectionsFormBindingDirective, selectors: [["", "igoDirectionsFormBinding", ""]] });
89
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DirectionsFormBindingDirective, [{
90
- type: Directive,
91
- args: [{
92
- selector: '[igoDirectionsFormBinding]'
93
- }]
94
- }], function () { return [{ type: i1.DirectionsFormComponent, decorators: [{
95
- type: Self
96
- }] }, { type: i2.DirectionsFormService }, { type: i3.DirectionsService }, { type: i0.ChangeDetectorRef }, { type: i4.RouteService, decorators: [{
97
- type: Optional
98
- }] }]; }, null); })();
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy1mb3JtLWJpbmRpbmcuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGlyZWN0aW9ucy9kaXJlY3Rpb25zLWZvcm0vZGlyZWN0aW9ucy1mb3JtLWJpbmRpbmcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsSUFBSSxFQUVKLFFBQVEsRUFFVCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQVV2QyxNQUFNLE9BQU8sOEJBQThCO0lBQ3pDLFlBQ2tCLFNBQWtDLEVBQzFDLHFCQUE0QyxFQUM1QyxpQkFBb0MsRUFDcEMsa0JBQXFDLEVBQ3pCLEtBQW1CO1FBSnZCLGNBQVMsR0FBVCxTQUFTLENBQXlCO1FBQzFDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFDNUMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQ3pCLFVBQUssR0FBTCxLQUFLLENBQWM7SUFDdEMsQ0FBQztJQUVKLGVBQWU7UUFDYixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDMUQsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFO1lBQ3ZFLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUMxQyxNQUFNLGdCQUFnQixHQUNwQixNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsa0JBQTRCLENBQUMsQ0FBQztnQkFDMUQsTUFBTSx1QkFBdUIsR0FBRyxFQUFFLENBQUM7Z0JBQ25DLElBQUksZ0JBQWdCLEVBQUU7b0JBQ3BCLE1BQU0sa0JBQWtCLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUN2RCxJQUFJLGtCQUFrQixDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7d0JBQ2xDLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQzt3QkFDWixrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTs0QkFDbkMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dDQUN0RCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQzs2QkFDL0Q7NEJBRUQsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxLQUFLLEdBQUcsR0FBRyxDQUFDLENBQUM7NEJBQzdELElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSztpQ0FDakIsRUFBRSxDQUFDLEdBQUcsQ0FBQztpQ0FDUCxVQUFVLENBQUMsRUFBRSxlQUFlLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDOzRCQUMzRCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUs7aUNBQ2pCLEVBQUUsQ0FBQyxHQUFHLENBQUM7aUNBQ1AsVUFBVSxDQUFDLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLENBQUMsQ0FBQzs0QkFDckQsSUFBSSxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FDcEMsc0JBQXNCLEVBQ3RCLEdBQUcsQ0FDSixDQUFDOzRCQUVGLHVCQUF1QixDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDOzRCQUNyRCxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsRUFBRSxHQUFHLENBQUMsQ0FBQzs0QkFDM0QsR0FBRyxFQUFFLENBQUM7d0JBQ1IsQ0FBQyxDQUFDLENBQUM7d0JBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZOzZCQUN4QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDOzZCQUNoQixTQUFTLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTs0QkFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQzt3QkFDOUIsQ0FBQyxDQUFDLENBQUM7cUJBQ047aUJBQ0Y7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO2FBQU0sSUFBSSxXQUFXLEVBQUU7WUFDdEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzNDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7b0JBQzNDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO2lCQUM3RDtnQkFDRCxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLFlBQVksS0FBSyxFQUFFO29CQUNuRCxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUNqRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUN2RDthQUNGO1lBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUM1QjtRQUNELElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRU8sU0FBUyxDQUFDLFdBQVc7UUFDM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDekMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDaEUsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNyQixPQUFPO1NBQ1I7UUFDRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMvRCxJQUFJLGFBQWEsRUFBRTtZQUNqQixhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUNqQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztnQkFDckMsSUFBSSxDQUFDLFdBQVcsRUFBRTtvQkFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBZSxDQUFDO29CQUNwRCxJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO29CQUN2QyxPQUFPO2lCQUNSO2dCQUNELElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMxQyxDQUFDLENBQUMsQ0FDSCxDQUNGLENBQUM7U0FDSDtJQUNILENBQUM7OzRHQXhGVSw4QkFBOEI7aUZBQTlCLDhCQUE4Qjt1RkFBOUIsOEJBQThCO2NBSDFDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsNEJBQTRCO2FBQ3ZDOztzQkFHSSxJQUFJOztzQkFJSixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBTZWxmLFxuICBBZnRlclZpZXdJbml0LFxuICBPcHRpb25hbCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFJvdXRlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xuaW1wb3J0IHsgZGVsYXkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEaXJlY3Rpb25zIH0gZnJvbSAnLi4vc2hhcmVkL2RpcmVjdGlvbnMuaW50ZXJmYWNlJztcbmltcG9ydCB7IERpcmVjdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL2RpcmVjdGlvbnMuc2VydmljZSc7XG5cbmltcG9ydCB7IERpcmVjdGlvbnNGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9kaXJlY3Rpb25zLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IERpcmVjdGlvbnNGb3JtU2VydmljZSB9IGZyb20gJy4vZGlyZWN0aW9ucy1mb3JtLnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbaWdvRGlyZWN0aW9uc0Zvcm1CaW5kaW5nXSdcbn0pXG5leHBvcnQgY2xhc3MgRGlyZWN0aW9uc0Zvcm1CaW5kaW5nRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIEBTZWxmKCkgcHJpdmF0ZSBjb21wb25lbnQ6IERpcmVjdGlvbnNGb3JtQ29tcG9uZW50LFxuICAgIHByaXZhdGUgZGlyZWN0aW9uc0Zvcm1TZXJ2aWNlOiBEaXJlY3Rpb25zRm9ybVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkaXJlY3Rpb25zU2VydmljZTogRGlyZWN0aW9uc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZnM6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcm91dGU6IFJvdXRlU2VydmljZVxuICApIHt9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IHN0b3JlZFN0b3BzID0gdGhpcy5kaXJlY3Rpb25zRm9ybVNlcnZpY2UuZ2V0U3RvcHMoKTtcbiAgICBpZiAoIXN0b3JlZFN0b3BzICYmIHRoaXMucm91dGUgJiYgdGhpcy5yb3V0ZS5vcHRpb25zLmRpcmVjdGlvbnNDb29yZEtleSkge1xuICAgICAgdGhpcy5yb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUoKHBhcmFtcykgPT4ge1xuICAgICAgICBjb25zdCBkaXJlY3Rpb25zUGFyYW1zID1cbiAgICAgICAgICBwYXJhbXNbdGhpcy5yb3V0ZS5vcHRpb25zLmRpcmVjdGlvbnNDb29yZEtleSBhcyBzdHJpbmddO1xuICAgICAgICBjb25zdCBzdG9wc0Nvb3JkaW5hdGVzRnJvbVVSTCA9IFtdO1xuICAgICAgICBpZiAoZGlyZWN0aW9uc1BhcmFtcykge1xuICAgICAgICAgIGNvbnN0IGRpcmVjdGlvbnNDb29yZFVybCA9IGRpcmVjdGlvbnNQYXJhbXMuc3BsaXQoJzsnKTtcbiAgICAgICAgICBpZiAoZGlyZWN0aW9uc0Nvb3JkVXJsLmxlbmd0aCA+PSAyKSB7XG4gICAgICAgICAgICBsZXQgY250ID0gMDtcbiAgICAgICAgICAgIGRpcmVjdGlvbnNDb29yZFVybC5mb3JFYWNoKChjb29yZCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoY250ICE9PSAwICYmIGNudCAhPT0gZGlyZWN0aW9uc0Nvb3JkVXJsLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudC5zdG9wcy5pbnNlcnQoY250LCB0aGlzLmNvbXBvbmVudC5jcmVhdGVTdG9wKCkpO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgY29uc3Qgc3RvcENvb3JkaW5hdGVzRnJvbVVSTCA9IEpTT04ucGFyc2UoJ1snICsgY29vcmQgKyAnXScpO1xuICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudC5zdG9wc1xuICAgICAgICAgICAgICAgIC5hdChjbnQpXG4gICAgICAgICAgICAgICAgLnBhdGNoVmFsdWUoeyBzdG9wQ29vcmRpbmF0ZXM6IHN0b3BDb29yZGluYXRlc0Zyb21VUkwgfSk7XG4gICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50LnN0b3BzXG4gICAgICAgICAgICAgICAgLmF0KGNudClcbiAgICAgICAgICAgICAgICAucGF0Y2hWYWx1ZSh7IHN0b3BQb2ludDogc3RvcENvb3JkaW5hdGVzRnJvbVVSTCB9KTtcbiAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnQuaGFuZGxlTG9jYXRpb25Qcm9wb3NhbHMoXG4gICAgICAgICAgICAgICAgc3RvcENvb3JkaW5hdGVzRnJvbVVSTCxcbiAgICAgICAgICAgICAgICBjbnRcbiAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICBzdG9wc0Nvb3JkaW5hdGVzRnJvbVVSTC5wdXNoKHN0b3BDb29yZGluYXRlc0Zyb21VUkwpO1xuICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudC5hZGRTdG9wT3ZlcmxheShzdG9wQ29vcmRpbmF0ZXNGcm9tVVJMLCBjbnQpO1xuICAgICAgICAgICAgICBjbnQrKztcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnQuYWN0aXZlUm91dGUkXG4gICAgICAgICAgICAgIC5waXBlKGRlbGF5KDI1MCkpXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGFjdGl2ZVJvdXRlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5nZXRSb3V0ZXMoYWN0aXZlUm91dGUpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoc3RvcmVkU3RvcHMpIHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RvcmVkU3RvcHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKGkgIT09IDAgJiYgaSAhPT0gc3RvcmVkU3RvcHMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgIHRoaXMuY29tcG9uZW50LnN0b3BzLmluc2VydChpLCB0aGlzLmNvbXBvbmVudC5jcmVhdGVTdG9wKCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdG9yZWRTdG9wc1tpXS5zdG9wQ29vcmRpbmF0ZXMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgIHRoaXMuY29tcG9uZW50LmFkZFN0b3BPdmVybGF5KHN0b3JlZFN0b3BzW2ldLnN0b3BDb29yZGluYXRlcywgaSk7XG4gICAgICAgICAgdGhpcy5jb21wb25lbnQuc3RvcHMuYXQoaSkucGF0Y2hWYWx1ZShzdG9yZWRTdG9wc1tpXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMuY29tcG9uZW50LmdldFJvdXRlcygpO1xuICAgIH1cbiAgICB0aGlzLmNvbXBvbmVudC53cml0ZVN0b3BzVG9Gb3JtU2VydmljZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRSb3V0ZXMoYWN0aXZlUm91dGUpIHtcbiAgICB0aGlzLmNvbXBvbmVudC5kZWxldGVTdG9yZUZlYXR1cmVCeUlEKHRoaXMuY29tcG9uZW50LnJvdXRlU3RvcmUsICd2ZXJ0ZXgnKTtcbiAgICB0aGlzLmNvbXBvbmVudC53cml0ZVN0b3BzVG9Gb3JtU2VydmljZSgpO1xuICAgIGNvbnN0IGNvb3JkcyA9IHRoaXMuZGlyZWN0aW9uc0Zvcm1TZXJ2aWNlLmdldFN0b3BzQ29vcmRpbmF0ZXMoKTtcbiAgICBpZiAoY29vcmRzLmxlbmd0aCA8IDIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgcm91dGVSZXNwb25zZSA9IHRoaXMuZGlyZWN0aW9uc1NlcnZpY2Uucm91dGUoY29vcmRzLCB7fSk7XG4gICAgaWYgKHJvdXRlUmVzcG9uc2UpIHtcbiAgICAgIHJvdXRlUmVzcG9uc2UubWFwKChyZXMpID0+XG4gICAgICAgIHRoaXMuY29tcG9uZW50LnJvdXRlc1F1ZXJpZXMkJC5wdXNoKFxuICAgICAgICAgIHJlcy5zdWJzY3JpYmUoKHJvdXRlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudC5yb3V0ZXNSZXN1bHRzID0gcm91dGU7XG4gICAgICAgICAgICBpZiAoIWFjdGl2ZVJvdXRlKSB7XG4gICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50LmFjdGl2ZVJvdXRlID0gcm91dGVbMF0gYXMgRGlyZWN0aW9ucztcbiAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnQuc2hvd1JvdXRlR2VvbWV0cnkodHJ1ZSk7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50LnNob3dSb3V0ZUdlb21ldHJ5KHRydWUpO1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZnMuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iXX0=