@igo2/geo 16.0.2 → 16.1.1

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 (331) 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/index.mjs +1 -1
  18. package/esm2022/lib/datasource/shared/datasources/wfs.service.mjs +9 -9
  19. package/esm2022/lib/datasource/shared/datasources/wms-datasource.interface.mjs +1 -1
  20. package/esm2022/lib/datasource/shared/datasources/wms-datasource.mjs +1 -1
  21. package/esm2022/lib/datasource/shared/index.mjs +2 -1
  22. package/esm2022/lib/datasource/shared/options/options-api.service.mjs +12 -12
  23. package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +19 -102
  24. package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +21 -122
  25. package/esm2022/lib/directions/directions-results/directions-results.component.mjs +11 -103
  26. package/esm2022/lib/directions/directions-sources/osrm-directions-source.mjs +6 -6
  27. package/esm2022/lib/directions/directions.component.mjs +25 -47
  28. package/esm2022/lib/directions/directions.module.mjs +61 -62
  29. package/esm2022/lib/directions/shared/directions.service.mjs +15 -14
  30. package/esm2022/lib/download/download-button/download-button.component.mjs +11 -26
  31. package/esm2022/lib/download/download.module.mjs +22 -23
  32. package/esm2022/lib/download/shared/download.service.mjs +9 -9
  33. package/esm2022/lib/draw/draw/draw-layer-popup.component.mjs +9 -35
  34. package/esm2022/lib/draw/draw/draw-popup.component.mjs +20 -299
  35. package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +7 -40
  36. package/esm2022/lib/draw/draw/draw.component.mjs +56 -322
  37. package/esm2022/lib/draw/draw/draw.module.mjs +64 -65
  38. package/esm2022/lib/draw/drawingTool.module.mjs +12 -13
  39. package/esm2022/lib/draw/shared/draw-icon.service.mjs +9 -9
  40. package/esm2022/lib/draw/shared/draw.interface.mjs +1 -1
  41. package/esm2022/lib/environment/environment.interface.mjs +1 -1
  42. package/esm2022/lib/feature/feature-details/feature-details.component.mjs +21 -171
  43. package/esm2022/lib/feature/feature-details/feature-details.directive.mjs +17 -19
  44. package/esm2022/lib/feature/feature-details/feature-details.module.mjs +22 -23
  45. package/esm2022/lib/feature/feature-form/feature-form.component.mjs +16 -34
  46. package/esm2022/lib/feature/feature-form/feature-form.module.mjs +12 -13
  47. package/esm2022/lib/feature/feature.module.mjs +13 -14
  48. package/esm2022/lib/feature/shared/feature-store.utils.mjs +2 -2
  49. package/esm2022/lib/feature/shared/feature.interfaces.mjs +1 -1
  50. package/esm2022/lib/feature/shared/feature.utils.mjs +1 -1
  51. package/esm2022/lib/feature/shared/store.mjs +1 -1
  52. package/esm2022/lib/feature/shared/strategies/geo-properties.mjs +1 -1
  53. package/esm2022/lib/feature/shared/strategies/in-map-extent.mjs +1 -1
  54. package/esm2022/lib/feature/shared/strategies/index.mjs +1 -1
  55. package/esm2022/lib/feature/shared/strategies/selection.mjs +2 -2
  56. package/esm2022/lib/filter/filter.module.mjs +158 -197
  57. package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +24 -49
  58. package/esm2022/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +32 -397
  59. package/esm2022/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +39 -625
  60. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +20 -47
  61. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +44 -340
  62. package/esm2022/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +36 -58
  63. package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +26 -126
  64. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +11 -11
  65. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +17 -40
  66. package/esm2022/lib/filter/shared/filterable-datasource.pipe.mjs +9 -9
  67. package/esm2022/lib/filter/shared/ogc-filter-time.service.mjs +6 -6
  68. package/esm2022/lib/filter/shared/ogc-filter.service.mjs +6 -6
  69. package/esm2022/lib/filter/shared/spatial-filter.service.mjs +9 -9
  70. package/esm2022/lib/filter/shared/time-filter.service.mjs +6 -6
  71. package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +73 -386
  72. package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +23 -87
  73. package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +37 -86
  74. package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +24 -49
  75. package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +20 -268
  76. package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +20 -72
  77. package/esm2022/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +11 -11
  78. package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +13 -24
  79. package/esm2022/lib/geo.module.mjs +54 -55
  80. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +36 -39
  81. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +32 -97
  82. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +30 -31
  83. package/esm2022/lib/geometry/geometry.module.mjs +13 -14
  84. package/esm2022/lib/geometry/shared/geometry.interfaces.mjs +1 -1
  85. package/esm2022/lib/import-export/export-button/export-button.component.mjs +11 -24
  86. package/esm2022/lib/import-export/import-export/import-export.component.mjs +25 -434
  87. package/esm2022/lib/import-export/import-export.module.mjs +54 -55
  88. package/esm2022/lib/import-export/shared/drop-geo-file.directive.mjs +20 -22
  89. package/esm2022/lib/import-export/shared/export.service.mjs +10 -10
  90. package/esm2022/lib/import-export/shared/import.service.mjs +9 -9
  91. package/esm2022/lib/layer/layer-item/layer-item.component.mjs +47 -127
  92. package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +16 -183
  93. package/esm2022/lib/layer/layer-legend-item/layer-legend-item.component.mjs +16 -26
  94. package/esm2022/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +11 -11
  95. package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +26 -130
  96. package/esm2022/lib/layer/layer-list/layer-list-binding.directive.mjs +13 -13
  97. package/esm2022/lib/layer/layer-list/layer-list.component.mjs +50 -272
  98. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +21 -72
  99. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.service.mjs +9 -9
  100. package/esm2022/lib/layer/layer.module.mjs +94 -114
  101. package/esm2022/lib/layer/shared/layer.service.mjs +12 -12
  102. package/esm2022/lib/layer/shared/layers/image-layer.mjs +2 -2
  103. package/esm2022/lib/layer/shared/layers/layer.mjs +1 -1
  104. package/esm2022/lib/layer/shared/layers/tile-layer.mjs +2 -2
  105. package/esm2022/lib/layer/shared/layers/vector-layer.mjs +2 -2
  106. package/esm2022/lib/layer/shared/layers/vectortile-layer.mjs +2 -2
  107. package/esm2022/lib/layer/track-feature-button/track-feature-button.component.mjs +12 -27
  108. package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +18 -60
  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/map-browser.component.mjs +11 -18
  115. package/esm2022/lib/map/map-center/map-center.component.mjs +9 -13
  116. package/esm2022/lib/map/map.module.mjs +88 -96
  117. package/esm2022/lib/map/menu-button/menu-button.component.mjs +11 -19
  118. package/esm2022/lib/map/offline-button/offline-button.component.mjs +13 -24
  119. package/esm2022/lib/map/rotation-button/rotation-button.component.mjs +13 -39
  120. package/esm2022/lib/map/shared/hover-feature.directive.mjs +18 -20
  121. package/esm2022/lib/map/shared/linkedLayers.utils.mjs +1 -1
  122. package/esm2022/lib/map/shared/map-pointer-position.directive.mjs +15 -15
  123. package/esm2022/lib/map/shared/map.abstract.mjs +1 -1
  124. package/esm2022/lib/map/shared/map.service.mjs +9 -9
  125. package/esm2022/lib/map/shared/mapOffline.directive.mjs +9 -9
  126. package/esm2022/lib/map/shared/projection.service.mjs +9 -9
  127. package/esm2022/lib/map/swipe-control/swipe-control.component.mjs +9 -16
  128. package/esm2022/lib/map/wake-lock-button/wake-lock-button.component.mjs +11 -24
  129. package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +11 -28
  130. package/esm2022/lib/measure/measure.module.mjs +12 -13
  131. package/esm2022/lib/measure/measurer/measure-format.pipe.mjs +9 -9
  132. package/esm2022/lib/measure/measurer/measurer-dialog.component.mjs +13 -166
  133. package/esm2022/lib/measure/measurer/measurer-item.component.mjs +19 -51
  134. package/esm2022/lib/measure/measurer/measurer.component.mjs +74 -241
  135. package/esm2022/lib/measure/measurer/measurer.module.mjs +46 -59
  136. package/esm2022/lib/measure/shared/measure.interfaces.mjs +1 -1
  137. package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +20 -69
  138. package/esm2022/lib/metadata/metadata.module.mjs +24 -25
  139. package/esm2022/lib/metadata/shared/metadata.interface.mjs +1 -1
  140. package/esm2022/lib/metadata/shared/metadata.service.mjs +9 -9
  141. package/esm2022/lib/offline/geoDB/configFileToGeoDB.service.mjs +9 -9
  142. package/esm2022/lib/offline/geoDB/geoDB.service.mjs +9 -9
  143. package/esm2022/lib/offline/layerDB/layerDB.service.mjs +9 -9
  144. package/esm2022/lib/offline/shared/geo-network.service.mjs +9 -9
  145. package/esm2022/lib/overlay/overlay.module.mjs +12 -13
  146. package/esm2022/lib/overlay/shared/overlay.directive.mjs +11 -11
  147. package/esm2022/lib/overlay/shared/overlay.mjs +1 -1
  148. package/esm2022/lib/overlay/shared/overlay.service.mjs +9 -9
  149. package/esm2022/lib/overlay/shared/overlay.utils.mjs +2 -2
  150. package/esm2022/lib/print/print/print.component.mjs +21 -27
  151. package/esm2022/lib/print/print-form/print-form.component.mjs +56 -349
  152. package/esm2022/lib/print/print.module.mjs +36 -37
  153. package/esm2022/lib/print/shared/print.service.mjs +14 -14
  154. package/esm2022/lib/print/shared/print.type.mjs +2 -2
  155. package/esm2022/lib/query/query.module.mjs +13 -14
  156. package/esm2022/lib/query/shared/query-search-source.mjs +9 -9
  157. package/esm2022/lib/query/shared/query.directive.mjs +21 -21
  158. package/esm2022/lib/query/shared/query.service.mjs +10 -10
  159. package/esm2022/lib/search/search-bar/search-bar.component.mjs +66 -165
  160. package/esm2022/lib/search/search-bar/search-bar.module.mjs +38 -39
  161. package/esm2022/lib/search/search-bar/search-url-param.directive.mjs +13 -13
  162. package/esm2022/lib/search/search-results/save-feature-dialog.component.mjs +12 -68
  163. package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +23 -66
  164. package/esm2022/lib/search/search-results/search-results-item.component.mjs +18 -74
  165. package/esm2022/lib/search/search-results/search-results.component.mjs +41 -238
  166. package/esm2022/lib/search/search-results/search-results.module.mjs +58 -59
  167. package/esm2022/lib/search/search-selector/search-selector.component.mjs +13 -43
  168. package/esm2022/lib/search/search-selector/search-selector.module.mjs +30 -31
  169. package/esm2022/lib/search/search-settings/search-settings.component.mjs +24 -233
  170. package/esm2022/lib/search/search-settings/search-settings.module.mjs +32 -33
  171. package/esm2022/lib/search/search.module.mjs +32 -33
  172. package/esm2022/lib/search/shared/search-pointer-summary.directive.mjs +18 -20
  173. package/esm2022/lib/search/shared/search.enums.mjs +3 -3
  174. package/esm2022/lib/search/shared/search.interfaces.mjs +1 -1
  175. package/esm2022/lib/search/shared/search.service.mjs +10 -10
  176. package/esm2022/lib/search/shared/sources/cadastre.mjs +10 -10
  177. package/esm2022/lib/search/shared/sources/coordinates.mjs +19 -19
  178. package/esm2022/lib/search/shared/sources/icherche.interfaces.mjs +1 -1
  179. package/esm2022/lib/search/shared/sources/icherche.mjs +37 -26
  180. package/esm2022/lib/search/shared/sources/ilayer.mjs +19 -19
  181. package/esm2022/lib/search/shared/sources/index.mjs +1 -1
  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/index.mjs +1 -1
  188. package/esm2022/lib/style/shared/index.mjs +1 -1
  189. package/esm2022/lib/style/style-list/style-list.module.mjs +12 -12
  190. package/esm2022/lib/style/style-list/style-list.service.mjs +9 -9
  191. package/esm2022/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +12 -121
  192. package/esm2022/lib/style/style-modal/layer/style-modal-layer.component.mjs +13 -59
  193. package/esm2022/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +9 -17
  194. package/esm2022/lib/style/style-service/draw-style.service.mjs +9 -9
  195. package/esm2022/lib/style/style-service/style.service.mjs +9 -9
  196. package/esm2022/lib/style/style.module.mjs +51 -52
  197. package/esm2022/lib/toast/toast.component.mjs +15 -44
  198. package/esm2022/lib/toast/toast.module.mjs +24 -25
  199. package/esm2022/lib/utils/id-generator.mjs +1 -1
  200. package/esm2022/lib/utils/index.mjs +1 -1
  201. package/esm2022/lib/utils/propertyTypeDetector/index.mjs +1 -1
  202. package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.service.mjs +9 -9
  203. package/esm2022/lib/wkt/shared/wkt.service.mjs +9 -9
  204. package/esm2022/lib/wkt/wkt.module.mjs +12 -12
  205. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +10 -27
  206. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +20 -21
  207. package/esm2022/lib/workspace/shared/edition-workspace.mjs +4 -4
  208. package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +10 -10
  209. package/esm2022/lib/workspace/shared/feature-workspace.mjs +1 -1
  210. package/esm2022/lib/workspace/shared/feature-workspace.service.mjs +14 -13
  211. package/esm2022/lib/workspace/shared/wfs-workspace.mjs +1 -1
  212. package/esm2022/lib/workspace/shared/wfs-workspace.service.mjs +14 -13
  213. package/esm2022/lib/workspace/shared/wms-workspace.service.mjs +12 -12
  214. package/esm2022/lib/workspace/shared/workspace.utils.mjs +1 -1
  215. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +15 -19
  216. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +12 -13
  217. package/esm2022/lib/workspace/workspace-selector/workspace-selector.directive.mjs +21 -21
  218. package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +12 -13
  219. package/esm2022/lib/workspace/workspace-updator/workspace-updator.directive.mjs +15 -15
  220. package/esm2022/lib/workspace/workspace-updator/workspace-updator.module.mjs +12 -13
  221. package/esm2022/lib/workspace/workspace.module.mjs +35 -36
  222. package/fesm2022/igo2-geo.mjs +16547 -23425
  223. package/fesm2022/igo2-geo.mjs.map +1 -1
  224. package/lib/catalog/catalog-browser/catalog-browser-group.component.d.ts +1 -1
  225. package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +1 -1
  226. package/lib/catalog/catalog-browser/catalog-browser.component.d.ts +1 -1
  227. package/lib/catalog/catalog-library/catalog-library-item.component.d.ts +1 -1
  228. package/lib/catalog/catalog-library/catalog-library.component.d.ts +2 -2
  229. package/lib/catalog/shared/catalog.abstract.d.ts +3 -3
  230. package/lib/catalog/shared/catalog.interface.d.ts +2 -2
  231. package/lib/catalog/shared/catalog.service.d.ts +1 -1
  232. package/lib/datasource/shared/capabilities.interface.d.ts +8 -0
  233. package/lib/datasource/shared/capabilities.service.d.ts +1 -8
  234. package/lib/datasource/shared/datasources/wms-datasource.d.ts +1 -1
  235. package/lib/datasource/shared/datasources/wms-datasource.interface.d.ts +1 -1
  236. package/lib/datasource/shared/index.d.ts +1 -0
  237. package/lib/directions/shared/directions.service.d.ts +2 -2
  238. package/lib/download/shared/download.service.d.ts +1 -1
  239. package/lib/draw/shared/draw.interface.d.ts +1 -1
  240. package/lib/environment/environment.interface.d.ts +8 -6
  241. package/lib/feature/shared/feature.interfaces.d.ts +3 -3
  242. package/lib/feature/shared/feature.utils.d.ts +2 -1
  243. package/lib/feature/shared/store.d.ts +1 -1
  244. package/lib/filter/ogc-filter-button/ogc-filter-button.component.d.ts +1 -1
  245. package/lib/filter/ogc-filter-form/ogc-filter-form.component.d.ts +1 -1
  246. package/lib/filter/ogc-filter-selection/ogc-filter-selection.component.d.ts +1 -1
  247. package/lib/filter/ogc-filter-time/ogc-filter-time.component.d.ts +1 -0
  248. package/lib/filter/ogc-filterable-form/ogc-filterable-form.component.d.ts +1 -1
  249. package/lib/filter/ogc-filterable-item/ogc-filterable-item.component.d.ts +1 -1
  250. package/lib/filter/ogc-filterable-list/ogc-filterable-list.component.d.ts +1 -1
  251. package/lib/filter/shared/spatial-filter.service.d.ts +1 -1
  252. package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +1 -1
  253. package/lib/filter/time-filter-button/time-filter-button.component.d.ts +2 -2
  254. package/lib/filter/time-filter-item/time-filter-item.component.d.ts +1 -1
  255. package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +1 -1
  256. package/lib/geometry/geometry-form-field/geometry-form-field.component.d.ts +1 -1
  257. package/lib/geometry/shared/geometry.interfaces.d.ts +1 -1
  258. package/lib/import-export/export-button/export-button.component.d.ts +1 -1
  259. package/lib/layer/layer-item/layer-item.component.d.ts +1 -1
  260. package/lib/layer/layer-legend/layer-legend.component.d.ts +1 -1
  261. package/lib/layer/layer-legend-item/layer-legend-item.component.d.ts +1 -1
  262. package/lib/layer/layer-legend-list/layer-legend-list.component.d.ts +1 -1
  263. package/lib/layer/shared/layers/image-layer.d.ts +1 -1
  264. package/lib/layer/shared/layers/layer.d.ts +2 -1
  265. package/lib/layer/shared/layers/tile-layer.d.ts +1 -1
  266. package/lib/layer/shared/layers/vectortile-layer.d.ts +1 -1
  267. package/lib/layer/track-feature-button/track-feature-button.component.d.ts +1 -1
  268. package/lib/map/baselayers-switcher/baselayers-switcher.component.d.ts +1 -1
  269. package/lib/map/baselayers-switcher/mini-basemap.component.d.ts +1 -1
  270. package/lib/map/shared/map.abstract.d.ts +5 -4
  271. package/lib/measure/measurer/measurer.component.d.ts +8 -4
  272. package/lib/measure/shared/measure.interfaces.d.ts +2 -2
  273. package/lib/metadata/shared/metadata.interface.d.ts +1 -1
  274. package/lib/overlay/shared/overlay.d.ts +1 -1
  275. package/lib/print/print-form/print-form.component.d.ts +4 -6
  276. package/lib/print/shared/print.service.d.ts +2 -1
  277. package/lib/print/shared/print.type.d.ts +2 -6
  278. package/lib/search/search-results/search-results-add-button.component.d.ts +1 -1
  279. package/lib/search/search-results/search-results-item.component.d.ts +1 -1
  280. package/lib/search/search-results/search-results.component.d.ts +1 -1
  281. package/lib/search/shared/search.interfaces.d.ts +1 -1
  282. package/lib/search/shared/sources/cadastre.d.ts +1 -1
  283. package/lib/search/shared/sources/coordinates.d.ts +1 -1
  284. package/lib/search/shared/sources/icherche.d.ts +1 -1
  285. package/lib/search/shared/sources/icherche.interfaces.d.ts +1 -1
  286. package/lib/search/shared/sources/nominatim.d.ts +1 -1
  287. package/lib/search/shared/sources/source.d.ts +1 -1
  288. package/lib/search/shared/sources/storedqueries.d.ts +1 -1
  289. package/lib/search/shared/sources/storedqueries.interfaces.d.ts +1 -1
  290. package/lib/search/shared/sources/workspace.d.ts +1 -1
  291. package/lib/utils/id-generator.d.ts +1 -1
  292. package/lib/workspace/shared/edition-workspace.d.ts +3 -3
  293. package/lib/workspace/shared/edition-workspace.service.d.ts +1 -1
  294. package/lib/workspace/shared/feature-workspace.d.ts +1 -1
  295. package/lib/workspace/shared/feature-workspace.service.d.ts +2 -2
  296. package/lib/workspace/shared/wfs-workspace.d.ts +1 -1
  297. package/lib/workspace/shared/wfs-workspace.service.d.ts +2 -2
  298. package/lib/workspace/shared/wms-workspace.service.d.ts +2 -2
  299. package/lib/workspace/shared/workspace.utils.d.ts +1 -1
  300. package/lib/workspace/workspace-selector/workspace-selector.directive.d.ts +1 -1
  301. package/lib/workspace/workspace-updator/workspace-updator.directive.d.ts +1 -1
  302. package/locale/en.geo.json +5 -3
  303. package/locale/fr.geo.json +5 -3
  304. package/package.json +26 -29
  305. package/{lib → src/lib}/search/search-bar/search-bar.theming.scss +1 -0
  306. package/src/style/style.scss +1 -0
  307. /package/{geo-theme.scss → src/geo-theme.scss} +0 -0
  308. /package/{lib → src/lib}/catalog/catalog-browser/catalog-browser.theming.scss +0 -0
  309. /package/{lib → src/lib}/catalog/catalog.theming.scss +0 -0
  310. /package/{lib → src/lib}/directions/directions-results/directions-results.theming.scss +0 -0
  311. /package/{lib → src/lib}/directions/directions.theming.scss +0 -0
  312. /package/{lib → src/lib}/draw/draw.theming.scss +0 -0
  313. /package/{lib → src/lib}/feature/feature-details/feature-details.theming.scss +0 -0
  314. /package/{lib → src/lib}/feature/feature.theming.scss +0 -0
  315. /package/{lib → src/lib}/filter/filter.theming.scss +0 -0
  316. /package/{lib → src/lib}/filter/ogc-filter-selection/ogc-filter-selection.theming.scss +0 -0
  317. /package/{lib → src/lib}/filter/time-filter-form/time-filter-form.theming.scss +0 -0
  318. /package/{lib → src/lib}/layer/layer-item/layer-item.theme.scss +0 -0
  319. /package/{lib → src/lib}/layer/layer-legend/layer-legend.theming.scss +0 -0
  320. /package/{lib → src/lib}/layer/layer-list-tool/layer-list-tool.theming.scss +0 -0
  321. /package/{lib → src/lib}/layer/layer.theming.scss +0 -0
  322. /package/{lib → src/lib}/map/map-browser/map-browser.theming.scss +0 -0
  323. /package/{lib → src/lib}/map/map.theming.scss +0 -0
  324. /package/{lib → src/lib}/map/menu-button/menu-button.theming.scss +0 -0
  325. /package/{lib → src/lib}/map/zoom-button/zoom-button.theming.scss +0 -0
  326. /package/{lib → src/lib}/measure/measure.theming.scss +0 -0
  327. /package/{lib → src/lib}/measure/measurer/measurer.theming.scss +0 -0
  328. /package/{lib → src/lib}/search/search-results/search-results-item.theme.scss +0 -0
  329. /package/{lib → src/lib}/search/search.theming.scss +0 -0
  330. /package/{lib → src/lib}/workspace/confirmation-popup/confirmation-popup.theming.scss +0 -0
  331. /package/{lib → src/lib}/workspace/workspace.theming.scss +0 -0
