@igo2/geo 16.0.2 → 16.1.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 (327) hide show
  1. package/esm2022/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +28 -132
  2. package/esm2022/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +22 -86
  3. package/esm2022/lib/catalog/catalog-browser/catalog-browser.component.mjs +22 -65
  4. package/esm2022/lib/catalog/catalog-browser/catalog-browser.module.mjs +42 -47
  5. package/esm2022/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +13 -129
  6. package/esm2022/lib/catalog/catalog-library/catalog-library-item.component.mjs +14 -55
  7. package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +27 -57
  8. package/esm2022/lib/catalog/catalog-library/catalog-library.module.mjs +46 -54
  9. package/esm2022/lib/catalog/catalog.module.mjs +28 -29
  10. package/esm2022/lib/catalog/shared/catalog.abstract.mjs +1 -1
  11. package/esm2022/lib/catalog/shared/catalog.interface.mjs +1 -1
  12. package/esm2022/lib/catalog/shared/catalog.service.mjs +14 -14
  13. package/esm2022/lib/datasource/datasource.module.mjs +12 -12
  14. package/esm2022/lib/datasource/shared/capabilities.interface.mjs +9 -0
  15. package/esm2022/lib/datasource/shared/capabilities.service.mjs +10 -17
  16. package/esm2022/lib/datasource/shared/datasource.service.mjs +11 -11
  17. package/esm2022/lib/datasource/shared/datasources/wfs.service.mjs +9 -9
  18. package/esm2022/lib/datasource/shared/datasources/wms-datasource.interface.mjs +1 -1
  19. package/esm2022/lib/datasource/shared/datasources/wms-datasource.mjs +1 -1
  20. package/esm2022/lib/datasource/shared/index.mjs +2 -1
  21. package/esm2022/lib/datasource/shared/options/options-api.service.mjs +12 -12
  22. package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +19 -102
  23. package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +21 -122
  24. package/esm2022/lib/directions/directions-results/directions-results.component.mjs +11 -103
  25. package/esm2022/lib/directions/directions-sources/osrm-directions-source.mjs +6 -6
  26. package/esm2022/lib/directions/directions.component.mjs +25 -47
  27. package/esm2022/lib/directions/directions.module.mjs +61 -62
  28. package/esm2022/lib/directions/shared/directions.service.mjs +15 -14
  29. package/esm2022/lib/download/download-button/download-button.component.mjs +11 -26
  30. package/esm2022/lib/download/download.module.mjs +22 -23
  31. package/esm2022/lib/download/shared/download.service.mjs +9 -9
  32. package/esm2022/lib/draw/draw/draw-layer-popup.component.mjs +9 -35
  33. package/esm2022/lib/draw/draw/draw-popup.component.mjs +20 -299
  34. package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +7 -40
  35. package/esm2022/lib/draw/draw/draw.component.mjs +56 -322
  36. package/esm2022/lib/draw/draw/draw.module.mjs +64 -65
  37. package/esm2022/lib/draw/drawingTool.module.mjs +12 -13
  38. package/esm2022/lib/draw/shared/draw-icon.service.mjs +9 -9
  39. package/esm2022/lib/draw/shared/draw.interface.mjs +1 -1
  40. package/esm2022/lib/environment/environment.interface.mjs +1 -1
  41. package/esm2022/lib/feature/feature-details/feature-details.component.mjs +21 -171
  42. package/esm2022/lib/feature/feature-details/feature-details.directive.mjs +17 -19
  43. package/esm2022/lib/feature/feature-details/feature-details.module.mjs +22 -23
  44. package/esm2022/lib/feature/feature-form/feature-form.component.mjs +16 -34
  45. package/esm2022/lib/feature/feature-form/feature-form.module.mjs +12 -13
  46. package/esm2022/lib/feature/feature.module.mjs +13 -14
  47. package/esm2022/lib/feature/shared/feature-store.utils.mjs +2 -2
  48. package/esm2022/lib/feature/shared/feature.interfaces.mjs +1 -1
  49. package/esm2022/lib/feature/shared/feature.utils.mjs +1 -1
  50. package/esm2022/lib/feature/shared/store.mjs +1 -1
  51. package/esm2022/lib/feature/shared/strategies/geo-properties.mjs +1 -1
  52. package/esm2022/lib/feature/shared/strategies/in-map-extent.mjs +1 -1
  53. package/esm2022/lib/feature/shared/strategies/selection.mjs +2 -2
  54. package/esm2022/lib/filter/filter.module.mjs +158 -197
  55. package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +24 -49
  56. package/esm2022/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +32 -397
  57. package/esm2022/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +39 -625
  58. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +20 -47
  59. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +44 -340
  60. package/esm2022/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +36 -58
  61. package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +26 -126
  62. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +11 -11
  63. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +17 -40
  64. package/esm2022/lib/filter/shared/filterable-datasource.pipe.mjs +9 -9
  65. package/esm2022/lib/filter/shared/ogc-filter-time.service.mjs +6 -6
  66. package/esm2022/lib/filter/shared/ogc-filter.service.mjs +6 -6
  67. package/esm2022/lib/filter/shared/spatial-filter.service.mjs +9 -9
  68. package/esm2022/lib/filter/shared/time-filter.service.mjs +6 -6
  69. package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +73 -386
  70. package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +23 -87
  71. package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +37 -86
  72. package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +24 -49
  73. package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +20 -268
  74. package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +20 -72
  75. package/esm2022/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +11 -11
  76. package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +13 -24
  77. package/esm2022/lib/geo.module.mjs +54 -55
  78. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +36 -39
  79. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +32 -97
  80. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +30 -31
  81. package/esm2022/lib/geometry/geometry.module.mjs +13 -14
  82. package/esm2022/lib/geometry/shared/geometry.interfaces.mjs +1 -1
  83. package/esm2022/lib/import-export/export-button/export-button.component.mjs +11 -24
  84. package/esm2022/lib/import-export/import-export/import-export.component.mjs +25 -434
  85. package/esm2022/lib/import-export/import-export.module.mjs +54 -55
  86. package/esm2022/lib/import-export/shared/drop-geo-file.directive.mjs +20 -22
  87. package/esm2022/lib/import-export/shared/export.service.mjs +10 -10
  88. package/esm2022/lib/import-export/shared/import.service.mjs +9 -9
  89. package/esm2022/lib/layer/index.mjs +1 -1
  90. package/esm2022/lib/layer/layer-item/layer-item.component.mjs +47 -127
  91. package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +16 -183
  92. package/esm2022/lib/layer/layer-legend-item/layer-legend-item.component.mjs +16 -26
  93. package/esm2022/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +11 -11
  94. package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +26 -130
  95. package/esm2022/lib/layer/layer-list/layer-list-binding.directive.mjs +13 -13
  96. package/esm2022/lib/layer/layer-list/layer-list.component.mjs +50 -272
  97. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +21 -72
  98. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.service.mjs +9 -9
  99. package/esm2022/lib/layer/layer.module.mjs +94 -114
  100. package/esm2022/lib/layer/shared/layer.service.mjs +12 -12
  101. package/esm2022/lib/layer/shared/layers/image-layer.mjs +2 -2
  102. package/esm2022/lib/layer/shared/layers/layer.mjs +1 -1
  103. package/esm2022/lib/layer/shared/layers/tile-layer.mjs +2 -2
  104. package/esm2022/lib/layer/shared/layers/vector-layer.mjs +2 -2
  105. package/esm2022/lib/layer/shared/layers/vectortile-layer.mjs +2 -2
  106. package/esm2022/lib/layer/track-feature-button/track-feature-button.component.mjs +12 -27
  107. package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +18 -60
  108. package/esm2022/lib/map/baselayers-switcher/index.mjs +1 -1
  109. package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +20 -48
  110. package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +11 -31
  111. package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +17 -26
  112. package/esm2022/lib/map/index.mjs +1 -1
  113. package/esm2022/lib/map/info-section/info-section.component.mjs +9 -22
  114. package/esm2022/lib/map/map-browser/index.mjs +1 -1
  115. package/esm2022/lib/map/map-browser/map-browser.component.mjs +11 -18
  116. package/esm2022/lib/map/map-center/map-center.component.mjs +9 -13
  117. package/esm2022/lib/map/map.module.mjs +88 -96
  118. package/esm2022/lib/map/menu-button/menu-button.component.mjs +11 -19
  119. package/esm2022/lib/map/offline-button/offline-button.component.mjs +13 -24
  120. package/esm2022/lib/map/rotation-button/rotation-button.component.mjs +13 -39
  121. package/esm2022/lib/map/shared/hover-feature.directive.mjs +18 -20
  122. package/esm2022/lib/map/shared/linkedLayers.utils.mjs +1 -1
  123. package/esm2022/lib/map/shared/map-pointer-position.directive.mjs +15 -15
  124. package/esm2022/lib/map/shared/map.abstract.mjs +1 -1
  125. package/esm2022/lib/map/shared/map.service.mjs +9 -9
  126. package/esm2022/lib/map/shared/mapOffline.directive.mjs +9 -9
  127. package/esm2022/lib/map/shared/projection.service.mjs +9 -9
  128. package/esm2022/lib/map/swipe-control/swipe-control.component.mjs +9 -16
  129. package/esm2022/lib/map/wake-lock-button/wake-lock-button.component.mjs +11 -24
  130. package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +11 -28
  131. package/esm2022/lib/measure/measure.module.mjs +12 -13
  132. package/esm2022/lib/measure/measurer/measure-format.pipe.mjs +9 -9
  133. package/esm2022/lib/measure/measurer/measurer-dialog.component.mjs +13 -166
  134. package/esm2022/lib/measure/measurer/measurer-item.component.mjs +19 -51
  135. package/esm2022/lib/measure/measurer/measurer.component.mjs +74 -241
  136. package/esm2022/lib/measure/measurer/measurer.module.mjs +46 -59
  137. package/esm2022/lib/measure/shared/measure.interfaces.mjs +1 -1
  138. package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +20 -69
  139. package/esm2022/lib/metadata/metadata.module.mjs +24 -25
  140. package/esm2022/lib/metadata/shared/metadata.interface.mjs +1 -1
  141. package/esm2022/lib/metadata/shared/metadata.service.mjs +9 -9
  142. package/esm2022/lib/offline/geoDB/configFileToGeoDB.service.mjs +9 -9
  143. package/esm2022/lib/offline/geoDB/geoDB.service.mjs +9 -9
  144. package/esm2022/lib/offline/layerDB/layerDB.service.mjs +9 -9
  145. package/esm2022/lib/offline/shared/geo-network.service.mjs +9 -9
  146. package/esm2022/lib/overlay/overlay.module.mjs +12 -13
  147. package/esm2022/lib/overlay/shared/overlay.directive.mjs +11 -11
  148. package/esm2022/lib/overlay/shared/overlay.mjs +1 -1
  149. package/esm2022/lib/overlay/shared/overlay.service.mjs +9 -9
  150. package/esm2022/lib/overlay/shared/overlay.utils.mjs +2 -2
  151. package/esm2022/lib/print/print/print.component.mjs +21 -27
  152. package/esm2022/lib/print/print-form/print-form.component.mjs +56 -349
  153. package/esm2022/lib/print/print.module.mjs +36 -37
  154. package/esm2022/lib/print/shared/print.service.mjs +14 -14
  155. package/esm2022/lib/print/shared/print.type.mjs +2 -2
  156. package/esm2022/lib/query/query.module.mjs +13 -14
  157. package/esm2022/lib/query/shared/query-search-source.mjs +9 -9
  158. package/esm2022/lib/query/shared/query.directive.mjs +21 -21
  159. package/esm2022/lib/query/shared/query.service.mjs +10 -10
  160. package/esm2022/lib/search/search-bar/search-bar.component.mjs +66 -165
  161. package/esm2022/lib/search/search-bar/search-bar.module.mjs +38 -39
  162. package/esm2022/lib/search/search-bar/search-url-param.directive.mjs +13 -13
  163. package/esm2022/lib/search/search-results/save-feature-dialog.component.mjs +12 -68
  164. package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +23 -66
  165. package/esm2022/lib/search/search-results/search-results-item.component.mjs +18 -74
  166. package/esm2022/lib/search/search-results/search-results.component.mjs +41 -238
  167. package/esm2022/lib/search/search-results/search-results.module.mjs +58 -59
  168. package/esm2022/lib/search/search-selector/search-selector.component.mjs +13 -43
  169. package/esm2022/lib/search/search-selector/search-selector.module.mjs +30 -31
  170. package/esm2022/lib/search/search-settings/search-settings.component.mjs +24 -233
  171. package/esm2022/lib/search/search-settings/search-settings.module.mjs +32 -33
  172. package/esm2022/lib/search/search.module.mjs +32 -33
  173. package/esm2022/lib/search/shared/search-pointer-summary.directive.mjs +18 -20
  174. package/esm2022/lib/search/shared/search.enums.mjs +3 -3
  175. package/esm2022/lib/search/shared/search.interfaces.mjs +1 -1
  176. package/esm2022/lib/search/shared/search.service.mjs +10 -10
  177. package/esm2022/lib/search/shared/sources/cadastre.mjs +10 -10
  178. package/esm2022/lib/search/shared/sources/coordinates.mjs +19 -19
  179. package/esm2022/lib/search/shared/sources/icherche.interfaces.mjs +1 -1
  180. package/esm2022/lib/search/shared/sources/icherche.mjs +37 -26
  181. package/esm2022/lib/search/shared/sources/ilayer.mjs +19 -19
  182. package/esm2022/lib/search/shared/sources/nominatim.mjs +10 -10
  183. package/esm2022/lib/search/shared/sources/source.mjs +1 -1
  184. package/esm2022/lib/search/shared/sources/storedqueries.interfaces.mjs +1 -1
  185. package/esm2022/lib/search/shared/sources/storedqueries.mjs +18 -18
  186. package/esm2022/lib/search/shared/sources/workspace.mjs +10 -10
  187. package/esm2022/lib/style/style-list/style-list.module.mjs +12 -12
  188. package/esm2022/lib/style/style-list/style-list.service.mjs +9 -9
  189. package/esm2022/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +12 -121
  190. package/esm2022/lib/style/style-modal/layer/style-modal-layer.component.mjs +13 -59
  191. package/esm2022/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +9 -17
  192. package/esm2022/lib/style/style-service/draw-style.service.mjs +9 -9
  193. package/esm2022/lib/style/style-service/style.service.mjs +9 -9
  194. package/esm2022/lib/style/style.module.mjs +51 -52
  195. package/esm2022/lib/toast/toast.component.mjs +15 -44
  196. package/esm2022/lib/toast/toast.module.mjs +24 -25
  197. package/esm2022/lib/utils/id-generator.mjs +1 -1
  198. package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.service.mjs +9 -9
  199. package/esm2022/lib/wkt/shared/wkt.service.mjs +9 -9
  200. package/esm2022/lib/wkt/wkt.module.mjs +12 -12
  201. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +10 -27
  202. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +20 -21
  203. package/esm2022/lib/workspace/shared/edition-workspace.mjs +4 -4
  204. package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +10 -10
  205. package/esm2022/lib/workspace/shared/feature-workspace.mjs +1 -1
  206. package/esm2022/lib/workspace/shared/feature-workspace.service.mjs +14 -13
  207. package/esm2022/lib/workspace/shared/wfs-workspace.mjs +1 -1
  208. package/esm2022/lib/workspace/shared/wfs-workspace.service.mjs +14 -13
  209. package/esm2022/lib/workspace/shared/wms-workspace.service.mjs +12 -12
  210. package/esm2022/lib/workspace/shared/workspace.utils.mjs +1 -1
  211. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +15 -19
  212. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +12 -13
  213. package/esm2022/lib/workspace/workspace-selector/workspace-selector.directive.mjs +21 -21
  214. package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +12 -13
  215. package/esm2022/lib/workspace/workspace-updator/workspace-updator.directive.mjs +15 -15
  216. package/esm2022/lib/workspace/workspace-updator/workspace-updator.module.mjs +12 -13
  217. package/esm2022/lib/workspace/workspace.module.mjs +35 -36
  218. package/fesm2022/igo2-geo.mjs +16547 -23425
  219. package/fesm2022/igo2-geo.mjs.map +1 -1
  220. package/lib/catalog/catalog-browser/catalog-browser-group.component.d.ts +1 -1
  221. package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +1 -1
  222. package/lib/catalog/catalog-browser/catalog-browser.component.d.ts +1 -1
  223. package/lib/catalog/catalog-library/catalog-library-item.component.d.ts +1 -1
  224. package/lib/catalog/catalog-library/catalog-library.component.d.ts +2 -2
  225. package/lib/catalog/shared/catalog.abstract.d.ts +3 -3
  226. package/lib/catalog/shared/catalog.interface.d.ts +2 -2
  227. package/lib/catalog/shared/catalog.service.d.ts +1 -1
  228. package/lib/datasource/shared/capabilities.interface.d.ts +8 -0
  229. package/lib/datasource/shared/capabilities.service.d.ts +1 -8
  230. package/lib/datasource/shared/datasources/wms-datasource.d.ts +1 -1
  231. package/lib/datasource/shared/datasources/wms-datasource.interface.d.ts +1 -1
  232. package/lib/datasource/shared/index.d.ts +1 -0
  233. package/lib/directions/shared/directions.service.d.ts +2 -2
  234. package/lib/download/shared/download.service.d.ts +1 -1
  235. package/lib/draw/shared/draw.interface.d.ts +1 -1
  236. package/lib/environment/environment.interface.d.ts +8 -6
  237. package/lib/feature/shared/feature.interfaces.d.ts +3 -3
  238. package/lib/feature/shared/feature.utils.d.ts +2 -1
  239. package/lib/feature/shared/store.d.ts +1 -1
  240. package/lib/filter/ogc-filter-button/ogc-filter-button.component.d.ts +1 -1
  241. package/lib/filter/ogc-filter-form/ogc-filter-form.component.d.ts +1 -1
  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 +1 -0
  244. package/lib/filter/ogc-filterable-form/ogc-filterable-form.component.d.ts +1 -1
  245. package/lib/filter/ogc-filterable-item/ogc-filterable-item.component.d.ts +1 -1
  246. package/lib/filter/ogc-filterable-list/ogc-filterable-list.component.d.ts +1 -1
  247. package/lib/filter/shared/spatial-filter.service.d.ts +1 -1
  248. package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +1 -1
  249. package/lib/filter/time-filter-button/time-filter-button.component.d.ts +2 -2
  250. package/lib/filter/time-filter-item/time-filter-item.component.d.ts +1 -1
  251. package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +1 -1
  252. package/lib/geometry/geometry-form-field/geometry-form-field.component.d.ts +1 -1
  253. package/lib/geometry/shared/geometry.interfaces.d.ts +1 -1
  254. package/lib/import-export/export-button/export-button.component.d.ts +1 -1
  255. package/lib/layer/layer-item/layer-item.component.d.ts +1 -1
  256. package/lib/layer/layer-legend/layer-legend.component.d.ts +1 -1
  257. package/lib/layer/layer-legend-item/layer-legend-item.component.d.ts +1 -1
  258. package/lib/layer/layer-legend-list/layer-legend-list.component.d.ts +1 -1
  259. package/lib/layer/shared/layers/image-layer.d.ts +1 -1
  260. package/lib/layer/shared/layers/layer.d.ts +2 -1
  261. package/lib/layer/shared/layers/tile-layer.d.ts +1 -1
  262. package/lib/layer/shared/layers/vectortile-layer.d.ts +1 -1
  263. package/lib/layer/track-feature-button/track-feature-button.component.d.ts +1 -1
  264. package/lib/map/baselayers-switcher/baselayers-switcher.component.d.ts +1 -1
  265. package/lib/map/baselayers-switcher/mini-basemap.component.d.ts +1 -1
  266. package/lib/map/shared/map.abstract.d.ts +5 -4
  267. package/lib/measure/measurer/measurer.component.d.ts +8 -4
  268. package/lib/measure/shared/measure.interfaces.d.ts +2 -2
  269. package/lib/metadata/shared/metadata.interface.d.ts +1 -1
  270. package/lib/overlay/shared/overlay.d.ts +1 -1
  271. package/lib/print/print-form/print-form.component.d.ts +4 -6
  272. package/lib/print/shared/print.service.d.ts +2 -1
  273. package/lib/print/shared/print.type.d.ts +2 -6
  274. package/lib/search/search-results/search-results-add-button.component.d.ts +1 -1
  275. package/lib/search/search-results/search-results-item.component.d.ts +1 -1
  276. package/lib/search/search-results/search-results.component.d.ts +1 -1
  277. package/lib/search/shared/search.interfaces.d.ts +1 -1
  278. package/lib/search/shared/sources/cadastre.d.ts +1 -1
  279. package/lib/search/shared/sources/coordinates.d.ts +1 -1
  280. package/lib/search/shared/sources/icherche.d.ts +1 -1
  281. package/lib/search/shared/sources/icherche.interfaces.d.ts +1 -1
  282. package/lib/search/shared/sources/nominatim.d.ts +1 -1
  283. package/lib/search/shared/sources/source.d.ts +1 -1
  284. package/lib/search/shared/sources/storedqueries.d.ts +1 -1
  285. package/lib/search/shared/sources/storedqueries.interfaces.d.ts +1 -1
  286. package/lib/search/shared/sources/workspace.d.ts +1 -1
  287. package/lib/utils/id-generator.d.ts +1 -1
  288. package/lib/workspace/shared/edition-workspace.d.ts +3 -3
  289. package/lib/workspace/shared/edition-workspace.service.d.ts +1 -1
  290. package/lib/workspace/shared/feature-workspace.d.ts +1 -1
  291. package/lib/workspace/shared/feature-workspace.service.d.ts +2 -2
  292. package/lib/workspace/shared/wfs-workspace.d.ts +1 -1
  293. package/lib/workspace/shared/wfs-workspace.service.d.ts +2 -2
  294. package/lib/workspace/shared/wms-workspace.service.d.ts +2 -2
  295. package/lib/workspace/shared/workspace.utils.d.ts +1 -1
  296. package/lib/workspace/workspace-selector/workspace-selector.directive.d.ts +1 -1
  297. package/lib/workspace/workspace-updator/workspace-updator.directive.d.ts +1 -1
  298. package/locale/en.geo.json +5 -3
  299. package/locale/fr.geo.json +5 -3
  300. package/package.json +26 -29
  301. package/{lib → src/lib}/search/search-bar/search-bar.theming.scss +1 -0
  302. package/src/style/style.scss +1 -0
  303. /package/{geo-theme.scss → src/geo-theme.scss} +0 -0
  304. /package/{lib → src/lib}/catalog/catalog-browser/catalog-browser.theming.scss +0 -0
  305. /package/{lib → src/lib}/catalog/catalog.theming.scss +0 -0
  306. /package/{lib → src/lib}/directions/directions-results/directions-results.theming.scss +0 -0
  307. /package/{lib → src/lib}/directions/directions.theming.scss +0 -0
  308. /package/{lib → src/lib}/draw/draw.theming.scss +0 -0
  309. /package/{lib → src/lib}/feature/feature-details/feature-details.theming.scss +0 -0
  310. /package/{lib → src/lib}/feature/feature.theming.scss +0 -0
  311. /package/{lib → src/lib}/filter/filter.theming.scss +0 -0
  312. /package/{lib → src/lib}/filter/ogc-filter-selection/ogc-filter-selection.theming.scss +0 -0
  313. /package/{lib → src/lib}/filter/time-filter-form/time-filter-form.theming.scss +0 -0
  314. /package/{lib → src/lib}/layer/layer-item/layer-item.theme.scss +0 -0
  315. /package/{lib → src/lib}/layer/layer-legend/layer-legend.theming.scss +0 -0
  316. /package/{lib → src/lib}/layer/layer-list-tool/layer-list-tool.theming.scss +0 -0
  317. /package/{lib → src/lib}/layer/layer.theming.scss +0 -0
  318. /package/{lib → src/lib}/map/map-browser/map-browser.theming.scss +0 -0
  319. /package/{lib → src/lib}/map/map.theming.scss +0 -0
  320. /package/{lib → src/lib}/map/menu-button/menu-button.theming.scss +0 -0
  321. /package/{lib → src/lib}/map/zoom-button/zoom-button.theming.scss +0 -0
  322. /package/{lib → src/lib}/measure/measure.theming.scss +0 -0
  323. /package/{lib → src/lib}/measure/measurer/measurer.theming.scss +0 -0
  324. /package/{lib → src/lib}/search/search-results/search-results-item.theme.scss +0 -0
  325. /package/{lib → src/lib}/search/search.theming.scss +0 -0
  326. /package/{lib → src/lib}/workspace/confirmation-popup/confirmation-popup.theming.scss +0 -0
  327. /package/{lib → src/lib}/workspace/workspace.theming.scss +0 -0
