@igo2/geo 17.0.0-next.6 → 17.0.0-next.7

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 (302) 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/esm2022/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +7 -5
  7. package/esm2022/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +6 -5
  8. package/esm2022/lib/catalog/catalog-browser/catalog-browser.component.mjs +3 -2
  9. package/esm2022/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +4 -4
  10. package/esm2022/lib/catalog/catalog-library/catalog-library-item.component.mjs +5 -5
  11. package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +36 -14
  12. package/esm2022/lib/catalog/catalog-library/catalog-library.module.mjs +5 -1
  13. package/esm2022/lib/catalog/catalog-library/index.mjs +2 -7
  14. package/esm2022/lib/catalog/catalog.module.mjs +13 -6
  15. package/esm2022/lib/catalog/index.mjs +2 -7
  16. package/esm2022/lib/catalog/shared/catalog.interface.mjs +1 -1
  17. package/esm2022/lib/catalog/shared/index.mjs +1 -1
  18. package/esm2022/lib/datasource/index.mjs +1 -1
  19. package/esm2022/lib/datasource/shared/datasources/index.mjs +1 -1
  20. package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +4 -4
  21. package/esm2022/lib/directions/directions-buttons/index.mjs +1 -1
  22. package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +4 -4
  23. package/esm2022/lib/directions/directions-inputs/index.mjs +1 -1
  24. package/esm2022/lib/directions/directions-results/directions-results.component.mjs +4 -4
  25. package/esm2022/lib/directions/directions-results/index.mjs +1 -1
  26. package/esm2022/lib/directions/directions-sources/directions-source.interface.mjs +5 -2
  27. package/esm2022/lib/directions/directions-sources/directions-source.mjs +1 -1
  28. package/esm2022/lib/directions/directions-sources/directions-source.provider.mjs +8 -1
  29. package/esm2022/lib/directions/directions-sources/index.mjs +1 -1
  30. package/esm2022/lib/directions/directions-sources/osrm-directions-source.mjs +67 -36
  31. package/esm2022/lib/directions/directions.component.mjs +72 -18
  32. package/esm2022/lib/directions/directions.module.mjs +4 -10
  33. package/esm2022/lib/directions/directions.provider.mjs +16 -0
  34. package/esm2022/lib/directions/index.mjs +2 -1
  35. package/esm2022/lib/directions/shared/directions-source.service.mjs +1 -1
  36. package/esm2022/lib/directions/shared/directions.enum.mjs +1 -1
  37. package/esm2022/lib/directions/shared/directions.service.mjs +11 -19
  38. package/esm2022/lib/directions/shared/directions.utils.mjs +2 -2
  39. package/esm2022/lib/directions/shared/index.mjs +1 -1
  40. package/esm2022/lib/directions/shared/store.mjs +2 -2
  41. package/esm2022/lib/download/download-button/download-button.component.mjs +4 -4
  42. package/esm2022/lib/download/download-button/index.mjs +1 -1
  43. package/esm2022/lib/download/index.mjs +1 -1
  44. package/esm2022/lib/download/shared/download.interface.mjs +1 -1
  45. package/esm2022/lib/download/shared/index.mjs +1 -1
  46. package/esm2022/lib/draw/draw/draw-layer-popup.component.mjs +4 -4
  47. package/esm2022/lib/draw/draw/draw-popup.component.mjs +4 -4
  48. package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +5 -5
  49. package/esm2022/lib/draw/draw/draw.component.mjs +5 -5
  50. package/esm2022/lib/draw/index.mjs +1 -1
  51. package/esm2022/lib/environment/environment.interface.mjs +1 -1
  52. package/esm2022/lib/feature/feature-details/feature-details.component.mjs +6 -5
  53. package/esm2022/lib/feature/feature-details/feature-details.module.mjs +10 -4
  54. package/esm2022/lib/feature/feature-details/index.mjs +2 -7
  55. package/esm2022/lib/feature/feature-form/feature-form.component.mjs +3 -3
  56. package/esm2022/lib/feature/feature.module.mjs +13 -6
  57. package/esm2022/lib/feature/index.mjs +2 -7
  58. package/esm2022/lib/feature/shared/feature.enums.mjs +1 -1
  59. package/esm2022/lib/feature/shared/feature.interfaces.mjs +1 -1
  60. package/esm2022/lib/feature/shared/feature.utils.mjs +2 -2
  61. package/esm2022/lib/feature/shared/store.mjs +2 -2
  62. package/esm2022/lib/feature/shared/strategies/geo-properties.mjs +2 -2
  63. package/esm2022/lib/feature/shared/strategies/in-map-extent.mjs +2 -2
  64. package/esm2022/lib/feature/shared/strategies/in-map-resolution.mjs +2 -2
  65. package/esm2022/lib/feature/shared/strategies/loading-layer.mjs +2 -2
  66. package/esm2022/lib/feature/shared/strategies/loading.mjs +2 -2
  67. package/esm2022/lib/feature/shared/strategies/search.mjs +2 -2
  68. package/esm2022/lib/feature/shared/strategies/selection.mjs +2 -2
  69. package/esm2022/lib/filter/filter.module.mjs +4 -4
  70. package/esm2022/lib/filter/index.mjs +2 -36
  71. package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +5 -5
  72. package/esm2022/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +4 -4
  73. package/esm2022/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +6 -6
  74. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +18 -20
  75. package/esm2022/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +2 -2
  76. package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +5 -5
  77. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +5 -5
  78. package/esm2022/lib/filter/shared/ogc-filter.interface.mjs +1 -1
  79. package/esm2022/lib/filter/shared/ogc-filter.mjs +46 -3
  80. package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +5 -5
  81. package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +5 -5
  82. package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +5 -5
  83. package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +5 -5
  84. package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +4 -4
  85. package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +5 -5
  86. package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +2 -2
  87. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +5 -5
  88. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +5 -1
  89. package/esm2022/lib/geometry/geometry-form-field/index.mjs +3 -8
  90. package/esm2022/lib/geometry/shared/controls/index.mjs +1 -1
  91. package/esm2022/lib/geometry/shared/geometry.interfaces.mjs +1 -1
  92. package/esm2022/lib/geometry/shared/index.mjs +1 -1
  93. package/esm2022/lib/import-export/export-button/export-button.component.mjs +4 -4
  94. package/esm2022/lib/import-export/export-button/index.mjs +1 -1
  95. package/esm2022/lib/import-export/import-export/import-export.component.mjs +8 -6
  96. package/esm2022/lib/import-export/import-export/index.mjs +1 -1
  97. package/esm2022/lib/import-export/import-export.module.mjs +6 -1
  98. package/esm2022/lib/import-export/index.mjs +2 -9
  99. package/esm2022/lib/import-export/shared/drop-geo-file.directive.mjs +4 -3
  100. package/esm2022/lib/import-export/shared/export.errors.mjs +1 -1
  101. package/esm2022/lib/import-export/shared/export.service.mjs +8 -2
  102. package/esm2022/lib/import-export/shared/export.utils.mjs +2 -2
  103. package/esm2022/lib/import-export/shared/import.utils.mjs +1 -1
  104. package/esm2022/lib/import-export/shared/index.mjs +1 -1
  105. package/esm2022/lib/layer/index.mjs +2 -19
  106. package/esm2022/lib/layer/layer-item/layer-item.component.mjs +4 -4
  107. package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +7 -5
  108. package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +5 -5
  109. package/esm2022/lib/layer/layer-list/layer-list.component.mjs +26 -20
  110. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +5 -5
  111. package/esm2022/lib/layer/layer.module.mjs +12 -1
  112. package/esm2022/lib/layer/shared/layers/index.mjs +1 -1
  113. package/esm2022/lib/layer/track-feature-button/track-feature-button.component.mjs +4 -4
  114. package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +4 -4
  115. package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +4 -4
  116. package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +4 -4
  117. package/esm2022/lib/map/index.mjs +1 -32
  118. package/esm2022/lib/map/map.module.mjs +34 -34
  119. package/esm2022/lib/map/menu-button/menu-button.component.mjs +4 -4
  120. package/esm2022/lib/map/offline-button/offline-button.component.mjs +4 -4
  121. package/esm2022/lib/map/rotation-button/rotation-button.component.mjs +4 -4
  122. package/esm2022/lib/map/shared/hover-feature.directive.mjs +2 -2
  123. package/esm2022/lib/map/wake-lock-button/wake-lock-button.component.mjs +4 -4
  124. package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +4 -4
  125. package/esm2022/lib/measure/measurer/measurer-dialog.component.mjs +4 -4
  126. package/esm2022/lib/measure/measurer/measurer-item.component.mjs +4 -4
  127. package/esm2022/lib/measure/measurer/measurer.component.mjs +5 -5
  128. package/esm2022/lib/measure/shared/index.mjs +1 -1
  129. package/esm2022/lib/metadata/index.mjs +2 -6
  130. package/esm2022/lib/metadata/metadata-button/index.mjs +1 -1
  131. package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +6 -6
  132. package/esm2022/lib/metadata/metadata.module.mjs +5 -1
  133. package/esm2022/lib/metadata/shared/index.mjs +1 -1
  134. package/esm2022/lib/metadata/shared/metadata.service.mjs +1 -1
  135. package/esm2022/lib/offline/geoDB/index.mjs +1 -1
  136. package/esm2022/lib/offline/shared/index.mjs +1 -1
  137. package/esm2022/lib/overlay/index.mjs +1 -1
  138. package/esm2022/lib/print/index.mjs +1 -1
  139. package/esm2022/lib/print/print-form/index.mjs +1 -1
  140. package/esm2022/lib/print/print-form/print-form.component.mjs +4 -4
  141. package/esm2022/lib/print/shared/index.mjs +1 -1
  142. package/esm2022/lib/print/shared/print.service.mjs +85 -76
  143. package/esm2022/lib/query/index.mjs +1 -1
  144. package/esm2022/lib/query/shared/index.mjs +2 -1
  145. package/esm2022/lib/query/shared/query.enums.mjs +1 -1
  146. package/esm2022/lib/search/index.mjs +2 -13
  147. package/esm2022/lib/search/search-bar/search-bar.component.mjs +9 -6
  148. package/esm2022/lib/search/search-results/index.mjs +2 -7
  149. package/esm2022/lib/search/search-results/save-feature-dialog.component.mjs +5 -5
  150. package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +7 -5
  151. package/esm2022/lib/search/search-results/search-results-item.component.mjs +3 -2
  152. package/esm2022/lib/search/search-results/search-results.component.mjs +7 -5
  153. package/esm2022/lib/search/search-results/search-results.directive.mjs +7 -0
  154. package/esm2022/lib/search/search-selector/search-selector.component.mjs +4 -4
  155. package/esm2022/lib/search/search-settings/search-settings.component.mjs +4 -4
  156. package/esm2022/lib/search/search.module.mjs +15 -1
  157. package/esm2022/lib/search/shared/index.mjs +2 -1
  158. package/esm2022/lib/search/shared/search-pointer-summary.directive.mjs +2 -2
  159. package/esm2022/lib/search/shared/search-source.service.mjs +1 -1
  160. package/esm2022/lib/search/shared/search.interfaces.mjs +1 -1
  161. package/esm2022/lib/search/shared/search.provider.mjs +20 -0
  162. package/esm2022/lib/search/shared/search.service.mjs +29 -10
  163. package/esm2022/lib/search/shared/sources/cadastre.providers.mjs +8 -1
  164. package/esm2022/lib/search/shared/sources/coordinates.providers.mjs +11 -1
  165. package/esm2022/lib/search/shared/sources/icherche-icons.mjs +2 -2
  166. package/esm2022/lib/search/shared/sources/icherche.mjs +2 -2
  167. package/esm2022/lib/search/shared/sources/icherche.providers.mjs +20 -1
  168. package/esm2022/lib/search/shared/sources/ilayer.providers.mjs +11 -1
  169. package/esm2022/lib/search/shared/sources/nominatim.interfaces.mjs +1 -1
  170. package/esm2022/lib/search/shared/sources/nominatim.providers.mjs +8 -1
  171. package/esm2022/lib/search/shared/sources/source.interfaces.mjs +13 -2
  172. package/esm2022/lib/search/shared/sources/source.mjs +1 -1
  173. package/esm2022/lib/search/shared/sources/storedqueries.providers.mjs +14 -1
  174. package/esm2022/lib/search/shared/sources/workspace.providers.mjs +8 -1
  175. package/esm2022/lib/style/shared/feature/feature-style.mjs +3 -2
  176. package/esm2022/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +5 -5
  177. package/esm2022/lib/style/style-modal/layer/style-modal-layer.component.mjs +5 -5
  178. package/esm2022/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +4 -4
  179. package/esm2022/lib/toast/index.mjs +1 -1
  180. package/esm2022/lib/toast/toast.component.mjs +4 -2
  181. package/esm2022/lib/wkt/index.mjs +1 -1
  182. package/esm2022/lib/wkt/shared/index.mjs +1 -1
  183. package/esm2022/lib/workspace/index.mjs +1 -1
  184. package/esm2022/lib/workspace/shared/edition-workspace.mjs +2 -2
  185. package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +3 -2
  186. package/esm2022/lib/workspace/shared/feature-workspace.mjs +2 -2
  187. package/esm2022/lib/workspace/shared/feature-workspace.service.mjs +3 -2
  188. package/esm2022/lib/workspace/shared/index.mjs +1 -1
  189. package/esm2022/lib/workspace/shared/wfs-workspace.mjs +2 -2
  190. package/esm2022/lib/workspace/shared/wfs-workspace.service.mjs +3 -2
  191. package/esm2022/lib/workspace/shared/wms-workspace.service.mjs +3 -2
  192. package/esm2022/lib/workspace/shared/workspace.utils.mjs +2 -2
  193. package/esm2022/lib/workspace/widgets/index.mjs +1 -1
  194. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +1 -1
  195. package/esm2022/lib/workspace/widgets/widgets.mjs +2 -2
  196. package/esm2022/lib/workspace/workspace-selector/workspace-selector.directive.mjs +3 -3
  197. package/esm2022/lib/workspace/workspace-updator/workspace-updator.directive.mjs +1 -1
  198. package/esm2022/lib/workspace/workspace.module.mjs +2 -2
  199. package/fesm2022/igo2-geo.mjs +30361 -30092
  200. package/fesm2022/igo2-geo.mjs.map +1 -1
  201. package/lib/catalog/catalog-browser/catalog-browser-group.component.d.ts +2 -2
  202. package/lib/catalog/catalog-browser/catalog-browser.component.d.ts +1 -1
  203. package/lib/catalog/catalog-library/add-catalog-dialog.component.d.ts +1 -1
  204. package/lib/catalog/catalog-library/catalog-library.component.d.ts +7 -2
  205. package/lib/catalog/catalog-library/catalog-library.module.d.ts +3 -0
  206. package/lib/catalog/catalog-library/index.d.ts +1 -3
  207. package/lib/catalog/catalog.module.d.ts +6 -3
  208. package/lib/catalog/index.d.ts +1 -2
  209. package/lib/catalog/shared/catalog.interface.d.ts +1 -1
  210. package/lib/directions/directions-sources/directions-source.d.ts +7 -3
  211. package/lib/directions/directions-sources/directions-source.interface.d.ts +19 -6
  212. package/lib/directions/directions-sources/directions-source.provider.d.ts +2 -0
  213. package/lib/directions/directions-sources/osrm-directions-source.d.ts +19 -10
  214. package/lib/directions/directions.component.d.ts +15 -3
  215. package/lib/directions/directions.module.d.ts +5 -6
  216. package/lib/directions/directions.provider.d.ts +3 -0
  217. package/lib/directions/index.d.ts +1 -0
  218. package/lib/directions/shared/directions.service.d.ts +3 -2
  219. package/lib/directions/shared/directions.utils.d.ts +1 -1
  220. package/lib/directions/shared/store.d.ts +1 -1
  221. package/lib/draw/draw/draw-shorcuts.component.d.ts +1 -1
  222. package/lib/draw/draw/draw.component.d.ts +1 -1
  223. package/lib/environment/environment.interface.d.ts +2 -1
  224. package/lib/feature/feature-details/feature-details.component.d.ts +1 -1
  225. package/lib/feature/feature-details/feature-details.module.d.ts +3 -0
  226. package/lib/feature/feature-details/index.d.ts +1 -3
  227. package/lib/feature/feature-form/feature-form.component.d.ts +1 -2
  228. package/lib/feature/feature.module.d.ts +6 -3
  229. package/lib/feature/index.d.ts +1 -2
  230. package/lib/feature/shared/feature.interfaces.d.ts +1 -1
  231. package/lib/feature/shared/feature.utils.d.ts +1 -1
  232. package/lib/feature/shared/store.d.ts +1 -1
  233. package/lib/feature/shared/strategies/geo-properties.d.ts +1 -1
  234. package/lib/feature/shared/strategies/in-map-extent.d.ts +1 -1
  235. package/lib/feature/shared/strategies/in-map-resolution.d.ts +1 -1
  236. package/lib/feature/shared/strategies/loading-layer.d.ts +1 -1
  237. package/lib/feature/shared/strategies/loading.d.ts +1 -1
  238. package/lib/feature/shared/strategies/search.d.ts +1 -1
  239. package/lib/feature/shared/strategies/selection.d.ts +1 -1
  240. package/lib/filter/filter.module.d.ts +19 -0
  241. package/lib/filter/index.d.ts +1 -16
  242. package/lib/filter/ogc-filter-selection/ogc-filter-selection.component.d.ts +1 -1
  243. package/lib/filter/ogc-filter-time/ogc-filter-time.component.d.ts +3 -3
  244. package/lib/filter/shared/ogc-filter.d.ts +7 -0
  245. package/lib/filter/shared/ogc-filter.interface.d.ts +1 -1
  246. package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +1 -1
  247. package/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.d.ts +1 -1
  248. package/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.d.ts +1 -1
  249. package/lib/geometry/geometry-form-field/geometry-form-field.module.d.ts +3 -0
  250. package/lib/geometry/geometry-form-field/index.d.ts +2 -4
  251. package/lib/geometry/shared/geometry.interfaces.d.ts +1 -1
  252. package/lib/import-export/import-export/import-export.component.d.ts +2 -2
  253. package/lib/import-export/import-export.module.d.ts +4 -0
  254. package/lib/import-export/index.d.ts +1 -4
  255. package/lib/import-export/shared/drop-geo-file.directive.d.ts +2 -1
  256. package/lib/import-export/shared/export.utils.d.ts +1 -1
  257. package/lib/import-export/shared/import.utils.d.ts +1 -1
  258. package/lib/layer/index.d.ts +1 -8
  259. package/lib/layer/layer-list/layer-list.component.d.ts +4 -3
  260. package/lib/layer/layer.module.d.ts +10 -0
  261. package/lib/map/index.d.ts +0 -14
  262. package/lib/map/map.module.d.ts +32 -15
  263. package/lib/measure/measurer/measurer.component.d.ts +1 -1
  264. package/lib/metadata/index.d.ts +1 -2
  265. package/lib/metadata/metadata.module.d.ts +2 -0
  266. package/lib/print/shared/print.service.d.ts +11 -7
  267. package/lib/query/shared/index.d.ts +1 -0
  268. package/lib/search/index.d.ts +1 -5
  269. package/lib/search/search-bar/search-bar.component.d.ts +2 -1
  270. package/lib/search/search-results/index.d.ts +1 -3
  271. package/lib/search/search-results/search-results-add-button.component.d.ts +1 -1
  272. package/lib/search/search-results/search-results.component.d.ts +1 -1
  273. package/lib/search/search-results/search-results.directive.d.ts +3 -0
  274. package/lib/search/search.module.d.ts +8 -0
  275. package/lib/search/shared/index.d.ts +1 -0
  276. package/lib/search/shared/search-source.service.d.ts +1 -1
  277. package/lib/search/shared/search.interfaces.d.ts +1 -1
  278. package/lib/search/shared/search.provider.d.ts +8 -0
  279. package/lib/search/shared/search.service.d.ts +7 -2
  280. package/lib/search/shared/sources/cadastre.providers.d.ts +2 -0
  281. package/lib/search/shared/sources/coordinates.providers.d.ts +2 -0
  282. package/lib/search/shared/sources/icherche-icons.d.ts +1 -1
  283. package/lib/search/shared/sources/icherche.providers.d.ts +6 -12
  284. package/lib/search/shared/sources/ilayer.providers.d.ts +2 -0
  285. package/lib/search/shared/sources/nominatim.providers.d.ts +2 -0
  286. package/lib/search/shared/sources/source.d.ts +1 -1
  287. package/lib/search/shared/sources/source.interfaces.d.ts +16 -0
  288. package/lib/search/shared/sources/storedqueries.providers.d.ts +3 -0
  289. package/lib/search/shared/sources/workspace.providers.d.ts +2 -0
  290. package/lib/toast/toast.component.d.ts +1 -1
  291. package/lib/workspace/shared/edition-workspace.d.ts +1 -1
  292. package/lib/workspace/shared/feature-workspace.d.ts +1 -1
  293. package/lib/workspace/shared/wfs-workspace.d.ts +1 -1
  294. package/lib/workspace/shared/workspace.utils.d.ts +2 -1
  295. package/lib/workspace/widgets/ogc-filter/ogc-filter.component.d.ts +2 -1
  296. package/lib/workspace/widgets/widgets.d.ts +1 -1
  297. package/lib/workspace/workspace-selector/workspace-selector.directive.d.ts +1 -1
  298. package/lib/workspace/workspace-updator/workspace-updator.directive.d.ts +1 -1
  299. package/lib/workspace/workspace.module.d.ts +1 -1
  300. package/locale/en.geo.json +6 -1
  301. package/locale/fr.geo.json +6 -1
  302. package/package.json +5 -5
