@igo2/geo 1.14.2 → 1.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (493) hide show
  1. package/assets/icons/cross_black_18px.svg +88 -88
  2. package/assets/icons/place_blue_36px.svg +55 -55
  3. package/assets/icons/place_green_36px.svg +55 -55
  4. package/assets/icons/place_red_36px.svg +55 -55
  5. package/assets/icons/place_yellow_36px.svg +55 -55
  6. package/esm2020/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +13 -11
  7. package/esm2020/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +10 -10
  8. package/esm2020/lib/catalog/catalog-browser/catalog-browser.component.mjs +20 -17
  9. package/esm2020/lib/catalog/catalog-browser/catalog-browser.module.mjs +1 -1
  10. package/esm2020/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +2 -2
  11. package/esm2020/lib/catalog/catalog-library/catalog-library-item.component.mjs +2 -2
  12. package/esm2020/lib/catalog/catalog-library/catalog-library.component.mjs +7 -12
  13. package/esm2020/lib/catalog/catalog-library/catalog-library.module.mjs +1 -1
  14. package/esm2020/lib/catalog/catalog.module.mjs +1 -1
  15. package/esm2020/lib/catalog/shared/catalog.abstract.mjs +1 -1
  16. package/esm2020/lib/catalog/shared/catalog.enum.mjs +1 -1
  17. package/esm2020/lib/catalog/shared/catalog.interface.mjs +1 -1
  18. package/esm2020/lib/catalog/shared/catalog.service.mjs +3 -5
  19. package/esm2020/lib/datasource/datasource.module.mjs +1 -1
  20. package/esm2020/lib/datasource/shared/capabilities.service.mjs +2 -2
  21. package/esm2020/lib/datasource/shared/datasource.service.mjs +27 -31
  22. package/esm2020/lib/datasource/shared/datasources/any-datasource.interface.mjs +1 -1
  23. package/esm2020/lib/datasource/shared/datasources/any-datasource.mjs +1 -1
  24. package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.interface.mjs +1 -1
  25. package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +1 -1
  26. package/esm2020/lib/datasource/shared/datasources/carto-datasource.interface.mjs +1 -1
  27. package/esm2020/lib/datasource/shared/datasources/carto-datasource.mjs +1 -1
  28. package/esm2020/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +1 -1
  29. package/esm2020/lib/datasource/shared/datasources/cluster-datasource.mjs +1 -1
  30. package/esm2020/lib/datasource/shared/datasources/data.service.mjs +1 -1
  31. package/esm2020/lib/datasource/shared/datasources/datasource.interface.mjs +1 -1
  32. package/esm2020/lib/datasource/shared/datasources/datasource.mjs +1 -1
  33. package/esm2020/lib/datasource/shared/datasources/feature-datasource.interface.mjs +1 -1
  34. package/esm2020/lib/datasource/shared/datasources/feature-datasource.mjs +1 -1
  35. package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.mjs +1 -1
  36. package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +1 -1
  37. package/esm2020/lib/datasource/shared/datasources/mvt-datasource.interface.mjs +1 -1
  38. package/esm2020/lib/datasource/shared/datasources/mvt-datasource.mjs +1 -1
  39. package/esm2020/lib/datasource/shared/datasources/osm-datasource.interface.mjs +1 -1
  40. package/esm2020/lib/datasource/shared/datasources/osm-datasource.mjs +1 -1
  41. package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.mjs +1 -1
  42. package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +1 -1
  43. package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.interface.mjs +1 -1
  44. package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.mjs +1 -1
  45. package/esm2020/lib/datasource/shared/datasources/websocket-datasource.interface.mjs +1 -1
  46. package/esm2020/lib/datasource/shared/datasources/websocket-datasource.mjs +1 -1
  47. package/esm2020/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +1 -1
  48. package/esm2020/lib/datasource/shared/datasources/wfs-datasource.mjs +1 -1
  49. package/esm2020/lib/datasource/shared/datasources/wfs.service.mjs +1 -1
  50. package/esm2020/lib/datasource/shared/datasources/wms-datasource.interface.mjs +1 -1
  51. package/esm2020/lib/datasource/shared/datasources/wms-datasource.mjs +1 -1
  52. package/esm2020/lib/datasource/shared/datasources/wms-wfs.utils.mjs +1 -1
  53. package/esm2020/lib/datasource/shared/datasources/wmts-datasource.interface.mjs +1 -1
  54. package/esm2020/lib/datasource/shared/datasources/wmts-datasource.mjs +1 -1
  55. package/esm2020/lib/datasource/shared/datasources/xyz-datasource.interface.mjs +1 -1
  56. package/esm2020/lib/datasource/shared/datasources/xyz-datasource.mjs +1 -1
  57. package/esm2020/lib/datasource/shared/options/options-api.providers.mjs +1 -1
  58. package/esm2020/lib/datasource/shared/options/options-api.service.mjs +1 -1
  59. package/esm2020/lib/datasource/shared/options/options.service.mjs +1 -1
  60. package/esm2020/lib/datasource/utils/index.mjs +1 -2
  61. package/esm2020/lib/datasource/utils/tilegrid.mjs +1 -1
  62. package/esm2020/lib/directions/directions-buttons/directions-buttons.component.mjs +4 -10
  63. package/esm2020/lib/directions/directions-inputs/directions-inputs.component.mjs +2 -2
  64. package/esm2020/lib/directions/directions-results/directions-results.component.mjs +2 -2
  65. package/esm2020/lib/directions/directions-sources/directions-source.mjs +1 -1
  66. package/esm2020/lib/directions/directions-sources/directions-source.provider.mjs +1 -1
  67. package/esm2020/lib/directions/directions-sources/osrm-directions-source.mjs +1 -1
  68. package/esm2020/lib/directions/directions.component.mjs +2 -2
  69. package/esm2020/lib/directions/directions.module.mjs +1 -1
  70. package/esm2020/lib/directions/shared/directions-source.service.mjs +1 -1
  71. package/esm2020/lib/directions/shared/directions.interface.mjs +1 -1
  72. package/esm2020/lib/directions/shared/directions.service.mjs +1 -1
  73. package/esm2020/lib/directions/shared/directions.utils.mjs +2 -2
  74. package/esm2020/lib/directions/shared/store.mjs +1 -1
  75. package/esm2020/lib/download/download-button/download-button.component.mjs +2 -2
  76. package/esm2020/lib/download/download.module.mjs +1 -1
  77. package/esm2020/lib/download/shared/download.interface.mjs +1 -1
  78. package/esm2020/lib/download/shared/download.service.mjs +5 -8
  79. package/esm2020/lib/draw/draw/draw-layer-popup.component.mjs +2 -2
  80. package/esm2020/lib/draw/draw/draw-popup.component.mjs +3 -3
  81. package/esm2020/lib/draw/draw/draw-shorcuts.component.mjs +2 -2
  82. package/esm2020/lib/draw/draw/draw.component.mjs +11 -10
  83. package/esm2020/lib/draw/draw/draw.module.mjs +1 -1
  84. package/esm2020/lib/draw/drawingTool.module.mjs +1 -1
  85. package/esm2020/lib/draw/shared/draw-icon.service.mjs +1 -1
  86. package/esm2020/lib/draw/shared/draw.enum.mjs +1 -17
  87. package/esm2020/lib/draw/shared/draw.interface.mjs +1 -1
  88. package/esm2020/lib/draw/shared/draw.utils.mjs +1 -1
  89. package/esm2020/lib/draw/shared/index.mjs +1 -2
  90. package/esm2020/lib/feature/feature-details/feature-details.component.mjs +4 -5
  91. package/esm2020/lib/feature/feature-details/feature-details.directive.mjs +1 -1
  92. package/esm2020/lib/feature/feature-details/feature-details.module.mjs +1 -1
  93. package/esm2020/lib/feature/feature-form/feature-form.component.mjs +2 -2
  94. package/esm2020/lib/feature/feature-form/feature-form.module.mjs +1 -1
  95. package/esm2020/lib/feature/feature.module.mjs +1 -1
  96. package/esm2020/lib/feature/shared/feature.interfaces.mjs +1 -1
  97. package/esm2020/lib/feature/shared/feature.utils.mjs +7 -5
  98. package/esm2020/lib/feature/shared/store.mjs +10 -1
  99. package/esm2020/lib/feature/shared/strategies/in-map-extent.mjs +1 -1
  100. package/esm2020/lib/feature/shared/strategies/in-map-resolution.mjs +1 -1
  101. package/esm2020/lib/feature/shared/strategies/index.mjs +2 -1
  102. package/esm2020/lib/feature/shared/strategies/loading-layer.mjs +1 -1
  103. package/esm2020/lib/feature/shared/strategies/loading.mjs +1 -1
  104. package/esm2020/lib/feature/shared/strategies/search.mjs +150 -0
  105. package/esm2020/lib/feature/shared/strategies/selection.mjs +1 -1
  106. package/esm2020/lib/feature/shared/strategies.utils.mjs +1 -1
  107. package/esm2020/lib/filter/filter.module.mjs +1 -1
  108. package/esm2020/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +2 -2
  109. package/esm2020/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +2 -2
  110. package/esm2020/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +2 -2
  111. package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +2 -2
  112. package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +2 -2
  113. package/esm2020/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +2 -2
  114. package/esm2020/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +2 -2
  115. package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +1 -1
  116. package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +2 -2
  117. package/esm2020/lib/filter/shared/filterable-datasource.pipe.mjs +1 -1
  118. package/esm2020/lib/filter/shared/ogc-filter-time.service.mjs +1 -1
  119. package/esm2020/lib/filter/shared/ogc-filter.enum.mjs +1 -1
  120. package/esm2020/lib/filter/shared/ogc-filter.interface.mjs +1 -1
  121. package/esm2020/lib/filter/shared/ogc-filter.mjs +1 -1
  122. package/esm2020/lib/filter/shared/ogc-filter.service.mjs +1 -1
  123. package/esm2020/lib/filter/shared/spatial-filter.enum.mjs +1 -1
  124. package/esm2020/lib/filter/shared/spatial-filter.service.mjs +1 -1
  125. package/esm2020/lib/filter/shared/time-filter.enum.mjs +1 -1
  126. package/esm2020/lib/filter/shared/time-filter.interface.mjs +1 -1
  127. package/esm2020/lib/filter/shared/time-filter.service.mjs +1 -1
  128. package/esm2020/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +5 -5
  129. package/esm2020/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +6 -7
  130. package/esm2020/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +2 -2
  131. package/esm2020/lib/filter/time-filter-button/time-filter-button.component.mjs +2 -2
  132. package/esm2020/lib/filter/time-filter-form/time-filter-form.component.mjs +2 -2
  133. package/esm2020/lib/filter/time-filter-item/time-filter-item.component.mjs +2 -2
  134. package/esm2020/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +1 -1
  135. package/esm2020/lib/filter/time-filter-list/time-filter-list.component.mjs +2 -2
  136. package/esm2020/lib/geo.module.mjs +5 -1
  137. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +13 -12
  138. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +2 -2
  139. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +1 -1
  140. package/esm2020/lib/geometry/geometry.module.mjs +1 -1
  141. package/esm2020/lib/geometry/shared/controls/draw.mjs +1 -1
  142. package/esm2020/lib/geometry/shared/controls/modify.mjs +1 -1
  143. package/esm2020/lib/geometry/shared/controls/slice.mjs +1 -1
  144. package/esm2020/lib/geometry/shared/geometry.errors.mjs +1 -1
  145. package/esm2020/lib/geometry/shared/geometry.interfaces.mjs +1 -1
  146. package/esm2020/lib/geometry/shared/geometry.utils.mjs +1 -1
  147. package/esm2020/lib/import-export/export-button/export-button.component.mjs +2 -2
  148. package/esm2020/lib/import-export/import-export/import-export.component.mjs +53 -45
  149. package/esm2020/lib/import-export/import-export.module.mjs +5 -9
  150. package/esm2020/lib/import-export/index.mjs +1 -2
  151. package/esm2020/lib/import-export/shared/drop-geo-file.directive.mjs +31 -14
  152. package/esm2020/lib/import-export/shared/export.interface.mjs +1 -1
  153. package/esm2020/lib/import-export/shared/export.service.mjs +1 -1
  154. package/esm2020/lib/import-export/shared/export.type.mjs +1 -1
  155. package/esm2020/lib/import-export/shared/export.utils.mjs +8 -17
  156. package/esm2020/lib/import-export/shared/import.errors.mjs +1 -1
  157. package/esm2020/lib/import-export/shared/import.interface.mjs +1 -1
  158. package/esm2020/lib/import-export/shared/import.service.mjs +1 -1
  159. package/esm2020/lib/import-export/shared/import.utils.mjs +58 -91
  160. package/esm2020/lib/layer/index.mjs +1 -2
  161. package/esm2020/lib/layer/layer-item/layer-item.component.mjs +2 -2
  162. package/esm2020/lib/layer/layer-legend/layer-legend.component.mjs +3 -3
  163. package/esm2020/lib/layer/layer-legend-item/layer-legend-item.component.mjs +2 -2
  164. package/esm2020/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +1 -1
  165. package/esm2020/lib/layer/layer-legend-list/layer-legend-list.component.mjs +2 -2
  166. package/esm2020/lib/layer/layer-list/layer-list-binding.directive.mjs +1 -1
  167. package/esm2020/lib/layer/layer-list/layer-list.component.mjs +2 -2
  168. package/esm2020/lib/layer/layer-list/layer-list.enum.mjs +1 -1
  169. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.component.mjs +2 -2
  170. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.interface.mjs +1 -1
  171. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.service.mjs +1 -1
  172. package/esm2020/lib/layer/layer.module.mjs +6 -11
  173. package/esm2020/lib/layer/shared/clusterParam.mjs +1 -1
  174. package/esm2020/lib/layer/shared/index.mjs +1 -3
  175. package/esm2020/lib/layer/shared/layer.service.mjs +80 -29
  176. package/esm2020/lib/layer/shared/layers/any-layer.interface.mjs +1 -1
  177. package/esm2020/lib/layer/shared/layers/any-layer.mjs +1 -1
  178. package/esm2020/lib/layer/shared/layers/image-layer.interface.mjs +1 -1
  179. package/esm2020/lib/layer/shared/layers/image-layer.mjs +6 -7
  180. package/esm2020/lib/layer/shared/layers/layer.interface.mjs +1 -1
  181. package/esm2020/lib/layer/shared/layers/layer.mjs +5 -3
  182. package/esm2020/lib/layer/shared/layers/tile-layer.interface.mjs +1 -1
  183. package/esm2020/lib/layer/shared/layers/tile-layer.mjs +1 -1
  184. package/esm2020/lib/layer/shared/layers/vector-layer.interface.mjs +1 -1
  185. package/esm2020/lib/layer/shared/layers/vector-layer.mjs +155 -6
  186. package/esm2020/lib/layer/shared/layers/vectortile-layer.interface.mjs +1 -1
  187. package/esm2020/lib/layer/shared/layers/vectortile-layer.mjs +1 -1
  188. package/esm2020/lib/layer/track-feature-button/track-feature-button.component.mjs +2 -2
  189. package/esm2020/lib/layer/utils/image-watcher.mjs +3 -6
  190. package/esm2020/lib/layer/utils/layer.utils.mjs +2 -2
  191. package/esm2020/lib/layer/utils/outputLegend.mjs +3 -2
  192. package/esm2020/lib/layer/utils/tile-watcher.mjs +1 -1
  193. package/esm2020/lib/layer/utils/vector-watcher.mjs +1 -1
  194. package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.animation.mjs +1 -1
  195. package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +2 -2
  196. package/esm2020/lib/map/baselayers-switcher/mini-basemap.component.mjs +2 -2
  197. package/esm2020/lib/map/geolocate-button/geolocate-button.component.mjs +2 -2
  198. package/esm2020/lib/map/info-section/info-section.component.mjs +2 -2
  199. package/esm2020/lib/map/map-browser/map-browser.component.mjs +3 -3
  200. package/esm2020/lib/map/map-center/map-center.component.mjs +2 -2
  201. package/esm2020/lib/map/map.module.mjs +1 -1
  202. package/esm2020/lib/map/menu-button/menu-button.component.mjs +3 -3
  203. package/esm2020/lib/map/offline-button/offline-button.component.mjs +34 -57
  204. package/esm2020/lib/map/rotation-button/rotation-button.component.mjs +2 -2
  205. package/esm2020/lib/map/shared/controllers/controller.mjs +1 -1
  206. package/esm2020/lib/map/shared/controllers/geolocation.mjs +151 -36
  207. package/esm2020/lib/map/shared/controllers/view.mjs +1 -1
  208. package/esm2020/lib/map/shared/hover-feature.directive.mjs +24 -73
  209. package/esm2020/lib/map/shared/linkedLayers.utils.mjs +3 -3
  210. package/esm2020/lib/map/shared/map-pointer-position.directive.mjs +1 -1
  211. package/esm2020/lib/map/shared/map.interface.mjs +1 -1
  212. package/esm2020/lib/map/shared/map.mjs +7 -5
  213. package/esm2020/lib/map/shared/map.service.mjs +1 -1
  214. package/esm2020/lib/map/shared/map.utils.mjs +1 -1
  215. package/esm2020/lib/map/shared/mapOffline.directive.mjs +50 -115
  216. package/esm2020/lib/map/shared/projection.interfaces.mjs +1 -1
  217. package/esm2020/lib/map/shared/projection.service.mjs +1 -1
  218. package/esm2020/lib/map/shared/projection.utils.mjs +1 -1
  219. package/esm2020/lib/map/swipe-control/swipe-control.component.mjs +3 -3
  220. package/esm2020/lib/map/utils/layer-watcher.mjs +1 -1
  221. package/esm2020/lib/map/wake-lock-button/wake-lock-button.component.mjs +24 -35
  222. package/esm2020/lib/map/zoom-button/zoom-button.component.mjs +2 -2
  223. package/esm2020/lib/measure/measure.module.mjs +1 -1
  224. package/esm2020/lib/measure/measurer/measure-format.pipe.mjs +1 -1
  225. package/esm2020/lib/measure/measurer/measurer-dialog.component.mjs +2 -2
  226. package/esm2020/lib/measure/measurer/measurer-item.component.mjs +2 -2
  227. package/esm2020/lib/measure/measurer/measurer.component.mjs +2 -2
  228. package/esm2020/lib/measure/measurer/measurer.module.mjs +1 -1
  229. package/esm2020/lib/measure/shared/measure.enum.mjs +1 -1
  230. package/esm2020/lib/measure/shared/measure.interfaces.mjs +1 -1
  231. package/esm2020/lib/measure/shared/measure.utils.mjs +1 -1
  232. package/esm2020/lib/metadata/metadata-button/metadata-button.component.mjs +3 -3
  233. package/esm2020/lib/metadata/metadata.module.mjs +1 -1
  234. package/esm2020/lib/metadata/shared/metadata.interface.mjs +1 -1
  235. package/esm2020/lib/metadata/shared/metadata.service.mjs +1 -1
  236. package/esm2020/lib/offline/geoDB/configFileToGeoDB.service.mjs +4 -4
  237. package/esm2020/lib/offline/geoDB/geoDB.enums.mjs +1 -1
  238. package/esm2020/lib/offline/geoDB/geoDB.interface.mjs +1 -1
  239. package/esm2020/lib/offline/geoDB/geoDB.service.mjs +2 -2
  240. package/esm2020/lib/offline/index.mjs +2 -1
  241. package/esm2020/lib/offline/layerDB/index.mjs +3 -0
  242. package/esm2020/lib/offline/layerDB/layerDB.interface.mjs +2 -0
  243. package/esm2020/lib/offline/layerDB/layerDB.service.mjs +76 -0
  244. package/esm2020/lib/offline/shared/geo-network.service.mjs +1 -1
  245. package/esm2020/lib/overlay/overlay.module.mjs +1 -1
  246. package/esm2020/lib/overlay/shared/index.mjs +1 -2
  247. package/esm2020/lib/overlay/shared/overlay.directive.mjs +1 -1
  248. package/esm2020/lib/overlay/shared/overlay.enum.mjs +1 -1
  249. package/esm2020/lib/overlay/shared/overlay.mjs +1 -1
  250. package/esm2020/lib/overlay/shared/overlay.service.mjs +1 -1
  251. package/esm2020/lib/overlay/shared/overlay.utils.mjs +2 -88
  252. package/esm2020/lib/print/print/print.component.mjs +6 -20
  253. package/esm2020/lib/print/print-form/print-form.component.mjs +197 -111
  254. package/esm2020/lib/print/print.module.mjs +1 -1
  255. package/esm2020/lib/print/shared/geopdf.mjs +1 -1
  256. package/esm2020/lib/print/shared/index.mjs +1 -1
  257. package/esm2020/lib/print/shared/print.interface.mjs +1 -1
  258. package/esm2020/lib/print/shared/print.service.mjs +85 -35
  259. package/esm2020/lib/print/shared/print.type.mjs +1 -1
  260. package/esm2020/lib/query/query.module.mjs +1 -1
  261. package/esm2020/lib/query/shared/query-search-source.mjs +1 -1
  262. package/esm2020/lib/query/shared/query-search-source.providers.mjs +1 -1
  263. package/esm2020/lib/query/shared/query.directive.mjs +1 -1
  264. package/esm2020/lib/query/shared/query.interfaces.mjs +1 -1
  265. package/esm2020/lib/query/shared/query.service.mjs +3 -5
  266. package/esm2020/lib/query/shared/query.utils.mjs +1 -1
  267. package/esm2020/lib/search/search-bar/search-bar.component.mjs +3 -3
  268. package/esm2020/lib/search/search-bar/search-bar.module.mjs +1 -1
  269. package/esm2020/lib/search/search-bar/search-url-param.directive.mjs +1 -1
  270. package/esm2020/lib/search/search-results/save-feature-dialog.component.mjs +4 -4
  271. package/esm2020/lib/search/search-results/search-results-add-button.component.mjs +88 -31
  272. package/esm2020/lib/search/search-results/search-results-item.component.mjs +36 -13
  273. package/esm2020/lib/search/search-results/search-results.component.mjs +172 -58
  274. package/esm2020/lib/search/search-results/search-results.module.mjs +5 -1
  275. package/esm2020/lib/search/search-selector/search-selector.component.mjs +2 -2
  276. package/esm2020/lib/search/search-selector/search-selector.module.mjs +1 -1
  277. package/esm2020/lib/search/search-settings/search-settings.component.mjs +54 -56
  278. package/esm2020/lib/search/search-settings/search-settings.module.mjs +1 -1
  279. package/esm2020/lib/search/search.module.mjs +1 -1
  280. package/esm2020/lib/search/shared/search-pointer-summary.directive.mjs +3 -30
  281. package/esm2020/lib/search/shared/search-source-service.providers.mjs +1 -1
  282. package/esm2020/lib/search/shared/search-source.service.mjs +9 -1
  283. package/esm2020/lib/search/shared/search.enums.mjs +1 -1
  284. package/esm2020/lib/search/shared/search.interfaces.mjs +1 -1
  285. package/esm2020/lib/search/shared/search.service.mjs +1 -1
  286. package/esm2020/lib/search/shared/search.utils.mjs +3 -3
  287. package/esm2020/lib/search/shared/sources/coordinates.interfaces.mjs +1 -1
  288. package/esm2020/lib/search/shared/sources/coordinates.mjs +1 -1
  289. package/esm2020/lib/search/shared/sources/coordinates.providers.mjs +4 -4
  290. package/esm2020/lib/search/shared/sources/icherche.interfaces.mjs +1 -1
  291. package/esm2020/lib/search/shared/sources/icherche.mjs +1 -1
  292. package/esm2020/lib/search/shared/sources/icherche.providers.mjs +1 -1
  293. package/esm2020/lib/search/shared/sources/ilayer.interfaces.mjs +1 -1
  294. package/esm2020/lib/search/shared/sources/ilayer.mjs +1 -1
  295. package/esm2020/lib/search/shared/sources/ilayer.providers.mjs +1 -1
  296. package/esm2020/lib/search/shared/sources/index.mjs +4 -1
  297. package/esm2020/lib/search/shared/sources/nominatim.mjs +2 -2
  298. package/esm2020/lib/search/shared/sources/nominatim.providers.mjs +1 -1
  299. package/esm2020/lib/search/shared/sources/source.interfaces.mjs +1 -1
  300. package/esm2020/lib/search/shared/sources/source.mjs +31 -1
  301. package/esm2020/lib/search/shared/sources/storedqueries.interfaces.mjs +1 -1
  302. package/esm2020/lib/search/shared/sources/storedqueries.mjs +1 -1
  303. package/esm2020/lib/search/shared/sources/storedqueries.providers.mjs +1 -1
  304. package/esm2020/lib/search/shared/sources/workspace.interfaces.mjs +2 -0
  305. package/esm2020/lib/search/shared/sources/workspace.mjs +186 -0
  306. package/esm2020/lib/search/shared/sources/workspace.providers.mjs +26 -0
  307. package/esm2020/lib/style/index.mjs +5 -0
  308. package/esm2020/lib/style/shared/datasource/esri-style-generator.mjs +357 -0
  309. package/esm2020/lib/style/shared/datasource/index.mjs +2 -0
  310. package/esm2020/lib/style/shared/feature/feature-style.mjs +141 -0
  311. package/esm2020/lib/style/shared/feature/index.mjs +2 -0
  312. package/esm2020/lib/style/shared/font.enum.mjs +17 -0
  313. package/esm2020/lib/style/shared/index.mjs +5 -0
  314. package/esm2020/lib/style/shared/overlay/index.mjs +3 -0
  315. package/esm2020/lib/style/shared/overlay/overlay-marker-style.utils.mjs +43 -0
  316. package/esm2020/lib/style/shared/overlay/overlay-style.utils.mjs +88 -0
  317. package/esm2020/lib/style/shared/vector/commonVectorStyle.mjs +75 -0
  318. package/esm2020/lib/style/shared/vector/conversion.utils.mjs +27 -0
  319. package/esm2020/lib/style/shared/vector/index.mjs +4 -0
  320. package/esm2020/lib/style/shared/vector/vector-style.interface.mjs +2 -0
  321. package/esm2020/lib/style/style-list/index.mjs +5 -0
  322. package/esm2020/lib/style/style-list/style-list.interface.mjs +2 -0
  323. package/esm2020/lib/style/style-list/style-list.module.mjs +23 -0
  324. package/esm2020/lib/style/style-list/style-list.provider.mjs +21 -0
  325. package/esm2020/lib/style/style-list/style-list.service.mjs +51 -0
  326. package/esm2020/lib/style/style-modal/drawing/index.mjs +2 -0
  327. package/esm2020/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +288 -0
  328. package/esm2020/lib/style/style-modal/index.mjs +5 -0
  329. package/esm2020/lib/style/style-modal/layer/index.mjs +2 -0
  330. package/esm2020/lib/style/style-modal/layer/style-modal-layer.component.mjs +187 -0
  331. package/esm2020/lib/style/style-modal/layer-button/index.mjs +2 -0
  332. package/esm2020/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +44 -0
  333. package/esm2020/lib/style/style-modal/shared/index.mjs +2 -0
  334. package/esm2020/lib/style/style-modal/shared/style-modal.interface.mjs +2 -0
  335. package/esm2020/lib/style/style-service/draw-style.service.mjs +187 -0
  336. package/esm2020/lib/style/style-service/index.mjs +3 -0
  337. package/esm2020/lib/style/style-service/style.service.mjs +356 -0
  338. package/esm2020/lib/style/style.module.mjs +74 -0
  339. package/esm2020/lib/toast/toast.component.mjs +3 -3
  340. package/esm2020/lib/toast/toast.module.mjs +1 -1
  341. package/esm2020/lib/utils/id-generator.mjs +1 -1
  342. package/esm2020/lib/utils/index.mjs +1 -3
  343. package/esm2020/lib/wkt/shared/wkt.service.mjs +15 -15
  344. package/esm2020/lib/wkt/wkt.module.mjs +1 -1
  345. package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +2 -2
  346. package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +1 -1
  347. package/esm2020/lib/workspace/confirmation-popup/index.mjs +1 -1
  348. package/esm2020/lib/workspace/shared/edition-workspace.mjs +1 -1
  349. package/esm2020/lib/workspace/shared/edition-workspace.service.mjs +19 -34
  350. package/esm2020/lib/workspace/shared/feature-workspace.mjs +1 -1
  351. package/esm2020/lib/workspace/shared/feature-workspace.service.mjs +10 -3
  352. package/esm2020/lib/workspace/shared/wfs-workspace.mjs +1 -1
  353. package/esm2020/lib/workspace/shared/wfs-workspace.service.mjs +2 -2
  354. package/esm2020/lib/workspace/shared/wms-workspace.service.mjs +3 -3
  355. package/esm2020/lib/workspace/shared/workspace.utils.mjs +1 -1
  356. package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +2 -2
  357. package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +1 -1
  358. package/esm2020/lib/workspace/widgets/widgets.mjs +1 -1
  359. package/esm2020/lib/workspace/workspace-selector/workspace-selector.directive.mjs +1 -1
  360. package/esm2020/lib/workspace/workspace-selector/workspace-selector.module.mjs +1 -1
  361. package/esm2020/lib/workspace/workspace-updator/workspace-updator.directive.mjs +1 -1
  362. package/esm2020/lib/workspace/workspace-updator/workspace-updator.module.mjs +1 -1
  363. package/esm2020/lib/workspace/workspace.module.mjs +1 -1
  364. package/esm2020/public_api.mjs +3 -1
  365. package/fesm2015/igo2-geo.mjs +6707 -5364
  366. package/fesm2015/igo2-geo.mjs.map +1 -1
  367. package/fesm2020/igo2-geo.mjs +7617 -6346
  368. package/fesm2020/igo2-geo.mjs.map +1 -1
  369. package/lib/catalog/catalog-browser/catalog-browser-group.component.d.ts +5 -14
  370. package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +2 -5
  371. package/lib/catalog/catalog-browser/catalog-browser.component.d.ts +3 -9
  372. package/lib/catalog/catalog-library/catalog-library.component.d.ts +2 -3
  373. package/lib/catalog/shared/catalog.interface.d.ts +10 -0
  374. package/lib/datasource/shared/datasources/datasource.interface.d.ts +13 -0
  375. package/lib/datasource/shared/datasources/feature-datasource.interface.d.ts +5 -0
  376. package/lib/datasource/utils/index.d.ts +0 -1
  377. package/lib/download/shared/download.service.d.ts +2 -3
  378. package/lib/draw/draw/draw.component.d.ts +3 -2
  379. package/lib/draw/shared/draw.enum.d.ts +0 -15
  380. package/lib/draw/shared/index.d.ts +0 -1
  381. package/lib/feature/shared/feature.interfaces.d.ts +5 -0
  382. package/lib/feature/shared/feature.utils.d.ts +4 -2
  383. package/lib/feature/shared/store.d.ts +7 -0
  384. package/lib/feature/shared/strategies/index.d.ts +1 -0
  385. package/lib/feature/shared/strategies/search.d.ts +55 -0
  386. package/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.d.ts +2 -3
  387. package/lib/geo.module.d.ts +3 -2
  388. package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +5 -9
  389. package/lib/geometry/geometry-form-field/geometry-form-field.component.d.ts +3 -3
  390. package/lib/import-export/import-export/import-export.component.d.ts +9 -4
  391. package/lib/import-export/import-export.module.d.ts +1 -2
  392. package/lib/import-export/index.d.ts +0 -1
  393. package/lib/import-export/shared/drop-geo-file.directive.d.ts +10 -7
  394. package/lib/import-export/shared/export.utils.d.ts +4 -4
  395. package/lib/import-export/shared/import.interface.d.ts +2 -0
  396. package/lib/import-export/shared/import.utils.d.ts +14 -12
  397. package/lib/layer/index.d.ts +0 -1
  398. package/lib/layer/layer.module.d.ts +19 -20
  399. package/lib/layer/shared/index.d.ts +0 -2
  400. package/lib/layer/shared/layer.service.d.ts +8 -5
  401. package/lib/layer/shared/layers/image-layer.d.ts +2 -3
  402. package/lib/layer/shared/layers/layer.d.ts +5 -1
  403. package/lib/layer/shared/layers/layer.interface.d.ts +2 -0
  404. package/lib/layer/shared/layers/vector-layer.d.ts +18 -2
  405. package/lib/layer/shared/layers/vector-layer.interface.d.ts +8 -7
  406. package/lib/layer/shared/layers/vectortile-layer.interface.d.ts +2 -4
  407. package/lib/layer/utils/image-watcher.d.ts +2 -3
  408. package/lib/map/offline-button/offline-button.component.d.ts +10 -18
  409. package/lib/map/shared/controllers/geolocation.d.ts +17 -2
  410. package/lib/map/shared/hover-feature.directive.d.ts +2 -10
  411. package/lib/map/shared/map.d.ts +2 -2
  412. package/lib/map/shared/mapOffline.directive.d.ts +4 -7
  413. package/lib/map/wake-lock-button/wake-lock-button.component.d.ts +3 -6
  414. package/lib/offline/geoDB/geoDB.service.d.ts +1 -1
  415. package/lib/offline/index.d.ts +1 -0
  416. package/lib/offline/layerDB/index.d.ts +2 -0
  417. package/lib/offline/layerDB/layerDB.interface.d.ts +7 -0
  418. package/lib/offline/layerDB/layerDB.service.d.ts +36 -0
  419. package/lib/overlay/shared/index.d.ts +0 -1
  420. package/lib/overlay/shared/overlay.utils.d.ts +0 -11
  421. package/lib/print/print-form/print-form.component.d.ts +2 -0
  422. package/lib/print/shared/print.service.d.ts +6 -0
  423. package/lib/search/search-results/save-feature-dialog.component.d.ts +1 -1
  424. package/lib/search/search-results/search-results-add-button.component.d.ts +10 -2
  425. package/lib/search/search-results/search-results-item.component.d.ts +5 -0
  426. package/lib/search/search-results/search-results.component.d.ts +5 -1
  427. package/lib/search/search-results/search-results.module.d.ts +11 -10
  428. package/lib/search/shared/search-pointer-summary.directive.d.ts +0 -9
  429. package/lib/search/shared/search-source.service.d.ts +7 -0
  430. package/lib/search/shared/search.interfaces.d.ts +1 -1
  431. package/lib/search/shared/sources/coordinates.providers.d.ts +3 -3
  432. package/lib/search/shared/sources/index.d.ts +3 -0
  433. package/lib/search/shared/sources/source.d.ts +6 -0
  434. package/lib/search/shared/sources/workspace.d.ts +33 -0
  435. package/lib/search/shared/sources/workspace.interfaces.d.ts +9 -0
  436. package/lib/search/shared/sources/workspace.providers.d.ts +17 -0
  437. package/lib/style/index.d.ts +4 -0
  438. package/lib/style/shared/datasource/index.d.ts +1 -0
  439. package/lib/style/shared/feature/feature-style.d.ts +18 -0
  440. package/lib/style/shared/feature/index.d.ts +1 -0
  441. package/lib/style/shared/font.enum.d.ts +15 -0
  442. package/lib/style/shared/index.d.ts +4 -0
  443. package/lib/style/shared/overlay/index.d.ts +2 -0
  444. package/lib/style/shared/overlay/overlay-style.utils.d.ts +19 -0
  445. package/lib/{utils → style/shared/vector}/commonVectorStyle.d.ts +4 -4
  446. package/lib/style/shared/vector/conversion.utils.d.ts +22 -0
  447. package/lib/style/shared/vector/index.d.ts +3 -0
  448. package/lib/style/shared/vector/vector-style.interface.d.ts +69 -0
  449. package/lib/style/style-modal/drawing/index.d.ts +1 -0
  450. package/lib/style/style-modal/drawing/style-modal-drawing.component.d.ts +31 -0
  451. package/lib/style/style-modal/index.d.ts +4 -0
  452. package/lib/style/style-modal/layer/index.d.ts +1 -0
  453. package/lib/style/style-modal/layer/style-modal-layer.component.d.ts +30 -0
  454. package/lib/style/style-modal/layer-button/index.d.ts +1 -0
  455. package/lib/style/style-modal/layer-button/style-modal-layer-button.component.d.ts +14 -0
  456. package/lib/style/style-modal/shared/index.d.ts +1 -0
  457. package/lib/style/style-modal/shared/style-modal.interface.d.ts +17 -0
  458. package/lib/{draw/shared → style/style-service}/draw-style.service.d.ts +3 -4
  459. package/lib/style/style-service/index.d.ts +2 -0
  460. package/lib/{layer/shared → style/style-service}/style.service.d.ts +5 -5
  461. package/lib/style/style.module.d.ts +22 -0
  462. package/lib/utils/index.d.ts +0 -2
  463. package/lib/workspace/shared/edition-workspace.service.d.ts +3 -4
  464. package/lib/workspace/shared/wms-workspace.service.d.ts +1 -1
  465. package/ngcc.config.js +3 -3
  466. package/package.json +17 -11
  467. package/public_api.d.ts +2 -0
  468. package/style/geo.theming.scss +12 -12
  469. package/esm2020/lib/datasource/utils/esri-style-generator.mjs +0 -357
  470. package/esm2020/lib/draw/shared/draw-style.service.mjs +0 -190
  471. package/esm2020/lib/import-export/style-list/index.mjs +0 -5
  472. package/esm2020/lib/import-export/style-list/style-list.interface.mjs +0 -2
  473. package/esm2020/lib/import-export/style-list/style-list.module.mjs +0 -23
  474. package/esm2020/lib/import-export/style-list/style-list.provider.mjs +0 -21
  475. package/esm2020/lib/import-export/style-list/style-list.service.mjs +0 -51
  476. package/esm2020/lib/layer/shared/style.service.mjs +0 -356
  477. package/esm2020/lib/layer/shared/vector-style.interface.mjs +0 -2
  478. package/esm2020/lib/layer/style-modal/index.mjs +0 -2
  479. package/esm2020/lib/layer/style-modal/style-modal.component.mjs +0 -288
  480. package/esm2020/lib/overlay/shared/overlay-marker-style.utils.mjs +0 -69
  481. package/esm2020/lib/utils/commonVectorStyle.interface.mjs +0 -2
  482. package/esm2020/lib/utils/commonVectorStyle.mjs +0 -75
  483. package/lib/layer/shared/vector-style.interface.d.ts +0 -38
  484. package/lib/layer/style-modal/index.d.ts +0 -1
  485. package/lib/layer/style-modal/style-modal.component.d.ts +0 -42
  486. package/lib/utils/commonVectorStyle.interface.d.ts +0 -16
  487. /package/lib/{datasource/utils → style/shared/datasource}/esri-style-generator.d.ts +0 -0
  488. /package/lib/{overlay/shared → style/shared/overlay}/overlay-marker-style.utils.d.ts +0 -0
  489. /package/lib/{import-export → style}/style-list/index.d.ts +0 -0
  490. /package/lib/{import-export → style}/style-list/style-list.interface.d.ts +0 -0
  491. /package/lib/{import-export → style}/style-list/style-list.module.d.ts +0 -0
  492. /package/lib/{import-export → style}/style-list/style-list.provider.d.ts +0 -0
  493. /package/lib/{import-export → style}/style-list/style-list.service.d.ts +0 -0