@@ -17,149 +17,6 @@ import * as i4 from "@angular/common";
17
17
  import * as i5 from "@angular/material/icon";
18
18
  import * as i6 from "@igo2/common";
19
19
  import * as i7 from "@ngx-translate/core";
20
- function FeatureDetailsComponent_table_0_tr_2_td_1_Template(rf, ctx) { if (rf & 1) {
21
- i0.ɵɵelementStart(0, "td");
22
- i0.ɵɵelement(1, "mat-icon", 7);
23
- i0.ɵɵelementEnd();
24
- } if (rf & 2) {
25
- const ctx_r4 = i0.ɵɵnextContext(3);
26
- i0.ɵɵadvance(1);
27
- i0.ɵɵpropertyInterpolate("svgIcon", ctx_r4.icon);
28
- } }
29
- function FeatureDetailsComponent_table_0_tr_2_td_2_Template(rf, ctx) { if (rf & 1) {
30
- const _r14 = i0.ɵɵgetCurrentView();
31
- i0.ɵɵelementStart(0, "td")(1, "a", 8);
32
- i0.ɵɵtext(2);
33
- i0.ɵɵpipe(3, "translate");
34
- i0.ɵɵelementEnd();
35
- i0.ɵɵelementStart(4, "button", 9);
36
- i0.ɵɵlistener("click", function FeatureDetailsComponent_table_0_tr_2_td_2_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r14); const property_r3 = i0.ɵɵnextContext().$implicit; const ctx_r12 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r12.copyTextToClipboard(property_r3.value)); });
37
- i0.ɵɵelement(5, "mat-icon", 10);
38
- i0.ɵɵelementEnd()();
39
- } if (rf & 2) {
40
- const property_r3 = i0.ɵɵnextContext().$implicit;
41
- const ctx_r5 = i0.ɵɵnextContext(2);
42
- i0.ɵɵadvance(1);
43
- i0.ɵɵpropertyInterpolate("href", property_r3.value, i0.ɵɵsanitizeUrl);
44
- i0.ɵɵadvance(1);
45
- i0.ɵɵtextInterpolate2(" ", i0.ɵɵpipeBind1(3, 3, "igo.geo.targetHtmlUrl"), " ", ctx_r5.title, "");
46
- } }
47
- function FeatureDetailsComponent_table_0_tr_2_td_3_Template(rf, ctx) { if (rf & 1) {
48
- i0.ɵɵelementStart(0, "td", 11);
49
- i0.ɵɵtext(1);
50
- i0.ɵɵelementEnd();
51
- } if (rf & 2) {
52
- const property_r3 = i0.ɵɵnextContext().$implicit;
53
- i0.ɵɵadvance(1);
54
- i0.ɵɵtextInterpolate1(" ", property_r3.key, " ");
55
- } }
56
- function FeatureDetailsComponent_table_0_tr_2_td_4_Template(rf, ctx) { if (rf & 1) {
57
- i0.ɵɵelement(0, "td", 12);
58
- } if (rf & 2) {
59
- const property_r3 = i0.ɵɵnextContext().$implicit;
60
- i0.ɵɵproperty("innerHTML", property_r3.value, i0.ɵɵsanitizeHtml);
61
- } }
62
- const _c0 = function () { return { cursor: "pointer", color: "blue" }; };
63
- function FeatureDetailsComponent_table_0_tr_2_td_5_Template(rf, ctx) { if (rf & 1) {
64
- const _r20 = i0.ɵɵgetCurrentView();
65
- i0.ɵɵelementStart(0, "td")(1, "u", 13);
66
- i0.ɵɵlistener("click", function FeatureDetailsComponent_table_0_tr_2_td_5_Template_u_click_1_listener() { i0.ɵɵrestoreView(_r20); const property_r3 = i0.ɵɵnextContext().$implicit; const ctx_r18 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r18.openSecureUrl(property_r3.value)); });
67
- i0.ɵɵtext(2);
68
- i0.ɵɵelementEnd()();
69
- } if (rf & 2) {
70
- const property_r3 = i0.ɵɵnextContext().$implicit;
71
- const ctx_r8 = i0.ɵɵnextContext(2);
72
- i0.ɵɵadvance(1);
73
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(2, _c0));
74
- i0.ɵɵadvance(1);
75
- i0.ɵɵtextInterpolate(ctx_r8.getEmbeddedLinkText(property_r3.value));
76
- } }
77
- function FeatureDetailsComponent_table_0_tr_2_td_6_Template(rf, ctx) { if (rf & 1) {
78
- const _r24 = i0.ɵɵgetCurrentView();
79
- i0.ɵɵelementStart(0, "td")(1, "u", 13);
80
- i0.ɵɵlistener("click", function FeatureDetailsComponent_table_0_tr_2_td_6_Template_u_click_1_listener() { i0.ɵɵrestoreView(_r24); const property_r3 = i0.ɵɵnextContext().$implicit; const ctx_r22 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r22.openSecureUrl(property_r3.value)); });
81
- i0.ɵɵtext(2);
82
- i0.ɵɵpipe(3, "translate");
83
- i0.ɵɵelementEnd();
84
- i0.ɵɵelementStart(4, "button", 9);
85
- i0.ɵɵlistener("click", function FeatureDetailsComponent_table_0_tr_2_td_6_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r24); const property_r3 = i0.ɵɵnextContext().$implicit; const ctx_r25 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r25.copyTextToClipboard(property_r3.value)); });
86
- i0.ɵɵelement(5, "mat-icon", 10);
87
- i0.ɵɵelementEnd()();
88
- } if (rf & 2) {
89
- i0.ɵɵadvance(1);
90
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(4, _c0));
91
- i0.ɵɵadvance(1);
92
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 2, "igo.geo.targetHtmlUrl"));
93
- } }
94
- function FeatureDetailsComponent_table_0_tr_2_td_7_Template(rf, ctx) { if (rf & 1) {
95
- const _r29 = i0.ɵɵgetCurrentView();
96
- i0.ɵɵelementStart(0, "td")(1, "a", 14);
97
- i0.ɵɵlistener("click", function FeatureDetailsComponent_table_0_tr_2_td_7_Template_a_click_1_listener() { i0.ɵɵrestoreView(_r29); const property_r3 = i0.ɵɵnextContext().$implicit; const ctx_r27 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r27.openSecureUrl(property_r3.value)); });
98
- i0.ɵɵelement(2, "img", 15);
99
- i0.ɵɵpipe(3, "async");
100
- i0.ɵɵpipe(4, "secureImage");
101
- i0.ɵɵelementEnd()();
102
- } if (rf & 2) {
103
- const property_r3 = i0.ɵɵnextContext().$implicit;
104
- i0.ɵɵadvance(1);
105
- i0.ɵɵpropertyInterpolate("href", property_r3.value, i0.ɵɵsanitizeUrl);
106
- i0.ɵɵadvance(1);
107
- i0.ɵɵpropertyInterpolate("src", i0.ɵɵpipeBind1(3, 2, i0.ɵɵpipeBind1(4, 4, property_r3.value)), i0.ɵɵsanitizeUrl);
108
- } }
109
- function FeatureDetailsComponent_table_0_tr_2_td_8_Template(rf, ctx) { if (rf & 1) {
110
- i0.ɵɵelement(0, "td", 12);
111
- i0.ɵɵpipe(1, "json");
112
- } if (rf & 2) {
113
- const property_r3 = i0.ɵɵnextContext().$implicit;
114
- i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind1(1, 1, property_r3.value), i0.ɵɵsanitizeHtml);
115
- } }
116
- function FeatureDetailsComponent_table_0_tr_2_Template(rf, ctx) { if (rf & 1) {
117
- i0.ɵɵelementStart(0, "tr");
118
- i0.ɵɵtemplate(1, FeatureDetailsComponent_table_0_tr_2_td_1_Template, 2, 1, "td", 4);
119
- i0.ɵɵtemplate(2, FeatureDetailsComponent_table_0_tr_2_td_2_Template, 6, 5, "td", 4);
120
- i0.ɵɵtemplate(3, FeatureDetailsComponent_table_0_tr_2_td_3_Template, 2, 1, "td", 5);
121
- i0.ɵɵtemplate(4, FeatureDetailsComponent_table_0_tr_2_td_4_Template, 1, 1, "td", 6);
122
- i0.ɵɵtemplate(5, FeatureDetailsComponent_table_0_tr_2_td_5_Template, 3, 3, "td", 4);
123
- i0.ɵɵtemplate(6, FeatureDetailsComponent_table_0_tr_2_td_6_Template, 6, 5, "td", 4);
124
- i0.ɵɵtemplate(7, FeatureDetailsComponent_table_0_tr_2_td_7_Template, 5, 6, "td", 4);
125
- i0.ɵɵtemplate(8, FeatureDetailsComponent_table_0_tr_2_td_8_Template, 2, 3, "td", 6);
126
- i0.ɵɵelementEnd();
127
- } if (rf & 2) {
128
- const property_r3 = ctx.$implicit;
129
- const ctx_r2 = i0.ɵɵnextContext(2);
130
- i0.ɵɵadvance(1);
131
- i0.ɵɵproperty("ngIf", ctx_r2.feature.properties.target === "_blank" && property_r3.key === "url");
132
- i0.ɵɵadvance(1);
133
- i0.ɵɵproperty("ngIf", ctx_r2.feature.properties.target === "_blank" && property_r3.key === "url");
134
- i0.ɵɵadvance(1);
135
- i0.ɵɵproperty("ngIf", ctx_r2.feature.properties.target === undefined);
136
- i0.ɵɵadvance(1);
137
- i0.ɵɵproperty("ngIf", ctx_r2.feature.properties.target === undefined && !ctx_r2.isObject(property_r3.value) && !ctx_r2.isUrl(property_r3.value) && !ctx_r2.isEmbeddedLink(property_r3.value));
138
- i0.ɵɵadvance(1);
139
- i0.ɵɵproperty("ngIf", ctx_r2.feature.properties.target === undefined && ctx_r2.isEmbeddedLink(property_r3.value));
140
- i0.ɵɵadvance(1);
141
- i0.ɵɵproperty("ngIf", ctx_r2.feature.properties.target === undefined && !ctx_r2.isObject(property_r3.value) && (ctx_r2.isDoc(property_r3.value) || ctx_r2.isUrl(property_r3.value)) && !ctx_r2.isImg(property_r3.value));
142
- i0.ɵɵadvance(1);
143
- i0.ɵɵproperty("ngIf", ctx_r2.feature.properties.target === undefined && !ctx_r2.isObject(property_r3.value) && ctx_r2.isUrl(property_r3.value) && ctx_r2.isImg(property_r3.value));
144
- i0.ɵɵadvance(1);
145
- i0.ɵɵproperty("ngIf", ctx_r2.feature.properties.target === undefined && ctx_r2.isObject(property_r3.value));
146
- } }
147
- function FeatureDetailsComponent_table_0_Template(rf, ctx) { if (rf & 1) {
148
- i0.ɵɵelementStart(0, "table", 2)(1, "tbody");
149
- i0.ɵɵtemplate(2, FeatureDetailsComponent_table_0_tr_2_Template, 9, 8, "tr", 3);
150
- i0.ɵɵpipe(3, "keyvalue");
151
- i0.ɵɵelementEnd()();
152
- } if (rf & 2) {
153
- const ctx_r0 = i0.ɵɵnextContext();
154
- i0.ɵɵadvance(2);
155
- i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(3, 1, ctx_r0.filterFeatureProperties(ctx_r0.feature)));
156
- } }
157
- function FeatureDetailsComponent_iframe_1_Template(rf, ctx) { if (rf & 1) {
158
- i0.ɵɵelement(0, "iframe", 16);
159
- } if (rf & 2) {
160
- const ctx_r1 = i0.ɵɵnextContext();
161
- i0.ɵɵproperty("srcdoc", ctx_r1.htmlSanitizer(ctx_r1.feature.properties), i0.ɵɵsanitizeHtml)("src", ctx_r1.urlSanitizer(ctx_r1.feature.properties.url), i0.ɵɵsanitizeResourceUrl);
162
- } }
163
20
  export class FeatureDetailsComponent {
164
21
  http;
165
22
  cdRef;
@@ -409,32 +266,25 @@ export class FeatureDetailsComponent {
409
266
  this.messageService.success('igo.geo.query.link.message');
410
267
  }
411
268
  }