@@ -1,6 +1,7 @@
1
1
  import { HttpClient } from '@angular/common/http';
2
2
  import { ConfigService } from '@igo2/core/config';
3
3
  import { DirectionsSource } from './directions-source';
4
+ import { DirectionSourceKind } from './directions-source.interface';
4
5
  import { OsrmDirectionsSource } from './osrm-directions-source';
5
6
  export function osrmDirectionsSourcesFactory(http, config) {
6
7
  return new OsrmDirectionsSource(http, config);
@@ -13,4 +14,10 @@ export function provideOsrmDirectionsSource() {
13
14
  deps: [HttpClient, ConfigService]
14
15
  };
15
16
  }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy1zb3VyY2UucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL2RpcmVjdGlvbnMtc291cmNlcy9kaXJlY3Rpb25zLXNvdXJjZS5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWxELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWhFLE1BQU0sVUFBVSw0QkFBNEIsQ0FDMUMsSUFBZ0IsRUFDaEIsTUFBcUI7SUFFckIsT0FBTyxJQUFJLG9CQUFvQixDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNoRCxDQUFDO0FBRUQsTUFBTSxVQUFVLDJCQUEyQjtJQUN6QyxPQUFPO1FBQ0wsT0FBTyxFQUFFLGdCQUFnQjtRQUN6QixVQUFVLEVBQUUsNEJBQTRCO1FBQ3hDLEtBQUssRUFBRSxJQUFJO1FBQ1gsSUFBSSxFQUFFLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQztLQUNsQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlL2NvbmZpZyc7XG5cbmltcG9ydCB7IERpcmVjdGlvbnNTb3VyY2UgfSBmcm9tICcuL2RpcmVjdGlvbnMtc291cmNlJztcbmltcG9ydCB7IE9zcm1EaXJlY3Rpb25zU291cmNlIH0gZnJvbSAnLi9vc3JtLWRpcmVjdGlvbnMtc291cmNlJztcblxuZXhwb3J0IGZ1bmN0aW9uIG9zcm1EaXJlY3Rpb25zU291cmNlc0ZhY3RvcnkoXG4gIGh0dHA6IEh0dHBDbGllbnQsXG4gIGNvbmZpZzogQ29uZmlnU2VydmljZVxuKSB7XG4gIHJldHVybiBuZXcgT3NybURpcmVjdGlvbnNTb3VyY2UoaHR0cCwgY29uZmlnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVPc3JtRGlyZWN0aW9uc1NvdXJjZSgpIHtcbiAgcmV0dXJuIHtcbiAgICBwcm92aWRlOiBEaXJlY3Rpb25zU291cmNlLFxuICAgIHVzZUZhY3Rvcnk6IG9zcm1EaXJlY3Rpb25zU291cmNlc0ZhY3RvcnksXG4gICAgbXVsdGk6IHRydWUsXG4gICAgZGVwczogW0h0dHBDbGllbnQsIENvbmZpZ1NlcnZpY2VdXG4gIH07XG59XG4iXX0=