@@ -21,98 +21,6 @@ import * as i9 from "@angular/material/core";
21
21
  import * as i10 from "@angular/material/tooltip";
22
22
  import * as i11 from "@angular/material/autocomplete";
23
23
  import * as i12 from "@ngx-translate/core";
24
- function DirectionsInputsComponent_div_1_button_6_Template(rf, ctx) { if (rf & 1) {
25
- const _r9 = i0.ɵɵgetCurrentView();
26
- i0.ɵɵelementStart(0, "button", 11);
27
- i0.ɵɵlistener("click", function DirectionsInputsComponent_div_1_button_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r9); const stop_r1 = i0.ɵɵnextContext().$implicit; const ctx_r7 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r7.clearStop(stop_r1)); });
28
- i0.ɵɵpipe(1, "translate");
29
- i0.ɵɵelement(2, "mat-icon", 12);
30
- i0.ɵɵelementEnd();
31
- } if (rf & 2) {
32
- i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(1, 1, "igo.geo.directionsForm.clearStop"));
33
- } }
34
- function DirectionsInputsComponent_div_1_mat_optgroup_9_mat_option_1_Template(rf, ctx) { if (rf & 1) {
35
- i0.ɵɵelementStart(0, "mat-option", 15);
36
- i0.ɵɵtext(1);
37
- i0.ɵɵelementEnd();
38
- } if (rf & 2) {
39
- const result_r12 = ctx.$implicit;
40
- i0.ɵɵproperty("value", result_r12)("matTooltip", result_r12.meta ? result_r12.meta.title : "");
41
- i0.ɵɵadvance(1);
42
- i0.ɵɵtextInterpolate1(" ", result_r12.meta ? result_r12.meta.title : "", " ");
43
- } }
44
- function DirectionsInputsComponent_div_1_mat_optgroup_9_Template(rf, ctx) { if (rf & 1) {
45
- i0.ɵɵelementStart(0, "mat-optgroup", 13);
46
- i0.ɵɵtemplate(1, DirectionsInputsComponent_div_1_mat_optgroup_9_mat_option_1_Template, 2, 3, "mat-option", 14);
47
- i0.ɵɵelementEnd();
48
- } if (rf & 2) {
49
- const source_r10 = ctx.$implicit;
50
- i0.ɵɵproperty("label", source_r10.source.title)("disabled", source_r10.source.enabled === false);
51
- i0.ɵɵadvance(1);
52
- i0.ɵɵproperty("ngForOf", source_r10.results);
53
- } }
54
- function DirectionsInputsComponent_div_1_div_10_button_4_Template(rf, ctx) { if (rf & 1) {
55
- const _r16 = i0.ɵɵgetCurrentView();
56
- i0.ɵɵelementStart(0, "button", 20);
57
- i0.ɵɵlistener("click", function DirectionsInputsComponent_div_1_div_10_button_4_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r16); const stop_r1 = i0.ɵɵnextContext(2).$implicit; const ctx_r14 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r14.removeStop(stop_r1)); });
58
- i0.ɵɵpipe(1, "translate");
59
- i0.ɵɵelement(2, "mat-icon", 21);
60
- i0.ɵɵelementEnd();
61
- } if (rf & 2) {
62
- i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(1, 1, "igo.geo.directionsForm.removeStop"));
63
- } }
64
- function DirectionsInputsComponent_div_1_div_10_Template(rf, ctx) { if (rf & 1) {
65
- i0.ɵɵelementStart(0, "div", 16)(1, "button", 17);
66
- i0.ɵɵpipe(2, "translate");
67
- i0.ɵɵelement(3, "mat-icon", 18);
68
- i0.ɵɵelementEnd();
69
- i0.ɵɵtemplate(4, DirectionsInputsComponent_div_1_div_10_button_4_Template, 3, 3, "button", 19);
70
- i0.ɵɵpipe(5, "async");
71
- i0.ɵɵelementEnd();
72
- } if (rf & 2) {
73
- const ctx_r6 = i0.ɵɵnextContext(2);
74
- i0.ɵɵadvance(1);
75
- i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(2, 2, "igo.geo.directionsForm.moveStop"));
76
- i0.ɵɵadvance(3);
77
- i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(5, 4, ctx_r6.stopsStore.count$) > 2);
78
- } }
79
- function DirectionsInputsComponent_div_1_Template(rf, ctx) { if (rf & 1) {
80
- const _r18 = i0.ɵɵgetCurrentView();
81
- i0.ɵɵelementStart(0, "div", 2);
82
- i0.ɵɵlistener("touchenter", function DirectionsInputsComponent_div_1_Template_div_touchenter_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r18); const stop_r1 = restoredCtx.$implicit; const ctx_r17 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r17.onStopEnter(stop_r1)); })("touchleave", function DirectionsInputsComponent_div_1_Template_div_touchleave_0_listener() { i0.ɵɵrestoreView(_r18); const ctx_r19 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r19.onStopLeave()); })("mouseover", function DirectionsInputsComponent_div_1_Template_div_mouseover_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r18); const stop_r1 = restoredCtx.$implicit; const ctx_r20 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r20.onStopEnter(stop_r1)); })("mouseleave", function DirectionsInputsComponent_div_1_Template_div_mouseleave_0_listener() { i0.ɵɵrestoreView(_r18); const ctx_r21 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r21.onStopLeave()); })("cdkDragStarted", function DirectionsInputsComponent_div_1_Template_div_cdkDragStarted_0_listener() { i0.ɵɵrestoreView(_r18); const ctx_r22 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r22.stopIsDragged = true); })("cdkDragEnded", function DirectionsInputsComponent_div_1_Template_div_cdkDragEnded_0_listener() { i0.ɵɵrestoreView(_r18); const ctx_r23 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r23.stopIsDragged = false); });
83
- i0.ɵɵelementStart(1, "div", 3)(2, "mat-form-field", 4)(3, "mat-label");
84
- i0.ɵɵtext(4);
85
- i0.ɵɵelementEnd();
86
- i0.ɵɵelementStart(5, "input", 5);
87
- i0.ɵɵlistener("focus", function DirectionsInputsComponent_div_1_Template_input_focus_5_listener() { const restoredCtx = i0.ɵɵrestoreView(_r18); const stop_r1 = restoredCtx.$implicit; const ctx_r24 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r24.onInputFocus(stop_r1)); })("ngModelChange", function DirectionsInputsComponent_div_1_Template_input_ngModelChange_5_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r18); const stop_r1 = restoredCtx.$implicit; return i0.ɵɵresetView(stop_r1.text = $event); })("keyup", function DirectionsInputsComponent_div_1_Template_input_keyup_5_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r18); const stop_r1 = restoredCtx.$implicit; const ctx_r26 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r26.setStopText($event, stop_r1)); })("keydown.enter", function DirectionsInputsComponent_div_1_Template_input_keydown_enter_5_listener($event) { return $event.preventDefault(); });
88
- i0.ɵɵelementEnd();
89
- i0.ɵɵtemplate(6, DirectionsInputsComponent_div_1_button_6_Template, 3, 3, "button", 6);
90
- i0.ɵɵelementStart(7, "mat-autocomplete", 7, 8);
91
- i0.ɵɵlistener("optionSelected", function DirectionsInputsComponent_div_1_Template_mat_autocomplete_optionSelected_7_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r18); const stop_r1 = restoredCtx.$implicit; const ctx_r28 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r28.chooseProposal($event, stop_r1)); });
92
- i0.ɵɵtemplate(9, DirectionsInputsComponent_div_1_mat_optgroup_9_Template, 2, 3, "mat-optgroup", 9);
93
- i0.ɵɵelementEnd()()();
94
- i0.ɵɵtemplate(10, DirectionsInputsComponent_div_1_div_10_Template, 6, 6, "div", 10);
95
- i0.ɵɵelementEnd();
96
- } if (rf & 2) {
97
- const stop_r1 = ctx.$implicit;
98
- const _r4 = i0.ɵɵreference(8);
99
- const ctx_r0 = i0.ɵɵnextContext();
100
- i0.ɵɵadvance(1);
101
- i0.ɵɵproperty("ngClass", ctx_r0.getNgClass(stop_r1));
102
- i0.ɵɵadvance(3);
103
- i0.ɵɵtextInterpolate(ctx_r0.getPlaceholder(stop_r1));
104
- i0.ɵɵadvance(1);
105
- i0.ɵɵpropertyInterpolate("id", stop_r1.id);
106
- i0.ɵɵproperty("placeholder", ctx_r0.getPlaceholder(stop_r1))("matTooltip", stop_r1.text)("ngModel", stop_r1.text)("matAutocomplete", _r4);
107
- i0.ɵɵadvance(1);
108
- i0.ɵɵproperty("ngIf", (stop_r1.text || stop_r1.coordinates) && ctx_r0.stopWithHover && stop_r1.id === ctx_r0.stopWithHover.id);
109
- i0.ɵɵadvance(1);
110
- i0.ɵɵproperty("displayWith", ctx_r0.getOptionText);
111
- i0.ɵɵadvance(2);
112
- i0.ɵɵproperty("ngForOf", stop_r1.searchProposals);
113
- i0.ɵɵadvance(1);
114
- i0.ɵɵproperty("ngIf", !ctx_r0.stopIsDragged && ctx_r0.stopWithHover && stop_r1.id === ctx_r0.stopWithHover.id);
115
- } }
116
24
  export class DirectionsInputsComponent {
117
25
  languageService;
118
26
  invalidKeys = ['Control', 'Shift', 'Alt'];
@@ -261,34 +169,25 @@ export class DirectionsInputsComponent {
261
169
  });
262
170
  this.onMapClickEventKeys = [];
263
171
  }
264
- static ɵfac = function DirectionsInputsComponent_Factory(t) { return new (t || DirectionsInputsComponent)(i0.ɵɵdirectiveInject(i1.LanguageService)); };
265
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DirectionsInputsComponent, selectors: [["igo-directions-inputs"]], inputs: { stopsStore: "stopsStore", stopsFeatureStore: "stopsFeatureStore", projection: "projection", coordRoundedDecimals: "coordRoundedDecimals", debounce: "debounce", length: "length" }, outputs: { stopInputHasFocus: "stopInputHasFocus" }, decls: 3, vars: 3, consts: [["cdkDropList", "", 1, "stops-list", 3, "cdkDropListDropped"], ["touchleave", "", "cdkDragLockAxis", "y", "class", "stop-box", "cdkDrag", "", 3, "touchenter", "touchleave", "mouseover", "mouseleave", "cdkDragStarted", "cdkDragEnded", 4, "ngFor", "ngForOf"], ["touchleave", "", "cdkDragLockAxis", "y", "cdkDrag", "", 1, "stop-box", 3, "touchenter", "touchleave", "mouseover", "mouseleave", "cdkDragStarted", "cdkDragEnded"], [3, "ngClass"], ["subscriptSizing", "dynamic"], ["type", "text", "matTooltipShowDelay", "500", "aria-label", "Number", "matInput", "", 3, "id", "placeholder", "matTooltip", "ngModel", "matAutocomplete", "focus", "ngModelChange", "keyup", "keydown.enter"], ["mat-icon-button", "", "matSuffix", "", "matTooltipShowDelay", "500", "color", "warn", "aria-label", "Clear", 3, "matTooltip", "click", 4, "ngIf"], [3, "displayWith", "optionSelected"], ["auto", "matAutocomplete"], [3, "label", "disabled", 4, "ngFor", "ngForOf"], ["class", "igo-form-button-group", 4, "ngIf"], ["mat-icon-button", "", "matSuffix", "", "matTooltipShowDelay", "500", "color", "warn", "aria-label", "Clear", 3, "matTooltip", "click"], ["svgIcon", "close"], [3, "label", "disabled"], ["matTooltipShowDelay", "500", 3, "value", "matTooltip", 4, "ngFor", "ngForOf"], ["matTooltipShowDelay", "500", 3, "value", "matTooltip"], [1, "igo-form-button-group"], ["cdkDragHandle", "", "mat-icon-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", "color", "primary", 1, "swipe-vertical", 3, "matTooltip"], ["svgIcon", "gesture-swipe-vertical"], ["mat-icon-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", "color", "warn", 3, "matTooltip", "click", 4, "ngIf"], ["mat-icon-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", "color", "warn", 3, "matTooltip", "click"], ["svgIcon", "delete"]], template: function DirectionsInputsComponent_Template(rf, ctx) { if (rf & 1) {
266
- i0.ɵɵelementStart(0, "div", 0);
267
- i0.ɵɵlistener("cdkDropListDropped", function DirectionsInputsComponent_Template_div_cdkDropListDropped_0_listener($event) { return ctx.drop($event); });
268
- i0.ɵɵtemplate(1, DirectionsInputsComponent_div_1_Template, 11, 11, "div", 1);
269
- i0.ɵɵpipe(2, "async");
270
- i0.ɵɵelementEnd();
271
- } if (rf & 2) {
272
- i0.ɵɵadvance(1);
273
- i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(2, 1, ctx.stopsStore.view.all$()));
274
- } }, dependencies: [i2.NgClass, i2.NgForOf, i2.NgIf, i3.CdkDropList, i3.CdkDrag, i3.CdkDragHandle, i4.DefaultValueAccessor, i4.NgControlStatus, i4.NgModel, i5.MatIcon, i6.MatIconButton, i7.MatFormField, i7.MatLabel, i7.MatSuffix, i8.MatInput, i9.MatOption, i9.MatOptgroup, i10.MatTooltip, i11.MatAutocomplete, i11.MatAutocompleteTrigger, i2.AsyncPipe, i12.TranslatePipe], styles: ["[_nghost-%COMP%] .igo-input-container[_ngcontent-%COMP%]{display:flex;width:100%}[_nghost-%COMP%] .igo-input-container[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{flex:1}[_nghost-%COMP%] .igo-form-button-group[_ngcontent-%COMP%]{display:flex;align-items:center;padding-left:12px}[_nghost-%COMP%] .stops-list[_ngcontent-%COMP%]{max-width:100%;min-height:60px;display:block;background:white;border-radius:4px;overflow:hidden;padding:20px 10px}[_nghost-%COMP%] .swipe-vertical[_ngcontent-%COMP%]{cursor:move}[_nghost-%COMP%] .stop-box[_ngcontent-%COMP%]{color:#000000de;display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;background:white}[_nghost-%COMP%] .stop-box[_ngcontent-%COMP%]:not(:last-child){margin-bottom:16px}[_nghost-%COMP%] .cdk-drag-preview[_ngcontent-%COMP%]{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}[_nghost-%COMP%] .cdk-drag-placeholder[_ngcontent-%COMP%]{opacity:0}[_nghost-%COMP%] .cdk-drag-animating[_ngcontent-%COMP%]{transition:transform .25s cubic-bezier(0,0,.2,1)}[_nghost-%COMP%] .stops-list.cdk-drop-list-dragging[_ngcontent-%COMP%] .stop-box[_ngcontent-%COMP%]:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}"] });
172
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DirectionsInputsComponent, deps: [{ token: i1.LanguageService }], target: i0.ɵɵFactoryTarget.Component });
173
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DirectionsInputsComponent, selector: "igo-directions-inputs", inputs: { stopsStore: "stopsStore", stopsFeatureStore: "stopsFeatureStore", projection: "projection", coordRoundedDecimals: "coordRoundedDecimals", debounce: "debounce", length: "length" }, outputs: { stopInputHasFocus: "stopInputHasFocus" }, ngImport: i0, template: "<div cdkDropList class=\"stops-list\" (cdkDropListDropped)=\"drop($event)\">\r\n <div\r\n touchleave\r\n (touchenter)=\"onStopEnter(stop)\"\r\n (touchleave)=\"onStopLeave()\"\r\n (mouseover)=\"onStopEnter(stop)\"\r\n (mouseleave)=\"onStopLeave()\"\r\n (cdkDragStarted)=\"stopIsDragged = true\"\r\n (cdkDragEnded)=\"stopIsDragged = false\"\r\n cdkDragLockAxis=\"y\"\r\n class=\"stop-box\"\r\n *ngFor=\"let stop of stopsStore.view.all$() | async; let i = index\"\r\n cdkDrag\r\n >\r\n <div [ngClass]=\"getNgClass(stop)\">\r\n <mat-form-field subscriptSizing=\"dynamic\">\r\n <mat-label>{{ getPlaceholder(stop) }}</mat-label>\r\n <input\r\n id=\"{{ stop.id }}\"\r\n type=\"text\"\r\n [placeholder]=\"getPlaceholder(stop)\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"stop.text\"\r\n aria-label=\"Number\"\r\n matInput\r\n (focus)=\"onInputFocus(stop)\"\r\n [(ngModel)]=\"stop.text\"\r\n (keyup)=\"setStopText($event, stop)\"\r\n (keydown.enter)=\"$event.preventDefault()\"\r\n [matAutocomplete]=\"auto\"\r\n />\r\n <button\r\n *ngIf=\"\r\n (stop.text || stop.coordinates) &&\r\n stopWithHover &&\r\n stop.id === stopWithHover.id\r\n \"\r\n mat-icon-button\r\n matSuffix\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.geo.directionsForm.clearStop' | translate\"\r\n color=\"warn\"\r\n aria-label=\"Clear\"\r\n (click)=\"clearStop(stop)\"\r\n >\r\n <mat-icon svgIcon=\"close\"></mat-icon>\r\n </button>\r\n\r\n <mat-autocomplete\r\n [displayWith]=\"getOptionText\"\r\n #auto=\"matAutocomplete\"\r\n (optionSelected)=\"chooseProposal($event, stop)\"\r\n >\r\n <mat-optgroup\r\n *ngFor=\"let source of stop.searchProposals\"\r\n [label]=\"source.source.title\"\r\n [disabled]=\"source.source.enabled === false\"\r\n >\r\n <mat-option\r\n *ngFor=\"let result of source.results\"\r\n [value]=\"result\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"result.meta ? result.meta.title : ''\"\r\n >\r\n {{ result.meta ? result.meta.title : '' }}\r\n </mat-option>\r\n </mat-optgroup>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"!stopIsDragged && stopWithHover && stop.id === stopWithHover.id\"\r\n class=\"igo-form-button-group\"\r\n >\r\n <button\r\n class=\"swipe-vertical\"\r\n cdkDragHandle\r\n mat-icon-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.geo.directionsForm.moveStop' | translate\"\r\n color=\"primary\"\r\n >\r\n <mat-icon svgIcon=\"gesture-swipe-vertical\"></mat-icon>\r\n </button>\r\n\r\n <button\r\n *ngIf=\"(stopsStore.count$ | async) > 2\"\r\n mat-icon-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.geo.directionsForm.removeStop' | translate\"\r\n color=\"warn\"\r\n (click)=\"removeStop(stop)\"\r\n >\r\n <mat-icon svgIcon=\"delete\"></mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [":host .igo-input-container{display:flex;width:100%}:host .igo-input-container mat-form-field{flex:1}:host .igo-form-button-group{display:flex;align-items:center;padding-left:12px}:host .stops-list{max-width:100%;min-height:60px;display:block;background:#fff;border-radius:4px;overflow:hidden;padding:20px 10px}:host .swipe-vertical{cursor:move}:host .stop-box{color:#000000de;display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;background:#fff}:host .stop-box:not(:last-child){margin-bottom:16px}:host .cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}:host .cdk-drag-placeholder{opacity:0}:host .cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}:host .stops-list.cdk-drop-list-dragging .stop-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i3.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i3.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i9.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i9.MatOptgroup, selector: "mat-optgroup", inputs: ["disabled"], exportAs: ["matOptgroup"] }, { kind: "directive", type: i10.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i11.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple", "hideSingleSelectionIndicator"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i11.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i12.TranslatePipe, name: "translate" }] });
275
174
  }