412
- static ɵfac = function FeatureDetailsComponent_Factory(t) { return new (t || FeatureDetailsComponent)(i0.ɵɵdirectiveInject(i1.HttpClient), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i2.DomSanitizer), i0.ɵɵdirectiveInject(i3.NetworkService), i0.ɵɵdirectiveInject(i3.MessageService), i0.ɵɵdirectiveInject(i3.ConfigService)); };
413
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FeatureDetailsComponent, selectors: [["igo-feature-details"]], inputs: { source: "source", map: "map", toolbox: "toolbox", feature: "feature" }, outputs: { routeEvent: "routeEvent", selectFeature: "selectFeature", htmlDisplayEvent: "htmlDisplayEvent" }, decls: 2, vars: 2, consts: [["class", "igo-striped mat-typography", 4, "ngIf"], [3, "srcdoc", "src", 4, "ngIf"], [1, "igo-striped", "mat-typography"], [4, "ngFor", "ngForOf"], [4, "ngIf"], ["id", "keyValue", 4, "ngIf"], [3, "innerHTML", 4, "ngIf"], ["matListItemIcon", "", 3, "svgIcon"], ["target", "_blank", "rel", "noopener noreferrer", 3, "href"], ["mat-icon-button", "", 1, "copyClipboard", 3, "click"], ["svgIcon", "content-copy"], ["id", "keyValue"], [3, "innerHTML"], [3, "ngStyle", "click"], ["target", "_blank", "rel", "noopener noreferrer", 3, "href", "click"], ["igoImageError", "", "width", "225", "height", "auto", 3, "src"], [3, "srcdoc", "src"]], template: function FeatureDetailsComponent_Template(rf, ctx) { if (rf & 1) {
414
- i0.ɵɵtemplate(0, FeatureDetailsComponent_table_0_Template, 4, 3, "table", 0);
415
- i0.ɵɵtemplate(1, FeatureDetailsComponent_iframe_1_Template, 1, 2, "iframe", 1);
416
- } if (rf & 2) {
417
- i0.ɵɵproperty("ngIf", ctx.ready && ctx.feature && ctx.isObject(ctx.feature.properties) && ctx.feature.properties.target !== "iframe");
418
- i0.ɵɵadvance(1);
419
- i0.ɵɵproperty("ngIf", ctx.isHtmlDisplay());
420
- } }, dependencies: [i4.NgForOf, i4.NgIf, i4.NgStyle, i5.MatIcon, i6.ImageErrorDirective, i4.AsyncPipe, i4.JsonPipe, i7.TranslatePipe, i6.KeyValuePipe, i6.SecureImagePipe], styles: ["table[_ngcontent-%COMP%]{width:100%}table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:5px}#keyValue[_ngcontent-%COMP%]{width:30%}table[_ngcontent-%COMP%] .routing{cursor:pointer}iframe[_ngcontent-%COMP%]{height:calc(100% - 4px);width:100%;border:0}.copyClipboard[_ngcontent-%COMP%]{border:none;background:transparent;cursor:pointer}"], changeDetection: 0 });
269
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureDetailsComponent, deps: [{ token: i1.HttpClient }, { token: i0.ChangeDetectorRef }, { token: i2.DomSanitizer }, { token: i3.NetworkService }, { token: i3.MessageService }, { token: i3.ConfigService }], target: i0.ɵɵFactoryTarget.Component });
270
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FeatureDetailsComponent, selector: "igo-feature-details", inputs: { source: "source", map: "map", toolbox: "toolbox", feature: "feature" }, outputs: { routeEvent: "routeEvent", selectFeature: "selectFeature", htmlDisplayEvent: "htmlDisplayEvent" }, ngImport: i0, template: "<table\r\n class=\"igo-striped mat-typography\"\r\n *ngIf=\"\r\n ready &&\r\n feature &&\r\n isObject(feature.properties) &&\r\n feature.properties.target !== 'iframe'\r\n \"\r\n>\r\n <tbody>\r\n <tr *ngFor=\"let property of filterFeatureProperties(feature) | keyvalue\">\r\n <td\r\n *ngIf=\"feature.properties.target === '_blank' && property.key === 'url'\"\r\n >\r\n <mat-icon matListItemIcon svgIcon=\"{{ icon }}\"></mat-icon>\r\n </td>\r\n\r\n <td\r\n *ngIf=\"feature.properties.target === '_blank' && property.key === 'url'\"\r\n >\r\n <a\r\n href=\"{{ property.value }}\"\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n >\r\n {{ 'igo.geo.targetHtmlUrl' | translate }} {{ title }}</a\r\n >\r\n <button\r\n class=\"copyClipboard\"\r\n mat-icon-button\r\n (click)=\"copyTextToClipboard(property.value)\"\r\n >\r\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\r\n </button>\r\n </td>\r\n\r\n <td id=\"keyValue\" *ngIf=\"feature.properties.target === undefined\">\r\n {{ property.key }}\r\n </td>\r\n\r\n <td\r\n *ngIf=\"\r\n feature.properties.target === undefined &&\r\n !isObject(property.value) &&\r\n !isUrl(property.value) &&\r\n !isEmbeddedLink(property.value)\r\n \"\r\n [innerHTML]=\"property.value\"\r\n ></td>\r\n\r\n <td\r\n *ngIf=\"\r\n feature.properties.target === undefined &&\r\n isEmbeddedLink(property.value)\r\n \"\r\n >\r\n <u\r\n [ngStyle]=\"{ cursor: 'pointer', color: 'blue' }\"\r\n (click)=\"openSecureUrl(property.value)\"\r\n >{{ getEmbeddedLinkText(property.value) }}</u\r\n >\r\n </td>\r\n\r\n <td\r\n *ngIf=\"\r\n feature.properties.target === undefined &&\r\n !isObject(property.value) &&\r\n (isDoc(property.value) || isUrl(property.value)) &&\r\n !isImg(property.value)\r\n \"\r\n >\r\n <u\r\n [ngStyle]=\"{ cursor: 'pointer', color: 'blue' }\"\r\n (click)=\"openSecureUrl(property.value)\"\r\n >{{ 'igo.geo.targetHtmlUrl' | translate }}</u\r\n >\r\n <button\r\n class=\"copyClipboard\"\r\n mat-icon-button\r\n (click)=\"copyTextToClipboard(property.value)\"\r\n >\r\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\r\n </button>\r\n </td>\r\n\r\n <td\r\n *ngIf=\"\r\n feature.properties.target === undefined &&\r\n !isObject(property.value) &&\r\n isUrl(property.value) &&\r\n isImg(property.value)\r\n \"\r\n >\r\n <a\r\n href=\"{{ property.value }}\"\r\n target=\"_blank\"\r\n (click)=\"openSecureUrl(property.value)\"\r\n rel=\"noopener noreferrer\"\r\n >\r\n <img\r\n igoImageError\r\n src=\"{{ property.value | secureImage | async }}\"\r\n width=\"225\"\r\n height=\"auto\"\r\n />\r\n </a>\r\n </td>\r\n\r\n <td\r\n *ngIf=\"\r\n feature.properties.target === undefined && isObject(property.value)\r\n \"\r\n [innerHTML]=\"property.value | json\"\r\n ></td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n\r\n<iframe\r\n *ngIf=\"isHtmlDisplay()\"\r\n [srcdoc]=\"htmlSanitizer(feature.properties)\"\r\n [src]=\"urlSanitizer(feature.properties.url)\"\r\n></iframe>\r\n", styles: ["table{width:100%}table td{padding:5px}#keyValue{width:30%}table ::ng-deep .routing{cursor:pointer}iframe{height:calc(100% - 4px);width:100%;border:0}.copyClipboard{border:none;background:transparent;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.ImageErrorDirective, selector: "[igoImageError]", inputs: ["errorImageUrl", "hideError"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.JsonPipe, name: "json" }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }, { kind: "pipe", type: i6.KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: i6.SecureImagePipe, name: "secureImage" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
421
271
  }