17
+ export function withOsrmSource() {
18
+ return {
19
+ kind: DirectionSourceKind.OSRM,
20
+ providers: [provideOsrmDirectionsSource()]
21
+ };
22
+ }
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy1zb3VyY2UucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL2RpcmVjdGlvbnMtc291cmNlcy9kaXJlY3Rpb25zLXNvdXJjZS5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWxELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFFTCxtQkFBbUIsRUFDcEIsTUFBTSwrQkFBK0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVoRSxNQUFNLFVBQVUsNEJBQTRCLENBQzFDLElBQWdCLEVBQ2hCLE1BQXFCO0lBRXJCLE9BQU8sSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQUVELE1BQU0sVUFBVSwyQkFBMkI7SUFDekMsT0FBTztRQUNMLE9BQU8sRUFBRSxnQkFBZ0I7UUFDekIsVUFBVSxFQUFFLDRCQUE0QjtRQUN4QyxLQUFLLEVBQUUsSUFBSTtRQUNYLElBQUksRUFBRSxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUM7S0FDbEMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYztJQUM1QixPQUFPO1FBQ0wsSUFBSSxFQUFFLG1CQUFtQixDQUFDLElBQUk7UUFDOUIsU0FBUyxFQUFFLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztLQUMzQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlL2NvbmZpZyc7XG5cbmltcG9ydCB7IERpcmVjdGlvbnNTb3VyY2UgfSBmcm9tICcuL2RpcmVjdGlvbnMtc291cmNlJztcbmltcG9ydCB7XG4gIERpcmVjdGlvblNvdXJjZUZlYXR1cmUsXG4gIERpcmVjdGlvblNvdXJjZUtpbmRcbn0gZnJvbSAnLi9kaXJlY3Rpb25zLXNvdXJjZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgT3NybURpcmVjdGlvbnNTb3VyY2UgfSBmcm9tICcuL29zcm0tZGlyZWN0aW9ucy1zb3VyY2UnO1xuXG5leHBvcnQgZnVuY3Rpb24gb3NybURpcmVjdGlvbnNTb3VyY2VzRmFjdG9yeShcbiAgaHR0cDogSHR0cENsaWVudCxcbiAgY29uZmlnOiBDb25maWdTZXJ2aWNlXG4pIHtcbiAgcmV0dXJuIG5ldyBPc3JtRGlyZWN0aW9uc1NvdXJjZShodHRwLCBjb25maWcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZU9zcm1EaXJlY3Rpb25zU291cmNlKCkge1xuICByZXR1cm4ge1xuICAgIHByb3ZpZGU6IERpcmVjdGlvbnNTb3VyY2UsXG4gICAgdXNlRmFjdG9yeTogb3NybURpcmVjdGlvbnNTb3VyY2VzRmFjdG9yeSxcbiAgICBtdWx0aTogdHJ1ZSxcbiAgICBkZXBzOiBbSHR0cENsaWVudCwgQ29uZmlnU2VydmljZV1cbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhPc3JtU291cmNlKCk6IERpcmVjdGlvblNvdXJjZUZlYXR1cmU8RGlyZWN0aW9uU291cmNlS2luZC5PU1JNPiB7XG4gIHJldHVybiB7XG4gICAga2luZDogRGlyZWN0aW9uU291cmNlS2luZC5PU1JNLFxuICAgIHByb3ZpZGVyczogW3Byb3ZpZGVPc3JtRGlyZWN0aW9uc1NvdXJjZSgpXVxuICB9O1xufVxuIl19
@@ -2,4 +2,4 @@ export * from './directions-source';
2
2
  export * from './directions-source.interface';