@@ -15,7 +15,7 @@ import * as i11 from "@angular/material/slide-toggle";
15
15
  import * as i12 from "@ngx-translate/core";
16
16
  function SearchSettingsComponent_div_6_Template(rf, ctx) { if (rf & 1) {
17
17
  const _r5 = i0.ɵɵgetCurrentView();
18
- i0.ɵɵelementStart(0, "div", 8)(1, "button", 9);
18
+ i0.ɵɵelementStart(0, "div", 10)(1, "button", 11);
19
19
  i0.ɵɵlistener("click", function SearchSettingsComponent_div_6_Template_button_click_1_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.checkUncheckAllSources($event)); });
20
20
  i0.ɵɵtext(2);
21
21
  i0.ɵɵpipe(3, "translate");
@@ -27,7 +27,7 @@ function SearchSettingsComponent_div_6_Template(rf, ctx) { if (rf & 1) {
27
27
  i0.ɵɵtextInterpolate(!ctx_r1.searchSourcesAllEnabled ? i0.ɵɵpipeBind1(3, 1, "igo.geo.search.searchSources.unselectAll") : i0.ɵɵpipeBind1(4, 3, "igo.geo.search.searchSources.selectAll"));
28
28
  } }
29
29
  function SearchSettingsComponent_ng_container_7_button_3_Template(rf, ctx) { if (rf & 1) {
30
- i0.ɵɵelementStart(0, "button", 15);
30
+ i0.ɵɵelementStart(0, "button", 17);
31
31
  i0.ɵɵtext(1);
32
32
  i0.ɵɵelementEnd();
33
33
  } if (rf & 2) {
@@ -38,7 +38,7 @@ function SearchSettingsComponent_ng_container_7_button_3_Template(rf, ctx) { if
38
38
  i0.ɵɵtextInterpolate1("", source_r6.title, " ");
39
39
  } }
40
40
  function SearchSettingsComponent_ng_container_7_button_4_Template(rf, ctx) { if (rf & 1) {
41
- i0.ɵɵelementStart(0, "button", 16);
41
+ i0.ɵɵelementStart(0, "button", 18);
42
42
  i0.ɵɵtext(1);
43
43
  i0.ɵɵelementEnd();
44
44
  } if (rf & 2) {
@@ -48,7 +48,7 @@ function SearchSettingsComponent_ng_container_7_button_4_Template(rf, ctx) { if
48
48
  } }
49
49
  function SearchSettingsComponent_ng_container_7_ng_container_7_span_6_mat_radio_button_2_Template(rf, ctx) { if (rf & 1) {
50
50
  const _r22 = i0.ɵɵgetCurrentView();
51
- i0.ɵɵelementStart(0, "mat-radio-button", 22);
51
+ i0.ɵɵelementStart(0, "mat-radio-button", 24);
52
52
  i0.ɵɵlistener("click", function SearchSettingsComponent_ng_container_7_ng_container_7_span_6_mat_radio_button_2_Template_mat_radio_button_click_0_listener($event) { return $event.stopPropagation(); })("change", function SearchSettingsComponent_ng_container_7_ng_container_7_span_6_mat_radio_button_2_Template_mat_radio_button_change_0_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r22); const settingValue_r18 = restoredCtx.$implicit; const setting_r13 = i0.ɵɵnextContext(2).$implicit; const source_r6 = i0.ɵɵnextContext().$implicit; const ctx_r20 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r20.settingsValueCheckedRadioButton($event, source_r6, setting_r13, settingValue_r18)); });
53
53
  i0.ɵɵtext(1);
54
54
  i0.ɵɵpipe(2, "translate");
@@ -61,8 +61,8 @@ function SearchSettingsComponent_ng_container_7_ng_container_7_span_6_mat_radio_
61
61
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 4, settingValue_r18.title), " ");
62
62
  } }