422
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FeatureDetailsComponent, [{
423
- type: Component,
424
- args: [{ selector: 'igo-feature-details', changeDetection: ChangeDetectionStrategy.OnPush, template: "<table\r\n class=\"igo-striped mat-typography\"\r\n *ngIf=\"\r\n ready &&\r\n feature &&\r\n isObject(feature.properties) &&\r\n feature.properties.target !== 'iframe'\r\n \"\r\n>\r\n <tbody>\r\n <tr *ngFor=\"let property of filterFeatureProperties(feature) | keyvalue\">\r\n <td\r\n *ngIf=\"feature.properties.target === '_blank' && property.key === 'url'\"\r\n >\r\n <mat-icon matListItemIcon svgIcon=\"{{ icon }}\"></mat-icon>\r\n </td>\r\n\r\n <td\r\n *ngIf=\"feature.properties.target === '_blank' && property.key === 'url'\"\r\n >\r\n <a\r\n href=\"{{ property.value }}\"\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n >\r\n {{ 'igo.geo.targetHtmlUrl' | translate }} {{ title }}</a\r\n >\r\n <button\r\n class=\"copyClipboard\"\r\n mat-icon-button\r\n (click)=\"copyTextToClipboard(property.value)\"\r\n >\r\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\r\n </button>\r\n </td>\r\n\r\n <td id=\"keyValue\" *ngIf=\"feature.properties.target === undefined\">\r\n {{ property.key }}\r\n </td>\r\n\r\n <td\r\n *ngIf=\"\r\n feature.properties.target === undefined &&\r\n !isObject(property.value) &&\r\n !isUrl(property.value) &&\r\n !isEmbeddedLink(property.value)\r\n \"\r\n [innerHTML]=\"property.value\"\r\n ></td>\r\n\r\n <td\r\n *ngIf=\"\r\n feature.properties.target === undefined &&\r\n isEmbeddedLink(property.value)\r\n \"\r\n >\r\n <u\r\n [ngStyle]=\"{ cursor: 'pointer', color: 'blue' }\"\r\n (click)=\"openSecureUrl(property.value)\"\r\n >{{ getEmbeddedLinkText(property.value) }}</u\r\n >\r\n </td>\r\n\r\n <td\r\n *ngIf=\"\r\n feature.properties.target === undefined &&\r\n !isObject(property.value) &&\r\n (isDoc(property.value) || isUrl(property.value)) &&\r\n !isImg(property.value)\r\n \"\r\n >\r\n <u\r\n [ngStyle]=\"{ cursor: 'pointer', color: 'blue' }\"\r\n (click)=\"openSecureUrl(property.value)\"\r\n >{{ 'igo.geo.targetHtmlUrl' | translate }}</u\r\n >\r\n <button\r\n class=\"copyClipboard\"\r\n mat-icon-button\r\n (click)=\"copyTextToClipboard(property.value)\"\r\n >\r\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\r\n </button>\r\n </td>\r\n\r\n <td\r\n *ngIf=\"\r\n feature.properties.target === undefined &&\r\n !isObject(property.value) &&\r\n isUrl(property.value) &&\r\n isImg(property.value)\r\n \"\r\n >\r\n <a\r\n href=\"{{ property.value }}\"\r\n target=\"_blank\"\r\n (click)=\"openSecureUrl(property.value)\"\r\n rel=\"noopener noreferrer\"\r\n >\r\n <img\r\n igoImageError\r\n src=\"{{ property.value | secureImage | async }}\"\r\n width=\"225\"\r\n height=\"auto\"\r\n />\r\n </a>\r\n </td>\r\n\r\n <td\r\n *ngIf=\"\r\n feature.properties.target === undefined && isObject(property.value)\r\n \"\r\n [innerHTML]=\"property.value | json\"\r\n ></td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n\r\n<iframe\r\n *ngIf=\"isHtmlDisplay()\"\r\n [srcdoc]=\"htmlSanitizer(feature.properties)\"\r\n [src]=\"urlSanitizer(feature.properties.url)\"\r\n></iframe>\r\n", styles: ["table{width:100%}table td{padding:5px}#keyValue{width:30%}table ::ng-deep .routing{cursor:pointer}iframe{height:calc(100% - 4px);width:100%;border:0}.copyClipboard{border:none;background:transparent;cursor:pointer}\n"] }]
425
- }], function () { return [{ type: i1.HttpClient }, { type: i0.ChangeDetectorRef }, { type: i2.DomSanitizer }, { type: i3.NetworkService }, { type: i3.MessageService }, { type: i3.ConfigService }]; }, { source: [{
426
- type: Input
427
- }], map: [{
428
- type: Input
429
- }], toolbox: [{
430
- type: Input
431
- }], feature: [{
432
- type: Input
433
- }], routeEvent: [{
434
- type: Output
435
- }], selectFeature: [{
436
- type: Output
437
- }], htmlDisplayEvent: [{
438
- type: Output
439
- }] }); })();
440
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1kZXRhaWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZlYXR1cmUvZmVhdHVyZS1kZXRhaWxzL2ZlYXR1cmUtZGV0YWlscy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9mZWF0dXJlL2ZlYXR1cmUtZGV0YWlscy9mZWF0dXJlLWRldGFpbHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFtQixNQUFNLDJCQUEyQixDQUFDO0FBRTFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTdELE9BQU8sRUFBbUIsY0FBYyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM3RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFeEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7Ozs7OztJQ1o1RCwwQkFFQztJQUNDLDhCQUEwRDtJQUM1RCxpQkFBSzs7O0lBRHVCLGVBQW9CO0lBQXBCLGdEQUFv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Q0FBQyxPQUFPLENBQUMsNEJBQTRCLENBQUMsQ0FBQztTQUMzRDtJQUNILENBQUM7aUZBL1JVLHVCQUF1Qjs2REFBdkIsdUJBQXVCO1lDaENwQyw0RUFvSFE7WUFFUiw4RUFJVTs7WUF4SFAscUlBS0g7WUFnSEcsZUFBcUI7WUFBckIsMENBQXFCOzs7dUZEdkZYLHVCQUF1QjtjQU5uQyxTQUFTOzJCQUNFLHFCQUFxQixtQkFHZCx1QkFBdUIsQ0FBQyxNQUFNOzhNQVEzQyxNQUFNO2tCQURULEtBQUs7WUFTRyxHQUFHO2tCQUFYLEtBQUs7WUFFRyxPQUFPO2tCQUFmLEtBQUs7WUFHRixPQUFPO2tCQURWLEtBQUs7WUFhSSxVQUFVO2tCQUFuQixNQUFNO1lBQ0csYUFBYTtrQkFBdEIsTUFBTTtZQUNHLGdCQUFnQjtrQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVSZXNvdXJjZVVybCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5cclxuaW1wb3J0IHsgZ2V0RW50aXR5SWNvbiwgZ2V0RW50aXR5VGl0bGUgfSBmcm9tICdAaWdvMi9jb21tb24nO1xyXG5pbXBvcnQgdHlwZSB7IFRvb2xib3ggfSBmcm9tICdAaWdvMi9jb21tb24nO1xyXG5pbXBvcnQgeyBDb25uZWN0aW9uU3RhdGUsIE1lc3NhZ2VTZXJ2aWNlLCBOZXR3b3JrU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcbmltcG9ydCB7IENsaXBib2FyZCB9IGZyb20gJ0BpZ28yL3V0aWxzJztcclxuXHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgSWdvTWFwIH0gZnJvbSAnLi4vLi4vbWFwL3NoYXJlZC9tYXAnO1xyXG5pbXBvcnQgeyBTZWFyY2hTb3VyY2UgfSBmcm9tICcuLi8uLi9zZWFyY2gvc2hhcmVkL3NvdXJjZXMvc291cmNlJztcclxuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gJy4uL3NoYXJlZCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lnby1mZWF0dXJlLWRldGFpbHMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mZWF0dXJlLWRldGFpbHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZlYXR1cmUtZGV0YWlscy5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGZWF0dXJlRGV0YWlsc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwcml2YXRlIHN0YXRlOiBDb25uZWN0aW9uU3RhdGU7XHJcbiAgcHJpdmF0ZSB1bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHJlYWR5ID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHNvdXJjZSgpOiBTZWFyY2hTb3VyY2Uge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NvdXJjZTtcclxuICB9XHJcbiAgc2V0IHNvdXJjZSh2YWx1ZTogU2VhcmNoU291cmNlKSB7XHJcbiAgICB0aGlzLl9zb3VyY2UgPSB2YWx1ZTtcclxuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgbWFwOiBJZ29NYXA7XHJcblxyXG4gIEBJbnB1dCgpIHRvb2xib3g6IFRvb2xib3g7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGZlYXR1cmUoKTogRmVhdHVyZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmVhdHVyZTtcclxuICB9XHJcbiAgc2V0IGZlYXR1cmUodmFsdWU6IEZlYXR1cmUpIHtcclxuICAgIHRoaXMuX2ZlYXR1cmUgPSB2YWx1ZTtcclxuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgdGhpcy5zZWxlY3RGZWF0dXJlLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2ZlYXR1cmU6IEZlYXR1cmU7XHJcbiAgcHJpdmF0ZSBfc291cmNlOiBTZWFyY2hTb3VyY2U7XHJcblxyXG4gIEBPdXRwdXQoKSByb3V0ZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIEBPdXRwdXQoKSBzZWxlY3RGZWF0dXJlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIEBPdXRwdXQoKSBodG1sRGlzcGxheUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICAvKipcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBnZXQgdGl0bGUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBnZXRFbnRpdHlUaXRsZSh0aGlzLmZlYXR1cmUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgZ2V0IGljb24oKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBnZXRFbnRpdHlJY29uKHRoaXMuZmVhdHVyZSkgfHwgJ2xpbmsnO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXHJcbiAgICBwcml2YXRlIG5ldHdvcmtTZXJ2aWNlOiBOZXR3b3JrU2VydmljZSxcclxuICAgIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb25maWdTZXJ2aWNlOiBDb25maWdTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLm5ldHdvcmtTZXJ2aWNlXHJcbiAgICAgIC5jdXJyZW50U3RhdGUoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChzdGF0ZTogQ29ubmVjdGlvblN0YXRlKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHN0YXRlO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5yZWFkeSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMudW5zdWJzY3JpYmUkLm5leHQoKTtcclxuICAgIHRoaXMudW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICB1cmxTYW5pdGl6ZXIodmFsdWUpOiBTYWZlUmVzb3VyY2VVcmwge1xyXG4gICAgcmV0dXJuIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybCh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBpc0h0bWxEaXNwbGF5KCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmZlYXR1cmUgJiZcclxuICAgICAgdGhpcy5pc09iamVjdCh0aGlzLmZlYXR1cmUucHJvcGVydGllcykgJiZcclxuICAgICAgdGhpcy5mZWF0dXJlLnByb3BlcnRpZXMudGFyZ2V0ID09PSAnaWZyYW1lJ1xyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuaHRtbERpc3BsYXlFdmVudC5lbWl0KHRydWUpO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaHRtbERpc3BsYXlFdmVudC5lbWl0KGZhbHNlKTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaHRtbFNhbml0aXplcih2YWx1ZSk6IFNhZmVSZXNvdXJjZVVybCB7XHJcbiAgICBpZiAoIXZhbHVlLmJvZHkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcmVnZXhCYXNlID0gLzxiYXNlIGhyZWY9XCJbXFx3OlxcL1xcLl0rXCI+LztcclxuICAgIGlmICghcmVnZXhCYXNlLnRlc3QodmFsdWUuYm9keSkpIHtcclxuICAgICAgY29uc3QgdXJsID0gbmV3IFVSTCh2YWx1ZS51cmwsIHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pO1xyXG4gICAgICB2YWx1ZS5ib2R5ID0gdmFsdWUuYm9keS5yZXBsYWNlKFxyXG4gICAgICAgICc8aGVhZD4nLFxyXG4gICAgICAgIGA8aGVhZD48YmFzZSBocmVmPVwiJHt1cmwub3JpZ2lufVwiPmBcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwodmFsdWUuYm9keSk7XHJcbiAgfVxyXG5cclxuICBpc09iamVjdCh2YWx1ZSkge1xyXG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCc7XHJcbiAgfVxyXG5cclxuICBvcGVuU2VjdXJlVXJsKHZhbHVlKSB7XHJcbiAgICBsZXQgdXJsOiBzdHJpbmc7XHJcbiAgICBjb25zdCByZWdleERlcG90ID0gbmV3IFJlZ0V4cChcclxuICAgICAgdGhpcy5jb25maWdTZXJ2aWNlPy5nZXRDb25maWcoJ2RlcG90LnVybCcpICsgJy4qPyg/PVwifCQpJ1xyXG4gICAgKTtcclxuXHJcbiAgICBpZiAocmVnZXhEZXBvdC50ZXN0KHZhbHVlKSkge1xyXG4gICAgICB1cmwgPSB2YWx1ZS5tYXRjaChyZWdleERlcG90KVswXTtcclxuXHJcbiAgICAgIHRoaXMuaHR0cFxyXG4gICAgICAgIC5nZXQodXJsLCB7XHJcbiAgICAgICAgICByZXNwb25zZVR5cGU6ICdibG9iJ1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgIChkb2NPckltYWdlKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpbGVVcmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGRvY09ySW1hZ2UpO1xyXG4gICAgICAgICAgICB3aW5kb3cub3BlbihmaWxlVXJsLCAnX2JsYW5rJyk7XHJcbiAgICAgICAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIChlcnJvcjogRXJyb3IpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5lcnJvcihcclxuICAgICAgICAgICAgICAnaWdvLmdlby50YXJnZXRIdG1sVXJsVW5hdXRob3JpemVkJyxcclxuICAgICAgICAgICAgICAnaWdvLmdlby50YXJnZXRIdG1sVXJsVW5hdXRob3JpemVkVGl0bGUnXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCB1cmwgPSB2YWx1ZTtcclxuICAgICAgaWYgKHRoaXMuaXNFbWJlZGRlZExpbmsodmFsdWUpKSB7XHJcbiAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgICAgIGRpdi5pbm5lckhUTUwgPSB2YWx1ZTtcclxuICAgICAgICB1cmwgPSBkaXYuY2hpbGRyZW5bMF0uZ2V0QXR0cmlidXRlKCdocmVmJyk7XHJcbiAgICAgIH1cclxuICAgICAgd2luZG93Lm9wZW4odXJsLCAnX2JsYW5rJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc1VybCh2YWx1ZSkge1xyXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgY29uc3QgcmVnZXggPSAvXmh0dHBzPzpcXC9cXC8vO1xyXG4gICAgICByZXR1cm4gcmVnZXgudGVzdCh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc0RvYyh2YWx1ZSkge1xyXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgaWYgKHRoaXMuaXNVcmwodmFsdWUpKSB7XHJcbiAgICAgICAgY29uc3QgcmVnZXggPSAvKHBkZnxkb2N4P3x4bHN4PykkLztcclxuICAgICAgICByZXR1cm4gcmVnZXgudGVzdCh2YWx1ZS50b0xvd2VyQ2FzZSgpKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlzSW1nKHZhbHVlKSB7XHJcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xyXG4gICAgICBpZiAodGhpcy5pc1VybCh2YWx1ZSkpIHtcclxuICAgICAgICBjb25zdCByZWdleCA9IC8oanBlP2d8cG5nfGdpZikkLztcclxuICAgICAgICByZXR1cm4gcmVnZXgudGVzdCh2YWx1ZS50b0xvd2VyQ2FzZSgpKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlzRW1iZWRkZWRMaW5rKHZhbHVlKSB7XHJcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xyXG4gICAgICBjb25zdCBtYXRjaFJlZ2V4ID0gLzxhL2c7XHJcbiAgICAgIGNvbnN0IG1hdGNoID0gdmFsdWUubWF0Y2gobWF0Y2hSZWdleCkgfHwgW107XHJcbiAgICAgIGNvbnN0IGNvdW50ID0gbWF0Y2gubGVuZ3RoO1xyXG4gICAgICBpZiAoY291bnQgPT09IDEpIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGdldEVtYmVkZGVkTGlua1RleHQodmFsdWUpIHtcclxuICAgIGNvbnN0IHJlZ2V4ID0gLyg/Oj4pLio/KD89PHwkKS87XHJcbiAgICBsZXQgdGV4dCA9IHZhbHVlLm1hdGNoKHJlZ2V4KVswXSBhcyBzdHJpbmc7XHJcbiAgICB0ZXh0ID0gdGV4dC5yZXBsYWNlKC8+L2csICcnKTtcclxuICAgIHJldHVybiB0ZXh0O1xyXG4gIH1cclxuXHJcbiAgZmlsdGVyRmVhdHVyZVByb3BlcnRpZXMoZmVhdHVyZSkge1xyXG4gICAgY29uc3QgYWxsb3dlZEZpZWxkc0FuZEFsaWFzID0gZmVhdHVyZS5tZXRhID8gZmVhdHVyZS5tZXRhLmFsaWFzIDogdW5kZWZpbmVkO1xyXG4gICAgY29uc3QgcHJvcGVydGllcyA9IHt9O1xyXG4gICAgbGV0IG9mZmxpbmVCdXR0b25TdGF0ZTtcclxuXHJcbiAgICBpZiAodGhpcy5tYXApIHtcclxuICAgICAgdGhpcy5tYXAuZm9yY2VkT2ZmbGluZSRcclxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHN0YXRlKSA9PiB7XHJcbiAgICAgICAgICBvZmZsaW5lQnV0dG9uU3RhdGUgPSBzdGF0ZTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIGZlYXR1cmUucHJvcGVydGllcyAmJlxyXG4gICAgICBmZWF0dXJlLnByb3BlcnRpZXMuUm91dGUgJiZcclxuICAgICAgdGhpcy50b29sYm94ICYmXHJcbiAgICAgICF0aGlzLnRvb2xib3guZ2V0VG9vbCgnZGlyZWN0aW9ucycpXHJcbiAgICApIHtcclxuICAgICAgZGVsZXRlIGZlYXR1cmUucHJvcGVydGllcy5Sb3V0ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoYWxsb3dlZEZpZWxkc0FuZEFsaWFzKSB7XHJcbiAgICAgIE9iamVjdC5rZXlzKGFsbG93ZWRGaWVsZHNBbmRBbGlhcykuZm9yRWFjaCgoZmllbGQpID0+IHtcclxuICAgICAgICBwcm9wZXJ0aWVzW2FsbG93ZWRGaWVsZHNBbmRBbGlhc1tmaWVsZF1dID0gZmVhdHVyZS5wcm9wZXJ0aWVzW2ZpZWxkXTtcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiBwcm9wZXJ0aWVzO1xyXG4gICAgfSBlbHNlIGlmIChvZmZsaW5lQnV0dG9uU3RhdGUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBpZiAoIW9mZmxpbmVCdXR0b25TdGF0ZSkge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIHRoaXMuc3RhdGUuY29ubmVjdGlvbiAmJlxyXG4gICAgICAgICAgZmVhdHVyZS5tZXRhICYmXHJcbiAgICAgICAgICBmZWF0dXJlLm1ldGEuZXhjbHVkZUF0dHJpYnV0ZVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgY29uc3QgZXhjbHVkZUF0dHJpYnV0ZSA9IGZlYXR1cmUubWV0YS5leGNsdWRlQXR0cmlidXRlO1xyXG4gICAgICAgICAgZXhjbHVkZUF0dHJpYnV0ZS5mb3JFYWNoKChhdHRyaWJ1dGUpID0+IHtcclxuICAgICAgICAgICAgZGVsZXRlIGZlYXR1cmUucHJvcGVydGllc1thdHRyaWJ1dGVdO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICAgICF0aGlzLnN0YXRlLmNvbm5lY3Rpb24gJiZcclxuICAgICAgICAgIGZlYXR1cmUubWV0YSAmJlxyXG4gICAgICAgICAgZmVhdHVyZS5tZXRhLmV4Y2x1ZGVBdHRyaWJ1dGVPZmZsaW5lXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBjb25zdCBleGNsdWRlQXR0cmlidXRlT2ZmbGluZSA9IGZlYXR1cmUubWV0YS5leGNsdWRlQXR0cmlidXRlT2ZmbGluZTtcclxuICAgICAgICAgIGV4Y2x1ZGVBdHRyaWJ1dGVPZmZsaW5lLmZvckVhY2goKGF0dHJpYnV0ZSkgPT4ge1xyXG4gICAgICAgICAgICBkZWxldGUgZmVhdHVyZS5wcm9wZXJ0aWVzW2F0dHJpYnV0ZV07XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKGZlYXR1cmUubWV0YSAmJiBmZWF0dXJlLm1ldGEuZXhjbHVkZUF0dHJpYnV0ZU9mZmxpbmUpIHtcclxuICAgICAgICAgIGNvbnN0IGV4Y2x1ZGVBdHRyaWJ1dGVPZmZsaW5lID0gZmVhdHVyZS5tZXRhLmV4Y2x1ZGVBdHRyaWJ1dGVPZmZsaW5lO1xyXG4gICAgICAgICAgZXhjbHVkZUF0dHJpYnV0ZU9mZmxpbmUuZm9yRWFjaCgoYXR0cmlidXRlKSA9PiB7XHJcbiAgICAgICAgICAgIGRlbGV0ZSBmZWF0dXJlLnByb3BlcnRpZXNbYXR0cmlidXRlXTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRoaXMuc3RhdGUuY29ubmVjdGlvbiAmJlxyXG4gICAgICAgIGZlYXR1cmUubWV0YSAmJlxyXG4gICAgICAgIGZlYXR1cmUubWV0YS5leGNsdWRlQXR0cmlidXRlXHJcbiAgICAgICkge1xyXG4gICAgICAgIGNvbnN0IGV4Y2x1ZGVBdHRyaWJ1dGUgPSBmZWF0dXJlLm1ldGEuZXhjbHVkZUF0dHJpYnV0ZTtcclxuICAgICAgICBleGNsdWRlQXR0cmlidXRlLmZvckVhY2goKGF0dHJpYnV0ZSkgPT4ge1xyXG4gICAgICAgICAgZGVsZXRlIGZlYXR1cmUucHJvcGVydGllc1thdHRyaWJ1dGVdO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAgICF0aGlzLnN0YXRlLmNvbm5lY3Rpb24gJiZcclxuICAgICAgICBmZWF0dXJlLm1ldGEgJiZcclxuICAgICAgICBmZWF0dXJlLm1ldGEuZXhjbHVkZUF0dHJpYnV0ZU9mZmxpbmVcclxuICAgICAgKSB7XHJcbiAgICAgICAgY29uc3QgZXhjbHVkZUF0dHJpYnV0ZU9mZmxpbmUgPSBmZWF0dXJlLm1ldGEuZXhjbHVkZUF0dHJpYnV0ZU9mZmxpbmU7XHJcbiAgICAgICAgZXhjbHVkZUF0dHJpYnV0ZU9mZmxpbmUuZm9yRWFjaCgoYXR0cmlidXRlKSA9PiB7XHJcbiAgICAgICAgICBkZWxldGUgZmVhdHVyZS5wcm9wZXJ0aWVzW2F0dHJpYnV0ZV07XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmZWF0dXJlLnByb3BlcnRpZXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb3B5IHRoZSB1cmwgdG8gYSBjbGlwYm9hcmRcclxuICAgKi9cclxuICBjb3B5VGV4dFRvQ2xpcGJvYXJkKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IHN1Y2Nlc3NmdWwgPSBDbGlwYm9hcmQuY29weSh2YWx1ZSk7XHJcbiAgICBpZiAoc3VjY2Vzc2Z1bCkge1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnN1Y2Nlc3MoJ2lnby5nZW8ucXVlcnkubGluay5tZXNzYWdlJyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjx0YWJsZVxyXG4gIGNsYXNzPVwiaWdvLXN0cmlwZWQgbWF0LXR5cG9ncmFwaHlcIlxyXG4gICpuZ0lmPVwiXHJcbiAgICByZWFkeSAmJlxyXG4gICAgZmVhdHVyZSAmJlxyXG4gICAgaXNPYmplY3QoZmVhdHVyZS5wcm9wZXJ0aWVzKSAmJlxyXG4gICAgZmVhdHVyZS5wcm9wZXJ0aWVzLnRhcmdldCAhPT0gJ2lmcmFtZSdcclxuICBcIlxyXG4+XHJcbiAgPHRib2R5PlxyXG4gICAgPHRyICpuZ0Zvcj1cImxldCBwcm9wZXJ0eSBvZiBmaWx0ZXJGZWF0dXJlUHJvcGVydGllcyhmZWF0dXJlKSB8IGtleXZhbHVlXCI+XHJcbiAgICAgIDx0ZFxyXG4gICAgICAgICpuZ0lmPVwiZmVhdHVyZS5wcm9wZXJ0aWVzLnRhcmdldCA9PT0gJ19ibGFuaycgJiYgcHJvcGVydHkua2V5ID09PSAndXJsJ1wiXHJcbiAgICAgID5cclxuICAgICAgICA8bWF0LWljb24gbWF0TGlzdEl0ZW1JY29uIHN2Z0ljb249XCJ7eyBpY29uIH19XCI+PC9tYXQtaWNvbj5cclxuICAgICAgPC90ZD5cclxuXHJcbiAgICAgIDx0ZFxyXG4gICAgICAgICpuZ0lmPVwiZmVhdHVyZS5wcm9wZXJ0aWVzLnRhcmdldCA9PT0gJ19ibGFuaycgJiYgcHJvcGVydHkua2V5ID09PSAndXJsJ1wiXHJcbiAgICAgID5cclxuICAgICAgICA8YVxyXG4gICAgICAgICAgaHJlZj1cInt7IHByb3BlcnR5LnZhbHVlIH19XCJcclxuICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXHJcbiAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICB7eyAnaWdvLmdlby50YXJnZXRIdG1sVXJsJyB8IHRyYW5zbGF0ZSB9fSB7eyB0aXRsZSB9fTwvYVxyXG4gICAgICAgID5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICBjbGFzcz1cImNvcHlDbGlwYm9hcmRcIlxyXG4gICAgICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgICAgICAoY2xpY2spPVwiY29weVRleHRUb0NsaXBib2FyZChwcm9wZXJ0eS52YWx1ZSlcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiY29udGVudC1jb3B5XCI+PC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC90ZD5cclxuXHJcbiAgICAgIDx0ZCBpZD1cImtleVZhbHVlXCIgKm5nSWY9XCJmZWF0dXJlLnByb3BlcnRpZXMudGFyZ2V0ID09PSB1bmRlZmluZWRcIj5cclxuICAgICAgICB7eyBwcm9wZXJ0eS5rZXkgfX1cclxuICAgICAgPC90ZD5cclxuXHJcbiAgICAgIDx0ZFxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICBmZWF0dXJlLnByb3BlcnRpZXMudGFyZ2V0ID09PSB1bmRlZmluZWQgJiZcclxuICAgICAgICAgICFpc09iamVjdChwcm9wZXJ0eS52YWx1ZSkgJiZcclxuICAgICAgICAgICFpc1VybChwcm9wZXJ0eS52YWx1ZSkgJiZcclxuICAgICAgICAgICFpc0VtYmVkZGVkTGluayhwcm9wZXJ0eS52YWx1ZSlcclxuICAgICAgICBcIlxyXG4gICAgICAgIFtpbm5lckhUTUxdPVwicHJvcGVydHkudmFsdWVcIlxyXG4gICAgICA+PC90ZD5cclxuXHJcbiAgICAgIDx0ZFxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICBmZWF0dXJlLnByb3BlcnRpZXMudGFyZ2V0ID09PSB1bmRlZmluZWQgJiZcclxuICAgICAgICAgIGlzRW1iZWRkZWRMaW5rKHByb3BlcnR5LnZhbHVlKVxyXG4gICAgICAgIFwiXHJcbiAgICAgID5cclxuICAgICAgICA8dVxyXG4gICAgICAgICAgW25nU3R5bGVdPVwieyBjdXJzb3I6ICdwb2ludGVyJywgY29sb3I6ICdibHVlJyB9XCJcclxuICAgICAgICAgIChjbGljayk9XCJvcGVuU2VjdXJlVXJsKHByb3BlcnR5LnZhbHVlKVwiXHJcbiAgICAgICAgICA+e3sgZ2V0RW1iZWRkZWRMaW5rVGV4dChwcm9wZXJ0eS52YWx1ZSkgfX08L3VcclxuICAgICAgICA+XHJcbiAgICAgIDwvdGQ+XHJcblxyXG4gICAgICA8dGRcclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgZmVhdHVyZS5wcm9wZXJ0aWVzLnRhcmdldCA9PT0gdW5kZWZpbmVkICYmXHJcbiAgICAgICAgICAhaXNPYmplY3QocHJvcGVydHkudmFsdWUpICYmXHJcbiAgICAgICAgICAoaXNEb2MocHJvcGVydHkudmFsdWUpIHx8IGlzVXJsKHByb3BlcnR5LnZhbHVlKSkgJiZcclxuICAgICAgICAgICFpc0ltZyhwcm9wZXJ0eS52YWx1ZSlcclxuICAgICAgICBcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPHVcclxuICAgICAgICAgIFtuZ1N0eWxlXT1cInsgY3Vyc29yOiAncG9pbnRlcicsIGNvbG9yOiAnYmx1ZScgfVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwib3BlblNlY3VyZVVybChwcm9wZXJ0eS52YWx1ZSlcIlxyXG4gICAgICAgICAgPnt7ICdpZ28uZ2VvLnRhcmdldEh0bWxVcmwnIHwgdHJhbnNsYXRlIH19PC91XHJcbiAgICAgICAgPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgIGNsYXNzPVwiY29weUNsaXBib2FyZFwiXHJcbiAgICAgICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgICAgIChjbGljayk9XCJjb3B5VGV4dFRvQ2xpcGJvYXJkKHByb3BlcnR5LnZhbHVlKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJjb250ZW50LWNvcHlcIj48L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L3RkPlxyXG5cclxuICAgICAgPHRkXHJcbiAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgIGZlYXR1cmUucHJvcGVydGllcy50YXJnZXQgPT09IHVuZGVmaW5lZCAmJlxyXG4gICAgICAgICAgIWlzT2JqZWN0KHByb3BlcnR5LnZhbHVlKSAmJlxyXG4gICAgICAgICAgaXNVcmwocHJvcGVydHkudmFsdWUpICYmXHJcbiAgICAgICAgICBpc0ltZyhwcm9wZXJ0eS52YWx1ZSlcclxuICAgICAgICBcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGFcclxuICAgICAgICAgIGhyZWY9XCJ7eyBwcm9wZXJ0eS52YWx1ZSB9fVwiXHJcbiAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm9wZW5TZWN1cmVVcmwocHJvcGVydHkudmFsdWUpXCJcclxuICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgaWdvSW1hZ2VFcnJvclxyXG4gICAgICAgICAgICBzcmM9XCJ7eyBwcm9wZXJ0eS52YWx1ZSB8IHNlY3VyZUltYWdlIHwgYXN5bmMgfX1cIlxyXG4gICAgICAgICAgICB3aWR0aD1cIjIyNVwiXHJcbiAgICAgICAgICAgIGhlaWdodD1cImF1dG9cIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2E+XHJcbiAgICAgIDwvdGQ+XHJcblxyXG4gICAgICA8dGRcclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgZmVhdHVyZS5wcm9wZXJ0aWVzLnRhcmdldCA9PT0gdW5kZWZpbmVkICYmIGlzT2JqZWN0KHByb3BlcnR5LnZhbHVlKVxyXG4gICAgICAgIFwiXHJcbiAgICAgICAgW2lubmVySFRNTF09XCJwcm9wZXJ0eS52YWx1ZSB8IGpzb25cIlxyXG4gICAgICA+PC90ZD5cclxuICAgIDwvdHI+XHJcbiAgPC90Ym9keT5cclxuPC90YWJsZT5cclxuXHJcbjxpZnJhbWVcclxuICAqbmdJZj1cImlzSHRtbERpc3BsYXkoKVwiXHJcbiAgW3NyY2RvY109XCJodG1sU2FuaXRpemVyKGZlYXR1cmUucHJvcGVydGllcylcIlxyXG4gIFtzcmNdPVwidXJsU2FuaXRpemVyKGZlYXR1cmUucHJvcGVydGllcy51cmwpXCJcclxuPjwvaWZyYW1lPlxyXG4iXX0=
272
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureDetailsComponent, decorators: [{
273
+ type: Component,
274
+ args: [{ selector: 'igo-feature-details', changeDetection: ChangeDetectionStrategy.OnPush, template: "<table\r\n class=\"igo-striped mat-typography\"\r\n *ngIf=\"\r\n ready &&\r\n feature &&\r\n isObject(feature.properties) &&\r\n feature.properties.target !== 'iframe'\r\n \"\r\n>\r\n <tbody>\r\n <tr *ngFor=\"let property of filterFeatureProperties(feature) | keyvalue\">\r\n <td\r\n *ngIf=\"feature.properties.target === '_blank' && property.key === 'url'\"\r\n >\r\n <mat-icon matListItemIcon svgIcon=\"{{ icon }}\"></mat-icon>\r\n </td>\r\n\r\n <td\r\n *ngIf=\"feature.properties.target === '_blank' && property.key === 'url'\"\r\n >\r\n <a\r\n href=\"{{ property.value }}\"\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n >\r\n {{ 'igo.geo.targetHtmlUrl' | translate }} {{ title }}</a\r\n >\r\n <button\r\n class=\"copyClipboard\"\r\n mat-icon-button\r\n (click)=\"copyTextToClipboard(property.value)\"\r\n >\r\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\r\n </button>\r\n </td>\r\n\r\n <td id=\"keyValue\" *ngIf=\"feature.properties.target === undefined\">\r\n {{ property.key }}\r\n </td>\r\n\r\n <td\r\n *ngIf=\"\r\n feature.properties.target === undefined &&\r\n !isObject(property.value) &&\r\n !isUrl(property.value) &&\r\n !isEmbeddedLink(property.value)\r\n \"\r\n [innerHTML]=\"property.value\"\r\n ></td>\r\n\r\n <td\r\n *ngIf=\"\r\n feature.properties.target === undefined &&\r\n isEmbeddedLink(property.value)\r\n \"\r\n >\r\n <u\r\n [ngStyle]=\"{ cursor: 'pointer', color: 'blue' }\"\r\n (click)=\"openSecureUrl(property.value)\"\r\n >{{ getEmbeddedLinkText(property.value) }}</u\r\n >\r\n </td>\r\n\r\n <td\r\n *ngIf=\"\r\n feature.properties.target === undefined &&\r\n !isObject(property.value) &&\r\n (isDoc(property.value) || isUrl(property.value)) &&\r\n !isImg(property.value)\r\n \"\r\n >\r\n <u\r\n [ngStyle]=\"{ cursor: 'pointer', color: 'blue' }\"\r\n (click)=\"openSecureUrl(property.value)\"\r\n >{{ 'igo.geo.targetHtmlUrl' | translate }}</u\r\n >\r\n <button\r\n class=\"copyClipboard\"\r\n mat-icon-button\r\n (click)=\"copyTextToClipboard(property.value)\"\r\n >\r\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\r\n </button>\r\n </td>\r\n\r\n <td\r\n *ngIf=\"\r\n feature.properties.target === undefined &&\r\n !isObject(property.value) &&\r\n isUrl(property.value) &&\r\n isImg(property.value)\r\n \"\r\n >\r\n <a\r\n href=\"{{ property.value }}\"\r\n target=\"_blank\"\r\n (click)=\"openSecureUrl(property.value)\"\r\n rel=\"noopener noreferrer\"\r\n >\r\n <img\r\n igoImageError\r\n src=\"{{ property.value | secureImage | async }}\"\r\n width=\"225\"\r\n height=\"auto\"\r\n />\r\n </a>\r\n </td>\r\n\r\n <td\r\n *ngIf=\"\r\n feature.properties.target === undefined && isObject(property.value)\r\n \"\r\n [innerHTML]=\"property.value | json\"\r\n ></td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n\r\n<iframe\r\n *ngIf=\"isHtmlDisplay()\"\r\n [srcdoc]=\"htmlSanitizer(feature.properties)\"\r\n [src]=\"urlSanitizer(feature.properties.url)\"\r\n></iframe>\r\n", styles: ["table{width:100%}table td{padding:5px}#keyValue{width:30%}table ::ng-deep .routing{cursor:pointer}iframe{height:calc(100% - 4px);width:100%;border:0}.copyClipboard{border:none;background:transparent;cursor:pointer}\n"] }]
275
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i0.ChangeDetectorRef }, { type: i2.DomSanitizer }, { type: i3.NetworkService }, { type: i3.MessageService }, { type: i3.ConfigService }]; }, propDecorators: { source: [{
276
+ type: Input
277
+ }], map: [{
278
+ type: Input
279
+ }], toolbox: [{
280
+ type: Input
281
+ }], feature: [{
282
+ type: Input
283
+ }], routeEvent: [{
284
+ type: Output
285
+ }], selectFeature: [{
286
+ type: Output
287
+ }], htmlDisplayEvent: [{
288
+ type: Output
289
+ }] } });
290
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1kZXRhaWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZlYXR1cmUvZmVhdHVyZS1kZXRhaWxzL2ZlYXR1cmUtZGV0YWlscy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9mZWF0dXJlL2ZlYXR1cmUtZGV0YWlscy9mZWF0dXJlLWRldGFpbHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFtQixNQUFNLDJCQUEyQixDQUFDO0FBRTFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTdELE9BQU8sRUFBbUIsY0FBYyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM3RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFeEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7Ozs7O0FBU2xFLE1BQU0sT0FBTyx1QkFBdUI7SUFrRHhCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQXRERixL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dCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVSZXNvdXJjZVVybCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5cclxuaW1wb3J0IHsgZ2V0RW50aXR5SWNvbiwgZ2V0RW50aXR5VGl0bGUgfSBmcm9tICdAaWdvMi9jb21tb24nO1xyXG5pbXBvcnQgdHlwZSB7IFRvb2xib3ggfSBmcm9tICdAaWdvMi9jb21tb24nO1xyXG5pbXBvcnQgeyBDb25uZWN0aW9uU3RhdGUsIE1lc3NhZ2VTZXJ2aWNlLCBOZXR3b3JrU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcbmltcG9ydCB7IENsaXBib2FyZCB9IGZyb20gJ0BpZ28yL3V0aWxzJztcclxuXHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgSWdvTWFwIH0gZnJvbSAnLi4vLi4vbWFwL3NoYXJlZC9tYXAnO1xyXG5pbXBvcnQgeyBTZWFyY2hTb3VyY2UgfSBmcm9tICcuLi8uLi9zZWFyY2gvc2hhcmVkL3NvdXJjZXMvc291cmNlJztcclxuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gJy4uL3NoYXJlZCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lnby1mZWF0dXJlLWRldGFpbHMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mZWF0dXJlLWRldGFpbHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZlYXR1cmUtZGV0YWlscy5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGZWF0dXJlRGV0YWlsc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwcml2YXRlIHN0YXRlOiBDb25uZWN0aW9uU3RhdGU7XHJcbiAgcHJpdmF0ZSB1bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHJlYWR5ID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHNvdXJjZSgpOiBTZWFyY2hTb3VyY2Uge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NvdXJjZTtcclxuICB9XHJcbiAgc2V0IHNvdXJjZSh2YWx1ZTogU2VhcmNoU291cmNlKSB7XHJcbiAgICB0aGlzLl9zb3VyY2UgPSB2YWx1ZTtcclxuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgbWFwOiBJZ29NYXA7XHJcblxyXG4gIEBJbnB1dCgpIHRvb2xib3g6IFRvb2xib3g7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGZlYXR1cmUoKTogRmVhdHVyZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmVhdHVyZTtcclxuICB9XHJcbiAgc2V0IGZlYXR1cmUodmFsdWU6IEZlYXR1cmUpIHtcclxuICAgIHRoaXMuX2ZlYXR1cmUgPSB2YWx1ZTtcclxuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgdGhpcy5zZWxlY3RGZWF0dXJlLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2ZlYXR1cmU6IEZlYXR1cmU7XHJcbiAgcHJpdmF0ZSBfc291cmNlOiBTZWFyY2hTb3VyY2U7XHJcblxyXG4gIEBPdXRwdXQoKSByb3V0ZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIEBPdXRwdXQoKSBzZWxlY3RGZWF0dXJlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIEBPdXRwdXQoKSBodG1sRGlzcGxheUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICAvKipcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBnZXQgdGl0bGUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBnZXRFbnRpdHlUaXRsZSh0aGlzLmZlYXR1cmUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgZ2V0IGljb24oKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBnZXRFbnRpdHlJY29uKHRoaXMuZmVhdHVyZSkgfHwgJ2xpbmsnO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXHJcbiAgICBwcml2YXRlIG5ldHdvcmtTZXJ2aWNlOiBOZXR3b3JrU2VydmljZSxcclxuICAgIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb25maWdTZXJ2aWNlOiBDb25maWdTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLm5ldHdvcmtTZXJ2aWNlXHJcbiAgICAgIC5jdXJyZW50U3RhdGUoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChzdGF0ZTogQ29ubmVjdGlvblN0YXRlKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHN0YXRlO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5yZWFkeSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMudW5zdWJzY3JpYmUkLm5leHQoKTtcclxuICAgIHRoaXMudW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICB1cmxTYW5pdGl6ZXIodmFsdWUpOiBTYWZlUmVzb3VyY2VVcmwge1xyXG4gICAgcmV0dXJuIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybCh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBpc0h0bWxEaXNwbGF5KCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmZlYXR1cmUgJiZcclxuICAgICAgdGhpcy5pc09iamVjdCh0aGlzLmZlYXR1cmUucHJvcGVydGllcykgJiZcclxuICAgICAgdGhpcy5mZWF0dXJlLnByb3BlcnRpZXMudGFyZ2V0ID09PSAnaWZyYW1lJ1xyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuaHRtbERpc3BsYXlFdmVudC5lbWl0KHRydWUpO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaHRtbERpc3BsYXlFdmVudC5lbWl0KGZhbHNlKTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaHRtbFNhbml0aXplcih2YWx1ZSk6IFNhZmVSZXNvdXJjZVVybCB7XHJcbiAgICBpZiAoIXZhbHVlLmJvZHkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcmVnZXhCYXNlID0gLzxiYXNlIGhyZWY9XCJbXFx3OlxcL1xcLl0rXCI+LztcclxuICAgIGlmICghcmVnZXhCYXNlLnRlc3QodmFsdWUuYm9keSkpIHtcclxuICAgICAgY29uc3QgdXJsID0gbmV3IFVSTCh2YWx1ZS51cmwsIHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pO1xyXG4gICAgICB2YWx1ZS5ib2R5ID0gdmFsdWUuYm9keS5yZXBsYWNlKFxyXG4gICAgICAgICc8aGVhZD4nLFxyXG4gICAgICAgIGA8aGVhZD48YmFzZSBocmVmPVwiJHt1cmwub3JpZ2lufVwiPmBcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwodmFsdWUuYm9keSk7XHJcbiAgfVxyXG5cclxuICBpc09iamVjdCh2YWx1ZSkge1xyXG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCc7XHJcbiAgfVxyXG5cclxuICBvcGVuU2VjdXJlVXJsKHZhbHVlKSB7XHJcbiAgICBsZXQgdXJsOiBzdHJpbmc7XHJcbiAgICBjb25zdCByZWdleERlcG90ID0gbmV3IFJlZ0V4cChcclxuICAgICAgdGhpcy5jb25maWdTZXJ2aWNlPy5nZXRDb25maWcoJ2RlcG90LnVybCcpICsgJy4qPyg/PVwifCQpJ1xyXG4gICAgKTtcclxuXHJcbiAgICBpZiAocmVnZXhEZXBvdC50ZXN0KHZhbHVlKSkge1xyXG4gICAgICB1cmwgPSB2YWx1ZS5tYXRjaChyZWdleERlcG90KVswXTtcclxuXHJcbiAgICAgIHRoaXMuaHR0cFxyXG4gICAgICAgIC5nZXQodXJsLCB7XHJcbiAgICAgICAgICByZXNwb25zZVR5cGU6ICdibG9iJ1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgIChkb2NPckltYWdlKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpbGVVcmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGRvY09ySW1hZ2UpO1xyXG4gICAgICAgICAgICB3aW5kb3cub3BlbihmaWxlVXJsLCAnX2JsYW5rJyk7XHJcbiAgICAgICAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIChlcnJvcjogRXJyb3IpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5lcnJvcihcclxuICAgICAgICAgICAgICAnaWdvLmdlby50YXJnZXRIdG1sVXJsVW5hdXRob3JpemVkJyxcclxuICAgICAgICAgICAgICAnaWdvLmdlby50YXJnZXRIdG1sVXJsVW5hdXRob3JpemVkVGl0bGUnXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCB1cmwgPSB2YWx1ZTtcclxuICAgICAgaWYgKHRoaXMuaXNFbWJlZGRlZExpbmsodmFsdWUpKSB7XHJcbiAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgICAgIGRpdi5pbm5lckhUTUwgPSB2YWx1ZTtcclxuICAgICAgICB1cmwgPSBkaXYuY2hpbGRyZW5bMF0uZ2V0QXR0cmlidXRlKCdocmVmJyk7XHJcbiAgICAgIH1cclxuICAgICAgd2luZG93Lm9wZW4odXJsLCAnX2JsYW5rJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc1VybCh2YWx1ZSkge1xyXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgY29uc3QgcmVnZXggPSAvXmh0dHBzPzpcXC9cXC8vO1xyXG4gICAgICByZXR1cm4gcmVnZXgudGVzdCh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc0RvYyh2YWx1ZSkge1xyXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgaWYgKHRoaXMuaXNVcmwodmFsdWUpKSB7XHJcbiAgICAgICAgY29uc3QgcmVnZXggPSAvKHBkZnxkb2N4P3x4bHN4PykkLztcclxuICAgICAgICByZXR1cm4gcmVnZXgudGVzdCh2YWx1ZS50b0xvd2VyQ2FzZSgpKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlzSW1nKHZhbHVlKSB7XHJcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xyXG4gICAgICBpZiAodGhpcy5pc1VybCh2YWx1ZSkpIHtcclxuICAgICAgICBjb25zdCByZWdleCA9IC8oanBlP2d8cG5nfGdpZikkLztcclxuICAgICAgICByZXR1cm4gcmVnZXgudGVzdCh2YWx1ZS50b0xvd2VyQ2FzZSgpKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlzRW1iZWRkZWRMaW5rKHZhbHVlKSB7XHJcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xyXG4gICAgICBjb25zdCBtYXRjaFJlZ2V4ID0gLzxhL2c7XHJcbiAgICAgIGNvbnN0IG1hdGNoID0gdmFsdWUubWF0Y2gobWF0Y2hSZWdleCkgfHwgW107XHJcbiAgICAgIGNvbnN0IGNvdW50ID0gbWF0Y2gubGVuZ3RoO1xyXG4gICAgICBpZiAoY291bnQgPT09IDEpIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGdldEVtYmVkZGVkTGlua1RleHQodmFsdWUpIHtcclxuICAgIGNvbnN0IHJlZ2V4ID0gLyg/Oj4pLio/KD89PHwkKS87XHJcbiAgICBsZXQgdGV4dCA9IHZhbHVlLm1hdGNoKHJlZ2V4KVswXSBhcyBzdHJpbmc7XHJcbiAgICB0ZXh0ID0gdGV4dC5yZXBsYWNlKC8+L2csICcnKTtcclxuICAgIHJldHVybiB0ZXh0O1xyXG4gIH1cclxuXHJcbiAgZmlsdGVyRmVhdHVyZVByb3BlcnRpZXMoZmVhdHVyZSkge1xyXG4gICAgY29uc3QgYWxsb3dlZEZpZWxkc0FuZEFsaWFzID0gZmVhdHVyZS5tZXRhID8gZmVhdHVyZS5tZXRhLmFsaWFzIDogdW5kZWZpbmVkO1xyXG4gICAgY29uc3QgcHJvcGVydGllcyA9IHt9O1xyXG4gICAgbGV0IG9mZmxpbmVCdXR0b25TdGF0ZTtcclxuXHJcbiAgICBpZiAodGhpcy5tYXApIHtcclxuICAgICAgdGhpcy5tYXAuZm9yY2VkT2ZmbGluZSRcclxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHN0YXRlKSA9PiB7XHJcbiAgICAgICAgICBvZmZsaW5lQnV0dG9uU3RhdGUgPSBzdGF0ZTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIGZlYXR1cmUucHJvcGVydGllcyAmJlxyXG4gICAgICBmZWF0dXJlLnByb3BlcnRpZXMuUm91dGUgJiZcclxuICAgICAgdGhpcy50b29sYm94ICYmXHJcbiAgICAgICF0aGlzLnRvb2xib3guZ2V0VG9vbCgnZGlyZWN0aW9ucycpXHJcbiAgICApIHtcclxuICAgICAgZGVsZXRlIGZlYXR1cmUucHJvcGVydGllcy5Sb3V0ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoYWxsb3dlZEZpZWxkc0FuZEFsaWFzKSB7XHJcbiAgICAgIE9iamVjdC5rZXlzKGFsbG93ZWRGaWVsZHNBbmRBbGlhcykuZm9yRWFjaCgoZmllbGQpID0+IHtcclxuICAgICAgICBwcm9wZXJ0aWVzW2FsbG93ZWRGaWVsZHNBbmRBbGlhc1tmaWVsZF1dID0gZmVhdHVyZS5wcm9wZXJ0aWVzW2ZpZWxkXTtcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiBwcm9wZXJ0aWVzO1xyXG4gICAgfSBlbHNlIGlmIChvZmZsaW5lQnV0dG9uU3RhdGUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBpZiAoIW9mZmxpbmVCdXR0b25TdGF0ZSkge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIHRoaXMuc3RhdGUuY29ubmVjdGlvbiAmJlxyXG4gICAgICAgICAgZmVhdHVyZS5tZXRhICYmXHJcbiAgICAgICAgICBmZWF0dXJlLm1ldGEuZXhjbHVkZUF0dHJpYnV0ZVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgY29uc3QgZXhjbHVkZUF0dHJpYnV0ZSA9IGZlYXR1cmUubWV0YS5leGNsdWRlQXR0cmlidXRlO1xyXG4gICAgICAgICAgZXhjbHVkZUF0dHJpYnV0ZS5mb3JFYWNoKChhdHRyaWJ1dGUpID0+IHtcclxuICAgICAgICAgICAgZGVsZXRlIGZlYXR1cmUucHJvcGVydGllc1thdHRyaWJ1dGVdO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICAgICF0aGlzLnN0YXRlLmNvbm5lY3Rpb24gJiZcclxuICAgICAgICAgIGZlYXR1cmUubWV0YSAmJlxyXG4gICAgICAgICAgZmVhdHVyZS5tZXRhLmV4Y2x1ZGVBdHRyaWJ1dGVPZmZsaW5lXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBjb25zdCBleGNsdWRlQXR0cmlidXRlT2ZmbGluZSA9IGZlYXR1cmUubWV0YS5leGNsdWRlQXR0cmlidXRlT2ZmbGluZTtcclxuICAgICAgICAgIGV4Y2x1ZGVBdHRyaWJ1dGVPZmZsaW5lLmZvckVhY2goKGF0dHJpYnV0ZSkgPT4ge1xyXG4gICAgICAgICAgICBkZWxldGUgZmVhdHVyZS5wcm9wZXJ0aWVzW2F0dHJpYnV0ZV07XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKGZlYXR1cmUubWV0YSAmJiBmZWF0dXJlLm1ldGEuZXhjbHVkZUF0dHJpYnV0ZU9mZmxpbmUpIHtcclxuICAgICAgICAgIGNvbnN0IGV4Y2x1ZGVBdHRyaWJ1dGVPZmZsaW5lID0gZmVhdHVyZS5tZXRhLmV4Y2x1ZGVBdHRyaWJ1dGVPZmZsaW5lO1xyXG4gICAgICAgICAgZXhjbHVkZUF0dHJpYnV0ZU9mZmxpbmUuZm9yRWFjaCgoYXR0cmlidXRlKSA9PiB7XHJcbiAgICAgICAgICAgIGRlbGV0ZSBmZWF0dXJlLnByb3BlcnRpZXNbYXR0cmlidXRlXTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRoaXMuc3RhdGUuY29ubmVjdGlvbiAmJlxyXG4gICAgICAgIGZlYXR1cmUubWV0YSAmJlxyXG4gICAgICAgIGZlYXR1cmUubWV0YS5leGNsdWRlQXR0cmlidXRlXHJcbiAgICAgICkge1xyXG4gICAgICAgIGNvbnN0IGV4Y2x1ZGVBdHRyaWJ1dGUgPSBmZWF0dXJlLm1ldGEuZXhjbHVkZUF0dHJpYnV0ZTtcclxuICAgICAgICBleGNsdWRlQXR0cmlidXRlLmZvckVhY2goKGF0dHJpYnV0ZSkgPT4ge1xyXG4gICAgICAgICAgZGVsZXRlIGZlYXR1cmUucHJvcGVydGllc1thdHRyaWJ1dGVdO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAgICF0aGlzLnN0YXRlLmNvbm5lY3Rpb24gJiZcclxuICAgICAgICBmZWF0dXJlLm1ldGEgJiZcclxuICAgICAgICBmZWF0dXJlLm1ldGEuZXhjbHVkZUF0dHJpYnV0ZU9mZmxpbmVcclxuICAgICAgKSB7XHJcbiAgICAgICAgY29uc3QgZXhjbHVkZUF0dHJpYnV0ZU9mZmxpbmUgPSBmZWF0dXJlLm1ldGEuZXhjbHVkZUF0dHJpYnV0ZU9mZmxpbmU7XHJcbiAgICAgICAgZXhjbHVkZUF0dHJpYnV0ZU9mZmxpbmUuZm9yRWFjaCgoYXR0cmlidXRlKSA9PiB7XHJcbiAgICAgICAgICBkZWxldGUgZmVhdHVyZS5wcm9wZXJ0aWVzW2F0dHJpYnV0ZV07XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmZWF0dXJlLnByb3BlcnRpZXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb3B5IHRoZSB1cmwgdG8gYSBjbGlwYm9hcmRcclxuICAgKi9cclxuICBjb3B5VGV4dFRvQ2xpcGJvYXJkKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IHN1Y2Nlc3NmdWwgPSBDbGlwYm9hcmQuY29weSh2YWx1ZSk7XHJcbiAgICBpZiAoc3VjY2Vzc2Z1bCkge1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnN1Y2Nlc3MoJ2lnby5nZW8ucXVlcnkubGluay5tZXNzYWdlJyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjx0YWJsZVxyXG4gIGNsYXNzPVwiaWdvLXN0cmlwZWQgbWF0LXR5cG9ncmFwaHlcIlxyXG4gICpuZ0lmPVwiXHJcbiAgICByZWFkeSAmJlxyXG4gICAgZmVhdHVyZSAmJlxyXG4gICAgaXNPYmplY3QoZmVhdHVyZS5wcm9wZXJ0aWVzKSAmJlxyXG4gICAgZmVhdHVyZS5wcm9wZXJ0aWVzLnRhcmdldCAhPT0gJ2lmcmFtZSdcclxuICBcIlxyXG4+XHJcbiAgPHRib2R5PlxyXG4gICAgPHRyICpuZ0Zvcj1cImxldCBwcm9wZXJ0eSBvZiBmaWx0ZXJGZWF0dXJlUHJvcGVydGllcyhmZWF0dXJlKSB8IGtleXZhbHVlXCI+XHJcbiAgICAgIDx0ZFxyXG4gICAgICAgICpuZ0lmPVwiZmVhdHVyZS5wcm9wZXJ0aWVzLnRhcmdldCA9PT0gJ19ibGFuaycgJiYgcHJvcGVydHkua2V5ID09PSAndXJsJ1wiXHJcbiAgICAgID5cclxuICAgICAgICA8bWF0LWljb24gbWF0TGlzdEl0ZW1JY29uIHN2Z0ljb249XCJ7eyBpY29uIH19XCI+PC9tYXQtaWNvbj5cclxuICAgICAgPC90ZD5cclxuXHJcbiAgICAgIDx0ZFxyXG4gICAgICAgICpuZ0lmPVwiZmVhdHVyZS5wcm9wZXJ0aWVzLnRhcmdldCA9PT0gJ19ibGFuaycgJiYgcHJvcGVydHkua2V5ID09PSAndXJsJ1wiXHJcbiAgICAgID5cclxuICAgICAgICA8YVxyXG4gICAgICAgICAgaHJlZj1cInt7IHByb3BlcnR5LnZhbHVlIH19XCJcclxuICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXHJcbiAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICB7eyAnaWdvLmdlby50YXJnZXRIdG1sVXJsJyB8IHRyYW5zbGF0ZSB9fSB7eyB0aXRsZSB9fTwvYVxyXG4gICAgICAgID5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICBjbGFzcz1cImNvcHlDbGlwYm9hcmRcIlxyXG4gICAgICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgICAgICAoY2xpY2spPVwiY29weVRleHRUb0NsaXBib2FyZChwcm9wZXJ0eS52YWx1ZSlcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiY29udGVudC1jb3B5XCI+PC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC90ZD5cclxuXHJcbiAgICAgIDx0ZCBpZD1cImtleVZhbHVlXCIgKm5nSWY9XCJmZWF0dXJlLnByb3BlcnRpZXMudGFyZ2V0ID09PSB1bmRlZmluZWRcIj5cclxuICAgICAgICB7eyBwcm9wZXJ0eS5rZXkgfX1cclxuICAgICAgPC90ZD5cclxuXHJcbiAgICAgIDx0ZFxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICBmZWF0dXJlLnByb3BlcnRpZXMudGFyZ2V0ID09PSB1bmRlZmluZWQgJiZcclxuICAgICAgICAgICFpc09iamVjdChwcm9wZXJ0eS52YWx1ZSkgJiZcclxuICAgICAgICAgICFpc1VybChwcm9wZXJ0eS52YWx1ZSkgJiZcclxuICAgICAgICAgICFpc0VtYmVkZGVkTGluayhwcm9wZXJ0eS52YWx1ZSlcclxuICAgICAgICBcIlxyXG4gICAgICAgIFtpbm5lckhUTUxdPVwicHJvcGVydHkudmFsdWVcIlxyXG4gICAgICA+PC90ZD5cclxuXHJcbiAgICAgIDx0ZFxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICBmZWF0dXJlLnByb3BlcnRpZXMudGFyZ2V0ID09PSB1bmRlZmluZWQgJiZcclxuICAgICAgICAgIGlzRW1iZWRkZWRMaW5rKHByb3BlcnR5LnZhbHVlKVxyXG4gICAgICAgIFwiXHJcbiAgICAgID5cclxuICAgICAgICA8dVxyXG4gICAgICAgICAgW25nU3R5bGVdPVwieyBjdXJzb3I6ICdwb2ludGVyJywgY29sb3I6ICdibHVlJyB9XCJcclxuICAgICAgICAgIChjbGljayk9XCJvcGVuU2VjdXJlVXJsKHByb3BlcnR5LnZhbHVlKVwiXHJcbiAgICAgICAgICA+e3sgZ2V0RW1iZWRkZWRMaW5rVGV4dChwcm9wZXJ0eS52YWx1ZSkgfX08L3VcclxuICAgICAgICA+XHJcbiAgICAgIDwvdGQ+XHJcblxyXG4gICAgICA8dGRcclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgZmVhdHVyZS5wcm9wZXJ0aWVzLnRhcmdldCA9PT0gdW5kZWZpbmVkICYmXHJcbiAgICAgICAgICAhaXNPYmplY3QocHJvcGVydHkudmFsdWUpICYmXHJcbiAgICAgICAgICAoaXNEb2MocHJvcGVydHkudmFsdWUpIHx8IGlzVXJsKHByb3BlcnR5LnZhbHVlKSkgJiZcclxuICAgICAgICAgICFpc0ltZyhwcm9wZXJ0eS52YWx1ZSlcclxuICAgICAgICBcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPHVcclxuICAgICAgICAgIFtuZ1N0eWxlXT1cInsgY3Vyc29yOiAncG9pbnRlcicsIGNvbG9yOiAnYmx1ZScgfVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwib3BlblNlY3VyZVVybChwcm9wZXJ0eS52YWx1ZSlcIlxyXG4gICAgICAgICAgPnt7ICdpZ28uZ2VvLnRhcmdldEh0bWxVcmwnIHwgdHJhbnNsYXRlIH19PC91XHJcbiAgICAgICAgPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgIGNsYXNzPVwiY29weUNsaXBib2FyZFwiXHJcbiAgICAgICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgICAgIChjbGljayk9XCJjb3B5VGV4dFRvQ2xpcGJvYXJkKHByb3BlcnR5LnZhbHVlKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJjb250ZW50LWNvcHlcIj48L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L3RkPlxyXG5cclxuICAgICAgPHRkXHJcbiAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgIGZlYXR1cmUucHJvcGVydGllcy50YXJnZXQgPT09IHVuZGVmaW5lZCAmJlxyXG4gICAgICAgICAgIWlzT2JqZWN0KHByb3BlcnR5LnZhbHVlKSAmJlxyXG4gICAgICAgICAgaXNVcmwocHJvcGVydHkudmFsdWUpICYmXHJcbiAgICAgICAgICBpc0ltZyhwcm9wZXJ0eS52YWx1ZSlcclxuICAgICAgICBcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGFcclxuICAgICAgICAgIGhyZWY9XCJ7eyBwcm9wZXJ0eS52YWx1ZSB9fVwiXHJcbiAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm9wZW5TZWN1cmVVcmwocHJvcGVydHkudmFsdWUpXCJcclxuICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgaWdvSW1hZ2VFcnJvclxyXG4gICAgICAgICAgICBzcmM9XCJ7eyBwcm9wZXJ0eS52YWx1ZSB8IHNlY3VyZUltYWdlIHwgYXN5bmMgfX1cIlxyXG4gICAgICAgICAgICB3aWR0aD1cIjIyNVwiXHJcbiAgICAgICAgICAgIGhlaWdodD1cImF1dG9cIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2E+XHJcbiAgICAgIDwvdGQ+XHJcblxyXG4gICAgICA8dGRcclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgZmVhdHVyZS5wcm9wZXJ0aWVzLnRhcmdldCA9PT0gdW5kZWZpbmVkICYmIGlzT2JqZWN0KHByb3BlcnR5LnZhbHVlKVxyXG4gICAgICAgIFwiXHJcbiAgICAgICAgW2lubmVySFRNTF09XCJwcm9wZXJ0eS52YWx1ZSB8IGpzb25cIlxyXG4gICAgICA+PC90ZD5cclxuICAgIDwvdHI+XHJcbiAgPC90Ym9keT5cclxuPC90YWJsZT5cclxuXHJcbjxpZnJhbWVcclxuICAqbmdJZj1cImlzSHRtbERpc3BsYXkoKVwiXHJcbiAgW3NyY2RvY109XCJodG1sU2FuaXRpemVyKGZlYXR1cmUucHJvcGVydGllcylcIlxyXG4gIFtzcmNdPVwidXJsU2FuaXRpemVyKGZlYXR1cmUucHJvcGVydGllcy51cmwpXCJcclxuPjwvaWZyYW1lPlxyXG4iXX0=
@@ -35,23 +35,21 @@ export class FeatureDetailsDirective {
35
35
  }