3
3
  export * from './osrm-directions-source';
4
4
  export * from './directions-source.provider';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL2RpcmVjdGlvbnMtc291cmNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDhCQUE4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kaXJlY3Rpb25zLXNvdXJjZSc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGlvbnMtc291cmNlLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL29zcm0tZGlyZWN0aW9ucy1zb3VyY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3Rpb25zLXNvdXJjZS5wcm92aWRlcic7XG4iXX0=
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL2RpcmVjdGlvbnMtc291cmNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDhCQUE4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kaXJlY3Rpb25zLXNvdXJjZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aW9ucy1zb3VyY2UuaW50ZXJmYWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9vc3JtLWRpcmVjdGlvbnMtc291cmNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3Rpb25zLXNvdXJjZS5wcm92aWRlcic7XHJcbiJdfQ==
@@ -1,45 +1,85 @@
1
- import { __decorate, __metadata } from "tslib";
2
1
  import { HttpClient, HttpParams } from '@angular/common/http';
3
2
  import { Injectable } from '@angular/core';
4
3
  import { ConfigService } from '@igo2/core/config';
5
- import { customCacheHasher, uuid } from '@igo2/utils';
6
- import { Observable } from 'rxjs';
4
+ import { uuid } from '@igo2/utils';
7
5
  import { map } from 'rxjs/operators';
8
- import { Cacheable } from 'ts-cacheable';
9
6
  import { DirectionsFormat, SourceDirectionsType } from '../shared/directions.enum';
10
7
  import { DirectionsSource } from './directions-source';
11
8
  import * as i0 from "@angular/core";
12
9
  import * as i1 from "@angular/common/http";
13
10
  import * as i2 from "@igo2/core/config";
