@igo2/geo 16.0.2 → 16.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (327) hide show
  1. package/esm2022/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +28 -132
  2. package/esm2022/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +22 -86
  3. package/esm2022/lib/catalog/catalog-browser/catalog-browser.component.mjs +22 -65
  4. package/esm2022/lib/catalog/catalog-browser/catalog-browser.module.mjs +42 -47
  5. package/esm2022/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +13 -129
  6. package/esm2022/lib/catalog/catalog-library/catalog-library-item.component.mjs +14 -55
  7. package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +27 -57
  8. package/esm2022/lib/catalog/catalog-library/catalog-library.module.mjs +46 -54
  9. package/esm2022/lib/catalog/catalog.module.mjs +28 -29
  10. package/esm2022/lib/catalog/shared/catalog.abstract.mjs +1 -1
  11. package/esm2022/lib/catalog/shared/catalog.interface.mjs +1 -1
  12. package/esm2022/lib/catalog/shared/catalog.service.mjs +14 -14
  13. package/esm2022/lib/datasource/datasource.module.mjs +12 -12
  14. package/esm2022/lib/datasource/shared/capabilities.interface.mjs +9 -0
  15. package/esm2022/lib/datasource/shared/capabilities.service.mjs +10 -17
  16. package/esm2022/lib/datasource/shared/datasource.service.mjs +11 -11
  17. package/esm2022/lib/datasource/shared/datasources/wfs.service.mjs +9 -9
  18. package/esm2022/lib/datasource/shared/datasources/wms-datasource.interface.mjs +1 -1
  19. package/esm2022/lib/datasource/shared/datasources/wms-datasource.mjs +1 -1
  20. package/esm2022/lib/datasource/shared/index.mjs +2 -1
  21. package/esm2022/lib/datasource/shared/options/options-api.service.mjs +12 -12
  22. package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +19 -102
  23. package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +21 -122
  24. package/esm2022/lib/directions/directions-results/directions-results.component.mjs +11 -103
  25. package/esm2022/lib/directions/directions-sources/osrm-directions-source.mjs +6 -6
  26. package/esm2022/lib/directions/directions.component.mjs +25 -47
  27. package/esm2022/lib/directions/directions.module.mjs +61 -62
  28. package/esm2022/lib/directions/shared/directions.service.mjs +15 -14
  29. package/esm2022/lib/download/download-button/download-button.component.mjs +11 -26
  30. package/esm2022/lib/download/download.module.mjs +22 -23
  31. package/esm2022/lib/download/shared/download.service.mjs +9 -9
  32. package/esm2022/lib/draw/draw/draw-layer-popup.component.mjs +9 -35
  33. package/esm2022/lib/draw/draw/draw-popup.component.mjs +20 -299
  34. package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +7 -40
  35. package/esm2022/lib/draw/draw/draw.component.mjs +56 -322
  36. package/esm2022/lib/draw/draw/draw.module.mjs +64 -65
  37. package/esm2022/lib/draw/drawingTool.module.mjs +12 -13
  38. package/esm2022/lib/draw/shared/draw-icon.service.mjs +9 -9
  39. package/esm2022/lib/draw/shared/draw.interface.mjs +1 -1
  40. package/esm2022/lib/environment/environment.interface.mjs +1 -1
  41. package/esm2022/lib/feature/feature-details/feature-details.component.mjs +21 -171
  42. package/esm2022/lib/feature/feature-details/feature-details.directive.mjs +17 -19
  43. package/esm2022/lib/feature/feature-details/feature-details.module.mjs +22 -23
  44. package/esm2022/lib/feature/feature-form/feature-form.component.mjs +16 -34
  45. package/esm2022/lib/feature/feature-form/feature-form.module.mjs +12 -13
  46. package/esm2022/lib/feature/feature.module.mjs +13 -14
  47. package/esm2022/lib/feature/shared/feature-store.utils.mjs +2 -2
  48. package/esm2022/lib/feature/shared/feature.interfaces.mjs +1 -1
  49. package/esm2022/lib/feature/shared/feature.utils.mjs +1 -1
  50. package/esm2022/lib/feature/shared/store.mjs +1 -1
  51. package/esm2022/lib/feature/shared/strategies/geo-properties.mjs +1 -1
  52. package/esm2022/lib/feature/shared/strategies/in-map-extent.mjs +1 -1
  53. package/esm2022/lib/feature/shared/strategies/selection.mjs +2 -2
  54. package/esm2022/lib/filter/filter.module.mjs +158 -197
  55. package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +24 -49
  56. package/esm2022/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +32 -397
  57. package/esm2022/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +39 -625
  58. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +20 -47
  59. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +44 -340
  60. package/esm2022/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +36 -58
  61. package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +26 -126
  62. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +11 -11
  63. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +17 -40
  64. package/esm2022/lib/filter/shared/filterable-datasource.pipe.mjs +9 -9
  65. package/esm2022/lib/filter/shared/ogc-filter-time.service.mjs +6 -6
  66. package/esm2022/lib/filter/shared/ogc-filter.service.mjs +6 -6
  67. package/esm2022/lib/filter/shared/spatial-filter.service.mjs +9 -9
  68. package/esm2022/lib/filter/shared/time-filter.service.mjs +6 -6
  69. package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +73 -386
  70. package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +23 -87
  71. package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +37 -86
  72. package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +24 -49
  73. package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +20 -268
  74. package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +20 -72
  75. package/esm2022/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +11 -11
  76. package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +13 -24
  77. package/esm2022/lib/geo.module.mjs +54 -55
  78. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +36 -39
  79. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +32 -97
  80. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +30 -31
  81. package/esm2022/lib/geometry/geometry.module.mjs +13 -14
  82. package/esm2022/lib/geometry/shared/geometry.interfaces.mjs +1 -1
  83. package/esm2022/lib/import-export/export-button/export-button.component.mjs +11 -24
  84. package/esm2022/lib/import-export/import-export/import-export.component.mjs +25 -434
  85. package/esm2022/lib/import-export/import-export.module.mjs +54 -55
  86. package/esm2022/lib/import-export/shared/drop-geo-file.directive.mjs +20 -22
  87. package/esm2022/lib/import-export/shared/export.service.mjs +10 -10
  88. package/esm2022/lib/import-export/shared/import.service.mjs +9 -9
  89. package/esm2022/lib/layer/index.mjs +1 -1
  90. package/esm2022/lib/layer/layer-item/layer-item.component.mjs +47 -127
  91. package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +16 -183
  92. package/esm2022/lib/layer/layer-legend-item/layer-legend-item.component.mjs +16 -26
  93. package/esm2022/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +11 -11
  94. package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +26 -130
  95. package/esm2022/lib/layer/layer-list/layer-list-binding.directive.mjs +13 -13
  96. package/esm2022/lib/layer/layer-list/layer-list.component.mjs +50 -272
  97. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +21 -72
  98. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.service.mjs +9 -9
  99. package/esm2022/lib/layer/layer.module.mjs +94 -114
  100. package/esm2022/lib/layer/shared/layer.service.mjs +12 -12
  101. package/esm2022/lib/layer/shared/layers/image-layer.mjs +2 -2
  102. package/esm2022/lib/layer/shared/layers/layer.mjs +1 -1
  103. package/esm2022/lib/layer/shared/layers/tile-layer.mjs +2 -2
  104. package/esm2022/lib/layer/shared/layers/vector-layer.mjs +2 -2
  105. package/esm2022/lib/layer/shared/layers/vectortile-layer.mjs +2 -2
  106. package/esm2022/lib/layer/track-feature-button/track-feature-button.component.mjs +12 -27
  107. package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +18 -60
  108. package/esm2022/lib/map/baselayers-switcher/index.mjs +1 -1
  109. package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +20 -48
  110. package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +11 -31
  111. package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +17 -26
  112. package/esm2022/lib/map/index.mjs +1 -1
  113. package/esm2022/lib/map/info-section/info-section.component.mjs +9 -22
  114. package/esm2022/lib/map/map-browser/index.mjs +1 -1
  115. package/esm2022/lib/map/map-browser/map-browser.component.mjs +11 -18
  116. package/esm2022/lib/map/map-center/map-center.component.mjs +9 -13
  117. package/esm2022/lib/map/map.module.mjs +88 -96
  118. package/esm2022/lib/map/menu-button/menu-button.component.mjs +11 -19
  119. package/esm2022/lib/map/offline-button/offline-button.component.mjs +13 -24
  120. package/esm2022/lib/map/rotation-button/rotation-button.component.mjs +13 -39
  121. package/esm2022/lib/map/shared/hover-feature.directive.mjs +18 -20
  122. package/esm2022/lib/map/shared/linkedLayers.utils.mjs +1 -1
  123. package/esm2022/lib/map/shared/map-pointer-position.directive.mjs +15 -15
  124. package/esm2022/lib/map/shared/map.abstract.mjs +1 -1
  125. package/esm2022/lib/map/shared/map.service.mjs +9 -9
  126. package/esm2022/lib/map/shared/mapOffline.directive.mjs +9 -9
  127. package/esm2022/lib/map/shared/projection.service.mjs +9 -9
  128. package/esm2022/lib/map/swipe-control/swipe-control.component.mjs +9 -16
  129. package/esm2022/lib/map/wake-lock-button/wake-lock-button.component.mjs +11 -24
  130. package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +11 -28
  131. package/esm2022/lib/measure/measure.module.mjs +12 -13
  132. package/esm2022/lib/measure/measurer/measure-format.pipe.mjs +9 -9
  133. package/esm2022/lib/measure/measurer/measurer-dialog.component.mjs +13 -166
  134. package/esm2022/lib/measure/measurer/measurer-item.component.mjs +19 -51
  135. package/esm2022/lib/measure/measurer/measurer.component.mjs +74 -241
  136. package/esm2022/lib/measure/measurer/measurer.module.mjs +46 -59
  137. package/esm2022/lib/measure/shared/measure.interfaces.mjs +1 -1
  138. package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +20 -69
  139. package/esm2022/lib/metadata/metadata.module.mjs +24 -25
  140. package/esm2022/lib/metadata/shared/metadata.interface.mjs +1 -1
  141. package/esm2022/lib/metadata/shared/metadata.service.mjs +9 -9
  142. package/esm2022/lib/offline/geoDB/configFileToGeoDB.service.mjs +9 -9
  143. package/esm2022/lib/offline/geoDB/geoDB.service.mjs +9 -9
  144. package/esm2022/lib/offline/layerDB/layerDB.service.mjs +9 -9
  145. package/esm2022/lib/offline/shared/geo-network.service.mjs +9 -9
  146. package/esm2022/lib/overlay/overlay.module.mjs +12 -13
  147. package/esm2022/lib/overlay/shared/overlay.directive.mjs +11 -11
  148. package/esm2022/lib/overlay/shared/overlay.mjs +1 -1
  149. package/esm2022/lib/overlay/shared/overlay.service.mjs +9 -9
  150. package/esm2022/lib/overlay/shared/overlay.utils.mjs +2 -2
  151. package/esm2022/lib/print/print/print.component.mjs +21 -27
  152. package/esm2022/lib/print/print-form/print-form.component.mjs +56 -349
  153. package/esm2022/lib/print/print.module.mjs +36 -37
  154. package/esm2022/lib/print/shared/print.service.mjs +14 -14
  155. package/esm2022/lib/print/shared/print.type.mjs +2 -2
  156. package/esm2022/lib/query/query.module.mjs +13 -14
  157. package/esm2022/lib/query/shared/query-search-source.mjs +9 -9
  158. package/esm2022/lib/query/shared/query.directive.mjs +21 -21
  159. package/esm2022/lib/query/shared/query.service.mjs +10 -10
  160. package/esm2022/lib/search/search-bar/search-bar.component.mjs +66 -165
  161. package/esm2022/lib/search/search-bar/search-bar.module.mjs +38 -39
  162. package/esm2022/lib/search/search-bar/search-url-param.directive.mjs +13 -13
  163. package/esm2022/lib/search/search-results/save-feature-dialog.component.mjs +12 -68
  164. package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +23 -66
  165. package/esm2022/lib/search/search-results/search-results-item.component.mjs +18 -74
  166. package/esm2022/lib/search/search-results/search-results.component.mjs +41 -238
  167. package/esm2022/lib/search/search-results/search-results.module.mjs +58 -59
  168. package/esm2022/lib/search/search-selector/search-selector.component.mjs +13 -43
  169. package/esm2022/lib/search/search-selector/search-selector.module.mjs +30 -31
  170. package/esm2022/lib/search/search-settings/search-settings.component.mjs +24 -233
  171. package/esm2022/lib/search/search-settings/search-settings.module.mjs +32 -33
  172. package/esm2022/lib/search/search.module.mjs +32 -33
  173. package/esm2022/lib/search/shared/search-pointer-summary.directive.mjs +18 -20
  174. package/esm2022/lib/search/shared/search.enums.mjs +3 -3
  175. package/esm2022/lib/search/shared/search.interfaces.mjs +1 -1
  176. package/esm2022/lib/search/shared/search.service.mjs +10 -10
  177. package/esm2022/lib/search/shared/sources/cadastre.mjs +10 -10
  178. package/esm2022/lib/search/shared/sources/coordinates.mjs +19 -19
  179. package/esm2022/lib/search/shared/sources/icherche.interfaces.mjs +1 -1
  180. package/esm2022/lib/search/shared/sources/icherche.mjs +37 -26
  181. package/esm2022/lib/search/shared/sources/ilayer.mjs +19 -19
  182. package/esm2022/lib/search/shared/sources/nominatim.mjs +10 -10
  183. package/esm2022/lib/search/shared/sources/source.mjs +1 -1
  184. package/esm2022/lib/search/shared/sources/storedqueries.interfaces.mjs +1 -1
  185. package/esm2022/lib/search/shared/sources/storedqueries.mjs +18 -18
  186. package/esm2022/lib/search/shared/sources/workspace.mjs +10 -10
  187. package/esm2022/lib/style/style-list/style-list.module.mjs +12 -12
  188. package/esm2022/lib/style/style-list/style-list.service.mjs +9 -9
  189. package/esm2022/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +12 -121
  190. package/esm2022/lib/style/style-modal/layer/style-modal-layer.component.mjs +13 -59
  191. package/esm2022/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +9 -17
  192. package/esm2022/lib/style/style-service/draw-style.service.mjs +9 -9
  193. package/esm2022/lib/style/style-service/style.service.mjs +9 -9
  194. package/esm2022/lib/style/style.module.mjs +51 -52
  195. package/esm2022/lib/toast/toast.component.mjs +15 -44
  196. package/esm2022/lib/toast/toast.module.mjs +24 -25
  197. package/esm2022/lib/utils/id-generator.mjs +1 -1
  198. package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.service.mjs +9 -9
  199. package/esm2022/lib/wkt/shared/wkt.service.mjs +9 -9
  200. package/esm2022/lib/wkt/wkt.module.mjs +12 -12
  201. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +10 -27
  202. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +20 -21
  203. package/esm2022/lib/workspace/shared/edition-workspace.mjs +4 -4
  204. package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +10 -10
  205. package/esm2022/lib/workspace/shared/feature-workspace.mjs +1 -1
  206. package/esm2022/lib/workspace/shared/feature-workspace.service.mjs +14 -13
  207. package/esm2022/lib/workspace/shared/wfs-workspace.mjs +1 -1
  208. package/esm2022/lib/workspace/shared/wfs-workspace.service.mjs +14 -13
  209. package/esm2022/lib/workspace/shared/wms-workspace.service.mjs +12 -12
  210. package/esm2022/lib/workspace/shared/workspace.utils.mjs +1 -1
  211. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +15 -19
  212. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +12 -13
  213. package/esm2022/lib/workspace/workspace-selector/workspace-selector.directive.mjs +21 -21
  214. package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +12 -13
  215. package/esm2022/lib/workspace/workspace-updator/workspace-updator.directive.mjs +15 -15
  216. package/esm2022/lib/workspace/workspace-updator/workspace-updator.module.mjs +12 -13
  217. package/esm2022/lib/workspace/workspace.module.mjs +35 -36
  218. package/fesm2022/igo2-geo.mjs +16547 -23425
  219. package/fesm2022/igo2-geo.mjs.map +1 -1
  220. package/lib/catalog/catalog-browser/catalog-browser-group.component.d.ts +1 -1
  221. package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +1 -1
  222. package/lib/catalog/catalog-browser/catalog-browser.component.d.ts +1 -1
  223. package/lib/catalog/catalog-library/catalog-library-item.component.d.ts +1 -1
  224. package/lib/catalog/catalog-library/catalog-library.component.d.ts +2 -2
  225. package/lib/catalog/shared/catalog.abstract.d.ts +3 -3
  226. package/lib/catalog/shared/catalog.interface.d.ts +2 -2
  227. package/lib/catalog/shared/catalog.service.d.ts +1 -1
  228. package/lib/datasource/shared/capabilities.interface.d.ts +8 -0
  229. package/lib/datasource/shared/capabilities.service.d.ts +1 -8
  230. package/lib/datasource/shared/datasources/wms-datasource.d.ts +1 -1
  231. package/lib/datasource/shared/datasources/wms-datasource.interface.d.ts +1 -1
  232. package/lib/datasource/shared/index.d.ts +1 -0
  233. package/lib/directions/shared/directions.service.d.ts +2 -2
  234. package/lib/download/shared/download.service.d.ts +1 -1
  235. package/lib/draw/shared/draw.interface.d.ts +1 -1
  236. package/lib/environment/environment.interface.d.ts +8 -6
  237. package/lib/feature/shared/feature.interfaces.d.ts +3 -3
  238. package/lib/feature/shared/feature.utils.d.ts +2 -1
  239. package/lib/feature/shared/store.d.ts +1 -1
  240. package/lib/filter/ogc-filter-button/ogc-filter-button.component.d.ts +1 -1
  241. package/lib/filter/ogc-filter-form/ogc-filter-form.component.d.ts +1 -1
  242. package/lib/filter/ogc-filter-selection/ogc-filter-selection.component.d.ts +1 -1
  243. package/lib/filter/ogc-filter-time/ogc-filter-time.component.d.ts +1 -0
  244. package/lib/filter/ogc-filterable-form/ogc-filterable-form.component.d.ts +1 -1
  245. package/lib/filter/ogc-filterable-item/ogc-filterable-item.component.d.ts +1 -1
  246. package/lib/filter/ogc-filterable-list/ogc-filterable-list.component.d.ts +1 -1
  247. package/lib/filter/shared/spatial-filter.service.d.ts +1 -1
  248. package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +1 -1
  249. package/lib/filter/time-filter-button/time-filter-button.component.d.ts +2 -2
  250. package/lib/filter/time-filter-item/time-filter-item.component.d.ts +1 -1
  251. package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +1 -1
  252. package/lib/geometry/geometry-form-field/geometry-form-field.component.d.ts +1 -1
  253. package/lib/geometry/shared/geometry.interfaces.d.ts +1 -1
  254. package/lib/import-export/export-button/export-button.component.d.ts +1 -1
  255. package/lib/layer/layer-item/layer-item.component.d.ts +1 -1
  256. package/lib/layer/layer-legend/layer-legend.component.d.ts +1 -1
  257. package/lib/layer/layer-legend-item/layer-legend-item.component.d.ts +1 -1
  258. package/lib/layer/layer-legend-list/layer-legend-list.component.d.ts +1 -1
  259. package/lib/layer/shared/layers/image-layer.d.ts +1 -1
  260. package/lib/layer/shared/layers/layer.d.ts +2 -1
  261. package/lib/layer/shared/layers/tile-layer.d.ts +1 -1
  262. package/lib/layer/shared/layers/vectortile-layer.d.ts +1 -1
  263. package/lib/layer/track-feature-button/track-feature-button.component.d.ts +1 -1
  264. package/lib/map/baselayers-switcher/baselayers-switcher.component.d.ts +1 -1
  265. package/lib/map/baselayers-switcher/mini-basemap.component.d.ts +1 -1
  266. package/lib/map/shared/map.abstract.d.ts +5 -4
  267. package/lib/measure/measurer/measurer.component.d.ts +8 -4
  268. package/lib/measure/shared/measure.interfaces.d.ts +2 -2
  269. package/lib/metadata/shared/metadata.interface.d.ts +1 -1
  270. package/lib/overlay/shared/overlay.d.ts +1 -1
  271. package/lib/print/print-form/print-form.component.d.ts +4 -6
  272. package/lib/print/shared/print.service.d.ts +2 -1
  273. package/lib/print/shared/print.type.d.ts +2 -6
  274. package/lib/search/search-results/search-results-add-button.component.d.ts +1 -1
  275. package/lib/search/search-results/search-results-item.component.d.ts +1 -1
  276. package/lib/search/search-results/search-results.component.d.ts +1 -1
  277. package/lib/search/shared/search.interfaces.d.ts +1 -1
  278. package/lib/search/shared/sources/cadastre.d.ts +1 -1
  279. package/lib/search/shared/sources/coordinates.d.ts +1 -1
  280. package/lib/search/shared/sources/icherche.d.ts +1 -1
  281. package/lib/search/shared/sources/icherche.interfaces.d.ts +1 -1
  282. package/lib/search/shared/sources/nominatim.d.ts +1 -1
  283. package/lib/search/shared/sources/source.d.ts +1 -1
  284. package/lib/search/shared/sources/storedqueries.d.ts +1 -1
  285. package/lib/search/shared/sources/storedqueries.interfaces.d.ts +1 -1
  286. package/lib/search/shared/sources/workspace.d.ts +1 -1
  287. package/lib/utils/id-generator.d.ts +1 -1
  288. package/lib/workspace/shared/edition-workspace.d.ts +3 -3
  289. package/lib/workspace/shared/edition-workspace.service.d.ts +1 -1
  290. package/lib/workspace/shared/feature-workspace.d.ts +1 -1
  291. package/lib/workspace/shared/feature-workspace.service.d.ts +2 -2
  292. package/lib/workspace/shared/wfs-workspace.d.ts +1 -1
  293. package/lib/workspace/shared/wfs-workspace.service.d.ts +2 -2
  294. package/lib/workspace/shared/wms-workspace.service.d.ts +2 -2
  295. package/lib/workspace/shared/workspace.utils.d.ts +1 -1
  296. package/lib/workspace/workspace-selector/workspace-selector.directive.d.ts +1 -1
  297. package/lib/workspace/workspace-updator/workspace-updator.directive.d.ts +1 -1
  298. package/locale/en.geo.json +5 -3
  299. package/locale/fr.geo.json +5 -3
  300. package/package.json +26 -29
  301. package/{lib → src/lib}/search/search-bar/search-bar.theming.scss +1 -0
  302. package/src/style/style.scss +1 -0
  303. /package/{geo-theme.scss → src/geo-theme.scss} +0 -0
  304. /package/{lib → src/lib}/catalog/catalog-browser/catalog-browser.theming.scss +0 -0
  305. /package/{lib → src/lib}/catalog/catalog.theming.scss +0 -0
  306. /package/{lib → src/lib}/directions/directions-results/directions-results.theming.scss +0 -0
  307. /package/{lib → src/lib}/directions/directions.theming.scss +0 -0
  308. /package/{lib → src/lib}/draw/draw.theming.scss +0 -0
  309. /package/{lib → src/lib}/feature/feature-details/feature-details.theming.scss +0 -0
  310. /package/{lib → src/lib}/feature/feature.theming.scss +0 -0
  311. /package/{lib → src/lib}/filter/filter.theming.scss +0 -0
  312. /package/{lib → src/lib}/filter/ogc-filter-selection/ogc-filter-selection.theming.scss +0 -0
  313. /package/{lib → src/lib}/filter/time-filter-form/time-filter-form.theming.scss +0 -0
  314. /package/{lib → src/lib}/layer/layer-item/layer-item.theme.scss +0 -0
  315. /package/{lib → src/lib}/layer/layer-legend/layer-legend.theming.scss +0 -0
  316. /package/{lib → src/lib}/layer/layer-list-tool/layer-list-tool.theming.scss +0 -0
  317. /package/{lib → src/lib}/layer/layer.theming.scss +0 -0
  318. /package/{lib → src/lib}/map/map-browser/map-browser.theming.scss +0 -0
  319. /package/{lib → src/lib}/map/map.theming.scss +0 -0
  320. /package/{lib → src/lib}/map/menu-button/menu-button.theming.scss +0 -0
  321. /package/{lib → src/lib}/map/zoom-button/zoom-button.theming.scss +0 -0
  322. /package/{lib → src/lib}/measure/measure.theming.scss +0 -0
  323. /package/{lib → src/lib}/measure/measurer/measurer.theming.scss +0 -0
  324. /package/{lib → src/lib}/search/search-results/search-results-item.theme.scss +0 -0
  325. /package/{lib → src/lib}/search/search.theming.scss +0 -0
  326. /package/{lib → src/lib}/workspace/confirmation-popup/confirmation-popup.theming.scss +0 -0
  327. /package/{lib → src/lib}/workspace/workspace.theming.scss +0 -0