276
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DirectionsInputsComponent, [{
277
- type: Component,
278
- args: [{ selector: 'igo-directions-inputs', template: "<div cdkDropList class=\"stops-list\" (cdkDropListDropped)=\"drop($event)\">\r\n <div\r\n touchleave\r\n (touchenter)=\"onStopEnter(stop)\"\r\n (touchleave)=\"onStopLeave()\"\r\n (mouseover)=\"onStopEnter(stop)\"\r\n (mouseleave)=\"onStopLeave()\"\r\n (cdkDragStarted)=\"stopIsDragged = true\"\r\n (cdkDragEnded)=\"stopIsDragged = false\"\r\n cdkDragLockAxis=\"y\"\r\n class=\"stop-box\"\r\n *ngFor=\"let stop of stopsStore.view.all$() | async; let i = index\"\r\n cdkDrag\r\n >\r\n <div [ngClass]=\"getNgClass(stop)\">\r\n <mat-form-field subscriptSizing=\"dynamic\">\r\n <mat-label>{{ getPlaceholder(stop) }}</mat-label>\r\n <input\r\n id=\"{{ stop.id }}\"\r\n type=\"text\"\r\n [placeholder]=\"getPlaceholder(stop)\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"stop.text\"\r\n aria-label=\"Number\"\r\n matInput\r\n (focus)=\"onInputFocus(stop)\"\r\n [(ngModel)]=\"stop.text\"\r\n (keyup)=\"setStopText($event, stop)\"\r\n (keydown.enter)=\"$event.preventDefault()\"\r\n [matAutocomplete]=\"auto\"\r\n />\r\n <button\r\n *ngIf=\"\r\n (stop.text || stop.coordinates) &&\r\n stopWithHover &&\r\n stop.id === stopWithHover.id\r\n \"\r\n mat-icon-button\r\n matSuffix\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.geo.directionsForm.clearStop' | translate\"\r\n color=\"warn\"\r\n aria-label=\"Clear\"\r\n (click)=\"clearStop(stop)\"\r\n >\r\n <mat-icon svgIcon=\"close\"></mat-icon>\r\n </button>\r\n\r\n <mat-autocomplete\r\n [displayWith]=\"getOptionText\"\r\n #auto=\"matAutocomplete\"\r\n (optionSelected)=\"chooseProposal($event, stop)\"\r\n >\r\n <mat-optgroup\r\n *ngFor=\"let source of stop.searchProposals\"\r\n [label]=\"source.source.title\"\r\n [disabled]=\"source.source.enabled === false\"\r\n >\r\n <mat-option\r\n *ngFor=\"let result of source.results\"\r\n [value]=\"result\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"result.meta ? result.meta.title : ''\"\r\n >\r\n {{ result.meta ? result.meta.title : '' }}\r\n </mat-option>\r\n </mat-optgroup>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"!stopIsDragged && stopWithHover && stop.id === stopWithHover.id\"\r\n class=\"igo-form-button-group\"\r\n >\r\n <button\r\n class=\"swipe-vertical\"\r\n cdkDragHandle\r\n mat-icon-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.geo.directionsForm.moveStop' | translate\"\r\n color=\"primary\"\r\n >\r\n <mat-icon svgIcon=\"gesture-swipe-vertical\"></mat-icon>\r\n </button>\r\n\r\n <button\r\n *ngIf=\"(stopsStore.count$ | async) > 2\"\r\n mat-icon-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.geo.directionsForm.removeStop' | translate\"\r\n color=\"warn\"\r\n (click)=\"removeStop(stop)\"\r\n >\r\n <mat-icon svgIcon=\"delete\"></mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [":host .igo-input-container{display:flex;width:100%}:host .igo-input-container mat-form-field{flex:1}:host .igo-form-button-group{display:flex;align-items:center;padding-left:12px}:host .stops-list{max-width:100%;min-height:60px;display:block;background:white;border-radius:4px;overflow:hidden;padding:20px 10px}:host .swipe-vertical{cursor:move}:host .stop-box{color:#000000de;display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;background:white}:host .stop-box:not(:last-child){margin-bottom:16px}:host .cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}:host .cdk-drag-placeholder{opacity:0}:host .cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}:host .stops-list.cdk-drop-list-dragging .stop-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"] }]
279
- }], function () { return [{ type: i1.LanguageService }]; }, { stopsStore: [{
280
- type: Input
281
- }], stopsFeatureStore: [{
282
- type: Input
283
- }], projection: [{
284
- type: Input
285
- }], coordRoundedDecimals: [{
286
- type: Input
287
- }], debounce: [{
288
- type: Input
289
- }], length: [{
290
- type: Input
291
- }], stopInputHasFocus: [{
292
- type: Output
293
- }] }); })();
294
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy1pbnB1dHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGlyZWN0aW9ucy9kaXJlY3Rpb25zLWlucHV0cy9kaXJlY3Rpb25zLWlucHV0cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL2RpcmVjdGlvbnMtaW5wdXRzL2RpcmVjdGlvbnMtaW5wdXRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFN0MsT0FBTyxLQUFLLFlBQVksTUFBTSxlQUFlLENBQUM7QUFDOUMsT0FBTyxLQUFLLE1BQU0sTUFBTSxTQUFTLENBQUM7QUFFbEMsT0FBTyxjQUFjLE1BQU0sd0JBQXdCLENBQUM7QUFHcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTFFLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNuQixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztJQ0l4RCxrQ0FhQztJQURDLDZOQUFTLGVBQUEseUJBQWUsQ0FBQSxJQUFDOztJQUV6QiwrQkFBcUM7SUFDdkMsaUJBQVM7O0lBTlAscUZBQTZEOzs7SUFrQjNELHNDQUtDO0lBQ0Ms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QUM7SUFDckMsQ0FBQztJQUVPLHNCQUFzQjtRQUM1QixJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDbkMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxtQkFBbUIsR0FBRyxFQUFFLENBQUM7SUFDaEMsQ0FBQzttRkFsTFUseUJBQXlCOzZEQUF6Qix5QkFBeUI7WUNsQ3RDLDhCQUF3RTtZQUFwQyxtSUFBc0IsZ0JBQVksSUFBQztZQUNyRSw0RUFrR007O1lBQ1IsaUJBQU07O1lBekZlLGVBQW1DO1lBQW5DLDBFQUFtQzs7O3VGRHVCM0MseUJBQXlCO2NBTHJDLFNBQVM7MkJBQ0UsdUJBQXVCO2tFQVN4QixVQUFVO2tCQUFsQixLQUFLO1lBQ0csaUJBQWlCO2tCQUF6QixLQUFLO1lBQ0csVUFBVTtrQkFBbEIsS0FBSztZQUNHLG9CQUFvQjtrQkFBNUIsS0FBSztZQUVHLFFBQVE7a0JBQWhCLEtBQUs7WUFDRyxNQUFNO2tCQUFkLEtBQUs7WUFFSSxpQkFBaUI7a0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT3V0cHV0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IE1hdE9wdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcblxyXG5pbXBvcnQgKiBhcyBvbE9ic2VydmFibGUgZnJvbSAnb2wvT2JzZXJ2YWJsZSc7XHJcbmltcG9ydCAqIGFzIG9sUHJvaiBmcm9tICdvbC9wcm9qJztcclxuXHJcbmltcG9ydCBwb2ludE9uRmVhdHVyZSBmcm9tICdAdHVyZi9wb2ludC1vbi1mZWF0dXJlJztcclxuXHJcbmltcG9ydCB7IEZlYXR1cmUgfSBmcm9tICcuLi8uLi9mZWF0dXJlL3NoYXJlZC9mZWF0dXJlLmludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyByb3VuZENvb3JkVG8gfSBmcm9tICcuLi8uLi9tYXAvc2hhcmVkL21hcC51dGlscyc7XHJcbmltcG9ydCB7IERpcmVjdGlvblJlbGF0aXZlUG9zaXRpb25UeXBlIH0gZnJvbSAnLi4vc2hhcmVkL2RpcmVjdGlvbnMuZW51bSc7XHJcbmltcG9ydCB7IFN0b3AgfSBmcm9tICcuLi9zaGFyZWQvZGlyZWN0aW9ucy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge1xyXG4gIGNvbXB1dGVSZWxhdGl2ZVBvc2l0aW9uLFxyXG4gIHJlbW92ZVN0b3BGcm9tU3RvcmUsXHJcbiAgdXBkYXRlU3RvcmVTb3J0aW5nXHJcbn0gZnJvbSAnLi4vc2hhcmVkL2RpcmVjdGlvbnMudXRpbHMnO1xyXG5pbXBvcnQgeyBTdG9wc0ZlYXR1cmVTdG9yZSwgU3RvcHNTdG9yZSB9IGZyb20gJy4uL3NoYXJlZC9zdG9yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lnby1kaXJlY3Rpb25zLWlucHV0cycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RpcmVjdGlvbnMtaW5wdXRzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kaXJlY3Rpb25zLWlucHV0cy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEaXJlY3Rpb25zSW5wdXRzQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBwcml2YXRlIHJlYWRvbmx5IGludmFsaWRLZXlzID0gWydDb250cm9sJywgJ1NoaWZ0JywgJ0FsdCddO1xyXG4gIHByaXZhdGUgb25NYXBDbGlja0V2ZW50S2V5cyA9IFtdO1xyXG4gIHB1YmxpYyBzdG9wV2l0aEhvdmVyOiBTdG9wO1xyXG4gIHB1YmxpYyBzdG9wSXNEcmFnZ2VkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc3RvcHNTdG9yZTogU3RvcHNTdG9yZTtcclxuICBASW5wdXQoKSBzdG9wc0ZlYXR1cmVTdG9yZTogU3RvcHNGZWF0dXJlU3RvcmU7XHJcbiAgQElucHV0KCkgcHJvamVjdGlvbjogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGNvb3JkUm91bmRlZERlY2ltYWxzOiBudW1iZXIgPSA2O1xyXG5cclxuICBASW5wdXQoKSBkZWJvdW5jZTogbnVtYmVyID0gMjAwO1xyXG4gIEBJbnB1dCgpIGxlbmd0aDogbnVtYmVyID0gMjtcclxuXHJcbiAgQE91dHB1dCgpIHN0b3BJbnB1dEhhc0ZvY3VzOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPVxyXG4gICAgbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPihmYWxzZSk7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSkge31cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnVubGlzdGVuTWFwU2luZ2xlQ2xpY2soKTtcclxuICB9XHJcbiAgb25TdG9wRW50ZXIoc3RvcDogU3RvcCkge1xyXG4gICAgdGhpcy5zdG9wV2l0aEhvdmVyID0gc3RvcDtcclxuICB9XHJcbiAgb25TdG9wTGVhdmUoKSB7XHJcbiAgICB0aGlzLnN0b3BXaXRoSG92ZXIgPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBnZXRPcHRpb25UZXh0KG9wdGlvbikge1xyXG4gICAgaWYgKG9wdGlvbiBpbnN0YW5jZW9mIE9iamVjdCkge1xyXG4gICAgICByZXR1cm4gb3B0aW9uPy5tZXRhID8gb3B0aW9uLm1ldGEudGl0bGUgOiAnJztcclxuICAgIH1cclxuICAgIHJldHVybiBvcHRpb247XHJcbiAgfVxyXG5cclxuICBjaG9vc2VQcm9wb3NhbChcclxuICAgIGV2ZW50OiB7IHNvdXJjZTogTWF0QXV0b2NvbXBsZXRlOyBvcHRpb246IE1hdE9wdGlvbiB9LFxyXG4gICAgc3RvcDogU3RvcFxyXG4gICkge1xyXG4gICAgY29uc3QgcmVzdWx0OiBGZWF0dXJlID0gZXZlbnQub3B0aW9uLnZhbHVlO1xyXG4gICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICBsZXQgZ2VvbUNvb3JkO1xyXG4gICAgICBjb25zdCBnZW9tID0gcmVzdWx0Lmdlb21ldHJ5O1xyXG4gICAgICBpZiAoZ2VvbS50eXBlID09PSAnUG9pbnQnKSB7XHJcbiAgICAgICAgZ2VvbUNvb3JkID0gZ2VvbS5jb29yZGluYXRlcztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBwb2ludCA9IHBvaW50T25GZWF0dXJlKHJlc3VsdC5nZW9tZXRyeSk7XHJcbiAgICAgICAgZ2VvbUNvb3JkID0gW1xyXG4gICAgICAgICAgcG9pbnQuZ2VvbWV0cnkuY29vcmRpbmF0ZXNbMF0sXHJcbiAgICAgICAgICBwb2ludC5nZW9tZXRyeS5jb29yZGluYXRlc1sxXVxyXG4gICAgICAgIF07XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGdlb21Db29yZCkge1xyXG4gICAgICAgIHN0b3AuY29vcmRpbmF0ZXMgPSBnZW9tQ29vcmQ7XHJcbiAgICAgICAgc3RvcC50ZXh0ID0gcmVzdWx0Lm1ldGEudGl0bGU7XHJcbiAgICAgICAgdGhpcy5zdG9wc1N0b3JlLnVwZGF0ZShzdG9wKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0U3RvcFRleHQoZXZlbnQ6IEtleWJvYXJkRXZlbnQsIHN0b3A6IFN0b3ApIHtcclxuICAgIHRoaXMudW5saXN0ZW5NYXBTaW5nbGVDbGljaygpO1xyXG4gICAgY29uc3QgdGVybSA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XHJcbiAgICBpZiAodGVybS5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy5jbGVhclN0b3Aoc3RvcCk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudmFsaWRhdGVUZXJtKHRlcm0pKSB7XHJcbiAgICAgIHN0b3AudGV4dCA9IHRlcm07XHJcbiAgICAgIHRoaXMuc3RvcHNTdG9yZS51cGRhdGUoc3RvcCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZVRlcm0odGVybTogc3RyaW5nKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMua2V5SXNWYWxpZCh0ZXJtKSAmJlxyXG4gICAgICAodGVybS5sZW5ndGggPj0gdGhpcy5sZW5ndGggfHwgdGVybS5sZW5ndGggPT09IDApXHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGtleUlzVmFsaWQoa2V5OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmludmFsaWRLZXlzLmZpbmQoKHZhbHVlKSA9PiB2YWx1ZSA9PT0ga2V5KSA9PT0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgZ2V0TmdDbGFzcyhzdG9wOiBTdG9wKTogc3RyaW5nIHtcclxuICAgIGlmICghdGhpcy5zdG9wV2l0aEhvdmVyKSB7XHJcbiAgICAgIHJldHVybiAnaWdvLWlucHV0LWNvbnRhaW5lcic7XHJcbiAgICB9IGVsc2UgaWYgKHN0b3AuaWQgPT09IHRoaXMuc3RvcFdpdGhIb3Zlci5pZCkge1xyXG4gICAgICByZXR1cm4gJ2lnby1pbnB1dC1jb250YWluZXIgcmVkdWNlJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAnaWdvLWlucHV0LWNvbnRhaW5lcic7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRQbGFjZWhvbGRlcihzdG9wOiBTdG9wKTogc3RyaW5nIHtcclxuICAgIGxldCBleHRyYSA9ICcnO1xyXG4gICAgaWYgKHN0b3AucmVsYXRpdmVQb3NpdGlvbikge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgc3RvcC5yZWxhdGl2ZVBvc2l0aW9uID09PSBEaXJlY3Rpb25SZWxhdGl2ZVBvc2l0aW9uVHlwZS5JbnRlcm1lZGlhdGVcclxuICAgICAgKSB7XHJcbiAgICAgICAgZXh0cmEgPSAnICMnICsgc3RvcC5wb3NpdGlvbjtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICAgJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0uJyArIHN0b3AucmVsYXRpdmVQb3NpdGlvblxyXG4gICAgICAgICkgKyBleHRyYVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlU3RvcChzdG9wOiBTdG9wKSB7XHJcbiAgICByZW1vdmVTdG9wRnJvbVN0b3JlKHRoaXMuc3RvcHNTdG9yZSwgc3RvcCk7XHJcbiAgfVxyXG5cclxuICBjbGVhclN0b3Aoc3RvcDogU3RvcCkge1xyXG4gICAgdGhpcy5zdG9wc1N0b3JlLnVwZGF0ZSh7XHJcbiAgICAgIGlkOiBzdG9wLmlkLFxyXG4gICAgICByZWxhdGl2ZVBvc2l0aW9uOiBzdG9wLnJlbGF0aXZlUG9zaXRpb24sXHJcbiAgICAgIHBvc2l0aW9uOiBzdG9wLnBvc2l0aW9uXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPHN0cmluZ1tdPikge1xyXG4gICAgdGhpcy5tb3ZlU3RvcHMoZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbW92ZVN0b3BzKGZyb21JbmRleCwgdG9JbmRleCkge1xyXG4gICAgaWYgKGZyb21JbmRleCAhPT0gdG9JbmRleCkge1xyXG4gICAgICBjb25zdCBzdG9wcyA9IFsuLi50aGlzLnN0b3BzU3RvcmUudmlldy5hbGwoKV07XHJcbiAgICAgIG1vdmVJdGVtSW5BcnJheShzdG9wcywgZnJvbUluZGV4LCB0b0luZGV4KTtcclxuICAgICAgc3RvcHMubWFwKChzdG9wLCBpKSA9PiB7XHJcbiAgICAgICAgc3RvcC5yZWxhdGl2ZVBvc2l0aW9uID0gY29tcHV0ZVJlbGF0aXZlUG9zaXRpb24oaSwgc3RvcHMubGVuZ3RoKTtcclxuICAgICAgICBzdG9wLnBvc2l0aW9uID0gaTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuc3RvcHNTdG9yZS51cGRhdGVNYW55KHN0b3BzKTtcclxuICAgICAgdXBkYXRlU3RvcmVTb3J0aW5nKHRoaXMuc3RvcHNTdG9yZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbklucHV0Rm9jdXMoc3RvcDogU3RvcCkge1xyXG4gICAgaWYgKCFzdG9wLnRleHQgfHwgc3RvcC50ZXh0Py5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy51bmxpc3Rlbk1hcFNpbmdsZUNsaWNrKCk7XHJcbiAgICAgIHRoaXMuc3RvcElucHV0SGFzRm9jdXMuZW1pdCh0cnVlKTtcclxuICAgICAgdGhpcy5saXN0ZW5NYXBTaW5nbGVDbGljayhzdG9wKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgbGlzdGVuTWFwU2luZ2xlQ2xpY2soc3RvcDogU3RvcCkge1xyXG4gICAgY29uc3Qga2V5ID0gdGhpcy5zdG9wc0ZlYXR1cmVTdG9yZS5sYXllci5tYXAub2wub25jZShcclxuICAgICAgJ3NpbmdsZWNsaWNrJyxcclxuICAgICAgKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgY29uc3QgY2xpY2tDb29yZGluYXRlcyA9IG9sUHJvai50cmFuc2Zvcm0oXHJcbiAgICAgICAgICBldmVudC5jb29yZGluYXRlLFxyXG4gICAgICAgICAgdGhpcy5zdG9wc0ZlYXR1cmVTdG9yZS5sYXllci5tYXAucHJvamVjdGlvbixcclxuICAgICAgICAgIHRoaXMucHJvamVjdGlvblxyXG4gICAgICAgICk7XHJcbiAgICAgICAgY29uc3Qgcm91bmRlZENvb3JkID0gcm91bmRDb29yZFRvKFxyXG4gICAgICAgICAgY2xpY2tDb29yZGluYXRlcyBhcyBbbnVtYmVyLCBudW1iZXJdLFxyXG4gICAgICAgICAgdGhpcy5jb29yZFJvdW5kZWREZWNpbWFsc1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgc3RvcC50ZXh0ID0gcm91bmRlZENvb3JkLmpvaW4oJywnKTtcclxuICAgICAgICBzdG9wLmNvb3JkaW5hdGVzID0gcm91bmRlZENvb3JkO1xyXG4gICAgICAgIHRoaXMuc3RvcHNTdG9yZS51cGRhdGUoc3RvcCk7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnN0b3BJbnB1dEhhc0ZvY3VzLmVtaXQoZmFsc2UpO1xyXG4gICAgICAgIH0sIDUwMCk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICB0aGlzLm9uTWFwQ2xpY2tFdmVudEtleXMucHVzaChrZXkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1bmxpc3Rlbk1hcFNpbmdsZUNsaWNrKCkge1xyXG4gICAgdGhpcy5vbk1hcENsaWNrRXZlbnRLZXlzLm1hcCgoa2V5KSA9PiB7XHJcbiAgICAgIG9sT2JzZXJ2YWJsZS51bkJ5S2V5KGtleSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMub25NYXBDbGlja0V2ZW50S2V5cyA9IFtdO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNka0Ryb3BMaXN0IGNsYXNzPVwic3RvcHMtbGlzdFwiIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCI+XHJcbiAgPGRpdlxyXG4gICAgdG91Y2hsZWF2ZVxyXG4gICAgKHRvdWNoZW50ZXIpPVwib25TdG9wRW50ZXIoc3RvcClcIlxyXG4gICAgKHRvdWNobGVhdmUpPVwib25TdG9wTGVhdmUoKVwiXHJcbiAgICAobW91c2VvdmVyKT1cIm9uU3RvcEVudGVyKHN0b3ApXCJcclxuICAgIChtb3VzZWxlYXZlKT1cIm9uU3RvcExlYXZlKClcIlxyXG4gICAgKGNka0RyYWdTdGFydGVkKT1cInN0b3BJc0RyYWdnZWQgPSB0cnVlXCJcclxuICAgIChjZGtEcmFnRW5kZWQpPVwic3RvcElzRHJhZ2dlZCA9IGZhbHNlXCJcclxuICAgIGNka0RyYWdMb2NrQXhpcz1cInlcIlxyXG4gICAgY2xhc3M9XCJzdG9wLWJveFwiXHJcbiAgICAqbmdGb3I9XCJsZXQgc3RvcCBvZiBzdG9wc1N0b3JlLnZpZXcuYWxsJCgpIHwgYXN5bmM7IGxldCBpID0gaW5kZXhcIlxyXG4gICAgY2RrRHJhZ1xyXG4gID5cclxuICAgIDxkaXYgW25nQ2xhc3NdPVwiZ2V0TmdDbGFzcyhzdG9wKVwiPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiPlxyXG4gICAgICAgIDxtYXQtbGFiZWw+e3sgZ2V0UGxhY2Vob2xkZXIoc3RvcCkgfX08L21hdC1sYWJlbD5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIGlkPVwie3sgc3RvcC5pZCB9fVwiXHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZ2V0UGxhY2Vob2xkZXIoc3RvcClcIlxyXG4gICAgICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXHJcbiAgICAgICAgICBbbWF0VG9vbHRpcF09XCJzdG9wLnRleHRcIlxyXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIk51bWJlclwiXHJcbiAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgKGZvY3VzKT1cIm9uSW5wdXRGb2N1cyhzdG9wKVwiXHJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInN0b3AudGV4dFwiXHJcbiAgICAgICAgICAoa2V5dXApPVwic2V0U3RvcFRleHQoJGV2ZW50LCBzdG9wKVwiXHJcbiAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXHJcbiAgICAgICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIlxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgKHN0b3AudGV4dCB8fCBzdG9wLmNvb3JkaW5hdGVzKSAmJlxyXG4gICAgICAgICAgICBzdG9wV2l0aEhvdmVyICYmXHJcbiAgICAgICAgICAgIHN0b3AuaWQgPT09IHN0b3BXaXRoSG92ZXIuaWRcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgICAgIG1hdFN1ZmZpeFxyXG4gICAgICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXHJcbiAgICAgICAgICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5kaXJlY3Rpb25zRm9ybS5jbGVhclN0b3AnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgIGNvbG9yPVwid2FyblwiXHJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xlYXJcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cImNsZWFyU3RvcChzdG9wKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJjbG9zZVwiPjwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgIDxtYXQtYXV0b2NvbXBsZXRlXHJcbiAgICAgICAgICBbZGlzcGxheVdpdGhdPVwiZ2V0T3B0aW9uVGV4dFwiXHJcbiAgICAgICAgICAjYXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiXHJcbiAgICAgICAgICAob3B0aW9uU2VsZWN0ZWQpPVwiY2hvb3NlUHJvcG9zYWwoJGV2ZW50LCBzdG9wKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG1hdC1vcHRncm91cFxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgc291cmNlIG9mIHN0b3Auc2VhcmNoUHJvcG9zYWxzXCJcclxuICAgICAgICAgICAgW2xhYmVsXT1cInNvdXJjZS5zb3VyY2UudGl0bGVcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwic291cmNlLnNvdXJjZS5lbmFibGVkID09PSBmYWxzZVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uXHJcbiAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHJlc3VsdCBvZiBzb3VyY2UucmVzdWx0c1wiXHJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cInJlc3VsdFwiXHJcbiAgICAgICAgICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXHJcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwicmVzdWx0Lm1ldGEgPyByZXN1bHQubWV0YS50aXRsZSA6ICcnXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHt7IHJlc3VsdC5tZXRhID8gcmVzdWx0Lm1ldGEudGl0bGUgOiAnJyB9fVxyXG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8L21hdC1vcHRncm91cD5cclxuICAgICAgICA8L21hdC1hdXRvY29tcGxldGU+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2XHJcbiAgICAgICpuZ0lmPVwiIXN0b3BJc0RyYWdnZWQgJiYgc3RvcFdpdGhIb3ZlciAmJiBzdG9wLmlkID09PSBzdG9wV2l0aEhvdmVyLmlkXCJcclxuICAgICAgY2xhc3M9XCJpZ28tZm9ybS1idXR0b24tZ3JvdXBcIlxyXG4gICAgPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgY2xhc3M9XCJzd2lwZS12ZXJ0aWNhbFwiXHJcbiAgICAgICAgY2RrRHJhZ0hhbmRsZVxyXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXHJcbiAgICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXHJcbiAgICAgICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0ubW92ZVN0b3AnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJnZXN0dXJlLXN3aXBlLXZlcnRpY2FsXCI+PC9tYXQtaWNvbj5cclxuICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgKm5nSWY9XCIoc3RvcHNTdG9yZS5jb3VudCQgfCBhc3luYykgPiAyXCJcclxuICAgICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxyXG4gICAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxyXG4gICAgICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLmRpcmVjdGlvbnNGb3JtLnJlbW92ZVN0b3AnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICBjb2xvcj1cIndhcm5cIlxyXG4gICAgICAgIChjbGljayk9XCJyZW1vdmVTdG9wKHN0b3ApXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiZGVsZXRlXCI+PC9tYXQtaWNvbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
175
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DirectionsInputsComponent, decorators: [{
176
+ type: Component,
177
+ args: [{ selector: 'igo-directions-inputs', template: "<div cdkDropList class=\"stops-list\" (cdkDropListDropped)=\"drop($event)\">\r\n <div\r\n touchleave\r\n (touchenter)=\"onStopEnter(stop)\"\r\n (touchleave)=\"onStopLeave()\"\r\n (mouseover)=\"onStopEnter(stop)\"\r\n (mouseleave)=\"onStopLeave()\"\r\n (cdkDragStarted)=\"stopIsDragged = true\"\r\n (cdkDragEnded)=\"stopIsDragged = false\"\r\n cdkDragLockAxis=\"y\"\r\n class=\"stop-box\"\r\n *ngFor=\"let stop of stopsStore.view.all$() | async; let i = index\"\r\n cdkDrag\r\n >\r\n <div [ngClass]=\"getNgClass(stop)\">\r\n <mat-form-field subscriptSizing=\"dynamic\">\r\n <mat-label>{{ getPlaceholder(stop) }}</mat-label>\r\n <input\r\n id=\"{{ stop.id }}\"\r\n type=\"text\"\r\n [placeholder]=\"getPlaceholder(stop)\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"stop.text\"\r\n aria-label=\"Number\"\r\n matInput\r\n (focus)=\"onInputFocus(stop)\"\r\n [(ngModel)]=\"stop.text\"\r\n (keyup)=\"setStopText($event, stop)\"\r\n (keydown.enter)=\"$event.preventDefault()\"\r\n [matAutocomplete]=\"auto\"\r\n />\r\n <button\r\n *ngIf=\"\r\n (stop.text || stop.coordinates) &&\r\n stopWithHover &&\r\n stop.id === stopWithHover.id\r\n \"\r\n mat-icon-button\r\n matSuffix\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.geo.directionsForm.clearStop' | translate\"\r\n color=\"warn\"\r\n aria-label=\"Clear\"\r\n (click)=\"clearStop(stop)\"\r\n >\r\n <mat-icon svgIcon=\"close\"></mat-icon>\r\n </button>\r\n\r\n <mat-autocomplete\r\n [displayWith]=\"getOptionText\"\r\n #auto=\"matAutocomplete\"\r\n (optionSelected)=\"chooseProposal($event, stop)\"\r\n >\r\n <mat-optgroup\r\n *ngFor=\"let source of stop.searchProposals\"\r\n [label]=\"source.source.title\"\r\n [disabled]=\"source.source.enabled === false\"\r\n >\r\n <mat-option\r\n *ngFor=\"let result of source.results\"\r\n [value]=\"result\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"result.meta ? result.meta.title : ''\"\r\n >\r\n {{ result.meta ? result.meta.title : '' }}\r\n </mat-option>\r\n </mat-optgroup>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"!stopIsDragged && stopWithHover && stop.id === stopWithHover.id\"\r\n class=\"igo-form-button-group\"\r\n >\r\n <button\r\n class=\"swipe-vertical\"\r\n cdkDragHandle\r\n mat-icon-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.geo.directionsForm.moveStop' | translate\"\r\n color=\"primary\"\r\n >\r\n <mat-icon svgIcon=\"gesture-swipe-vertical\"></mat-icon>\r\n </button>\r\n\r\n <button\r\n *ngIf=\"(stopsStore.count$ | async) > 2\"\r\n mat-icon-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.geo.directionsForm.removeStop' | translate\"\r\n color=\"warn\"\r\n (click)=\"removeStop(stop)\"\r\n >\r\n <mat-icon svgIcon=\"delete\"></mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [":host .igo-input-container{display:flex;width:100%}:host .igo-input-container mat-form-field{flex:1}:host .igo-form-button-group{display:flex;align-items:center;padding-left:12px}:host .stops-list{max-width:100%;min-height:60px;display:block;background:#fff;border-radius:4px;overflow:hidden;padding:20px 10px}:host .swipe-vertical{cursor:move}:host .stop-box{color:#000000de;display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;background:#fff}:host .stop-box:not(:last-child){margin-bottom:16px}:host .cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}:host .cdk-drag-placeholder{opacity:0}:host .cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}:host .stops-list.cdk-drop-list-dragging .stop-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"] }]
178
+ }], ctorParameters: function () { return [{ type: i1.LanguageService }]; }, propDecorators: { stopsStore: [{
179
+ type: Input
180
+ }], stopsFeatureStore: [{
181
+ type: Input
182
+ }], projection: [{
183
+ type: Input
184
+ }], coordRoundedDecimals: [{
185
+ type: Input
186
+ }], debounce: [{
187
+ type: Input
188
+ }], length: [{
189
+ type: Input
190
+ }], stopInputHasFocus: [{
191
+ type: Output
192
+ }] } });
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy1pbnB1dHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGlyZWN0aW9ucy9kaXJlY3Rpb25zLWlucHV0cy9kaXJlY3Rpb25zLWlucHV0cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL2RpcmVjdGlvbnMtaW5wdXRzL2RpcmVjdGlvbnMtaW5wdXRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFN0MsT0FBTyxLQUFLLFlBQVksTUFBTSxlQUFlLENBQUM7QUFDOUMsT0FBTyxLQUFLLE1BQU0sTUFBTSxTQUFTLENBQUM7QUFFbEMsT0FBTyxjQUFjLE1BQU0sd0JBQXdCLENBQUM7QUFHcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTFFLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNuQixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFPaEUsTUFBTSxPQUFPLHlCQUF5QjtJQWVoQjtJQWRILFdBQVcsR0FBRyxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbkQsbUJBQW1CLEdBQUcsRUFB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QXpCLHlCQUF5QixnVENsQ3RDLGkrR0FxR0E7OzRGRG5FYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0UsdUJBQXVCO3NHQVN4QixVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFFSSxpQkFBaUI7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT3V0cHV0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IE1hdE9wdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcblxyXG5pbXBvcnQgKiBhcyBvbE9ic2VydmFibGUgZnJvbSAnb2wvT2JzZXJ2YWJsZSc7XHJcbmltcG9ydCAqIGFzIG9sUHJvaiBmcm9tICdvbC9wcm9qJztcclxuXHJcbmltcG9ydCBwb2ludE9uRmVhdHVyZSBmcm9tICdAdHVyZi9wb2ludC1vbi1mZWF0dXJlJztcclxuXHJcbmltcG9ydCB7IEZlYXR1cmUgfSBmcm9tICcuLi8uLi9mZWF0dXJlL3NoYXJlZC9mZWF0dXJlLmludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyByb3VuZENvb3JkVG8gfSBmcm9tICcuLi8uLi9tYXAvc2hhcmVkL21hcC51dGlscyc7XHJcbmltcG9ydCB7IERpcmVjdGlvblJlbGF0aXZlUG9zaXRpb25UeXBlIH0gZnJvbSAnLi4vc2hhcmVkL2RpcmVjdGlvbnMuZW51bSc7XHJcbmltcG9ydCB7IFN0b3AgfSBmcm9tICcuLi9zaGFyZWQvZGlyZWN0aW9ucy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge1xyXG4gIGNvbXB1dGVSZWxhdGl2ZVBvc2l0aW9uLFxyXG4gIHJlbW92ZVN0b3BGcm9tU3RvcmUsXHJcbiAgdXBkYXRlU3RvcmVTb3J0aW5nXHJcbn0gZnJvbSAnLi4vc2hhcmVkL2RpcmVjdGlvbnMudXRpbHMnO1xyXG5pbXBvcnQgeyBTdG9wc0ZlYXR1cmVTdG9yZSwgU3RvcHNTdG9yZSB9IGZyb20gJy4uL3NoYXJlZC9zdG9yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lnby1kaXJlY3Rpb25zLWlucHV0cycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RpcmVjdGlvbnMtaW5wdXRzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kaXJlY3Rpb25zLWlucHV0cy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEaXJlY3Rpb25zSW5wdXRzQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBwcml2YXRlIHJlYWRvbmx5IGludmFsaWRLZXlzID0gWydDb250cm9sJywgJ1NoaWZ0JywgJ0FsdCddO1xyXG4gIHByaXZhdGUgb25NYXBDbGlja0V2ZW50S2V5cyA9IFtdO1xyXG4gIHB1YmxpYyBzdG9wV2l0aEhvdmVyOiBTdG9wO1xyXG4gIHB1YmxpYyBzdG9wSXNEcmFnZ2VkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc3RvcHNTdG9yZTogU3RvcHNTdG9yZTtcclxuICBASW5wdXQoKSBzdG9wc0ZlYXR1cmVTdG9yZTogU3RvcHNGZWF0dXJlU3RvcmU7XHJcbiAgQElucHV0KCkgcHJvamVjdGlvbjogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGNvb3JkUm91bmRlZERlY2ltYWxzOiBudW1iZXIgPSA2O1xyXG5cclxuICBASW5wdXQoKSBkZWJvdW5jZTogbnVtYmVyID0gMjAwO1xyXG4gIEBJbnB1dCgpIGxlbmd0aDogbnVtYmVyID0gMjtcclxuXHJcbiAgQE91dHB1dCgpIHN0b3BJbnB1dEhhc0ZvY3VzOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPVxyXG4gICAgbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPihmYWxzZSk7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSkge31cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnVubGlzdGVuTWFwU2luZ2xlQ2xpY2soKTtcclxuICB9XHJcbiAgb25TdG9wRW50ZXIoc3RvcDogU3RvcCkge1xyXG4gICAgdGhpcy5zdG9wV2l0aEhvdmVyID0gc3RvcDtcclxuICB9XHJcbiAgb25TdG9wTGVhdmUoKSB7XHJcbiAgICB0aGlzLnN0b3BXaXRoSG92ZXIgPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBnZXRPcHRpb25UZXh0KG9wdGlvbikge1xyXG4gICAgaWYgKG9wdGlvbiBpbnN0YW5jZW9mIE9iamVjdCkge1xyXG4gICAgICByZXR1cm4gb3B0aW9uPy5tZXRhID8gb3B0aW9uLm1ldGEudGl0bGUgOiAnJztcclxuICAgIH1cclxuICAgIHJldHVybiBvcHRpb247XHJcbiAgfVxyXG5cclxuICBjaG9vc2VQcm9wb3NhbChcclxuICAgIGV2ZW50OiB7IHNvdXJjZTogTWF0QXV0b2NvbXBsZXRlOyBvcHRpb246IE1hdE9wdGlvbiB9LFxyXG4gICAgc3RvcDogU3RvcFxyXG4gICkge1xyXG4gICAgY29uc3QgcmVzdWx0OiBGZWF0dXJlID0gZXZlbnQub3B0aW9uLnZhbHVlO1xyXG4gICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICBsZXQgZ2VvbUNvb3JkO1xyXG4gICAgICBjb25zdCBnZW9tID0gcmVzdWx0Lmdlb21ldHJ5O1xyXG4gICAgICBpZiAoZ2VvbS50eXBlID09PSAnUG9pbnQnKSB7XHJcbiAgICAgICAgZ2VvbUNvb3JkID0gZ2VvbS5jb29yZGluYXRlcztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBwb2ludCA9IHBvaW50T25GZWF0dXJlKHJlc3VsdC5nZW9tZXRyeSk7XHJcbiAgICAgICAgZ2VvbUNvb3JkID0gW1xyXG4gICAgICAgICAgcG9pbnQuZ2VvbWV0cnkuY29vcmRpbmF0ZXNbMF0sXHJcbiAgICAgICAgICBwb2ludC5nZW9tZXRyeS5jb29yZGluYXRlc1sxXVxyXG4gICAgICAgIF07XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGdlb21Db29yZCkge1xyXG4gICAgICAgIHN0b3AuY29vcmRpbmF0ZXMgPSBnZW9tQ29vcmQ7XHJcbiAgICAgICAgc3RvcC50ZXh0ID0gcmVzdWx0Lm1ldGEudGl0bGU7XHJcbiAgICAgICAgdGhpcy5zdG9wc1N0b3JlLnVwZGF0ZShzdG9wKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0U3RvcFRleHQoZXZlbnQ6IEtleWJvYXJkRXZlbnQsIHN0b3A6IFN0b3ApIHtcclxuICAgIHRoaXMudW5saXN0ZW5NYXBTaW5nbGVDbGljaygpO1xyXG4gICAgY29uc3QgdGVybSA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XHJcbiAgICBpZiAodGVybS5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy5jbGVhclN0b3Aoc3RvcCk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudmFsaWRhdGVUZXJtKHRlcm0pKSB7XHJcbiAgICAgIHN0b3AudGV4dCA9IHRlcm07XHJcbiAgICAgIHRoaXMuc3RvcHNTdG9yZS51cGRhdGUoc3RvcCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZVRlcm0odGVybTogc3RyaW5nKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMua2V5SXNWYWxpZCh0ZXJtKSAmJlxyXG4gICAgICAodGVybS5sZW5ndGggPj0gdGhpcy5sZW5ndGggfHwgdGVybS5sZW5ndGggPT09IDApXHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGtleUlzVmFsaWQoa2V5OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmludmFsaWRLZXlzLmZpbmQoKHZhbHVlKSA9PiB2YWx1ZSA9PT0ga2V5KSA9PT0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgZ2V0TmdDbGFzcyhzdG9wOiBTdG9wKTogc3RyaW5nIHtcclxuICAgIGlmICghdGhpcy5zdG9wV2l0aEhvdmVyKSB7XHJcbiAgICAgIHJldHVybiAnaWdvLWlucHV0LWNvbnRhaW5lcic7XHJcbiAgICB9IGVsc2UgaWYgKHN0b3AuaWQgPT09IHRoaXMuc3RvcFdpdGhIb3Zlci5pZCkge1xyXG4gICAgICByZXR1cm4gJ2lnby1pbnB1dC1jb250YWluZXIgcmVkdWNlJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAnaWdvLWlucHV0LWNvbnRhaW5lcic7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRQbGFjZWhvbGRlcihzdG9wOiBTdG9wKTogc3RyaW5nIHtcclxuICAgIGxldCBleHRyYSA9ICcnO1xyXG4gICAgaWYgKHN0b3AucmVsYXRpdmVQb3NpdGlvbikge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgc3RvcC5yZWxhdGl2ZVBvc2l0aW9uID09PSBEaXJlY3Rpb25SZWxhdGl2ZVBvc2l0aW9uVHlwZS5JbnRlcm1lZGlhdGVcclxuICAgICAgKSB7XHJcbiAgICAgICAgZXh0cmEgPSAnICMnICsgc3RvcC5wb3NpdGlvbjtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICAgJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0uJyArIHN0b3AucmVsYXRpdmVQb3NpdGlvblxyXG4gICAgICAgICkgKyBleHRyYVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlU3RvcChzdG9wOiBTdG9wKSB7XHJcbiAgICByZW1vdmVTdG9wRnJvbVN0b3JlKHRoaXMuc3RvcHNTdG9yZSwgc3RvcCk7XHJcbiAgfVxyXG5cclxuICBjbGVhclN0b3Aoc3RvcDogU3RvcCkge1xyXG4gICAgdGhpcy5zdG9wc1N0b3JlLnVwZGF0ZSh7XHJcbiAgICAgIGlkOiBzdG9wLmlkLFxyXG4gICAgICByZWxhdGl2ZVBvc2l0aW9uOiBzdG9wLnJlbGF0aXZlUG9zaXRpb24sXHJcbiAgICAgIHBvc2l0aW9uOiBzdG9wLnBvc2l0aW9uXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPHN0cmluZ1tdPikge1xyXG4gICAgdGhpcy5tb3ZlU3RvcHMoZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbW92ZVN0b3BzKGZyb21JbmRleCwgdG9JbmRleCkge1xyXG4gICAgaWYgKGZyb21JbmRleCAhPT0gdG9JbmRleCkge1xyXG4gICAgICBjb25zdCBzdG9wcyA9IFsuLi50aGlzLnN0b3BzU3RvcmUudmlldy5hbGwoKV07XHJcbiAgICAgIG1vdmVJdGVtSW5BcnJheShzdG9wcywgZnJvbUluZGV4LCB0b0luZGV4KTtcclxuICAgICAgc3RvcHMubWFwKChzdG9wLCBpKSA9PiB7XHJcbiAgICAgICAgc3RvcC5yZWxhdGl2ZVBvc2l0aW9uID0gY29tcHV0ZVJlbGF0aXZlUG9zaXRpb24oaSwgc3RvcHMubGVuZ3RoKTtcclxuICAgICAgICBzdG9wLnBvc2l0aW9uID0gaTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuc3RvcHNTdG9yZS51cGRhdGVNYW55KHN0b3BzKTtcclxuICAgICAgdXBkYXRlU3RvcmVTb3J0aW5nKHRoaXMuc3RvcHNTdG9yZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbklucHV0Rm9jdXMoc3RvcDogU3RvcCkge1xyXG4gICAgaWYgKCFzdG9wLnRleHQgfHwgc3RvcC50ZXh0Py5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy51bmxpc3Rlbk1hcFNpbmdsZUNsaWNrKCk7XHJcbiAgICAgIHRoaXMuc3RvcElucHV0SGFzRm9jdXMuZW1pdCh0cnVlKTtcclxuICAgICAgdGhpcy5saXN0ZW5NYXBTaW5nbGVDbGljayhzdG9wKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgbGlzdGVuTWFwU2luZ2xlQ2xpY2soc3RvcDogU3RvcCkge1xyXG4gICAgY29uc3Qga2V5ID0gdGhpcy5zdG9wc0ZlYXR1cmVTdG9yZS5sYXllci5tYXAub2wub25jZShcclxuICAgICAgJ3NpbmdsZWNsaWNrJyxcclxuICAgICAgKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgY29uc3QgY2xpY2tDb29yZGluYXRlcyA9IG9sUHJvai50cmFuc2Zvcm0oXHJcbiAgICAgICAgICBldmVudC5jb29yZGluYXRlLFxyXG4gICAgICAgICAgdGhpcy5zdG9wc0ZlYXR1cmVTdG9yZS5sYXllci5tYXAucHJvamVjdGlvbixcclxuICAgICAgICAgIHRoaXMucHJvamVjdGlvblxyXG4gICAgICAgICk7XHJcbiAgICAgICAgY29uc3Qgcm91bmRlZENvb3JkID0gcm91bmRDb29yZFRvKFxyXG4gICAgICAgICAgY2xpY2tDb29yZGluYXRlcyBhcyBbbnVtYmVyLCBudW1iZXJdLFxyXG4gICAgICAgICAgdGhpcy5jb29yZFJvdW5kZWREZWNpbWFsc1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgc3RvcC50ZXh0ID0gcm91bmRlZENvb3JkLmpvaW4oJywnKTtcclxuICAgICAgICBzdG9wLmNvb3JkaW5hdGVzID0gcm91bmRlZENvb3JkO1xyXG4gICAgICAgIHRoaXMuc3RvcHNTdG9yZS51cGRhdGUoc3RvcCk7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnN0b3BJbnB1dEhhc0ZvY3VzLmVtaXQoZmFsc2UpO1xyXG4gICAgICAgIH0sIDUwMCk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICB0aGlzLm9uTWFwQ2xpY2tFdmVudEtleXMucHVzaChrZXkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1bmxpc3Rlbk1hcFNpbmdsZUNsaWNrKCkge1xyXG4gICAgdGhpcy5vbk1hcENsaWNrRXZlbnRLZXlzLm1hcCgoa2V5KSA9PiB7XHJcbiAgICAgIG9sT2JzZXJ2YWJsZS51bkJ5S2V5KGtleSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMub25NYXBDbGlja0V2ZW50S2V5cyA9IFtdO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNka0Ryb3BMaXN0IGNsYXNzPVwic3RvcHMtbGlzdFwiIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCI+XHJcbiAgPGRpdlxyXG4gICAgdG91Y2hsZWF2ZVxyXG4gICAgKHRvdWNoZW50ZXIpPVwib25TdG9wRW50ZXIoc3RvcClcIlxyXG4gICAgKHRvdWNobGVhdmUpPVwib25TdG9wTGVhdmUoKVwiXHJcbiAgICAobW91c2VvdmVyKT1cIm9uU3RvcEVudGVyKHN0b3ApXCJcclxuICAgIChtb3VzZWxlYXZlKT1cIm9uU3RvcExlYXZlKClcIlxyXG4gICAgKGNka0RyYWdTdGFydGVkKT1cInN0b3BJc0RyYWdnZWQgPSB0cnVlXCJcclxuICAgIChjZGtEcmFnRW5kZWQpPVwic3RvcElzRHJhZ2dlZCA9IGZhbHNlXCJcclxuICAgIGNka0RyYWdMb2NrQXhpcz1cInlcIlxyXG4gICAgY2xhc3M9XCJzdG9wLWJveFwiXHJcbiAgICAqbmdGb3I9XCJsZXQgc3RvcCBvZiBzdG9wc1N0b3JlLnZpZXcuYWxsJCgpIHwgYXN5bmM7IGxldCBpID0gaW5kZXhcIlxyXG4gICAgY2RrRHJhZ1xyXG4gID5cclxuICAgIDxkaXYgW25nQ2xhc3NdPVwiZ2V0TmdDbGFzcyhzdG9wKVwiPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiPlxyXG4gICAgICAgIDxtYXQtbGFiZWw+e3sgZ2V0UGxhY2Vob2xkZXIoc3RvcCkgfX08L21hdC1sYWJlbD5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIGlkPVwie3sgc3RvcC5pZCB9fVwiXHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZ2V0UGxhY2Vob2xkZXIoc3RvcClcIlxyXG4gICAgICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXHJcbiAgICAgICAgICBbbWF0VG9vbHRpcF09XCJzdG9wLnRleHRcIlxyXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIk51bWJlclwiXHJcbiAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgKGZvY3VzKT1cIm9uSW5wdXRGb2N1cyhzdG9wKVwiXHJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInN0b3AudGV4dFwiXHJcbiAgICAgICAgICAoa2V5dXApPVwic2V0U3RvcFRleHQoJGV2ZW50LCBzdG9wKVwiXHJcbiAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXHJcbiAgICAgICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIlxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgKHN0b3AudGV4dCB8fCBzdG9wLmNvb3JkaW5hdGVzKSAmJlxyXG4gICAgICAgICAgICBzdG9wV2l0aEhvdmVyICYmXHJcbiAgICAgICAgICAgIHN0b3AuaWQgPT09IHN0b3BXaXRoSG92ZXIuaWRcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgICAgIG1hdFN1ZmZpeFxyXG4gICAgICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXHJcbiAgICAgICAgICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5kaXJlY3Rpb25zRm9ybS5jbGVhclN0b3AnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgIGNvbG9yPVwid2FyblwiXHJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xlYXJcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cImNsZWFyU3RvcChzdG9wKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJjbG9zZVwiPjwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgIDxtYXQtYXV0b2NvbXBsZXRlXHJcbiAgICAgICAgICBbZGlzcGxheVdpdGhdPVwiZ2V0T3B0aW9uVGV4dFwiXHJcbiAgICAgICAgICAjYXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiXHJcbiAgICAgICAgICAob3B0aW9uU2VsZWN0ZWQpPVwiY2hvb3NlUHJvcG9zYWwoJGV2ZW50LCBzdG9wKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG1hdC1vcHRncm91cFxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgc291cmNlIG9mIHN0b3Auc2VhcmNoUHJvcG9zYWxzXCJcclxuICAgICAgICAgICAgW2xhYmVsXT1cInNvdXJjZS5zb3VyY2UudGl0bGVcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwic291cmNlLnNvdXJjZS5lbmFibGVkID09PSBmYWxzZVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uXHJcbiAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHJlc3VsdCBvZiBzb3VyY2UucmVzdWx0c1wiXHJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cInJlc3VsdFwiXHJcbiAgICAgICAgICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXHJcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwicmVzdWx0Lm1ldGEgPyByZXN1bHQubWV0YS50aXRsZSA6ICcnXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHt7IHJlc3VsdC5tZXRhID8gcmVzdWx0Lm1ldGEudGl0bGUgOiAnJyB9fVxyXG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8L21hdC1vcHRncm91cD5cclxuICAgICAgICA8L21hdC1hdXRvY29tcGxldGU+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2XHJcbiAgICAgICpuZ0lmPVwiIXN0b3BJc0RyYWdnZWQgJiYgc3RvcFdpdGhIb3ZlciAmJiBzdG9wLmlkID09PSBzdG9wV2l0aEhvdmVyLmlkXCJcclxuICAgICAgY2xhc3M9XCJpZ28tZm9ybS1idXR0b24tZ3JvdXBcIlxyXG4gICAgPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgY2xhc3M9XCJzd2lwZS12ZXJ0aWNhbFwiXHJcbiAgICAgICAgY2RrRHJhZ0hhbmRsZVxyXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXHJcbiAgICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXHJcbiAgICAgICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0ubW92ZVN0b3AnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJnZXN0dXJlLXN3aXBlLXZlcnRpY2FsXCI+PC9tYXQtaWNvbj5cclxuICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgKm5nSWY9XCIoc3RvcHNTdG9yZS5jb3VudCQgfCBhc3luYykgPiAyXCJcclxuICAgICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxyXG4gICAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxyXG4gICAgICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLmRpcmVjdGlvbnNGb3JtLnJlbW92ZVN0b3AnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICBjb2xvcj1cIndhcm5cIlxyXG4gICAgICAgIChjbGljayk9XCJyZW1vdmVTdG9wKHN0b3ApXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiZGVsZXRlXCI+PC9tYXQtaWNvbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -19,94 +19,6 @@ import * as i7 from "@angular/material/form-field";
19
19
  import * as i8 from "@angular/material/core";
20
20
  import * as i9 from "@angular/material/select";
21
21
  import * as i10 from "@ngx-translate/core";
22
- function DirectionsResultsComponent_div_0_mat_form_field_1_mat_option_6_Template(rf, ctx) { if (rf & 1) {
23
- i0.ɵɵelementStart(0, "mat-option", 9);
24
- i0.ɵɵtext(1);
25
- i0.ɵɵelementEnd();
26
- } if (rf & 2) {
27
- const direction_r5 = ctx.$implicit;
28
- const cnt_r6 = ctx.index;
29
- const ctx_r4 = i0.ɵɵnextContext(3);
30
- i0.ɵɵproperty("value", direction_r5);
31
- i0.ɵɵadvance(1);
32
- i0.ɵɵtextInterpolate3(" Option ", cnt_r6 + 1, " : ", ctx_r4.formatDistance(direction_r5.distance), " (", ctx_r4.formatDuration(direction_r5.duration), ") ");
33
- } }
34
- function DirectionsResultsComponent_div_0_mat_form_field_1_Template(rf, ctx) { if (rf & 1) {
35
- const _r8 = i0.ɵɵgetCurrentView();
36
- i0.ɵɵelementStart(0, "mat-form-field")(1, "mat-label");
37
- i0.ɵɵtext(2);
38
- i0.ɵɵpipe(3, "translate");
39
- i0.ɵɵelementEnd();
40
- i0.ɵɵelementStart(4, "mat-select", 7);
41
- i0.ɵɵlistener("selectionChange", function DirectionsResultsComponent_div_0_mat_form_field_1_Template_mat_select_selectionChange_4_listener() { i0.ɵɵrestoreView(_r8); const ctx_r7 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r7.changeRoute()); })("ngModelChange", function DirectionsResultsComponent_div_0_mat_form_field_1_Template_mat_select_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r9 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r9.activeDirection = $event); });
42
- i0.ɵɵpipe(5, "translate");
43
- i0.ɵɵtemplate(6, DirectionsResultsComponent_div_0_mat_form_field_1_mat_option_6_Template, 2, 4, "mat-option", 8);
44
- i0.ɵɵelementEnd()();
45
- } if (rf & 2) {
46
- const ctx_r1 = i0.ɵɵnextContext(2);
47
- i0.ɵɵadvance(2);
48
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 4, "igo.geo.directionsForm.drivingOptions"));
49
- i0.ɵɵadvance(2);
50
- i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(5, 6, "igo.geo.directionsForm.drivingOptions"));
51
- i0.ɵɵproperty("ngModel", ctx_r1.activeDirection);
52
- i0.ɵɵadvance(2);
53
- i0.ɵɵproperty("ngForOf", ctx_r1.directions);
54
- } }
55
- function DirectionsResultsComponent_div_0_mat_divider_2_Template(rf, ctx) { if (rf & 1) {
56
- i0.ɵɵelement(0, "mat-divider");
57
- } }
58
- function DirectionsResultsComponent_div_0_mat_list_item_8_Template(rf, ctx) { if (rf & 1) {
59
- const _r13 = i0.ɵɵgetCurrentView();
60
- i0.ɵɵelementStart(0, "mat-list-item", 10);
61
- i0.ɵɵlistener("mouseenter", function DirectionsResultsComponent_div_0_mat_list_item_8_Template_mat_list_item_mouseenter_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r13); const step_r10 = restoredCtx.$implicit; const ctx_r12 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r12.showSegment(step_r10)); })("click", function DirectionsResultsComponent_div_0_mat_list_item_8_Template_mat_list_item_click_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r13); const step_r10 = restoredCtx.$implicit; const ctx_r14 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r14.showSegment(step_r10, true)); });
62
- i0.ɵɵelement(1, "mat-icon", 11);
63
- i0.ɵɵelementStart(2, "span", 12);
64
- i0.ɵɵtext(3);
65
- i0.ɵɵelementEnd();
66
- i0.ɵɵelementStart(4, "span", 13);
67
- i0.ɵɵtext(5);
68
- i0.ɵɵelementEnd()();
69
- } if (rf & 2) {
70
- const step_r10 = ctx.$implicit;
71
- const cnt_r11 = ctx.index;
72
- const ctx_r3 = i0.ɵɵnextContext(2);
73
- i0.ɵɵadvance(1);
74
- i0.ɵɵpropertyInterpolate("svgIcon", ctx_r3.formatStep(step_r10, cnt_r11).image);
75
- i0.ɵɵproperty("ngClass", ctx_r3.formatStep(step_r10, cnt_r11).cssClass);
76
- i0.ɵɵadvance(2);
77
- i0.ɵɵtextInterpolate2(" ", cnt_r11 + 1, ". ", ctx_r3.formatStep(step_r10, cnt_r11).instruction, " ");
78
- i0.ɵɵadvance(2);
79
- i0.ɵɵtextInterpolate1(" ", ctx_r3.formatDistance(step_r10.distance), " ");
80
- } }
81
- function DirectionsResultsComponent_div_0_Template(rf, ctx) { if (rf & 1) {
82
- const _r16 = i0.ɵɵgetCurrentView();
83
- i0.ɵɵelementStart(0, "div", 1);
84
- i0.ɵɵtemplate(1, DirectionsResultsComponent_div_0_mat_form_field_1_Template, 7, 8, "mat-form-field", 2);
85
- i0.ɵɵtemplate(2, DirectionsResultsComponent_div_0_mat_divider_2_Template, 1, 0, "mat-divider", 2);
86
- i0.ɵɵelementStart(3, "mat-list", 3);
87
- i0.ɵɵlistener("mouseleave", function DirectionsResultsComponent_div_0_Template_mat_list_mouseleave_3_listener() { i0.ɵɵrestoreView(_r16); const ctx_r15 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r15.onStepsListBlur()); });
88
- i0.ɵɵelementStart(4, "h2", 4);
89
- i0.ɵɵtext(5);
90
- i0.ɵɵelementEnd();
91
- i0.ɵɵelementStart(6, "span", 5);
92
- i0.ɵɵtext(7);
93
- i0.ɵɵelementEnd();
94
- i0.ɵɵtemplate(8, DirectionsResultsComponent_div_0_mat_list_item_8_Template, 6, 5, "mat-list-item", 6);
95
- i0.ɵɵelement(9, "mat-divider");
96
- i0.ɵɵelementEnd()();
97
- } if (rf & 2) {
98
- const ctx_r0 = i0.ɵɵnextContext();
99
- i0.ɵɵadvance(1);
100
- i0.ɵɵproperty("ngIf", ctx_r0.directions && ctx_r0.directions.length > 1);
101
- i0.ɵɵadvance(1);
102
- i0.ɵɵproperty("ngIf", ctx_r0.directions && ctx_r0.directions.length === 0);
103
- i0.ɵɵadvance(3);
104
- i0.ɵɵtextInterpolate(ctx_r0.activeDirection.title);
105
- i0.ɵɵadvance(2);
106
- i0.ɵɵtextInterpolate2(" ", ctx_r0.formatDistance(ctx_r0.activeDirection.distance), ", ", ctx_r0.formatDuration(ctx_r0.activeDirection.duration), " ");
107
- i0.ɵɵadvance(1);
108
- i0.ɵɵproperty("ngForOf", ctx_r0.activeDirection.steps);
109
- } }
110
22
  export class DirectionsResultsComponent {
111
23
  languageService;
112
24
  cdRef;
@@ -197,19 +109,15 @@ export class DirectionsResultsComponent {
197
109
  this.stepFeatureStore.layer.map.viewController.zoomToExtent(feature.getGeometry().getExtent());
198
110
  }
199
111
  }