14
11
  export class OsrmDirectionsSource extends DirectionsSource {
15
- http;
16
- config;
17
- get enabled() {
18
- return this.options.enabled !== false;
19
- }
20
- set enabled(value) {
21
- this.options.enabled = value;
22
- }
23
- static _name = 'OSRM Québec';
24
- directionsUrl = 'https://geoegl.msp.gouv.qc.ca/services/itineraire/route/v1/driving/';
25
- options;
26
- constructor(http, config) {
12
+ _http;
13
+ _config;
14
+ get options() {
15
+ return this._options;
16
+ }
17
+ set options(value) {
18
+ this._options = value;
19
+ }
20
+ get sourceName() {
21
+ return this._options.name;
22
+ }
23
+ set sourceName(value) {
24
+ this._options.name = value;
25
+ }
26
+ get baseUrl() {
27
+ return this._options.baseUrl;
28
+ }
29
+ set baseUrl(value) {
30
+ this._options.baseUrl = value;
31
+ }
32
+ get url() {
33
+ return `${this.baseUrl}${this.getEnabledProfile().name}/`;
34
+ }
35
+ get profiles() {
36
+ return this._options.profiles;
37
+ }
38
+ set profiles(value) {
39
+ this._options.profiles = value;
40
+ }
41
+ _options;
42
+ constructor(_http, _config) {
27
43
  super();
28
- this.http = http;
29
- this.config = config;
30
- this.options = this.config.getConfig('directionsSources.osrm') || {};
31
- this.directionsUrl = this.options.url || this.directionsUrl;
44
+ this._http = _http;
45
+ this._config = _config;
46
+ this._options = this._config.getConfig('directionsSources.osrm');
47
+ if (!this.baseUrl) {
48
+ this.baseUrl = '/apis/itineraire/route/v1/';
49
+ }
50
+ if (!this.sourceName) {
51
+ this.sourceName = 'OSRM Québec';
52
+ }
53
+ if (!this.profiles) {
54
+ const profile = {
55
+ enabled: true,
56
+ name: 'driving'
57
+ };
58
+ this.profiles = [profile];
59
+ }
60
+ else {
61
+ if (!this.profiles.find((profile) => profile.enabled)) {
62
+ this.profiles[0].enabled = true;
63
+ }
64
+ }
65
+ }
66
+ getSourceName() {
67
+ return this.sourceName;
68
+ }
69
+ getEnabledProfile() {
70
+ return this.profiles.find((profile) => profile.enabled);
32
71
  }
33
- getName() {
34
- return OsrmDirectionsSource._name;
72
+ getProfileWithAuthorization() {
73
+ return this.profiles.find((profile) => profile.authorization);
35
74
  }
36
75
  route(coordinates, directionsOptions = {}) {
37
76
  const directionsParams = this.getRouteParams(directionsOptions);
38
77
  return this.getRoute(coordinates, directionsParams);
39
78
  }
40
79
  getRoute(coordinates, params) {
41
- return this.http
42
- .get(this.directionsUrl + coordinates.join(';'), {
80
+ const url = this.url;
81
+ return this._http
82
+ .get(url + coordinates.join(';'), {
43
83
  params
44
84
  })
45
85
  .pipe(map((res) => this.extractRoutesData(res)));
@@ -94,7 +134,7 @@ export class OsrmDirectionsSource extends DirectionsSource {
94
134
  return {
95
135
  id: uuid(),
96
136
  title: roadNetworkRoute.legs[0].summary,
97
- source: OsrmDirectionsSource._name,
137
+ source: this.url,
98
138
  sourceType: SourceDirectionsType.Route,
99
139
  order: 1,
100
140
  format: DirectionsFormat.GeoJSON,
@@ -113,16 +153,7 @@ export class OsrmDirectionsSource extends DirectionsSource {
113
153
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: OsrmDirectionsSource, deps: [{ token: i1.HttpClient }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
114
154
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: OsrmDirectionsSource });
115
155
  }
116
- __decorate([
117
- Cacheable({
118
- maxCacheCount: 20,
119
- cacheHasher: customCacheHasher
120
- }),
121
- __metadata("design:type", Function),
122
- __metadata("design:paramtypes", [Array, HttpParams]),
123
- __metadata("design:returntype", Observable)
124
- ], OsrmDirectionsSource.prototype, "getRoute", null);
125
156
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: OsrmDirectionsSource, decorators: [{
126
157
  type: Injectable
127
- }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.ConfigService }], propDecorators: { getRoute: [] } });
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3NybS1kaXJlY3Rpb25zLXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2RpcmVjdGlvbnMvZGlyZWN0aW9ucy1zb3VyY2VzL29zcm0tZGlyZWN0aW9ucy1zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXpDLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBQ3JCLE1BQU0sMkJBQTJCLENBQUM7QUFFbkMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFJdkQsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGdCQUFnQjtJQWE5QztJQUNBO0lBYlYsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sS0FBSyxLQUFLLENBQUM7SUFDeEMsQ0FBQztJQUNELElBQUksT0FBTyxDQUFDLEtBQWM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFDRCxNQUFNLENBQUMsS0FBSyxHQUFHLGFBQWEsQ0FBQztJQUNyQixhQUFhLEdBQ25CLHFFQUFxRSxDQUFDO0lBQ2hFLE9BQU8sQ0FB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QyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsSUFBSTtZQUMzQixLQUFLLEVBQUUsT0FBTztZQUNkLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNO1lBQy9CLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQyxXQUFXO1NBQzFDLENBQUM7SUFDSixDQUFDO3VHQXBIVSxvQkFBb0I7MkdBQXBCLG9CQUFvQjs7QUFxQ3ZCO0lBSlAsU0FBUyxDQUFDO1FBQ1QsYUFBYSxFQUFFLEVBQUU7UUFDakIsV0FBVyxFQUFFLGlCQUFpQjtLQUMvQixDQUFDOzs0Q0FHUSxVQUFVO29DQUNqQixVQUFVO29EQU1aOzJGQTlDVSxvQkFBb0I7a0JBRGhDLFVBQVU7MkdBc0NELFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9jb25maWcnO1xuaW1wb3J0IHsgY3VzdG9tQ2FjaGVIYXNoZXIsIHV1aWQgfSBmcm9tICdAaWdvMi91dGlscyc7XG5cbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENhY2hlYWJsZSB9IGZyb20gJ3RzLWNhY2hlYWJsZSc7XG5cbmltcG9ydCB7XG4gIERpcmVjdGlvbnNGb3JtYXQsXG4gIFNvdXJjZURpcmVjdGlvbnNUeXBlXG59IGZyb20gJy4uL3NoYXJlZC9kaXJlY3Rpb25zLmVudW0nO1xuaW1wb3J0IHsgRGlyZWN0aW9uLCBEaXJlY3Rpb25PcHRpb25zIH0gZnJvbSAnLi4vc2hhcmVkL2RpcmVjdGlvbnMuaW50ZXJmYWNlJztcbmltcG9ydCB7IERpcmVjdGlvbnNTb3VyY2UgfSBmcm9tICcuL2RpcmVjdGlvbnMtc291cmNlJztcbmltcG9ydCB7IE9zcm1EaXJlY3Rpb25zU291cmNlT3B0aW9ucyB9IGZyb20gJy4vZGlyZWN0aW9ucy1zb3VyY2UuaW50ZXJmYWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE9zcm1EaXJlY3Rpb25zU291cmNlIGV4dGVuZHMgRGlyZWN0aW9uc1NvdXJjZSB7XG4gIGdldCBlbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuZW5hYmxlZCAhPT0gZmFsc2U7XG4gIH1cbiAgc2V0IGVuYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLm9wdGlvbnMuZW5hYmxlZCA9IHZhbHVlO1xuICB9XG4gIHN0YXRpYyBfbmFtZSA9ICdPU1JNIFF1w6liZWMnO1xuICBwcml2YXRlIGRpcmVjdGlvbnNVcmwgPVxuICAgICdodHRwczovL2dlb2VnbC5tc3AuZ291di5xYy5jYS9zZXJ2aWNlcy9pdGluZXJhaXJlL3JvdXRlL3YxL2RyaXZpbmcvJztcbiAgcHJpdmF0ZSBvcHRpb25zOiBPc3JtRGlyZWN0aW9uc1NvdXJjZU9wdGlvbnM7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgY29uZmlnOiBDb25maWdTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5vcHRpb25zID0gdGhpcy5jb25maWcuZ2V0Q29uZmlnKCdkaXJlY3Rpb25zU291cmNlcy5vc3JtJykgfHwge307XG4gICAgdGhpcy5kaXJlY3Rpb25zVXJsID0gdGhpcy5vcHRpb25zLnVybCB8fCB0aGlzLmRpcmVjdGlvbnNVcmw7XG4gIH1cblxuICBnZXROYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIE9zcm1EaXJlY3Rpb25zU291cmNlLl9uYW1lO1xuICB9XG5cbiAgcm91dGUoXG4gICAgY29vcmRpbmF0ZXM6IFtudW1iZXIsIG51bWJlcl1bXSxcbiAgICBkaXJlY3Rpb25zT3B0aW9uczogRGlyZWN0aW9uT3B0aW9ucyA9IHt9XG4gICk6IE9ic2VydmFibGU8RGlyZWN0aW9uW10+IHtcbiAgICBjb25zdCBkaXJlY3Rpb25zUGFyYW1zID0gdGhpcy5nZXRSb3V0ZVBhcmFtcyhkaXJlY3Rpb25zT3B0aW9ucyk7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Um91dGUoY29vcmRpbmF0ZXMsIGRpcmVjdGlvbnNQYXJhbXMpO1xuICB9XG5cbiAgQENhY2hlYWJsZSh7XG4gICAgbWF4Q2FjaGVDb3VudDogMjAsXG4gICAgY2FjaGVIYXNoZXI6IGN1c3RvbUNhY2hlSGFzaGVyXG4gIH0pXG4gIHByaXZhdGUgZ2V0Um91dGUoXG4gICAgY29vcmRpbmF0ZXM6IFtudW1iZXIsIG51bWJlcl1bXSxcbiAgICBwYXJhbXM6IEh0dHBQYXJhbXNcbiAgKTogT2JzZXJ2YWJsZTxEaXJlY3Rpb25bXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8SlNPTltdPih0aGlzLmRpcmVjdGlvbnNVcmwgKyBjb29yZGluYXRlcy5qb2luKCc7JyksIHtcbiAgICAgICAgcGFyYW1zXG4gICAgICB9KVxuICAgICAgLnBpcGUobWFwKChyZXMpID0+IHRoaXMuZXh0cmFjdFJvdXRlc0RhdGEocmVzKSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBleHRyYWN0Um91dGVzRGF0YShyZXNwb25zZSk6IERpcmVjdGlvbltdIHtcbiAgICBjb25zdCByb3V0ZVJlc3BvbnNlID0gW107XG4gICAgcmVzcG9uc2Uucm91dGVzLmZvckVhY2goKHJvdXRlKSA9PiB7XG4gICAgICByb3V0ZVJlc3BvbnNlLnB1c2godGhpcy5mb3JtYXRSb3V0ZShyb3V0ZSwgcmVzcG9uc2Uud2F5cG9pbnRzKSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHJvdXRlUmVzcG9uc2U7XG4gIH1cblxuICBwcml2YXRlIGdldFJvdXRlUGFyYW1zKGRpcmVjdGlvbnNPcHRpb25zOiBEaXJlY3Rpb25PcHRpb25zID0ge30pOiBIdHRwUGFyYW1zIHtcbiAgICBkaXJlY3Rpb25zT3B0aW9ucy5hbHRlcm5hdGl2ZXMgPVxuICAgICAgZGlyZWN0aW9uc09wdGlvbnMuYWx0ZXJuYXRpdmVzICE9PSB1bmRlZmluZWRcbiAgICAgICAgPyBkaXJlY3Rpb25zT3B0aW9ucy5hbHRlcm5hdGl2ZXNcbiAgICAgICAgOiB0cnVlO1xuICAgIGRpcmVjdGlvbnNPcHRpb25zLnN0ZXBzID1cbiAgICAgIGRpcmVjdGlvbnNPcHRpb25zLnN0ZXBzICE9PSB1bmRlZmluZWQgPyBkaXJlY3Rpb25zT3B0aW9ucy5zdGVwcyA6IHRydWU7XG4gICAgZGlyZWN0aW9uc09wdGlvbnMuZ2VvbWV0cmllcyA9XG4gICAgICBkaXJlY3Rpb25zT3B0aW9ucy5nZW9tZXRyaWVzICE9PSB1bmRlZmluZWRcbiAgICAgICAgPyBkaXJlY3Rpb25zT3B0aW9ucy5nZW9tZXRyaWVzXG4gICAgICAgIDogJ2dlb2pzb24nO1xuICAgIGRpcmVjdGlvbnNPcHRpb25zLm92ZXJ2aWV3ID1cbiAgICAgIGRpcmVjdGlvbnNPcHRpb25zLm92ZXJ2aWV3ICE9PSB1bmRlZmluZWRcbiAgICAgICAgPyBkaXJlY3Rpb25zT3B0aW9ucy5vdmVydmlld1xuICAgICAgICA6IGZhbHNlO1xuICAgIGRpcmVjdGlvbnNPcHRpb25zLmNvbnRpbnVlX3N0cmFpZ2h0ID1cbiAgICAgIGRpcmVjdGlvbnNPcHRpb25zLmNvbnRpbnVlX3N0cmFpZ2h0ICE9PSB1bmRlZmluZWRcbiAgICAgICAgPyBkaXJlY3Rpb25zT3B0aW9ucy5jb250aW51ZV9zdHJhaWdodFxuICAgICAgICA6IGZhbHNlO1xuXG4gICAgcmV0dXJuIG5ldyBIdHRwUGFyYW1zKHtcbiAgICAgIGZyb21PYmplY3Q6IHtcbiAgICAgICAgYWx0ZXJuYXRpdmVzOiBkaXJlY3Rpb25zT3B0aW9ucy5hbHRlcm5hdGl2ZXMgPyAndHJ1ZScgOiAnZmFsc2UnLFxuICAgICAgICBvdmVydmlldzogZGlyZWN0aW9uc09wdGlvbnMub3ZlcnZpZXcgPyAnc2ltcGxpZmllZCcgOiAnZnVsbCcsXG4gICAgICAgIHN0ZXBzOiBkaXJlY3Rpb25zT3B0aW9ucy5zdGVwcyA/ICd0cnVlJyA6ICdmYWxzZScsXG4gICAgICAgIGdlb21ldHJpZXM6IGRpcmVjdGlvbnNPcHRpb25zLmdlb21ldHJpZXNcbiAgICAgICAgICA/IGRpcmVjdGlvbnNPcHRpb25zLmdlb21ldHJpZXNcbiAgICAgICAgICA6ICdnZW9qc29uJyxcbiAgICAgICAgY29udGludWVfc3RyYWlnaHQ6IGRpcmVjdGlvbnNPcHRpb25zLmNvbnRpbnVlX3N0cmFpZ2h0XG4gICAgICAgICAgPyAndHJ1ZSdcbiAgICAgICAgICA6ICdmYWxzZSdcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0Um91dGUocm9hZE5ldHdvcmtSb3V0ZTogYW55LCB3YXlwb2ludHM6IGFueSk6IERpcmVjdGlvbiB7XG4gICAgY29uc3Qgc3RlcHNVSSA9IFtdO1xuICAgIHJvYWROZXR3b3JrUm91dGUubGVncy5mb3JFYWNoKChsZWcpID0+IHtcbiAgICAgIGxlZy5zdGVwcy5mb3JFYWNoKChzdGVwKSA9PiB7XG4gICAgICAgIHN0ZXBzVUkucHVzaChzdGVwKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICBpZDogdXVpZCgpLFxuICAgICAgdGl0bGU6IHJvYWROZXR3b3JrUm91dGUubGVnc1swXS5zdW1tYXJ5LFxuICAgICAgc291cmNlOiBPc3JtRGlyZWN0aW9uc1NvdXJjZS5fbmFtZSxcbiAgICAgIHNvdXJjZVR5cGU6IFNvdXJjZURpcmVjdGlvbnNUeXBlLlJvdXRlLFxuICAgICAgb3JkZXI6IDEsXG4gICAgICBmb3JtYXQ6IERpcmVjdGlvbnNGb3JtYXQuR2VvSlNPTixcbiAgICAgIGljb246ICdkaXJlY3Rpb25zJyxcbiAgICAgIHByb2plY3Rpb246ICdFUFNHOjQzMjYnLFxuICAgICAgd2F5cG9pbnRzLFxuICAgICAgZGlzdGFuY2U6IHJvYWROZXR3b3JrUm91dGUuZGlzdGFuY2UsXG4gICAgICBkdXJhdGlvbjogcm9hZE5ldHdvcmtSb3V0ZS5kdXJhdGlvbixcbiAgICAgIGdlb21ldHJ5OiByb2FkTmV0d29ya1JvdXRlLmdlb21ldHJ5LFxuICAgICAgbGVnczogcm9hZE5ldHdvcmtSb3V0ZS5sZWdzLFxuICAgICAgc3RlcHM6IHN0ZXBzVUksXG4gICAgICB3ZWlnaHQ6IHJvYWROZXR3b3JrUm91dGUud2VpZ2h0LFxuICAgICAgd2VpZ2h0X25hbWU6IHJvYWROZXR3b3JrUm91dGUud2VpZ2h0X25hbWVcbiAgICB9O1xuICB9XG59XG4iXX0=
158
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.ConfigService }] });
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3NybS1kaXJlY3Rpb25zLXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2RpcmVjdGlvbnMvZGlyZWN0aW9ucy1zb3VyY2VzL29zcm0tZGlyZWN0aW9ucy1zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSW5DLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLG9CQUFvQixFQUNyQixNQUFNLDJCQUEyQixDQUFDO0FBRW5DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7O0FBT3ZELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxnQkFBZ0I7SUF3QzlDO0lBQ0E7SUF4Q1YsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxLQUFrQztRQUM1QyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxVQUFVLENBQUMsS0FBYTtRQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENB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QUFnQixDQUFDLE9BQU87WUFDaEMsSUFBSSxFQUFFLFlBQVk7WUFDbEIsVUFBVSxFQUFFLFdBQVc7WUFDdkIsU0FBUztZQUNULFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRO1lBQ25DLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRO1lBQ25DLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRO1lBQ25DLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJO1lBQzNCLEtBQUssRUFBRSxPQUFPO1lBQ2QsTUFBTSxFQUFFLGdCQUFnQixDQUFDLE1BQU07WUFDL0IsV0FBVyxFQUFFLGdCQUFnQixDQUFDLFdBQVc7U0FDMUMsQ0FBQztJQUNKLENBQUM7dUdBdEtVLG9CQUFvQjsyR0FBcEIsb0JBQW9COzsyRkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUvY29uZmlnJztcbmltcG9ydCB7IHV1aWQgfSBmcm9tICdAaWdvMi91dGlscyc7XG5cbmltcG9ydCB7IFBvc2l0aW9uIH0gZnJvbSAnZ2VvanNvbic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7XG4gIERpcmVjdGlvbnNGb3JtYXQsXG4gIFNvdXJjZURpcmVjdGlvbnNUeXBlXG59IGZyb20gJy4uL3NoYXJlZC9kaXJlY3Rpb25zLmVudW0nO1xuaW1wb3J0IHsgRGlyZWN0aW9uLCBEaXJlY3Rpb25PcHRpb25zIH0gZnJvbSAnLi4vc2hhcmVkL2RpcmVjdGlvbnMuaW50ZXJmYWNlJztcbmltcG9ydCB7IERpcmVjdGlvbnNTb3VyY2UgfSBmcm9tICcuL2RpcmVjdGlvbnMtc291cmNlJztcbmltcG9ydCB7XG4gIEJhc2VEaXJlY3Rpb25zU291cmNlT3B0aW9uc1Byb2ZpbGUsXG4gIE9zcm1EaXJlY3Rpb25zU291cmNlT3B0aW9uc1xufSBmcm9tICcuL2RpcmVjdGlvbnMtc291cmNlLmludGVyZmFjZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBPc3JtRGlyZWN0aW9uc1NvdXJjZSBleHRlbmRzIERpcmVjdGlvbnNTb3VyY2Uge1xuICBnZXQgb3B0aW9ucygpOiBPc3JtRGlyZWN0aW9uc1NvdXJjZU9wdGlvbnMge1xuICAgIHJldHVybiB0aGlzLl9vcHRpb25zO1xuICB9XG5cbiAgc2V0IG9wdGlvbnModmFsdWU6IE9zcm1EaXJlY3Rpb25zU291cmNlT3B0aW9ucykge1xuICAgIHRoaXMuX29wdGlvbnMgPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCBzb3VyY2VOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX29wdGlvbnMubmFtZTtcbiAgfVxuXG4gIHNldCBzb3VyY2VOYW1lKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9vcHRpb25zLm5hbWUgPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCBiYXNlVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX29wdGlvbnMuYmFzZVVybDtcbiAgfVxuXG4gIHNldCBiYXNlVXJsKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9vcHRpb25zLmJhc2VVcmwgPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCB1cmwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy5iYXNlVXJsfSR7dGhpcy5nZXRFbmFibGVkUHJvZmlsZSgpLm5hbWV9L2A7XG4gIH1cblxuICBnZXQgcHJvZmlsZXMoKTogQmFzZURpcmVjdGlvbnNTb3VyY2VPcHRpb25zUHJvZmlsZVtdIHtcbiAgICByZXR1cm4gdGhpcy5fb3B0aW9ucy5wcm9maWxlcztcbiAgfVxuXG4gIHNldCBwcm9maWxlcyh2YWx1ZTogQmFzZURpcmVjdGlvbnNTb3VyY2VPcHRpb25zUHJvZmlsZVtdKSB7XG4gICAgdGhpcy5fb3B0aW9ucy5wcm9maWxlcyA9IHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBfb3B0aW9uczogT3NybURpcmVjdGlvbnNTb3VyY2VPcHRpb25zO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2h0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBfY29uZmlnOiBDb25maWdTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5fb3B0aW9ucyA9IHRoaXMuX2NvbmZpZy5nZXRDb25maWcoJ2RpcmVjdGlvbnNTb3VyY2VzLm9zcm0nKTtcbiAgICBpZiAoIXRoaXMuYmFzZVVybCkge1xuICAgICAgdGhpcy5iYXNlVXJsID0gJy9hcGlzL2l0aW5lcmFpcmUvcm91dGUvdjEvJztcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuc291cmNlTmFtZSkge1xuICAgICAgdGhpcy5zb3VyY2VOYW1lID0gJ09TUk0gUXXDqWJlYyc7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnByb2ZpbGVzKSB7XG4gICAgICBjb25zdCBwcm9maWxlOiBCYXNlRGlyZWN0aW9uc1NvdXJjZU9wdGlvbnNQcm9maWxlID0ge1xuICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICBuYW1lOiAnZHJpdmluZydcbiAgICAgIH07XG4gICAgICB0aGlzLnByb2ZpbGVzID0gW3Byb2ZpbGVdO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIXRoaXMucHJvZmlsZXMuZmluZCgocHJvZmlsZSkgPT4gcHJvZmlsZS5lbmFibGVkKSkge1xuICAgICAgICB0aGlzLnByb2ZpbGVzWzBdLmVuYWJsZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldFNvdXJjZU5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zb3VyY2VOYW1lO1xuICB9XG5cbiAgZ2V0RW5hYmxlZFByb2ZpbGUoKTogQmFzZURpcmVjdGlvbnNTb3VyY2VPcHRpb25zUHJvZmlsZSB7XG4gICAgcmV0dXJuIHRoaXMucHJvZmlsZXMuZmluZCgocHJvZmlsZSkgPT4gcHJvZmlsZS5lbmFibGVkKTtcbiAgfVxuXG4gIGdldFByb2ZpbGVXaXRoQXV0aG9yaXphdGlvbigpOiBCYXNlRGlyZWN0aW9uc1NvdXJjZU9wdGlvbnNQcm9maWxlIHtcbiAgICByZXR1cm4gdGhpcy5wcm9maWxlcy5maW5kKChwcm9maWxlKSA9PiBwcm9maWxlLmF1dGhvcml6YXRpb24pO1xuICB9XG5cbiAgcm91dGUoXG4gICAgY29vcmRpbmF0ZXM6IFBvc2l0aW9uW10sXG4gICAgZGlyZWN0aW9uc09wdGlvbnM6IERpcmVjdGlvbk9wdGlvbnMgPSB7fVxuICApOiBPYnNlcnZhYmxlPERpcmVjdGlvbltdPiB7XG4gICAgY29uc3QgZGlyZWN0aW9uc1BhcmFtcyA9IHRoaXMuZ2V0Um91dGVQYXJhbXMoZGlyZWN0aW9uc09wdGlvbnMpO1xuICAgIHJldHVybiB0aGlzLmdldFJvdXRlKGNvb3JkaW5hdGVzLCBkaXJlY3Rpb25zUGFyYW1zKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Um91dGUoXG4gICAgY29vcmRpbmF0ZXM6IFBvc2l0aW9uW10sXG4gICAgcGFyYW1zOiBIdHRwUGFyYW1zXG4gICk6IE9ic2VydmFibGU8RGlyZWN0aW9uW10+IHtcbiAgICBjb25zdCB1cmw6IHN0cmluZyA9IHRoaXMudXJsO1xuICAgIHJldHVybiB0aGlzLl9odHRwXG4gICAgICAuZ2V0PEpTT05bXT4odXJsICsgY29vcmRpbmF0ZXMuam9pbignOycpLCB7XG4gICAgICAgIHBhcmFtc1xuICAgICAgfSlcbiAgICAgIC5waXBlKG1hcCgocmVzKSA9PiB0aGlzLmV4dHJhY3RSb3V0ZXNEYXRhKHJlcykpKTtcbiAgfVxuXG4gIHByaXZhdGUgZXh0cmFjdFJvdXRlc0RhdGEocmVzcG9uc2UpOiBEaXJlY3Rpb25bXSB7XG4gICAgY29uc3Qgcm91dGVSZXNwb25zZSA9IFtdO1xuICAgIHJlc3BvbnNlLnJvdXRlcy5mb3JFYWNoKChyb3V0ZSkgPT4ge1xuICAgICAgcm91dGVSZXNwb25zZS5wdXNoKHRoaXMuZm9ybWF0Um91dGUocm91dGUsIHJlc3BvbnNlLndheXBvaW50cykpO1xuICAgIH0pO1xuICAgIHJldHVybiByb3V0ZVJlc3BvbnNlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRSb3V0ZVBhcmFtcyhkaXJlY3Rpb25zT3B0aW9uczogRGlyZWN0aW9uT3B0aW9ucyA9IHt9KTogSHR0cFBhcmFtcyB7XG4gICAgZGlyZWN0aW9uc09wdGlvbnMuYWx0ZXJuYXRpdmVzID1cbiAgICAgIGRpcmVjdGlvbnNPcHRpb25zLmFsdGVybmF0aXZlcyAhPT0gdW5kZWZpbmVkXG4gICAgICAgID8gZGlyZWN0aW9uc09wdGlvbnMuYWx0ZXJuYXRpdmVzXG4gICAgICAgIDogdHJ1ZTtcbiAgICBkaXJlY3Rpb25zT3B0aW9ucy5zdGVwcyA9XG4gICAgICBkaXJlY3Rpb25zT3B0aW9ucy5zdGVwcyAhPT0gdW5kZWZpbmVkID8gZGlyZWN0aW9uc09wdGlvbnMuc3RlcHMgOiB0cnVlO1xuICAgIGRpcmVjdGlvbnNPcHRpb25zLmdlb21ldHJpZXMgPVxuICAgICAgZGlyZWN0aW9uc09wdGlvbnMuZ2VvbWV0cmllcyAhPT0gdW5kZWZpbmVkXG4gICAgICAgID8gZGlyZWN0aW9uc09wdGlvbnMuZ2VvbWV0cmllc1xuICAgICAgICA6ICdnZW9qc29uJztcbiAgICBkaXJlY3Rpb25zT3B0aW9ucy5vdmVydmlldyA9XG4gICAgICBkaXJlY3Rpb25zT3B0aW9ucy5vdmVydmlldyAhPT0gdW5kZWZpbmVkXG4gICAgICAgID8gZGlyZWN0aW9uc09wdGlvbnMub3ZlcnZpZXdcbiAgICAgICAgOiBmYWxzZTtcbiAgICBkaXJlY3Rpb25zT3B0aW9ucy5jb250aW51ZV9zdHJhaWdodCA9XG4gICAgICBkaXJlY3Rpb25zT3B0aW9ucy5jb250aW51ZV9zdHJhaWdodCAhPT0gdW5kZWZpbmVkXG4gICAgICAgID8gZGlyZWN0aW9uc09wdGlvbnMuY29udGludWVfc3RyYWlnaHRcbiAgICAgICAgOiBmYWxzZTtcblxuICAgIHJldHVybiBuZXcgSHR0cFBhcmFtcyh7XG4gICAgICBmcm9tT2JqZWN0OiB7XG4gICAgICAgIGFsdGVybmF0aXZlczogZGlyZWN0aW9uc09wdGlvbnMuYWx0ZXJuYXRpdmVzID8gJ3RydWUnIDogJ2ZhbHNlJyxcbiAgICAgICAgb3ZlcnZpZXc6IGRpcmVjdGlvbnNPcHRpb25zLm92ZXJ2aWV3ID8gJ3NpbXBsaWZpZWQnIDogJ2Z1bGwnLFxuICAgICAgICBzdGVwczogZGlyZWN0aW9uc09wdGlvbnMuc3RlcHMgPyAndHJ1ZScgOiAnZmFsc2UnLFxuICAgICAgICBnZW9tZXRyaWVzOiBkaXJlY3Rpb25zT3B0aW9ucy5nZW9tZXRyaWVzXG4gICAgICAgICAgPyBkaXJlY3Rpb25zT3B0aW9ucy5nZW9tZXRyaWVzXG4gICAgICAgICAgOiAnZ2VvanNvbicsXG4gICAgICAgIGNvbnRpbnVlX3N0cmFpZ2h0OiBkaXJlY3Rpb25zT3B0aW9ucy5jb250aW51ZV9zdHJhaWdodFxuICAgICAgICAgID8gJ3RydWUnXG4gICAgICAgICAgOiAnZmFsc2UnXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdFJvdXRlKHJvYWROZXR3b3JrUm91dGU6IGFueSwgd2F5cG9pbnRzOiBhbnkpOiBEaXJlY3Rpb24ge1xuICAgIGNvbnN0IHN0ZXBzVUkgPSBbXTtcbiAgICByb2FkTmV0d29ya1JvdXRlLmxlZ3MuZm9yRWFjaCgobGVnKSA9PiB7XG4gICAgICBsZWcuc3RlcHMuZm9yRWFjaCgoc3RlcCkgPT4ge1xuICAgICAgICBzdGVwc1VJLnB1c2goc3RlcCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IHV1aWQoKSxcbiAgICAgIHRpdGxlOiByb2FkTmV0d29ya1JvdXRlLmxlZ3NbMF0uc3VtbWFyeSxcbiAgICAgIHNvdXJjZTogdGhpcy51cmwsXG4gICAgICBzb3VyY2VUeXBlOiBTb3VyY2VEaXJlY3Rpb25zVHlwZS5Sb3V0ZSxcbiAgICAgIG9yZGVyOiAxLFxuICAgICAgZm9ybWF0OiBEaXJlY3Rpb25zRm9ybWF0Lkdlb0pTT04sXG4gICAgICBpY29uOiAnZGlyZWN0aW9ucycsXG4gICAgICBwcm9qZWN0aW9uOiAnRVBTRzo0MzI2JyxcbiAgICAgIHdheXBvaW50cyxcbiAgICAgIGRpc3RhbmNlOiByb2FkTmV0d29ya1JvdXRlLmRpc3RhbmNlLFxuICAgICAgZHVyYXRpb246IHJvYWROZXR3b3JrUm91dGUuZHVyYXRpb24sXG4gICAgICBnZW9tZXRyeTogcm9hZE5ldHdvcmtSb3V0ZS5nZW9tZXRyeSxcbiAgICAgIGxlZ3M6IHJvYWROZXR3b3JrUm91dGUubGVncyxcbiAgICAgIHN0ZXBzOiBzdGVwc1VJLFxuICAgICAgd2VpZ2h0OiByb2FkTmV0d29ya1JvdXRlLndlaWdodCxcbiAgICAgIHdlaWdodF9uYW1lOiByb2FkTmV0d29ya1JvdXRlLndlaWdodF9uYW1lXG4gICAgfTtcbiAgfVxufVxuIl19