@@ -17,16 +17,6 @@ import * as i10 from "@angular/material/input";
17
17
  import * as i11 from "@angular/material/list";
18
18
  import * as i12 from "./search-results-item.component";
19
19
  import * as i13 from "@ngx-translate/core";
20
- function SaveFeatureDialogComponent_mat_option_13_Template(rf, ctx) { if (rf & 1) {
21
- i0.ɵɵelementStart(0, "mat-option", 14)(1, "p", 15);
22
- i0.ɵɵtext(2);
23
- i0.ɵɵelementEnd()();
24
- } if (rf & 2) {
25
- const layer_r2 = ctx.$implicit;
26
- i0.ɵɵproperty("value", layer_r2);
27
- i0.ɵɵadvance(2);
28
- i0.ɵɵtextInterpolate(layer_r2.title);
29
- } }
30
20
  export class SaveFeatureDialogComponent {
31
21
  formBuilder;
32
22
  languageService;
@@ -71,62 +61,16 @@ export class SaveFeatureDialogComponent {
71
61
  cancel() {
72
62
  this.dialogRef.close();
73
63
  }
74
- static ɵfac = function SaveFeatureDialogComponent_Factory(t) { return new (t || SaveFeatureDialogComponent)(i0.ɵɵdirectiveInject(i1.UntypedFormBuilder), i0.ɵɵdirectiveInject(i2.LanguageService), i0.ɵɵdirectiveInject(i3.MatDialogRef), i0.ɵɵdirectiveInject(MAT_DIALOG_DATA, 8)); };
75
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SaveFeatureDialogComponent, selectors: [["igo-save-feature-dialog"]], decls: 23, vars: 21, consts: [["mat-dialog-title", "", 1, "mat-typography"], ["mat-dialog-content", "", 1, "mat-typography"], [1, "igo-form", 3, "formGroup"], [3, "navigation", "selection"], ["igoListItem", "", "color", "accent", "showIcons", "true", 3, "result"], [1, "igo-input-container"], ["type", "text", "matInput", "", "formControlName", "layerName", 3, "placeholder", "matAutocomplete"], [3, "displayWith"], ["auto", "matAutocomplete"], [3, "value", 4, "ngFor", "ngForOf"], ["mat-dialog-actions", "", 2, "justify-content", "center"], [1, "igo-form-button-group", "create-layer-button-top-padding"], ["mat-raised-button", "", "type", "button", 3, "click"], ["id", "createLayerBtnDialog", "mat-raised-button", "", "type", "button", "color", "primary", 3, "click"], [3, "value"], ["matListItemTitle", ""]], template: function SaveFeatureDialogComponent_Template(rf, ctx) { if (rf & 1) {
76
- i0.ɵɵelementStart(0, "h1", 0);
77
- i0.ɵɵtext(1);
78
- i0.ɵɵpipe(2, "translate");
79
- i0.ɵɵelementEnd();
80
- i0.ɵɵelementStart(3, "div", 1)(4, "form", 2)(5, "igo-list", 3);
81
- i0.ɵɵelement(6, "igo-search-results-item", 4);
82
- i0.ɵɵelementEnd();
83
- i0.ɵɵelementStart(7, "div", 5)(8, "mat-form-field");
84
- i0.ɵɵelement(9, "input", 6);
85
- i0.ɵɵpipe(10, "translate");
86
- i0.ɵɵelementStart(11, "mat-autocomplete", 7, 8);
87
- i0.ɵɵtemplate(13, SaveFeatureDialogComponent_mat_option_13_Template, 3, 2, "mat-option", 9);
88
- i0.ɵɵpipe(14, "async");
89
- i0.ɵɵelementEnd()()()()();
90
- i0.ɵɵelementStart(15, "div", 10)(16, "div", 11)(17, "button", 12);
91
- i0.ɵɵlistener("click", function SaveFeatureDialogComponent_Template_button_click_17_listener() { return ctx.cancel(); });
92
- i0.ɵɵtext(18);
93
- i0.ɵɵpipe(19, "translate");
94
- i0.ɵɵelementEnd();
95
- i0.ɵɵelementStart(20, "button", 13);
96
- i0.ɵɵlistener("click", function SaveFeatureDialogComponent_Template_button_click_20_listener() { return ctx.save(); });
97
- i0.ɵɵtext(21);
98
- i0.ɵɵpipe(22, "translate");
99
- i0.ɵɵelementEnd()()();
100
- } if (rf & 2) {
101
- const _r0 = i0.ɵɵreference(12);
102
- i0.ɵɵadvance(1);
103
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 11, "igo.geo.layer.saveFeatureInLayer"), "\n");
104
- i0.ɵɵadvance(3);
105
- i0.ɵɵproperty("formGroup", ctx.form);
106
- i0.ɵɵadvance(1);
107
- i0.ɵɵproperty("navigation", false)("selection", false);
108
- i0.ɵɵadvance(1);
109
- i0.ɵɵproperty("result", ctx.feature);
110
- i0.ɵɵadvance(3);
111
- i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(10, 13, "igo.geo.layer.chooseOrSet"));
112
- i0.ɵɵproperty("matAutocomplete", _r0);
113
- i0.ɵɵadvance(2);
114
- i0.ɵɵproperty("displayWith", ctx.displayFn);
115
- i0.ɵɵadvance(2);
116
- i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(14, 15, ctx.filteredLayers$));
117
- i0.ɵɵadvance(5);
118
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(19, 17, "igo.geo.layer.cancelBtn"), " ");
119
- i0.ɵɵadvance(3);
120
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(22, 19, "igo.geo.layer.saveBtn"), " ");
121
- } }, dependencies: [i4.NgForOf, i5.ListItemDirective, i5.ListComponent, i6.MatAutocomplete, i7.MatOption, i6.MatAutocompleteTrigger, i8.MatButton, i3.MatDialogTitle, i3.MatDialogContent, i3.MatDialogActions, i9.MatFormField, i10.MatInput, i11.MatListItemTitle, i1.ɵNgNoValidate, i1.DefaultValueAccessor, i1.NgControlStatus, i1.NgControlStatusGroup, i1.FormGroupDirective, i1.FormControlName, i12.SearchResultsItemComponent, i4.AsyncPipe, i13.TranslatePipe], styles: ["[_nghost-%COMP%] mat-form-field[_ngcontent-%COMP%]{width:100%}[_nghost-%COMP%] .create-layer-button-top-padding[_ngcontent-%COMP%]{padding-top:25px}[_nghost-%COMP%] .igo-form[_ngcontent-%COMP%]{padding:10px 5px 5px}[_nghost-%COMP%] .igo-form-button-group[_ngcontent-%COMP%]{text-align:center}[_nghost-%COMP%] button[_ngcontent-%COMP%]{cursor:pointer}[_nghost-%COMP%] button#createLayerBtnDialog[disabled=true][_ngcontent-%COMP%]{cursor:default;background-color:#0000001f;color:#00000042}[_nghost-%COMP%] .error[_ngcontent-%COMP%]{color:red}"] });
64
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SaveFeatureDialogComponent, deps: [{ token: i1.UntypedFormBuilder }, { token: i2.LanguageService }, { token: i3.MatDialogRef }, { token: MAT_DIALOG_DATA, optional: true }], target: i0.ɵɵFactoryTarget.Component });
65
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SaveFeatureDialogComponent, selector: "igo-save-feature-dialog", ngImport: i0, template: "<h1 mat-dialog-title class=\"mat-typography\">\r\n {{ 'igo.geo.layer.saveFeatureInLayer' | translate }}\r\n</h1>\r\n\r\n<div mat-dialog-content class=\"mat-typography\">\r\n <form class=\"igo-form\" [formGroup]=\"form\">\r\n <igo-list [navigation]=\"false\" [selection]=\"false\">\r\n <igo-search-results-item\r\n igoListItem\r\n color=\"accent\"\r\n [result]=\"feature\"\r\n showIcons=\"true\"\r\n >\r\n </igo-search-results-item>\r\n </igo-list>\r\n\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <input\r\n type=\"text\"\r\n placeholder=\"{{ 'igo.geo.layer.chooseOrSet' | translate }}\"\r\n matInput\r\n [matAutocomplete]=\"auto\"\r\n formControlName=\"layerName\"\r\n />\r\n <mat-autocomplete [displayWith]=\"displayFn\" #auto=\"matAutocomplete\">\r\n <mat-option\r\n *ngFor=\"let layer of filteredLayers$ | async\"\r\n [value]=\"layer\"\r\n >\r\n <p matListItemTitle>{{ layer.title }}</p>\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </div>\r\n </form>\r\n</div>\r\n\r\n<div mat-dialog-actions style=\"justify-content: center\">\r\n <div class=\"igo-form-button-group create-layer-button-top-padding\">\r\n <button mat-raised-button type=\"button\" (click)=\"cancel()\">\r\n {{ 'igo.geo.layer.cancelBtn' | translate }}\r\n </button>\r\n <button\r\n id=\"createLayerBtnDialog\"\r\n mat-raised-button\r\n type=\"button\"\r\n color=\"primary\"\r\n (click)=\"save()\"\r\n >\r\n {{ 'igo.geo.layer.saveBtn' | translate }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [":host mat-form-field{width:100%}:host .create-layer-button-top-padding{padding-top:25px}:host .igo-form{padding:10px 5px 5px}:host .igo-form-button-group{text-align:center}:host button{cursor:pointer}:host button#createLayerBtnDialog[disabled=true]{cursor:default;background-color:#0000001f;color:#00000042}:host .error{color:red}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.ListItemDirective, selector: "[igoListItem]", inputs: ["color", "focused", "selected", "disabled"], outputs: ["beforeSelect", "beforeFocus", "beforeUnselect", "beforeUnfocus", "beforeDisable", "beforeEnable", "focus", "unfocus", "select", "unselect", "disable", "enable"] }, { kind: "component", type: i5.ListComponent, selector: "igo-list", inputs: ["navigation", "selection"] }, { kind: "component", type: i6.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple", "hideSingleSelectionIndicator"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i6.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i3.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i3.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i10.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: "directive", type: i11.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i12.SearchResultsItemComponent, selector: "igo-search-results-item", inputs: ["result", "map", "showIcons", "withZoomButton"], outputs: ["zoomEvent"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i13.TranslatePipe, name: "translate" }] });
122
66
  }