36
36
  }, 1);
37
37
  }
38
- static ɵfac = function FeatureDetailsDirective_Factory(t) { return new (t || FeatureDetailsDirective)(i0.ɵɵdirectiveInject(i1.FeatureDetailsComponent, 2), i0.ɵɵdirectiveInject(i0.ElementRef)); };
39
- static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: FeatureDetailsDirective, selectors: [["", "igoFeatureDetailsDirective", ""]], hostBindings: function FeatureDetailsDirective_HostBindings(rf, ctx) { if (rf & 1) {
40
- i0.ɵɵlistener("selectFeature", function FeatureDetailsDirective_selectFeature_HostBindingHandler() { return ctx.setFeature(); });
41
- } }, outputs: { routingEvent: "routingEvent" } });
38
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureDetailsDirective, deps: [{ token: i1.FeatureDetailsComponent, self: true }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
39
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: FeatureDetailsDirective, selector: "[igoFeatureDetailsDirective]", outputs: { routingEvent: "routingEvent" }, host: { listeners: { "selectFeature": "setFeature()" } }, ngImport: i0 });
42
40
  }
43
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FeatureDetailsDirective, [{
44
- type: Directive,
45
- args: [{
46
- // This directive allow to view the route between the user coordinates and the feature
47
- selector: '[igoFeatureDetailsDirective]'
48
- }]
49
- }], function () { return [{ type: i1.FeatureDetailsComponent, decorators: [{
50
- type: Self
51
- }] }, { type: i0.ElementRef }]; }, { routingEvent: [{
52
- type: Output
53
- }], setFeature: [{
54
- type: HostListener,
55
- args: ['selectFeature']
56
- }] }); })();
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1kZXRhaWxzLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZlYXR1cmUvZmVhdHVyZS1kZXRhaWxzL2ZlYXR1cmUtZGV0YWlscy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFlBQVksRUFFWixNQUFNLEVBQ04sSUFBSSxFQUNMLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdkMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7OztBQU10RSxNQUFNLE9BQU8sdUJBQXVCO0lBaUJ4QjtJQWhCRixTQUFTLENBQTBCO0lBRTNDLElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7SUFDaEMsQ0FBQztJQUNELFFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUVoQyxZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUdsRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxZQUNVLFNBQWtDLEVBQ2xDLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBRXRCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQzdCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzNCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQzthQUNyQjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVk7UUFDVixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3pFLElBQUksWUFBWSxFQUFFO2dCQUNoQixZQUFZLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRTtvQkFDMUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDM0IsQ0FBQyxDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7aUZBdkNVLHVCQUF1Qjs2REFBdkIsdUJBQXVCO3dIQUF2QixnQkFBWTs7O3VGQUFaLHVCQUF1QjtjQUpuQyxTQUFTO2VBQUM7Z0JBQ1Qsc0ZBQXNGO2dCQUN0RixRQUFRLEVBQUUsOEJBQThCO2FBQ3pDOztzQkFpQkksSUFBSTtpREFSRyxZQUFZO2tCQUFyQixNQUFNO1lBR1AsVUFBVTtrQkFEVCxZQUFZO21CQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIERpcmVjdGl2ZSxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBTZWxmXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IEZlYXR1cmVEZXRhaWxzQ29tcG9uZW50IH0gZnJvbSAnLi9mZWF0dXJlLWRldGFpbHMuY29tcG9uZW50JztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIC8vIFRoaXMgZGlyZWN0aXZlIGFsbG93IHRvIHZpZXcgdGhlIHJvdXRlIGJldHdlZW4gdGhlIHVzZXIgY29vcmRpbmF0ZXMgYW5kIHRoZSBmZWF0dXJlXHJcbiAgc2VsZWN0b3I6ICdbaWdvRmVhdHVyZURldGFpbHNEaXJlY3RpdmVdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRmVhdHVyZURldGFpbHNEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHByaXZhdGUgY29tcG9uZW50OiBGZWF0dXJlRGV0YWlsc0NvbXBvbmVudDtcclxuXHJcbiAgZ2V0IGZlYXR1cmUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb21wb25lbnQuZmVhdHVyZTtcclxuICB9XHJcbiAgZmVhdHVyZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHVuZGVmaW5lZCk7XHJcblxyXG4gIEBPdXRwdXQoKSByb3V0aW5nRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3NlbGVjdEZlYXR1cmUnKVxyXG4gIHNldEZlYXR1cmUoKSB7XHJcbiAgICB0aGlzLmZlYXR1cmUkLm5leHQodGhpcy5mZWF0dXJlKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQFNlbGYoKSBjb21wb25lbnQ6IEZlYXR1cmVEZXRhaWxzQ29tcG9uZW50LFxyXG4gICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZlxyXG4gICkge1xyXG4gICAgdGhpcy5jb21wb25lbnQgPSBjb21wb25lbnQ7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZmVhdHVyZSQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMuZmVhdHVyZS5nZW9tZXRyeSkge1xyXG4gICAgICAgIHRoaXMuYmluZENsaWNraW5nKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYmluZENsaWNraW5nKCkge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IHJvdXRlRWxlbWVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdzcGFuLnJvdXRpbmcnKTtcclxuICAgICAgaWYgKHJvdXRlRWxlbWVudCkge1xyXG4gICAgICAgIHJvdXRlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcclxuICAgICAgICAgIHRoaXMucm91dGluZ0V2ZW50LmVtaXQoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSwgMSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureDetailsDirective, decorators: [{
42
+ type: Directive,
43
+ args: [{
44
+ // This directive allow to view the route between the user coordinates and the feature
45
+ selector: '[igoFeatureDetailsDirective]'
46
+ }]
47
+ }], ctorParameters: function () { return [{ type: i1.FeatureDetailsComponent, decorators: [{
48
+ type: Self
49
+ }] }, { type: i0.ElementRef }]; }, propDecorators: { routingEvent: [{
50
+ type: Output
51
+ }], setFeature: [{
52
+ type: HostListener,
53
+ args: ['selectFeature']
54
+ }] } });
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1kZXRhaWxzLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZlYXR1cmUvZmVhdHVyZS1kZXRhaWxzL2ZlYXR1cmUtZGV0YWlscy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFlBQVksRUFFWixNQUFNLEVBQ04sSUFBSSxFQUNMLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdkMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7OztBQU10RSxNQUFNLE9BQU8sdUJBQXVCO0lBaUJ4QjtJQWhCRixTQUFTLENBQTBCO0lBRTNDLElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7SUFDaEMsQ0FBQztJQUNELFFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUVoQyxZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUdsRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxZQUNVLFNBQWtDLEVBQ2xDLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBRXRCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQzdCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzNCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQzthQUNyQjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVk7UUFDVixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3pFLElBQUksWUFBWSxFQUFFO2dCQUNoQixZQUFZLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRTtvQkFDMUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDM0IsQ0FBQyxDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7d0dBdkNVLHVCQUF1Qjs0RkFBdkIsdUJBQXVCOzs0RkFBdkIsdUJBQXVCO2tCQUpuQyxTQUFTO21CQUFDO29CQUNULHNGQUFzRjtvQkFDdEYsUUFBUSxFQUFFLDhCQUE4QjtpQkFDekM7OzBCQWlCSSxJQUFJO3FFQVJHLFlBQVk7c0JBQXJCLE1BQU07Z0JBR1AsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIERpcmVjdGl2ZSxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBTZWxmXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IEZlYXR1cmVEZXRhaWxzQ29tcG9uZW50IH0gZnJvbSAnLi9mZWF0dXJlLWRldGFpbHMuY29tcG9uZW50JztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIC8vIFRoaXMgZGlyZWN0aXZlIGFsbG93IHRvIHZpZXcgdGhlIHJvdXRlIGJldHdlZW4gdGhlIHVzZXIgY29vcmRpbmF0ZXMgYW5kIHRoZSBmZWF0dXJlXHJcbiAgc2VsZWN0b3I6ICdbaWdvRmVhdHVyZURldGFpbHNEaXJlY3RpdmVdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRmVhdHVyZURldGFpbHNEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHByaXZhdGUgY29tcG9uZW50OiBGZWF0dXJlRGV0YWlsc0NvbXBvbmVudDtcclxuXHJcbiAgZ2V0IGZlYXR1cmUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb21wb25lbnQuZmVhdHVyZTtcclxuICB9XHJcbiAgZmVhdHVyZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHVuZGVmaW5lZCk7XHJcblxyXG4gIEBPdXRwdXQoKSByb3V0aW5nRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3NlbGVjdEZlYXR1cmUnKVxyXG4gIHNldEZlYXR1cmUoKSB7XHJcbiAgICB0aGlzLmZlYXR1cmUkLm5leHQodGhpcy5mZWF0dXJlKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQFNlbGYoKSBjb21wb25lbnQ6IEZlYXR1cmVEZXRhaWxzQ29tcG9uZW50LFxyXG4gICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZlxyXG4gICkge1xyXG4gICAgdGhpcy5jb21wb25lbnQgPSBjb21wb25lbnQ7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZmVhdHVyZSQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMuZmVhdHVyZS5nZW9tZXRyeSkge1xyXG4gICAgICAgIHRoaXMuYmluZENsaWNraW5nKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYmluZENsaWNraW5nKCkge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IHJvdXRlRWxlbWVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdzcGFuLnJvdXRpbmcnKTtcclxuICAgICAgaWYgKHJvdXRlRWxlbWVudCkge1xyXG4gICAgICAgIHJvdXRlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcclxuICAgICAgICAgIHRoaXMucm91dGluZ0V2ZW50LmVtaXQoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSwgMSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -10,31 +10,30 @@ import * as i0 from "@angular/core";
10
10
  * @ignore