63
63
  function SearchSettingsComponent_ng_container_7_ng_container_7_span_6_Template(rf, ctx) { if (rf & 1) {
64
- i0.ɵɵelementStart(0, "span")(1, "mat-radio-group", 20);
65
- i0.ɵɵtemplate(2, SearchSettingsComponent_ng_container_7_ng_container_7_span_6_mat_radio_button_2_Template, 3, 6, "mat-radio-button", 21);
64
+ i0.ɵɵelementStart(0, "span")(1, "mat-radio-group", 22);
65
+ i0.ɵɵtemplate(2, SearchSettingsComponent_ng_container_7_ng_container_7_span_6_mat_radio_button_2_Template, 3, 6, "mat-radio-button", 23);
66
66
  i0.ɵɵelementEnd()();
67
67
  } if (rf & 2) {
68
68
  const setting_r13 = i0.ɵɵnextContext().$implicit;
@@ -73,7 +73,7 @@ function SearchSettingsComponent_ng_container_7_ng_container_7_span_6_Template(r
73
73
  } }
74
74
  function SearchSettingsComponent_ng_container_7_ng_container_7_span_7_div_1_Template(rf, ctx) { if (rf & 1) {
75
75
  const _r29 = i0.ɵɵgetCurrentView();
76
- i0.ɵɵelementStart(0, "div", 8)(1, "button", 9);
76
+ i0.ɵɵelementStart(0, "div", 10)(1, "button", 11);
77
77
  i0.ɵɵlistener("click", function SearchSettingsComponent_ng_container_7_ng_container_7_span_7_div_1_Template_button_click_1_listener($event) { i0.ɵɵrestoreView(_r29); const setting_r13 = i0.ɵɵnextContext(2).$implicit; const source_r6 = i0.ɵɵnextContext().$implicit; const ctx_r27 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r27.checkUncheckAll($event, source_r6, setting_r13)); });
78
78
  i0.ɵɵtext(2);
79
79
  i0.ɵɵpipe(3, "translate");
@@ -86,7 +86,7 @@ function SearchSettingsComponent_ng_container_7_ng_container_7_span_7_div_1_Temp
86
86
  } }
87
87
  function SearchSettingsComponent_ng_container_7_ng_container_7_span_7_mat_checkbox_2_Template(rf, ctx) { if (rf & 1) {
88
88
  const _r36 = i0.ɵɵgetCurrentView();
89
- i0.ɵɵelementStart(0, "mat-checkbox", 24);
89
+ i0.ɵɵelementStart(0, "mat-checkbox", 26);
90
90
  i0.ɵɵlistener("click", function SearchSettingsComponent_ng_container_7_ng_container_7_span_7_mat_checkbox_2_Template_mat_checkbox_click_0_listener($event) { return $event.stopPropagation(); })("change", function SearchSettingsComponent_ng_container_7_ng_container_7_span_7_mat_checkbox_2_Template_mat_checkbox_change_0_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r36); const settingValue_r32 = restoredCtx.$implicit; const setting_r13 = i0.ɵɵnextContext(2).$implicit; const source_r6 = i0.ɵɵnextContext().$implicit; const ctx_r34 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r34.settingsValueCheckedCheckbox($event, source_r6, setting_r13, settingValue_r32)); });
91
91
  i0.ɵɵtext(1);
92
92
  i0.ɵɵpipe(2, "translate");
@@ -103,7 +103,7 @@ function SearchSettingsComponent_ng_container_7_ng_container_7_span_7_mat_checkb
103
103
  function SearchSettingsComponent_ng_container_7_ng_container_7_span_7_Template(rf, ctx) { if (rf & 1) {
104
104
  i0.ɵɵelementStart(0, "span");
105
105
  i0.ɵɵtemplate(1, SearchSettingsComponent_ng_container_7_ng_container_7_span_7_div_1_Template, 5, 5, "div", 5);
106
- i0.ɵɵtemplate(2, SearchSettingsComponent_ng_container_7_ng_container_7_span_7_mat_checkbox_2_Template, 3, 8, "mat-checkbox", 23);
106
+ i0.ɵɵtemplate(2, SearchSettingsComponent_ng_container_7_ng_container_7_span_7_mat_checkbox_2_Template, 3, 8, "mat-checkbox", 25);
107
107
  i0.ɵɵelementEnd();
108
108
  } if (rf & 2) {
109
109
  const setting_r13 = i0.ɵɵnextContext().$implicit;
@@ -115,13 +115,13 @@ function SearchSettingsComponent_ng_container_7_ng_container_7_span_7_Template(r
115
115
  } }
116
116
  function SearchSettingsComponent_ng_container_7_ng_container_7_Template(rf, ctx) { if (rf & 1) {
117
117
  i0.ɵɵelementContainerStart(0);
118
- i0.ɵɵelementStart(1, "button", 15);
118
+ i0.ɵɵelementStart(1, "button", 17);
119
119
  i0.ɵɵtext(2);
120
120
  i0.ɵɵpipe(3, "translate");
121
121
  i0.ɵɵelementEnd();
122
- i0.ɵɵelementStart(4, "mat-menu", 17, 18);
123
- i0.ɵɵtemplate(6, SearchSettingsComponent_ng_container_7_ng_container_7_span_6_Template, 3, 2, "span", 19);
124
- i0.ɵɵtemplate(7, SearchSettingsComponent_ng_container_7_ng_container_7_span_7_Template, 3, 2, "span", 19);
122
+ i0.ɵɵelementStart(4, "mat-menu", 19, 20);
123
+ i0.ɵɵtemplate(6, SearchSettingsComponent_ng_container_7_ng_container_7_span_6_Template, 3, 2, "span", 21);
124
+ i0.ɵɵtemplate(7, SearchSettingsComponent_ng_container_7_ng_container_7_span_7_Template, 3, 2, "span", 21);
125
125
  i0.ɵɵelementEnd();
126
126
  i0.ɵɵelementContainerEnd();
127
127
  } if (rf & 2) {
@@ -141,13 +141,13 @@ function SearchSettingsComponent_ng_container_7_ng_container_7_Template(rf, ctx)
141
141
  function SearchSettingsComponent_ng_container_7_Template(rf, ctx) { if (rf & 1) {
142
142
  const _r42 = i0.ɵɵgetCurrentView();
143
143
  i0.ɵɵelementContainerStart(0);
144
- i0.ɵɵelementStart(1, "span", 10)(2, "mat-checkbox", 11);
144
+ i0.ɵɵelementStart(1, "span", 12)(2, "mat-checkbox", 13);
145
145
  i0.ɵɵlistener("click", function SearchSettingsComponent_ng_container_7_Template_mat_checkbox_click_2_listener($event) { return $event.stopPropagation(); })("change", function SearchSettingsComponent_ng_container_7_Template_mat_checkbox_change_2_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r42); const source_r6 = restoredCtx.$implicit; const ctx_r41 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r41.onCheckSearchSource($event, source_r6)); });
146
146
  i0.ɵɵelementEnd();
147
- i0.ɵɵtemplate(3, SearchSettingsComponent_ng_container_7_button_3_Template, 2, 2, "button", 12);
148
- i0.ɵɵtemplate(4, SearchSettingsComponent_ng_container_7_button_4_Template, 2, 1, "button", 13);
147
+ i0.ɵɵtemplate(3, SearchSettingsComponent_ng_container_7_button_3_Template, 2, 2, "button", 14);
148
+ i0.ɵɵtemplate(4, SearchSettingsComponent_ng_container_7_button_4_Template, 2, 1, "button", 15);
149
149
  i0.ɵɵelementEnd();
150
- i0.ɵɵelementStart(5, "mat-menu", null, 14);
150
+ i0.ɵɵelementStart(5, "mat-menu", null, 16);
151
151
  i0.ɵɵtemplate(7, SearchSettingsComponent_ng_container_7_ng_container_7_Template, 8, 7, "ng-container", 6);
152
152
  i0.ɵɵelementEnd();
153
153
  i0.ɵɵelementContainerEnd();
@@ -162,43 +162,19 @@ function SearchSettingsComponent_ng_container_7_Template(rf, ctx) { if (rf & 1)
162
162
  i0.ɵɵadvance(3);
163
163
  i0.ɵɵproperty("ngForOf", source_r6.settings);
164
164
  } }
165
- function SearchSettingsComponent_span_8_Template(rf, ctx) { if (rf & 1) {
165
+ function SearchSettingsComponent_mat_slide_toggle_10_Template(rf, ctx) { if (rf & 1) {
166
166
  const _r44 = i0.ɵɵgetCurrentView();
167
- i0.ɵɵelementStart(0, "span");
168
- i0.ɵɵelement(1, "mat-divider");
169
- i0.ɵɵelementStart(2, "span", 25)(3, "mat-slide-toggle", 26);
170
- i0.ɵɵlistener("change", function SearchSettingsComponent_span_8_Template_mat_slide_toggle_change_3_listener($event) { i0.ɵɵrestoreView(_r44); const ctx_r43 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r43.changePointerReverseSearch($event)); })("click", function SearchSettingsComponent_span_8_Template_mat_slide_toggle_click_3_listener($event) { return $event.stopPropagation(); });
171
- i0.ɵɵpipe(4, "translate");
172
- i0.ɵɵtext(5);
173
- i0.ɵɵpipe(6, "translate");
174
- i0.ɵɵelementEnd();
175
- i0.ɵɵelementStart(7, "mat-slide-toggle", 26);
176
- i0.ɵɵlistener("change", function SearchSettingsComponent_span_8_Template_mat_slide_toggle_change_7_listener($event) { i0.ɵɵrestoreView(_r44); const ctx_r46 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r46.changeSearchResultsGeometry($event)); })("click", function SearchSettingsComponent_span_8_Template_mat_slide_toggle_click_7_listener($event) { return $event.stopPropagation(); });
177
- i0.ɵɵpipe(8, "translate");
178
- i0.ɵɵtext(9);
179
- i0.ɵɵpipe(10, "translate");
167
+ i0.ɵɵelementStart(0, "mat-slide-toggle", 9);
168
+ i0.ɵɵlistener("change", function SearchSettingsComponent_mat_slide_toggle_10_Template_mat_slide_toggle_change_0_listener($event) { i0.ɵɵrestoreView(_r44); const ctx_r43 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r43.changePointerReverseSearch($event)); })("click", function SearchSettingsComponent_mat_slide_toggle_10_Template_mat_slide_toggle_click_0_listener($event) { return $event.stopPropagation(); });
169
+ i0.ɵɵpipe(1, "translate");
170
+ i0.ɵɵtext(2);
171
+ i0.ɵɵpipe(3, "translate");
180
172
  i0.ɵɵelementEnd();
181
- i0.ɵɵelementStart(11, "mat-slide-toggle", 26);
182
- i0.ɵɵlistener("change", function SearchSettingsComponent_span_8_Template_mat_slide_toggle_change_11_listener($event) { i0.ɵɵrestoreView(_r44); const ctx_r48 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r48.reverseSearchCoordsFormat($event)); })("click", function SearchSettingsComponent_span_8_Template_mat_slide_toggle_click_11_listener($event) { return $event.stopPropagation(); });
183
- i0.ɵɵpipe(12, "translate");
184
- i0.ɵɵpipe(13, "translate");
185
- i0.ɵɵtext(14);
186
- i0.ɵɵpipe(15, "translate");
187
- i0.ɵɵelementEnd()()();
188
173
  } if (rf & 2) {
189
174
  const ctx_r3 = i0.ɵɵnextContext();
190
- i0.ɵɵadvance(3);
191
- i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(4, 12, "igo.geo.search.pointerSearchSummary.tooltip"))("checked", ctx_r3.pointerSummaryEnabled)("labelPosition", "after");
192
- i0.ɵɵadvance(2);
193
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(6, 14, "igo.geo.search.pointerSearchSummary.title"), " ");
175
+ i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(1, 4, "igo.geo.search.pointerSearchSummary.tooltip"))("checked", ctx_r3.pointerSummaryEnabled)("labelPosition", "after");
194
176
  i0.ɵɵadvance(2);
195
- i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(8, 16, "igo.geo.search.searchResultsGeometry.tooltip"))("checked", ctx_r3.searchResultsGeometryEnabled)("labelPosition", "after");
196
- i0.ɵɵadvance(2);
197
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(10, 18, "igo.geo.search.searchResultsGeometry.title"), " ");
198
- i0.ɵɵadvance(2);
199
- i0.ɵɵproperty("matTooltip", ctx_r3.reverseSearchCoordsFormatEnabled ? i0.ɵɵpipeBind1(12, 20, "igo.geo.search.reverseCoordFormat.tooltipLatLon") : i0.ɵɵpipeBind1(13, 22, "igo.geo.search.reverseCoordFormat.tooltipLonLat"))("checked", ctx_r3.reverseSearchCoordsFormatEnabled)("labelPosition", "after");
200
- i0.ɵɵadvance(3);
201
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(15, 24, "igo.geo.search.reverseCoordFormat.title"), " ");
177
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 6, "igo.geo.search.pointerSearchSummary.title"), " ");
202
178
  } }