123
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SaveFeatureDialogComponent, [{
124
- type: Component,
125
- args: [{ selector: 'igo-save-feature-dialog', template: "<h1 mat-dialog-title class=\"mat-typography\">\r\n {{ 'igo.geo.layer.saveFeatureInLayer' | translate }}\r\n</h1>\r\n\r\n<div mat-dialog-content class=\"mat-typography\">\r\n <form class=\"igo-form\" [formGroup]=\"form\">\r\n <igo-list [navigation]=\"false\" [selection]=\"false\">\r\n <igo-search-results-item\r\n igoListItem\r\n color=\"accent\"\r\n [result]=\"feature\"\r\n showIcons=\"true\"\r\n >\r\n </igo-search-results-item>\r\n </igo-list>\r\n\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <input\r\n type=\"text\"\r\n placeholder=\"{{ 'igo.geo.layer.chooseOrSet' | translate }}\"\r\n matInput\r\n [matAutocomplete]=\"auto\"\r\n formControlName=\"layerName\"\r\n />\r\n <mat-autocomplete [displayWith]=\"displayFn\" #auto=\"matAutocomplete\">\r\n <mat-option\r\n *ngFor=\"let layer of filteredLayers$ | async\"\r\n [value]=\"layer\"\r\n >\r\n <p matListItemTitle>{{ layer.title }}</p>\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </div>\r\n </form>\r\n</div>\r\n\r\n<div mat-dialog-actions style=\"justify-content: center\">\r\n <div class=\"igo-form-button-group create-layer-button-top-padding\">\r\n <button mat-raised-button type=\"button\" (click)=\"cancel()\">\r\n {{ 'igo.geo.layer.cancelBtn' | translate }}\r\n </button>\r\n <button\r\n id=\"createLayerBtnDialog\"\r\n mat-raised-button\r\n type=\"button\"\r\n color=\"primary\"\r\n (click)=\"save()\"\r\n >\r\n {{ 'igo.geo.layer.saveBtn' | translate }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [":host mat-form-field{width:100%}:host .create-layer-button-top-padding{padding-top:25px}:host .igo-form{padding:10px 5px 5px}:host .igo-form-button-group{text-align:center}:host button{cursor:pointer}:host button#createLayerBtnDialog[disabled=true]{cursor:default;background-color:#0000001f;color:#00000042}:host .error{color:red}\n"] }]
126
- }], function () { return [{ type: i1.UntypedFormBuilder }, { type: i2.LanguageService }, { type: i3.MatDialogRef }, { type: undefined, decorators: [{
127
- type: Optional
128
- }, {
129
- type: Inject,
130
- args: [MAT_DIALOG_DATA]
131
- }] }]; }, null); })();
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS1mZWF0dXJlLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9zZWFyY2gvc2VhcmNoLXJlc3VsdHMvc2F2ZS1mZWF0dXJlLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9zZWFyY2gvc2VhcmNoLXJlc3VsdHMvc2F2ZS1mZWF0dXJlLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUNMLGtCQUFrQixFQUVsQixVQUFVLEVBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHN0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztJQ2V0QyxzQ0FHQyxZQUFBO0lBQ3FCLFlBQWlCO0lBQUEsaUJBQUksRUFBQTs7O0lBRnpDLGdDQUFlO0lBRUssZUFBaUI7SUFBakIsb0NBQWlCOztBRFRqRCxNQUFNLE9BQU8sMEJBQTBCO0lBTzNCO0lBQ0Q7SUFDQTtJQUdBO0lBWEYsSUFBSSxDQUFtQjtJQUM5QixPQUFPLENBQWU7SUFDdEIsTUFBTSxHQUFZLEVBQUUsQ0FBQztJQUNyQixlQUFlLENBQXNCO0lBRXJDLFlBQ1UsV0FBK0IsRUFDaEMsZUFBZ0MsRUFDaEMsU0FBbUQsRUFHbkQsSUFBZ0Q7UUFML0MsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBQ2hDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxjQUFT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UixNQUFNO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIFVudHlwZWRGb3JtQnVpbGRlcixcclxuICBVbnR5cGVkRm9ybUdyb3VwLFxyXG4gIFZhbGlkYXRvcnNcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuXHJcbmltcG9ydCB7IExhbmd1YWdlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IExheWVyIH0gZnJvbSAnLi4vLi4vbGF5ZXIvc2hhcmVkJztcclxuaW1wb3J0IHsgU2VhcmNoUmVzdWx0IH0gZnJvbSAnLi4vc2hhcmVkJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWdvLXNhdmUtZmVhdHVyZS1kaWFsb2cnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zYXZlLWZlYXR1cmUtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zYXZlLWZlYXR1cmUtZGlhbG9nLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFNhdmVGZWF0dXJlRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBwdWJsaWMgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcclxuICBmZWF0dXJlOiBTZWFyY2hSZXN1bHQ7XHJcbiAgbGF5ZXJzOiBMYXllcltdID0gW107XHJcbiAgZmlsdGVyZWRMYXllcnMkOiBPYnNlcnZhYmxlPExheWVyW10+O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlcixcclxuICAgIHB1YmxpYyBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSxcclxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxTYXZlRmVhdHVyZURpYWxvZ0NvbXBvbmVudD4sXHJcbiAgICBAT3B0aW9uYWwoKVxyXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpXHJcbiAgICBwdWJsaWMgZGF0YTogeyBmZWF0dXJlOiBTZWFyY2hSZXN1bHQ7IGxheWVyczogTGF5ZXJbXSB9XHJcbiAgKSB7XHJcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgbGF5ZXJOYW1lOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmZlYXR1cmUgPSB0aGlzLmRhdGEuZmVhdHVyZTtcclxuICAgIHRoaXMubGF5ZXJzID0gdGhpcy5kYXRhLmxheWVycztcclxuICAgIHRoaXMuZmlsdGVyZWRMYXllcnMkID0gdGhpcy5mb3JtLmNvbnRyb2xzWydsYXllck5hbWUnXS52YWx1ZUNoYW5nZXMucGlwZShcclxuICAgICAgc3RhcnRXaXRoKCcnKSxcclxuICAgICAgbWFwKCh2YWwpID0+IHRoaXMuZmlsdGVyKHZhbCkpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaWx0ZXIodmFsKTogTGF5ZXJbXSB7XHJcbiAgICBpZiAodHlwZW9mIHZhbCAhPT0gJ3N0cmluZycpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMubGF5ZXJzXHJcbiAgICAgIC5tYXAoKGwpID0+IGwpXHJcbiAgICAgIC5maWx0ZXIoXHJcbiAgICAgICAgKGxheWVyKSA9PiBsYXllcj8udGl0bGU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModmFsLnRvTG93ZXJDYXNlKCkpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBkaXNwbGF5Rm4obGF5ZXI6IExheWVyKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBsYXllciAmJiBsYXllci50aXRsZSA/IGxheWVyLnRpdGxlIDogJyc7XHJcbiAgfVxyXG5cclxuICBzYXZlKCkge1xyXG4gICAgY29uc3QgZGF0YTogeyBsYXllcjogc3RyaW5nIHwgTGF5ZXI7IGZlYXR1cmU6IFNlYXJjaFJlc3VsdCB9ID0ge1xyXG4gICAgICBsYXllcjogdGhpcy5mb3JtLnZhbHVlLmxheWVyTmFtZSxcclxuICAgICAgZmVhdHVyZTogdGhpcy5mZWF0dXJlXHJcbiAgICB9O1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoZGF0YSk7XHJcbiAgfVxyXG5cclxuICBjYW5jZWwoKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8aDEgbWF0LWRpYWxvZy10aXRsZSBjbGFzcz1cIm1hdC10eXBvZ3JhcGh5XCI+XHJcbiAge3sgJ2lnby5nZW8ubGF5ZXIuc2F2ZUZlYXR1cmVJbkxheWVyJyB8IHRyYW5zbGF0ZSB9fVxyXG48L2gxPlxyXG5cclxuPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQgY2xhc3M9XCJtYXQtdHlwb2dyYXBoeVwiPlxyXG4gIDxmb3JtIGNsYXNzPVwiaWdvLWZvcm1cIiBbZm9ybUdyb3VwXT1cImZvcm1cIj5cclxuICAgIDxpZ28tbGlzdCBbbmF2aWdhdGlvbl09XCJmYWxzZVwiIFtzZWxlY3Rpb25dPVwiZmFsc2VcIj5cclxuICAgICAgPGlnby1zZWFyY2gtcmVzdWx0cy1pdGVtXHJcbiAgICAgICAgaWdvTGlzdEl0ZW1cclxuICAgICAgICBjb2xvcj1cImFjY2VudFwiXHJcbiAgICAgICAgW3Jlc3VsdF09XCJmZWF0dXJlXCJcclxuICAgICAgICBzaG93SWNvbnM9XCJ0cnVlXCJcclxuICAgICAgPlxyXG4gICAgICA8L2lnby1zZWFyY2gtcmVzdWx0cy1pdGVtPlxyXG4gICAgPC9pZ28tbGlzdD5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiaWdvLWlucHV0LWNvbnRhaW5lclwiPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdpZ28uZ2VvLmxheWVyLmNob29zZU9yU2V0JyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCJcclxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImxheWVyTmFtZVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgICA8bWF0LWF1dG9jb21wbGV0ZSBbZGlzcGxheVdpdGhdPVwiZGlzcGxheUZuXCIgI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBsYXllciBvZiBmaWx0ZXJlZExheWVycyQgfCBhc3luY1wiXHJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJsYXllclwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxwIG1hdExpc3RJdGVtVGl0bGU+e3sgbGF5ZXIudGl0bGUgfX08L3A+XHJcbiAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9mb3JtPlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgbWF0LWRpYWxvZy1hY3Rpb25zIHN0eWxlPVwianVzdGlmeS1jb250ZW50OiBjZW50ZXJcIj5cclxuICA8ZGl2IGNsYXNzPVwiaWdvLWZvcm0tYnV0dG9uLWdyb3VwIGNyZWF0ZS1sYXllci1idXR0b24tdG9wLXBhZGRpbmdcIj5cclxuICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJjYW5jZWwoKVwiPlxyXG4gICAgICB7eyAnaWdvLmdlby5sYXllci5jYW5jZWxCdG4nIHwgdHJhbnNsYXRlIH19XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b25cclxuICAgICAgaWQ9XCJjcmVhdGVMYXllckJ0bkRpYWxvZ1wiXHJcbiAgICAgIG1hdC1yYWlzZWQtYnV0dG9uXHJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgICAoY2xpY2spPVwic2F2ZSgpXCJcclxuICAgID5cclxuICAgICAge3sgJ2lnby5nZW8ubGF5ZXIuc2F2ZUJ0bicgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
67
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SaveFeatureDialogComponent, decorators: [{
68
+ type: Component,
69
+ args: [{ selector: 'igo-save-feature-dialog', template: "<h1 mat-dialog-title class=\"mat-typography\">\r\n {{ 'igo.geo.layer.saveFeatureInLayer' | translate }}\r\n</h1>\r\n\r\n<div mat-dialog-content class=\"mat-typography\">\r\n <form class=\"igo-form\" [formGroup]=\"form\">\r\n <igo-list [navigation]=\"false\" [selection]=\"false\">\r\n <igo-search-results-item\r\n igoListItem\r\n color=\"accent\"\r\n [result]=\"feature\"\r\n showIcons=\"true\"\r\n >\r\n </igo-search-results-item>\r\n </igo-list>\r\n\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <input\r\n type=\"text\"\r\n placeholder=\"{{ 'igo.geo.layer.chooseOrSet' | translate }}\"\r\n matInput\r\n [matAutocomplete]=\"auto\"\r\n formControlName=\"layerName\"\r\n />\r\n <mat-autocomplete [displayWith]=\"displayFn\" #auto=\"matAutocomplete\">\r\n <mat-option\r\n *ngFor=\"let layer of filteredLayers$ | async\"\r\n [value]=\"layer\"\r\n >\r\n <p matListItemTitle>{{ layer.title }}</p>\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </div>\r\n </form>\r\n</div>\r\n\r\n<div mat-dialog-actions style=\"justify-content: center\">\r\n <div class=\"igo-form-button-group create-layer-button-top-padding\">\r\n <button mat-raised-button type=\"button\" (click)=\"cancel()\">\r\n {{ 'igo.geo.layer.cancelBtn' | translate }}\r\n </button>\r\n <button\r\n id=\"createLayerBtnDialog\"\r\n mat-raised-button\r\n type=\"button\"\r\n color=\"primary\"\r\n (click)=\"save()\"\r\n >\r\n {{ 'igo.geo.layer.saveBtn' | translate }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [":host mat-form-field{width:100%}:host .create-layer-button-top-padding{padding-top:25px}:host .igo-form{padding:10px 5px 5px}:host .igo-form-button-group{text-align:center}:host button{cursor:pointer}:host button#createLayerBtnDialog[disabled=true]{cursor:default;background-color:#0000001f;color:#00000042}:host .error{color:red}\n"] }]
70
+ }], ctorParameters: function () { return [{ type: i1.UntypedFormBuilder }, { type: i2.LanguageService }, { type: i3.MatDialogRef }, { type: undefined, decorators: [{
71
+ type: Optional
72
+ }, {
73
+ type: Inject,
74
+ args: [MAT_DIALOG_DATA]
75
+ }] }]; } });
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS1mZWF0dXJlLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9zZWFyY2gvc2VhcmNoLXJlc3VsdHMvc2F2ZS1mZWF0dXJlLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9zZWFyY2gvc2VhcmNoLXJlc3VsdHMvc2F2ZS1mZWF0dXJlLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUNMLGtCQUFrQixFQUVsQixVQUFVLEVBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHN0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBVWhELE1BQU0sT0FBTywwQkFBMEI7SUFPM0I7SUFDRDtJQUNBO0lBR0E7SUFYRixJQUFJLENBQW1CO0lBQzlCLE9BQU8sQ0FBZTtJQUN0QixNQUFNLEdBQVksRUFBRSxDQUFDO0lBQ3JCLGVBQWUsQ0FBc0I7SUFFckMsWUFDVSxXQUErQixFQUNoQyxlQUFnQyxFQUNoQyxTQUFtRCxFQUduRCxJQUFnRDtRQUwvQyxnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFDaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLGNBQVMsR0FBVCxTQUFTLENBQTBDO1FBR25ELFNBQUksR0FBSixJQUFJLENBQTRDO1FBRXZELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDakMsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3ZDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUNqQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQy9CLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDdEUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUNiLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUMvQixDQUFDO0lBQ0osQ0FBQztJQUVPLE1BQU0sQ0FBQyxHQUFHO1FBQ2hCLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFO1lBQzNCLE9BQU87U0FDUjtRQUNELE9BQU8sSUFBSSxDQUFDLE1BQU07YUFDZixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUNiLE1BQU0sQ0FDTCxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQ25FLENBQUM7SUFDTixDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQVk7UUFDcEIsT0FBTyxLQUFLLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFFRCxJQUFJO1FBQ0YsTUFBTSxJQUFJLEdBQXFEO1lBQzdELEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTO1lBQ2hDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixDQUFDO1FBQ0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pCLENBQUM7d0dBckRVLDBCQUEwQiwrR0FXM0IsZUFBZTs0RkFYZCwwQkFBMEIsK0RDckJ2QywydERBc0RBOzs0RkRqQ2EsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLHlCQUF5Qjs7MEJBY2hDLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkluaXQsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgVW50eXBlZEZvcm1CdWlsZGVyLFxyXG4gIFVudHlwZWRGb3JtR3JvdXAsXHJcbiAgVmFsaWRhdG9yc1xyXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5cclxuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgTGF5ZXIgfSBmcm9tICcuLi8uLi9sYXllci9zaGFyZWQnO1xyXG5pbXBvcnQgeyBTZWFyY2hSZXN1bHQgfSBmcm9tICcuLi9zaGFyZWQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZ28tc2F2ZS1mZWF0dXJlLWRpYWxvZycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NhdmUtZmVhdHVyZS1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NhdmUtZmVhdHVyZS1kaWFsb2cuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2F2ZUZlYXR1cmVEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHB1YmxpYyBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xyXG4gIGZlYXR1cmU6IFNlYXJjaFJlc3VsdDtcclxuICBsYXllcnM6IExheWVyW10gPSBbXTtcclxuICBmaWx0ZXJlZExheWVycyQ6IE9ic2VydmFibGU8TGF5ZXJbXT47XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyLFxyXG4gICAgcHVibGljIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFNhdmVGZWF0dXJlRGlhbG9nQ29tcG9uZW50PixcclxuICAgIEBPcHRpb25hbCgpXHJcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSlcclxuICAgIHB1YmxpYyBkYXRhOiB7IGZlYXR1cmU6IFNlYXJjaFJlc3VsdDsgbGF5ZXJzOiBMYXllcltdIH1cclxuICApIHtcclxuICAgIHRoaXMuZm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICBsYXllck5hbWU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZmVhdHVyZSA9IHRoaXMuZGF0YS5mZWF0dXJlO1xyXG4gICAgdGhpcy5sYXllcnMgPSB0aGlzLmRhdGEubGF5ZXJzO1xyXG4gICAgdGhpcy5maWx0ZXJlZExheWVycyQgPSB0aGlzLmZvcm0uY29udHJvbHNbJ2xheWVyTmFtZSddLnZhbHVlQ2hhbmdlcy5waXBlKFxyXG4gICAgICBzdGFydFdpdGgoJycpLFxyXG4gICAgICBtYXAoKHZhbCkgPT4gdGhpcy5maWx0ZXIodmFsKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbHRlcih2YWwpOiBMYXllcltdIHtcclxuICAgIGlmICh0eXBlb2YgdmFsICE9PSAnc3RyaW5nJykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5sYXllcnNcclxuICAgICAgLm1hcCgobCkgPT4gbClcclxuICAgICAgLmZpbHRlcihcclxuICAgICAgICAobGF5ZXIpID0+IGxheWVyPy50aXRsZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh2YWwudG9Mb3dlckNhc2UoKSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIGRpc3BsYXlGbihsYXllcjogTGF5ZXIpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGxheWVyICYmIGxheWVyLnRpdGxlID8gbGF5ZXIudGl0bGUgOiAnJztcclxuICB9XHJcblxyXG4gIHNhdmUoKSB7XHJcbiAgICBjb25zdCBkYXRhOiB7IGxheWVyOiBzdHJpbmcgfCBMYXllcjsgZmVhdHVyZTogU2VhcmNoUmVzdWx0IH0gPSB7XHJcbiAgICAgIGxheWVyOiB0aGlzLmZvcm0udmFsdWUubGF5ZXJOYW1lLFxyXG4gICAgICBmZWF0dXJlOiB0aGlzLmZlYXR1cmVcclxuICAgIH07XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShkYXRhKTtcclxuICB9XHJcblxyXG4gIGNhbmNlbCgpIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxoMSBtYXQtZGlhbG9nLXRpdGxlIGNsYXNzPVwibWF0LXR5cG9ncmFwaHlcIj5cclxuICB7eyAnaWdvLmdlby5sYXllci5zYXZlRmVhdHVyZUluTGF5ZXInIHwgdHJhbnNsYXRlIH19XHJcbjwvaDE+XHJcblxyXG48ZGl2IG1hdC1kaWFsb2ctY29udGVudCBjbGFzcz1cIm1hdC10eXBvZ3JhcGh5XCI+XHJcbiAgPGZvcm0gY2xhc3M9XCJpZ28tZm9ybVwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxyXG4gICAgPGlnby1saXN0IFtuYXZpZ2F0aW9uXT1cImZhbHNlXCIgW3NlbGVjdGlvbl09XCJmYWxzZVwiPlxyXG4gICAgICA8aWdvLXNlYXJjaC1yZXN1bHRzLWl0ZW1cclxuICAgICAgICBpZ29MaXN0SXRlbVxyXG4gICAgICAgIGNvbG9yPVwiYWNjZW50XCJcclxuICAgICAgICBbcmVzdWx0XT1cImZlYXR1cmVcIlxyXG4gICAgICAgIHNob3dJY29ucz1cInRydWVcIlxyXG4gICAgICA+XHJcbiAgICAgIDwvaWdvLXNlYXJjaC1yZXN1bHRzLWl0ZW0+XHJcbiAgICA8L2lnby1saXN0PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJpZ28taW5wdXQtY29udGFpbmVyXCI+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8ubGF5ZXIuY2hvb3NlT3JTZXQnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIlxyXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibGF5ZXJOYW1lXCJcclxuICAgICAgICAvPlxyXG4gICAgICAgIDxtYXQtYXV0b2NvbXBsZXRlIFtkaXNwbGF5V2l0aF09XCJkaXNwbGF5Rm5cIiAjYXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiPlxyXG4gICAgICAgICAgPG1hdC1vcHRpb25cclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGxheWVyIG9mIGZpbHRlcmVkTGF5ZXJzJCB8IGFzeW5jXCJcclxuICAgICAgICAgICAgW3ZhbHVlXT1cImxheWVyXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPHAgbWF0TGlzdEl0ZW1UaXRsZT57eyBsYXllci50aXRsZSB9fTwvcD5cclxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICA8L21hdC1hdXRvY29tcGxldGU+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Zvcm0+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBtYXQtZGlhbG9nLWFjdGlvbnMgc3R5bGU9XCJqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlclwiPlxyXG4gIDxkaXYgY2xhc3M9XCJpZ28tZm9ybS1idXR0b24tZ3JvdXAgY3JlYXRlLWxheWVyLWJ1dHRvbi10b3AtcGFkZGluZ1wiPlxyXG4gICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+XHJcbiAgICAgIHt7ICdpZ28uZ2VvLmxheWVyLmNhbmNlbEJ0bicgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICBpZD1cImNyZWF0ZUxheWVyQnRuRGlhbG9nXCJcclxuICAgICAgbWF0LXJhaXNlZC1idXR0b25cclxuICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgIGNvbG9yPVwicHJpbWFyeVwiXHJcbiAgICAgIChjbGljayk9XCJzYXZlKClcIlxyXG4gICAgPlxyXG4gICAgICB7eyAnaWdvLmdlby5sYXllci5zYXZlQnRuJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -7,7 +7,7 @@ import Fill from 'ol/style/Fill';
7
7
  import Stroke from 'ol/style/Stroke';