11
11
  */
12
12
  export class IgoFeatureDetailsModule {
13
- static ɵfac = function IgoFeatureDetailsModule_Factory(t) { return new (t || IgoFeatureDetailsModule)(); };
14
- static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: IgoFeatureDetailsModule });
15
- static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule,
13
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IgoFeatureDetailsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: IgoFeatureDetailsModule, declarations: [FeatureDetailsComponent, FeatureDetailsDirective], imports: [CommonModule,
15
+ MatIconModule,
16
+ IgoLanguageModule,
17
+ IgoKeyValueModule,
18
+ IgoImageModule], exports: [FeatureDetailsComponent, FeatureDetailsDirective] });
19
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IgoFeatureDetailsModule, imports: [CommonModule,
16
20
  MatIconModule,
17
21
  IgoLanguageModule,
18
22
  IgoKeyValueModule,
19
23
  IgoImageModule] });
20
24
  }
21
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(IgoFeatureDetailsModule, [{
22
- type: NgModule,
23
- args: [{
24
- imports: [
25
- CommonModule,
26
- MatIconModule,
27
- IgoLanguageModule,
28
- IgoKeyValueModule,
29
- IgoImageModule
30
- ],
31
- exports: [FeatureDetailsComponent, FeatureDetailsDirective],
32
- declarations: [FeatureDetailsComponent, FeatureDetailsDirective]
33
- }]
34
- }], null, null); })();
35
- (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(IgoFeatureDetailsModule, { declarations: [FeatureDetailsComponent, FeatureDetailsDirective], imports: [CommonModule,
36
- MatIconModule,
37
- IgoLanguageModule,
38
- IgoKeyValueModule,
39
- IgoImageModule], exports: [FeatureDetailsComponent, FeatureDetailsDirective] }); })();
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1kZXRhaWxzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZlYXR1cmUvZmVhdHVyZS1kZXRhaWxzL2ZlYXR1cmUtZGV0YWlscy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXZELE9BQU8sRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRS9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQUV0RTs7R0FFRztBQVlILE1BQU0sT0FBTyx1QkFBdUI7aUZBQXZCLHVCQUF1Qjs0REFBdkIsdUJBQXVCO2dFQVRoQyxZQUFZO1lBQ1osYUFBYTtZQUNiLGlCQUFpQjtZQUNqQixpQkFBaUI7WUFDakIsY0FBYzs7dUZBS0wsdUJBQXVCO2NBWG5DLFFBQVE7ZUFBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixhQUFhO29CQUNiLGlCQUFpQjtvQkFDakIsaUJBQWlCO29CQUNqQixjQUFjO2lCQUNmO2dCQUNELE9BQU8sRUFBRSxDQUFDLHVCQUF1QixFQUFFLHVCQUF1QixDQUFDO2dCQUMzRCxZQUFZLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSx1QkFBdUIsQ0FBQzthQUNqRTs7d0ZBQ1ksdUJBQXVCLG1CQUZuQix1QkFBdUIsRUFBRSx1QkFBdUIsYUFQN0QsWUFBWTtRQUNaLGFBQWE7UUFDYixpQkFBaUI7UUFDakIsaUJBQWlCO1FBQ2pCLGNBQWMsYUFFTix1QkFBdUIsRUFBRSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcblxyXG5pbXBvcnQgeyBJZ29JbWFnZU1vZHVsZSwgSWdvS2V5VmFsdWVNb2R1bGUgfSBmcm9tICdAaWdvMi9jb21tb24nO1xyXG5pbXBvcnQgeyBJZ29MYW5ndWFnZU1vZHVsZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgRmVhdHVyZURldGFpbHNDb21wb25lbnQgfSBmcm9tICcuL2ZlYXR1cmUtZGV0YWlscy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGZWF0dXJlRGV0YWlsc0RpcmVjdGl2ZSB9IGZyb20gJy4vZmVhdHVyZS1kZXRhaWxzLmRpcmVjdGl2ZSc7XHJcblxyXG4vKipcclxuICogQGlnbm9yZVxyXG4gKi9cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgSWdvTGFuZ3VhZ2VNb2R1bGUsXHJcbiAgICBJZ29LZXlWYWx1ZU1vZHVsZSxcclxuICAgIElnb0ltYWdlTW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbRmVhdHVyZURldGFpbHNDb21wb25lbnQsIEZlYXR1cmVEZXRhaWxzRGlyZWN0aXZlXSxcclxuICBkZWNsYXJhdGlvbnM6IFtGZWF0dXJlRGV0YWlsc0NvbXBvbmVudCwgRmVhdHVyZURldGFpbHNEaXJlY3RpdmVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJZ29GZWF0dXJlRGV0YWlsc01vZHVsZSB7fVxyXG4iXX0=
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IgoFeatureDetailsModule, decorators: [{
26
+ type: NgModule,
27
+ args: [{
28
+ imports: [
29
+ CommonModule,
30
+ MatIconModule,
31
+ IgoLanguageModule,
32
+ IgoKeyValueModule,
33
+ IgoImageModule
34
+ ],
35
+ exports: [FeatureDetailsComponent, FeatureDetailsDirective],
36
+ declarations: [FeatureDetailsComponent, FeatureDetailsDirective]
37
+ }]
38
+ }] });
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1kZXRhaWxzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZlYXR1cmUvZmVhdHVyZS1kZXRhaWxzL2ZlYXR1cmUtZGV0YWlscy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXZELE9BQU8sRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRS9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQUV0RTs7R0FFRztBQVlILE1BQU0sT0FBTyx1QkFBdUI7d0dBQXZCLHVCQUF1Qjt5R0FBdkIsdUJBQXVCLGlCQUZuQix1QkFBdUIsRUFBRSx1QkFBdUIsYUFQN0QsWUFBWTtZQUNaLGFBQWE7WUFDYixpQkFBaUI7WUFDakIsaUJBQWlCO1lBQ2pCLGNBQWMsYUFFTix1QkFBdUIsRUFBRSx1QkFBdUI7eUdBRy9DLHVCQUF1QixZQVRoQyxZQUFZO1lBQ1osYUFBYTtZQUNiLGlCQUFpQjtZQUNqQixpQkFBaUI7WUFDakIsY0FBYzs7NEZBS0wsdUJBQXVCO2tCQVhuQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsaUJBQWlCO3dCQUNqQixpQkFBaUI7d0JBQ2pCLGNBQWM7cUJBQ2Y7b0JBQ0QsT0FBTyxFQUFFLENBQUMsdUJBQXVCLEVBQUUsdUJBQXVCLENBQUM7b0JBQzNELFlBQVksRUFBRSxDQUFDLHVCQUF1QixFQUFFLHVCQUF1QixDQUFDO2lCQUNqRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuXHJcbmltcG9ydCB7IElnb0ltYWdlTW9kdWxlLCBJZ29LZXlWYWx1ZU1vZHVsZSB9IGZyb20gJ0BpZ28yL2NvbW1vbic7XHJcbmltcG9ydCB7IElnb0xhbmd1YWdlTW9kdWxlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBGZWF0dXJlRGV0YWlsc0NvbXBvbmVudCB9IGZyb20gJy4vZmVhdHVyZS1kZXRhaWxzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZlYXR1cmVEZXRhaWxzRGlyZWN0aXZlIH0gZnJvbSAnLi9mZWF0dXJlLWRldGFpbHMuZGlyZWN0aXZlJztcclxuXHJcbi8qKlxyXG4gKiBAaWdub3JlXHJcbiAqL1xyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBJZ29MYW5ndWFnZU1vZHVsZSxcclxuICAgIElnb0tleVZhbHVlTW9kdWxlLFxyXG4gICAgSWdvSW1hZ2VNb2R1bGVcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtGZWF0dXJlRGV0YWlsc0NvbXBvbmVudCwgRmVhdHVyZURldGFpbHNEaXJlY3RpdmVdLFxyXG4gIGRlY2xhcmF0aW9uczogW0ZlYXR1cmVEZXRhaWxzQ29tcG9uZW50LCBGZWF0dXJlRGV0YWlsc0RpcmVjdGl2ZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIElnb0ZlYXR1cmVEZXRhaWxzTW9kdWxlIHt9XHJcbiJdfQ==
@@ -6,9 +6,6 @@ import { FEATURE } from '../shared/feature.enums';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@igo2/common";
8
8
  import * as i2 from "@angular/common";