203
179
  /**
204
180
  * This component allows a user to select a search type yo enable. In it's
@@ -397,7 +373,7 @@ export class SearchSettingsComponent {
397
373
  SearchSettingsComponent.ɵfac = function SearchSettingsComponent_Factory(t) { return new (t || SearchSettingsComponent)(i0.ɵɵdirectiveInject(i1.SearchSourceService), i0.ɵɵdirectiveInject(i2.MediaService), i0.ɵɵdirectiveInject(i2.StorageService)); };
398
374
  SearchSettingsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SearchSettingsComponent, selectors: [["igo-search-settings"]], hostBindings: function SearchSettingsComponent_HostBindings(rf, ctx) { if (rf & 1) {
399
375
  i0.ɵɵlistener("keydown", function SearchSettingsComponent_keydown_HostBindingHandler($event) { return ctx.handleKeyboardEvent($event); }, false, i0.ɵɵresolveDocument);
400
- } }, inputs: { pointerSummaryEnabled: "pointerSummaryEnabled", searchResultsGeometryEnabled: "searchResultsGeometryEnabled", reverseSearchCoordsFormatEnabled: "reverseSearchCoordsFormatEnabled" }, outputs: { searchSourceChange: "searchSourceChange", pointerSummaryStatus: "pointerSummaryStatus", searchResultsGeometryStatus: "searchResultsGeometryStatus", reverseSearchCoordsFormatStatus: "reverseSearchCoordsFormatStatus" }, decls: 9, vars: 7, consts: [[1, "igo-search-settings"], ["mat-icon-button", "", "color", "primary", "tooltip-position", "below", "matTooltipShowDelay", "500", 1, "igo-search-settings-button", 3, "matTooltip", "matMenuTriggerFor"], ["svgIcon", "chevron-down"], [1, "no-border-radius"], ["searchSettingsMenu", "matMenu"], ["class", "checkAllButton", 4, "ngIf"], [4, "ngFor", "ngForOf"], [4, "ngIf"], [1, "checkAllButton"], ["mat-raised-button", "", 3, "click"], [1, "igo-search-settings-search-source"], [1, "igo-search-settings-checkbox", 3, "checked", "value", "click", "change"], ["mat-menu-item", "", 3, "matMenuTriggerFor", 4, "ngIf"], ["mat-menu-item", "", 4, "ngIf"], ["sub_menu", "matMenu"], ["mat-menu-item", "", 3, "matMenuTriggerFor"], ["mat-menu-item", ""], ["yPosition", "above", 3, "ngSwitch"], ["test_sub_menu", "matMenu"], [4, "ngSwitchCase"], [1, "igo-search-settings-radio-group", 3, "value"], ["class", "mat-typography", 3, "value", "matTooltip", "checked", "click", "change", 4, "ngFor", "ngForOf"], [1, "mat-typography", 3, "value", "matTooltip", "checked", "click", "change"], ["class", "mat-menu-item", 3, "display", "checked", "value", "matTooltip", "click", "change", 4, "ngFor", "ngForOf"], [1, "mat-menu-item", 3, "checked", "value", "matTooltip", "click", "change"], [1, "pointer-summary-slide-toggle-container", "mat-typography"], ["tooltip-position", "below", "matTooltipShowDelay", "500", 1, "search-option", 3, "matTooltip", "checked", "labelPosition", "change", "click"]], template: function SearchSettingsComponent_Template(rf, ctx) { if (rf & 1) {
376
+ } }, inputs: { pointerSummaryEnabled: "pointerSummaryEnabled", searchResultsGeometryEnabled: "searchResultsGeometryEnabled", reverseSearchCoordsFormatEnabled: "reverseSearchCoordsFormatEnabled" }, outputs: { searchSourceChange: "searchSourceChange", pointerSummaryStatus: "pointerSummaryStatus", searchResultsGeometryStatus: "searchResultsGeometryStatus", reverseSearchCoordsFormatStatus: "reverseSearchCoordsFormatStatus" }, decls: 20, vars: 25, consts: [[1, "igo-search-settings"], ["mat-icon-button", "", "color", "primary", "tooltip-position", "below", "matTooltipShowDelay", "500", 1, "igo-search-settings-button", 3, "matTooltip", "matMenuTriggerFor"], ["svgIcon", "chevron-down"], [1, "no-border-radius"], ["searchSettingsMenu", "matMenu"], ["class", "checkAllButton", 4, "ngIf"], [4, "ngFor", "ngForOf"], [1, "pointer-summary-slide-toggle-container", "mat-typography"], ["class", "search-option", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "matTooltip", "checked", "labelPosition", "change", "click", 4, "ngIf"], ["tooltip-position", "below", "matTooltipShowDelay", "500", 1, "search-option", 3, "matTooltip", "checked", "labelPosition", "change", "click"], [1, "checkAllButton"], ["mat-raised-button", "", 3, "click"], [1, "igo-search-settings-search-source"], [1, "igo-search-settings-checkbox", 3, "checked", "value", "click", "change"], ["mat-menu-item", "", 3, "matMenuTriggerFor", 4, "ngIf"], ["mat-menu-item", "", 4, "ngIf"], ["sub_menu", "matMenu"], ["mat-menu-item", "", 3, "matMenuTriggerFor"], ["mat-menu-item", ""], ["yPosition", "above", 3, "ngSwitch"], ["test_sub_menu", "matMenu"], [4, "ngSwitchCase"], [1, "igo-search-settings-radio-group", 3, "value"], ["class", "mat-typography", 3, "value", "matTooltip", "checked", "click", "change", 4, "ngFor", "ngForOf"], [1, "mat-typography", 3, "value", "matTooltip", "checked", "click", "change"], ["class", "mat-menu-item", 3, "display", "checked", "value", "matTooltip", "click", "change", 4, "ngFor", "ngForOf"], [1, "mat-menu-item", 3, "checked", "value", "matTooltip", "click", "change"]], template: function SearchSettingsComponent_Template(rf, ctx) { if (rf & 1) {
401
377
  i0.ɵɵelementStart(0, "div", 0)(1, "button", 1);
402
378
  i0.ɵɵpipe(2, "translate");
403
379
  i0.ɵɵelement(3, "mat-icon", 2);
@@ -405,22 +381,44 @@ SearchSettingsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Sea
405
381
  i0.ɵɵelementStart(4, "mat-menu", 3, 4);
406
382
  i0.ɵɵtemplate(6, SearchSettingsComponent_div_6_Template, 5, 5, "div", 5);
407
383
  i0.ɵɵtemplate(7, SearchSettingsComponent_ng_container_7_Template, 8, 5, "ng-container", 6);
408
- i0.ɵɵtemplate(8, SearchSettingsComponent_span_8_Template, 16, 26, "span", 7);
409
- i0.ɵɵelementEnd()();
384
+ i0.ɵɵelement(8, "mat-divider");
385
+ i0.ɵɵelementStart(9, "span", 7);
386
+ i0.ɵɵtemplate(10, SearchSettingsComponent_mat_slide_toggle_10_Template, 4, 8, "mat-slide-toggle", 8);
387
+ i0.ɵɵelementStart(11, "mat-slide-toggle", 9);
388
+ i0.ɵɵlistener("change", function SearchSettingsComponent_Template_mat_slide_toggle_change_11_listener($event) { return ctx.changeSearchResultsGeometry($event); })("click", function SearchSettingsComponent_Template_mat_slide_toggle_click_11_listener($event) { return $event.stopPropagation(); });
389
+ i0.ɵɵpipe(12, "translate");
390
+ i0.ɵɵtext(13);
391
+ i0.ɵɵpipe(14, "translate");
392
+ i0.ɵɵelementEnd();
393
+ i0.ɵɵelementStart(15, "mat-slide-toggle", 9);
394
+ i0.ɵɵlistener("change", function SearchSettingsComponent_Template_mat_slide_toggle_change_15_listener($event) { return ctx.reverseSearchCoordsFormat($event); })("click", function SearchSettingsComponent_Template_mat_slide_toggle_click_15_listener($event) { return $event.stopPropagation(); });
395
+ i0.ɵɵpipe(16, "translate");
396
+ i0.ɵɵpipe(17, "translate");
397
+ i0.ɵɵtext(18);
398
+ i0.ɵɵpipe(19, "translate");
399
+ i0.ɵɵelementEnd()()()();
410
400
  } if (rf & 2) {
411
401
  const _r0 = i0.ɵɵreference(5);
412
402
  i0.ɵɵadvance(1);
413
- i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(2, 5, "igo.geo.search.menu.tooltip"))("matMenuTriggerFor", _r0);
403
+ i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(2, 13, "igo.geo.search.menu.tooltip"))("matMenuTriggerFor", _r0);
414
404
  i0.ɵɵadvance(5);
415
405
  i0.ɵɵproperty("ngIf", ctx.getSearchSources().length > 4);
416
406
  i0.ɵɵadvance(1);
417
407
  i0.ɵɵproperty("ngForOf", ctx.getSearchSources());
418
- i0.ɵɵadvance(1);
408
+ i0.ɵɵadvance(3);
419
409
  i0.ɵɵproperty("ngIf", ctx.hasPointerReverseSearchSource && !ctx.isTouchScreen);
410
+ i0.ɵɵadvance(1);
411
+ i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(12, 15, "igo.geo.search.searchResultsGeometry.tooltip"))("checked", ctx.searchResultsGeometryEnabled)("labelPosition", "after");
412
+ i0.ɵɵadvance(2);
413
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(14, 17, "igo.geo.search.searchResultsGeometry.title"), " ");
414
+ i0.ɵɵadvance(2);
415
+ i0.ɵɵproperty("matTooltip", ctx.reverseSearchCoordsFormatEnabled ? i0.ɵɵpipeBind1(16, 19, "igo.geo.search.reverseCoordFormat.tooltipLatLon") : i0.ɵɵpipeBind1(17, 21, "igo.geo.search.reverseCoordFormat.tooltipLonLat"))("checked", ctx.reverseSearchCoordsFormatEnabled)("labelPosition", "after");
416
+ i0.ɵɵadvance(3);
417
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(19, 23, "igo.geo.search.reverseCoordFormat.title"), " ");
420
418
  } }, dependencies: [i3.NgForOf, i3.NgIf, i3.NgSwitch, i3.NgSwitchCase, i4.MatTooltip, i5.MatIcon, i6.MatButton, i7.MatMenu, i7.MatMenuItem, i7.MatMenuTrigger, i8.MatRadioGroup, i8.MatRadioButton, i9.MatCheckbox, i10.MatDivider, i11.MatSlideToggle, i12.TranslatePipe], styles: [".checkAllButton[_ngcontent-%COMP%]{text-align:center;padding:0 5px}.igo-search-settings-button[_ngcontent-%COMP%] div.mat-button-ripple-round{border-radius:0}.igo-search-settings-radio-group[_ngcontent-%COMP%]{display:flex;flex-direction:column}.igo-search-settings-radio-group[_ngcontent-%COMP%] mat-radio-button[_ngcontent-%COMP%]{margin:5px}.igo-search-settings-checkbox[_ngcontent-%COMP%] mat-radio-button[_ngcontent-%COMP%]{display:flex}.igo-search-settings-search-source[_ngcontent-%COMP%]{display:flex;width:100%}.igo-search-settings-search-source[_ngcontent-%COMP%] mat-checkbox[_ngcontent-%COMP%]{display:flex;margin-left:5px;margin-right:5px}.search-option[_ngcontent-%COMP%]{display:block;margin-right:10px;margin-bottom:15px}.pointer-summary-slide-toggle-container[_ngcontent-%COMP%]{overflow-x:hidden}.pointer-summary-slide-toggle-container[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%]{margin:10px}"], changeDetection: 0 });
421
419
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SearchSettingsComponent, [{
422
420
  type: Component,
423
- args: [{ selector: 'igo-search-settings', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"igo-search-settings\">\n\n <button\n mat-icon-button\n class=\"igo-search-settings-button\"\n color=\"primary\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.search.menu.tooltip' | translate\"\n [matMenuTriggerFor]=\"searchSettingsMenu\">\n <mat-icon svgIcon=\"chevron-down\"></mat-icon>\n </button>\n <mat-menu\n #searchSettingsMenu=\"matMenu\"\n class=\"no-border-radius\">\n <div class=\"checkAllButton\" *ngIf=\"getSearchSources().length>4\">\n <button mat-raised-button\n (click)=\"checkUncheckAllSources($event)\">{{!searchSourcesAllEnabled ? ('igo.geo.search.searchSources.unselectAll' | translate): ('igo.geo.search.searchSources.selectAll' | translate)}}</button>\n </div>\n <ng-container *ngFor=\"let source of getSearchSources()\">\n <span class=\"igo-search-settings-search-source\">\n <mat-checkbox\n class=\"igo-search-settings-checkbox\"\n [checked]=\"source.enabled\"\n [value]=\"source\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"onCheckSearchSource($event, source)\">\n </mat-checkbox>\n <button *ngIf=\"source.settings.length\u00A0>\u00A00\"\n [matMenuTriggerFor]=\"sub_menu\"\n mat-menu-item>{{source.title}}\n </button>\n <button\n mat-menu-item\n *ngIf=\"source.settings.length\u00A0===\u00A00\">\n {{source.title}}\n </button>\n </span>\n <mat-menu #sub_menu=\"matMenu\">\n <ng-container *ngFor=\"let setting of source.settings\">\n <button\n mat-menu-item\n [matMenuTriggerFor]=\"test_sub_menu\">\n {{'igo.geo.search.searchSources.settings.'+ setting.title | translate}}\n </button>\n <mat-menu #test_sub_menu=\"matMenu\"\n [ngSwitch]=\"setting.type\"\n yPosition=\"above\">\n <span *ngSwitchCase=\"'radiobutton'\">\n <mat-radio-group\n class=\"igo-search-settings-radio-group\"\n [value]=\"setting\">\n <mat-radio-button *ngFor=\"let settingValue of setting.values\"\n class=\"mat-typography\"\n [value]=\"settingValue\"\n [matTooltip]=\"getAvailableHashtagsValues(settingValue)\"\n [checked]=\"settingValue.enabled\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"settingsValueCheckedRadioButton($event, source, setting, settingValue)\">\n {{settingValue.title | translate}}\n </mat-radio-button>\n </mat-radio-group>\n </span>\n <span *ngSwitchCase=\"'checkbox'\">\n <div class=\"checkAllButton\" *ngIf=\"setting.values.length\u00A0>\u00A03\">\n <button mat-raised-button\n (click)=\"checkUncheckAll($event, source, setting)\">{{setting.allEnabled || setting.allEnabled === undefined ? ('igo.geo.search.searchSources.settings.unselectAll' | translate): ('igo.geo.search.searchSources.settings.selectAll' | translate)}}</button>\n </div>\n <mat-checkbox *ngFor=\"let settingValue of getAvailableValues(setting)\"\n class=\"mat-menu-item\"\n [style.display]=\"displayBlock\"\n [checked]=\"settingValue.enabled\"\n [value]=\"setting\"\n [matTooltip]=\"getAvailableHashtagsValues(settingValue)\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"settingsValueCheckedCheckbox($event, source, setting, settingValue)\">\n {{settingValue.title | translate}}\n </mat-checkbox>\n </span>\n </mat-menu>\n </ng-container>\n </mat-menu>\n </ng-container>\n <span *ngIf=\"hasPointerReverseSearchSource && !isTouchScreen\">\n <mat-divider></mat-divider>\n <span class=\"pointer-summary-slide-toggle-container mat-typography\">\n <mat-slide-toggle class=\"search-option\" (change)=\"changePointerReverseSearch($event)\" tooltip-position=\"below\"\n matTooltipShowDelay=\"500\" [matTooltip]=\"'igo.geo.search.pointerSearchSummary.tooltip' | translate\"\n (click)=\"$event.stopPropagation()\" [checked]=\"pointerSummaryEnabled\" [labelPosition]=\"'after'\">\n {{'igo.geo.search.pointerSearchSummary.title' | translate}}\n </mat-slide-toggle>\n <mat-slide-toggle class=\"search-option\" (change)=\"changeSearchResultsGeometry($event)\" tooltip-position=\"below\"\n matTooltipShowDelay=\"500\" [matTooltip]=\"'igo.geo.search.searchResultsGeometry.tooltip' | translate\"\n (click)=\"$event.stopPropagation()\" [checked]=\"searchResultsGeometryEnabled\" [labelPosition]=\"'after'\">\n {{'igo.geo.search.searchResultsGeometry.title' | translate}}\n </mat-slide-toggle>\n <mat-slide-toggle class=\"search-option\" (change)=\"reverseSearchCoordsFormat($event)\" tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"reverseSearchCoordsFormatEnabled ? ('igo.geo.search.reverseCoordFormat.tooltipLatLon' | translate)\n : ('igo.geo.search.reverseCoordFormat.tooltipLonLat' | translate)\"\n (click)=\"$event.stopPropagation()\" [checked]=\"reverseSearchCoordsFormatEnabled\" [labelPosition]=\"'after'\">\n {{'igo.geo.search.reverseCoordFormat.title' | translate}}\n </mat-slide-toggle>\n </span>\n </span>\n </mat-menu>\n</div>\n", styles: [".checkAllButton{text-align:center;padding:0 5px}.igo-search-settings-button ::ng-deep div.mat-button-ripple-round{border-radius:0}.igo-search-settings-radio-group{display:flex;flex-direction:column}.igo-search-settings-radio-group mat-radio-button{margin:5px}.igo-search-settings-checkbox mat-radio-button{display:flex}.igo-search-settings-search-source{display:flex;width:100%}.igo-search-settings-search-source mat-checkbox{display:flex;margin-left:5px;margin-right:5px}.search-option{display:block;margin-right:10px;margin-bottom:15px}.pointer-summary-slide-toggle-container{overflow-x:hidden}.pointer-summary-slide-toggle-container mat-slide-toggle{margin:10px}\n"] }]
421
+ args: [{ selector: 'igo-search-settings', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"igo-search-settings\">\r\n\r\n <button\r\n mat-icon-button\r\n class=\"igo-search-settings-button\"\r\n color=\"primary\"\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.geo.search.menu.tooltip' | translate\"\r\n [matMenuTriggerFor]=\"searchSettingsMenu\">\r\n <mat-icon svgIcon=\"chevron-down\"></mat-icon>\r\n </button>\r\n <mat-menu\r\n #searchSettingsMenu=\"matMenu\"\r\n class=\"no-border-radius\">\r\n <div class=\"checkAllButton\" *ngIf=\"getSearchSources().length>4\">\r\n <button mat-raised-button\r\n (click)=\"checkUncheckAllSources($event)\">{{!searchSourcesAllEnabled ? ('igo.geo.search.searchSources.unselectAll' | translate): ('igo.geo.search.searchSources.selectAll' | translate)}}</button>\r\n </div>\r\n <ng-container *ngFor=\"let source of getSearchSources()\">\r\n <span class=\"igo-search-settings-search-source\">\r\n <mat-checkbox\r\n class=\"igo-search-settings-checkbox\"\r\n [checked]=\"source.enabled\"\r\n [value]=\"source\"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"onCheckSearchSource($event, source)\">\r\n </mat-checkbox>\r\n <button *ngIf=\"source.settings.length\u00A0>\u00A00\"\r\n [matMenuTriggerFor]=\"sub_menu\"\r\n mat-menu-item>{{source.title}}\r\n </button>\r\n <button\r\n mat-menu-item\r\n *ngIf=\"source.settings.length\u00A0===\u00A00\">\r\n {{source.title}}\r\n </button>\r\n </span>\r\n <mat-menu #sub_menu=\"matMenu\">\r\n <ng-container *ngFor=\"let setting of source.settings\">\r\n <button\r\n mat-menu-item\r\n [matMenuTriggerFor]=\"test_sub_menu\">\r\n {{'igo.geo.search.searchSources.settings.'+ setting.title | translate}}\r\n </button>\r\n <mat-menu #test_sub_menu=\"matMenu\"\r\n [ngSwitch]=\"setting.type\"\r\n yPosition=\"above\">\r\n <span *ngSwitchCase=\"'radiobutton'\">\r\n <mat-radio-group\r\n class=\"igo-search-settings-radio-group\"\r\n [value]=\"setting\">\r\n <mat-radio-button *ngFor=\"let settingValue of setting.values\"\r\n class=\"mat-typography\"\r\n [value]=\"settingValue\"\r\n [matTooltip]=\"getAvailableHashtagsValues(settingValue)\"\r\n [checked]=\"settingValue.enabled\"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"settingsValueCheckedRadioButton($event, source, setting, settingValue)\">\r\n {{settingValue.title | translate}}\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n </span>\r\n <span *ngSwitchCase=\"'checkbox'\">\r\n <div class=\"checkAllButton\" *ngIf=\"setting.values.length\u00A0>\u00A03\">\r\n <button mat-raised-button\r\n (click)=\"checkUncheckAll($event, source, setting)\">{{setting.allEnabled || setting.allEnabled === undefined ? ('igo.geo.search.searchSources.settings.unselectAll' | translate): ('igo.geo.search.searchSources.settings.selectAll' | translate)}}</button>\r\n </div>\r\n <mat-checkbox *ngFor=\"let settingValue of getAvailableValues(setting)\"\r\n class=\"mat-menu-item\"\r\n [style.display]=\"displayBlock\"\r\n [checked]=\"settingValue.enabled\"\r\n [value]=\"setting\"\r\n [matTooltip]=\"getAvailableHashtagsValues(settingValue)\"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"settingsValueCheckedCheckbox($event, source, setting, settingValue)\">\r\n {{settingValue.title | translate}}\r\n </mat-checkbox>\r\n </span>\r\n </mat-menu>\r\n </ng-container>\r\n </mat-menu>\r\n </ng-container>\r\n <mat-divider></mat-divider>\r\n <span class=\"pointer-summary-slide-toggle-container mat-typography\">\r\n <mat-slide-toggle class=\"search-option\" (change)=\"changePointerReverseSearch($event)\" tooltip-position=\"below\"\r\n *ngIf=\"hasPointerReverseSearchSource && !isTouchScreen\" \r\n matTooltipShowDelay=\"500\" [matTooltip]=\"'igo.geo.search.pointerSearchSummary.tooltip' | translate\"\r\n (click)=\"$event.stopPropagation()\" [checked]=\"pointerSummaryEnabled\" [labelPosition]=\"'after'\">\r\n {{'igo.geo.search.pointerSearchSummary.title' | translate}}\r\n </mat-slide-toggle>\r\n <mat-slide-toggle class=\"search-option\" (change)=\"changeSearchResultsGeometry($event)\" tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\" [matTooltip]=\"'igo.geo.search.searchResultsGeometry.tooltip' | translate\"\r\n (click)=\"$event.stopPropagation()\" [checked]=\"searchResultsGeometryEnabled\" [labelPosition]=\"'after'\">\r\n {{'igo.geo.search.searchResultsGeometry.title' | translate}}\r\n </mat-slide-toggle>\r\n <mat-slide-toggle class=\"search-option\" (change)=\"reverseSearchCoordsFormat($event)\" tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"reverseSearchCoordsFormatEnabled ? ('igo.geo.search.reverseCoordFormat.tooltipLatLon' | translate)\r\n : ('igo.geo.search.reverseCoordFormat.tooltipLonLat' | translate)\"\r\n (click)=\"$event.stopPropagation()\" [checked]=\"reverseSearchCoordsFormatEnabled\" [labelPosition]=\"'after'\">\r\n {{'igo.geo.search.reverseCoordFormat.title' | translate}}\r\n </mat-slide-toggle>\r\n </span>\r\n </mat-menu>\r\n</div>\r\n", styles: [".checkAllButton{text-align:center;padding:0 5px}.igo-search-settings-button ::ng-deep div.mat-button-ripple-round{border-radius:0}.igo-search-settings-radio-group{display:flex;flex-direction:column}.igo-search-settings-radio-group mat-radio-button{margin:5px}.igo-search-settings-checkbox mat-radio-button{display:flex}.igo-search-settings-search-source{display:flex;width:100%}.igo-search-settings-search-source mat-checkbox{display:flex;margin-left:5px;margin-right:5px}.search-option{display:block;margin-right:10px;margin-bottom:15px}.pointer-summary-slide-toggle-container{overflow-x:hidden}.pointer-summary-slide-toggle-container mat-slide-toggle{margin:10px}\n"] }]
424
422
  }], function () { return [{ type: i1.SearchSourceService }, { type: i2.MediaService }, { type: i2.StorageService }]; }, { pointerSummaryEnabled: [{
425
423
  type: Input
426
424
  }], searchResultsGeometryEnabled: [{
@@ -439,4 +437,4 @@ SearchSettingsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Sea
439
437
  type: HostListener,
440
438
  args: ['document:keydown', ['$event']]
441
439
  }] }); })();
442
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXNldHRpbmdzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL3NlYXJjaC9zZWFyY2gtc2V0dGluZ3Mvc2VhcmNoLXNldHRpbmdzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL3NlYXJjaC9zZWFyY2gtc2V0dGluZ3Mvc2VhcmNoLXNldHRpbmdzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFlBQVksRUFDWix1QkFBdUIsRUFFdkIsWUFBWSxFQUNaLEtBQUssRUFDTixNQUFNLGVBQWUsQ0FBQztBQVF2QixPQUFPLEVBQ0wsK0JBQStCLEVBQy9CLGVBQWUsRUFDZixzQkFBc0IsRUFDdkIsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztJQ1I1Qiw4QkFBZ0UsZ0JBQUE7SUFFNUQsMEtBQVMsZUFBQSxxQ0FBOEIsQ0FBQSxJQUFDO0lBQUMsWUFBZ0o7OztJQUFBLGlCQUFTLEVBQUE7OztJQUF6SixlQUFnSjtJQUFoSix5TEFBZ0o7OztJQVd2TCxrQ0FFZ0I7SUFBQSxZQUNoQjtJQUFBLGlCQUFTOzs7O0lBRlAsdUNBQThCO0lBQ2hCLGVBQ2hCO0lBRGdCLCtDQUNoQjs7O0lBQ0Esa0NBRXVDO0lBQ3JDLFlBQ0Y7SUFBQSxpQkFBUzs7O0lBRFAsZUFDRjtJQURFLGdEQUNGOzs7O0lBZ0JVLDRDQU1vRjtJQURsRiw0S0FBUyx3QkFBd0IsSUFBQyxvWUFDeEIsZUFBQSx5RkFBc0UsQ0FBQSxJQUQ5QztJQUVsQyxZQUNGOztJQUFBLGlCQUFtQjs7OztJQU5qQix3Q0FBc0Isb0VBQUEscUNBQUE7SUFLdEIsZUFDRjtJQURFLDZFQUNGOzs7SUFaSiw0QkFBb0MsMEJBQUE7SUFJaEMsd0lBUW1CO0lBQ3JCLGlCQUFr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QUksQ0FBQyxJQUFJLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztJQUNuRixDQUFDOzs4RkEvTlUsdUJBQXVCOzBFQUF2Qix1QkFBdUI7OEdBQXZCLCtCQUEyQjs7UUN4Q3hDLDhCQUFpQyxnQkFBQTs7UUFVN0IsOEJBQTRDO1FBQzlDLGlCQUFTO1FBQ1Qsc0NBRTJCO1FBQ3pCLHdFQUdNO1FBQ0osMEZBK0RlO1FBQ2YsNEVBcUJPO1FBQ1gsaUJBQVcsRUFBQTs7O1FBakdULGVBQXdEO1FBQXhELGdGQUF3RCwwQkFBQTtRQU8zQixlQUFpQztRQUFqQyx3REFBaUM7UUFJM0IsZUFBcUI7UUFBckIsZ0RBQXFCO1FBZ0UvQyxlQUFxRDtRQUFyRCw4RUFBcUQ7O3VGRDNDckQsdUJBQXVCO2NBTm5DLFNBQVM7MkJBQ0UscUJBQXFCLG1CQUdkLHVCQUF1QixDQUFDLE1BQU07OEhBZXRDLHFCQUFxQjtrQkFBN0IsS0FBSztZQUNHLDRCQUE0QjtrQkFBcEMsS0FBSztZQUNHLGdDQUFnQztrQkFBeEMsS0FBSztZQUtJLGtCQUFrQjtrQkFBM0IsTUFBTTtZQUtHLG9CQUFvQjtrQkFBN0IsTUFBTTtZQUtHLDJCQUEyQjtrQkFBcEMsTUFBTTtZQUtHLCtCQUErQjtrQkFBeEMsTUFBTTtZQUdQLG1CQUFtQjtrQkFEbEIsWUFBWTttQkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1hdENoZWNrYm94Q2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHsgTWF0UmFkaW9DaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbyc7XG5cbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBPbkluaXQsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNlYXJjaFNvdXJjZVNlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQvc2VhcmNoLXNvdXJjZS5zZXJ2aWNlJztcbmltcG9ydCB7IFNlYXJjaFNvdXJjZSB9IGZyb20gJy4uL3NoYXJlZC9zb3VyY2VzL3NvdXJjZSc7XG5pbXBvcnQge1xuICBTZWFyY2hTb3VyY2VTZXR0aW5ncyxcbiAgU2V0dGluZ09wdGlvbnNcbn0gZnJvbSAnLi4vc2hhcmVkL3NvdXJjZXMvc291cmNlLmludGVyZmFjZXMnO1xuaW1wb3J0IHtcbiAgc291cmNlQ2FuUmV2ZXJzZVNlYXJjaEFzU3VtbWFyeSxcbiAgc291cmNlQ2FuU2VhcmNoLFxuICBzb3VyY2VDYW5SZXZlcnNlU2VhcmNoXG59IGZyb20gJy4uL3NoYXJlZC9zZWFyY2gudXRpbHMnO1xuaW1wb3J0IHsgTWVkaWFTZXJ2aWNlLCBTdG9yYWdlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IGFsbG93cyBhIHVzZXIgdG8gc2VsZWN0IGEgc2VhcmNoIHR5cGUgeW8gZW5hYmxlLiBJbiBpdCdzXG4gKiBjdXJyZW50IHZlcnNpb24sIG9ubHkgb25lIHNlYXJjaCB0eXBlIGNhbiBiZSBzZWxlY3RlZCBhdCBvbmNlIChyYWRpbykuIElmXG4gKiB0aGlzIGNvbXBvbmVudCB3ZXJlIHRvIHN1cHBvcnQgbW9yZSB0aGFuIG9uZSBzZWFyY2ggc291cmNlIGVuYWJsZWQgKGNoZWNrYm94KSxcbiAqIHRoZSBzZWFyY2hiYXIgY29tcG9uZW50IHdvdWxkIHJlcXVpcmUgYSBzbWFsbCBjaGFuZ2UgdG8gaXQnc1xuICogcGxhY2Vob2xkZXIgZ2V0dGVyLiBUaGUgc2VhcmNoIHNvdXJjZSBzZXJ2aWNlIGFscmVhZHkgc3VwcG9ydHMgaGF2aW5nXG4gKiBtb3JlIHRoYW4gb25lIHNlYXJjaCBzb3VyY2UgZW5hYmxlZC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWdvLXNlYXJjaC1zZXR0aW5ncycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtc2V0dGluZ3MuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWFyY2gtc2V0dGluZ3MuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoU2V0dGluZ3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwdWJsaWMgaGFzUG9pbnRlclJldmVyc2VTZWFyY2hTb3VyY2U6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIHNlYXJjaFNvdXJjZXNBbGxFbmFibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIGJ1ZmZlciA9IFtdO1xuICBwdWJsaWMgbGFzdEtleVRpbWUgPSBEYXRlLm5vdygpO1xuXG4gIHB1YmxpYyBkaXNwbGF5QmxvY2sgPSAnYmxvY2snO1xuXG4gIGdldCBpc1RvdWNoU2NyZWVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm1lZGlhU2VydmljZS5pc1RvdWNoU2NyZWVuKCk7XG4gIH1cblxuICBASW5wdXQoKSBwb2ludGVyU3VtbWFyeUVuYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2VhcmNoUmVzdWx0c0dlb21ldHJ5RW5hYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSByZXZlcnNlU2VhcmNoQ29vcmRzRm9ybWF0RW5hYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGVuYWJsZWQgc2VhcmNoIHNvdXJjZSBjaGFuZ2VzXG4gICAqL1xuICBAT3V0cHV0KCkgc2VhcmNoU291cmNlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTZWFyY2hTb3VyY2U+KCk7XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgcG9pbnRlciBzdW1tYXJ5IGlzIGFjdGl2YXRlZFxuICAgKi9cbiAgQE91dHB1dCgpIHBvaW50ZXJTdW1tYXJ5U3RhdHVzID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHNob3cgZ2VvbWV0cnkgc3VtbWFyeSBpcyBjaGFuZ2VkXG4gICAqL1xuICBAT3V0cHV0KCkgc2VhcmNoUmVzdWx0c0dlb21ldHJ5U3RhdHVzID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGNvb3JkcyBmb3JtYXQgaXMgY2hhbmdlZFxuICAgKi9cbiAgQE91dHB1dCgpIHJldmVyc2VTZWFyY2hDb29yZHNGb3JtYXRTdGF0dXMgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIGhhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRjInKSB7XG4gICAgICB0aGlzLnBvaW50ZXJTdW1tYXJ5RW5hYmxlZCA9ICF0aGlzLnBvaW50ZXJTdW1tYXJ5RW5hYmxlZDtcbiAgICAgIHRoaXMucG9pbnRlclN1bW1hcnlTdGF0dXMuZW1pdCh0aGlzLnBvaW50ZXJTdW1tYXJ5RW5hYmxlZCk7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzZWFyY2hTb3VyY2VTZXJ2aWNlOiBTZWFyY2hTb3VyY2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgbWVkaWFTZXJ2aWNlOiBNZWRpYVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaGFzUG9pbnRlclJldmVyc2VTZWFyY2hTb3VyY2UgPSB0aGlzLmhhc1JldmVyc2VTZWFyY2hTb3VyY2VzRm9yUG9pbnRlclN1bW1hcnkoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYWxsIHNlYXJjaCBzb3VyY2VzXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZ2V0U2VhcmNoU291cmNlcygpOiBTZWFyY2hTb3VyY2VbXSB7XG4gICAgY29uc3QgdGV4dFNlYXJjaFNvdXJjZXMgPSB0aGlzLnNlYXJjaFNvdXJjZVNlcnZpY2VcbiAgICAgIC5nZXRTb3VyY2VzKClcbiAgICAgIC5maWx0ZXIoc291cmNlQ2FuU2VhcmNoKVxuICAgICAgLmZpbHRlcigocykgPT4gcy5hdmFpbGFibGUgJiYgcy5nZXRJZCgpICE9PSAnbWFwJyAmJiBzLnNob3dJblNldHRpbmdzKTtcblxuICAgIGNvbnN0IHJldmVyc2VTZWFyY2hTb3VyY2VzID0gdGhpcy5zZWFyY2hTb3VyY2VTZXJ2aWNlXG4gICAgICAuZ2V0U291cmNlcygpXG4gICAgICAuZmlsdGVyKHNvdXJjZUNhblJldmVyc2VTZWFyY2gpXG4gICAgICAuZmlsdGVyKChzKSA9PiBzLmF2YWlsYWJsZSAmJiBzLmdldElkKCkgIT09ICdtYXAnICYmIHMuc2hvd0luU2V0dGluZ3MpO1xuICAgIGNvbnN0IHNvdXJjZXMgPSB0ZXh0U2VhcmNoU291cmNlcy5jb25jYXQocmV2ZXJzZVNlYXJjaFNvdXJjZXMpO1xuICAgIHRoaXMuY29tcHV0ZVNvdXJjZXNDaGVja0FsbEJlaGF2aW9yKHNvdXJjZXMpO1xuICAgIHJldHVybiBzb3VyY2VzO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbGwgc2VhcmNoIHNvdXJjZXMgdXNhYmxlIGZvciBwb2ludGVyIHN1bW1hcnlcbiAgICogQGludGVybmFsXG4gICAqL1xuICBoYXNSZXZlcnNlU2VhcmNoU291cmNlc0ZvclBvaW50ZXJTdW1tYXJ5KCk6IGJvb2xlYW4ge1xuICAgIGlmIChcbiAgICAgIHRoaXMuc2VhcmNoU291cmNlU2VydmljZVxuICAgICAgICAuZ2V0RW5hYmxlZFNvdXJjZXMoKVxuICAgICAgICAuZmlsdGVyKHNvdXJjZUNhblJldmVyc2VTZWFyY2hBc1N1bW1hcnkpLmxlbmd0aFxuICAgICkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVHJpZ2dlcmVkIHdoZW4gYSBzZXR0aW5nIGlzIGNoZWNrZWQgKGNoZWNrYm94IHN0eWxlKVxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHNldHRpbmdzVmFsdWVDaGVja2VkQ2hlY2tib3goXG4gICAgZXZlbnQ6IE1hdENoZWNrYm94Q2hhbmdlLFxuICAgIHNvdXJjZTogU2VhcmNoU291cmNlLFxuICAgIHNldHRpbmc6IFNlYXJjaFNvdXJjZVNldHRpbmdzLFxuICAgIHNldHRpbmdWYWx1ZTogU2V0dGluZ09wdGlvbnNcbiAgKSB7XG4gICAgc2V0dGluZ1ZhbHVlLmVuYWJsZWQgPSBldmVudC5jaGVja2VkO1xuICAgIHNvdXJjZS5zZXRQYXJhbUZyb21TZXR0aW5nKHNldHRpbmcpO1xuICAgIHRoaXMuc2VhcmNoU291cmNlQ2hhbmdlLmVtaXQoc291cmNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmluZyB0aGUgYWN0aW9uIHRvIGRvIGZvciBjaGVjay91bmNoZWNrIGNoZWNrYm94ZXMgKHNldHRpbmdzKVxuICAgKiByZXR1cm4gdHJ1ZSBpZiBhbGwgY2hlY2tib3ggbXVzdCBiZSBjaGVja2VkXG4gICAqIHJldHVybiBmYWxzZSBpZiBhbGwgY2hlY2tib3ggbXVzdCBiZSB1bmNoZWNrZWRcbiAgICogQGludGVybmFsXG4gICAqL1xuICBjb21wdXRlU2V0dGluZ0NoZWNrQWxsQmVoYXZpb3Ioc2V0dGluZzogU2VhcmNoU291cmNlU2V0dGluZ3MpIHtcbiAgICBpZiAoc2V0dGluZy5hbGxFbmFibGVkID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmIChzZXR0aW5nLnZhbHVlcy5maW5kKChzZXR0aW5nVmFsdWUpID0+IHNldHRpbmdWYWx1ZS5lbmFibGVkKSkge1xuICAgICAgICBzZXR0aW5nLmFsbEVuYWJsZWQgPSBmYWxzZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldHRpbmcuYWxsRW5hYmxlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldHRpbmcuYWxsRW5hYmxlZCA9ICFzZXR0aW5nLmFsbEVuYWJsZWQ7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIERlZmluaW5nIHRoZSBhY3Rpb24gdG8gZG8gZm9yIGNoZWNrL3VuY2hlY2sgY2hlY2tib3hlcyAoc291cmNlcylcbiAgICogcmV0dXJuIHRydWUgaWYgYWxsIGNoZWNrYm94IG11c3QgYmUgY2hlY2tlZFxuICAgKiByZXR1cm4gZmFsc2UgaWYgYWxsIGNoZWNrYm94IG11c3QgYmUgdW5jaGVja2VkXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgY29tcHV0ZVNvdXJjZXNDaGVja0FsbEJlaGF2aW9yKHNvdXJjZXM6IFNlYXJjaFNvdXJjZVtdKSB7XG4gICAgY29uc3QgZW5hYmxlZFNvdXJjZXNDbnQgPSBzb3VyY2VzLmZpbHRlcigoc291cmNlKSA9PiBzb3VyY2UuZW5hYmxlZCkubGVuZ3RoO1xuICAgIGNvbnN0IGRpc2FibGVkU291cmNlc0NudCA9IHNvdXJjZXMuZmlsdGVyKChzb3VyY2UpID0+ICFzb3VyY2UuZW5hYmxlZClcbiAgICAgIC5sZW5ndGg7XG4gICAgdGhpcy5zZWFyY2hTb3VyY2VzQWxsRW5hYmxlZCA9XG4gICAgICBlbmFibGVkU291cmNlc0NudCA+PSBkaXNhYmxlZFNvdXJjZXNDbnQgPyBmYWxzZSA6IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogVHJpZ2dlcmVkIHdoZW4gdGhlIGNoZWNrIGFsbCAvIHVuY2hlY2sgYWxsIHR5cGUgaXMgY2xpY2tlZCxcbiAgICogQGludGVybmFsXG4gICAqL1xuICBjaGVja1VuY2hlY2tBbGwoZXZlbnQsIHNvdXJjZTogU2VhcmNoU291cmNlLCBzZXR0aW5nOiBTZWFyY2hTb3VyY2VTZXR0aW5ncykge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuY29tcHV0ZVNldHRpbmdDaGVja0FsbEJlaGF2aW9yKHNldHRpbmcpO1xuICAgIHNldHRpbmcudmFsdWVzLmZvckVhY2goKHNldHRpbmdWYWx1ZSkgPT4ge1xuICAgICAgc2V0dGluZ1ZhbHVlLmVuYWJsZWQgPSBzZXR0aW5nLmFsbEVuYWJsZWQ7XG4gICAgfSk7XG4gICAgc291cmNlLnNldFBhcmFtRnJvbVNldHRpbmcoc2V0dGluZyk7XG4gICAgdGhpcy5zZWFyY2hTb3VyY2VDaGFuZ2UuZW1pdChzb3VyY2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyaWdnZXJlZCB3aGVuIHRoZSBjaGVjayBhbGwgLyB1bmNoZWNrIGFsbCB0eXBlIGlzIGNsaWNrZWQsXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgY2hlY2tVbmNoZWNrQWxsU291cmNlcyhldmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuZ2V0U2VhcmNoU291cmNlcygpLm1hcCgoc291cmNlKSA9PiB7XG4gICAgICBzb3VyY2UuZW5hYmxlZCA9IHRoaXMuc2VhcmNoU291cmNlc0FsbEVuYWJsZWQ7XG4gICAgICB0aGlzLnNlYXJjaFNvdXJjZUNoYW5nZS5lbWl0KHNvdXJjZSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVHJpZ2dlcmVkIHdoZW4gYSBzZXR0aW5nIGlzIGNoZWNrZWQgKHJhZGlvYnV0dG9uIHN0eWxlKVxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHNldHRpbmdzVmFsdWVDaGVja2VkUmFkaW9CdXR0b24oXG4gICAgZXZlbnQ6IE1hdFJhZGlvQ2hhbmdlLFxuICAgIHNvdXJjZTogU2VhcmNoU291cmNlLFxuICAgIHNldHRpbmc6IFNlYXJjaFNvdXJjZVNldHRpbmdzLFxuICAgIHNldHRpbmdWYWx1ZTogU2V0dGluZ09wdGlvbnNcbiAgKSB7XG4gICAgc2V0dGluZy52YWx1ZXMuZm9yRWFjaCgoY29uZikgPT4ge1xuICAgICAgaWYgKGNvbmYudmFsdWUgIT09IHNldHRpbmdWYWx1ZS52YWx1ZSkge1xuICAgICAgICBjb25mLmVuYWJsZWQgPSAhZXZlbnQuc291cmNlLmNoZWNrZWQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25mLmVuYWJsZWQgPSBldmVudC5zb3VyY2UuY2hlY2tlZDtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBzb3VyY2Uuc2V0UGFyYW1Gcm9tU2V0dGluZyhzZXR0aW5nKTtcbiAgICB0aGlzLnNlYXJjaFNvdXJjZUNoYW5nZS5lbWl0KHNvdXJjZSk7XG4gIH1cblxuICBvbkNoZWNrU2VhcmNoU291cmNlKGV2ZW50OiBNYXRDaGVja2JveENoYW5nZSwgc291cmNlOiBTZWFyY2hTb3VyY2UpIHtcbiAgICBzb3VyY2UuZW5hYmxlZCA9IGV2ZW50LmNoZWNrZWQ7XG4gICAgY29uc3Qgc3RvcmFnZSA9ICh0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldChzb3VyY2UuZ2V0SWQoKSArICcub3B0aW9ucycpIHx8IHt9KSBhcyBTZXR0aW5nT3B0aW9ucztcbiAgICBzdG9yYWdlLmVuYWJsZWQgPSBzb3VyY2UuZW5hYmxlZDtcbiAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldChcbiAgICAgIHNvdXJjZS5nZXRJZCgpICsgJy5vcHRpb25zJyxcbiAgICAgIHN0b3JhZ2VcbiAgICApO1xuICAgIHRoaXMuc2VhcmNoU291cmNlQ2hhbmdlLmVtaXQoc291cmNlKTtcbiAgfVxuXG4gIGdldEF2YWlsYWJsZVZhbHVlcyhzZXR0aW5nOiBTZWFyY2hTb3VyY2VTZXR0aW5ncykge1xuICAgIHJldHVybiBzZXR0aW5nLnZhbHVlcy5maWx0ZXIoKHMpID0+IHMuYXZhaWxhYmxlICE9PSBmYWxzZSk7XG4gIH1cblxuICBnZXRBdmFpbGFibGVIYXNodGFnc1ZhbHVlcyhzZXR0aW5nOiBTZXR0aW5nT3B0aW9ucykge1xuICAgIGlmIChzZXR0aW5nLmhhc2h0YWdzKSB7XG4gICAgICByZXR1cm4gc2V0dGluZy5oYXNodGFncy5tYXAoKGgpID0+ICcjJyArIGgpLmpvaW4oJywgJyk7XG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuXG4gIHN0b3BQcm9wYWdhdGlvbihldmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgY2hhbmdlUG9pbnRlclJldmVyc2VTZWFyY2goZXZlbnQpIHtcbiAgICB0aGlzLnBvaW50ZXJTdW1tYXJ5RW5hYmxlZCA9IGV2ZW50LmNoZWNrZWQ7XG4gICAgdGhpcy5wb2ludGVyU3VtbWFyeVN0YXR1cy5lbWl0KHRoaXMucG9pbnRlclN1bW1hcnlFbmFibGVkKTtcbiAgfVxuXG4gIGNoYW5nZVNlYXJjaFJlc3VsdHNHZW9tZXRyeShldmVudCkge1xuICAgIHRoaXMuc2VhcmNoUmVzdWx0c0dlb21ldHJ5RW5hYmxlZCA9IGV2ZW50LmNoZWNrZWQ7XG4gICAgdGhpcy5zZWFyY2hSZXN1bHRzR2VvbWV0cnlTdGF0dXMuZW1pdCh0aGlzLnNlYXJjaFJlc3VsdHNHZW9tZXRyeUVuYWJsZWQpO1xuICB9XG5cbiAgcmV2ZXJzZVNlYXJjaENvb3Jkc0Zvcm1hdChldmVudCkge1xuICAgIHRoaXMucmV2ZXJzZVNlYXJjaENvb3Jkc0Zvcm1hdEVuYWJsZWQgPSBldmVudC5jaGVja2VkO1xuICAgIHRoaXMucmV2ZXJzZVNlYXJjaENvb3Jkc0Zvcm1hdFN0YXR1cy5lbWl0KHRoaXMucmV2ZXJzZVNlYXJjaENvb3Jkc0Zvcm1hdEVuYWJsZWQpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiaWdvLXNlYXJjaC1zZXR0aW5nc1wiPlxuXG4gIDxidXR0b25cbiAgICBtYXQtaWNvbi1idXR0b25cbiAgICBjbGFzcz1cImlnby1zZWFyY2gtc2V0dGluZ3MtYnV0dG9uXCJcbiAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXG4gICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uc2VhcmNoLm1lbnUudG9vbHRpcCcgfCB0cmFuc2xhdGVcIlxuICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJzZWFyY2hTZXR0aW5nc01lbnVcIj5cbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cImNoZXZyb24tZG93blwiPjwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuICA8bWF0LW1lbnVcbiAgICAjc2VhcmNoU2V0dGluZ3NNZW51PVwibWF0TWVudVwiXG4gICAgY2xhc3M9XCJuby1ib3JkZXItcmFkaXVzXCI+XG4gICAgPGRpdiBjbGFzcz1cImNoZWNrQWxsQnV0dG9uXCIgKm5nSWY9XCJnZXRTZWFyY2hTb3VyY2VzKCkubGVuZ3RoPjRcIj5cbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b25cbiAgICAgICAgKGNsaWNrKT1cImNoZWNrVW5jaGVja0FsbFNvdXJjZXMoJGV2ZW50KVwiPnt7IXNlYXJjaFNvdXJjZXNBbGxFbmFibGVkICA/ICgnaWdvLmdlby5zZWFyY2guc2VhcmNoU291cmNlcy51bnNlbGVjdEFsbCcgfCB0cmFuc2xhdGUpOiAoJ2lnby5nZW8uc2VhcmNoLnNlYXJjaFNvdXJjZXMuc2VsZWN0QWxsJyB8IHRyYW5zbGF0ZSl9fTwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc291cmNlIG9mIGdldFNlYXJjaFNvdXJjZXMoKVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImlnby1zZWFyY2gtc2V0dGluZ3Mtc2VhcmNoLXNvdXJjZVwiPlxuICAgICAgICAgIDxtYXQtY2hlY2tib3hcbiAgICAgICAgICAgIGNsYXNzPVwiaWdvLXNlYXJjaC1zZXR0aW5ncy1jaGVja2JveFwiXG4gICAgICAgICAgICBbY2hlY2tlZF09XCJzb3VyY2UuZW5hYmxlZFwiXG4gICAgICAgICAgICBbdmFsdWVdPVwic291cmNlXCJcbiAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkNoZWNrU2VhcmNoU291cmNlKCRldmVudCwgc291cmNlKVwiPlxuICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxuICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJzb3VyY2Uuc2V0dGluZ3MubGVuZ3RowqA+wqAwXCJcbiAgICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJzdWJfbWVudVwiXG4gICAgICAgICAgICBtYXQtbWVudS1pdGVtPnt7c291cmNlLnRpdGxlfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgICAgICAqbmdJZj1cInNvdXJjZS5zZXR0aW5ncy5sZW5ndGjCoD09PcKgMFwiPlxuICAgICAgICAgICAge3tzb3VyY2UudGl0bGV9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPG1hdC1tZW51ICNzdWJfbWVudT1cIm1hdE1lbnVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHNldHRpbmcgb2Ygc291cmNlLnNldHRpbmdzXCI+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJ0ZXN0X3N1Yl9tZW51XCI+XG4gICAgICAgICAgICAgICAge3snaWdvLmdlby5zZWFyY2guc2VhcmNoU291cmNlcy5zZXR0aW5ncy4nKyBzZXR0aW5nLnRpdGxlIHwgdHJhbnNsYXRlfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDxtYXQtbWVudSAjdGVzdF9zdWJfbWVudT1cIm1hdE1lbnVcIlxuICAgICAgICAgICAgICAgIFtuZ1N3aXRjaF09XCJzZXR0aW5nLnR5cGVcIlxuICAgICAgICAgICAgICAgIHlQb3NpdGlvbj1cImFib3ZlXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidyYWRpb2J1dHRvbidcIj5cbiAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tZ3JvdXBcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpZ28tc2VhcmNoLXNldHRpbmdzLXJhZGlvLWdyb3VwXCJcbiAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInNldHRpbmdcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gKm5nRm9yPVwibGV0IHNldHRpbmdWYWx1ZSBvZiBzZXR0aW5nLnZhbHVlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXQtdHlwb2dyYXBoeVwiXG4gICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInNldHRpbmdWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiZ2V0QXZhaWxhYmxlSGFzaHRhZ3NWYWx1ZXMoc2V0dGluZ1ZhbHVlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwic2V0dGluZ1ZhbHVlLmVuYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwic2V0dGluZ3NWYWx1ZUNoZWNrZWRSYWRpb0J1dHRvbigkZXZlbnQsIHNvdXJjZSwgc2V0dGluZywgc2V0dGluZ1ZhbHVlKVwiPlxuICAgICAgICAgICAgICAgICAgICAgIHt7c2V0dGluZ1ZhbHVlLnRpdGxlIHwgdHJhbnNsYXRlfX1cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9tYXQtcmFkaW8tZ3JvdXA+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInY2hlY2tib3gnXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tBbGxCdXR0b25cIiAqbmdJZj1cInNldHRpbmcudmFsdWVzLmxlbmd0aMKgPsKgM1wiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNoZWNrVW5jaGVja0FsbCgkZXZlbnQsIHNvdXJjZSwgc2V0dGluZylcIj57e3NldHRpbmcuYWxsRW5hYmxlZCB8fCBzZXR0aW5nLmFsbEVuYWJsZWQgPT09IHVuZGVmaW5lZCAgPyAoJ2lnby5nZW8uc2VhcmNoLnNlYXJjaFNvdXJjZXMuc2V0dGluZ3MudW5zZWxlY3RBbGwnIHwgdHJhbnNsYXRlKTogKCdpZ28uZ2VvLnNlYXJjaC5zZWFyY2hTb3VyY2VzLnNldHRpbmdzLnNlbGVjdEFsbCcgfCB0cmFuc2xhdGUpfX08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveCAqbmdGb3I9XCJsZXQgc2V0dGluZ1ZhbHVlIG9mIGdldEF2YWlsYWJsZVZhbHVlcyhzZXR0aW5nKVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWF0LW1lbnUtaXRlbVwiXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cImRpc3BsYXlCbG9ja1wiXG4gICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInNldHRpbmdWYWx1ZS5lbmFibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInNldHRpbmdcIlxuICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJnZXRBdmFpbGFibGVIYXNodGFnc1ZhbHVlcyhzZXR0aW5nVmFsdWUpXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwic2V0dGluZ3NWYWx1ZUNoZWNrZWRDaGVja2JveCgkZXZlbnQsIHNvdXJjZSwgc2V0dGluZywgc2V0dGluZ1ZhbHVlKVwiPlxuICAgICAgICAgICAgICAgICAgICB7e3NldHRpbmdWYWx1ZS50aXRsZSB8IHRyYW5zbGF0ZX19XG4gICAgICAgICAgICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvbWF0LW1lbnU+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L21hdC1tZW51PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8c3BhbiAqbmdJZj1cImhhc1BvaW50ZXJSZXZlcnNlU2VhcmNoU291cmNlICYmICFpc1RvdWNoU2NyZWVuXCI+XG4gICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInBvaW50ZXItc3VtbWFyeS1zbGlkZS10b2dnbGUtY29udGFpbmVyIG1hdC10eXBvZ3JhcGh5XCI+XG4gICAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgY2xhc3M9XCJzZWFyY2gtb3B0aW9uXCIgKGNoYW5nZSk9XCJjaGFuZ2VQb2ludGVyUmV2ZXJzZVNlYXJjaCgkZXZlbnQpXCIgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcbiAgICAgICAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIiBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5zZWFyY2gucG9pbnRlclNlYXJjaFN1bW1hcnkudG9vbHRpcCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiIFtjaGVja2VkXT1cInBvaW50ZXJTdW1tYXJ5RW5hYmxlZFwiIFtsYWJlbFBvc2l0aW9uXT1cIidhZnRlcidcIj5cbiAgICAgICAgICAgIHt7J2lnby5nZW8uc2VhcmNoLnBvaW50ZXJTZWFyY2hTdW1tYXJ5LnRpdGxlJyB8IHRyYW5zbGF0ZX19XG4gICAgICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIGNsYXNzPVwic2VhcmNoLW9wdGlvblwiIChjaGFuZ2UpPVwiY2hhbmdlU2VhcmNoUmVzdWx0c0dlb21ldHJ5KCRldmVudClcIiB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxuICAgICAgICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLnNlYXJjaC5zZWFyY2hSZXN1bHRzR2VvbWV0cnkudG9vbHRpcCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiIFtjaGVja2VkXT1cInNlYXJjaFJlc3VsdHNHZW9tZXRyeUVuYWJsZWRcIiBbbGFiZWxQb3NpdGlvbl09XCInYWZ0ZXInXCI+XG4gICAgICAgICAgICB7eydpZ28uZ2VvLnNlYXJjaC5zZWFyY2hSZXN1bHRzR2VvbWV0cnkudGl0bGUnIHwgdHJhbnNsYXRlfX1cbiAgICAgICAgICA8L21hdC1zbGlkZS10b2dnbGU+XG4gICAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgY2xhc3M9XCJzZWFyY2gtb3B0aW9uXCIgKGNoYW5nZSk9XCJyZXZlcnNlU2VhcmNoQ29vcmRzRm9ybWF0KCRldmVudClcIiB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxuICAgICAgICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJyZXZlcnNlU2VhcmNoQ29vcmRzRm9ybWF0RW5hYmxlZCA/ICgnaWdvLmdlby5zZWFyY2gucmV2ZXJzZUNvb3JkRm9ybWF0LnRvb2x0aXBMYXRMb24nIHwgdHJhbnNsYXRlKVxuICAgICAgICAgICAgOiAoJ2lnby5nZW8uc2VhcmNoLnJldmVyc2VDb29yZEZvcm1hdC50b29sdGlwTG9uTGF0JyB8IHRyYW5zbGF0ZSlcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiIFtjaGVja2VkXT1cInJldmVyc2VTZWFyY2hDb29yZHNGb3JtYXRFbmFibGVkXCIgW2xhYmVsUG9zaXRpb25dPVwiJ2FmdGVyJ1wiPlxuICAgICAgICAgICAge3snaWdvLmdlby5zZWFyY2gucmV2ZXJzZUNvb3JkRm9ybWF0LnRpdGxlJyB8IHRyYW5zbGF0ZX19XG4gICAgICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gIDwvbWF0LW1lbnU+XG48L2Rpdj5cbiJdfQ==
440
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXNldHRpbmdzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL3NlYXJjaC9zZWFyY2gtc2V0dGluZ3Mvc2VhcmNoLXNldHRpbmdzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL3NlYXJjaC9zZWFyY2gtc2V0dGluZ3Mvc2VhcmNoLXNldHRpbmdzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFlBQVksRUFDWix1QkFBdUIsRUFFdkIsWUFBWSxFQUNaLEtBQUssRUFDTixNQUFNLGVBQWUsQ0FBQztBQVF2QixPQUFPLEVBQ0wsK0JBQStCLEVBQy9CLGVBQWUsRUFDZixzQkFBc0IsRUFDdkIsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztJQ1I1QiwrQkFBZ0UsaUJBQUE7SUFFNUQsMEtBQVMsZUFBQSxxQ0FBOEIsQ0FBQSxJQUFDO0lBQUMsWUFBZ0o7OztJQUFBLGlCQUFTLEVBQUE7OztJQUF6SixlQUFnSjtJQUFoSix5TEFBZ0o7OztJQVd2TCxrQ0FFZ0I7SUFBQSxZQUNoQjtJQUFBLGlCQUFTOzs7O0lBRlAsdUNBQThCO0lBQ2hCLGVBQ2hCO0lBRGdCLCtDQUNoQjs7O0lBQ0Esa0NBRXVDO0lBQ3JDLFlBQ0Y7SUFBQSxpQkFBUzs7O0lBRFAsZUFDRjtJQURFLGdEQUNGOzs7O0lBZ0JVLDRDQU1vRjtJQURsRiw0S0FBUyx3QkFBd0IsSUFBQyxvWUFDeEIsZUFBQSx5RkFBc0UsQ0FBQSxJQUQ5QztJQUVsQyxZQUNGOztJQUFBLGlCQUFtQjs7OztJQU5qQix3Q0FBc0Isb0VBQUEscUNBQUE7SUFLdEIsZUFDRjtJQURFLDZFQUNGOzs7SUFaSiw0QkFBb0MsMEJBQUE7SUFJaEMsd0lBUW1CO0lBQ3JCLGlCQUFr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LGFBQ0Y7O1FBQUEsaUJBQW1CLEVBQUEsRUFBQSxFQUFBOzs7UUE5RnpCLGVBQXdEO1FBQXhELGlGQUF3RCwwQkFBQTtRQU8zQixlQUFpQztRQUFqQyx3REFBaUM7UUFJM0IsZUFBcUI7UUFBckIsZ0RBQXFCO1FBbUUvQyxlQUFxRDtRQUFyRCw4RUFBcUQ7UUFNNUIsZUFBeUU7UUFBekUsbUdBQXlFLDZDQUFBLDBCQUFBO1FBRW5HLGVBQ0Y7UUFERSxxR0FDRjtRQUdFLGVBQ2tFO1FBRGxFLHlOQUNrRSxpREFBQSwwQkFBQTtRQUVsRSxlQUNGO1FBREUsa0dBQ0Y7O3VGRDlERyx1QkFBdUI7Y0FObkMsU0FBUzsyQkFDRSxxQkFBcUIsbUJBR2QsdUJBQXVCLENBQUMsTUFBTTs4SEFldEMscUJBQXFCO2tCQUE3QixLQUFLO1lBQ0csNEJBQTRCO2tCQUFwQyxLQUFLO1lBQ0csZ0NBQWdDO2tCQUF4QyxLQUFLO1lBS0ksa0JBQWtCO2tCQUEzQixNQUFNO1lBS0csb0JBQW9CO2tCQUE3QixNQUFNO1lBS0csMkJBQTJCO2tCQUFwQyxNQUFNO1lBS0csK0JBQStCO2tCQUF4QyxNQUFNO1lBR1AsbUJBQW1CO2tCQURsQixZQUFZO21CQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWF0Q2hlY2tib3hDaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XHJcbmltcG9ydCB7IE1hdFJhZGlvQ2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcmFkaW8nO1xyXG5cclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBPbkluaXQsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIElucHV0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBTZWFyY2hTb3VyY2VTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL3NlYXJjaC1zb3VyY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFNlYXJjaFNvdXJjZSB9IGZyb20gJy4uL3NoYXJlZC9zb3VyY2VzL3NvdXJjZSc7XHJcbmltcG9ydCB7XHJcbiAgU2VhcmNoU291cmNlU2V0dGluZ3MsXHJcbiAgU2V0dGluZ09wdGlvbnNcclxufSBmcm9tICcuLi9zaGFyZWQvc291cmNlcy9zb3VyY2UuaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7XHJcbiAgc291cmNlQ2FuUmV2ZXJzZVNlYXJjaEFzU3VtbWFyeSxcclxuICBzb3VyY2VDYW5TZWFyY2gsXHJcbiAgc291cmNlQ2FuUmV2ZXJzZVNlYXJjaFxyXG59IGZyb20gJy4uL3NoYXJlZC9zZWFyY2gudXRpbHMnO1xyXG5pbXBvcnQgeyBNZWRpYVNlcnZpY2UsIFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcblxyXG4vKipcclxuICogVGhpcyBjb21wb25lbnQgYWxsb3dzIGEgdXNlciB0byBzZWxlY3QgYSBzZWFyY2ggdHlwZSB5byBlbmFibGUuIEluIGl0J3NcclxuICogY3VycmVudCB2ZXJzaW9uLCBvbmx5IG9uZSBzZWFyY2ggdHlwZSBjYW4gYmUgc2VsZWN0ZWQgYXQgb25jZSAocmFkaW8pLiBJZlxyXG4gKiB0aGlzIGNvbXBvbmVudCB3ZXJlIHRvIHN1cHBvcnQgbW9yZSB0aGFuIG9uZSBzZWFyY2ggc291cmNlIGVuYWJsZWQgKGNoZWNrYm94KSxcclxuICogdGhlIHNlYXJjaGJhciBjb21wb25lbnQgd291bGQgcmVxdWlyZSBhIHNtYWxsIGNoYW5nZSB0byBpdCdzXHJcbiAqIHBsYWNlaG9sZGVyIGdldHRlci4gVGhlIHNlYXJjaCBzb3VyY2Ugc2VydmljZSBhbHJlYWR5IHN1cHBvcnRzIGhhdmluZ1xyXG4gKiBtb3JlIHRoYW4gb25lIHNlYXJjaCBzb3VyY2UgZW5hYmxlZC5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWdvLXNlYXJjaC1zZXR0aW5ncycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1zZXR0aW5ncy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2VhcmNoLXNldHRpbmdzLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlYXJjaFNldHRpbmdzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBwdWJsaWMgaGFzUG9pbnRlclJldmVyc2VTZWFyY2hTb3VyY2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2VhcmNoU291cmNlc0FsbEVuYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHVibGljIGJ1ZmZlciA9IFtdO1xyXG4gIHB1YmxpYyBsYXN0S2V5VGltZSA9IERhdGUubm93KCk7XHJcblxyXG4gIHB1YmxpYyBkaXNwbGF5QmxvY2sgPSAnYmxvY2snO1xyXG5cclxuICBnZXQgaXNUb3VjaFNjcmVlbigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLm1lZGlhU2VydmljZS5pc1RvdWNoU2NyZWVuKCk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBwb2ludGVyU3VtbWFyeUVuYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZWFyY2hSZXN1bHRzR2VvbWV0cnlFbmFibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcmV2ZXJzZVNlYXJjaENvb3Jkc0Zvcm1hdEVuYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBlbmFibGVkIHNlYXJjaCBzb3VyY2UgY2hhbmdlc1xyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBzZWFyY2hTb3VyY2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNlYXJjaFNvdXJjZT4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBwb2ludGVyIHN1bW1hcnkgaXMgYWN0aXZhdGVkXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHBvaW50ZXJTdW1tYXJ5U3RhdHVzID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICAvKipcclxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHNob3cgZ2VvbWV0cnkgc3VtbWFyeSBpcyBjaGFuZ2VkXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHNlYXJjaFJlc3VsdHNHZW9tZXRyeVN0YXR1cyA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBjb29yZHMgZm9ybWF0IGlzIGNoYW5nZWRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgcmV2ZXJzZVNlYXJjaENvb3Jkc0Zvcm1hdFN0YXR1cyA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXHJcbiAgaGFuZGxlS2V5Ym9hcmRFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0YyJykge1xyXG4gICAgICB0aGlzLnBvaW50ZXJTdW1tYXJ5RW5hYmxlZCA9ICF0aGlzLnBvaW50ZXJTdW1tYXJ5RW5hYmxlZDtcclxuICAgICAgdGhpcy5wb2ludGVyU3VtbWFyeVN0YXR1cy5lbWl0KHRoaXMucG9pbnRlclN1bW1hcnlFbmFibGVkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBzZWFyY2hTb3VyY2VTZXJ2aWNlOiBTZWFyY2hTb3VyY2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtZWRpYVNlcnZpY2U6IE1lZGlhU2VydmljZSxcclxuICAgIHByaXZhdGUgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaGFzUG9pbnRlclJldmVyc2VTZWFyY2hTb3VyY2UgPSB0aGlzLmhhc1JldmVyc2VTZWFyY2hTb3VyY2VzRm9yUG9pbnRlclN1bW1hcnkoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBhbGwgc2VhcmNoIHNvdXJjZXNcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBnZXRTZWFyY2hTb3VyY2VzKCk6IFNlYXJjaFNvdXJjZVtdIHtcclxuICAgIGNvbnN0IHRleHRTZWFyY2hTb3VyY2VzID0gdGhpcy5zZWFyY2hTb3VyY2VTZXJ2aWNlXHJcbiAgICAgIC5nZXRTb3VyY2VzKClcclxuICAgICAgLmZpbHRlcihzb3VyY2VDYW5TZWFyY2gpXHJcbiAgICAgIC5maWx0ZXIoKHMpID0+IHMuYXZhaWxhYmxlICYmIHMuZ2V0SWQoKSAhPT0gJ21hcCcgJiYgcy5zaG93SW5TZXR0aW5ncyk7XHJcblxyXG4gICAgY29uc3QgcmV2ZXJzZVNlYXJjaFNvdXJjZXMgPSB0aGlzLnNlYXJjaFNvdXJjZVNlcnZpY2VcclxuICAgICAgLmdldFNvdXJjZXMoKVxyXG4gICAgICAuZmlsdGVyKHNvdXJjZUNhblJldmVyc2VTZWFyY2gpXHJcbiAgICAgIC5maWx0ZXIoKHMpID0+IHMuYXZhaWxhYmxlICYmIHMuZ2V0SWQoKSAhPT0gJ21hcCcgJiYgcy5zaG93SW5TZXR0aW5ncyk7XHJcbiAgICBjb25zdCBzb3VyY2VzID0gdGV4dFNlYXJjaFNvdXJjZXMuY29uY2F0KHJldmVyc2VTZWFyY2hTb3VyY2VzKTtcclxuICAgIHRoaXMuY29tcHV0ZVNvdXJjZXNDaGVja0FsbEJlaGF2aW9yKHNvdXJjZXMpO1xyXG4gICAgcmV0dXJuIHNvdXJjZXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgYWxsIHNlYXJjaCBzb3VyY2VzIHVzYWJsZSBmb3IgcG9pbnRlciBzdW1tYXJ5XHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgaGFzUmV2ZXJzZVNlYXJjaFNvdXJjZXNGb3JQb2ludGVyU3VtbWFyeSgpOiBib29sZWFuIHtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5zZWFyY2hTb3VyY2VTZXJ2aWNlXHJcbiAgICAgICAgLmdldEVuYWJsZWRTb3VyY2VzKClcclxuICAgICAgICAuZmlsdGVyKHNvdXJjZUNhblJldmVyc2VTZWFyY2hBc1N1bW1hcnkpLmxlbmd0aFxyXG4gICAgKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVHJpZ2dlcmVkIHdoZW4gYSBzZXR0aW5nIGlzIGNoZWNrZWQgKGNoZWNrYm94IHN0eWxlKVxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIHNldHRpbmdzVmFsdWVDaGVja2VkQ2hlY2tib3goXHJcbiAgICBldmVudDogTWF0Q2hlY2tib3hDaGFuZ2UsXHJcbiAgICBzb3VyY2U6IFNlYXJjaFNvdXJjZSxcclxuICAgIHNldHRpbmc6IFNlYXJjaFNvdXJjZVNldHRpbmdzLFxyXG4gICAgc2V0dGluZ1ZhbHVlOiBTZXR0aW5nT3B0aW9uc1xyXG4gICkge1xyXG4gICAgc2V0dGluZ1ZhbHVlLmVuYWJsZWQgPSBldmVudC5jaGVja2VkO1xyXG4gICAgc291cmNlLnNldFBhcmFtRnJvbVNldHRpbmcoc2V0dGluZyk7XHJcbiAgICB0aGlzLnNlYXJjaFNvdXJjZUNoYW5nZS5lbWl0KHNvdXJjZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWZpbmluZyB0aGUgYWN0aW9uIHRvIGRvIGZvciBjaGVjay91bmNoZWNrIGNoZWNrYm94ZXMgKHNldHRpbmdzKVxyXG4gICAqIHJldHVybiB0cnVlIGlmIGFsbCBjaGVja2JveCBtdXN0IGJlIGNoZWNrZWRcclxuICAgKiByZXR1cm4gZmFsc2UgaWYgYWxsIGNoZWNrYm94IG11c3QgYmUgdW5jaGVja2VkXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgY29tcHV0ZVNldHRpbmdDaGVja0FsbEJlaGF2aW9yKHNldHRpbmc6IFNlYXJjaFNvdXJjZVNldHRpbmdzKSB7XHJcbiAgICBpZiAoc2V0dGluZy5hbGxFbmFibGVkID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgaWYgKHNldHRpbmcudmFsdWVzLmZpbmQoKHNldHRpbmdWYWx1ZSkgPT4gc2V0dGluZ1ZhbHVlLmVuYWJsZWQpKSB7XHJcbiAgICAgICAgc2V0dGluZy5hbGxFbmFibGVkID0gZmFsc2U7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgc2V0dGluZy5hbGxFbmFibGVkID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc2V0dGluZy5hbGxFbmFibGVkID0gIXNldHRpbmcuYWxsRW5hYmxlZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlZmluaW5nIHRoZSBhY3Rpb24gdG8gZG8gZm9yIGNoZWNrL3VuY2hlY2sgY2hlY2tib3hlcyAoc291cmNlcylcclxuICAgKiByZXR1cm4gdHJ1ZSBpZiBhbGwgY2hlY2tib3ggbXVzdCBiZSBjaGVja2VkXHJcbiAgICogcmV0dXJuIGZhbHNlIGlmIGFsbCBjaGVja2JveCBtdXN0IGJlIHVuY2hlY2tlZFxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIGNvbXB1dGVTb3VyY2VzQ2hlY2tBbGxCZWhhdmlvcihzb3VyY2VzOiBTZWFyY2hTb3VyY2VbXSkge1xyXG4gICAgY29uc3QgZW5hYmxlZFNvdXJjZXNDbnQgPSBzb3VyY2VzLmZpbHRlcigoc291cmNlKSA9PiBzb3VyY2UuZW5hYmxlZCkubGVuZ3RoO1xyXG4gICAgY29uc3QgZGlzYWJsZWRTb3VyY2VzQ250ID0gc291cmNlcy5maWx0ZXIoKHNvdXJjZSkgPT4gIXNvdXJjZS5lbmFibGVkKVxyXG4gICAgICAubGVuZ3RoO1xyXG4gICAgdGhpcy5zZWFyY2hTb3VyY2VzQWxsRW5hYmxlZCA9XHJcbiAgICAgIGVuYWJsZWRTb3VyY2VzQ250ID49IGRpc2FibGVkU291cmNlc0NudCA/IGZhbHNlIDogdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRyaWdnZXJlZCB3aGVuIHRoZSBjaGVjayBhbGwgLyB1bmNoZWNrIGFsbCB0eXBlIGlzIGNsaWNrZWQsXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgY2hlY2tVbmNoZWNrQWxsKGV2ZW50LCBzb3VyY2U6IFNlYXJjaFNvdXJjZSwgc2V0dGluZzogU2VhcmNoU291cmNlU2V0dGluZ3MpIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5jb21wdXRlU2V0dGluZ0NoZWNrQWxsQmVoYXZpb3Ioc2V0dGluZyk7XHJcbiAgICBzZXR0aW5nLnZhbHVlcy5mb3JFYWNoKChzZXR0aW5nVmFsdWUpID0+IHtcclxuICAgICAgc2V0dGluZ1ZhbHVlLmVuYWJsZWQgPSBzZXR0aW5nLmFsbEVuYWJsZWQ7XHJcbiAgICB9KTtcclxuICAgIHNvdXJjZS5zZXRQYXJhbUZyb21TZXR0aW5nKHNldHRpbmcpO1xyXG4gICAgdGhpcy5zZWFyY2hTb3VyY2VDaGFuZ2UuZW1pdChzb3VyY2UpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVHJpZ2dlcmVkIHdoZW4gdGhlIGNoZWNrIGFsbCAvIHVuY2hlY2sgYWxsIHR5cGUgaXMgY2xpY2tlZCxcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBjaGVja1VuY2hlY2tBbGxTb3VyY2VzKGV2ZW50KSB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuZ2V0U2VhcmNoU291cmNlcygpLm1hcCgoc291cmNlKSA9PiB7XHJcbiAgICAgIHNvdXJjZS5lbmFibGVkID0gdGhpcy5zZWFyY2hTb3VyY2VzQWxsRW5hYmxlZDtcclxuICAgICAgdGhpcy5zZWFyY2hTb3VyY2VDaGFuZ2UuZW1pdChzb3VyY2UpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUcmlnZ2VyZWQgd2hlbiBhIHNldHRpbmcgaXMgY2hlY2tlZCAocmFkaW9idXR0b24gc3R5bGUpXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgc2V0dGluZ3NWYWx1ZUNoZWNrZWRSYWRpb0J1dHRvbihcclxuICAgIGV2ZW50OiBNYXRSYWRpb0NoYW5nZSxcclxuICAgIHNvdXJjZTogU2VhcmNoU291cmNlLFxyXG4gICAgc2V0dGluZzogU2VhcmNoU291cmNlU2V0dGluZ3MsXHJcbiAgICBzZXR0aW5nVmFsdWU6IFNldHRpbmdPcHRpb25zXHJcbiAgKSB7XHJcbiAgICBzZXR0aW5nLnZhbHVlcy5mb3JFYWNoKChjb25mKSA9PiB7XHJcbiAgICAgIGlmIChjb25mLnZhbHVlICE9PSBzZXR0aW5nVmFsdWUudmFsdWUpIHtcclxuICAgICAgICBjb25mLmVuYWJsZWQgPSAhZXZlbnQuc291cmNlLmNoZWNrZWQ7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uZi5lbmFibGVkID0gZXZlbnQuc291cmNlLmNoZWNrZWQ7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgc291cmNlLnNldFBhcmFtRnJvbVNldHRpbmcoc2V0dGluZyk7XHJcbiAgICB0aGlzLnNlYXJjaFNvdXJjZUNoYW5nZS5lbWl0KHNvdXJjZSk7XHJcbiAgfVxyXG5cclxuICBvbkNoZWNrU2VhcmNoU291cmNlKGV2ZW50OiBNYXRDaGVja2JveENoYW5nZSwgc291cmNlOiBTZWFyY2hTb3VyY2UpIHtcclxuICAgIHNvdXJjZS5lbmFibGVkID0gZXZlbnQuY2hlY2tlZDtcclxuICAgIGNvbnN0IHN0b3JhZ2UgPSAodGhpcy5zdG9yYWdlU2VydmljZS5nZXQoc291cmNlLmdldElkKCkgKyAnLm9wdGlvbnMnKSB8fCB7fSkgYXMgU2V0dGluZ09wdGlvbnM7XHJcbiAgICBzdG9yYWdlLmVuYWJsZWQgPSBzb3VyY2UuZW5hYmxlZDtcclxuICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0KFxyXG4gICAgICBzb3VyY2UuZ2V0SWQoKSArICcub3B0aW9ucycsXHJcbiAgICAgIHN0b3JhZ2VcclxuICAgICk7XHJcbiAgICB0aGlzLnNlYXJjaFNvdXJjZUNoYW5nZS5lbWl0KHNvdXJjZSk7XHJcbiAgfVxyXG5cclxuICBnZXRBdmFpbGFibGVWYWx1ZXMoc2V0dGluZzogU2VhcmNoU291cmNlU2V0dGluZ3MpIHtcclxuICAgIHJldHVybiBzZXR0aW5nLnZhbHVlcy5maWx0ZXIoKHMpID0+IHMuYXZhaWxhYmxlICE9PSBmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBnZXRBdmFpbGFibGVIYXNodGFnc1ZhbHVlcyhzZXR0aW5nOiBTZXR0aW5nT3B0aW9ucykge1xyXG4gICAgaWYgKHNldHRpbmcuaGFzaHRhZ3MpIHtcclxuICAgICAgcmV0dXJuIHNldHRpbmcuaGFzaHRhZ3MubWFwKChoKSA9PiAnIycgKyBoKS5qb2luKCcsICcpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgc3RvcFByb3BhZ2F0aW9uKGV2ZW50KSB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIGNoYW5nZVBvaW50ZXJSZXZlcnNlU2VhcmNoKGV2ZW50KSB7XHJcbiAgICB0aGlzLnBvaW50ZXJTdW1tYXJ5RW5hYmxlZCA9IGV2ZW50LmNoZWNrZWQ7XHJcbiAgICB0aGlzLnBvaW50ZXJTdW1tYXJ5U3RhdHVzLmVtaXQodGhpcy5wb2ludGVyU3VtbWFyeUVuYWJsZWQpO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlU2VhcmNoUmVzdWx0c0dlb21ldHJ5KGV2ZW50KSB7XHJcbiAgICB0aGlzLnNlYXJjaFJlc3VsdHNHZW9tZXRyeUVuYWJsZWQgPSBldmVudC5jaGVja2VkO1xyXG4gICAgdGhpcy5zZWFyY2hSZXN1bHRzR2VvbWV0cnlTdGF0dXMuZW1pdCh0aGlzLnNlYXJjaFJlc3VsdHNHZW9tZXRyeUVuYWJsZWQpO1xyXG4gIH1cclxuXHJcbiAgcmV2ZXJzZVNlYXJjaENvb3Jkc0Zvcm1hdChldmVudCkge1xyXG4gICAgdGhpcy5yZXZlcnNlU2VhcmNoQ29vcmRzRm9ybWF0RW5hYmxlZCA9IGV2ZW50LmNoZWNrZWQ7XHJcbiAgICB0aGlzLnJldmVyc2VTZWFyY2hDb29yZHNGb3JtYXRTdGF0dXMuZW1pdCh0aGlzLnJldmVyc2VTZWFyY2hDb29yZHNGb3JtYXRFbmFibGVkKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImlnby1zZWFyY2gtc2V0dGluZ3NcIj5cclxuXHJcbiAgPGJ1dHRvblxyXG4gICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICBjbGFzcz1cImlnby1zZWFyY2gtc2V0dGluZ3MtYnV0dG9uXCJcclxuICAgIGNvbG9yPVwicHJpbWFyeVwiXHJcbiAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxyXG4gICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXHJcbiAgICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5zZWFyY2gubWVudS50b29sdGlwJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwic2VhcmNoU2V0dGluZ3NNZW51XCI+XHJcbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cImNoZXZyb24tZG93blwiPjwvbWF0LWljb24+XHJcbiAgPC9idXR0b24+XHJcbiAgPG1hdC1tZW51XHJcbiAgICAjc2VhcmNoU2V0dGluZ3NNZW51PVwibWF0TWVudVwiXHJcbiAgICBjbGFzcz1cIm5vLWJvcmRlci1yYWRpdXNcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjaGVja0FsbEJ1dHRvblwiICpuZ0lmPVwiZ2V0U2VhcmNoU291cmNlcygpLmxlbmd0aD40XCI+XHJcbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b25cclxuICAgICAgICAoY2xpY2spPVwiY2hlY2tVbmNoZWNrQWxsU291cmNlcygkZXZlbnQpXCI+e3shc2VhcmNoU291cmNlc0FsbEVuYWJsZWQgID8gKCdpZ28uZ2VvLnNlYXJjaC5zZWFyY2hTb3VyY2VzLnVuc2VsZWN0QWxsJyB8IHRyYW5zbGF0ZSk6ICgnaWdvLmdlby5zZWFyY2guc2VhcmNoU291cmNlcy5zZWxlY3RBbGwnIHwgdHJhbnNsYXRlKX19PC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc291cmNlIG9mIGdldFNlYXJjaFNvdXJjZXMoKVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiaWdvLXNlYXJjaC1zZXR0aW5ncy1zZWFyY2gtc291cmNlXCI+XHJcbiAgICAgICAgICA8bWF0LWNoZWNrYm94XHJcbiAgICAgICAgICAgIGNsYXNzPVwiaWdvLXNlYXJjaC1zZXR0aW5ncy1jaGVja2JveFwiXHJcbiAgICAgICAgICAgIFtjaGVja2VkXT1cInNvdXJjZS5lbmFibGVkXCJcclxuICAgICAgICAgICAgW3ZhbHVlXT1cInNvdXJjZVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4gICAgICAgICAgICAoY2hhbmdlKT1cIm9uQ2hlY2tTZWFyY2hTb3VyY2UoJGV2ZW50LCBzb3VyY2UpXCI+XHJcbiAgICAgICAgICA8L21hdC1jaGVja2JveD5cclxuICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJzb3VyY2Uuc2V0dGluZ3MubGVuZ3RowqA+wqAwXCJcclxuICAgICAgICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cInN1Yl9tZW51XCJcclxuICAgICAgICAgICAgbWF0LW1lbnUtaXRlbT57e3NvdXJjZS50aXRsZX19XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxyXG4gICAgICAgICAgICAqbmdJZj1cInNvdXJjZS5zZXR0aW5ncy5sZW5ndGjCoD09PcKgMFwiPlxyXG4gICAgICAgICAgICB7e3NvdXJjZS50aXRsZX19XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8bWF0LW1lbnUgI3N1Yl9tZW51PVwibWF0TWVudVwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzZXR0aW5nIG9mIHNvdXJjZS5zZXR0aW5nc1wiPlxyXG4gICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxyXG4gICAgICAgICAgICAgICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwidGVzdF9zdWJfbWVudVwiPlxyXG4gICAgICAgICAgICAgICAge3snaWdvLmdlby5zZWFyY2guc2VhcmNoU291cmNlcy5zZXR0aW5ncy4nKyBzZXR0aW5nLnRpdGxlIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8bWF0LW1lbnUgI3Rlc3Rfc3ViX21lbnU9XCJtYXRNZW51XCJcclxuICAgICAgICAgICAgICAgIFtuZ1N3aXRjaF09XCJzZXR0aW5nLnR5cGVcIlxyXG4gICAgICAgICAgICAgICAgeVBvc2l0aW9uPVwiYWJvdmVcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCIncmFkaW9idXR0b24nXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tZ3JvdXBcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImlnby1zZWFyY2gtc2V0dGluZ3MtcmFkaW8tZ3JvdXBcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJzZXR0aW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gKm5nRm9yPVwibGV0IHNldHRpbmdWYWx1ZSBvZiBzZXR0aW5nLnZhbHVlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1hdC10eXBvZ3JhcGh5XCJcclxuICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJzZXR0aW5nVmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiZ2V0QXZhaWxhYmxlSGFzaHRhZ3NWYWx1ZXMoc2V0dGluZ1ZhbHVlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJzZXR0aW5nVmFsdWUuZW5hYmxlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwic2V0dGluZ3NWYWx1ZUNoZWNrZWRSYWRpb0J1dHRvbigkZXZlbnQsIHNvdXJjZSwgc2V0dGluZywgc2V0dGluZ1ZhbHVlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3tzZXR0aW5nVmFsdWUudGl0bGUgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPC9tYXQtcmFkaW8tZ3JvdXA+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ2NoZWNrYm94J1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tBbGxCdXR0b25cIiAqbmdJZj1cInNldHRpbmcudmFsdWVzLmxlbmd0aMKgPsKgM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjaGVja1VuY2hlY2tBbGwoJGV2ZW50LCBzb3VyY2UsIHNldHRpbmcpXCI+e3tzZXR0aW5nLmFsbEVuYWJsZWQgfHwgc2V0dGluZy5hbGxFbmFibGVkID09PSB1bmRlZmluZWQgID8gKCdpZ28uZ2VvLnNlYXJjaC5zZWFyY2hTb3VyY2VzLnNldHRpbmdzLnVuc2VsZWN0QWxsJyB8IHRyYW5zbGF0ZSk6ICgnaWdvLmdlby5zZWFyY2guc2VhcmNoU291cmNlcy5zZXR0aW5ncy5zZWxlY3RBbGwnIHwgdHJhbnNsYXRlKX19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWNoZWNrYm94ICpuZ0Zvcj1cImxldCBzZXR0aW5nVmFsdWUgb2YgZ2V0QXZhaWxhYmxlVmFsdWVzKHNldHRpbmcpXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1hdC1tZW51LWl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cImRpc3BsYXlCbG9ja1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwic2V0dGluZ1ZhbHVlLmVuYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJzZXR0aW5nXCJcclxuICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJnZXRBdmFpbGFibGVIYXNodGFnc1ZhbHVlcyhzZXR0aW5nVmFsdWUpXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInNldHRpbmdzVmFsdWVDaGVja2VkQ2hlY2tib3goJGV2ZW50LCBzb3VyY2UsIHNldHRpbmcsIHNldHRpbmdWYWx1ZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICB7e3NldHRpbmdWYWx1ZS50aXRsZSB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvbWF0LW1lbnU+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC9tYXQtbWVudT5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJwb2ludGVyLXN1bW1hcnktc2xpZGUtdG9nZ2xlLWNvbnRhaW5lciBtYXQtdHlwb2dyYXBoeVwiPlxyXG4gICAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgY2xhc3M9XCJzZWFyY2gtb3B0aW9uXCIgKGNoYW5nZSk9XCJjaGFuZ2VQb2ludGVyUmV2ZXJzZVNlYXJjaCgkZXZlbnQpXCIgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcclxuICAgICAgICAgICAgKm5nSWY9XCJoYXNQb2ludGVyUmV2ZXJzZVNlYXJjaFNvdXJjZSAmJiAhaXNUb3VjaFNjcmVlblwiIFxyXG4gICAgICAgICAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCIgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uc2VhcmNoLnBvaW50ZXJTZWFyY2hTdW1tYXJ5LnRvb2x0aXAnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiIFtjaGVja2VkXT1cInBvaW50ZXJTdW1tYXJ5RW5hYmxlZFwiIFtsYWJlbFBvc2l0aW9uXT1cIidhZnRlcidcIj5cclxuICAgICAgICAgICAge3snaWdvLmdlby5zZWFyY2gucG9pbnRlclNlYXJjaFN1bW1hcnkudGl0bGUnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgIDwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIGNsYXNzPVwic2VhcmNoLW9wdGlvblwiIChjaGFuZ2UpPVwiY2hhbmdlU2VhcmNoUmVzdWx0c0dlb21ldHJ5KCRldmVudClcIiB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxyXG4gICAgICAgICAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCIgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uc2VhcmNoLnNlYXJjaFJlc3VsdHNHZW9tZXRyeS50b29sdGlwJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIiBbY2hlY2tlZF09XCJzZWFyY2hSZXN1bHRzR2VvbWV0cnlFbmFibGVkXCIgW2xhYmVsUG9zaXRpb25dPVwiJ2FmdGVyJ1wiPlxyXG4gICAgICAgICAgICB7eydpZ28uZ2VvLnNlYXJjaC5zZWFyY2hSZXN1bHRzR2VvbWV0cnkudGl0bGUnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgIDwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIGNsYXNzPVwic2VhcmNoLW9wdGlvblwiIChjaGFuZ2UpPVwicmV2ZXJzZVNlYXJjaENvb3Jkc0Zvcm1hdCgkZXZlbnQpXCIgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcclxuICAgICAgICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXHJcbiAgICAgICAgICAgIFttYXRUb29sdGlwXT1cInJldmVyc2VTZWFyY2hDb29yZHNGb3JtYXRFbmFibGVkID8gKCdpZ28uZ2VvLnNlYXJjaC5yZXZlcnNlQ29vcmRGb3JtYXQudG9vbHRpcExhdExvbicgfCB0cmFuc2xhdGUpXHJcbiAgICAgICAgICAgIDogKCdpZ28uZ2VvLnNlYXJjaC5yZXZlcnNlQ29vcmRGb3JtYXQudG9vbHRpcExvbkxhdCcgfCB0cmFuc2xhdGUpXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiIFtjaGVja2VkXT1cInJldmVyc2VTZWFyY2hDb29yZHNGb3JtYXRFbmFibGVkXCIgW2xhYmVsUG9zaXRpb25dPVwiJ2FmdGVyJ1wiPlxyXG4gICAgICAgICAgICB7eydpZ28uZ2VvLnNlYXJjaC5yZXZlcnNlQ29vcmRGb3JtYXQudGl0bGUnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgIDwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgPC9tYXQtbWVudT5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -57,4 +57,4 @@ IgoSearchSettingsModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [
57
57
  MatDividerModule,
58
58
  MatSlideToggleModule,
59
59
  IgoLanguageModule], exports: [SearchSettingsComponent] }); })();
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXNldHRpbmdzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL3NlYXJjaC9zZWFyY2gtc2V0dGluZ3Mvc2VhcmNoLXNldHRpbmdzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sWUFBWSxDQUFDOztBQUUvQzs7R0FFRztBQWlCSCxNQUFNLE9BQU8sdUJBQXVCOzs4RkFBdkIsdUJBQXVCO3lFQUF2Qix1QkFBdUI7NkVBYmhDLFlBQVk7UUFDWixnQkFBZ0I7UUFDaEIsYUFBYTtRQUNiLGVBQWU7UUFDZixhQUFhO1FBQ2IsY0FBYztRQUNkLGlCQUFpQjtRQUNqQixnQkFBZ0I7UUFDaEIsb0JBQW9CO1FBQ3BCLGlCQUFpQjt1RkFJUix1QkFBdUI7Y0FoQm5DLFFBQVE7ZUFBQztnQkFDUixZQUFZLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztnQkFDdkMsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osZ0JBQWdCO29CQUNoQixhQUFhO29CQUNiLGVBQWU7b0JBQ2YsYUFBYTtvQkFDYixjQUFjO29CQUNkLGlCQUFpQjtvQkFDakIsZ0JBQWdCO29CQUNoQixvQkFBb0I7b0JBQ3BCLGlCQUFpQjtpQkFDbEI7Z0JBQ0QsT0FBTyxFQUFFLENBQUMsdUJBQXVCLENBQUM7YUFDbkM7O3dGQUNZLHVCQUF1QixtQkFmbkIsdUJBQXVCLGFBRXBDLFlBQVk7UUFDWixnQkFBZ0I7UUFDaEIsYUFBYTtRQUNiLGVBQWU7UUFDZixhQUFhO1FBQ2IsY0FBYztRQUNkLGlCQUFpQjtRQUNqQixnQkFBZ0I7UUFDaEIsb0JBQW9CO1FBQ3BCLGlCQUFpQixhQUVULHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU2VhcmNoU2V0dGluZ3NDb21wb25lbnQgfSBmcm9tICcuL3NlYXJjaC1zZXR0aW5ncy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHsgTWF0RGl2aWRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpdmlkZXInO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgTWF0UmFkaW9Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbyc7XG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5cbmltcG9ydCB7IElnb0xhbmd1YWdlTW9kdWxlIH0gZnJvbSAnQGlnbzIvY29yZSc7XG5cbi8qKlxuICogQGlnbm9yZVxuICovXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtTZWFyY2hTZXR0aW5nc0NvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRNZW51TW9kdWxlLFxuICAgIE1hdFJhZGlvTW9kdWxlLFxuICAgIE1hdENoZWNrYm94TW9kdWxlLFxuICAgIE1hdERpdmlkZXJNb2R1bGUsXG4gICAgTWF0U2xpZGVUb2dnbGVNb2R1bGUsXG4gICAgSWdvTGFuZ3VhZ2VNb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1NlYXJjaFNldHRpbmdzQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBJZ29TZWFyY2hTZXR0aW5nc01vZHVsZSB7IH1cbiJdfQ==
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXNldHRpbmdzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL3NlYXJjaC9zZWFyY2gtc2V0dGluZ3Mvc2VhcmNoLXNldHRpbmdzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sWUFBWSxDQUFDOztBQUUvQzs7R0FFRztBQWlCSCxNQUFNLE9BQU8sdUJBQXVCOzs4RkFBdkIsdUJBQXVCO3lFQUF2Qix1QkFBdUI7NkVBYmhDLFlBQVk7UUFDWixnQkFBZ0I7UUFDaEIsYUFBYTtRQUNiLGVBQWU7UUFDZixhQUFhO1FBQ2IsY0FBYztRQUNkLGlCQUFpQjtRQUNqQixnQkFBZ0I7UUFDaEIsb0JBQW9CO1FBQ3BCLGlCQUFpQjt1RkFJUix1QkFBdUI7Y0FoQm5DLFFBQVE7ZUFBQztnQkFDUixZQUFZLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztnQkFDdkMsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osZ0JBQWdCO29CQUNoQixhQUFhO29CQUNiLGVBQWU7b0JBQ2YsYUFBYTtvQkFDYixjQUFjO29CQUNkLGlCQUFpQjtvQkFDakIsZ0JBQWdCO29CQUNoQixvQkFBb0I7b0JBQ3BCLGlCQUFpQjtpQkFDbEI7Z0JBQ0QsT0FBTyxFQUFFLENBQUMsdUJBQXVCLENBQUM7YUFDbkM7O3dGQUNZLHVCQUF1QixtQkFmbkIsdUJBQXVCLGFBRXBDLFlBQVk7UUFDWixnQkFBZ0I7UUFDaEIsYUFBYTtRQUNiLGVBQWU7UUFDZixhQUFhO1FBQ2IsY0FBYztRQUNkLGlCQUFpQjtRQUNqQixnQkFBZ0I7UUFDaEIsb0JBQW9CO1FBQ3BCLGlCQUFpQixhQUVULHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFNlYXJjaFNldHRpbmdzQ29tcG9uZW50IH0gZnJvbSAnLi9zZWFyY2gtc2V0dGluZ3MuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XHJcbmltcG9ydCB7IE1hdERpdmlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XHJcbmltcG9ydCB7IE1hdFJhZGlvTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcmFkaW8nO1xyXG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuXHJcbmltcG9ydCB7IElnb0xhbmd1YWdlTW9kdWxlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcblxyXG4vKipcclxuICogQGlnbm9yZVxyXG4gKi9cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtTZWFyY2hTZXR0aW5nc0NvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBNYXRNZW51TW9kdWxlLFxyXG4gICAgTWF0UmFkaW9Nb2R1bGUsXHJcbiAgICBNYXRDaGVja2JveE1vZHVsZSxcclxuICAgIE1hdERpdmlkZXJNb2R1bGUsXHJcbiAgICBNYXRTbGlkZVRvZ2dsZU1vZHVsZSxcclxuICAgIElnb0xhbmd1YWdlTW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbU2VhcmNoU2V0dGluZ3NDb21wb25lbnRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJZ29TZWFyY2hTZXR0aW5nc01vZHVsZSB7IH1cclxuIl19
@@ -64,4 +64,4 @@ IgoSearchModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonMo
64
64
  IgoSearchResultsModule,
65
65
  IgoSearchSettingsModule,
66
66
  SearchPointerSummaryDirective] }); })();
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL3NlYXJjaC9zZWFyY2gubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDdEYsT0FBTyxFQUFFLDJDQUEyQyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbEcsT0FBTyxFQUFFLDhDQUE4QyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDeEcsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFdkYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDbkYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDaEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDbkYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7O0FBbUIxRixNQUFNLE9BQU8sZUFBZTtJQUMxQixNQUFNLENBQUMsT0FBTztRQUNaLE9BQU87WUFDTCxRQUFRLEVBQUUsZUFBZTtZQUN6QixTQUFTLEVBQUU7Z0JBQ1QsYUFBYTtnQkFDYiwwQkFBMEIsRUFBRTtnQkFDNUIsMkNBQTJDLEVBQUU7Z0JBQzdDLDhDQUE4QyxFQUFFO2dCQUNoRCxrQ0FBa0MsRUFBRTthQUNyQztTQUNGLENBQUM7SUFDSixDQUFDOzs4RUFaVSxlQUFlO2lFQUFmLGVBQWU7cUVBZnhCLFlBQVk7UUFDWixrQkFBa0I7UUFDbEIsdUJBQXVCO1FBQ3ZCLHNCQUFzQjtRQUN0Qix1QkFBdUIsRUFHdkIsa0JBQWtCO1FBQ2xCLHVCQUF1QjtRQUN2QixzQkFBc0I7UUFDdEIsdUJBQXVCO3VGQUtkLGVBQWU7Y0FqQjNCLFFBQVE7ZUFBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixrQkFBa0I7b0JBQ2xCLHVCQUF1QjtvQkFDdkIsc0JBQXNCO29CQUN0Qix1QkFBdUI7aUJBQ3hCO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxrQkFBa0I7b0JBQ2xCLHVCQUF1QjtvQkFDdkIsc0JBQXNCO29CQUN0Qix1QkFBdUI7b0JBQ3ZCLDZCQUE2QjtpQkFDOUI7Z0JBQ0QsWUFBWSxFQUFFLENBQUMsNkJBQTZCLENBQUM7YUFDOUM7O3dGQUNZLGVBQWUsbUJBRlgsNkJBQTZCLGFBYjFDLFlBQVk7UUFDWixrQkFBa0I7UUFDbEIsdUJBQXVCO1FBQ3ZCLHNCQUFzQjtRQUN0Qix1QkFBdUIsYUFHdkIsa0JBQWtCO1FBQ2xCLHVCQUF1QjtRQUN2QixzQkFBc0I7UUFDdEIsdUJBQXVCO1FBQ3ZCLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlLCBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBTZWFyY2hTZXJ2aWNlIH0gZnJvbSAnLi9zaGFyZWQvc2VhcmNoLnNlcnZpY2UnO1xuaW1wb3J0IHsgcHJvdmlkZVNlYXJjaFNvdXJjZVNlcnZpY2UgfSBmcm9tICcuL3NoYXJlZC9zZWFyY2gtc291cmNlLXNlcnZpY2UucHJvdmlkZXJzJztcbmltcG9ydCB7IHByb3ZpZGVEZWZhdWx0SUNoZXJjaGVTZWFyY2hSZXN1bHRGb3JtYXR0ZXIgfSBmcm9tICcuL3NoYXJlZC9zb3VyY2VzL2ljaGVyY2hlLnByb3ZpZGVycyc7XG5pbXBvcnQgeyBwcm92aWRlRGVmYXVsdENvb3JkaW5hdGVzU2VhcmNoUmVzdWx0Rm9ybWF0dGVyIH0gZnJvbSAnLi9zaGFyZWQvc291cmNlcy9jb29yZGluYXRlcy5wcm92aWRlcnMnO1xuaW1wb3J0IHsgcHJvdmlkZUlMYXllclNlYXJjaFJlc3VsdEZvcm1hdHRlciB9IGZyb20gJy4vc2hhcmVkL3NvdXJjZXMvaWxheWVyLnByb3ZpZGVycyc7XG5cbmltcG9ydCB7IElnb1NlYXJjaEJhck1vZHVsZSB9IGZyb20gJy4vc2VhcmNoLWJhci9zZWFyY2gtYmFyLm1vZHVsZSc7XG5pbXBvcnQgeyBJZ29TZWFyY2hTZWxlY3Rvck1vZHVsZSB9IGZyb20gJy4vc2VhcmNoLXNlbGVjdG9yL3NlYXJjaC1zZWxlY3Rvci5tb2R1bGUnO1xuaW1wb3J0IHsgSWdvU2VhcmNoUmVzdWx0c01vZHVsZSB9IGZyb20gJy4vc2VhcmNoLXJlc3VsdHMvc2VhcmNoLXJlc3VsdHMubW9kdWxlJztcbmltcG9ydCB7IElnb1NlYXJjaFNldHRpbmdzTW9kdWxlIH0gZnJvbSAnLi9zZWFyY2gtc2V0dGluZ3Mvc2VhcmNoLXNldHRpbmdzLm1vZHVsZSc7XG5pbXBvcnQgeyBTZWFyY2hQb2ludGVyU3VtbWFyeURpcmVjdGl2ZSB9IGZyb20gJy4vc2hhcmVkL3NlYXJjaC1wb2ludGVyLXN1bW1hcnkuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBJZ29TZWFyY2hCYXJNb2R1bGUsXG4gICAgSWdvU2VhcmNoU2VsZWN0b3JNb2R1bGUsXG4gICAgSWdvU2VhcmNoUmVzdWx0c01vZHVsZSxcbiAgICBJZ29TZWFyY2hTZXR0aW5nc01vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgSWdvU2VhcmNoQmFyTW9kdWxlLFxuICAgIElnb1NlYXJjaFNlbGVjdG9yTW9kdWxlLFxuICAgIElnb1NlYXJjaFJlc3VsdHNNb2R1bGUsXG4gICAgSWdvU2VhcmNoU2V0dGluZ3NNb2R1bGUsXG4gICAgU2VhcmNoUG9pbnRlclN1bW1hcnlEaXJlY3RpdmVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbU2VhcmNoUG9pbnRlclN1bW1hcnlEaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIElnb1NlYXJjaE1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8SWdvU2VhcmNoTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBJZ29TZWFyY2hNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgU2VhcmNoU2VydmljZSxcbiAgICAgICAgcHJvdmlkZVNlYXJjaFNvdXJjZVNlcnZpY2UoKSxcbiAgICAgICAgcHJvdmlkZURlZmF1bHRJQ2hlcmNoZVNlYXJjaFJlc3VsdEZvcm1hdHRlcigpLFxuICAgICAgICBwcm92aWRlRGVmYXVsdENvb3JkaW5hdGVzU2VhcmNoUmVzdWx0Rm9ybWF0dGVyKCksXG4gICAgICAgIHByb3ZpZGVJTGF5ZXJTZWFyY2hSZXN1bHRGb3JtYXR0ZXIoKVxuICAgICAgXVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL3NlYXJjaC9zZWFyY2gubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDdEYsT0FBTyxFQUFFLDJDQUEyQyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbEcsT0FBTyxFQUFFLDhDQUE4QyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDeEcsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFdkYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDbkYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDaEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDbkYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7O0FBbUIxRixNQUFNLE9BQU8sZUFBZTtJQUMxQixNQUFNLENBQUMsT0FBTztRQUNaLE9BQU87WUFDTCxRQUFRLEVBQUUsZUFBZTtZQUN6QixTQUFTLEVBQUU7Z0JBQ1QsYUFBYTtnQkFDYiwwQkFBMEIsRUFBRTtnQkFDNUIsMkNBQTJDLEVBQUU7Z0JBQzdDLDhDQUE4QyxFQUFFO2dCQUNoRCxrQ0FBa0MsRUFBRTthQUNyQztTQUNGLENBQUM7SUFDSixDQUFDOzs4RUFaVSxlQUFlO2lFQUFmLGVBQWU7cUVBZnhCLFlBQVk7UUFDWixrQkFBa0I7UUFDbEIsdUJBQXVCO1FBQ3ZCLHNCQUFzQjtRQUN0Qix1QkFBdUIsRUFHdkIsa0JBQWtCO1FBQ2xCLHVCQUF1QjtRQUN2QixzQkFBc0I7UUFDdEIsdUJBQXVCO3VGQUtkLGVBQWU7Y0FqQjNCLFFBQVE7ZUFBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixrQkFBa0I7b0JBQ2xCLHVCQUF1QjtvQkFDdkIsc0JBQXNCO29CQUN0Qix1QkFBdUI7aUJBQ3hCO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxrQkFBa0I7b0JBQ2xCLHVCQUF1QjtvQkFDdkIsc0JBQXNCO29CQUN0Qix1QkFBdUI7b0JBQ3ZCLDZCQUE2QjtpQkFDOUI7Z0JBQ0QsWUFBWSxFQUFFLENBQUMsNkJBQTZCLENBQUM7YUFDOUM7O3dGQUNZLGVBQWUsbUJBRlgsNkJBQTZCLGFBYjFDLFlBQVk7UUFDWixrQkFBa0I7UUFDbEIsdUJBQXVCO1FBQ3ZCLHNCQUFzQjtRQUN0Qix1QkFBdUIsYUFHdkIsa0JBQWtCO1FBQ2xCLHVCQUF1QjtRQUN2QixzQkFBc0I7UUFDdEIsdUJBQXVCO1FBQ3ZCLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlLCBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5pbXBvcnQgeyBTZWFyY2hTZXJ2aWNlIH0gZnJvbSAnLi9zaGFyZWQvc2VhcmNoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBwcm92aWRlU2VhcmNoU291cmNlU2VydmljZSB9IGZyb20gJy4vc2hhcmVkL3NlYXJjaC1zb3VyY2Utc2VydmljZS5wcm92aWRlcnMnO1xyXG5pbXBvcnQgeyBwcm92aWRlRGVmYXVsdElDaGVyY2hlU2VhcmNoUmVzdWx0Rm9ybWF0dGVyIH0gZnJvbSAnLi9zaGFyZWQvc291cmNlcy9pY2hlcmNoZS5wcm92aWRlcnMnO1xyXG5pbXBvcnQgeyBwcm92aWRlRGVmYXVsdENvb3JkaW5hdGVzU2VhcmNoUmVzdWx0Rm9ybWF0dGVyIH0gZnJvbSAnLi9zaGFyZWQvc291cmNlcy9jb29yZGluYXRlcy5wcm92aWRlcnMnO1xyXG5pbXBvcnQgeyBwcm92aWRlSUxheWVyU2VhcmNoUmVzdWx0Rm9ybWF0dGVyIH0gZnJvbSAnLi9zaGFyZWQvc291cmNlcy9pbGF5ZXIucHJvdmlkZXJzJztcclxuXHJcbmltcG9ydCB7IElnb1NlYXJjaEJhck1vZHVsZSB9IGZyb20gJy4vc2VhcmNoLWJhci9zZWFyY2gtYmFyLm1vZHVsZSc7XHJcbmltcG9ydCB7IElnb1NlYXJjaFNlbGVjdG9yTW9kdWxlIH0gZnJvbSAnLi9zZWFyY2gtc2VsZWN0b3Ivc2VhcmNoLXNlbGVjdG9yLm1vZHVsZSc7XHJcbmltcG9ydCB7IElnb1NlYXJjaFJlc3VsdHNNb2R1bGUgfSBmcm9tICcuL3NlYXJjaC1yZXN1bHRzL3NlYXJjaC1yZXN1bHRzLm1vZHVsZSc7XHJcbmltcG9ydCB7IElnb1NlYXJjaFNldHRpbmdzTW9kdWxlIH0gZnJvbSAnLi9zZWFyY2gtc2V0dGluZ3Mvc2VhcmNoLXNldHRpbmdzLm1vZHVsZSc7XHJcbmltcG9ydCB7IFNlYXJjaFBvaW50ZXJTdW1tYXJ5RGlyZWN0aXZlIH0gZnJvbSAnLi9zaGFyZWQvc2VhcmNoLXBvaW50ZXItc3VtbWFyeS5kaXJlY3RpdmUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBJZ29TZWFyY2hCYXJNb2R1bGUsXHJcbiAgICBJZ29TZWFyY2hTZWxlY3Rvck1vZHVsZSxcclxuICAgIElnb1NlYXJjaFJlc3VsdHNNb2R1bGUsXHJcbiAgICBJZ29TZWFyY2hTZXR0aW5nc01vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgSWdvU2VhcmNoQmFyTW9kdWxlLFxyXG4gICAgSWdvU2VhcmNoU2VsZWN0b3JNb2R1bGUsXHJcbiAgICBJZ29TZWFyY2hSZXN1bHRzTW9kdWxlLFxyXG4gICAgSWdvU2VhcmNoU2V0dGluZ3NNb2R1bGUsXHJcbiAgICBTZWFyY2hQb2ludGVyU3VtbWFyeURpcmVjdGl2ZVxyXG4gIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbU2VhcmNoUG9pbnRlclN1bW1hcnlEaXJlY3RpdmVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJZ29TZWFyY2hNb2R1bGUge1xyXG4gIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8SWdvU2VhcmNoTW9kdWxlPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogSWdvU2VhcmNoTW9kdWxlLFxyXG4gICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICBTZWFyY2hTZXJ2aWNlLFxyXG4gICAgICAgIHByb3ZpZGVTZWFyY2hTb3VyY2VTZXJ2aWNlKCksXHJcbiAgICAgICAgcHJvdmlkZURlZmF1bHRJQ2hlcmNoZVNlYXJjaFJlc3VsdEZvcm1hdHRlcigpLFxyXG4gICAgICAgIHByb3ZpZGVEZWZhdWx0Q29vcmRpbmF0ZXNTZWFyY2hSZXN1bHRGb3JtYXR0ZXIoKSxcclxuICAgICAgICBwcm92aWRlSUxheWVyU2VhcmNoUmVzdWx0Rm9ybWF0dGVyKClcclxuICAgICAgXVxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19