8
8
  import Style from 'ol/style/Style';
9
9
  import { BehaviorSubject, take } from 'rxjs';
10
- import { DataSourceService } from '../../datasource';
10
+ import { DataSourceService } from '../../datasource/shared/datasource.service';
11
11
  import { FeatureMotion, FeatureStore, FeatureStoreLoadingStrategy, FeatureStoreSelectionStrategy, tryAddLoadingStrategy, tryAddSelectionStrategy, tryBindStoreLayer } from '../../feature';
12
12
  import { LAYER } from '../../layer/shared/layer.enums';
13
13
  import { LayerService } from '../../layer/shared/layer.service';
@@ -18,7 +18,7 @@ import { SaveFeatureDialogComponent } from './save-feature-dialog.component';
18
18
  import * as i0 from "@angular/core";
19
19
  import * as i1 from "../../layer/shared/layer.service";
20
20
  import * as i2 from "@angular/material/dialog";
21
- import * as i3 from "../../datasource";
21
+ import * as i3 from "../../datasource/shared/datasource.service";
22
22
  import * as i4 from "@igo2/core";
23
23
  import * as i5 from "@angular/common";
24
24
  import * as i6 from "@angular/material/badge";
@@ -27,42 +27,6 @@ import * as i8 from "@angular/material/button";
27
27
  import * as i9 from "@angular/material/icon";
28
28
  import * as i10 from "@angular/material/tooltip";
29
29
  import * as i11 from "@ngx-translate/core";
30
- function SearchResultAddButtonComponent_button_0_Template(rf, ctx) { if (rf & 1) {
31
- const _r3 = i0.ɵɵgetCurrentView();
32
- i0.ɵɵelementStart(0, "button", 2);
33
- i0.ɵɵlistener("mouseenter", function SearchResultAddButtonComponent_button_0_Template_button_mouseenter_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onMouseEvent($event)); })("mouseleave", function SearchResultAddButtonComponent_button_0_Template_button_mouseleave_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.onMouseEvent($event)); })("click", function SearchResultAddButtonComponent_button_0_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r5 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r5.onToggleClick($event)); });
34
- i0.ɵɵpipe(1, "translate");
35
- i0.ɵɵpipe(2, "async");
36
- i0.ɵɵelement(3, "mat-icon", 3);
37
- i0.ɵɵpipe(4, "async");
38
- i0.ɵɵpipe(5, "async");
39
- i0.ɵɵpipe(6, "async");
40
- i0.ɵɵpipe(7, "async");
41
- i0.ɵɵpipe(8, "async");
42
- i0.ɵɵpipe(9, "async");
43
- i0.ɵɵpipe(10, "async");
44
- i0.ɵɵelementEnd();
45
- } if (rf & 2) {
46
- const ctx_r0 = i0.ɵɵnextContext();
47
- i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(1, 6, ctx_r0.computeTooltip()))("color", i0.ɵɵpipeBind1(2, 8, ctx_r0.isPreview$) ? "" : ctx_r0.added ? "warn" : "");
48
- i0.ɵɵadvance(3);
49
- i0.ɵɵproperty("igoMatBadgeIcon", ctx_r0.getBadgeIcon())("matBadgeHidden", i0.ɵɵpipeBind1(4, 10, ctx_r0.inRange$) && i0.ɵɵpipeBind1(5, 12, ctx_r0.isVisible$) === true || i0.ɵɵpipeBind1(6, 14, ctx_r0.inRange$) && !ctx_r0.added || i0.ɵɵpipeBind1(7, 16, ctx_r0.inRange$) && i0.ɵɵpipeBind1(8, 18, ctx_r0.isPreview$))("matBadgeDisabled", i0.ɵɵpipeBind1(9, 20, ctx_r0.inRange$) === false)("svgIcon", i0.ɵɵpipeBind1(10, 22, ctx_r0.isPreview$) ? "plus" : ctx_r0.added ? "delete" : "plus");
50
- } }
51
- function SearchResultAddButtonComponent_button_1_Template(rf, ctx) { if (rf & 1) {
52
- const _r7 = i0.ɵɵgetCurrentView();
53
- i0.ɵɵelementStart(0, "button", 4);
54
- i0.ɵɵlistener("click", function SearchResultAddButtonComponent_button_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r6 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r6.addFeatureToLayer()); });
55
- i0.ɵɵpipe(1, "translate");
56
- i0.ɵɵpipe(2, "async");
57
- i0.ɵɵelement(3, "mat-icon", 5);
58
- i0.ɵɵpipe(4, "async");
59
- i0.ɵɵelementEnd();
60
- } if (rf & 2) {
61
- const ctx_r1 = i0.ɵɵnextContext();
62
- i0.ɵɵproperty("id", !ctx_r1.isMobile ? "hide-save-search-result-btn" : "")("matTooltip", i0.ɵɵpipeBind1(1, 3, i0.ɵɵpipeBind1(2, 5, ctx_r1.addFeatureToLayerTooltip$)));
63
- i0.ɵɵadvance(3);
64
- i0.ɵɵproperty("matBadgeHidden", i0.ɵɵpipeBind1(4, 7, ctx_r1.inRange$));
65
- } }
66
30
  export class SearchResultAddButtonComponent {
67
31
  layerService;
68
32
  dialog;
@@ -425,32 +389,25 @@ export class SearchResultAddButtonComponent {
425
389
  }
426
390
  });
427
391
  }
428
- static ɵfac = function SearchResultAddButtonComponent_Factory(t) { return new (t || SearchResultAddButtonComponent)(i0.ɵɵdirectiveInject(i1.LayerService), i0.ɵɵdirectiveInject(i2.MatDialog), i0.ɵɵdirectiveInject(i3.DataSourceService), i0.ɵɵdirectiveInject(i4.MediaService)); };
429
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SearchResultAddButtonComponent, selectors: [["igo-search-add-button"]], inputs: { layer: "layer", store: "store", added: "added", map: "map", saveSearchResultInLayer: "saveSearchResultInLayer", color: "color", stores: "stores" }, decls: 2, vars: 2, consts: [["igoStopPropagation", "", "mat-icon-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "matTooltip", "color", "mouseenter", "mouseleave", "click", 4, "ngIf"], ["igoStopPropagation", "", "mat-icon-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "id", "matTooltip", "click", 4, "ngIf"], ["igoStopPropagation", "", "mat-icon-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "matTooltip", "color", "mouseenter", "mouseleave", "click"], ["aria-hidden", "false", "matBadge", "icon", "igoMatBadgeColor", "rgba(0,0,0,0.87)", "igoMatBadgeBackgroundColor", "none", "igoMatBadgeInverseColor", "true", "matBadgeSize", "small", "matBadgePosition", "after", 3, "igoMatBadgeIcon", "matBadgeHidden", "matBadgeDisabled", "svgIcon"], ["igoStopPropagation", "", "mat-icon-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "id", "matTooltip", "click"], ["aria-hidden", "false", "matBadge", "icon", "igoMatBadgeIcon", "eye-off", "igoMatBadgeInverseColor", "true", "matBadgeDisabled", "true", "matBadgeSize", "small", "matBadgePosition", "after", "svgIcon", "file-plus-outline", 3, "matBadgeHidden"]], template: function SearchResultAddButtonComponent_Template(rf, ctx) { if (rf & 1) {
430
- i0.ɵɵtemplate(0, SearchResultAddButtonComponent_button_0_Template, 11, 24, "button", 0);
431
- i0.ɵɵtemplate(1, SearchResultAddButtonComponent_button_1_Template, 5, 9, "button", 1);
432
- } if (rf & 2) {
433
- i0.ɵɵproperty("ngIf", ctx.layer.meta.dataType === "Layer");
434
- i0.ɵɵadvance(1);
435
- i0.ɵɵproperty("ngIf", ctx.layer.meta.dataType === "Feature" && ctx.saveSearchResultInLayer);
436
- } }, dependencies: [i5.NgIf, i6.MatBadge, i7.IgoBadgeIconDirective, i7.StopPropagationDirective, i8.MatIconButton, i9.MatIcon, i10.MatTooltip, i5.AsyncPipe, i11.TranslatePipe], styles: ["[_nghost-%COMP%] #hide-save-search-result-btn[_ngcontent-%COMP%]{display:none}[_nghost-%COMP%] #show-save-search-result-btn[_ngcontent-%COMP%]{display:block}"], changeDetection: 0 });
392
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchResultAddButtonComponent, deps: [{ token: i1.LayerService }, { token: i2.MatDialog }, { token: i3.DataSourceService }, { token: i4.MediaService }], target: i0.ɵɵFactoryTarget.Component });
393
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SearchResultAddButtonComponent, selector: "igo-search-add-button", inputs: { layer: "layer", store: "store", added: "added", map: "map", saveSearchResultInLayer: "saveSearchResultInLayer", color: "color", stores: "stores" }, ngImport: i0, template: "<button\r\n igoStopPropagation\r\n (mouseenter)=\"onMouseEvent($event)\"\r\n (mouseleave)=\"onMouseEvent($event)\"\r\n *ngIf=\"layer.meta.dataType === 'Layer'\"\r\n mat-icon-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"computeTooltip() | translate\"\r\n [color]=\"(isPreview$ | async) ? '' : added ? 'warn' : ''\"\r\n (click)=\"onToggleClick($event)\"\r\n>\r\n <mat-icon\r\n aria-hidden=\"false\"\r\n matBadge=\"icon\"\r\n [igoMatBadgeIcon]=\"getBadgeIcon()\"\r\n igoMatBadgeColor=\"rgba(0,0,0,0.87)\"\r\n igoMatBadgeBackgroundColor=\"none\"\r\n igoMatBadgeInverseColor=\"true\"\r\n [matBadgeHidden]=\"\r\n ((inRange$ | async) && (isVisible$ | async) === true) ||\r\n ((inRange$ | async) && !added) ||\r\n ((inRange$ | async) && (isPreview$ | async))\r\n \"\r\n [matBadgeDisabled]=\"(inRange$ | async) === false\"\r\n matBadgeSize=\"small\"\r\n matBadgePosition=\"after\"\r\n [svgIcon]=\"(isPreview$ | async) ? 'plus' : added ? 'delete' : 'plus'\"\r\n >\r\n </mat-icon>\r\n</button>\r\n\r\n<button\r\n [id]=\"!isMobile ? 'hide-save-search-result-btn' : ''\"\r\n igoStopPropagation\r\n *ngIf=\"layer.meta.dataType === 'Feature' && saveSearchResultInLayer\"\r\n mat-icon-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"addFeatureToLayerTooltip$ | async | translate\"\r\n (click)=\"addFeatureToLayer()\"\r\n>\r\n <mat-icon\r\n aria-hidden=\"false\"\r\n matBadge=\"icon\"\r\n igoMatBadgeIcon=\"eye-off\"\r\n igoMatBadgeInverseColor=\"true\"\r\n [matBadgeHidden]=\"inRange$ | async\"\r\n matBadgeDisabled=\"true\"\r\n matBadgeSize=\"small\"\r\n matBadgePosition=\"after\"\r\n svgIcon=\"file-plus-outline\"\r\n >\r\n </mat-icon>\r\n</button>\r\n", styles: [":host #hide-save-search-result-btn{display:none}:host #show-save-search-result-btn{display:block}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgeColor", "matBadgeOverlap", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "directive", type: i7.IgoBadgeIconDirective, selector: "[igoMatBadgeIcon]", inputs: ["igoMatBadgeIcon", "matBadgeHidden", "matBadgeDisabled", "igoMatBadgeInverseColor", "igoMatBadgeInheritColor", "igoMatBadgeColor", "igoMatBadgeBackgroundColor"] }, { kind: "directive", type: i7.StopPropagationDirective, selector: "[igoStopPropagation]" }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i10.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
437
394
  }