9
- const _c0 = ["igoForm"];
10
- const _c1 = ["*", [["", "formButtons", ""]]];
11
- const _c2 = ["*", "[formButtons]"];
12
9
  /**
13
10
  * A configurable form, optionnally bound to a feature.
14
11
  * This component creates an entity form and, on submit,
@@ -86,35 +83,20 @@ export class FeatureFormComponent {
86
83
  properties
87
84
  };
88
85
  }
89
- static ɵfac = function FeatureFormComponent_Factory(t) { return new (t || FeatureFormComponent)(); };
90
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FeatureFormComponent, selectors: [["igo-feature-form"]], viewQuery: function FeatureFormComponent_Query(rf, ctx) { if (rf & 1) {
91
- i0.ɵɵviewQuery(_c0, 7);
92
- } if (rf & 2) {
93
- let _t;
94
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.igoForm = _t.first);
95
- } }, inputs: { form: "form", feature: "feature" }, outputs: { submitForm: "submitForm" }, ngContentSelectors: _c2, decls: 5, vars: 4, consts: [[3, "form", "formData", "submitForm"], ["igoForm", ""]], template: function FeatureFormComponent_Template(rf, ctx) { if (rf & 1) {
96
- i0.ɵɵprojectionDef(_c1);
97
- i0.ɵɵelementStart(0, "igo-form", 0, 1);
98
- i0.ɵɵlistener("submitForm", function FeatureFormComponent_Template_igo_form_submitForm_0_listener($event) { return ctx.onSubmit($event); });
99
- i0.ɵɵpipe(2, "async");
100
- i0.ɵɵprojection(3);
101
- i0.ɵɵprojection(4, 1, ["formButtons", ""]);
102
- i0.ɵɵelementEnd();
103
- } if (rf & 2) {
104
- i0.ɵɵproperty("form", ctx.form)("formData", i0.ɵɵpipeBind1(2, 2, ctx.feature$));
105
- } }, dependencies: [i1.FormComponent, i2.AsyncPipe], styles: ["[_nghost-%COMP%]{display:block}igo-form[_ngcontent-%COMP%]{height:100%}"], changeDetection: 0 });
86
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
87
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FeatureFormComponent, selector: "igo-feature-form", inputs: { form: "form", feature: "feature" }, outputs: { submitForm: "submitForm" }, viewQueries: [{ propertyName: "igoForm", first: true, predicate: ["igoForm"], descendants: true, static: true }], ngImport: i0, template: "<igo-form\r\n #igoForm\r\n [form]=\"form\"\r\n [formData]=\"feature$ | async\"\r\n (submitForm)=\"onSubmit($event)\"\r\n>\r\n <ng-content></ng-content>\r\n\r\n <ng-content select=\"[formButtons]\" formButtons></ng-content>\r\n</igo-form>\r\n", styles: [":host{display:block}igo-form{height:100%}\n"], dependencies: [{ kind: "component", type: i1.FormComponent, selector: "igo-form", inputs: ["form", "formData", "autocomplete"], outputs: ["submitForm"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
106
88
  }
107
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FeatureFormComponent, [{
108
- type: Component,
109
- args: [{ selector: 'igo-feature-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<igo-form\r\n #igoForm\r\n [form]=\"form\"\r\n [formData]=\"feature$ | async\"\r\n (submitForm)=\"onSubmit($event)\"\r\n>\r\n <ng-content></ng-content>\r\n\r\n <ng-content select=\"[formButtons]\" formButtons></ng-content>\r\n</igo-form>\r\n", styles: [":host{display:block}igo-form{height:100%}\n"] }]
110
- }], function () { return []; }, { form: [{
111
- type: Input
112
- }], feature: [{
113
- type: Input
114
- }], submitForm: [{
115
- type: Output
116
- }], igoForm: [{
117
- type: ViewChild,
118
- args: ['igoForm', { static: true }]
119
- }] }); })();
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZlYXR1cmUvZmVhdHVyZS1mb3JtL2ZlYXR1cmUtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9mZWF0dXJlL2ZlYXR1cmUtZm9ybS9mZWF0dXJlLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBUSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV2RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRW5DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdkMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7O0FBR2xEOzs7Ozs7R0FNRztBQU9ILE1BQU0sT0FBTyxvQkFBb0I7SUFDL0I7O09BRUc7SUFDTSxJQUFJLENBQU87SUFFcEI7O09BRUc7SUFDSCxJQUNJLE9BQU8sQ0FBQyxLQUEwQjtRQUNwQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBQ1EsUUFBUSxHQUE2QixJQUFJLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUU3RTs7T0FFRztJQUNPLFVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0lBRVgsT0FBTyxDQUFnQjtJQUUvRCxnQkFBZSxDQUFDO0lBRWhCOzs7O09BSUc7SUFDSCxRQUFRLENBQUMsSUFBNEI7UUFDbkMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssaUJBQWlCLENBQUMsSUFBNEI7UUFDcEQsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFO1lBQzdCLElBQVksQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUM7U0FDM0I7YUFBTTtZQUNMLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDbkQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUU7Z0JBQ3JDLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQzthQUM5QyxDQUFDLENBQUM7U0FDSjtRQUVELE1BQU0sY0FBYyxHQUFHLGFBQWEsQ0FBQztRQUNyQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQW9CLEVBQUUsRUFBRTtZQUNwRCxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUMzQixJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLEVBQUU7Z0JBQ2xDLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNuRCxVQUFVLENBQUMsUUFBUSxDQUFDLEdBQUcsS0FBSyxDQUFDO2FBQzlCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQzdCLElBQUksUUFBUSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRTtZQUN4RCxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7U0FDbEM7UUFFRCxPQUFPO1lBQ0wsSUFBSSxFQUFFLElBQW1CO1lBQ3pCLElBQUksRUFBRSxPQUFPO1lBQ2IsUUFBUTtZQUNSLFVBQVUsRUFBRSxXQUFXO1lBQ3ZCLFVBQVU7U0FDWCxDQUFDO0lBQ0osQ0FBQzs4RUEvRVUsb0JBQW9COzZEQUFwQixvQkFBb0I7Ozs7Ozs7WUMvQmpDLHNDQUtDO1lBREMsbUhBQWMsb0JBQWdCLElBQUM7O1lBRS9CLGtCQUF5QjtZQUV6QiwwQ0FBNEQ7WUFDOUQsaUJBQVc7O1lBUFQsK0JBQWEsZ0RBQUE7Ozt1RkQ2QkYsb0JBQW9CO2NBTmhDLFNBQVM7MkJBQ0Usa0JBQWtCLG1CQUdYLHVCQUF1QixDQUFDLE1BQU07c0NBTXRDLElBQUk7a0JBQVosS0FBSztZQU1GLE9BQU87a0JBRFYsS0FBSztZQVlJLFVBQVU7a0JBQW5CLE1BQU07WUFFaUMsT0FBTztrQkFBOUMsU0FBUzttQkFBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEZvcm0sIGdldEVudGl0eVJldmlzaW9uIH0gZnJvbSAnQGlnbzIvY29tbW9uJztcclxuaW1wb3J0IHR5cGUgeyBGb3JtQ29tcG9uZW50IH0gZnJvbSAnQGlnbzIvY29tbW9uJztcclxuaW1wb3J0IHsgdXVpZCB9IGZyb20gJ0BpZ28yL3V0aWxzJztcclxuXHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgRkVBVFVSRSB9IGZyb20gJy4uL3NoYXJlZC9mZWF0dXJlLmVudW1zJztcclxuaW1wb3J0IHsgRmVhdHVyZSwgRmVhdHVyZU1ldGEgfSBmcm9tICcuLi9zaGFyZWQvZmVhdHVyZS5pbnRlcmZhY2VzJztcclxuXHJcbi8qKlxyXG4gKiBBIGNvbmZpZ3VyYWJsZSBmb3JtLCBvcHRpb25uYWxseSBib3VuZCB0byBhIGZlYXR1cmUuXHJcbiAqIFRoaXMgY29tcG9uZW50IGNyZWF0ZXMgYW4gZW50aXR5IGZvcm0gYW5kLCBvbiBzdWJtaXQsXHJcbiAqIHJldHVybnMgYSBmZWF0dXJlIG1hZGUgb3V0IG9mIHRoZSBzdWJtaXR0ZWQgZGF0YS4gSXQgYWxzb1xyXG4gKiBkb2VzIHRoaW5ncyBsaWtlIG1hbmFnaW5nIHRoZSBmZWF0dXJlIHZpc2liaWxpdHkgd2hpbGUgaXQncyBiZWluZyB1cGRhdGVkXHJcbiAqIGFzIHdlbGwgYXMgZGlzYWJsaW5nIHRoZSBzZWxlY3Rpb24gb2YgYW5vdGhlciBmZWF0dXJlLlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZ28tZmVhdHVyZS1mb3JtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZmVhdHVyZS1mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mZWF0dXJlLWZvcm0uY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmVhdHVyZUZvcm1Db21wb25lbnQge1xyXG4gIC8qKlxyXG4gICAqIEZvcm1cclxuICAgKi9cclxuICBASW5wdXQoKSBmb3JtOiBGb3JtO1xyXG5cclxuICAvKipcclxuICAgKiBGZWF0dXJlIHRvIHVwZGF0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGZlYXR1cmUodmFsdWU6IEZlYXR1cmUgfCB1bmRlZmluZWQpIHtcclxuICAgIHRoaXMuZmVhdHVyZSQubmV4dCh2YWx1ZSk7XHJcbiAgfVxyXG4gIGdldCBmZWF0dXJlKCk6IEZlYXR1cmUgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuZmVhdHVyZSQudmFsdWU7XHJcbiAgfVxyXG4gIHJlYWRvbmx5IGZlYXR1cmUkOiBCZWhhdmlvclN1YmplY3Q8RmVhdHVyZT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHVuZGVmaW5lZCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgZm9ybSBpcyBzdWJtaXR0ZWRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgc3VibWl0Rm9ybSA9IG5ldyBFdmVudEVtaXR0ZXI8RmVhdHVyZT4oKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnaWdvRm9ybScsIHsgc3RhdGljOiB0cnVlIH0pIGlnb0Zvcm06IEZvcm1Db21wb25lbnQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgLyoqXHJcbiAgICogVHJhbnNmb3JtIHRoZSBmb3JtIGRhdGEgdG8gYSBmZWF0dXJlIGFuZCBlbWl0IGFuIGV2ZW50XHJcbiAgICogQHBhcmFtIGV2ZW50IEZvcm0gc3VibWl0IGV2ZW50XHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgb25TdWJtaXQoZGF0YTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSkge1xyXG4gICAgY29uc3QgZmVhdHVyZSA9IHRoaXMuZm9ybURhdGFUb0ZlYXR1cmUoZGF0YSk7XHJcbiAgICB0aGlzLnN1Ym1pdEZvcm0uZW1pdChmZWF0dXJlKTtcclxuICB9XHJcblxyXG4gIGdldERhdGEoKTogRmVhdHVyZSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtRGF0YVRvRmVhdHVyZSh0aGlzLmlnb0Zvcm0uZ2V0RGF0YSgpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRyYW5zZm9ybSB0aGUgZm9ybSBkYXRhIHRvIGEgZmVhdHVyZVxyXG4gICAqIEBwYXJhbSBkYXRhIEZvcm0gZGF0YVxyXG4gICAqIEByZXR1cm5zIEEgZmVhdHVyZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgZm9ybURhdGFUb0ZlYXR1cmUoZGF0YTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSk6IEZlYXR1cmUge1xyXG4gICAgY29uc3QgcHJvcGVydGllcyA9IHt9O1xyXG4gICAgY29uc3QgbWV0YSA9IHt9O1xyXG4gICAgaWYgKHRoaXMuZmVhdHVyZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIChtZXRhIGFzIGFueSkuaWQgPSB1dWlkKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBPYmplY3QuYXNzaWduKHByb3BlcnRpZXMsIHRoaXMuZmVhdHVyZS5wcm9wZXJ0aWVzKTtcclxuICAgICAgT2JqZWN0LmFzc2lnbihtZXRhLCB0aGlzLmZlYXR1cmUubWV0YSwge1xyXG4gICAgICAgIHJldmlzaW9uOiBnZXRFbnRpdHlSZXZpc2lvbih0aGlzLmZlYXR1cmUpICsgMVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBwcm9wZXJ0eVByZWZpeCA9ICdwcm9wZXJ0aWVzLic7XHJcbiAgICBPYmplY3QuZW50cmllcyhkYXRhKS5mb3JFYWNoKChlbnRyeTogW3N0cmluZywgYW55XSkgPT4ge1xyXG4gICAgICBjb25zdCBba2V5LCB2YWx1ZV0gPSBlbnRyeTtcclxuICAgICAgaWYgKGtleS5zdGFydHNXaXRoKHByb3BlcnR5UHJlZml4KSkge1xyXG4gICAgICAgIGNvbnN0IHByb3BlcnR5ID0ga2V5LnN1YnN0cihwcm9wZXJ0eVByZWZpeC5sZW5ndGgpO1xyXG4gICAgICAgIHByb3BlcnRpZXNbcHJvcGVydHldID0gdmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGxldCBnZW9tZXRyeSA9IGRhdGEuZ2VvbWV0cnk7XHJcbiAgICBpZiAoZ2VvbWV0cnkgPT09IHVuZGVmaW5lZCAmJiB0aGlzLmZlYXR1cmUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBnZW9tZXRyeSA9IHRoaXMuZmVhdHVyZS5nZW9tZXRyeTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBtZXRhOiBtZXRhIGFzIEZlYXR1cmVNZXRhLFxyXG4gICAgICB0eXBlOiBGRUFUVVJFLFxyXG4gICAgICBnZW9tZXRyeSxcclxuICAgICAgcHJvamVjdGlvbjogJ0VQU0c6NDMyNicsXHJcbiAgICAgIHByb3BlcnRpZXNcclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiIsIjxpZ28tZm9ybVxyXG4gICNpZ29Gb3JtXHJcbiAgW2Zvcm1dPVwiZm9ybVwiXHJcbiAgW2Zvcm1EYXRhXT1cImZlYXR1cmUkIHwgYXN5bmNcIlxyXG4gIChzdWJtaXRGb3JtKT1cIm9uU3VibWl0KCRldmVudClcIlxyXG4+XHJcbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG5cclxuICA8bmctY29udGVudCBzZWxlY3Q9XCJbZm9ybUJ1dHRvbnNdXCIgZm9ybUJ1dHRvbnM+PC9uZy1jb250ZW50PlxyXG48L2lnby1mb3JtPlxyXG4iXX0=
89
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureFormComponent, decorators: [{
90
+ type: Component,
91
+ args: [{ selector: 'igo-feature-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<igo-form\r\n #igoForm\r\n [form]=\"form\"\r\n [formData]=\"feature$ | async\"\r\n (submitForm)=\"onSubmit($event)\"\r\n>\r\n <ng-content></ng-content>\r\n\r\n <ng-content select=\"[formButtons]\" formButtons></ng-content>\r\n</igo-form>\r\n", styles: [":host{display:block}igo-form{height:100%}\n"] }]
92
+ }], ctorParameters: function () { return []; }, propDecorators: { form: [{
93
+ type: Input
94
+ }], feature: [{
95
+ type: Input
96
+ }], submitForm: [{
97
+ type: Output
98
+ }], igoForm: [{
99
+ type: ViewChild,
100
+ args: ['igoForm', { static: true }]
101
+ }] } });
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZlYXR1cmUvZmVhdHVyZS1mb3JtL2ZlYXR1cmUtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9mZWF0dXJlL2ZlYXR1cmUtZm9ybS9mZWF0dXJlLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBUSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV2RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRW5DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdkMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7O0FBR2xEOzs7Ozs7R0FNRztBQU9ILE1BQU0sT0FBTyxvQkFBb0I7SUFDL0I7O09BRUc7SUFDTSxJQUFJLENBQU87SUFFcEI7O09BRUc7SUFDSCxJQUNJLE9BQU8sQ0FBQyxLQUEwQjtRQUNwQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBQ1EsUUFBUSxHQUE2QixJQUFJLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUU3RTs7T0FFRztJQUNPLFVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0lBRVgsT0FBTyxDQUFnQjtJQUUvRCxnQkFBZSxDQUFDO0lBRWhCOzs7O09BSUc7SUFDSCxRQUFRLENBQUMsSUFBNEI7UUFDbkMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssaUJBQWlCLENBQUMsSUFBNEI7UUFDcEQsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFO1lBQzdCLElBQVksQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUM7U0FDM0I7YUFBTTtZQUNMLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDbkQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUU7Z0JBQ3JDLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQzthQUM5QyxDQUFDLENBQUM7U0FDSjtRQUVELE1BQU0sY0FBYyxHQUFHLGFBQWEsQ0FBQztRQUNyQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQW9CLEVBQUUsRUFBRTtZQUNwRCxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUMzQixJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLEVBQUU7Z0JBQ2xDLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNuRCxVQUFVLENBQUMsUUFBUSxDQUFDLEdBQUcsS0FBSyxDQUFDO2FBQzlCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQzdCLElBQUksUUFBUSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRTtZQUN4RCxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7U0FDbEM7UUFFRCxPQUFPO1lBQ0wsSUFBSSxFQUFFLElBQW1CO1lBQ3pCLElBQUksRUFBRSxPQUFPO1lBQ2IsUUFBUTtZQUNSLFVBQVUsRUFBRSxXQUFXO1lBQ3ZCLFVBQVU7U0FDWCxDQUFDO0lBQ0osQ0FBQzt3R0EvRVUsb0JBQW9COzRGQUFwQixvQkFBb0IsK1BDL0JqQyx5UEFVQTs7NEZEcUJhLG9CQUFvQjtrQkFOaEMsU0FBUzsrQkFDRSxrQkFBa0IsbUJBR1gsdUJBQXVCLENBQUMsTUFBTTswRUFNdEMsSUFBSTtzQkFBWixLQUFLO2dCQU1GLE9BQU87c0JBRFYsS0FBSztnQkFZSSxVQUFVO3NCQUFuQixNQUFNO2dCQUVpQyxPQUFPO3NCQUE5QyxTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgRm9ybSwgZ2V0RW50aXR5UmV2aXNpb24gfSBmcm9tICdAaWdvMi9jb21tb24nO1xyXG5pbXBvcnQgdHlwZSB7IEZvcm1Db21wb25lbnQgfSBmcm9tICdAaWdvMi9jb21tb24nO1xyXG5pbXBvcnQgeyB1dWlkIH0gZnJvbSAnQGlnbzIvdXRpbHMnO1xyXG5cclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBGRUFUVVJFIH0gZnJvbSAnLi4vc2hhcmVkL2ZlYXR1cmUuZW51bXMnO1xyXG5pbXBvcnQgeyBGZWF0dXJlLCBGZWF0dXJlTWV0YSB9IGZyb20gJy4uL3NoYXJlZC9mZWF0dXJlLmludGVyZmFjZXMnO1xyXG5cclxuLyoqXHJcbiAqIEEgY29uZmlndXJhYmxlIGZvcm0sIG9wdGlvbm5hbGx5IGJvdW5kIHRvIGEgZmVhdHVyZS5cclxuICogVGhpcyBjb21wb25lbnQgY3JlYXRlcyBhbiBlbnRpdHkgZm9ybSBhbmQsIG9uIHN1Ym1pdCxcclxuICogcmV0dXJucyBhIGZlYXR1cmUgbWFkZSBvdXQgb2YgdGhlIHN1Ym1pdHRlZCBkYXRhLiBJdCBhbHNvXHJcbiAqIGRvZXMgdGhpbmdzIGxpa2UgbWFuYWdpbmcgdGhlIGZlYXR1cmUgdmlzaWJpbGl0eSB3aGlsZSBpdCdzIGJlaW5nIHVwZGF0ZWRcclxuICogYXMgd2VsbCBhcyBkaXNhYmxpbmcgdGhlIHNlbGVjdGlvbiBvZiBhbm90aGVyIGZlYXR1cmUuXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lnby1mZWF0dXJlLWZvcm0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mZWF0dXJlLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZlYXR1cmUtZm9ybS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGZWF0dXJlRm9ybUNvbXBvbmVudCB7XHJcbiAgLyoqXHJcbiAgICogRm9ybVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGZvcm06IEZvcm07XHJcblxyXG4gIC8qKlxyXG4gICAqIEZlYXR1cmUgdG8gdXBkYXRlXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgZmVhdHVyZSh2YWx1ZTogRmVhdHVyZSB8IHVuZGVmaW5lZCkge1xyXG4gICAgdGhpcy5mZWF0dXJlJC5uZXh0KHZhbHVlKTtcclxuICB9XHJcbiAgZ2V0IGZlYXR1cmUoKTogRmVhdHVyZSB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5mZWF0dXJlJC52YWx1ZTtcclxuICB9XHJcbiAgcmVhZG9ubHkgZmVhdHVyZSQ6IEJlaGF2aW9yU3ViamVjdDxGZWF0dXJlPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodW5kZWZpbmVkKTtcclxuXHJcbiAgLyoqXHJcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBzdWJtaXRGb3JtID0gbmV3IEV2ZW50RW1pdHRlcjxGZWF0dXJlPigpO1xyXG5cclxuICBAVmlld0NoaWxkKCdpZ29Gb3JtJywgeyBzdGF0aWM6IHRydWUgfSkgaWdvRm9ybTogRm9ybUNvbXBvbmVudDtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBUcmFuc2Zvcm0gdGhlIGZvcm0gZGF0YSB0byBhIGZlYXR1cmUgYW5kIGVtaXQgYW4gZXZlbnRcclxuICAgKiBAcGFyYW0gZXZlbnQgRm9ybSBzdWJtaXQgZXZlbnRcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBvblN1Ym1pdChkYXRhOiB7IFtrZXk6IHN0cmluZ106IGFueSB9KSB7XHJcbiAgICBjb25zdCBmZWF0dXJlID0gdGhpcy5mb3JtRGF0YVRvRmVhdHVyZShkYXRhKTtcclxuICAgIHRoaXMuc3VibWl0Rm9ybS5lbWl0KGZlYXR1cmUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RGF0YSgpOiBGZWF0dXJlIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1EYXRhVG9GZWF0dXJlKHRoaXMuaWdvRm9ybS5nZXREYXRhKCkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVHJhbnNmb3JtIHRoZSBmb3JtIGRhdGEgdG8gYSBmZWF0dXJlXHJcbiAgICogQHBhcmFtIGRhdGEgRm9ybSBkYXRhXHJcbiAgICogQHJldHVybnMgQSBmZWF0dXJlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBmb3JtRGF0YVRvRmVhdHVyZShkYXRhOiB7IFtrZXk6IHN0cmluZ106IGFueSB9KTogRmVhdHVyZSB7XHJcbiAgICBjb25zdCBwcm9wZXJ0aWVzID0ge307XHJcbiAgICBjb25zdCBtZXRhID0ge307XHJcbiAgICBpZiAodGhpcy5mZWF0dXJlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgKG1ldGEgYXMgYW55KS5pZCA9IHV1aWQoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIE9iamVjdC5hc3NpZ24ocHJvcGVydGllcywgdGhpcy5mZWF0dXJlLnByb3BlcnRpZXMpO1xyXG4gICAgICBPYmplY3QuYXNzaWduKG1ldGEsIHRoaXMuZmVhdHVyZS5tZXRhLCB7XHJcbiAgICAgICAgcmV2aXNpb246IGdldEVudGl0eVJldmlzaW9uKHRoaXMuZmVhdHVyZSkgKyAxXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHByb3BlcnR5UHJlZml4ID0gJ3Byb3BlcnRpZXMuJztcclxuICAgIE9iamVjdC5lbnRyaWVzKGRhdGEpLmZvckVhY2goKGVudHJ5OiBbc3RyaW5nLCBhbnldKSA9PiB7XHJcbiAgICAgIGNvbnN0IFtrZXksIHZhbHVlXSA9IGVudHJ5O1xyXG4gICAgICBpZiAoa2V5LnN0YXJ0c1dpdGgocHJvcGVydHlQcmVmaXgpKSB7XHJcbiAgICAgICAgY29uc3QgcHJvcGVydHkgPSBrZXkuc3Vic3RyKHByb3BlcnR5UHJlZml4Lmxlbmd0aCk7XHJcbiAgICAgICAgcHJvcGVydGllc1twcm9wZXJ0eV0gPSB2YWx1ZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgbGV0IGdlb21ldHJ5ID0gZGF0YS5nZW9tZXRyeTtcclxuICAgIGlmIChnZW9tZXRyeSA9PT0gdW5kZWZpbmVkICYmIHRoaXMuZmVhdHVyZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGdlb21ldHJ5ID0gdGhpcy5mZWF0dXJlLmdlb21ldHJ5O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIG1ldGE6IG1ldGEgYXMgRmVhdHVyZU1ldGEsXHJcbiAgICAgIHR5cGU6IEZFQVRVUkUsXHJcbiAgICAgIGdlb21ldHJ5LFxyXG4gICAgICBwcm9qZWN0aW9uOiAnRVBTRzo0MzI2JyxcclxuICAgICAgcHJvcGVydGllc1xyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIiwiPGlnby1mb3JtXHJcbiAgI2lnb0Zvcm1cclxuICBbZm9ybV09XCJmb3JtXCJcclxuICBbZm9ybURhdGFdPVwiZmVhdHVyZSQgfCBhc3luY1wiXHJcbiAgKHN1Ym1pdEZvcm0pPVwib25TdWJtaXQoJGV2ZW50KVwiXHJcbj5cclxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcblxyXG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIltmb3JtQnV0dG9uc11cIiBmb3JtQnV0dG9ucz48L25nLWNvbnRlbnQ+XHJcbjwvaWdvLWZvcm0+XHJcbiJdfQ==