200
- static ɵfac = function DirectionsResultsComponent_Factory(t) { return new (t || DirectionsResultsComponent)(i0.ɵɵdirectiveInject(i1.LanguageService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
201
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DirectionsResultsComponent, selectors: [["igo-directions-results"]], inputs: { routesFeatureStore: "routesFeatureStore", stepFeatureStore: "stepFeatureStore" }, decls: 1, vars: 1, consts: [["class", "igo-input-container", 4, "ngIf"], [1, "igo-input-container"], [4, "ngIf"], [3, "mouseleave"], ["mat-header", "", 1, "igo-route-title"], [1, "mat-caption"], ["class", "igo-steps", "igoListItem", "", 3, "mouseenter", "click", 4, "ngFor", "ngForOf"], [3, "placeholder", "ngModel", "selectionChange", "ngModelChange"], [3, "value", 4, "ngFor", "ngForOf"], [3, "value"], ["igoListItem", "", 1, "igo-steps", 3, "mouseenter", "click"], ["matListItemIcon", "", 3, "ngClass", "svgIcon"], [1, "igo-step-text"], ["matListItemMeta", ""]], template: function DirectionsResultsComponent_Template(rf, ctx) { if (rf & 1) {
202
- i0.ɵɵtemplate(0, DirectionsResultsComponent_div_0_Template, 10, 6, "div", 0);
203
- } if (rf & 2) {
204
- i0.ɵɵproperty("ngIf", ctx.directions && ctx.activeDirection);
205
- } }, dependencies: [i2.NgClass, i2.NgForOf, i2.NgIf, i3.NgControlStatus, i3.NgModel, i4.MatIcon, i5.MatList, i5.MatListItem, i5.MatListItemIcon, i6.MatDivider, i5.MatListItemMeta, i7.MatFormField, i7.MatLabel, i8.MatOption, i9.MatSelect, i10.TranslatePipe], styles: [".igo-input-container[_ngcontent-%COMP%]{width:100%;padding:20px 10px;box-sizing:border-box}.igo-input-container[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{width:70%}.igo-route-title[_ngcontent-%COMP%]{font-weight:700}.igo-steps[_ngcontent-%COMP%]{cursor:pointer;padding:35px 0}.igo-steps[_ngcontent-%COMP%] .igo-step-text[_ngcontent-%COMP%]{overflow-wrap:break-word;word-wrap:break-word;white-space:pre-wrap}.mat-mdc-list-item[_ngcontent-%COMP%]{word-wrap:break-word!important;white-space:pre-wrap!important}.rotate-90[_ngcontent-%COMP%]{transform:rotate(90deg)}.rotate-45[_ngcontent-%COMP%]{transform:rotate(45deg)}.rotate-270[_ngcontent-%COMP%]{transform:rotate(270deg)}.rotate-250[_ngcontent-%COMP%]{transform:rotate(250deg)}.rotate-290[_ngcontent-%COMP%]{transform:rotate(290deg)}.icon-flipped[_ngcontent-%COMP%]{transform:scaleY(-1)}"] });
112
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DirectionsResultsComponent, deps: [{ token: i1.LanguageService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
113
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DirectionsResultsComponent, selector: "igo-directions-results", inputs: { routesFeatureStore: "routesFeatureStore", stepFeatureStore: "stepFeatureStore" }, ngImport: i0, template: "<div class=\"igo-input-container\" *ngIf=\"directions && activeDirection\">\r\n <mat-form-field *ngIf=\"directions && directions.length > 1\">\r\n <mat-label>{{\r\n 'igo.geo.directionsForm.drivingOptions' | translate\r\n }}</mat-label>\r\n <mat-select\r\n placeholder=\"{{ 'igo.geo.directionsForm.drivingOptions' | translate }}\"\r\n (selectionChange)=\"changeRoute()\"\r\n [(ngModel)]=\"activeDirection\"\r\n >\r\n <mat-option\r\n *ngFor=\"let direction of directions; let cnt = index\"\r\n [value]=\"direction\"\r\n >\r\n Option {{ cnt + 1 }} : {{ formatDistance(direction.distance) }} ({{\r\n formatDuration(direction.duration)\r\n }})\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <mat-divider *ngIf=\"directions && directions.length === 0\"></mat-divider>\r\n\r\n <mat-list (mouseleave)=\"onStepsListBlur()\">\r\n <h2 mat-header class=\"igo-route-title\">{{ activeDirection.title }}</h2>\r\n <span class=\"mat-caption\">\r\n {{ formatDistance(activeDirection.distance) }},\r\n {{ formatDuration(activeDirection.duration) }}\r\n </span>\r\n <mat-list-item\r\n class=\"igo-steps\"\r\n (mouseenter)=\"showSegment(step)\"\r\n (click)=\"showSegment(step, true)\"\r\n *ngFor=\"let step of activeDirection.steps; let cnt = index\"\r\n igoListItem\r\n >\r\n <mat-icon\r\n [ngClass]=\"formatStep(step, cnt).cssClass\"\r\n matListItemIcon\r\n svgIcon=\"{{ formatStep(step, cnt).image }}\"\r\n >\r\n </mat-icon>\r\n\r\n <span class=\"igo-step-text\">\r\n {{ cnt + 1 }}. {{ formatStep(step, cnt).instruction }}\r\n </span>\r\n <span matListItemMeta>\r\n {{ formatDistance(step.distance) }}\r\n </span>\r\n </mat-list-item>\r\n\r\n <mat-divider></mat-divider>\r\n </mat-list>\r\n</div>\r\n", styles: [".igo-input-container{width:100%;padding:20px 10px;box-sizing:border-box}.igo-input-container mat-form-field{width:70%}.igo-route-title{font-weight:700}.igo-steps{cursor:pointer;padding:35px 0}.igo-steps .igo-step-text{overflow-wrap:break-word;word-wrap:break-word;white-space:pre-wrap}.mat-mdc-list-item{word-wrap:break-word!important;white-space:pre-wrap!important}.rotate-90{transform:rotate(90deg)}.rotate-45{transform:rotate(45deg)}.rotate-270{transform:rotate(270deg)}.rotate-250{transform:rotate(250deg)}.rotate-290{transform:rotate(290deg)}.icon-flipped{transform:scaleY(-1)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i5.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i5.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "component", type: i6.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i5.MatListItemMeta, selector: "[matListItemMeta]" }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "component", type: i8.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i9.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }] });
206
114
  }
207
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DirectionsResultsComponent, [{
208
- type: Component,
209
- args: [{ selector: 'igo-directions-results', template: "<div class=\"igo-input-container\" *ngIf=\"directions && activeDirection\">\r\n <mat-form-field *ngIf=\"directions && directions.length > 1\">\r\n <mat-label>{{\r\n 'igo.geo.directionsForm.drivingOptions' | translate\r\n }}</mat-label>\r\n <mat-select\r\n placeholder=\"{{ 'igo.geo.directionsForm.drivingOptions' | translate }}\"\r\n (selectionChange)=\"changeRoute()\"\r\n [(ngModel)]=\"activeDirection\"\r\n >\r\n <mat-option\r\n *ngFor=\"let direction of directions; let cnt = index\"\r\n [value]=\"direction\"\r\n >\r\n Option {{ cnt + 1 }} : {{ formatDistance(direction.distance) }} ({{\r\n formatDuration(direction.duration)\r\n }})\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <mat-divider *ngIf=\"directions && directions.length === 0\"></mat-divider>\r\n\r\n <mat-list (mouseleave)=\"onStepsListBlur()\">\r\n <h2 mat-header class=\"igo-route-title\">{{ activeDirection.title }}</h2>\r\n <span class=\"mat-caption\">\r\n {{ formatDistance(activeDirection.distance) }},\r\n {{ formatDuration(activeDirection.duration) }}\r\n </span>\r\n <mat-list-item\r\n class=\"igo-steps\"\r\n (mouseenter)=\"showSegment(step)\"\r\n (click)=\"showSegment(step, true)\"\r\n *ngFor=\"let step of activeDirection.steps; let cnt = index\"\r\n igoListItem\r\n >\r\n <mat-icon\r\n [ngClass]=\"formatStep(step, cnt).cssClass\"\r\n matListItemIcon\r\n svgIcon=\"{{ formatStep(step, cnt).image }}\"\r\n >\r\n </mat-icon>\r\n\r\n <span class=\"igo-step-text\">\r\n {{ cnt + 1 }}. {{ formatStep(step, cnt).instruction }}\r\n </span>\r\n <span matListItemMeta>\r\n {{ formatDistance(step.distance) }}\r\n </span>\r\n </mat-list-item>\r\n\r\n <mat-divider></mat-divider>\r\n </mat-list>\r\n</div>\r\n", styles: [".igo-input-container{width:100%;padding:20px 10px;box-sizing:border-box}.igo-input-container mat-form-field{width:70%}.igo-route-title{font-weight:700}.igo-steps{cursor:pointer;padding:35px 0}.igo-steps .igo-step-text{overflow-wrap:break-word;word-wrap:break-word;white-space:pre-wrap}.mat-mdc-list-item{word-wrap:break-word!important;white-space:pre-wrap!important}.rotate-90{transform:rotate(90deg)}.rotate-45{transform:rotate(45deg)}.rotate-270{transform:rotate(270deg)}.rotate-250{transform:rotate(250deg)}.rotate-290{transform:rotate(290deg)}.icon-flipped{transform:scaleY(-1)}\n"] }]
210
- }], function () { return [{ type: i1.LanguageService }, { type: i0.ChangeDetectorRef }]; }, { routesFeatureStore: [{
211
- type: Input
212
- }], stepFeatureStore: [{
213
- type: Input
214
- }] }); })();
215
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy1yZXN1bHRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2RpcmVjdGlvbnMvZGlyZWN0aW9ucy1yZXN1bHRzL2RpcmVjdGlvbnMtcmVzdWx0cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL2RpcmVjdGlvbnMtcmVzdWx0cy9kaXJlY3Rpb25zLXJlc3VsdHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxFQUdOLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFN0MsT0FBTyxTQUFTLE1BQU0sWUFBWSxDQUFDO0FBQ25DLE9BQU8sU0FBUyxNQUFNLG1CQUFtQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxNQUFNLE1BQU0sU0FBUyxDQUFDO0FBR2xDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBTTFELE9BQU8sRUFDTCxjQUFjLEVBQ2QsY0FBYyxFQUNkLGlCQUFpQixFQUNsQixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7Ozs7O0lDcEJqRSxxQ0FHQztJQUNDLFlBR0Y7SUFBQSxpQkFBYTs7Ozs7SUFMWCxvQ0FBbUI7SUFFbkIsZUFHRjtJQUhFLDRKQUdGOzs7O0lBaEJKLHNDQUE0RCxnQkFBQTtJQUMvQyxZQUVUOztJQUFBLGlCQUFZO0lB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LEVBQUU7Z0JBQ1YsRUFBRSxFQUFFLFFBQVE7Z0JBQ1osSUFBSTtnQkFDSixJQUFJLEVBQUUsYUFBYSxDQUFDLE1BQU07YUFDM0I7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osRUFBRSxFQUFFLFFBQVE7Z0JBQ1osUUFBUSxFQUFFLHNCQUFzQixHQUFHLENBQUM7YUFDckM7WUFDRCxFQUFFLEVBQUUsT0FBTztTQUNaLENBQUM7UUFDRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzFDLElBQUksWUFBWSxFQUFFO1lBQ2hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQ3pELE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLEVBQXNDLENBQ3RFLENBQUM7U0FDSDtJQUNILENBQUM7b0ZBMUhVLDBCQUEwQjs2REFBMUIsMEJBQTBCO1lDckN2Qyw0RUFxRE07O1lBckQ0Qiw0REFBbUM7Ozt1RkRxQ3hELDBCQUEwQjtjQUx0QyxTQUFTOzJCQUNFLHdCQUF3QjtrR0FVekIsa0JBQWtCO2tCQUExQixLQUFLO1lBQ0csZ0JBQWdCO2tCQUF4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcblxyXG5pbXBvcnQgb2xGZWF0dXJlIGZyb20gJ29sL0ZlYXR1cmUnO1xyXG5pbXBvcnQgT2xHZW9KU09OIGZyb20gJ29sL2Zvcm1hdC9HZW9KU09OJztcclxuaW1wb3J0ICogYXMgb2xHZW9tIGZyb20gJ29sL2dlb20nO1xyXG5cclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IEZFQVRVUkUgfSBmcm9tICcuLi8uLi9mZWF0dXJlL3NoYXJlZC9mZWF0dXJlLmVudW1zJztcclxuaW1wb3J0IHsgRmVhdHVyZUdlb21ldHJ5IH0gZnJvbSAnLi4vLi4vZmVhdHVyZS9zaGFyZWQvZmVhdHVyZS5pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgRGlyZWN0aW9uVHlwZSB9IGZyb20gJy4uL3NoYXJlZC9kaXJlY3Rpb25zLmVudW0nO1xyXG5pbXBvcnQge1xyXG4gIERpcmVjdGlvbixcclxuICBGZWF0dXJlV2l0aFN0ZXAsXHJcbiAgSWdvU3RlcFxyXG59IGZyb20gJy4uL3NoYXJlZC9kaXJlY3Rpb25zLmludGVyZmFjZSc7XHJcbmltcG9ydCB7XHJcbiAgZm9ybWF0RGlzdGFuY2UsXHJcbiAgZm9ybWF0RHVyYXRpb24sXHJcbiAgZm9ybWF0SW5zdHJ1Y3Rpb25cclxufSBmcm9tICcuLi9zaGFyZWQvZGlyZWN0aW9ucy51dGlscyc7XHJcbmltcG9ydCB7IFJvdXRlc0ZlYXR1cmVTdG9yZSwgU3RlcEZlYXR1cmVTdG9yZSB9IGZyb20gJy4uL3NoYXJlZC9zdG9yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lnby1kaXJlY3Rpb25zLXJlc3VsdHMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kaXJlY3Rpb25zLXJlc3VsdHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RpcmVjdGlvbnMtcmVzdWx0cy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEaXJlY3Rpb25zUmVzdWx0c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwdWJsaWMgYWN0aXZlRGlyZWN0aW9uOiBEaXJlY3Rpb247XHJcbiAgcHVibGljIGRpcmVjdGlvbnM6IERpcmVjdGlvbltdO1xyXG5cclxuICBwcml2YXRlIGVudGl0aWVzJCQ6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgQElucHV0KCkgcm91dGVzRmVhdHVyZVN0b3JlOiBSb3V0ZXNGZWF0dXJlU3RvcmU7XHJcbiAgQElucHV0KCkgc3RlcEZlYXR1cmVTdG9yZTogU3RlcEZlYXR1cmVTdG9yZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5lbnRpdGllcyQkID0gdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUuZW50aXRpZXMkXHJcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSgyMDApKVxyXG4gICAgICAuc3Vic2NyaWJlKChlbnRpdGllcykgPT4ge1xyXG4gICAgICAgIGNvbnN0IGFjdGl2ZUZlYXR1cmVXaXRoRGlyZWN0aW9uID0gZW50aXRpZXMuZmluZChcclxuICAgICAgICAgIChlbnRpdHkpID0+IGVudGl0eS5wcm9wZXJ0aWVzLmFjdGl2ZVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5kaXJlY3Rpb25zID0gZW50aXRpZXMubWFwKChlbnRpdHkpID0+IGVudGl0eS5wcm9wZXJ0aWVzLmRpcmVjdGlvbik7XHJcbiAgICAgICAgaWYgKGFjdGl2ZUZlYXR1cmVXaXRoRGlyZWN0aW9uKSB7XHJcbiAgICAgICAgICB0aGlzLmFjdGl2ZURpcmVjdGlvbiA9XHJcbiAgICAgICAgICAgIGFjdGl2ZUZlYXR1cmVXaXRoRGlyZWN0aW9uLnByb3BlcnRpZXMuZGlyZWN0aW9uO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmFjdGl2ZURpcmVjdGlvbiA9IHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmVudGl0aWVzJCQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIGNoYW5nZVJvdXRlKCkge1xyXG4gICAgdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUuZW50aXRpZXMkLnZhbHVlLm1hcChcclxuICAgICAgKGVudGl0eSkgPT4gKGVudGl0eS5wcm9wZXJ0aWVzLmFjdGl2ZSA9ICFlbnRpdHkucHJvcGVydGllcy5hY3RpdmUpXHJcbiAgICApO1xyXG4gICAgdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUubGF5ZXIub2xcclxuICAgICAgLmdldFNvdXJjZSgpXHJcbiAgICAgIC5nZXRGZWF0dXJlcygpXHJcbiAgICAgIC5tYXAoKGZlYXR1cmUpID0+IGZlYXR1cmUuc2V0KCdhY3RpdmUnLCAhZmVhdHVyZS5nZXQoJ2FjdGl2ZScpKSk7XHJcbiAgfVxyXG5cclxuICBmb3JtYXREaXN0YW5jZShkaXN0YW5jZTogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBmb3JtYXREaXN0YW5jZShkaXN0YW5jZSk7XHJcbiAgfVxyXG5cclxuICBmb3JtYXREdXJhdGlvbihkdXJhdGlvbjogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBmb3JtYXREdXJhdGlvbihkdXJhdGlvbik7XHJcbiAgfVxyXG5cclxuICBmb3JtYXRTdGVwKHN0ZXAsIGNudCkge1xyXG4gICAgcmV0dXJuIGZvcm1hdEluc3RydWN0aW9uKFxyXG4gICAgICBzdGVwLm1hbmV1dmVyLnR5cGUsXHJcbiAgICAgIHN0ZXAubWFuZXV2ZXIubW9kaWZpZXIsXHJcbiAgICAgIHN0ZXAubmFtZSxcclxuICAgICAgc3RlcC5tYW5ldXZlci5iZWFyaW5nX2FmdGVyLFxyXG4gICAgICBjbnQsXHJcbiAgICAgIHN0ZXAubWFuZXV2ZXIuZXhpdCxcclxuICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UsXHJcbiAgICAgIGNudCA9PT0gdGhpcy5hY3RpdmVEaXJlY3Rpb24uc3RlcHMubGVuZ3RoIC0gMVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG9uU3RlcHNMaXN0Qmx1cigpIHtcclxuICAgIHRoaXMuc3RlcEZlYXR1cmVTdG9yZS5jbGVhcigpO1xyXG4gIH1cclxuXHJcbiAgc2hvd1NlZ21lbnQoc3RlcDogSWdvU3RlcCwgem9vbVRvRXh0ZW50ID0gZmFsc2UpIHtcclxuICAgIHRoaXMuc2hvd1JvdXRlU2VnbWVudEdlb21ldHJ5KHN0ZXAsIHpvb21Ub0V4dGVudCk7XHJcbiAgfVxyXG5cclxuICBzaG93Um91dGVTZWdtZW50R2VvbWV0cnkoc3RlcDogSWdvU3RlcCwgem9vbVRvRXh0ZW50ID0gZmFsc2UpIHtcclxuICAgIGNvbnN0IGNvb3JkaW5hdGVzID0gc3RlcC5nZW9tZXRyeS5jb29yZGluYXRlcztcclxuICAgIGNvbnN0IHZlcnRleElkID0gJ3ZlcnRleCc7XHJcbiAgICBjb25zdCBnZW9tZXRyeTQzMjYgPSBuZXcgb2xHZW9tLkxpbmVTdHJpbmcoY29vcmRpbmF0ZXMpO1xyXG4gICAgY29uc3QgZ2VvbWV0cnlNYXBQcm9qZWN0aW9uID0gZ2VvbWV0cnk0MzI2LnRyYW5zZm9ybShcclxuICAgICAgJ0VQU0c6NDMyNicsXHJcbiAgICAgIHRoaXMuc3RlcEZlYXR1cmVTdG9yZS5sYXllci5tYXAucHJvamVjdGlvblxyXG4gICAgKTtcclxuICAgIGNvbnN0IHJvdXRlU2VnbWVudENvb3JkaW5hdGVzID0gKFxyXG4gICAgICBnZW9tZXRyeU1hcFByb2plY3Rpb24gYXMgYW55XHJcbiAgICApLmdldENvb3JkaW5hdGVzKCk7XHJcbiAgICBjb25zdCBsYXN0UG9pbnQgPSByb3V0ZVNlZ21lbnRDb29yZGluYXRlc1swXTtcclxuXHJcbiAgICBjb25zdCBnZW9tZXRyeSA9IG5ldyBvbEdlb20uUG9pbnQobGFzdFBvaW50KTtcclxuICAgIGNvbnN0IGZlYXR1cmUgPSBuZXcgb2xGZWF0dXJlKHsgZ2VvbWV0cnkgfSk7XHJcblxyXG4gICAgY29uc3QgZ2VvanNvbkdlb20gPSBuZXcgT2xHZW9KU09OKCkud3JpdGVHZW9tZXRyeU9iamVjdChnZW9tZXRyeSwge1xyXG4gICAgICBmZWF0dXJlUHJvamVjdGlvbjogdGhpcy5zdGVwRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5wcm9qZWN0aW9uLFxyXG4gICAgICBkYXRhUHJvamVjdGlvbjogdGhpcy5zdGVwRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5wcm9qZWN0aW9uXHJcbiAgICB9KSBhcyBGZWF0dXJlR2VvbWV0cnk7XHJcblxyXG4gICAgY29uc3QgcHJldmlvdXNWZXJ0ZXggPSB0aGlzLnN0ZXBGZWF0dXJlU3RvcmUuZ2V0KHZlcnRleElkKTtcclxuICAgIGNvbnN0IHByZXZpb3VzVmVydGV4UmV2aXNpb24gPSBwcmV2aW91c1ZlcnRleFxyXG4gICAgICA/IHByZXZpb3VzVmVydGV4Lm1ldGEucmV2aXNpb25cclxuICAgICAgOiAwO1xyXG5cclxuICAgIGNvbnN0IHN0ZXBGZWF0dXJlOiBGZWF0dXJlV2l0aFN0ZXAgPSB7XHJcbiAgICAgIHR5cGU6IEZFQVRVUkUsXHJcbiAgICAgIGdlb21ldHJ5OiBnZW9qc29uR2VvbSxcclxuICAgICAgcHJvamVjdGlvbjogdGhpcy5zdGVwRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5wcm9qZWN0aW9uLFxyXG4gICAgICBwcm9wZXJ0aWVzOiB7XHJcbiAgICAgICAgaWQ6IHZlcnRleElkLFxyXG4gICAgICAgIHN0ZXAsXHJcbiAgICAgICAgdHlwZTogRGlyZWN0aW9uVHlwZS5WZXJ0ZXhcclxuICAgICAgfSxcclxuICAgICAgbWV0YToge1xyXG4gICAgICAgIGlkOiB2ZXJ0ZXhJZCxcclxuICAgICAgICByZXZpc2lvbjogcHJldmlvdXNWZXJ0ZXhSZXZpc2lvbiArIDFcclxuICAgICAgfSxcclxuICAgICAgb2w6IGZlYXR1cmVcclxuICAgIH07XHJcbiAgICB0aGlzLnN0ZXBGZWF0dXJlU3RvcmUudXBkYXRlKHN0ZXBGZWF0dXJlKTtcclxuICAgIGlmICh6b29tVG9FeHRlbnQpIHtcclxuICAgICAgdGhpcy5zdGVwRmVhdHVyZVN0b3JlLmxheWVyLm1hcC52aWV3Q29udHJvbGxlci56b29tVG9FeHRlbnQoXHJcbiAgICAgICAgZmVhdHVyZS5nZXRHZW9tZXRyeSgpLmdldEV4dGVudCgpIGFzIFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJpZ28taW5wdXQtY29udGFpbmVyXCIgKm5nSWY9XCJkaXJlY3Rpb25zICYmIGFjdGl2ZURpcmVjdGlvblwiPlxyXG4gIDxtYXQtZm9ybS1maWVsZCAqbmdJZj1cImRpcmVjdGlvbnMgJiYgZGlyZWN0aW9ucy5sZW5ndGggPiAxXCI+XHJcbiAgICA8bWF0LWxhYmVsPnt7XHJcbiAgICAgICdpZ28uZ2VvLmRpcmVjdGlvbnNGb3JtLmRyaXZpbmdPcHRpb25zJyB8IHRyYW5zbGF0ZVxyXG4gICAgfX08L21hdC1sYWJlbD5cclxuICAgIDxtYXQtc2VsZWN0XHJcbiAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0uZHJpdmluZ09wdGlvbnMnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJjaGFuZ2VSb3V0ZSgpXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJhY3RpdmVEaXJlY3Rpb25cIlxyXG4gICAgPlxyXG4gICAgICA8bWF0LW9wdGlvblxyXG4gICAgICAgICpuZ0Zvcj1cImxldCBkaXJlY3Rpb24gb2YgZGlyZWN0aW9uczsgbGV0IGNudCA9IGluZGV4XCJcclxuICAgICAgICBbdmFsdWVdPVwiZGlyZWN0aW9uXCJcclxuICAgICAgPlxyXG4gICAgICAgIE9wdGlvbiB7eyBjbnQgKyAxIH19IDoge3sgZm9ybWF0RGlzdGFuY2UoZGlyZWN0aW9uLmRpc3RhbmNlKSB9fSAoe3tcclxuICAgICAgICAgIGZvcm1hdER1cmF0aW9uKGRpcmVjdGlvbi5kdXJhdGlvbilcclxuICAgICAgICB9fSlcclxuICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgPC9tYXQtc2VsZWN0PlxyXG4gIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gIDxtYXQtZGl2aWRlciAqbmdJZj1cImRpcmVjdGlvbnMgJiYgZGlyZWN0aW9ucy5sZW5ndGggPT09IDBcIj48L21hdC1kaXZpZGVyPlxyXG5cclxuICA8bWF0LWxpc3QgKG1vdXNlbGVhdmUpPVwib25TdGVwc0xpc3RCbHVyKClcIj5cclxuICAgIDxoMiBtYXQtaGVhZGVyIGNsYXNzPVwiaWdvLXJvdXRlLXRpdGxlXCI+e3sgYWN0aXZlRGlyZWN0aW9uLnRpdGxlIH19PC9oMj5cclxuICAgIDxzcGFuIGNsYXNzPVwibWF0LWNhcHRpb25cIj5cclxuICAgICAge3sgZm9ybWF0RGlzdGFuY2UoYWN0aXZlRGlyZWN0aW9uLmRpc3RhbmNlKSB9fSxcclxuICAgICAge3sgZm9ybWF0RHVyYXRpb24oYWN0aXZlRGlyZWN0aW9uLmR1cmF0aW9uKSB9fVxyXG4gICAgPC9zcGFuPlxyXG4gICAgPG1hdC1saXN0LWl0ZW1cclxuICAgICAgY2xhc3M9XCJpZ28tc3RlcHNcIlxyXG4gICAgICAobW91c2VlbnRlcik9XCJzaG93U2VnbWVudChzdGVwKVwiXHJcbiAgICAgIChjbGljayk9XCJzaG93U2VnbWVudChzdGVwLCB0cnVlKVwiXHJcbiAgICAgICpuZ0Zvcj1cImxldCBzdGVwIG9mIGFjdGl2ZURpcmVjdGlvbi5zdGVwczsgbGV0IGNudCA9IGluZGV4XCJcclxuICAgICAgaWdvTGlzdEl0ZW1cclxuICAgID5cclxuICAgICAgPG1hdC1pY29uXHJcbiAgICAgICAgW25nQ2xhc3NdPVwiZm9ybWF0U3RlcChzdGVwLCBjbnQpLmNzc0NsYXNzXCJcclxuICAgICAgICBtYXRMaXN0SXRlbUljb25cclxuICAgICAgICBzdmdJY29uPVwie3sgZm9ybWF0U3RlcChzdGVwLCBjbnQpLmltYWdlIH19XCJcclxuICAgICAgPlxyXG4gICAgICA8L21hdC1pY29uPlxyXG5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJpZ28tc3RlcC10ZXh0XCI+XHJcbiAgICAgICAge3sgY250ICsgMSB9fS4ge3sgZm9ybWF0U3RlcChzdGVwLCBjbnQpLmluc3RydWN0aW9uIH19XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgICAgPHNwYW4gbWF0TGlzdEl0ZW1NZXRhPlxyXG4gICAgICAgIHt7IGZvcm1hdERpc3RhbmNlKHN0ZXAuZGlzdGFuY2UpIH19XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIDwvbWF0LWxpc3QtaXRlbT5cclxuXHJcbiAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cclxuICA8L21hdC1saXN0PlxyXG48L2Rpdj5cclxuIl19
115
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DirectionsResultsComponent, decorators: [{
116
+ type: Component,
117
+ args: [{ selector: 'igo-directions-results', template: "<div class=\"igo-input-container\" *ngIf=\"directions && activeDirection\">\r\n <mat-form-field *ngIf=\"directions && directions.length > 1\">\r\n <mat-label>{{\r\n 'igo.geo.directionsForm.drivingOptions' | translate\r\n }}</mat-label>\r\n <mat-select\r\n placeholder=\"{{ 'igo.geo.directionsForm.drivingOptions' | translate }}\"\r\n (selectionChange)=\"changeRoute()\"\r\n [(ngModel)]=\"activeDirection\"\r\n >\r\n <mat-option\r\n *ngFor=\"let direction of directions; let cnt = index\"\r\n [value]=\"direction\"\r\n >\r\n Option {{ cnt + 1 }} : {{ formatDistance(direction.distance) }} ({{\r\n formatDuration(direction.duration)\r\n }})\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <mat-divider *ngIf=\"directions && directions.length === 0\"></mat-divider>\r\n\r\n <mat-list (mouseleave)=\"onStepsListBlur()\">\r\n <h2 mat-header class=\"igo-route-title\">{{ activeDirection.title }}</h2>\r\n <span class=\"mat-caption\">\r\n {{ formatDistance(activeDirection.distance) }},\r\n {{ formatDuration(activeDirection.duration) }}\r\n </span>\r\n <mat-list-item\r\n class=\"igo-steps\"\r\n (mouseenter)=\"showSegment(step)\"\r\n (click)=\"showSegment(step, true)\"\r\n *ngFor=\"let step of activeDirection.steps; let cnt = index\"\r\n igoListItem\r\n >\r\n <mat-icon\r\n [ngClass]=\"formatStep(step, cnt).cssClass\"\r\n matListItemIcon\r\n svgIcon=\"{{ formatStep(step, cnt).image }}\"\r\n >\r\n </mat-icon>\r\n\r\n <span class=\"igo-step-text\">\r\n {{ cnt + 1 }}. {{ formatStep(step, cnt).instruction }}\r\n </span>\r\n <span matListItemMeta>\r\n {{ formatDistance(step.distance) }}\r\n </span>\r\n </mat-list-item>\r\n\r\n <mat-divider></mat-divider>\r\n </mat-list>\r\n</div>\r\n", styles: [".igo-input-container{width:100%;padding:20px 10px;box-sizing:border-box}.igo-input-container mat-form-field{width:70%}.igo-route-title{font-weight:700}.igo-steps{cursor:pointer;padding:35px 0}.igo-steps .igo-step-text{overflow-wrap:break-word;word-wrap:break-word;white-space:pre-wrap}.mat-mdc-list-item{word-wrap:break-word!important;white-space:pre-wrap!important}.rotate-90{transform:rotate(90deg)}.rotate-45{transform:rotate(45deg)}.rotate-270{transform:rotate(270deg)}.rotate-250{transform:rotate(250deg)}.rotate-290{transform:rotate(290deg)}.icon-flipped{transform:scaleY(-1)}\n"] }]
118
+ }], ctorParameters: function () { return [{ type: i1.LanguageService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { routesFeatureStore: [{
119
+ type: Input
120
+ }], stepFeatureStore: [{
121
+ type: Input
122
+ }] } });
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy1yZXN1bHRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2RpcmVjdGlvbnMvZGlyZWN0aW9ucy1yZXN1bHRzL2RpcmVjdGlvbnMtcmVzdWx0cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL2RpcmVjdGlvbnMtcmVzdWx0cy9kaXJlY3Rpb25zLXJlc3VsdHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxFQUdOLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFN0MsT0FBTyxTQUFTLE1BQU0sWUFBWSxDQUFDO0FBQ25DLE9BQU8sU0FBUyxNQUFNLG1CQUFtQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxNQUFNLE1BQU0sU0FBUyxDQUFDO0FBR2xDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBTTFELE9BQU8sRUFDTCxjQUFjLEVBQ2QsY0FBYyxFQUNkLGlCQUFpQixFQUNsQixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7Ozs7QUFPdkUsTUFBTSxPQUFPLDBCQUEwQjtJQVUzQjtJQUNBO0lBVkgsZUFBZSxDQUFZO0lBQzNCLFVBQVUsQ0FBYztJQUV2QixVQUFVLENBQWU7SUFFeEIsa0JBQWtCLENBQXFCO0lBQ3ZDLGdCQUFnQixDQUFtQjtJQUU1QyxZQUNVLGVBQWdDLEVBQ2hDLEtBQXdCO1FBRHhCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxVQUFLLEdBQUwsS0FBSyxDQUFtQjtJQUMvQixDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVM7YUFDaEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUN2QixTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUN0QixNQUFNLDBCQUEwQixHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQzlDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FDckMsQ0FBQztZQUNGLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN4RSxJQUFJLDBCQUEwQixFQUFFO2dCQUM5QixJQUFJLENBQUMsZUFBZTtvQkFDbEIsMEJBQTBCLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQzthQUNuRDtpQkFBTTtnQkFDTCxJQUFJLENBQUMsZUFBZSxHQUFHLFNBQVMsQ0FBQzthQUNsQztZQUNELElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQ3pDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FDbkUsQ0FBQztRQUNGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsRUFBRTthQUM3QixTQUFTLEVBQUU7YUFDWCxXQUFXLEVBQUU7YUFDYixHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELGNBQWMsQ0FBQyxRQUFnQjtRQUM3QixPQUFPLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsY0FBYyxDQUFDLFFBQWdCO1FBQzdCLE9BQU8sY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxVQUFVLENBQUMsSUFBSSxFQUFFLEdBQUc7UUFDbEIsT0FBTyxpQkFBaUIsQ0FDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUN0QixJQUFJLENBQUMsSUFBSSxFQUNULElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUMzQixHQUFHLEVBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQ2xCLElBQUksQ0FBQyxlQUFlLEVBQ3BCLEdBQUcsS0FBSyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUM5QyxDQUFDO0lBQ0osQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFhLEVBQUUsWUFBWSxHQUFHLEtBQUs7UUFDN0MsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsd0JBQXdCLENBQUMsSUFBYSxFQUFFLFlBQVksR0FBRyxLQUFLO1FBQzFELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO1FBQzlDLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUMxQixNQUFNLFlBQVksR0FBRyxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDeEQsTUFBTSxxQkFBcUIsR0FBRyxZQUFZLENBQUMsU0FBUyxDQUNsRCxXQUFXLEVBQ1gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUMzQyxDQUFDO1FBQ0YsTUFBTSx1QkFBdUIsR0FDM0IscUJBQ0QsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNuQixNQUFNLFNBQVMsR0FBRyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU3QyxNQUFNLFFBQVEsR0FBRyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxTQUFTLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBRTVDLE1BQU0sV0FBVyxHQUFHLElBQUksU0FBUyxFQUFFLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFO1lBQ2hFLGlCQUFpQixFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVU7WUFDN0QsY0FBYyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVU7U0FDM0QsQ0FBb0IsQ0FBQztRQUV0QixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNELE1BQU0sc0JBQXNCLEdBQUcsY0FBYztZQUMzQyxDQUFDLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRO1lBQzlCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFTixNQUFNLFdBQVcsR0FBb0I7WUFDbkMsSUFBSSxFQUFFLE9BQU87WUFDYixRQUFRLEVBQUUsV0FBVztZQUNyQixVQUFVLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBVTtZQUN0RCxVQUFVLEVBQUU7Z0JBQ1YsRUFBRSxFQUFFLFFBQVE7Z0JBQ1osSUFBSTtnQkFDSixJQUFJLEVBQUUsYUFBYSxDQUFDLE1BQU07YUFDM0I7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osRUFBRSxFQUFFLFFBQVE7Z0JBQ1osUUFBUSxFQUFFLHNCQUFzQixHQUFHLENBQUM7YUFDckM7WUFDRCxFQUFFLEVBQUUsT0FBTztTQUNaLENBQUM7UUFDRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzFDLElBQUksWUFBWSxFQUFFO1lBQ2hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQ3pELE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLEVBQXNDLENBQ3RFLENBQUM7U0FDSDtJQUNILENBQUM7d0dBMUhVLDBCQUEwQjs0RkFBMUIsMEJBQTBCLDBKQ3JDdkMsaTREQXNEQTs7NEZEakJhLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDRSx3QkFBd0I7c0lBVXpCLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcclxuXHJcbmltcG9ydCBvbEZlYXR1cmUgZnJvbSAnb2wvRmVhdHVyZSc7XHJcbmltcG9ydCBPbEdlb0pTT04gZnJvbSAnb2wvZm9ybWF0L0dlb0pTT04nO1xyXG5pbXBvcnQgKiBhcyBvbEdlb20gZnJvbSAnb2wvZ2VvbSc7XHJcblxyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgRkVBVFVSRSB9IGZyb20gJy4uLy4uL2ZlYXR1cmUvc2hhcmVkL2ZlYXR1cmUuZW51bXMnO1xyXG5pbXBvcnQgeyBGZWF0dXJlR2VvbWV0cnkgfSBmcm9tICcuLi8uLi9mZWF0dXJlL3NoYXJlZC9mZWF0dXJlLmludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBEaXJlY3Rpb25UeXBlIH0gZnJvbSAnLi4vc2hhcmVkL2RpcmVjdGlvbnMuZW51bSc7XHJcbmltcG9ydCB7XHJcbiAgRGlyZWN0aW9uLFxyXG4gIEZlYXR1cmVXaXRoU3RlcCxcclxuICBJZ29TdGVwXHJcbn0gZnJvbSAnLi4vc2hhcmVkL2RpcmVjdGlvbnMuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtcclxuICBmb3JtYXREaXN0YW5jZSxcclxuICBmb3JtYXREdXJhdGlvbixcclxuICBmb3JtYXRJbnN0cnVjdGlvblxyXG59IGZyb20gJy4uL3NoYXJlZC9kaXJlY3Rpb25zLnV0aWxzJztcclxuaW1wb3J0IHsgUm91dGVzRmVhdHVyZVN0b3JlLCBTdGVwRmVhdHVyZVN0b3JlIH0gZnJvbSAnLi4vc2hhcmVkL3N0b3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWdvLWRpcmVjdGlvbnMtcmVzdWx0cycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RpcmVjdGlvbnMtcmVzdWx0cy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZGlyZWN0aW9ucy1yZXN1bHRzLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIERpcmVjdGlvbnNSZXN1bHRzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyBhY3RpdmVEaXJlY3Rpb246IERpcmVjdGlvbjtcclxuICBwdWJsaWMgZGlyZWN0aW9uczogRGlyZWN0aW9uW107XHJcblxyXG4gIHByaXZhdGUgZW50aXRpZXMkJDogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBASW5wdXQoKSByb3V0ZXNGZWF0dXJlU3RvcmU6IFJvdXRlc0ZlYXR1cmVTdG9yZTtcclxuICBASW5wdXQoKSBzdGVwRmVhdHVyZVN0b3JlOiBTdGVwRmVhdHVyZVN0b3JlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmVudGl0aWVzJCQgPSB0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZS5lbnRpdGllcyRcclxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDIwMCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGVudGl0aWVzKSA9PiB7XHJcbiAgICAgICAgY29uc3QgYWN0aXZlRmVhdHVyZVdpdGhEaXJlY3Rpb24gPSBlbnRpdGllcy5maW5kKFxyXG4gICAgICAgICAgKGVudGl0eSkgPT4gZW50aXR5LnByb3BlcnRpZXMuYWN0aXZlXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmRpcmVjdGlvbnMgPSBlbnRpdGllcy5tYXAoKGVudGl0eSkgPT4gZW50aXR5LnByb3BlcnRpZXMuZGlyZWN0aW9uKTtcclxuICAgICAgICBpZiAoYWN0aXZlRmVhdHVyZVdpdGhEaXJlY3Rpb24pIHtcclxuICAgICAgICAgIHRoaXMuYWN0aXZlRGlyZWN0aW9uID1cclxuICAgICAgICAgICAgYWN0aXZlRmVhdHVyZVdpdGhEaXJlY3Rpb24ucHJvcGVydGllcy5kaXJlY3Rpb247XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuYWN0aXZlRGlyZWN0aW9uID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZW50aXRpZXMkJC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlUm91dGUoKSB7XHJcbiAgICB0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZS5lbnRpdGllcyQudmFsdWUubWFwKFxyXG4gICAgICAoZW50aXR5KSA9PiAoZW50aXR5LnByb3BlcnRpZXMuYWN0aXZlID0gIWVudGl0eS5wcm9wZXJ0aWVzLmFjdGl2ZSlcclxuICAgICk7XHJcbiAgICB0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZS5sYXllci5vbFxyXG4gICAgICAuZ2V0U291cmNlKClcclxuICAgICAgLmdldEZlYXR1cmVzKClcclxuICAgICAgLm1hcCgoZmVhdHVyZSkgPT4gZmVhdHVyZS5zZXQoJ2FjdGl2ZScsICFmZWF0dXJlLmdldCgnYWN0aXZlJykpKTtcclxuICB9XHJcblxyXG4gIGZvcm1hdERpc3RhbmNlKGRpc3RhbmNlOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGZvcm1hdERpc3RhbmNlKGRpc3RhbmNlKTtcclxuICB9XHJcblxyXG4gIGZvcm1hdER1cmF0aW9uKGR1cmF0aW9uOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGZvcm1hdER1cmF0aW9uKGR1cmF0aW9uKTtcclxuICB9XHJcblxyXG4gIGZvcm1hdFN0ZXAoc3RlcCwgY250KSB7XHJcbiAgICByZXR1cm4gZm9ybWF0SW5zdHJ1Y3Rpb24oXHJcbiAgICAgIHN0ZXAubWFuZXV2ZXIudHlwZSxcclxuICAgICAgc3RlcC5tYW5ldXZlci5tb2RpZmllcixcclxuICAgICAgc3RlcC5uYW1lLFxyXG4gICAgICBzdGVwLm1hbmV1dmVyLmJlYXJpbmdfYWZ0ZXIsXHJcbiAgICAgIGNudCxcclxuICAgICAgc3RlcC5tYW5ldXZlci5leGl0LFxyXG4gICAgICB0aGlzLmxhbmd1YWdlU2VydmljZSxcclxuICAgICAgY250ID09PSB0aGlzLmFjdGl2ZURpcmVjdGlvbi5zdGVwcy5sZW5ndGggLSAxXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgb25TdGVwc0xpc3RCbHVyKCkge1xyXG4gICAgdGhpcy5zdGVwRmVhdHVyZVN0b3JlLmNsZWFyKCk7XHJcbiAgfVxyXG5cclxuICBzaG93U2VnbWVudChzdGVwOiBJZ29TdGVwLCB6b29tVG9FeHRlbnQgPSBmYWxzZSkge1xyXG4gICAgdGhpcy5zaG93Um91dGVTZWdtZW50R2VvbWV0cnkoc3RlcCwgem9vbVRvRXh0ZW50KTtcclxuICB9XHJcblxyXG4gIHNob3dSb3V0ZVNlZ21lbnRHZW9tZXRyeShzdGVwOiBJZ29TdGVwLCB6b29tVG9FeHRlbnQgPSBmYWxzZSkge1xyXG4gICAgY29uc3QgY29vcmRpbmF0ZXMgPSBzdGVwLmdlb21ldHJ5LmNvb3JkaW5hdGVzO1xyXG4gICAgY29uc3QgdmVydGV4SWQgPSAndmVydGV4JztcclxuICAgIGNvbnN0IGdlb21ldHJ5NDMyNiA9IG5ldyBvbEdlb20uTGluZVN0cmluZyhjb29yZGluYXRlcyk7XHJcbiAgICBjb25zdCBnZW9tZXRyeU1hcFByb2plY3Rpb24gPSBnZW9tZXRyeTQzMjYudHJhbnNmb3JtKFxyXG4gICAgICAnRVBTRzo0MzI2JyxcclxuICAgICAgdGhpcy5zdGVwRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5wcm9qZWN0aW9uXHJcbiAgICApO1xyXG4gICAgY29uc3Qgcm91dGVTZWdtZW50Q29vcmRpbmF0ZXMgPSAoXHJcbiAgICAgIGdlb21ldHJ5TWFwUHJvamVjdGlvbiBhcyBhbnlcclxuICAgICkuZ2V0Q29vcmRpbmF0ZXMoKTtcclxuICAgIGNvbnN0IGxhc3RQb2ludCA9IHJvdXRlU2VnbWVudENvb3JkaW5hdGVzWzBdO1xyXG5cclxuICAgIGNvbnN0IGdlb21ldHJ5ID0gbmV3IG9sR2VvbS5Qb2ludChsYXN0UG9pbnQpO1xyXG4gICAgY29uc3QgZmVhdHVyZSA9IG5ldyBvbEZlYXR1cmUoeyBnZW9tZXRyeSB9KTtcclxuXHJcbiAgICBjb25zdCBnZW9qc29uR2VvbSA9IG5ldyBPbEdlb0pTT04oKS53cml0ZUdlb21ldHJ5T2JqZWN0KGdlb21ldHJ5LCB7XHJcbiAgICAgIGZlYXR1cmVQcm9qZWN0aW9uOiB0aGlzLnN0ZXBGZWF0dXJlU3RvcmUubGF5ZXIubWFwLnByb2plY3Rpb24sXHJcbiAgICAgIGRhdGFQcm9qZWN0aW9uOiB0aGlzLnN0ZXBGZWF0dXJlU3RvcmUubGF5ZXIubWFwLnByb2plY3Rpb25cclxuICAgIH0pIGFzIEZlYXR1cmVHZW9tZXRyeTtcclxuXHJcbiAgICBjb25zdCBwcmV2aW91c1ZlcnRleCA9IHRoaXMuc3RlcEZlYXR1cmVTdG9yZS5nZXQodmVydGV4SWQpO1xyXG4gICAgY29uc3QgcHJldmlvdXNWZXJ0ZXhSZXZpc2lvbiA9IHByZXZpb3VzVmVydGV4XHJcbiAgICAgID8gcHJldmlvdXNWZXJ0ZXgubWV0YS5yZXZpc2lvblxyXG4gICAgICA6IDA7XHJcblxyXG4gICAgY29uc3Qgc3RlcEZlYXR1cmU6IEZlYXR1cmVXaXRoU3RlcCA9IHtcclxuICAgICAgdHlwZTogRkVBVFVSRSxcclxuICAgICAgZ2VvbWV0cnk6IGdlb2pzb25HZW9tLFxyXG4gICAgICBwcm9qZWN0aW9uOiB0aGlzLnN0ZXBGZWF0dXJlU3RvcmUubGF5ZXIubWFwLnByb2plY3Rpb24sXHJcbiAgICAgIHByb3BlcnRpZXM6IHtcclxuICAgICAgICBpZDogdmVydGV4SWQsXHJcbiAgICAgICAgc3RlcCxcclxuICAgICAgICB0eXBlOiBEaXJlY3Rpb25UeXBlLlZlcnRleFxyXG4gICAgICB9LFxyXG4gICAgICBtZXRhOiB7XHJcbiAgICAgICAgaWQ6IHZlcnRleElkLFxyXG4gICAgICAgIHJldmlzaW9uOiBwcmV2aW91c1ZlcnRleFJldmlzaW9uICsgMVxyXG4gICAgICB9LFxyXG4gICAgICBvbDogZmVhdHVyZVxyXG4gICAgfTtcclxuICAgIHRoaXMuc3RlcEZlYXR1cmVTdG9yZS51cGRhdGUoc3RlcEZlYXR1cmUpO1xyXG4gICAgaWYgKHpvb21Ub0V4dGVudCkge1xyXG4gICAgICB0aGlzLnN0ZXBGZWF0dXJlU3RvcmUubGF5ZXIubWFwLnZpZXdDb250cm9sbGVyLnpvb21Ub0V4dGVudChcclxuICAgICAgICBmZWF0dXJlLmdldEdlb21ldHJ5KCkuZ2V0RXh0ZW50KCkgYXMgW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl1cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImlnby1pbnB1dC1jb250YWluZXJcIiAqbmdJZj1cImRpcmVjdGlvbnMgJiYgYWN0aXZlRGlyZWN0aW9uXCI+XHJcbiAgPG1hdC1mb3JtLWZpZWxkICpuZ0lmPVwiZGlyZWN0aW9ucyAmJiBkaXJlY3Rpb25zLmxlbmd0aCA+IDFcIj5cclxuICAgIDxtYXQtbGFiZWw+e3tcclxuICAgICAgJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0uZHJpdmluZ09wdGlvbnMnIHwgdHJhbnNsYXRlXHJcbiAgICB9fTwvbWF0LWxhYmVsPlxyXG4gICAgPG1hdC1zZWxlY3RcclxuICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnaWdvLmdlby5kaXJlY3Rpb25zRm9ybS5kcml2aW5nT3B0aW9ucycgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cImNoYW5nZVJvdXRlKClcIlxyXG4gICAgICBbKG5nTW9kZWwpXT1cImFjdGl2ZURpcmVjdGlvblwiXHJcbiAgICA+XHJcbiAgICAgIDxtYXQtb3B0aW9uXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IGRpcmVjdGlvbiBvZiBkaXJlY3Rpb25zOyBsZXQgY250ID0gaW5kZXhcIlxyXG4gICAgICAgIFt2YWx1ZV09XCJkaXJlY3Rpb25cIlxyXG4gICAgICA+XHJcbiAgICAgICAgT3B0aW9uIHt7IGNudCArIDEgfX0gOiB7eyBmb3JtYXREaXN0YW5jZShkaXJlY3Rpb24uZGlzdGFuY2UpIH19ICh7e1xyXG4gICAgICAgICAgZm9ybWF0RHVyYXRpb24oZGlyZWN0aW9uLmR1cmF0aW9uKVxyXG4gICAgICAgIH19KVxyXG4gICAgICA8L21hdC1vcHRpb24+XHJcbiAgICA8L21hdC1zZWxlY3Q+XHJcbiAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgPG1hdC1kaXZpZGVyICpuZ0lmPVwiZGlyZWN0aW9ucyAmJiBkaXJlY3Rpb25zLmxlbmd0aCA9PT0gMFwiPjwvbWF0LWRpdmlkZXI+XHJcblxyXG4gIDxtYXQtbGlzdCAobW91c2VsZWF2ZSk9XCJvblN0ZXBzTGlzdEJsdXIoKVwiPlxyXG4gICAgPGgyIG1hdC1oZWFkZXIgY2xhc3M9XCJpZ28tcm91dGUtdGl0bGVcIj57eyBhY3RpdmVEaXJlY3Rpb24udGl0bGUgfX08L2gyPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJtYXQtY2FwdGlvblwiPlxyXG4gICAgICB7eyBmb3JtYXREaXN0YW5jZShhY3RpdmVEaXJlY3Rpb24uZGlzdGFuY2UpIH19LFxyXG4gICAgICB7eyBmb3JtYXREdXJhdGlvbihhY3RpdmVEaXJlY3Rpb24uZHVyYXRpb24pIH19XHJcbiAgICA8L3NwYW4+XHJcbiAgICA8bWF0LWxpc3QtaXRlbVxyXG4gICAgICBjbGFzcz1cImlnby1zdGVwc1wiXHJcbiAgICAgIChtb3VzZWVudGVyKT1cInNob3dTZWdtZW50KHN0ZXApXCJcclxuICAgICAgKGNsaWNrKT1cInNob3dTZWdtZW50KHN0ZXAsIHRydWUpXCJcclxuICAgICAgKm5nRm9yPVwibGV0IHN0ZXAgb2YgYWN0aXZlRGlyZWN0aW9uLnN0ZXBzOyBsZXQgY250ID0gaW5kZXhcIlxyXG4gICAgICBpZ29MaXN0SXRlbVxyXG4gICAgPlxyXG4gICAgICA8bWF0LWljb25cclxuICAgICAgICBbbmdDbGFzc109XCJmb3JtYXRTdGVwKHN0ZXAsIGNudCkuY3NzQ2xhc3NcIlxyXG4gICAgICAgIG1hdExpc3RJdGVtSWNvblxyXG4gICAgICAgIHN2Z0ljb249XCJ7eyBmb3JtYXRTdGVwKHN0ZXAsIGNudCkuaW1hZ2UgfX1cIlxyXG4gICAgICA+XHJcbiAgICAgIDwvbWF0LWljb24+XHJcblxyXG4gICAgICA8c3BhbiBjbGFzcz1cImlnby1zdGVwLXRleHRcIj5cclxuICAgICAgICB7eyBjbnQgKyAxIH19LiB7eyBmb3JtYXRTdGVwKHN0ZXAsIGNudCkuaW5zdHJ1Y3Rpb24gfX1cclxuICAgICAgPC9zcGFuPlxyXG4gICAgICA8c3BhbiBtYXRMaXN0SXRlbU1ldGE+XHJcbiAgICAgICAge3sgZm9ybWF0RGlzdGFuY2Uoc3RlcC5kaXN0YW5jZSkgfX1cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9tYXQtbGlzdC1pdGVtPlxyXG5cclxuICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxyXG4gIDwvbWF0LWxpc3Q+XHJcbjwvZGl2PlxyXG4iXX0=