438
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SearchResultAddButtonComponent, [{
439
- type: Component,
440
- args: [{ selector: 'igo-search-add-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\r\n igoStopPropagation\r\n (mouseenter)=\"onMouseEvent($event)\"\r\n (mouseleave)=\"onMouseEvent($event)\"\r\n *ngIf=\"layer.meta.dataType === 'Layer'\"\r\n mat-icon-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"computeTooltip() | translate\"\r\n [color]=\"(isPreview$ | async) ? '' : added ? 'warn' : ''\"\r\n (click)=\"onToggleClick($event)\"\r\n>\r\n <mat-icon\r\n aria-hidden=\"false\"\r\n matBadge=\"icon\"\r\n [igoMatBadgeIcon]=\"getBadgeIcon()\"\r\n igoMatBadgeColor=\"rgba(0,0,0,0.87)\"\r\n igoMatBadgeBackgroundColor=\"none\"\r\n igoMatBadgeInverseColor=\"true\"\r\n [matBadgeHidden]=\"\r\n ((inRange$ | async) && (isVisible$ | async) === true) ||\r\n ((inRange$ | async) && !added) ||\r\n ((inRange$ | async) && (isPreview$ | async))\r\n \"\r\n [matBadgeDisabled]=\"(inRange$ | async) === false\"\r\n matBadgeSize=\"small\"\r\n matBadgePosition=\"after\"\r\n [svgIcon]=\"(isPreview$ | async) ? 'plus' : added ? 'delete' : 'plus'\"\r\n >\r\n </mat-icon>\r\n</button>\r\n\r\n<button\r\n [id]=\"!isMobile ? 'hide-save-search-result-btn' : ''\"\r\n igoStopPropagation\r\n *ngIf=\"layer.meta.dataType === 'Feature' && saveSearchResultInLayer\"\r\n mat-icon-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"addFeatureToLayerTooltip$ | async | translate\"\r\n (click)=\"addFeatureToLayer()\"\r\n>\r\n <mat-icon\r\n aria-hidden=\"false\"\r\n matBadge=\"icon\"\r\n igoMatBadgeIcon=\"eye-off\"\r\n igoMatBadgeInverseColor=\"true\"\r\n [matBadgeHidden]=\"inRange$ | async\"\r\n matBadgeDisabled=\"true\"\r\n matBadgeSize=\"small\"\r\n matBadgePosition=\"after\"\r\n svgIcon=\"file-plus-outline\"\r\n >\r\n </mat-icon>\r\n</button>\r\n", styles: [":host #hide-save-search-result-btn{display:none}:host #show-save-search-result-btn{display:block}\n"] }]
441
- }], function () { return [{ type: i1.LayerService }, { type: i2.MatDialog }, { type: i3.DataSourceService }, { type: i4.MediaService }]; }, { layer: [{
442
- type: Input
443
- }], store: [{
444
- type: Input
445
- }], added: [{
446
- type: Input
447
- }], map: [{
448
- type: Input
449
- }], saveSearchResultInLayer: [{
450
- type: Input
451
- }], color: [{
452
- type: Input
453
- }], stores: [{
454
- type: Input
455
- }] }); })();
456
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXJlc3VsdHMtYWRkLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9zZWFyY2gvc2VhcmNoLXJlc3VsdHMvc2VhcmNoLXJlc3VsdHMtYWRkLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9zZWFyY2gvc2VhcmNoLXJlc3VsdHMvc2VhcmNoLXJlc3VsdHMtYWRkLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEVBR04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFLakQsT0FBTyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDckMsT0FBTyxJQUFJLE1BQU0sZUFBZSxDQUFDO0FBQ2pDLE9BQU8sTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JDLE9BQU8sS0FBSyxNQUFNLGdCQUFnQixDQUFDO0FBRW5DLE9BQU8sRUFBRSxlQUFlLEVBQWdCLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQXFCLE1BQU0sa0JBQWtCLENBQUM7QUFDeEUsT0FBTyxFQUVMLGFBQWEsRUFDYixZQUFZLEVBQ1osMkJBQTJCLEVBQzNCLDZCQUE2QixFQUM3QixxQkFBcUIsRUFDckIsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0NBQWdDLENB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LEtBQUs7a0JBQWIsS0FBSztZQUtHLEdBQUc7a0JBQVgsS0FBSztZQUtHLHVCQUF1QjtrQkFBL0IsS0FBSztZQUdGLEtBQUs7a0JBRFIsS0FBSztZQVNHLE1BQU07a0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuXHJcbmltcG9ydCB7IEVudGl0eVN0b3JlIH0gZnJvbSAnQGlnbzIvY29tbW9uJztcclxuaW1wb3J0IHsgTWVkaWEsIE1lZGlhU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5cclxuaW1wb3J0IE9sT3ZlcmxheSBmcm9tICdvbC9PdmVybGF5JztcclxuaW1wb3J0IHsgZGVmYXVsdCBhcyBPbEdlb21ldHJ5IH0gZnJvbSAnb2wvZ2VvbS9HZW9tZXRyeSc7XHJcbmltcG9ydCB7IFZlY3RvclNvdXJjZUV2ZW50IGFzIE9sVmVjdG9yU291cmNlRXZlbnQgfSBmcm9tICdvbC9zb3VyY2UvVmVjdG9yJztcclxuaW1wb3J0IENpcmNsZSBmcm9tICdvbC9zdHlsZS9DaXJjbGUnO1xyXG5pbXBvcnQgRmlsbCBmcm9tICdvbC9zdHlsZS9GaWxsJztcclxuaW1wb3J0IFN0cm9rZSBmcm9tICdvbC9zdHlsZS9TdHJva2UnO1xyXG5pbXBvcnQgU3R5bGUgZnJvbSAnb2wvc3R5bGUvU3R5bGUnO1xyXG5cclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb24sIHRha2UgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IERhdGFTb3VyY2VTZXJ2aWNlLCBGZWF0dXJlRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2UnO1xyXG5pbXBvcnQge1xyXG4gIEZlYXR1cmUsXHJcbiAgRmVhdHVyZU1vdGlvbixcclxuICBGZWF0dXJlU3RvcmUsXHJcbiAgRmVhdHVyZVN0b3JlTG9hZGluZ1N0cmF0ZWd5LFxyXG4gIEZlYXR1cmVTdG9yZVNlbGVjdGlvblN0cmF0ZWd5LFxyXG4gIHRyeUFkZExvYWRpbmdTdHJhdGVneSxcclxuICB0cnlBZGRTZWxlY3Rpb25TdHJhdGVneSxcclxuICB0cnlCaW5kU3RvcmVMYXllclxyXG59IGZyb20gJy4uLy4uL2ZlYXR1cmUnO1xyXG5pbXBvcnQgeyBMQVlFUiB9IGZyb20gJy4uLy4uL2xheWVyL3NoYXJlZC9sYXllci5lbnVtcyc7XHJcbmltcG9ydCB7IExheWVyU2VydmljZSB9IGZyb20gJy4uLy4uL2xheWVyL3NoYXJlZC9sYXllci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTGF5ZXJPcHRpb25zIH0gZnJvbSAnLi4vLi4vbGF5ZXIvc2hhcmVkL2xheWVycy9sYXllci5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBWZWN0b3JMYXllciB9IGZyb20gJy4uLy4uL2xheWVyL3NoYXJlZC9sYXllcnMvdmVjdG9yLWxheWVyJztcclxuaW1wb3J0IHsgSWdvTWFwIH0gZnJvbSAnLi4vLi4vbWFwL3NoYXJlZC9tYXAnO1xyXG5pbXBvcnQgeyBnZXRUb29sdGlwc09mT2xHZW9tZXRyeSB9IGZyb20gJy4uLy4uL21lYXN1cmUnO1xyXG5pbXBvcnQgeyBRdWVyeWFibGVEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4uLy4uL3F1ZXJ5L3NoYXJlZCc7XHJcbmltcG9ydCB7IFNlYXJjaFJlc3VsdCB9IGZyb20gJy4uL3NoYXJlZC9zZWFyY2guaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IFNhdmVGZWF0dXJlRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9zYXZlLWZlYXR1cmUtZGlhbG9nLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lnby1zZWFyY2gtYWRkLWJ1dHRvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1yZXN1bHRzLWFkZC1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NlYXJjaC1yZXN1bHRzLWFkZC1idXR0b24uY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VhcmNoUmVzdWx0QWRkQnV0dG9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyB0b29sdGlwJDogQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFxyXG4gICAgJ2lnby5nZW8uY2F0YWxvZy5sYXllci5hZGRUb01hcCdcclxuICApO1xyXG5cclxuICBwdWJsaWMgYWRkRmVhdHVyZVRvTGF5ZXJUb29sdGlwJDogQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4gPVxyXG4gICAgbmV3IEJlaGF2aW9yU3ViamVjdCgnaWdvLmdlby5zZWFyY2guYWRkVG9MYXllcicpO1xyXG5cclxuICBwcml2YXRlIHJlc29sdXRpb24kJDogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgbGF5ZXJzJCQ6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgcHVibGljIGluUmFuZ2UkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRydWUpO1xyXG5cclxuICBwdWJsaWMgaXNWaXNpYmxlJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XHJcblxyXG4gIHB1YmxpYyBpc1ByZXZpZXckOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcclxuXHJcbiAgcHJpdmF0ZSBsYXllcnNTdWJjcmlwdGlvbnMgPSBbXTtcclxuXHJcbiAgcHJpdmF0ZSBsYXN0VGltZW91dFJlcXVlc3Q7XHJcblxyXG4gIHByaXZhdGUgbW91c2VJbnNpZGVBZGQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgbGF5ZXI6IFNlYXJjaFJlc3VsdDtcclxuXHJcbiAgQElucHV0KCkgc3RvcmU6IEVudGl0eVN0b3JlPFNlYXJjaFJlc3VsdD47XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZXRoZXIgdGhlIGxheWVyIGlzIGFscmVhZHkgYWRkZWQgdG8gdGhlIG1hcFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGFkZGVkOiBib29sZWFuO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgbWFwIHRvIGFkZCB0aGUgc2VhcmNoIHJlc3VsdCBsYXllciB0b1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIG1hcDogSWdvTWFwO1xyXG5cclxuICAvKipcclxuICAgKiBzaG93IGhpZGUgc2F2ZSBzZWFyY2ggcmVzdWx0IGluIGxheWVyIGJ1dHRvblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHNhdmVTZWFyY2hSZXN1bHRJbkxheWVyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGNvbG9yKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbG9yO1xyXG4gIH1cclxuICBzZXQgY29sb3IodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fY29sb3IgPSB2YWx1ZTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfY29sb3IgPSAncHJpbWFyeSc7XHJcblxyXG4gIEBJbnB1dCgpIHN0b3JlczogRmVhdHVyZVN0b3JlPEZlYXR1cmU+W10gPSBbXTtcclxuXHJcbiAgZ2V0IGFsbExheWVycygpIHtcclxuICAgIHJldHVybiB0aGlzLm1hcC5sYXllcnMuZmlsdGVyKChsYXllcikgPT5cclxuICAgICAgU3RyaW5nKGxheWVyLmlkKS5pbmNsdWRlcygnaWdvLXNlYXJjaC1sYXllcicpXHJcbiAgICApO1xyXG4gIH1cclxuICBwcml2YXRlIG1lZGlhU2VydmljZSQkOiBTdWJzY3JpcHRpb247XHJcbiAgcHVibGljIGlzTW9iaWxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGxheWVyU2VydmljZTogTGF5ZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHByaXZhdGUgZGF0YVNvdXJjZVNlcnZpY2U6IERhdGFTb3VyY2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtZWRpYVNlcnZpY2U6IE1lZGlhU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgLyoqXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAvLyBjaGVjayB0aGUgdmlldyBpZiBpcyBtb2JpbGUgb3Igbm90XHJcbiAgICB0aGlzLm1lZGlhU2VydmljZSQkID0gdGhpcy5tZWRpYVNlcnZpY2UubWVkaWEkLnN1YnNjcmliZSgobWVkaWE6IE1lZGlhKSA9PiB7XHJcbiAgICAgIGlmIChtZWRpYSA9PT0gTWVkaWEuTW9iaWxlKSB7XHJcbiAgICAgICAgdGhpcy5pc01vYmlsZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgaWYgKHRoaXMubGF5ZXIubWV0YS5kYXRhVHlwZSA9PT0gJ0xheWVyJykge1xyXG4gICAgICB0aGlzLmFkZGVkID1cclxuICAgICAgICB0aGlzLm1hcC5sYXllcnMuZmluZEluZGV4KFxyXG4gICAgICAgICAgKGxheSkgPT4gbGF5LmlkID09PSB0aGlzLmxheWVyLmRhdGEuc291cmNlT3B0aW9ucy5pZFxyXG4gICAgICAgICkgIT09IC0xO1xyXG4gICAgfVxyXG4gICAgdGhpcy5sYXllcnMkJCA9IHRoaXMubWFwLmxheWVycyQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5pc1Zpc2libGUoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5yZXNvbHV0aW9uJCQgPSB0aGlzLm1hcC52aWV3Q29udHJvbGxlci5yZXNvbHV0aW9uJC5zdWJzY3JpYmUoXHJcbiAgICAgICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNJblJlc29sdXRpb25zUmFuZ2UodmFsdWUpO1xyXG4gICAgICAgIHRoaXMuaXNWaXNpYmxlKCk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMucmVzb2x1dGlvbiQkLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLmxheWVycyQkLnVuc3Vic2NyaWJlKCk7XHJcbiAgICBpZiAodGhpcy5tZWRpYVNlcnZpY2UkJCkge1xyXG4gICAgICB0aGlzLm1lZGlhU2VydmljZSQkLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPbiBtb3VzZSBldmVudCwgbW91c2VlbnRlciAvbW91c2VsZWF2ZVxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIG9uTW91c2VFdmVudChldmVudCkge1xyXG4gICAgdGhpcy5vblRvZ2dsZUNsaWNrKGV2ZW50KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9uIHRvZ2dsZSBidXR0b24gY2xpY2ssIGVtaXQgdGhlIGFkZGVkIGNoYW5nZSBldmVudFxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIG9uVG9nZ2xlQ2xpY2soY3VyckV2ZW50OiBFdmVudCkge1xyXG4gICAgaWYgKHR5cGVvZiB0aGlzLmxhc3RUaW1lb3V0UmVxdWVzdCAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMubGFzdFRpbWVvdXRSZXF1ZXN0KTtcclxuICAgIH1cclxuICAgIGNvbnN0IGV2ZW50ID0gY3VyckV2ZW50ID8gY3VyckV2ZW50IDogKHt9IGFzIEV2ZW50KTtcclxuXHJcbiAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ21vdXNlZW50ZXInICYmIHRoaXMubW91c2VJbnNpZGVBZGQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgc3dpdGNoIChldmVudC50eXBlKSB7XHJcbiAgICAgIGNhc2UgJ2NsaWNrJzpcclxuICAgICAgICBpZiAoIXRoaXMuaXNQcmV2aWV3JC52YWx1ZSkge1xyXG4gICAgICAgICAgaWYgKHRoaXMuYWRkZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5yZW1vdmUoKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWRkKGV2ZW50KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pc1ByZXZpZXckLm5leHQoZmFsc2UpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdtb3VzZWVudGVyJzpcclxuICAgICAgICBpZiAoIXRoaXMuaXNQcmV2aWV3JC52YWx1ZSAmJiAhdGhpcy5hZGRlZCkge1xyXG4gICAgICAgICAgdGhpcy5sYXN0VGltZW91dFJlcXVlc3QgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5hZGQoZXZlbnQpO1xyXG4gICAgICAgICAgICB0aGlzLmlzUHJldmlldyQubmV4dCh0cnVlKTtcclxuICAgICAgICAgIH0sIDUwMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubW91c2VJbnNpZGVBZGQgPSB0cnVlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdtb3VzZWxlYXZlJzpcclxuICAgICAgICBpZiAodGhpcy5pc1ByZXZpZXckLnZhbHVlKSB7XHJcbiAgICAgICAgICB0aGlzLnJlbW92ZSgpO1xyXG4gICAgICAgICAgdGhpcy5pc1ByZXZpZXckLm5leHQoZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLm1vdXNlSW5zaWRlQWRkID0gZmFsc2U7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkZChldmVudDogRXZlbnQpIHtcclxuICAgIGlmICghdGhpcy5hZGRlZCkge1xyXG4gICAgICB0aGlzLmFkZGVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5hZGRMYXllclRvTWFwKGV2ZW50KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVtb3ZlKCkge1xyXG4gICAgaWYgKHRoaXMuYWRkZWQpIHtcclxuICAgICAgdGhpcy5hZGRlZCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnJlbW92ZUxheWVyRnJvbU1hcCgpO1xyXG4gICAgICB0aGlzLmxheWVyc1N1YmNyaXB0aW9ucy5tYXAoKHMpID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgICAgIHRoaXMubGF5ZXJzU3ViY3JpcHRpb25zID0gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbWl0IGFkZGVkIGNoYW5nZSBldmVudCB3aXRoIGFkZGVkID0gdHJ1ZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgYWRkTGF5ZXJUb01hcChldmVudD86IEV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5tYXAgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMubGF5ZXIubWV0YS5kYXRhVHlwZSAhPT0gTEFZRVIpIHtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBsYXllck9wdGlvbnMgPSAodGhpcy5sYXllciBhcyBTZWFyY2hSZXN1bHQ8TGF5ZXJPcHRpb25zPikuZGF0YTtcclxuICAgIGlmIChsYXllck9wdGlvbnMuc291cmNlT3B0aW9ucy5vcHRpb25zRnJvbUFwaSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGxheWVyT3B0aW9ucy5zb3VyY2VPcHRpb25zLm9wdGlvbnNGcm9tQXBpID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHRoaXMubGF5ZXJzU3ViY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIHRoaXMubGF5ZXJTZXJ2aWNlLmNyZWF0ZUFzeW5jTGF5ZXIobGF5ZXJPcHRpb25zKS5zdWJzY3JpYmUoKGxheWVyKSA9PiB7XHJcbiAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICdjbGljaycpIHtcclxuICAgICAgICAgIHRoaXMubWFwLmxheWVyc0FkZGVkQnlDbGljayQubmV4dChbbGF5ZXJdKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5tYXAuYWRkTGF5ZXIobGF5ZXIpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXQgYWRkZWQgY2hhbmdlIGV2ZW50IHdpdGggYWRkZWQgPSBmYWxzZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVtb3ZlTGF5ZXJGcm9tTWFwKCkge1xyXG4gICAgaWYgKHRoaXMubWFwID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmxheWVyLm1ldGEuZGF0YVR5cGUgIT09IExBWUVSKSB7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgb0xheWVyID0gdGhpcy5tYXAuZ2V0TGF5ZXJCeUlkKHRoaXMubGF5ZXIuZGF0YS5zb3VyY2VPcHRpb25zLmlkKTtcclxuICAgIHRoaXMubWFwLnJlbW92ZUxheWVyKG9MYXllcik7XHJcbiAgfVxyXG5cclxuICBpc0luUmVzb2x1dGlvbnNSYW5nZShyZXNvbHV0aW9uOiBudW1iZXIpIHtcclxuICAgIGNvbnN0IG1pblJlc29sdXRpb24gPSB0aGlzLmxheWVyLmRhdGEubWluUmVzb2x1dGlvbiB8fCAwO1xyXG4gICAgY29uc3QgbWF4UmVzb2x1dGlvbiA9IHRoaXMubGF5ZXIuZGF0YS5tYXhSZXNvbHV0aW9uIHx8IEluZmluaXR5O1xyXG4gICAgdGhpcy5pblJhbmdlJC5uZXh0KFxyXG4gICAgICByZXNvbHV0aW9uID49IG1pblJlc29sdXRpb24gJiYgcmVzb2x1dGlvbiA8PSBtYXhSZXNvbHV0aW9uXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgaXNWaXNpYmxlKCkge1xyXG4gICAgaWYgKHRoaXMubGF5ZXI/LmRhdGE/LnNvdXJjZU9wdGlvbnM/LmlkKSB7XHJcbiAgICAgIGNvbnN0IG9MYXllciA9IHRoaXMubWFwLmdldExheWVyQnlJZCh0aGlzLmxheWVyLmRhdGEuc291cmNlT3B0aW9ucy5pZCk7XHJcbiAgICAgIG9MYXllclxyXG4gICAgICAgID8gdGhpcy5pc1Zpc2libGUkLm5leHQob0xheWVyLnZpc2libGUpXHJcbiAgICAgICAgOiB0aGlzLmlzVmlzaWJsZSQubmV4dChmYWxzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRCYWRnZUljb24oKSB7XHJcbiAgICBpZiAodGhpcy5pblJhbmdlJC52YWx1ZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5pc1Zpc2libGUkLnZhbHVlID8gJycgOiAnZXllLW9mZic7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gJ2V5ZS1vZmYnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29tcHV0ZVRvb2x0aXAoKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLmFkZGVkKSB7XHJcbiAgICAgIGlmICh0aGlzLmlzUHJldmlldyQudmFsdWUpIHtcclxuICAgICAgICByZXR1cm4gJ2lnby5nZW8uY2F0YWxvZy5sYXllci5hZGRUb01hcCc7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5pblJhbmdlJC52YWx1ZSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmlzVmlzaWJsZSQudmFsdWVcclxuICAgICAgICAgID8gJ2lnby5nZW8uY2F0YWxvZy5sYXllci5yZW1vdmVGcm9tTWFwJ1xyXG4gICAgICAgICAgOiAnaWdvLmdlby5jYXRhbG9nLmxheWVyLnJlbW92ZUZyb21NYXBOb3RWaXNpYmxlJztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gJ2lnby5nZW8uY2F0YWxvZy5sYXllci5yZW1vdmVGcm9tTWFwT3V0UmFuZ2UnO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5pblJhbmdlJC52YWx1ZVxyXG4gICAgICAgID8gJ2lnby5nZW8uY2F0YWxvZy5sYXllci5hZGRUb01hcCdcclxuICAgICAgICA6ICdpZ28uZ2VvLmNhdGFsb2cubGF5ZXIuYWRkVG9NYXBPdXRSYW5nZSc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhZGRGZWF0dXJlVG9MYXllcigpIHtcclxuICAgIGlmICh0aGlzLmxheWVyLm1ldGEuZGF0YVR5cGUgIT09ICdGZWF0dXJlJykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgc2VsZWN0ZWRGZWF0dXJlID0gdGhpcy5sYXllcjtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oU2F2ZUZlYXR1cmVEaWFsb2dDb21wb25lbnQsIHtcclxuICAgICAgd2lkdGg6ICc3MDBweCcsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBmZWF0dXJlOiBzZWxlY3RlZEZlYXR1cmUsXHJcbiAgICAgICAgbGF5ZXJzOiB0aGlzLmFsbExheWVyc1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBkaWFsb2dSZWZcclxuICAgICAgLmFmdGVyQ2xvc2VkKClcclxuICAgICAgLnN1YnNjcmliZSgoZGF0YTogeyBsYXllcjogc3RyaW5nIHwgYW55OyBmZWF0dXJlOiBTZWFyY2hSZXN1bHQgfSkgPT4ge1xyXG4gICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5zdG9yZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICB0aGlzLnN0b3Jlcy5tYXAoKHN0b3JlKSA9PiB7XHJcbiAgICAgICAgICAgICAgc3RvcmUuc3RhdGUudXBkYXRlQWxsKHsgc2VsZWN0ZWQ6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgICAgIGlmIChzdG9yZT8ubGF5ZXIpIHtcclxuICAgICAgICAgICAgICAgIHN0b3JlLmxheWVyLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHN0b3JlO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIGNoZWNrIGlmIGlzIG5ldyBsYXllclxyXG4gICAgICAgICAgaWYgKHR5cGVvZiBkYXRhLmxheWVyID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUxheWVyKGRhdGEubGF5ZXIsIGRhdGEuZmVhdHVyZSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCBhY3RpdmVTdG9yZSA9IHRoaXMuc3RvcmVzLmZpbmQoXHJcbiAgICAgICAgICAgICAgKHN0b3JlKSA9PiBzdG9yZS5sYXllci5pZCA9PT0gZGF0YS5sYXllci5pZFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBhY3RpdmVTdG9yZS5sYXllci52aXNpYmxlID0gdHJ1ZTtcclxuICAgICAgICAgICAgYWN0aXZlU3RvcmUubGF5ZXIub3BhY2l0eSA9IDE7XHJcbiAgICAgICAgICAgIHRoaXMuYWRkRmVhdHVyZShkYXRhLmZlYXR1cmUsIGFjdGl2ZVN0b3JlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlTGF5ZXIobGF5ZXJUaXRsZTogc3RyaW5nLCBzZWxlY3RlZEZlYXR1cmU6IFNlYXJjaFJlc3VsdCkge1xyXG4gICAgY29uc3QgYWN0aXZlU3RvcmU6IEZlYXR1cmVTdG9yZTxGZWF0dXJlPiA9IG5ldyBGZWF0dXJlU3RvcmU8RmVhdHVyZT4oW10sIHtcclxuICAgICAgbWFwOiB0aGlzLm1hcFxyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3Qgc3R5bGVzID0gW1xyXG4gICAgICBuZXcgU3R5bGUoe1xyXG4gICAgICAgIGltYWdlOiBuZXcgQ2lyY2xlKHtcclxuICAgICAgICAgIHJhZGl1czogNSxcclxuICAgICAgICAgIHN0cm9rZTogbmV3IFN0cm9rZSh7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxLFxyXG4gICAgICAgICAgICBjb2xvcjogJ3JnYmEoMTQzLDcsNywxKSdcclxuICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgZmlsbDogbmV3IEZpbGwoe1xyXG4gICAgICAgICAgICBjb2xvcjogJ3JnYmEoMTQzLDcsNywxKSdcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfSlcclxuICAgICAgfSksXHJcbiAgICAgIG5ldyBTdHlsZSh7XHJcbiAgICAgICAgc3Ryb2tlOiBuZXcgU3Ryb2tlKHtcclxuICAgICAgICAgIHdpZHRoOiAxLFxyXG4gICAgICAgICAgY29sb3I6ICdyZ2JhKDE0Myw3LDcsMSknXHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgZmlsbDogbmV3IEZpbGwoe1xyXG4gICAgICAgICAgY29sb3I6ICdyZ2JhKDAsIDAsIDI1NSwgMC4xKSdcclxuICAgICAgICB9KVxyXG4gICAgICB9KVxyXG4gICAgXTtcclxuXHJcbiAgICAvLyBzZXQgbGF5ZXIgaWRcclxuICAgIGxldCBsYXllckNvdW50ZXJJRDogbnVtYmVyID0gMDtcclxuICAgIGZvciAoY29uc3QgbGF5ZXIgb2YgdGhpcy5hbGxMYXllcnMpIHtcclxuICAgICAgbGV0IG51bWJlcklkID0gTnVtYmVyKGxheWVyLmlkLnJlcGxhY2UoJ2lnby1zZWFyY2gtbGF5ZXInLCAnJykpO1xyXG4gICAgICBsYXllckNvdW50ZXJJRCA9IE1hdGgubWF4KG51bWJlcklkLCBsYXllckNvdW50ZXJJRCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kYXRhU291cmNlU2VydmljZVxyXG4gICAgICAuY3JlYXRlQXN5bmNEYXRhU291cmNlKHtcclxuICAgICAgICB0eXBlOiAndmVjdG9yJyxcclxuICAgICAgICBxdWVyeWFibGU6IHRydWVcclxuICAgICAgfSBhcyBRdWVyeWFibGVEYXRhU291cmNlT3B0aW9ucylcclxuICAgICAgLnBpcGUodGFrZSgxKSlcclxuICAgICAgLnN1YnNjcmliZSgoZGF0YVNvdXJjZTogRmVhdHVyZURhdGFTb3VyY2UpID0+IHtcclxuICAgICAgICBsZXQgc2VhcmNoTGF5ZXI6IFZlY3RvckxheWVyID0gbmV3IFZlY3RvckxheWVyKHtcclxuICAgICAgICAgIGlzSWdvSW50ZXJuYWxMYXllcjogdHJ1ZSxcclxuICAgICAgICAgIGlkOiAnaWdvLXNlYXJjaC1sYXllcicgKyArK2xheWVyQ291bnRlcklELFxyXG4gICAgICAgICAgdGl0bGU6IGxheWVyVGl0bGUsXHJcbiAgICAgICAgICBzb3VyY2U6IGRhdGFTb3VyY2UsXHJcbiAgICAgICAgICBpZ29TdHlsZToge1xyXG4gICAgICAgICAgICBlZGl0YWJsZTogZmFsc2UsXHJcbiAgICAgICAgICAgIGlnb1N0eWxlT2JqZWN0OiB7XHJcbiAgICAgICAgICAgICAgZmlsbDogeyBjb2xvcjogJ3JnYmEoMjU1LDI1NSwyNTUsMC40KScgfSxcclxuICAgICAgICAgICAgICBzdHJva2U6IHsgY29sb3I6ICdyZ2JhKDE0Myw3LDcsMSknLCB3aWR0aDogMSB9LFxyXG4gICAgICAgICAgICAgIGNpcmNsZToge1xyXG4gICAgICAgICAgICAgICAgZmlsbDogeyBjb2xvcjogJ3JnYmEoMjU1LDI1NSwyNTUsMC40KScgfSxcclxuICAgICAgICAgICAgICAgIHN0cm9rZTogeyBjb2xvcjogJ3JnYmEoMTQzLDcsNywxKScsIHdpZHRoOiAxIH0sXHJcbiAgICAgICAgICAgICAgICByYWRpdXM6IDVcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBzdHlsZTogc3R5bGVzLFxyXG4gICAgICAgICAgc2hvd0luTGF5ZXJMaXN0OiB0cnVlLFxyXG4gICAgICAgICAgZXhwb3J0YWJsZTogdHJ1ZSxcclxuICAgICAgICAgIHdvcmtzcGFjZToge1xyXG4gICAgICAgICAgICBlbmFibGVkOiB0cnVlXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRyeUJpbmRTdG9yZUxheWVyKGFjdGl2ZVN0b3JlLCBzZWFyY2hMYXllcik7XHJcbiAgICAgICAgdHJ5QWRkTG9hZGluZ1N0cmF0ZWd5KFxyXG4gICAgICAgICAgYWN0aXZlU3RvcmUsXHJcbiAgICAgICAgICBuZXcgRmVhdHVyZVN0b3JlTG9hZGluZ1N0cmF0ZWd5KHtcclxuICAgICAgICAgICAgbW90aW9uOiBGZWF0dXJlTW90aW9uLk5vbmVcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdHJ5QWRkU2VsZWN0aW9uU3RyYXRlZ3koXHJcbiAgICAgICAgICBhY3RpdmVTdG9yZSxcclxuICAgICAgICAgIG5ldyBGZWF0dXJlU3RvcmVTZWxlY3Rpb25TdHJhdGVneSh7XHJcbiAgICAgICAgICAgIG1hcDogdGhpcy5tYXAsXHJcbiAgICAgICAgICAgIG1vdGlvbjogRmVhdHVyZU1vdGlvbi5Ob25lLFxyXG4gICAgICAgICAgICBtYW55OiB0cnVlXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIGFjdGl2ZVN0b3JlLmxheWVyLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgIGFjdGl2ZVN0b3JlLnNvdXJjZS5vbC5vbihcclxuICAgICAgICAgICdyZW1vdmVmZWF0dXJlJyxcclxuICAgICAgICAgIChldmVudDogT2xWZWN0b3JTb3VyY2VFdmVudDxPbEdlb21ldHJ5PikgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBvbEdlb21ldHJ5ID0gZXZlbnQuZmVhdHVyZS5nZXRHZW9tZXRyeSgpO1xyXG4gICAgICAgICAgICB0aGlzLmNsZWFyTGFiZWxzT2ZPbEdlb21ldHJ5KG9sR2VvbWV0cnkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHRoaXMuYWRkRmVhdHVyZShzZWxlY3RlZEZlYXR1cmUsIGFjdGl2ZVN0b3JlKTtcclxuICAgICAgICB0aGlzLnN0b3Jlcy5wdXNoKGFjdGl2ZVN0b3JlKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBhZGRGZWF0dXJlKGZlYXR1cmU6IFNlYXJjaFJlc3VsdCwgYWN0aXZlU3RvcmU6IEZlYXR1cmVTdG9yZTxGZWF0dXJlPikge1xyXG4gICAgY29uc3QgbmV3RmVhdHVyZSA9IHtcclxuICAgICAgdHlwZTogZmVhdHVyZS5kYXRhLnR5cGUsXHJcbiAgICAgIGdlb21ldHJ5OiB7XHJcbiAgICAgICAgY29vcmRpbmF0ZXM6IGZlYXR1cmUuZGF0YS5nZW9tZXRyeS5jb29yZGluYXRlcyxcclxuICAgICAgICB0eXBlOiBmZWF0dXJlLmRhdGEuZ2VvbWV0cnkudHlwZVxyXG4gICAgICB9LFxyXG4gICAgICBwcm9qZWN0aW9uOiBmZWF0dXJlLmRhdGEucHJvamVjdGlvbixcclxuICAgICAgcHJvcGVydGllczogZmVhdHVyZS5kYXRhLnByb3BlcnRpZXMsXHJcbiAgICAgIG1ldGE6IHtcclxuICAgICAgICBpZDogZmVhdHVyZS5tZXRhLmlkXHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICBkZWxldGUgbmV3RmVhdHVyZS5wcm9wZXJ0aWVzLlJvdXRlO1xyXG4gICAgYWN0aXZlU3RvcmUudXBkYXRlKG5ld0ZlYXR1cmUpO1xyXG4gICAgYWN0aXZlU3RvcmUuc2V0TGF5ZXJFeHRlbnQoKTtcclxuICAgIGFjdGl2ZVN0b3JlLmxheWVyLm9sLmdldFNvdXJjZSgpLnJlZnJlc2goKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2xlYXJMYWJlbHNPZk9sR2VvbWV0cnkob2xHZW9tZXRyeSkge1xyXG4gICAgZ2V0VG9vbHRpcHNPZk9sR2VvbWV0cnkob2xHZW9tZXRyeSkuZm9yRWFjaChcclxuICAgICAgKG9sVG9vbHRpcDogT2xPdmVybGF5IHwgdW5kZWZpbmVkKSA9PiB7XHJcbiAgICAgICAgaWYgKG9sVG9vbHRpcCAmJiBvbFRvb2x0aXAuZ2V0TWFwKCkpIHtcclxuICAgICAgICAgIHRoaXMubWFwLm9sLnJlbW92ZU92ZXJsYXkob2xUb29sdGlwKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiIsIjxidXR0b25cclxuICBpZ29TdG9wUHJvcGFnYXRpb25cclxuICAobW91c2VlbnRlcik9XCJvbk1vdXNlRXZlbnQoJGV2ZW50KVwiXHJcbiAgKG1vdXNlbGVhdmUpPVwib25Nb3VzZUV2ZW50KCRldmVudClcIlxyXG4gICpuZ0lmPVwibGF5ZXIubWV0YS5kYXRhVHlwZSA9PT0gJ0xheWVyJ1wiXHJcbiAgbWF0LWljb24tYnV0dG9uXHJcbiAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcclxuICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcclxuICBbbWF0VG9vbHRpcF09XCJjb21wdXRlVG9vbHRpcCgpIHwgdHJhbnNsYXRlXCJcclxuICBbY29sb3JdPVwiKGlzUHJldmlldyQgfCBhc3luYykgPyAnJyA6IGFkZGVkID8gJ3dhcm4nIDogJydcIlxyXG4gIChjbGljayk9XCJvblRvZ2dsZUNsaWNrKCRldmVudClcIlxyXG4+XHJcbiAgPG1hdC1pY29uXHJcbiAgICBhcmlhLWhpZGRlbj1cImZhbHNlXCJcclxuICAgIG1hdEJhZGdlPVwiaWNvblwiXHJcbiAgICBbaWdvTWF0QmFkZ2VJY29uXT1cImdldEJhZGdlSWNvbigpXCJcclxuICAgIGlnb01hdEJhZGdlQ29sb3I9XCJyZ2JhKDAsMCwwLDAuODcpXCJcclxuICAgIGlnb01hdEJhZGdlQmFja2dyb3VuZENvbG9yPVwibm9uZVwiXHJcbiAgICBpZ29NYXRCYWRnZUludmVyc2VDb2xvcj1cInRydWVcIlxyXG4gICAgW21hdEJhZGdlSGlkZGVuXT1cIlxyXG4gICAgICAoKGluUmFuZ2UkIHwgYXN5bmMpICYmIChpc1Zpc2libGUkIHwgYXN5bmMpID09PSB0cnVlKSB8fFxyXG4gICAgICAoKGluUmFuZ2UkIHwgYXN5bmMpICYmICFhZGRlZCkgfHxcclxuICAgICAgKChpblJhbmdlJCB8IGFzeW5jKSAmJiAoaXNQcmV2aWV3JCB8IGFzeW5jKSlcclxuICAgIFwiXHJcbiAgICBbbWF0QmFkZ2VEaXNhYmxlZF09XCIoaW5SYW5nZSQgfCBhc3luYykgPT09IGZhbHNlXCJcclxuICAgIG1hdEJhZGdlU2l6ZT1cInNtYWxsXCJcclxuICAgIG1hdEJhZGdlUG9zaXRpb249XCJhZnRlclwiXHJcbiAgICBbc3ZnSWNvbl09XCIoaXNQcmV2aWV3JCB8IGFzeW5jKSA/ICdwbHVzJyA6IGFkZGVkID8gJ2RlbGV0ZScgOiAncGx1cydcIlxyXG4gID5cclxuICA8L21hdC1pY29uPlxyXG48L2J1dHRvbj5cclxuXHJcbjxidXR0b25cclxuICBbaWRdPVwiIWlzTW9iaWxlID8gJ2hpZGUtc2F2ZS1zZWFyY2gtcmVzdWx0LWJ0bicgOiAnJ1wiXHJcbiAgaWdvU3RvcFByb3BhZ2F0aW9uXHJcbiAgKm5nSWY9XCJsYXllci5tZXRhLmRhdGFUeXBlID09PSAnRmVhdHVyZScgJiYgc2F2ZVNlYXJjaFJlc3VsdEluTGF5ZXJcIlxyXG4gIG1hdC1pY29uLWJ1dHRvblxyXG4gIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXHJcbiAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXHJcbiAgW21hdFRvb2x0aXBdPVwiYWRkRmVhdHVyZVRvTGF5ZXJUb29sdGlwJCB8IGFzeW5jIHwgdHJhbnNsYXRlXCJcclxuICAoY2xpY2spPVwiYWRkRmVhdHVyZVRvTGF5ZXIoKVwiXHJcbj5cclxuICA8bWF0LWljb25cclxuICAgIGFyaWEtaGlkZGVuPVwiZmFsc2VcIlxyXG4gICAgbWF0QmFkZ2U9XCJpY29uXCJcclxuICAgIGlnb01hdEJhZGdlSWNvbj1cImV5ZS1vZmZcIlxyXG4gICAgaWdvTWF0QmFkZ2VJbnZlcnNlQ29sb3I9XCJ0cnVlXCJcclxuICAgIFttYXRCYWRnZUhpZGRlbl09XCJpblJhbmdlJCB8IGFzeW5jXCJcclxuICAgIG1hdEJhZGdlRGlzYWJsZWQ9XCJ0cnVlXCJcclxuICAgIG1hdEJhZGdlU2l6ZT1cInNtYWxsXCJcclxuICAgIG1hdEJhZGdlUG9zaXRpb249XCJhZnRlclwiXHJcbiAgICBzdmdJY29uPVwiZmlsZS1wbHVzLW91dGxpbmVcIlxyXG4gID5cclxuICA8L21hdC1pY29uPlxyXG48L2J1dHRvbj5cclxuIl19
395
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchResultAddButtonComponent, decorators: [{
396
+ type: Component,
397
+ args: [{ selector: 'igo-search-add-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\r\n igoStopPropagation\r\n (mouseenter)=\"onMouseEvent($event)\"\r\n (mouseleave)=\"onMouseEvent($event)\"\r\n *ngIf=\"layer.meta.dataType === 'Layer'\"\r\n mat-icon-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"computeTooltip() | translate\"\r\n [color]=\"(isPreview$ | async) ? '' : added ? 'warn' : ''\"\r\n (click)=\"onToggleClick($event)\"\r\n>\r\n <mat-icon\r\n aria-hidden=\"false\"\r\n matBadge=\"icon\"\r\n [igoMatBadgeIcon]=\"getBadgeIcon()\"\r\n igoMatBadgeColor=\"rgba(0,0,0,0.87)\"\r\n igoMatBadgeBackgroundColor=\"none\"\r\n igoMatBadgeInverseColor=\"true\"\r\n [matBadgeHidden]=\"\r\n ((inRange$ | async) && (isVisible$ | async) === true) ||\r\n ((inRange$ | async) && !added) ||\r\n ((inRange$ | async) && (isPreview$ | async))\r\n \"\r\n [matBadgeDisabled]=\"(inRange$ | async) === false\"\r\n matBadgeSize=\"small\"\r\n matBadgePosition=\"after\"\r\n [svgIcon]=\"(isPreview$ | async) ? 'plus' : added ? 'delete' : 'plus'\"\r\n >\r\n </mat-icon>\r\n</button>\r\n\r\n<button\r\n [id]=\"!isMobile ? 'hide-save-search-result-btn' : ''\"\r\n igoStopPropagation\r\n *ngIf=\"layer.meta.dataType === 'Feature' && saveSearchResultInLayer\"\r\n mat-icon-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"addFeatureToLayerTooltip$ | async | translate\"\r\n (click)=\"addFeatureToLayer()\"\r\n>\r\n <mat-icon\r\n aria-hidden=\"false\"\r\n matBadge=\"icon\"\r\n igoMatBadgeIcon=\"eye-off\"\r\n igoMatBadgeInverseColor=\"true\"\r\n [matBadgeHidden]=\"inRange$ | async\"\r\n matBadgeDisabled=\"true\"\r\n matBadgeSize=\"small\"\r\n matBadgePosition=\"after\"\r\n svgIcon=\"file-plus-outline\"\r\n >\r\n </mat-icon>\r\n</button>\r\n", styles: [":host #hide-save-search-result-btn{display:none}:host #show-save-search-result-btn{display:block}\n"] }]
398
+ }], ctorParameters: function () { return [{ type: i1.LayerService }, { type: i2.MatDialog }, { type: i3.DataSourceService }, { type: i4.MediaService }]; }, propDecorators: { layer: [{
399
+ type: Input
400
+ }], store: [{
401
+ type: Input
402
+ }], added: [{
403
+ type: Input
404
+ }], map: [{
405
+ type: Input
406
+ }], saveSearchResultInLayer: [{
407
+ type: Input
408
+ }], color: [{
409
+ type: Input
410
+ }], stores: [{
411
+ type: Input
412
+ }] } });
413
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXJlc3VsdHMtYWRkLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9zZWFyY2gvc2VhcmNoLXJlc3VsdHMvc2VhcmNoLXJlc3VsdHMtYWRkLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9zZWFyY2gvc2VhcmNoLXJlc3VsdHMvc2VhcmNoLXJlc3VsdHMtYWRkLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEVBR04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFLakQsT0FBTyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDckMsT0FBTyxJQUFJLE1BQU0sZUFBZSxDQUFDO0FBQ2pDLE9BQU8sTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JDLE9BQU8sS0FBSyxNQUFNLGdCQUFnQixDQUFDO0FBRW5DLE9BQU8sRUFBRSxlQUFlLEVBQWdCLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUUvRSxPQUFPLEVBRUwsYUFBYSxFQUNiLFlBQVksRUFDWiwyQkFBMkIsRUFDM0IsNkJBQTZCLEVBQzdCLHFCQUFxQixFQUNyQix1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FB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QUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQy9CLFdBQVcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUM3QixXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRU8sdUJBQXVCLENBQUMsVUFBVTtRQUN4Qyx1QkFBdUIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQ3pDLENBQUMsU0FBZ0MsRUFBRSxFQUFFO1lBQ25DLElBQUksU0FBUyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDbkMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQ3RDO1FBQ0gsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO3dHQXhhVSw4QkFBOEI7NEZBQTlCLDhCQUE4QiwyTkNsRDNDLG95REF1REE7OzRGRExhLDhCQUE4QjtrQkFOMUMsU0FBUzsrQkFDRSx1QkFBdUIsbUJBR2hCLHVCQUF1QixDQUFDLE1BQU07c0xBeUJ0QyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUtHLEtBQUs7c0JBQWIsS0FBSztnQkFLRyxHQUFHO3NCQUFYLEtBQUs7Z0JBS0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUdGLEtBQUs7c0JBRFIsS0FBSztnQkFTRyxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcblxyXG5pbXBvcnQgeyBFbnRpdHlTdG9yZSB9IGZyb20gJ0BpZ28yL2NvbW1vbic7XHJcbmltcG9ydCB7IE1lZGlhLCBNZWRpYVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcclxuXHJcbmltcG9ydCBPbE92ZXJsYXkgZnJvbSAnb2wvT3ZlcmxheSc7XHJcbmltcG9ydCB7IGRlZmF1bHQgYXMgT2xHZW9tZXRyeSB9IGZyb20gJ29sL2dlb20vR2VvbWV0cnknO1xyXG5pbXBvcnQgeyBWZWN0b3JTb3VyY2VFdmVudCBhcyBPbFZlY3RvclNvdXJjZUV2ZW50IH0gZnJvbSAnb2wvc291cmNlL1ZlY3Rvcic7XHJcbmltcG9ydCBDaXJjbGUgZnJvbSAnb2wvc3R5bGUvQ2lyY2xlJztcclxuaW1wb3J0IEZpbGwgZnJvbSAnb2wvc3R5bGUvRmlsbCc7XHJcbmltcG9ydCBTdHJva2UgZnJvbSAnb2wvc3R5bGUvU3Ryb2tlJztcclxuaW1wb3J0IFN0eWxlIGZyb20gJ29sL3N0eWxlL1N0eWxlJztcclxuXHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uLCB0YWtlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBEYXRhU291cmNlU2VydmljZSB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEZlYXR1cmVEYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMnO1xyXG5pbXBvcnQge1xyXG4gIEZlYXR1cmUsXHJcbiAgRmVhdHVyZU1vdGlvbixcclxuICBGZWF0dXJlU3RvcmUsXHJcbiAgRmVhdHVyZVN0b3JlTG9hZGluZ1N0cmF0ZWd5LFxyXG4gIEZlYXR1cmVTdG9yZVNlbGVjdGlvblN0cmF0ZWd5LFxyXG4gIHRyeUFkZExvYWRpbmdTdHJhdGVneSxcclxuICB0cnlBZGRTZWxlY3Rpb25TdHJhdGVneSxcclxuICB0cnlCaW5kU3RvcmVMYXllclxyXG59IGZyb20gJy4uLy4uL2ZlYXR1cmUnO1xyXG5pbXBvcnQgeyBMQVlFUiB9IGZyb20gJy4uLy4uL2xheWVyL3NoYXJlZC9sYXllci5lbnVtcyc7XHJcbmltcG9ydCB7IExheWVyU2VydmljZSB9IGZyb20gJy4uLy4uL2xheWVyL3NoYXJlZC9sYXllci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTGF5ZXJPcHRpb25zIH0gZnJvbSAnLi4vLi4vbGF5ZXIvc2hhcmVkL2xheWVycy9sYXllci5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBWZWN0b3JMYXllciB9IGZyb20gJy4uLy4uL2xheWVyL3NoYXJlZC9sYXllcnMvdmVjdG9yLWxheWVyJztcclxuaW1wb3J0IHsgSWdvTWFwIH0gZnJvbSAnLi4vLi4vbWFwL3NoYXJlZC9tYXAnO1xyXG5pbXBvcnQgeyBnZXRUb29sdGlwc09mT2xHZW9tZXRyeSB9IGZyb20gJy4uLy4uL21lYXN1cmUnO1xyXG5pbXBvcnQgeyBRdWVyeWFibGVEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4uLy4uL3F1ZXJ5L3NoYXJlZCc7XHJcbmltcG9ydCB7IFNlYXJjaFJlc3VsdCB9IGZyb20gJy4uL3NoYXJlZC9zZWFyY2guaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IFNhdmVGZWF0dXJlRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9zYXZlLWZlYXR1cmUtZGlhbG9nLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lnby1zZWFyY2gtYWRkLWJ1dHRvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1yZXN1bHRzLWFkZC1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NlYXJjaC1yZXN1bHRzLWFkZC1idXR0b24uY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VhcmNoUmVzdWx0QWRkQnV0dG9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyB0b29sdGlwJDogQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFxyXG4gICAgJ2lnby5nZW8uY2F0YWxvZy5sYXllci5hZGRUb01hcCdcclxuICApO1xyXG5cclxuICBwdWJsaWMgYWRkRmVhdHVyZVRvTGF5ZXJUb29sdGlwJDogQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4gPVxyXG4gICAgbmV3IEJlaGF2aW9yU3ViamVjdCgnaWdvLmdlby5zZWFyY2guYWRkVG9MYXllcicpO1xyXG5cclxuICBwcml2YXRlIHJlc29sdXRpb24kJDogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgbGF5ZXJzJCQ6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgcHVibGljIGluUmFuZ2UkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRydWUpO1xyXG5cclxuICBwdWJsaWMgaXNWaXNpYmxlJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XHJcblxyXG4gIHB1YmxpYyBpc1ByZXZpZXckOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcclxuXHJcbiAgcHJpdmF0ZSBsYXllcnNTdWJjcmlwdGlvbnMgPSBbXTtcclxuXHJcbiAgcHJpdmF0ZSBsYXN0VGltZW91dFJlcXVlc3Q7XHJcblxyXG4gIHByaXZhdGUgbW91c2VJbnNpZGVBZGQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgbGF5ZXI6IFNlYXJjaFJlc3VsdDtcclxuXHJcbiAgQElucHV0KCkgc3RvcmU6IEVudGl0eVN0b3JlPFNlYXJjaFJlc3VsdD47XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZXRoZXIgdGhlIGxheWVyIGlzIGFscmVhZHkgYWRkZWQgdG8gdGhlIG1hcFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGFkZGVkOiBib29sZWFuO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgbWFwIHRvIGFkZCB0aGUgc2VhcmNoIHJlc3VsdCBsYXllciB0b1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIG1hcDogSWdvTWFwO1xyXG5cclxuICAvKipcclxuICAgKiBzaG93IGhpZGUgc2F2ZSBzZWFyY2ggcmVzdWx0IGluIGxheWVyIGJ1dHRvblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHNhdmVTZWFyY2hSZXN1bHRJbkxheWVyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGNvbG9yKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbG9yO1xyXG4gIH1cclxuICBzZXQgY29sb3IodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fY29sb3IgPSB2YWx1ZTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfY29sb3IgPSAncHJpbWFyeSc7XHJcblxyXG4gIEBJbnB1dCgpIHN0b3JlczogRmVhdHVyZVN0b3JlPEZlYXR1cmU+W10gPSBbXTtcclxuXHJcbiAgZ2V0IGFsbExheWVycygpIHtcclxuICAgIHJldHVybiB0aGlzLm1hcC5sYXllcnMuZmlsdGVyKChsYXllcikgPT5cclxuICAgICAgU3RyaW5nKGxheWVyLmlkKS5pbmNsdWRlcygnaWdvLXNlYXJjaC1sYXllcicpXHJcbiAgICApO1xyXG4gIH1cclxuICBwcml2YXRlIG1lZGlhU2VydmljZSQkOiBTdWJzY3JpcHRpb247XHJcbiAgcHVibGljIGlzTW9iaWxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGxheWVyU2VydmljZTogTGF5ZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHByaXZhdGUgZGF0YVNvdXJjZVNlcnZpY2U6IERhdGFTb3VyY2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtZWRpYVNlcnZpY2U6IE1lZGlhU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgLyoqXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAvLyBjaGVjayB0aGUgdmlldyBpZiBpcyBtb2JpbGUgb3Igbm90XHJcbiAgICB0aGlzLm1lZGlhU2VydmljZSQkID0gdGhpcy5tZWRpYVNlcnZpY2UubWVkaWEkLnN1YnNjcmliZSgobWVkaWE6IE1lZGlhKSA9PiB7XHJcbiAgICAgIGlmIChtZWRpYSA9PT0gTWVkaWEuTW9iaWxlKSB7XHJcbiAgICAgICAgdGhpcy5pc01vYmlsZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgaWYgKHRoaXMubGF5ZXIubWV0YS5kYXRhVHlwZSA9PT0gJ0xheWVyJykge1xyXG4gICAgICB0aGlzLmFkZGVkID1cclxuICAgICAgICB0aGlzLm1hcC5sYXllcnMuZmluZEluZGV4KFxyXG4gICAgICAgICAgKGxheSkgPT4gbGF5LmlkID09PSB0aGlzLmxheWVyLmRhdGEuc291cmNlT3B0aW9ucy5pZFxyXG4gICAgICAgICkgIT09IC0xO1xyXG4gICAgfVxyXG4gICAgdGhpcy5sYXllcnMkJCA9IHRoaXMubWFwLmxheWVycyQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5pc1Zpc2libGUoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5yZXNvbHV0aW9uJCQgPSB0aGlzLm1hcC52aWV3Q29udHJvbGxlci5yZXNvbHV0aW9uJC5zdWJzY3JpYmUoXHJcbiAgICAgICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNJblJlc29sdXRpb25zUmFuZ2UodmFsdWUpO1xyXG4gICAgICAgIHRoaXMuaXNWaXNpYmxlKCk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMucmVzb2x1dGlvbiQkLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLmxheWVycyQkLnVuc3Vic2NyaWJlKCk7XHJcbiAgICBpZiAodGhpcy5tZWRpYVNlcnZpY2UkJCkge1xyXG4gICAgICB0aGlzLm1lZGlhU2VydmljZSQkLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPbiBtb3VzZSBldmVudCwgbW91c2VlbnRlciAvbW91c2VsZWF2ZVxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIG9uTW91c2VFdmVudChldmVudCkge1xyXG4gICAgdGhpcy5vblRvZ2dsZUNsaWNrKGV2ZW50KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9uIHRvZ2dsZSBidXR0b24gY2xpY2ssIGVtaXQgdGhlIGFkZGVkIGNoYW5nZSBldmVudFxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIG9uVG9nZ2xlQ2xpY2soY3VyckV2ZW50OiBFdmVudCkge1xyXG4gICAgaWYgKHR5cGVvZiB0aGlzLmxhc3RUaW1lb3V0UmVxdWVzdCAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMubGFzdFRpbWVvdXRSZXF1ZXN0KTtcclxuICAgIH1cclxuICAgIGNvbnN0IGV2ZW50ID0gY3VyckV2ZW50ID8gY3VyckV2ZW50IDogKHt9IGFzIEV2ZW50KTtcclxuXHJcbiAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ21vdXNlZW50ZXInICYmIHRoaXMubW91c2VJbnNpZGVBZGQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgc3dpdGNoIChldmVudC50eXBlKSB7XHJcbiAgICAgIGNhc2UgJ2NsaWNrJzpcclxuICAgICAgICBpZiAoIXRoaXMuaXNQcmV2aWV3JC52YWx1ZSkge1xyXG4gICAgICAgICAgaWYgKHRoaXMuYWRkZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5yZW1vdmUoKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWRkKGV2ZW50KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pc1ByZXZpZXckLm5leHQoZmFsc2UpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdtb3VzZWVudGVyJzpcclxuICAgICAgICBpZiAoIXRoaXMuaXNQcmV2aWV3JC52YWx1ZSAmJiAhdGhpcy5hZGRlZCkge1xyXG4gICAgICAgICAgdGhpcy5sYXN0VGltZW91dFJlcXVlc3QgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5hZGQoZXZlbnQpO1xyXG4gICAgICAgICAgICB0aGlzLmlzUHJldmlldyQubmV4dCh0cnVlKTtcclxuICAgICAgICAgIH0sIDUwMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubW91c2VJbnNpZGVBZGQgPSB0cnVlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdtb3VzZWxlYXZlJzpcclxuICAgICAgICBpZiAodGhpcy5pc1ByZXZpZXckLnZhbHVlKSB7XHJcbiAgICAgICAgICB0aGlzLnJlbW92ZSgpO1xyXG4gICAgICAgICAgdGhpcy5pc1ByZXZpZXckLm5leHQoZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLm1vdXNlSW5zaWRlQWRkID0gZmFsc2U7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkZChldmVudDogRXZlbnQpIHtcclxuICAgIGlmICghdGhpcy5hZGRlZCkge1xyXG4gICAgICB0aGlzLmFkZGVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5hZGRMYXllclRvTWFwKGV2ZW50KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVtb3ZlKCkge1xyXG4gICAgaWYgKHRoaXMuYWRkZWQpIHtcclxuICAgICAgdGhpcy5hZGRlZCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnJlbW92ZUxheWVyRnJvbU1hcCgpO1xyXG4gICAgICB0aGlzLmxheWVyc1N1YmNyaXB0aW9ucy5tYXAoKHMpID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgICAgIHRoaXMubGF5ZXJzU3ViY3JpcHRpb25zID0gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbWl0IGFkZGVkIGNoYW5nZSBldmVudCB3aXRoIGFkZGVkID0gdHJ1ZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgYWRkTGF5ZXJUb01hcChldmVudD86IEV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5tYXAgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMubGF5ZXIubWV0YS5kYXRhVHlwZSAhPT0gTEFZRVIpIHtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBsYXllck9wdGlvbnMgPSAodGhpcy5sYXllciBhcyBTZWFyY2hSZXN1bHQ8TGF5ZXJPcHRpb25zPikuZGF0YTtcclxuICAgIGlmIChsYXllck9wdGlvbnMuc291cmNlT3B0aW9ucy5vcHRpb25zRnJvbUFwaSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGxheWVyT3B0aW9ucy5zb3VyY2VPcHRpb25zLm9wdGlvbnNGcm9tQXBpID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHRoaXMubGF5ZXJzU3ViY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIHRoaXMubGF5ZXJTZXJ2aWNlLmNyZWF0ZUFzeW5jTGF5ZXIobGF5ZXJPcHRpb25zKS5zdWJzY3JpYmUoKGxheWVyKSA9PiB7XHJcbiAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICdjbGljaycpIHtcclxuICAgICAgICAgIHRoaXMubWFwLmxheWVyc0FkZGVkQnlDbGljayQubmV4dChbbGF5ZXJdKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5tYXAuYWRkTGF5ZXIobGF5ZXIpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXQgYWRkZWQgY2hhbmdlIGV2ZW50IHdpdGggYWRkZWQgPSBmYWxzZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVtb3ZlTGF5ZXJGcm9tTWFwKCkge1xyXG4gICAgaWYgKHRoaXMubWFwID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmxheWVyLm1ldGEuZGF0YVR5cGUgIT09IExBWUVSKSB7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgb0xheWVyID0gdGhpcy5tYXAuZ2V0TGF5ZXJCeUlkKHRoaXMubGF5ZXIuZGF0YS5zb3VyY2VPcHRpb25zLmlkKTtcclxuICAgIHRoaXMubWFwLnJlbW92ZUxheWVyKG9MYXllcik7XHJcbiAgfVxyXG5cclxuICBpc0luUmVzb2x1dGlvbnNSYW5nZShyZXNvbHV0aW9uOiBudW1iZXIpIHtcclxuICAgIGNvbnN0IG1pblJlc29sdXRpb24gPSB0aGlzLmxheWVyLmRhdGEubWluUmVzb2x1dGlvbiB8fCAwO1xyXG4gICAgY29uc3QgbWF4UmVzb2x1dGlvbiA9IHRoaXMubGF5ZXIuZGF0YS5tYXhSZXNvbHV0aW9uIHx8IEluZmluaXR5O1xyXG4gICAgdGhpcy5pblJhbmdlJC5uZXh0KFxyXG4gICAgICByZXNvbHV0aW9uID49IG1pblJlc29sdXRpb24gJiYgcmVzb2x1dGlvbiA8PSBtYXhSZXNvbHV0aW9uXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgaXNWaXNpYmxlKCkge1xyXG4gICAgaWYgKHRoaXMubGF5ZXI/LmRhdGE/LnNvdXJjZU9wdGlvbnM/LmlkKSB7XHJcbiAgICAgIGNvbnN0IG9MYXllciA9IHRoaXMubWFwLmdldExheWVyQnlJZCh0aGlzLmxheWVyLmRhdGEuc291cmNlT3B0aW9ucy5pZCk7XHJcbiAgICAgIG9MYXllclxyXG4gICAgICAgID8gdGhpcy5pc1Zpc2libGUkLm5leHQob0xheWVyLnZpc2libGUpXHJcbiAgICAgICAgOiB0aGlzLmlzVmlzaWJsZSQubmV4dChmYWxzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRCYWRnZUljb24oKSB7XHJcbiAgICBpZiAodGhpcy5pblJhbmdlJC52YWx1ZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5pc1Zpc2libGUkLnZhbHVlID8gJycgOiAnZXllLW9mZic7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gJ2V5ZS1vZmYnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29tcHV0ZVRvb2x0aXAoKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLmFkZGVkKSB7XHJcbiAgICAgIGlmICh0aGlzLmlzUHJldmlldyQudmFsdWUpIHtcclxuICAgICAgICByZXR1cm4gJ2lnby5nZW8uY2F0YWxvZy5sYXllci5hZGRUb01hcCc7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5pblJhbmdlJC52YWx1ZSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmlzVmlzaWJsZSQudmFsdWVcclxuICAgICAgICAgID8gJ2lnby5nZW8uY2F0YWxvZy5sYXllci5yZW1vdmVGcm9tTWFwJ1xyXG4gICAgICAgICAgOiAnaWdvLmdlby5jYXRhbG9nLmxheWVyLnJlbW92ZUZyb21NYXBOb3RWaXNpYmxlJztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gJ2lnby5nZW8uY2F0YWxvZy5sYXllci5yZW1vdmVGcm9tTWFwT3V0UmFuZ2UnO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5pblJhbmdlJC52YWx1ZVxyXG4gICAgICAgID8gJ2lnby5nZW8uY2F0YWxvZy5sYXllci5hZGRUb01hcCdcclxuICAgICAgICA6ICdpZ28uZ2VvLmNhdGFsb2cubGF5ZXIuYWRkVG9NYXBPdXRSYW5nZSc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhZGRGZWF0dXJlVG9MYXllcigpIHtcclxuICAgIGlmICh0aGlzLmxheWVyLm1ldGEuZGF0YVR5cGUgIT09ICdGZWF0dXJlJykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgc2VsZWN0ZWRGZWF0dXJlID0gdGhpcy5sYXllcjtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oU2F2ZUZlYXR1cmVEaWFsb2dDb21wb25lbnQsIHtcclxuICAgICAgd2lkdGg6ICc3MDBweCcsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBmZWF0dXJlOiBzZWxlY3RlZEZlYXR1cmUsXHJcbiAgICAgICAgbGF5ZXJzOiB0aGlzLmFsbExheWVyc1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBkaWFsb2dSZWZcclxuICAgICAgLmFmdGVyQ2xvc2VkKClcclxuICAgICAgLnN1YnNjcmliZSgoZGF0YTogeyBsYXllcjogc3RyaW5nIHwgYW55OyBmZWF0dXJlOiBTZWFyY2hSZXN1bHQgfSkgPT4ge1xyXG4gICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5zdG9yZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICB0aGlzLnN0b3Jlcy5tYXAoKHN0b3JlKSA9PiB7XHJcbiAgICAgICAgICAgICAgc3RvcmUuc3RhdGUudXBkYXRlQWxsKHsgc2VsZWN0ZWQ6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgICAgIGlmIChzdG9yZT8ubGF5ZXIpIHtcclxuICAgICAgICAgICAgICAgIHN0b3JlLmxheWVyLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHN0b3JlO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIGNoZWNrIGlmIGlzIG5ldyBsYXllclxyXG4gICAgICAgICAgaWYgKHR5cGVvZiBkYXRhLmxheWVyID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUxheWVyKGRhdGEubGF5ZXIsIGRhdGEuZmVhdHVyZSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCBhY3RpdmVTdG9yZSA9IHRoaXMuc3RvcmVzLmZpbmQoXHJcbiAgICAgICAgICAgICAgKHN0b3JlKSA9PiBzdG9yZS5sYXllci5pZCA9PT0gZGF0YS5sYXllci5pZFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBhY3RpdmVTdG9yZS5sYXllci52aXNpYmxlID0gdHJ1ZTtcclxuICAgICAgICAgICAgYWN0aXZlU3RvcmUubGF5ZXIub3BhY2l0eSA9IDE7XHJcbiAgICAgICAgICAgIHRoaXMuYWRkRmVhdHVyZShkYXRhLmZlYXR1cmUsIGFjdGl2ZVN0b3JlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlTGF5ZXIobGF5ZXJUaXRsZTogc3RyaW5nLCBzZWxlY3RlZEZlYXR1cmU6IFNlYXJjaFJlc3VsdCkge1xyXG4gICAgY29uc3QgYWN0aXZlU3RvcmU6IEZlYXR1cmVTdG9yZTxGZWF0dXJlPiA9IG5ldyBGZWF0dXJlU3RvcmU8RmVhdHVyZT4oW10sIHtcclxuICAgICAgbWFwOiB0aGlzLm1hcFxyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3Qgc3R5bGVzID0gW1xyXG4gICAgICBuZXcgU3R5bGUoe1xyXG4gICAgICAgIGltYWdlOiBuZXcgQ2lyY2xlKHtcclxuICAgICAgICAgIHJhZGl1czogNSxcclxuICAgICAgICAgIHN0cm9rZTogbmV3IFN0cm9rZSh7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxLFxyXG4gICAgICAgICAgICBjb2xvcjogJ3JnYmEoMTQzLDcsNywxKSdcclxuICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgZmlsbDogbmV3IEZpbGwoe1xyXG4gICAgICAgICAgICBjb2xvcjogJ3JnYmEoMTQzLDcsNywxKSdcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfSlcclxuICAgICAgfSksXHJcbiAgICAgIG5ldyBTdHlsZSh7XHJcbiAgICAgICAgc3Ryb2tlOiBuZXcgU3Ryb2tlKHtcclxuICAgICAgICAgIHdpZHRoOiAxLFxyXG4gICAgICAgICAgY29sb3I6ICdyZ2JhKDE0Myw3LDcsMSknXHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgZmlsbDogbmV3IEZpbGwoe1xyXG4gICAgICAgICAgY29sb3I6ICdyZ2JhKDAsIDAsIDI1NSwgMC4xKSdcclxuICAgICAgICB9KVxyXG4gICAgICB9KVxyXG4gICAgXTtcclxuXHJcbiAgICAvLyBzZXQgbGF5ZXIgaWRcclxuICAgIGxldCBsYXllckNvdW50ZXJJRDogbnVtYmVyID0gMDtcclxuICAgIGZvciAoY29uc3QgbGF5ZXIgb2YgdGhpcy5hbGxMYXllcnMpIHtcclxuICAgICAgbGV0IG51bWJlcklkID0gTnVtYmVyKGxheWVyLmlkLnJlcGxhY2UoJ2lnby1zZWFyY2gtbGF5ZXInLCAnJykpO1xyXG4gICAgICBsYXllckNvdW50ZXJJRCA9IE1hdGgubWF4KG51bWJlcklkLCBsYXllckNvdW50ZXJJRCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kYXRhU291cmNlU2VydmljZVxyXG4gICAgICAuY3JlYXRlQXN5bmNEYXRhU291cmNlKHtcclxuICAgICAgICB0eXBlOiAndmVjdG9yJyxcclxuICAgICAgICBxdWVyeWFibGU6IHRydWVcclxuICAgICAgfSBhcyBRdWVyeWFibGVEYXRhU291cmNlT3B0aW9ucylcclxuICAgICAgLnBpcGUodGFrZSgxKSlcclxuICAgICAgLnN1YnNjcmliZSgoZGF0YVNvdXJjZTogRmVhdHVyZURhdGFTb3VyY2UpID0+IHtcclxuICAgICAgICBsZXQgc2VhcmNoTGF5ZXI6IFZlY3RvckxheWVyID0gbmV3IFZlY3RvckxheWVyKHtcclxuICAgICAgICAgIGlzSWdvSW50ZXJuYWxMYXllcjogdHJ1ZSxcclxuICAgICAgICAgIGlkOiAnaWdvLXNlYXJjaC1sYXllcicgKyArK2xheWVyQ291bnRlcklELFxyXG4gICAgICAgICAgdGl0bGU6IGxheWVyVGl0bGUsXHJcbiAgICAgICAgICBzb3VyY2U6IGRhdGFTb3VyY2UsXHJcbiAgICAgICAgICBpZ29TdHlsZToge1xyXG4gICAgICAgICAgICBlZGl0YWJsZTogZmFsc2UsXHJcbiAgICAgICAgICAgIGlnb1N0eWxlT2JqZWN0OiB7XHJcbiAgICAgICAgICAgICAgZmlsbDogeyBjb2xvcjogJ3JnYmEoMjU1LDI1NSwyNTUsMC40KScgfSxcclxuICAgICAgICAgICAgICBzdHJva2U6IHsgY29sb3I6ICdyZ2JhKDE0Myw3LDcsMSknLCB3aWR0aDogMSB9LFxyXG4gICAgICAgICAgICAgIGNpcmNsZToge1xyXG4gICAgICAgICAgICAgICAgZmlsbDogeyBjb2xvcjogJ3JnYmEoMjU1LDI1NSwyNTUsMC40KScgfSxcclxuICAgICAgICAgICAgICAgIHN0cm9rZTogeyBjb2xvcjogJ3JnYmEoMTQzLDcsNywxKScsIHdpZHRoOiAxIH0sXHJcbiAgICAgICAgICAgICAgICByYWRpdXM6IDVcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBzdHlsZTogc3R5bGVzLFxyXG4gICAgICAgICAgc2hvd0luTGF5ZXJMaXN0OiB0cnVlLFxyXG4gICAgICAgICAgZXhwb3J0YWJsZTogdHJ1ZSxcclxuICAgICAgICAgIHdvcmtzcGFjZToge1xyXG4gICAgICAgICAgICBlbmFibGVkOiB0cnVlXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRyeUJpbmRTdG9yZUxheWVyKGFjdGl2ZVN0b3JlLCBzZWFyY2hMYXllcik7XHJcbiAgICAgICAgdHJ5QWRkTG9hZGluZ1N0cmF0ZWd5KFxyXG4gICAgICAgICAgYWN0aXZlU3RvcmUsXHJcbiAgICAgICAgICBuZXcgRmVhdHVyZVN0b3JlTG9hZGluZ1N0cmF0ZWd5KHtcclxuICAgICAgICAgICAgbW90aW9uOiBGZWF0dXJlTW90aW9uLk5vbmVcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdHJ5QWRkU2VsZWN0aW9uU3RyYXRlZ3koXHJcbiAgICAgICAgICBhY3RpdmVTdG9yZSxcclxuICAgICAgICAgIG5ldyBGZWF0dXJlU3RvcmVTZWxlY3Rpb25TdHJhdGVneSh7XHJcbiAgICAgICAgICAgIG1hcDogdGhpcy5tYXAsXHJcbiAgICAgICAgICAgIG1vdGlvbjogRmVhdHVyZU1vdGlvbi5Ob25lLFxyXG4gICAgICAgICAgICBtYW55OiB0cnVlXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIGFjdGl2ZVN0b3JlLmxheWVyLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgIGFjdGl2ZVN0b3JlLnNvdXJjZS5vbC5vbihcclxuICAgICAgICAgICdyZW1vdmVmZWF0dXJlJyxcclxuICAgICAgICAgIChldmVudDogT2xWZWN0b3JTb3VyY2VFdmVudDxPbEdlb21ldHJ5PikgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBvbEdlb21ldHJ5ID0gZXZlbnQuZmVhdHVyZS5nZXRHZW9tZXRyeSgpO1xyXG4gICAgICAgICAgICB0aGlzLmNsZWFyTGFiZWxzT2ZPbEdlb21ldHJ5KG9sR2VvbWV0cnkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHRoaXMuYWRkRmVhdHVyZShzZWxlY3RlZEZlYXR1cmUsIGFjdGl2ZVN0b3JlKTtcclxuICAgICAgICB0aGlzLnN0b3Jlcy5wdXNoKGFjdGl2ZVN0b3JlKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBhZGRGZWF0dXJlKGZlYXR1cmU6IFNlYXJjaFJlc3VsdCwgYWN0aXZlU3RvcmU6IEZlYXR1cmVTdG9yZTxGZWF0dXJlPikge1xyXG4gICAgY29uc3QgbmV3RmVhdHVyZSA9IHtcclxuICAgICAgdHlwZTogZmVhdHVyZS5kYXRhLnR5cGUsXHJcbiAgICAgIGdlb21ldHJ5OiB7XHJcbiAgICAgICAgY29vcmRpbmF0ZXM6IGZlYXR1cmUuZGF0YS5nZW9tZXRyeS5jb29yZGluYXRlcyxcclxuICAgICAgICB0eXBlOiBmZWF0dXJlLmRhdGEuZ2VvbWV0cnkudHlwZVxyXG4gICAgICB9LFxyXG4gICAgICBwcm9qZWN0aW9uOiBmZWF0dXJlLmRhdGEucHJvamVjdGlvbixcclxuICAgICAgcHJvcGVydGllczogZmVhdHVyZS5kYXRhLnByb3BlcnRpZXMsXHJcbiAgICAgIG1ldGE6IHtcclxuICAgICAgICBpZDogZmVhdHVyZS5tZXRhLmlkXHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICBkZWxldGUgbmV3RmVhdHVyZS5wcm9wZXJ0aWVzLlJvdXRlO1xyXG4gICAgYWN0aXZlU3RvcmUudXBkYXRlKG5ld0ZlYXR1cmUpO1xyXG4gICAgYWN0aXZlU3RvcmUuc2V0TGF5ZXJFeHRlbnQoKTtcclxuICAgIGFjdGl2ZVN0b3JlLmxheWVyLm9sLmdldFNvdXJjZSgpLnJlZnJlc2goKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2xlYXJMYWJlbHNPZk9sR2VvbWV0cnkob2xHZW9tZXRyeSkge1xyXG4gICAgZ2V0VG9vbHRpcHNPZk9sR2VvbWV0cnkob2xHZW9tZXRyeSkuZm9yRWFjaChcclxuICAgICAgKG9sVG9vbHRpcDogT2xPdmVybGF5IHwgdW5kZWZpbmVkKSA9PiB7XHJcbiAgICAgICAgaWYgKG9sVG9vbHRpcCAmJiBvbFRvb2x0aXAuZ2V0TWFwKCkpIHtcclxuICAgICAgICAgIHRoaXMubWFwLm9sLnJlbW92ZU92ZXJsYXkob2xUb29sdGlwKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiIsIjxidXR0b25cclxuICBpZ29TdG9wUHJvcGFnYXRpb25cclxuICAobW91c2VlbnRlcik9XCJvbk1vdXNlRXZlbnQoJGV2ZW50KVwiXHJcbiAgKG1vdXNlbGVhdmUpPVwib25Nb3VzZUV2ZW50KCRldmVudClcIlxyXG4gICpuZ0lmPVwibGF5ZXIubWV0YS5kYXRhVHlwZSA9PT0gJ0xheWVyJ1wiXHJcbiAgbWF0LWljb24tYnV0dG9uXHJcbiAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcclxuICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcclxuICBbbWF0VG9vbHRpcF09XCJjb21wdXRlVG9vbHRpcCgpIHwgdHJhbnNsYXRlXCJcclxuICBbY29sb3JdPVwiKGlzUHJldmlldyQgfCBhc3luYykgPyAnJyA6IGFkZGVkID8gJ3dhcm4nIDogJydcIlxyXG4gIChjbGljayk9XCJvblRvZ2dsZUNsaWNrKCRldmVudClcIlxyXG4+XHJcbiAgPG1hdC1pY29uXHJcbiAgICBhcmlhLWhpZGRlbj1cImZhbHNlXCJcclxuICAgIG1hdEJhZGdlPVwiaWNvblwiXHJcbiAgICBbaWdvTWF0QmFkZ2VJY29uXT1cImdldEJhZGdlSWNvbigpXCJcclxuICAgIGlnb01hdEJhZGdlQ29sb3I9XCJyZ2JhKDAsMCwwLDAuODcpXCJcclxuICAgIGlnb01hdEJhZGdlQmFja2dyb3VuZENvbG9yPVwibm9uZVwiXHJcbiAgICBpZ29NYXRCYWRnZUludmVyc2VDb2xvcj1cInRydWVcIlxyXG4gICAgW21hdEJhZGdlSGlkZGVuXT1cIlxyXG4gICAgICAoKGluUmFuZ2UkIHwgYXN5bmMpICYmIChpc1Zpc2libGUkIHwgYXN5bmMpID09PSB0cnVlKSB8fFxyXG4gICAgICAoKGluUmFuZ2UkIHwgYXN5bmMpICYmICFhZGRlZCkgfHxcclxuICAgICAgKChpblJhbmdlJCB8IGFzeW5jKSAmJiAoaXNQcmV2aWV3JCB8IGFzeW5jKSlcclxuICAgIFwiXHJcbiAgICBbbWF0QmFkZ2VEaXNhYmxlZF09XCIoaW5SYW5nZSQgfCBhc3luYykgPT09IGZhbHNlXCJcclxuICAgIG1hdEJhZGdlU2l6ZT1cInNtYWxsXCJcclxuICAgIG1hdEJhZGdlUG9zaXRpb249XCJhZnRlclwiXHJcbiAgICBbc3ZnSWNvbl09XCIoaXNQcmV2aWV3JCB8IGFzeW5jKSA/ICdwbHVzJyA6IGFkZGVkID8gJ2RlbGV0ZScgOiAncGx1cydcIlxyXG4gID5cclxuICA8L21hdC1pY29uPlxyXG48L2J1dHRvbj5cclxuXHJcbjxidXR0b25cclxuICBbaWRdPVwiIWlzTW9iaWxlID8gJ2hpZGUtc2F2ZS1zZWFyY2gtcmVzdWx0LWJ0bicgOiAnJ1wiXHJcbiAgaWdvU3RvcFByb3BhZ2F0aW9uXHJcbiAgKm5nSWY9XCJsYXllci5tZXRhLmRhdGFUeXBlID09PSAnRmVhdHVyZScgJiYgc2F2ZVNlYXJjaFJlc3VsdEluTGF5ZXJcIlxyXG4gIG1hdC1pY29uLWJ1dHRvblxyXG4gIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXHJcbiAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXHJcbiAgW21hdFRvb2x0aXBdPVwiYWRkRmVhdHVyZVRvTGF5ZXJUb29sdGlwJCB8IGFzeW5jIHwgdHJhbnNsYXRlXCJcclxuICAoY2xpY2spPVwiYWRkRmVhdHVyZVRvTGF5ZXIoKVwiXHJcbj5cclxuICA8bWF0LWljb25cclxuICAgIGFyaWEtaGlkZGVuPVwiZmFsc2VcIlxyXG4gICAgbWF0QmFkZ2U9XCJpY29uXCJcclxuICAgIGlnb01hdEJhZGdlSWNvbj1cImV5ZS1vZmZcIlxyXG4gICAgaWdvTWF0QmFkZ2VJbnZlcnNlQ29sb3I9XCJ0cnVlXCJcclxuICAgIFttYXRCYWRnZUhpZGRlbl09XCJpblJhbmdlJCB8IGFzeW5jXCJcclxuICAgIG1hdEJhZGdlRGlzYWJsZWQ9XCJ0cnVlXCJcclxuICAgIG1hdEJhZGdlU2l6ZT1cInNtYWxsXCJcclxuICAgIG1hdEJhZGdlUG9zaXRpb249XCJhZnRlclwiXHJcbiAgICBzdmdJY29uPVwiZmlsZS1wbHVzLW91dGxpbmVcIlxyXG4gID5cclxuICA8L21hdC1pY29uPlxyXG48L2J1dHRvbj5cclxuIl19