@igo2/geo 1.14.1 → 1.14.3

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 (871) hide show
  1. package/esm2020/igo2-geo.mjs +4 -4
  2. package/esm2020/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +301 -299
  3. package/esm2020/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +306 -268
  4. package/esm2020/lib/catalog/catalog-browser/catalog-browser.component.mjs +247 -247
  5. package/esm2020/lib/catalog/catalog-browser/catalog-browser.module.mjs +79 -79
  6. package/esm2020/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +208 -208
  7. package/esm2020/lib/catalog/catalog-library/catalog-library-item.component.mjs +78 -78
  8. package/esm2020/lib/catalog/catalog-library/catalog-library.component.mjs +216 -216
  9. package/esm2020/lib/catalog/catalog-library/catalog-library.module.mjs +94 -94
  10. package/esm2020/lib/catalog/catalog.module.mjs +52 -52
  11. package/esm2020/lib/catalog/index.mjs +4 -4
  12. package/esm2020/lib/catalog/shared/catalog.abstract.mjs +94 -94
  13. package/esm2020/lib/catalog/shared/catalog.enum.mjs +15 -15
  14. package/esm2020/lib/catalog/shared/catalog.interface.mjs +1 -1
  15. package/esm2020/lib/catalog/shared/catalog.service.mjs +605 -605
  16. package/esm2020/lib/catalog/shared/index.mjs +4 -4
  17. package/esm2020/lib/datasource/datasource.module.mjs +21 -21
  18. package/esm2020/lib/datasource/index.mjs +2 -2
  19. package/esm2020/lib/datasource/shared/capabilities.service.mjs +430 -430
  20. package/esm2020/lib/datasource/shared/datasource.service.mjs +235 -235
  21. package/esm2020/lib/datasource/shared/datasources/any-datasource.interface.mjs +1 -1
  22. package/esm2020/lib/datasource/shared/datasources/any-datasource.mjs +1 -1
  23. package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.interface.mjs +1 -1
  24. package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +144 -144
  25. package/esm2020/lib/datasource/shared/datasources/carto-datasource.interface.mjs +1 -1
  26. package/esm2020/lib/datasource/shared/datasources/carto-datasource.mjs +108 -108
  27. package/esm2020/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +1 -1
  28. package/esm2020/lib/datasource/shared/datasources/cluster-datasource.mjs +14 -14
  29. package/esm2020/lib/datasource/shared/datasources/data.service.mjs +2 -2
  30. package/esm2020/lib/datasource/shared/datasources/datasource.interface.mjs +1 -1
  31. package/esm2020/lib/datasource/shared/datasources/datasource.mjs +28 -28
  32. package/esm2020/lib/datasource/shared/datasources/feature-datasource.interface.mjs +1 -1
  33. package/esm2020/lib/datasource/shared/datasources/feature-datasource.mjs +42 -42
  34. package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.mjs +1 -1
  35. package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +56 -56
  36. package/esm2020/lib/datasource/shared/datasources/index.mjs +35 -35
  37. package/esm2020/lib/datasource/shared/datasources/mvt-datasource.interface.mjs +1 -1
  38. package/esm2020/lib/datasource/shared/datasources/mvt-datasource.mjs +27 -27
  39. package/esm2020/lib/datasource/shared/datasources/osm-datasource.interface.mjs +1 -1
  40. package/esm2020/lib/datasource/shared/datasources/osm-datasource.mjs +11 -11
  41. package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.mjs +1 -1
  42. package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +48 -48
  43. package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.interface.mjs +1 -1
  44. package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.mjs +14 -14
  45. package/esm2020/lib/datasource/shared/datasources/websocket-datasource.interface.mjs +1 -1
  46. package/esm2020/lib/datasource/shared/datasources/websocket-datasource.mjs +53 -53
  47. package/esm2020/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +1 -1
  48. package/esm2020/lib/datasource/shared/datasources/wfs-datasource.mjs +71 -71
  49. package/esm2020/lib/datasource/shared/datasources/wfs.service.mjs +151 -151
  50. package/esm2020/lib/datasource/shared/datasources/wms-datasource.interface.mjs +1 -1
  51. package/esm2020/lib/datasource/shared/datasources/wms-datasource.mjs +205 -205
  52. package/esm2020/lib/datasource/shared/datasources/wms-wfs.utils.mjs +206 -206
  53. package/esm2020/lib/datasource/shared/datasources/wmts-datasource.interface.mjs +1 -1
  54. package/esm2020/lib/datasource/shared/datasources/wmts-datasource.mjs +15 -15
  55. package/esm2020/lib/datasource/shared/datasources/xyz-datasource.interface.mjs +1 -1
  56. package/esm2020/lib/datasource/shared/datasources/xyz-datasource.mjs +8 -8
  57. package/esm2020/lib/datasource/shared/index.mjs +4 -4
  58. package/esm2020/lib/datasource/shared/options/index.mjs +4 -4
  59. package/esm2020/lib/datasource/shared/options/options-api.interface.mjs +1 -1
  60. package/esm2020/lib/datasource/shared/options/options-api.providers.mjs +14 -14
  61. package/esm2020/lib/datasource/shared/options/options-api.service.mjs +80 -80
  62. package/esm2020/lib/datasource/shared/options/options.service.mjs +2 -2
  63. package/esm2020/lib/datasource/utils/esri-style-generator.mjs +356 -356
  64. package/esm2020/lib/datasource/utils/index.mjs +2 -2
  65. package/esm2020/lib/datasource/utils/tilegrid.mjs +19 -19
  66. package/esm2020/lib/directions/directions-buttons/directions-buttons.component.mjs +223 -223
  67. package/esm2020/lib/directions/directions-buttons/index.mjs +1 -1
  68. package/esm2020/lib/directions/directions-inputs/directions-inputs.component.mjs +289 -289
  69. package/esm2020/lib/directions/directions-inputs/index.mjs +1 -1
  70. package/esm2020/lib/directions/directions-results/directions-results.component.mjs +195 -195
  71. package/esm2020/lib/directions/directions-results/index.mjs +1 -1
  72. package/esm2020/lib/directions/directions-sources/directions-source.interface.mjs +1 -1
  73. package/esm2020/lib/directions/directions-sources/directions-source.mjs +2 -2
  74. package/esm2020/lib/directions/directions-sources/directions-source.provider.mjs +15 -15
  75. package/esm2020/lib/directions/directions-sources/index.mjs +4 -4
  76. package/esm2020/lib/directions/directions-sources/osrm-directions-source.mjs +98 -98
  77. package/esm2020/lib/directions/directions.component.mjs +310 -310
  78. package/esm2020/lib/directions/directions.module.mjs +101 -101
  79. package/esm2020/lib/directions/index.mjs +6 -6
  80. package/esm2020/lib/directions/shared/directions-source.service.mjs +16 -16
  81. package/esm2020/lib/directions/shared/directions.enum.mjs +27 -27
  82. package/esm2020/lib/directions/shared/directions.interface.mjs +1 -1
  83. package/esm2020/lib/directions/shared/directions.service.mjs +28 -28
  84. package/esm2020/lib/directions/shared/directions.utils.mjs +508 -508
  85. package/esm2020/lib/directions/shared/index.mjs +5 -5
  86. package/esm2020/lib/directions/shared/store.mjs +23 -23
  87. package/esm2020/lib/download/download-button/download-button.component.mjs +60 -60
  88. package/esm2020/lib/download/download-button/index.mjs +1 -1
  89. package/esm2020/lib/download/download.module.mjs +41 -41
  90. package/esm2020/lib/download/index.mjs +2 -2
  91. package/esm2020/lib/download/shared/download.interface.mjs +1 -1
  92. package/esm2020/lib/download/shared/download.service.mjs +64 -64
  93. package/esm2020/lib/download/shared/index.mjs +2 -2
  94. package/esm2020/lib/draw/draw/draw-layer-popup.component.mjs +54 -54
  95. package/esm2020/lib/draw/draw/draw-popup.component.mjs +590 -590
  96. package/esm2020/lib/draw/draw/draw-shorcuts.component.mjs +47 -47
  97. package/esm2020/lib/draw/draw/draw.component.mjs +1298 -1298
  98. package/esm2020/lib/draw/draw/draw.module.mjs +112 -112
  99. package/esm2020/lib/draw/drawingTool.module.mjs +19 -19
  100. package/esm2020/lib/draw/index.mjs +2 -2
  101. package/esm2020/lib/draw/shared/draw-icon.service.mjs +26 -26
  102. package/esm2020/lib/draw/shared/draw-style.service.mjs +189 -189
  103. package/esm2020/lib/draw/shared/draw.enum.mjs +36 -36
  104. package/esm2020/lib/draw/shared/draw.interface.mjs +1 -1
  105. package/esm2020/lib/draw/shared/draw.utils.mjs +121 -121
  106. package/esm2020/lib/draw/shared/index.mjs +5 -5
  107. package/esm2020/lib/feature/feature-details/feature-details.component.mjs +404 -404
  108. package/esm2020/lib/feature/feature-details/feature-details.directive.mjs +53 -53
  109. package/esm2020/lib/feature/feature-details/feature-details.module.mjs +47 -47
  110. package/esm2020/lib/feature/feature-form/feature-form.component.mjs +111 -111
  111. package/esm2020/lib/feature/feature-form/feature-form.module.mjs +33 -33
  112. package/esm2020/lib/feature/feature.module.mjs +27 -27
  113. package/esm2020/lib/feature/index.mjs +3 -3
  114. package/esm2020/lib/feature/shared/feature.enums.mjs +8 -8
  115. package/esm2020/lib/feature/shared/feature.interfaces.mjs +1 -1
  116. package/esm2020/lib/feature/shared/feature.utils.mjs +346 -346
  117. package/esm2020/lib/feature/shared/index.mjs +6 -6
  118. package/esm2020/lib/feature/shared/store.mjs +123 -123
  119. package/esm2020/lib/feature/shared/strategies/in-map-extent.mjs +112 -112
  120. package/esm2020/lib/feature/shared/strategies/in-map-resolution.mjs +93 -93
  121. package/esm2020/lib/feature/shared/strategies/index.mjs +5 -5
  122. package/esm2020/lib/feature/shared/strategies/loading-layer.mjs +103 -103
  123. package/esm2020/lib/feature/shared/strategies/loading.mjs +132 -132
  124. package/esm2020/lib/feature/shared/strategies/selection.mjs +369 -369
  125. package/esm2020/lib/feature/shared/strategies.utils.mjs +36 -36
  126. package/esm2020/lib/filter/filter.module.mjs +288 -288
  127. package/esm2020/lib/filter/index.mjs +15 -15
  128. package/esm2020/lib/filter/ogc-filter-button/index.mjs +1 -1
  129. package/esm2020/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +139 -139
  130. package/esm2020/lib/filter/ogc-filter-form/index.mjs +1 -1
  131. package/esm2020/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +644 -644
  132. package/esm2020/lib/filter/ogc-filter-selection/index.mjs +1 -1
  133. package/esm2020/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +1301 -1301
  134. package/esm2020/lib/filter/ogc-filter-time/index.mjs +2 -2
  135. package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +176 -176
  136. package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +897 -897
  137. package/esm2020/lib/filter/ogc-filterable-form/index.mjs +1 -1
  138. package/esm2020/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +58 -58
  139. package/esm2020/lib/filter/ogc-filterable-item/index.mjs +1 -1
  140. package/esm2020/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +306 -306
  141. package/esm2020/lib/filter/ogc-filterable-list/index.mjs +2 -2
  142. package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +30 -30
  143. package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +43 -43
  144. package/esm2020/lib/filter/shared/filterable-datasource.pipe.mjs +54 -54
  145. package/esm2020/lib/filter/shared/index.mjs +11 -11
  146. package/esm2020/lib/filter/shared/ogc-filter-time.service.mjs +71 -71
  147. package/esm2020/lib/filter/shared/ogc-filter.enum.mjs +29 -29
  148. package/esm2020/lib/filter/shared/ogc-filter.interface.mjs +1 -1
  149. package/esm2020/lib/filter/shared/ogc-filter.mjs +691 -691
  150. package/esm2020/lib/filter/shared/ogc-filter.service.mjs +45 -45
  151. package/esm2020/lib/filter/shared/spatial-filter.enum.mjs +22 -22
  152. package/esm2020/lib/filter/shared/spatial-filter.interface.mjs +1 -1
  153. package/esm2020/lib/filter/shared/spatial-filter.service.mjs +268 -268
  154. package/esm2020/lib/filter/shared/time-filter.enum.mjs +12 -12
  155. package/esm2020/lib/filter/shared/time-filter.interface.mjs +1 -1
  156. package/esm2020/lib/filter/shared/time-filter.service.mjs +106 -106
  157. package/esm2020/lib/filter/spatial-filter/spatial-filter-item/index.mjs +1 -1
  158. package/esm2020/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +1088 -1088
  159. package/esm2020/lib/filter/spatial-filter/spatial-filter-list/index.mjs +1 -1
  160. package/esm2020/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +207 -207
  161. package/esm2020/lib/filter/spatial-filter/spatial-filter-type/index.mjs +1 -1
  162. package/esm2020/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +143 -143
  163. package/esm2020/lib/filter/time-filter-button/index.mjs +1 -1
  164. package/esm2020/lib/filter/time-filter-button/time-filter-button.component.mjs +77 -77
  165. package/esm2020/lib/filter/time-filter-form/index.mjs +1 -1
  166. package/esm2020/lib/filter/time-filter-form/time-filter-form.component.mjs +733 -733
  167. package/esm2020/lib/filter/time-filter-item/index.mjs +1 -1
  168. package/esm2020/lib/filter/time-filter-item/time-filter-item.component.mjs +118 -118
  169. package/esm2020/lib/filter/time-filter-list/index.mjs +2 -2
  170. package/esm2020/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +30 -30
  171. package/esm2020/lib/filter/time-filter-list/time-filter-list.component.mjs +38 -38
  172. package/esm2020/lib/geo.module.mjs +101 -101
  173. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +520 -520
  174. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +188 -188
  175. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +63 -63
  176. package/esm2020/lib/geometry/geometry.module.mjs +26 -26
  177. package/esm2020/lib/geometry/index.mjs +3 -3
  178. package/esm2020/lib/geometry/shared/controls/draw.mjs +313 -313
  179. package/esm2020/lib/geometry/shared/controls/index.mjs +3 -3
  180. package/esm2020/lib/geometry/shared/controls/modify.mjs +520 -520
  181. package/esm2020/lib/geometry/shared/controls/slice.mjs +176 -176
  182. package/esm2020/lib/geometry/shared/geometry.errors.mjs +25 -25
  183. package/esm2020/lib/geometry/shared/geometry.interfaces.mjs +1 -1
  184. package/esm2020/lib/geometry/shared/geometry.utils.mjs +121 -121
  185. package/esm2020/lib/geometry/shared/index.mjs +4 -4
  186. package/esm2020/lib/import-export/export-button/export-button.component.mjs +63 -63
  187. package/esm2020/lib/import-export/export-button/index.mjs +1 -1
  188. package/esm2020/lib/import-export/import-export/import-export.component.mjs +1219 -1219
  189. package/esm2020/lib/import-export/import-export/index.mjs +1 -1
  190. package/esm2020/lib/import-export/import-export.module.mjs +95 -95
  191. package/esm2020/lib/import-export/index.mjs +4 -4
  192. package/esm2020/lib/import-export/shared/drop-geo-file.directive.mjs +134 -134
  193. package/esm2020/lib/import-export/shared/export.errors.mjs +14 -14
  194. package/esm2020/lib/import-export/shared/export.interface.mjs +1 -1
  195. package/esm2020/lib/import-export/shared/export.service.mjs +195 -195
  196. package/esm2020/lib/import-export/shared/export.type.mjs +3 -3
  197. package/esm2020/lib/import-export/shared/export.utils.mjs +54 -54
  198. package/esm2020/lib/import-export/shared/import.errors.mjs +38 -38
  199. package/esm2020/lib/import-export/shared/import.interface.mjs +1 -1
  200. package/esm2020/lib/import-export/shared/import.service.mjs +214 -214
  201. package/esm2020/lib/import-export/shared/import.utils.mjs +234 -234
  202. package/esm2020/lib/import-export/shared/index.mjs +10 -10
  203. package/esm2020/lib/import-export/style-list/index.mjs +4 -4
  204. package/esm2020/lib/import-export/style-list/style-list.interface.mjs +1 -1
  205. package/esm2020/lib/import-export/style-list/style-list.module.mjs +22 -22
  206. package/esm2020/lib/import-export/style-list/style-list.provider.mjs +20 -20
  207. package/esm2020/lib/import-export/style-list/style-list.service.mjs +50 -50
  208. package/esm2020/lib/layer/index.mjs +10 -10
  209. package/esm2020/lib/layer/layer-item/index.mjs +1 -1
  210. package/esm2020/lib/layer/layer-item/layer-item.component.mjs +299 -299
  211. package/esm2020/lib/layer/layer-legend/index.mjs +1 -1
  212. package/esm2020/lib/layer/layer-legend/layer-legend.component.mjs +387 -387
  213. package/esm2020/lib/layer/layer-legend-item/index.mjs +1 -1
  214. package/esm2020/lib/layer/layer-legend-item/layer-legend-item.component.mjs +83 -83
  215. package/esm2020/lib/layer/layer-legend-list/index.mjs +2 -2
  216. package/esm2020/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +47 -47
  217. package/esm2020/lib/layer/layer-legend-list/layer-legend-list.component.mjs +194 -194
  218. package/esm2020/lib/layer/layer-list/index.mjs +3 -3
  219. package/esm2020/lib/layer/layer-list/layer-list-binding.directive.mjs +58 -58
  220. package/esm2020/lib/layer/layer-list/layer-list.component.mjs +1008 -1008
  221. package/esm2020/lib/layer/layer-list/layer-list.enum.mjs +18 -18
  222. package/esm2020/lib/layer/layer-list-tool/index.mjs +4 -4
  223. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.component.mjs +164 -164
  224. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.enum.mjs +6 -6
  225. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.interface.mjs +1 -1
  226. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.service.mjs +21 -21
  227. package/esm2020/lib/layer/layer.module.mjs +184 -184
  228. package/esm2020/lib/layer/shared/clusterParam.mjs +1 -1
  229. package/esm2020/lib/layer/shared/index.mjs +6 -6
  230. package/esm2020/lib/layer/shared/layer.enums.mjs +1 -1
  231. package/esm2020/lib/layer/shared/layer.service.mjs +185 -185
  232. package/esm2020/lib/layer/shared/layers/any-layer.interface.mjs +1 -1
  233. package/esm2020/lib/layer/shared/layers/any-layer.mjs +1 -1
  234. package/esm2020/lib/layer/shared/layers/image-layer.interface.mjs +1 -1
  235. package/esm2020/lib/layer/shared/layers/image-layer.mjs +67 -67
  236. package/esm2020/lib/layer/shared/layers/index.mjs +12 -12
  237. package/esm2020/lib/layer/shared/layers/layer.interface.mjs +17 -17
  238. package/esm2020/lib/layer/shared/layers/layer.mjs +163 -163
  239. package/esm2020/lib/layer/shared/layers/tile-layer.interface.mjs +1 -1
  240. package/esm2020/lib/layer/shared/layers/tile-layer.mjs +46 -46
  241. package/esm2020/lib/layer/shared/layers/vector-layer.interface.mjs +1 -1
  242. package/esm2020/lib/layer/shared/layers/vector-layer.mjs +377 -377
  243. package/esm2020/lib/layer/shared/layers/vectortile-layer.interface.mjs +1 -1
  244. package/esm2020/lib/layer/shared/layers/vectortile-layer.mjs +103 -103
  245. package/esm2020/lib/layer/shared/style.service.mjs +355 -355
  246. package/esm2020/lib/layer/shared/vector-style.interface.mjs +1 -1
  247. package/esm2020/lib/layer/style-modal/index.mjs +1 -1
  248. package/esm2020/lib/layer/style-modal/style-modal.component.mjs +287 -287
  249. package/esm2020/lib/layer/track-feature-button/index.mjs +1 -1
  250. package/esm2020/lib/layer/track-feature-button/track-feature-button.component.mjs +58 -58
  251. package/esm2020/lib/layer/utils/image-watcher.mjs +61 -61
  252. package/esm2020/lib/layer/utils/index.mjs +5 -5
  253. package/esm2020/lib/layer/utils/layer.utils.mjs +9 -9
  254. package/esm2020/lib/layer/utils/outputLegend.mjs +26 -26
  255. package/esm2020/lib/layer/utils/tile-watcher.mjs +49 -49
  256. package/esm2020/lib/layer/utils/vector-watcher.mjs +47 -47
  257. package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.animation.mjs +19 -19
  258. package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +96 -96
  259. package/esm2020/lib/map/baselayers-switcher/index.mjs +2 -2
  260. package/esm2020/lib/map/baselayers-switcher/mini-basemap.component.mjs +141 -133
  261. package/esm2020/lib/map/geolocate-button/geolocate-button.component.mjs +78 -78
  262. package/esm2020/lib/map/geolocate-button/index.mjs +1 -1
  263. package/esm2020/lib/map/home-extent-button/home-extent-button.component.mjs +62 -62
  264. package/esm2020/lib/map/home-extent-button/index.mjs +1 -1
  265. package/esm2020/lib/map/index.mjs +13 -13
  266. package/esm2020/lib/map/info-section/index.mjs +1 -1
  267. package/esm2020/lib/map/info-section/info-section.component.mjs +29 -29
  268. package/esm2020/lib/map/map-browser/index.mjs +1 -1
  269. package/esm2020/lib/map/map-browser/map-browser.component.mjs +65 -65
  270. package/esm2020/lib/map/map-center/index.mjs +1 -1
  271. package/esm2020/lib/map/map-center/map-center.component.mjs +49 -49
  272. package/esm2020/lib/map/map.module.mjs +126 -126
  273. package/esm2020/lib/map/menu-button/index.mjs +1 -1
  274. package/esm2020/lib/map/menu-button/menu-button.component.mjs +61 -61
  275. package/esm2020/lib/map/offline-button/index.mjs +1 -1
  276. package/esm2020/lib/map/offline-button/offline-button.component.mjs +75 -75
  277. package/esm2020/lib/map/rotation-button/index.mjs +1 -1
  278. package/esm2020/lib/map/rotation-button/rotation-button.component.mjs +69 -69
  279. package/esm2020/lib/map/shared/controllers/controller.mjs +41 -41
  280. package/esm2020/lib/map/shared/controllers/geolocation.mjs +307 -307
  281. package/esm2020/lib/map/shared/controllers/index.mjs +3 -3
  282. package/esm2020/lib/map/shared/controllers/view.mjs +350 -350
  283. package/esm2020/lib/map/shared/hover-feature.directive.mjs +502 -502
  284. package/esm2020/lib/map/shared/index.mjs +13 -13
  285. package/esm2020/lib/map/shared/linkedLayers.utils.mjs +237 -237
  286. package/esm2020/lib/map/shared/map-pointer-position.directive.mjs +106 -106
  287. package/esm2020/lib/map/shared/map.enums.mjs +5 -5
  288. package/esm2020/lib/map/shared/map.interface.mjs +1 -1
  289. package/esm2020/lib/map/shared/map.mjs +406 -406
  290. package/esm2020/lib/map/shared/map.service.mjs +28 -28
  291. package/esm2020/lib/map/shared/map.utils.mjs +463 -462
  292. package/esm2020/lib/map/shared/mapOffline.directive.mjs +162 -162
  293. package/esm2020/lib/map/shared/projection.interfaces.mjs +1 -1
  294. package/esm2020/lib/map/shared/projection.service.mjs +64 -64
  295. package/esm2020/lib/map/shared/projection.utils.mjs +63 -63
  296. package/esm2020/lib/map/swipe-control/index.mjs +1 -1
  297. package/esm2020/lib/map/swipe-control/swipe-control.component.mjs +192 -192
  298. package/esm2020/lib/map/utils/layer-watcher.mjs +78 -78
  299. package/esm2020/lib/map/wake-lock-button/index.mjs +1 -1
  300. package/esm2020/lib/map/wake-lock-button/wake-lock-button.component.mjs +113 -113
  301. package/esm2020/lib/map/zoom-button/index.mjs +1 -1
  302. package/esm2020/lib/map/zoom-button/zoom-button.component.mjs +39 -39
  303. package/esm2020/lib/measure/index.mjs +3 -3
  304. package/esm2020/lib/measure/measure.module.mjs +19 -19
  305. package/esm2020/lib/measure/measurer/measure-format.pipe.mjs +36 -36
  306. package/esm2020/lib/measure/measurer/measurer-dialog.component.mjs +179 -179
  307. package/esm2020/lib/measure/measurer/measurer-item.component.mjs +139 -139
  308. package/esm2020/lib/measure/measurer/measurer.component.mjs +1041 -1041
  309. package/esm2020/lib/measure/measurer/measurer.module.mjs +93 -93
  310. package/esm2020/lib/measure/shared/index.mjs +3 -3
  311. package/esm2020/lib/measure/shared/measure.enum.mjs +36 -36
  312. package/esm2020/lib/measure/shared/measure.interfaces.mjs +1 -1
  313. package/esm2020/lib/measure/shared/measure.utils.mjs +488 -488
  314. package/esm2020/lib/metadata/index.mjs +2 -2
  315. package/esm2020/lib/metadata/metadata-button/index.mjs +1 -1
  316. package/esm2020/lib/metadata/metadata-button/metadata-button.component.mjs +133 -133
  317. package/esm2020/lib/metadata/metadata.module.mjs +54 -54
  318. package/esm2020/lib/metadata/shared/index.mjs +2 -2
  319. package/esm2020/lib/metadata/shared/metadata.interface.mjs +1 -1
  320. package/esm2020/lib/metadata/shared/metadata.service.mjs +18 -18
  321. package/esm2020/lib/offline/geoDB/configFileToGeoDB.service.mjs +104 -104
  322. package/esm2020/lib/offline/geoDB/geoDB.enums.mjs +5 -5
  323. package/esm2020/lib/offline/geoDB/geoDB.interface.mjs +1 -1
  324. package/esm2020/lib/offline/geoDB/geoDB.service.mjs +166 -166
  325. package/esm2020/lib/offline/geoDB/index.mjs +4 -4
  326. package/esm2020/lib/offline/index.mjs +2 -2
  327. package/esm2020/lib/offline/shared/geo-network.service.mjs +65 -65
  328. package/esm2020/lib/offline/shared/index.mjs +1 -1
  329. package/esm2020/lib/overlay/index.mjs +1 -1
  330. package/esm2020/lib/overlay/overlay.module.mjs +22 -22
  331. package/esm2020/lib/overlay/shared/index.mjs +6 -6
  332. package/esm2020/lib/overlay/shared/overlay-marker-style.utils.mjs +68 -68
  333. package/esm2020/lib/overlay/shared/overlay.directive.mjs +32 -32
  334. package/esm2020/lib/overlay/shared/overlay.enum.mjs +7 -7
  335. package/esm2020/lib/overlay/shared/overlay.mjs +129 -129
  336. package/esm2020/lib/overlay/shared/overlay.service.mjs +26 -26
  337. package/esm2020/lib/overlay/shared/overlay.utils.mjs +102 -102
  338. package/esm2020/lib/print/index.mjs +3 -3
  339. package/esm2020/lib/print/print/print.component.mjs +126 -123
  340. package/esm2020/lib/print/print-form/index.mjs +1 -1
  341. package/esm2020/lib/print/print-form/print-form.component.mjs +428 -405
  342. package/esm2020/lib/print/print.module.mjs +64 -64
  343. package/esm2020/lib/print/shared/geopdf.mjs +57 -57
  344. package/esm2020/lib/print/shared/index.mjs +4 -4
  345. package/esm2020/lib/print/shared/print.interface.mjs +1 -1
  346. package/esm2020/lib/print/shared/print.service.mjs +934 -861
  347. package/esm2020/lib/print/shared/print.type.mjs +29 -29
  348. package/esm2020/lib/query/index.mjs +1 -1
  349. package/esm2020/lib/query/query.module.mjs +28 -28
  350. package/esm2020/lib/query/shared/index.mjs +6 -6
  351. package/esm2020/lib/query/shared/query-search-source.mjs +34 -34
  352. package/esm2020/lib/query/shared/query-search-source.providers.mjs +21 -21
  353. package/esm2020/lib/query/shared/query.directive.mjs +260 -260
  354. package/esm2020/lib/query/shared/query.enums.mjs +29 -29
  355. package/esm2020/lib/query/shared/query.interfaces.mjs +2 -2
  356. package/esm2020/lib/query/shared/query.service.mjs +733 -619
  357. package/esm2020/lib/query/shared/query.utils.mjs +36 -36
  358. package/esm2020/lib/search/index.mjs +11 -11
  359. package/esm2020/lib/search/search-bar/search-bar.component.mjs +512 -493
  360. package/esm2020/lib/search/search-bar/search-bar.module.mjs +74 -74
  361. package/esm2020/lib/search/search-bar/search-url-param.directive.mjs +34 -34
  362. package/esm2020/lib/search/search-results/save-feature-dialog.component.mjs +118 -0
  363. package/esm2020/lib/search/search-results/search-results-add-button.component.mjs +371 -193
  364. package/esm2020/lib/search/search-results/search-results-item.component.mjs +124 -124
  365. package/esm2020/lib/search/search-results/search-results.component.mjs +340 -340
  366. package/esm2020/lib/search/search-results/search-results.module.mjs +104 -77
  367. package/esm2020/lib/search/search-selector/search-selector.component.mjs +122 -122
  368. package/esm2020/lib/search/search-selector/search-selector.module.mjs +55 -55
  369. package/esm2020/lib/search/search-settings/search-settings.component.mjs +442 -418
  370. package/esm2020/lib/search/search-settings/search-settings.module.mjs +59 -59
  371. package/esm2020/lib/search/search.module.mjs +66 -66
  372. package/esm2020/lib/search/shared/index.mjs +8 -8
  373. package/esm2020/lib/search/shared/search-pointer-summary.directive.mjs +321 -321
  374. package/esm2020/lib/search/shared/search-source-service.providers.mjs +19 -19
  375. package/esm2020/lib/search/shared/search-source.service.mjs +46 -46
  376. package/esm2020/lib/search/shared/search.enums.mjs +3 -3
  377. package/esm2020/lib/search/shared/search.interfaces.mjs +1 -1
  378. package/esm2020/lib/search/shared/search.service.mjs +121 -118
  379. package/esm2020/lib/search/shared/search.utils.mjs +90 -90
  380. package/esm2020/lib/search/shared/sources/coordinates.interfaces.mjs +1 -1
  381. package/esm2020/lib/search/shared/sources/coordinates.mjs +153 -147
  382. package/esm2020/lib/search/shared/sources/coordinates.providers.mjs +39 -39
  383. package/esm2020/lib/search/shared/sources/icherche.interfaces.mjs +1 -1
  384. package/esm2020/lib/search/shared/sources/icherche.mjs +767 -767
  385. package/esm2020/lib/search/shared/sources/icherche.providers.mjs +65 -65
  386. package/esm2020/lib/search/shared/sources/ilayer.interfaces.mjs +1 -1
  387. package/esm2020/lib/search/shared/sources/ilayer.mjs +320 -320
  388. package/esm2020/lib/search/shared/sources/ilayer.providers.mjs +39 -39
  389. package/esm2020/lib/search/shared/sources/index.mjs +17 -17
  390. package/esm2020/lib/search/shared/sources/nominatim.interfaces.mjs +1 -1
  391. package/esm2020/lib/search/shared/sources/nominatim.mjs +251 -251
  392. package/esm2020/lib/search/shared/sources/nominatim.providers.mjs +22 -22
  393. package/esm2020/lib/search/shared/sources/source.interfaces.mjs +1 -1
  394. package/esm2020/lib/search/shared/sources/source.mjs +179 -179
  395. package/esm2020/lib/search/shared/sources/storedqueries.interfaces.mjs +1 -1
  396. package/esm2020/lib/search/shared/sources/storedqueries.mjs +424 -424
  397. package/esm2020/lib/search/shared/sources/storedqueries.providers.mjs +40 -40
  398. package/esm2020/lib/toast/index.mjs +1 -1
  399. package/esm2020/lib/toast/toast.component.mjs +112 -112
  400. package/esm2020/lib/toast/toast.module.mjs +44 -44
  401. package/esm2020/lib/utils/commonVectorStyle.interface.mjs +1 -1
  402. package/esm2020/lib/utils/commonVectorStyle.mjs +74 -74
  403. package/esm2020/lib/utils/googleLinks.mjs +12 -12
  404. package/esm2020/lib/utils/id-generator.mjs +109 -109
  405. package/esm2020/lib/utils/index.mjs +5 -5
  406. package/esm2020/lib/utils/osmLinks.mjs +9 -9
  407. package/esm2020/lib/wkt/index.mjs +1 -1
  408. package/esm2020/lib/wkt/shared/index.mjs +1 -1
  409. package/esm2020/lib/wkt/shared/wkt.service.mjs +224 -224
  410. package/esm2020/lib/wkt/wkt.module.mjs +21 -21
  411. package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +47 -47
  412. package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +35 -35
  413. package/esm2020/lib/workspace/confirmation-popup/index.mjs +2 -2
  414. package/esm2020/lib/workspace/index.mjs +7 -7
  415. package/esm2020/lib/workspace/shared/edition-workspace.mjs +279 -279
  416. package/esm2020/lib/workspace/shared/edition-workspace.service.mjs +656 -656
  417. package/esm2020/lib/workspace/shared/feature-workspace.mjs +34 -34
  418. package/esm2020/lib/workspace/shared/feature-workspace.service.mjs +149 -149
  419. package/esm2020/lib/workspace/shared/index.mjs +7 -7
  420. package/esm2020/lib/workspace/shared/wfs-workspace.mjs +34 -34
  421. package/esm2020/lib/workspace/shared/wfs-workspace.service.mjs +149 -149
  422. package/esm2020/lib/workspace/shared/wms-workspace.service.mjs +259 -259
  423. package/esm2020/lib/workspace/shared/workspace.utils.mjs +23 -23
  424. package/esm2020/lib/workspace/widgets/index.mjs +3 -3
  425. package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +46 -46
  426. package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +35 -35
  427. package/esm2020/lib/workspace/widgets/widgets.mjs +14 -14
  428. package/esm2020/lib/workspace/workspace-selector/workspace-selector.directive.mjs +132 -132
  429. package/esm2020/lib/workspace/workspace-selector/workspace-selector.module.mjs +27 -27
  430. package/esm2020/lib/workspace/workspace-updator/workspace-updator.directive.mjs +112 -112
  431. package/esm2020/lib/workspace/workspace-updator/workspace-updator.module.mjs +27 -27
  432. package/esm2020/lib/workspace/workspace.module.mjs +61 -61
  433. package/esm2020/public_api.mjs +54 -54
  434. package/fesm2015/igo2-geo.mjs +44993 -44364
  435. package/fesm2015/igo2-geo.mjs.map +1 -1
  436. package/fesm2020/igo2-geo.mjs +43075 -42470
  437. package/fesm2020/igo2-geo.mjs.map +1 -1
  438. package/index.d.ts +5 -5
  439. package/lib/catalog/catalog-browser/catalog-browser-group.component.d.ts +126 -124
  440. package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +80 -73
  441. package/lib/catalog/catalog-browser/catalog-browser.component.d.ts +105 -105
  442. package/lib/catalog/catalog-browser/catalog-browser.module.d.ts +22 -22
  443. package/lib/catalog/catalog-library/add-catalog-dialog.component.d.ts +45 -45
  444. package/lib/catalog/catalog-library/catalog-library-item.component.d.ts +25 -25
  445. package/lib/catalog/catalog-library/catalog-library.component.d.ts +65 -65
  446. package/lib/catalog/catalog-library/catalog-library.module.d.ts +26 -26
  447. package/lib/catalog/catalog.module.d.ts +14 -14
  448. package/lib/catalog/index.d.ts +4 -4
  449. package/lib/catalog/shared/catalog.abstract.d.ts +50 -50
  450. package/lib/catalog/shared/catalog.enum.d.ts +14 -14
  451. package/lib/catalog/shared/catalog.interface.d.ts +66 -66
  452. package/lib/catalog/shared/catalog.service.d.ts +36 -36
  453. package/lib/catalog/shared/index.d.ts +4 -4
  454. package/lib/datasource/datasource.module.d.ts +8 -8
  455. package/lib/datasource/index.d.ts +2 -2
  456. package/lib/datasource/shared/capabilities.service.d.ts +37 -37
  457. package/lib/datasource/shared/datasource.service.d.ts +37 -37
  458. package/lib/datasource/shared/datasources/any-datasource.d.ts +16 -16
  459. package/lib/datasource/shared/datasources/any-datasource.interface.d.ts +15 -15
  460. package/lib/datasource/shared/datasources/arcgisrest-datasource.d.ts +14 -14
  461. package/lib/datasource/shared/datasources/arcgisrest-datasource.interface.d.ts +14 -14
  462. package/lib/datasource/shared/datasources/carto-datasource.d.ts +15 -15
  463. package/lib/datasource/shared/datasources/carto-datasource.interface.d.ts +13 -13
  464. package/lib/datasource/shared/datasources/cluster-datasource.d.ts +10 -10
  465. package/lib/datasource/shared/datasources/cluster-datasource.interface.d.ts +11 -11
  466. package/lib/datasource/shared/datasources/data.service.d.ts +3 -3
  467. package/lib/datasource/shared/datasources/datasource.d.ts +20 -20
  468. package/lib/datasource/shared/datasources/datasource.interface.d.ts +100 -100
  469. package/lib/datasource/shared/datasources/feature-datasource.d.ts +12 -12
  470. package/lib/datasource/shared/datasources/feature-datasource.interface.d.ts +18 -18
  471. package/lib/datasource/shared/datasources/imagearcgisrest-datasource.d.ts +15 -15
  472. package/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.d.ts +15 -15
  473. package/lib/datasource/shared/datasources/index.d.ts +35 -35
  474. package/lib/datasource/shared/datasources/mvt-datasource.d.ts +10 -10
  475. package/lib/datasource/shared/datasources/mvt-datasource.interface.d.ts +13 -13
  476. package/lib/datasource/shared/datasources/osm-datasource.d.ts +9 -9
  477. package/lib/datasource/shared/datasources/osm-datasource.interface.d.ts +7 -7
  478. package/lib/datasource/shared/datasources/tilearcgisrest-datasource.d.ts +15 -15
  479. package/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.d.ts +14 -14
  480. package/lib/datasource/shared/datasources/tiledebug-datasource.d.ts +9 -9
  481. package/lib/datasource/shared/datasources/tiledebug-datasource.interface.d.ts +9 -9
  482. package/lib/datasource/shared/datasources/websocket-datasource.d.ts +15 -15
  483. package/lib/datasource/shared/datasources/websocket-datasource.interface.d.ts +7 -7
  484. package/lib/datasource/shared/datasources/wfs-datasource.d.ts +20 -20
  485. package/lib/datasource/shared/datasources/wfs-datasource.interface.d.ts +20 -20
  486. package/lib/datasource/shared/datasources/wfs.service.d.ts +17 -17
  487. package/lib/datasource/shared/datasources/wms-datasource.d.ts +31 -31
  488. package/lib/datasource/shared/datasources/wms-datasource.interface.d.ts +32 -32
  489. package/lib/datasource/shared/datasources/wms-wfs.utils.d.ts +41 -41
  490. package/lib/datasource/shared/datasources/wmts-datasource.d.ts +10 -10
  491. package/lib/datasource/shared/datasources/wmts-datasource.interface.d.ts +13 -13
  492. package/lib/datasource/shared/datasources/xyz-datasource.d.ts +9 -9
  493. package/lib/datasource/shared/datasources/xyz-datasource.interface.d.ts +11 -11
  494. package/lib/datasource/shared/index.d.ts +4 -4
  495. package/lib/datasource/shared/options/index.d.ts +4 -4
  496. package/lib/datasource/shared/options/options-api.interface.d.ts +4 -4
  497. package/lib/datasource/shared/options/options-api.providers.d.ts +10 -10
  498. package/lib/datasource/shared/options/options-api.service.d.ts +16 -16
  499. package/lib/datasource/shared/options/options.service.d.ts +6 -6
  500. package/lib/datasource/utils/esri-style-generator.d.ts +21 -21
  501. package/lib/datasource/utils/index.d.ts +2 -2
  502. package/lib/datasource/utils/tilegrid.d.ts +2 -2
  503. package/lib/directions/directions-buttons/directions-buttons.component.d.ts +30 -30
  504. package/lib/directions/directions-buttons/index.d.ts +1 -1
  505. package/lib/directions/directions-inputs/directions-inputs.component.d.ts +45 -45
  506. package/lib/directions/directions-inputs/index.d.ts +1 -1
  507. package/lib/directions/directions-results/directions-results.component.d.ts +30 -30
  508. package/lib/directions/directions-results/index.d.ts +1 -1
  509. package/lib/directions/directions-sources/directions-source.d.ts +7 -7
  510. package/lib/directions/directions-sources/directions-source.interface.d.ts +11 -11
  511. package/lib/directions/directions-sources/directions-source.provider.d.ts +11 -11
  512. package/lib/directions/directions-sources/index.d.ts +4 -4
  513. package/lib/directions/directions-sources/osrm-directions-source.d.ts +23 -23
  514. package/lib/directions/directions.component.d.ts +56 -56
  515. package/lib/directions/directions.module.d.ts +26 -26
  516. package/lib/directions/index.d.ts +6 -6
  517. package/lib/directions/shared/directions-source.service.d.ts +11 -11
  518. package/lib/directions/shared/directions.enum.d.ts +22 -22
  519. package/lib/directions/shared/directions.interface.d.ts +126 -126
  520. package/lib/directions/shared/directions.service.d.ts +13 -13
  521. package/lib/directions/shared/directions.utils.d.ts +42 -42
  522. package/lib/directions/shared/index.d.ts +5 -5
  523. package/lib/directions/shared/store.d.ts +18 -18
  524. package/lib/download/download-button/download-button.component.d.ts +18 -18
  525. package/lib/download/download-button/index.d.ts +1 -1
  526. package/lib/download/download.module.d.ts +14 -14
  527. package/lib/download/index.d.ts +2 -2
  528. package/lib/download/shared/download.interface.d.ts +10 -10
  529. package/lib/download/shared/download.service.d.ts +11 -11
  530. package/lib/download/shared/index.d.ts +2 -2
  531. package/lib/draw/draw/draw-layer-popup.component.d.ts +14 -14
  532. package/lib/draw/draw/draw-popup.component.d.ts +63 -63
  533. package/lib/draw/draw/draw-shorcuts.component.d.ts +5 -5
  534. package/lib/draw/draw/draw.component.d.ts +239 -239
  535. package/lib/draw/draw/draw.module.d.ts +34 -34
  536. package/lib/draw/drawingTool.module.d.ts +7 -7
  537. package/lib/draw/index.d.ts +2 -2
  538. package/lib/draw/shared/draw-icon.service.d.ts +12 -12
  539. package/lib/draw/shared/draw-style.service.d.ts +36 -36
  540. package/lib/draw/shared/draw.enum.d.ts +32 -32
  541. package/lib/draw/shared/draw.interface.d.ts +40 -40
  542. package/lib/draw/shared/draw.utils.d.ts +35 -35
  543. package/lib/draw/shared/index.d.ts +5 -5
  544. package/lib/feature/feature-details/feature-details.component.d.ts +60 -60
  545. package/lib/feature/feature-details/feature-details.directive.d.ts +19 -19
  546. package/lib/feature/feature-details/feature-details.module.d.ts +15 -15
  547. package/lib/feature/feature-form/feature-form.component.d.ts +50 -50
  548. package/lib/feature/feature-form/feature-form.module.d.ts +12 -12
  549. package/lib/feature/feature.module.d.ts +9 -9
  550. package/lib/feature/index.d.ts +3 -3
  551. package/lib/feature/shared/feature.enums.d.ts +7 -7
  552. package/lib/feature/shared/feature.interfaces.d.ts +74 -74
  553. package/lib/feature/shared/feature.utils.d.ts +104 -104
  554. package/lib/feature/shared/index.d.ts +6 -6
  555. package/lib/feature/shared/store.d.ts +71 -71
  556. package/lib/feature/shared/strategies/in-map-extent.d.ts +52 -52
  557. package/lib/feature/shared/strategies/in-map-resolution.d.ts +52 -52
  558. package/lib/feature/shared/strategies/index.d.ts +5 -5
  559. package/lib/feature/shared/strategies/loading-layer.d.ts +59 -59
  560. package/lib/feature/shared/strategies/loading.d.ts +75 -75
  561. package/lib/feature/shared/strategies/selection.d.ts +176 -176
  562. package/lib/feature/shared/strategies.utils.d.ts +17 -17
  563. package/lib/filter/filter.module.d.ts +53 -53
  564. package/lib/filter/index.d.ts +15 -15
  565. package/lib/filter/ogc-filter-button/index.d.ts +1 -1
  566. package/lib/filter/ogc-filter-button/ogc-filter-button.component.d.ts +20 -20
  567. package/lib/filter/ogc-filter-form/index.d.ts +1 -1
  568. package/lib/filter/ogc-filter-form/ogc-filter-form.component.d.ts +65 -65
  569. package/lib/filter/ogc-filter-selection/index.d.ts +1 -1
  570. package/lib/filter/ogc-filter-selection/ogc-filter-selection.component.d.ts +93 -93
  571. package/lib/filter/ogc-filter-time/index.d.ts +2 -2
  572. package/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.d.ts +39 -39
  573. package/lib/filter/ogc-filter-time/ogc-filter-time.component.d.ts +86 -86
  574. package/lib/filter/ogc-filterable-form/index.d.ts +1 -1
  575. package/lib/filter/ogc-filterable-form/ogc-filterable-form.component.d.ts +15 -15
  576. package/lib/filter/ogc-filterable-item/index.d.ts +1 -1
  577. package/lib/filter/ogc-filterable-item/ogc-filterable-item.component.d.ts +41 -41
  578. package/lib/filter/ogc-filterable-list/index.d.ts +2 -2
  579. package/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.d.ts +14 -14
  580. package/lib/filter/ogc-filterable-list/ogc-filterable-list.component.d.ts +10 -10
  581. package/lib/filter/shared/filterable-datasource.pipe.d.ts +10 -10
  582. package/lib/filter/shared/index.d.ts +11 -11
  583. package/lib/filter/shared/ogc-filter-time.service.d.ts +19 -19
  584. package/lib/filter/shared/ogc-filter.d.ts +29 -29
  585. package/lib/filter/shared/ogc-filter.enum.d.ts +27 -27
  586. package/lib/filter/shared/ogc-filter.interface.d.ts +200 -200
  587. package/lib/filter/shared/ogc-filter.service.d.ts +11 -11
  588. package/lib/filter/shared/spatial-filter.enum.d.ts +19 -19
  589. package/lib/filter/shared/spatial-filter.interface.d.ts +10 -10
  590. package/lib/filter/shared/spatial-filter.service.d.ts +37 -37
  591. package/lib/filter/shared/time-filter.enum.d.ts +10 -10
  592. package/lib/filter/shared/time-filter.interface.d.ts +29 -29
  593. package/lib/filter/shared/time-filter.service.d.ts +11 -11
  594. package/lib/filter/spatial-filter/spatial-filter-item/index.d.ts +1 -1
  595. package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +166 -166
  596. package/lib/filter/spatial-filter/spatial-filter-list/index.d.ts +1 -1
  597. package/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.d.ts +58 -58
  598. package/lib/filter/spatial-filter/spatial-filter-type/index.d.ts +1 -1
  599. package/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.d.ts +45 -45
  600. package/lib/filter/time-filter-button/index.d.ts +1 -1
  601. package/lib/filter/time-filter-button/time-filter-button.component.d.ts +20 -20
  602. package/lib/filter/time-filter-form/index.d.ts +1 -1
  603. package/lib/filter/time-filter-form/time-filter-form.component.d.ts +77 -77
  604. package/lib/filter/time-filter-item/index.d.ts +1 -1
  605. package/lib/filter/time-filter-item/time-filter-item.component.d.ts +28 -28
  606. package/lib/filter/time-filter-list/index.d.ts +2 -2
  607. package/lib/filter/time-filter-list/time-filter-list-binding.directive.d.ts +14 -14
  608. package/lib/filter/time-filter-list/time-filter-list.component.d.ts +12 -12
  609. package/lib/geo.module.d.ts +28 -28
  610. package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +206 -206
  611. package/lib/geometry/geometry-form-field/geometry-form-field.component.d.ts +88 -88
  612. package/lib/geometry/geometry-form-field/geometry-form-field.module.d.ts +19 -19
  613. package/lib/geometry/geometry.module.d.ts +8 -8
  614. package/lib/geometry/index.d.ts +3 -3
  615. package/lib/geometry/shared/controls/draw.d.ts +150 -150
  616. package/lib/geometry/shared/controls/index.d.ts +3 -3
  617. package/lib/geometry/shared/controls/modify.d.ts +228 -228
  618. package/lib/geometry/shared/controls/slice.d.ts +99 -99
  619. package/lib/geometry/shared/geometry.errors.d.ts +11 -11
  620. package/lib/geometry/shared/geometry.interfaces.d.ts +13 -13
  621. package/lib/geometry/shared/geometry.utils.d.ts +45 -45
  622. package/lib/geometry/shared/index.d.ts +4 -4
  623. package/lib/import-export/export-button/export-button.component.d.ts +16 -16
  624. package/lib/import-export/export-button/index.d.ts +1 -1
  625. package/lib/import-export/import-export/import-export.component.d.ts +104 -104
  626. package/lib/import-export/import-export/index.d.ts +1 -1
  627. package/lib/import-export/import-export.module.d.ts +26 -26
  628. package/lib/import-export/index.d.ts +4 -4
  629. package/lib/import-export/shared/drop-geo-file.directive.d.ts +36 -36
  630. package/lib/import-export/shared/export.errors.d.ts +8 -8
  631. package/lib/import-export/shared/export.interface.d.ts +11 -11
  632. package/lib/import-export/shared/export.service.d.ts +30 -30
  633. package/lib/import-export/shared/export.type.d.ts +16 -16
  634. package/lib/import-export/shared/export.utils.d.ts +19 -19
  635. package/lib/import-export/shared/import.errors.d.ts +20 -20
  636. package/lib/import-export/shared/import.interface.d.ts +8 -8
  637. package/lib/import-export/shared/import.service.d.ts +31 -31
  638. package/lib/import-export/shared/import.utils.d.ts +18 -18
  639. package/lib/import-export/shared/index.d.ts +10 -10
  640. package/lib/import-export/style-list/index.d.ts +4 -4
  641. package/lib/import-export/style-list/style-list.interface.d.ts +6 -6
  642. package/lib/import-export/style-list/style-list.module.d.ts +8 -8
  643. package/lib/import-export/style-list/style-list.provider.d.ts +15 -15
  644. package/lib/import-export/style-list/style-list.service.d.ts +18 -18
  645. package/lib/layer/index.d.ts +10 -10
  646. package/lib/layer/layer-item/index.d.ts +1 -1
  647. package/lib/layer/layer-item/layer-item.component.d.ts +62 -62
  648. package/lib/layer/layer-legend/index.d.ts +1 -1
  649. package/lib/layer/layer-legend/layer-legend.component.d.ts +90 -90
  650. package/lib/layer/layer-legend-item/index.d.ts +1 -1
  651. package/lib/layer/layer-legend-item/layer-legend-item.component.d.ts +22 -22
  652. package/lib/layer/layer-legend-list/index.d.ts +2 -2
  653. package/lib/layer/layer-legend-list/layer-legend-list-binding.directive.d.ts +16 -16
  654. package/lib/layer/layer-legend-list/layer-legend-list.component.d.ts +31 -31
  655. package/lib/layer/layer-list/index.d.ts +3 -3
  656. package/lib/layer/layer-list/layer-list-binding.directive.d.ts +19 -19
  657. package/lib/layer/layer-list/layer-list.component.d.ts +127 -127
  658. package/lib/layer/layer-list/layer-list.enum.d.ts +15 -15
  659. package/lib/layer/layer-list-tool/index.d.ts +4 -4
  660. package/lib/layer/layer-list-tool/layer-list-tool.component.d.ts +32 -32
  661. package/lib/layer/layer-list-tool/layer-list-tool.enum.d.ts +5 -5
  662. package/lib/layer/layer-list-tool/layer-list-tool.interface.d.ts +8 -8
  663. package/lib/layer/layer-list-tool/layer-list-tool.service.d.ts +14 -14
  664. package/lib/layer/layer.module.d.ts +36 -36
  665. package/lib/layer/shared/clusterParam.d.ts +13 -13
  666. package/lib/layer/shared/index.d.ts +6 -6
  667. package/lib/layer/shared/layer.enums.d.ts +1 -1
  668. package/lib/layer/shared/layer.service.d.ts +30 -30
  669. package/lib/layer/shared/layers/any-layer.d.ts +6 -6
  670. package/lib/layer/shared/layers/any-layer.interface.d.ts +6 -6
  671. package/lib/layer/shared/layers/image-layer.d.ts +22 -22
  672. package/lib/layer/shared/layers/image-layer.interface.d.ts +19 -19
  673. package/lib/layer/shared/layers/index.d.ts +12 -12
  674. package/lib/layer/shared/layers/layer.d.ts +62 -62
  675. package/lib/layer/shared/layers/layer.interface.d.ts +109 -107
  676. package/lib/layer/shared/layers/tile-layer.d.ts +31 -31
  677. package/lib/layer/shared/layers/tile-layer.interface.d.ts +20 -20
  678. package/lib/layer/shared/layers/vector-layer.d.ts +78 -78
  679. package/lib/layer/shared/layers/vector-layer.interface.d.ts +41 -41
  680. package/lib/layer/shared/layers/vectortile-layer.d.ts +28 -28
  681. package/lib/layer/shared/layers/vectortile-layer.interface.d.ts +18 -18
  682. package/lib/layer/shared/style.service.d.ts +57 -57
  683. package/lib/layer/shared/vector-style.interface.d.ts +38 -38
  684. package/lib/layer/style-modal/index.d.ts +1 -1
  685. package/lib/layer/style-modal/style-modal.component.d.ts +42 -42
  686. package/lib/layer/track-feature-button/index.d.ts +1 -1
  687. package/lib/layer/track-feature-button/track-feature-button.component.d.ts +15 -15
  688. package/lib/layer/utils/image-watcher.d.ts +17 -17
  689. package/lib/layer/utils/index.d.ts +5 -5
  690. package/lib/layer/utils/layer.utils.d.ts +2 -2
  691. package/lib/layer/utils/outputLegend.d.ts +7 -7
  692. package/lib/layer/utils/tile-watcher.d.ts +14 -14
  693. package/lib/layer/utils/vector-watcher.d.ts +13 -13
  694. package/lib/map/baselayers-switcher/baselayers-switcher.animation.d.ts +2 -2
  695. package/lib/map/baselayers-switcher/baselayers-switcher.component.d.ts +21 -21
  696. package/lib/map/baselayers-switcher/index.d.ts +2 -2
  697. package/lib/map/baselayers-switcher/mini-basemap.component.d.ts +29 -26
  698. package/lib/map/geolocate-button/geolocate-button.component.d.ts +22 -22
  699. package/lib/map/geolocate-button/index.d.ts +1 -1
  700. package/lib/map/home-extent-button/home-extent-button.component.d.ts +20 -20
  701. package/lib/map/home-extent-button/index.d.ts +1 -1
  702. package/lib/map/index.d.ts +13 -13
  703. package/lib/map/info-section/index.d.ts +1 -1
  704. package/lib/map/info-section/info-section.component.d.ts +7 -7
  705. package/lib/map/map-browser/index.d.ts +1 -1
  706. package/lib/map/map-browser/map-browser.component.d.ts +25 -25
  707. package/lib/map/map-center/index.d.ts +1 -1
  708. package/lib/map/map-center/map-center.component.d.ts +31 -31
  709. package/lib/map/map.module.d.ts +28 -28
  710. package/lib/map/menu-button/index.d.ts +1 -1
  711. package/lib/map/menu-button/menu-button.component.d.ts +17 -17
  712. package/lib/map/offline-button/index.d.ts +1 -1
  713. package/lib/map/offline-button/offline-button.component.d.ts +23 -23
  714. package/lib/map/rotation-button/index.d.ts +1 -1
  715. package/lib/map/rotation-button/rotation-button.component.d.ts +17 -17
  716. package/lib/map/shared/controllers/controller.d.ts +29 -29
  717. package/lib/map/shared/controllers/geolocation.d.ts +112 -112
  718. package/lib/map/shared/controllers/index.d.ts +3 -3
  719. package/lib/map/shared/controllers/view.d.ts +200 -200
  720. package/lib/map/shared/hover-feature.directive.d.ts +132 -132
  721. package/lib/map/shared/index.d.ts +13 -13
  722. package/lib/map/shared/linkedLayers.utils.d.ts +17 -17
  723. package/lib/map/shared/map-pointer-position.directive.d.ts +71 -71
  724. package/lib/map/shared/map.d.ts +135 -135
  725. package/lib/map/shared/map.enums.d.ts +4 -4
  726. package/lib/map/shared/map.interface.d.ts +57 -57
  727. package/lib/map/shared/map.service.d.ts +19 -19
  728. package/lib/map/shared/map.utils.d.ts +90 -89
  729. package/lib/map/shared/mapOffline.directive.d.ts +21 -21
  730. package/lib/map/shared/projection.interfaces.d.ts +29 -29
  731. package/lib/map/shared/projection.service.d.ts +19 -19
  732. package/lib/map/shared/projection.utils.d.ts +19 -19
  733. package/lib/map/swipe-control/index.d.ts +1 -1
  734. package/lib/map/swipe-control/swipe-control.component.d.ts +97 -97
  735. package/lib/map/utils/layer-watcher.d.ts +20 -20
  736. package/lib/map/wake-lock-button/index.d.ts +1 -1
  737. package/lib/map/wake-lock-button/wake-lock-button.component.d.ts +30 -30
  738. package/lib/map/zoom-button/index.d.ts +1 -1
  739. package/lib/map/zoom-button/zoom-button.component.d.ts +12 -12
  740. package/lib/measure/index.d.ts +3 -3
  741. package/lib/measure/measure.module.d.ts +7 -7
  742. package/lib/measure/measurer/measure-format.pipe.d.ts +15 -15
  743. package/lib/measure/measurer/measurer-dialog.component.d.ts +14 -14
  744. package/lib/measure/measurer/measurer-item.component.d.ts +66 -66
  745. package/lib/measure/measurer/measurer.component.d.ts +405 -405
  746. package/lib/measure/measurer/measurer.module.d.ts +25 -25
  747. package/lib/measure/shared/index.d.ts +3 -3
  748. package/lib/measure/shared/measure.enum.d.ts +33 -33
  749. package/lib/measure/shared/measure.interfaces.d.ts +21 -21
  750. package/lib/measure/shared/measure.utils.d.ts +180 -180
  751. package/lib/metadata/index.d.ts +2 -2
  752. package/lib/metadata/metadata-button/index.d.ts +1 -1
  753. package/lib/metadata/metadata-button/metadata-button.component.d.ts +26 -26
  754. package/lib/metadata/metadata.module.d.ts +15 -15
  755. package/lib/metadata/shared/index.d.ts +2 -2
  756. package/lib/metadata/shared/metadata.interface.d.ts +13 -13
  757. package/lib/metadata/shared/metadata.service.d.ts +8 -8
  758. package/lib/offline/geoDB/configFileToGeoDB.service.d.ts +14 -14
  759. package/lib/offline/geoDB/geoDB.enums.d.ts +4 -4
  760. package/lib/offline/geoDB/geoDB.interface.d.ts +19 -19
  761. package/lib/offline/geoDB/geoDB.service.d.ts +37 -37
  762. package/lib/offline/geoDB/index.d.ts +4 -4
  763. package/lib/offline/index.d.ts +2 -2
  764. package/lib/offline/shared/geo-network.service.d.ts +28 -28
  765. package/lib/offline/shared/index.d.ts +1 -1
  766. package/lib/overlay/index.d.ts +1 -1
  767. package/lib/overlay/overlay.module.d.ts +9 -9
  768. package/lib/overlay/shared/index.d.ts +6 -6
  769. package/lib/overlay/shared/overlay-marker-style.utils.d.ts +11 -11
  770. package/lib/overlay/shared/overlay.d.ts +81 -81
  771. package/lib/overlay/shared/overlay.directive.d.ts +18 -18
  772. package/lib/overlay/shared/overlay.enum.d.ts +6 -6
  773. package/lib/overlay/shared/overlay.service.d.ts +14 -14
  774. package/lib/overlay/shared/overlay.utils.d.ts +17 -17
  775. package/lib/print/index.d.ts +3 -3
  776. package/lib/print/print/print.component.d.ts +35 -35
  777. package/lib/print/print-form/index.d.ts +1 -1
  778. package/lib/print/print-form/print-form.component.d.ts +97 -97
  779. package/lib/print/print.module.d.ts +19 -19
  780. package/lib/print/shared/geopdf.d.ts +1 -1
  781. package/lib/print/shared/index.d.ts +4 -4
  782. package/lib/print/shared/print.interface.d.ts +22 -22
  783. package/lib/print/shared/print.service.d.ts +168 -159
  784. package/lib/print/shared/print.type.d.ts +45 -45
  785. package/lib/query/index.d.ts +1 -1
  786. package/lib/query/query.module.d.ts +11 -11
  787. package/lib/query/shared/index.d.ts +6 -6
  788. package/lib/query/shared/query-search-source.d.ts +17 -17
  789. package/lib/query/shared/query-search-source.providers.d.ts +17 -17
  790. package/lib/query/shared/query.directive.d.ts +105 -105
  791. package/lib/query/shared/query.enums.d.ts +26 -26
  792. package/lib/query/shared/query.interfaces.d.ts +35 -28
  793. package/lib/query/shared/query.service.d.ts +56 -54
  794. package/lib/query/shared/query.utils.d.ts +27 -27
  795. package/lib/search/index.d.ts +11 -11
  796. package/lib/search/search-bar/search-bar.component.d.ts +230 -220
  797. package/lib/search/search-bar/search-bar.module.d.ts +23 -23
  798. package/lib/search/search-bar/search-url-param.directive.d.ts +13 -13
  799. package/lib/search/search-results/save-feature-dialog.component.d.ts +32 -0
  800. package/lib/search/search-results/search-results-add-button.component.d.ts +76 -58
  801. package/lib/search/search-results/search-results-item.component.d.ts +47 -48
  802. package/lib/search/search-results/search-results.component.d.ts +161 -161
  803. package/lib/search/search-results/search-results.module.d.ts +28 -21
  804. package/lib/search/search-selector/search-selector.component.d.ts +58 -58
  805. package/lib/search/search-selector/search-selector.module.d.ts +19 -19
  806. package/lib/search/search-settings/search-settings.component.d.ts +102 -96
  807. package/lib/search/search-settings/search-settings.module.d.ts +20 -20
  808. package/lib/search/search.module.d.ts +14 -14
  809. package/lib/search/shared/index.d.ts +8 -8
  810. package/lib/search/shared/search-pointer-summary.directive.d.ts +133 -133
  811. package/lib/search/shared/search-source-service.providers.d.ts +15 -15
  812. package/lib/search/shared/search-source.service.d.ts +32 -32
  813. package/lib/search/shared/search.enums.d.ts +1 -1
  814. package/lib/search/shared/search.interfaces.d.ts +29 -29
  815. package/lib/search/shared/search.service.d.ts +53 -51
  816. package/lib/search/shared/search.utils.d.ts +39 -39
  817. package/lib/search/shared/sources/coordinates.d.ts +40 -40
  818. package/lib/search/shared/sources/coordinates.interfaces.d.ts +12 -12
  819. package/lib/search/shared/sources/coordinates.providers.d.ts +31 -31
  820. package/lib/search/shared/sources/icherche.d.ts +96 -96
  821. package/lib/search/shared/sources/icherche.interfaces.d.ts +30 -30
  822. package/lib/search/shared/sources/icherche.providers.d.ts +46 -46
  823. package/lib/search/shared/sources/ilayer.d.ts +55 -55
  824. package/lib/search/shared/sources/ilayer.interfaces.d.ts +47 -47
  825. package/lib/search/shared/sources/ilayer.providers.d.ts +31 -31
  826. package/lib/search/shared/sources/index.d.ts +17 -17
  827. package/lib/search/shared/sources/nominatim.d.ts +45 -45
  828. package/lib/search/shared/sources/nominatim.interfaces.d.ts +10 -10
  829. package/lib/search/shared/sources/nominatim.providers.d.ts +18 -18
  830. package/lib/search/shared/sources/source.d.ts +108 -108
  831. package/lib/search/shared/sources/source.interfaces.d.ts +47 -47
  832. package/lib/search/shared/sources/storedqueries.d.ts +73 -73
  833. package/lib/search/shared/sources/storedqueries.interfaces.d.ts +42 -42
  834. package/lib/search/shared/sources/storedqueries.providers.d.ts +32 -32
  835. package/lib/toast/index.d.ts +1 -1
  836. package/lib/toast/toast.component.d.ts +33 -33
  837. package/lib/toast/toast.module.d.ts +14 -14
  838. package/lib/utils/commonVectorStyle.d.ts +14 -14
  839. package/lib/utils/commonVectorStyle.interface.d.ts +16 -16
  840. package/lib/utils/googleLinks.d.ts +5 -5
  841. package/lib/utils/id-generator.d.ts +54 -54
  842. package/lib/utils/index.d.ts +5 -5
  843. package/lib/utils/osmLinks.d.ts +4 -4
  844. package/lib/wkt/index.d.ts +1 -1
  845. package/lib/wkt/shared/index.d.ts +1 -1
  846. package/lib/wkt/shared/wkt.service.d.ts +19 -19
  847. package/lib/wkt/wkt.module.d.ts +8 -8
  848. package/lib/workspace/confirmation-popup/confirmation-popup.component.d.ts +23 -23
  849. package/lib/workspace/confirmation-popup/confirmation-popup.module.d.ts +14 -14
  850. package/lib/workspace/confirmation-popup/index.d.ts +2 -2
  851. package/lib/workspace/index.d.ts +7 -7
  852. package/lib/workspace/shared/edition-workspace.d.ts +82 -82
  853. package/lib/workspace/shared/edition-workspace.service.d.ts +52 -52
  854. package/lib/workspace/shared/feature-workspace.d.ts +18 -18
  855. package/lib/workspace/shared/feature-workspace.service.d.ts +19 -19
  856. package/lib/workspace/shared/index.d.ts +7 -7
  857. package/lib/workspace/shared/wfs-workspace.d.ts +18 -18
  858. package/lib/workspace/shared/wfs-workspace.service.d.ts +19 -19
  859. package/lib/workspace/shared/wms-workspace.service.d.ts +22 -22
  860. package/lib/workspace/shared/workspace.utils.d.ts +10 -10
  861. package/lib/workspace/widgets/index.d.ts +3 -3
  862. package/lib/workspace/widgets/ogc-filter/ogc-filter.component.d.ts +29 -29
  863. package/lib/workspace/widgets/ogc-filter/ogc-filter.module.d.ts +14 -14
  864. package/lib/workspace/widgets/widgets.d.ts +9 -9
  865. package/lib/workspace/workspace-selector/workspace-selector.directive.d.ts +32 -32
  866. package/lib/workspace/workspace-selector/workspace-selector.module.d.ts +11 -11
  867. package/lib/workspace/workspace-updator/workspace-updator.directive.d.ts +26 -26
  868. package/lib/workspace/workspace-updator/workspace-updator.module.d.ts +11 -11
  869. package/lib/workspace/workspace.module.d.ts +14 -14
  870. package/package.json +4 -4
  871. package/public_api.d.ts +51 -51
@@ -1,418 +1,442 @@
1
- import { Component, Output, EventEmitter, ChangeDetectionStrategy, HostListener, Input } from '@angular/core';
2
- import { sourceCanReverseSearchAsSummary, sourceCanSearch, sourceCanReverseSearch } from '../shared/search.utils';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "../shared/search-source.service";
5
- import * as i2 from "@igo2/core";
6
- import * as i3 from "@angular/common";
7
- import * as i4 from "@angular/material/tooltip";
8
- import * as i5 from "@angular/material/icon";
9
- import * as i6 from "@angular/material/button";
10
- import * as i7 from "@angular/material/menu";
11
- import * as i8 from "@angular/material/radio";
12
- import * as i9 from "@angular/material/checkbox";
13
- import * as i10 from "@angular/material/divider";
14
- import * as i11 from "@angular/material/slide-toggle";
15
- import * as i12 from "@ngx-translate/core";
16
- function SearchSettingsComponent_div_6_Template(rf, ctx) { if (rf & 1) {
17
- const _r5 = i0.ɵɵgetCurrentView();
18
- i0.ɵɵelementStart(0, "div", 8)(1, "button", 9);
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
- i0.ɵɵtext(2);
21
- i0.ɵɵpipe(3, "translate");
22
- i0.ɵɵpipe(4, "translate");
23
- i0.ɵɵelementEnd()();
24
- } if (rf & 2) {
25
- const ctx_r1 = i0.ɵɵnextContext();
26
- i0.ɵɵadvance(2);
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
- } }
29
- function SearchSettingsComponent_ng_container_7_button_3_Template(rf, ctx) { if (rf & 1) {
30
- i0.ɵɵelementStart(0, "button", 15);
31
- i0.ɵɵtext(1);
32
- i0.ɵɵelementEnd();
33
- } if (rf & 2) {
34
- const source_r6 = i0.ɵɵnextContext().$implicit;
35
- const _r9 = i0.ɵɵreference(6);
36
- i0.ɵɵproperty("matMenuTriggerFor", _r9);
37
- i0.ɵɵadvance(1);
38
- i0.ɵɵtextInterpolate1("", source_r6.title, " ");
39
- } }
40
- function SearchSettingsComponent_ng_container_7_button_4_Template(rf, ctx) { if (rf & 1) {
41
- i0.ɵɵelementStart(0, "button", 16);
42
- i0.ɵɵtext(1);
43
- i0.ɵɵelementEnd();
44
- } if (rf & 2) {
45
- const source_r6 = i0.ɵɵnextContext().$implicit;
46
- i0.ɵɵadvance(1);
47
- i0.ɵɵtextInterpolate1(" ", source_r6.title, " ");
48
- } }
49
- function SearchSettingsComponent_ng_container_7_ng_container_7_span_6_mat_radio_button_2_Template(rf, ctx) { if (rf & 1) {
50
- const _r22 = i0.ɵɵgetCurrentView();
51
- i0.ɵɵelementStart(0, "mat-radio-button", 22);
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
- i0.ɵɵtext(1);
54
- i0.ɵɵpipe(2, "translate");
55
- i0.ɵɵelementEnd();
56
- } if (rf & 2) {
57
- const settingValue_r18 = ctx.$implicit;
58
- const ctx_r17 = i0.ɵɵnextContext(4);
59
- i0.ɵɵproperty("value", settingValue_r18)("matTooltip", ctx_r17.getAvailableHashtagsValues(settingValue_r18))("checked", settingValue_r18.enabled);
60
- i0.ɵɵadvance(1);
61
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 4, settingValue_r18.title), " ");
62
- } }
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);
66
- i0.ɵɵelementEnd()();
67
- } if (rf & 2) {
68
- const setting_r13 = i0.ɵɵnextContext().$implicit;
69
- i0.ɵɵadvance(1);
70
- i0.ɵɵproperty("value", setting_r13);
71
- i0.ɵɵadvance(1);
72
- i0.ɵɵproperty("ngForOf", setting_r13.values);
73
- } }
74
- function SearchSettingsComponent_ng_container_7_ng_container_7_span_7_div_1_Template(rf, ctx) { if (rf & 1) {
75
- const _r29 = i0.ɵɵgetCurrentView();
76
- i0.ɵɵelementStart(0, "div", 8)(1, "button", 9);
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
- i0.ɵɵtext(2);
79
- i0.ɵɵpipe(3, "translate");
80
- i0.ɵɵpipe(4, "translate");
81
- i0.ɵɵelementEnd()();
82
- } if (rf & 2) {
83
- const setting_r13 = i0.ɵɵnextContext(2).$implicit;
84
- i0.ɵɵadvance(2);
85
- i0.ɵɵtextInterpolate(setting_r13.allEnabled || setting_r13.allEnabled === undefined ? i0.ɵɵpipeBind1(3, 1, "igo.geo.search.searchSources.settings.unselectAll") : i0.ɵɵpipeBind1(4, 3, "igo.geo.search.searchSources.settings.selectAll"));
86
- } }
87
- function SearchSettingsComponent_ng_container_7_ng_container_7_span_7_mat_checkbox_2_Template(rf, ctx) { if (rf & 1) {
88
- const _r36 = i0.ɵɵgetCurrentView();
89
- i0.ɵɵelementStart(0, "mat-checkbox", 24);
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
- i0.ɵɵtext(1);
92
- i0.ɵɵpipe(2, "translate");
93
- i0.ɵɵelementEnd();
94
- } if (rf & 2) {
95
- const settingValue_r32 = ctx.$implicit;
96
- const setting_r13 = i0.ɵɵnextContext(2).$implicit;
97
- const ctx_r26 = i0.ɵɵnextContext(2);
98
- i0.ɵɵstyleProp("display", ctx_r26.displayBlock);
99
- i0.ɵɵproperty("checked", settingValue_r32.enabled)("value", setting_r13)("matTooltip", ctx_r26.getAvailableHashtagsValues(settingValue_r32));
100
- i0.ɵɵadvance(1);
101
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 6, settingValue_r32.title), " ");
102
- } }
103
- function SearchSettingsComponent_ng_container_7_ng_container_7_span_7_Template(rf, ctx) { if (rf & 1) {
104
- i0.ɵɵelementStart(0, "span");
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);
107
- i0.ɵɵelementEnd();
108
- } if (rf & 2) {
109
- const setting_r13 = i0.ɵɵnextContext().$implicit;
110
- const ctx_r16 = i0.ɵɵnextContext(2);
111
- i0.ɵɵadvance(1);
112
- i0.ɵɵproperty("ngIf", setting_r13.values.length > 3);
113
- i0.ɵɵadvance(1);
114
- i0.ɵɵproperty("ngForOf", ctx_r16.getAvailableValues(setting_r13));
115
- } }
116
- function SearchSettingsComponent_ng_container_7_ng_container_7_Template(rf, ctx) { if (rf & 1) {
117
- i0.ɵɵelementContainerStart(0);
118
- i0.ɵɵelementStart(1, "button", 15);
119
- i0.ɵɵtext(2);
120
- i0.ɵɵpipe(3, "translate");
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);
125
- i0.ɵɵelementEnd();
126
- i0.ɵɵelementContainerEnd();
127
- } if (rf & 2) {
128
- const setting_r13 = ctx.$implicit;
129
- const _r14 = i0.ɵɵreference(5);
130
- i0.ɵɵadvance(1);
131
- i0.ɵɵproperty("matMenuTriggerFor", _r14);
132
- i0.ɵɵadvance(1);
133
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 5, "igo.geo.search.searchSources.settings." + setting_r13.title), " ");
134
- i0.ɵɵadvance(2);
135
- i0.ɵɵproperty("ngSwitch", setting_r13.type);
136
- i0.ɵɵadvance(2);
137
- i0.ɵɵproperty("ngSwitchCase", "radiobutton");
138
- i0.ɵɵadvance(1);
139
- i0.ɵɵproperty("ngSwitchCase", "checkbox");
140
- } }
141
- function SearchSettingsComponent_ng_container_7_Template(rf, ctx) { if (rf & 1) {
142
- const _r42 = i0.ɵɵgetCurrentView();
143
- i0.ɵɵelementContainerStart(0);
144
- i0.ɵɵelementStart(1, "span", 10)(2, "mat-checkbox", 11);
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
- 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);
149
- i0.ɵɵelementEnd();
150
- i0.ɵɵelementStart(5, "mat-menu", null, 14);
151
- i0.ɵɵtemplate(7, SearchSettingsComponent_ng_container_7_ng_container_7_Template, 8, 7, "ng-container", 6);
152
- i0.ɵɵelementEnd();
153
- i0.ɵɵelementContainerEnd();
154
- } if (rf & 2) {
155
- const source_r6 = ctx.$implicit;
156
- i0.ɵɵadvance(2);
157
- i0.ɵɵproperty("checked", source_r6.enabled)("value", source_r6);
158
- i0.ɵɵadvance(1);
159
- i0.ɵɵproperty("ngIf", source_r6.settings.length > 0);
160
- i0.ɵɵadvance(1);
161
- i0.ɵɵproperty("ngIf", source_r6.settings.length === 0);
162
- i0.ɵɵadvance(3);
163
- i0.ɵɵproperty("ngForOf", source_r6.settings);
164
- } }
165
- function SearchSettingsComponent_span_8_Template(rf, ctx) { if (rf & 1) {
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");
180
- i0.ɵɵelementEnd()()();
181
- } if (rf & 2) {
182
- const ctx_r3 = i0.ɵɵnextContext();
183
- i0.ɵɵadvance(3);
184
- i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(4, 8, "igo.geo.search.pointerSearchSummary.tooltip"))("checked", ctx_r3.pointerSummaryEnabled)("labelPosition", "after");
185
- i0.ɵɵadvance(2);
186
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(6, 10, "igo.geo.search.pointerSearchSummary.title"), " ");
187
- i0.ɵɵadvance(2);
188
- i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(8, 12, "igo.geo.search.searchResultsGeometry.tooltip"))("checked", ctx_r3.searchResultsGeometryEnabled)("labelPosition", "after");
189
- i0.ɵɵadvance(2);
190
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(10, 14, "igo.geo.search.searchResultsGeometry.title"), " ");
191
- } }
192
- /**
193
- * This component allows a user to select a search type yo enable. In it's
194
- * current version, only one search type can be selected at once (radio). If
195
- * this component were to support more than one search source enabled (checkbox),
196
- * the searchbar component would require a small change to it's
197
- * placeholder getter. The search source service already supports having
198
- * more than one search source enabled.
199
- */
200
- export class SearchSettingsComponent {
201
- constructor(searchSourceService, mediaService, storageService) {
202
- this.searchSourceService = searchSourceService;
203
- this.mediaService = mediaService;
204
- this.storageService = storageService;
205
- this.hasPointerReverseSearchSource = false;
206
- this.searchSourcesAllEnabled = false;
207
- this.buffer = [];
208
- this.lastKeyTime = Date.now();
209
- this.displayBlock = 'block';
210
- this.pointerSummaryEnabled = false;
211
- this.searchResultsGeometryEnabled = false;
212
- /**
213
- * Event emitted when the enabled search source changes
214
- */
215
- this.searchSourceChange = new EventEmitter();
216
- /**
217
- * Event emitted when the pointer summary is activated
218
- */
219
- this.pointerSummaryStatus = new EventEmitter();
220
- /**
221
- * Event emitted when the show geometry summary is changed
222
- */
223
- this.searchResultsGeometryStatus = new EventEmitter();
224
- }
225
- get isTouchScreen() {
226
- return this.mediaService.isTouchScreen();
227
- }
228
- handleKeyboardEvent(event) {
229
- if (event.key === 'F2') {
230
- this.pointerSummaryEnabled = !this.pointerSummaryEnabled;
231
- this.pointerSummaryStatus.emit(this.pointerSummaryEnabled);
232
- }
233
- }
234
- ngOnInit() {
235
- this.hasPointerReverseSearchSource = this.hasReverseSearchSourcesForPointerSummary();
236
- }
237
- /**
238
- * Get all search sources
239
- * @internal
240
- */
241
- getSearchSources() {
242
- const textSearchSources = this.searchSourceService
243
- .getSources()
244
- .filter(sourceCanSearch)
245
- .filter((s) => s.available && s.getId() !== 'map' && s.showInSettings);
246
- const reverseSearchSources = this.searchSourceService
247
- .getSources()
248
- .filter(sourceCanReverseSearch)
249
- .filter((s) => s.available && s.getId() !== 'map' && s.showInSettings);
250
- const sources = textSearchSources.concat(reverseSearchSources);
251
- this.computeSourcesCheckAllBehavior(sources);
252
- return sources;
253
- }
254
- /**
255
- * Get all search sources usable for pointer summary
256
- * @internal
257
- */
258
- hasReverseSearchSourcesForPointerSummary() {
259
- if (this.searchSourceService
260
- .getEnabledSources()
261
- .filter(sourceCanReverseSearchAsSummary).length) {
262
- return true;
263
- }
264
- else {
265
- return false;
266
- }
267
- }
268
- /**
269
- * Triggered when a setting is checked (checkbox style)
270
- * @internal
271
- */
272
- settingsValueCheckedCheckbox(event, source, setting, settingValue) {
273
- settingValue.enabled = event.checked;
274
- source.setParamFromSetting(setting);
275
- this.searchSourceChange.emit(source);
276
- }
277
- /**
278
- * Defining the action to do for check/uncheck checkboxes (settings)
279
- * return true if all checkbox must be checked
280
- * return false if all checkbox must be unchecked
281
- * @internal
282
- */
283
- computeSettingCheckAllBehavior(setting) {
284
- if (setting.allEnabled === undefined) {
285
- if (setting.values.find((settingValue) => settingValue.enabled)) {
286
- setting.allEnabled = false;
287
- }
288
- else {
289
- setting.allEnabled = true;
290
- }
291
- }
292
- else {
293
- setting.allEnabled = !setting.allEnabled;
294
- }
295
- }
296
- /**
297
- * Defining the action to do for check/uncheck checkboxes (sources)
298
- * return true if all checkbox must be checked
299
- * return false if all checkbox must be unchecked
300
- * @internal
301
- */
302
- computeSourcesCheckAllBehavior(sources) {
303
- const enabledSourcesCnt = sources.filter((source) => source.enabled).length;
304
- const disabledSourcesCnt = sources.filter((source) => !source.enabled)
305
- .length;
306
- this.searchSourcesAllEnabled =
307
- enabledSourcesCnt >= disabledSourcesCnt ? false : true;
308
- }
309
- /**
310
- * Triggered when the check all / uncheck all type is clicked,
311
- * @internal
312
- */
313
- checkUncheckAll(event, source, setting) {
314
- event.stopPropagation();
315
- this.computeSettingCheckAllBehavior(setting);
316
- setting.values.forEach((settingValue) => {
317
- settingValue.enabled = setting.allEnabled;
318
- });
319
- source.setParamFromSetting(setting);
320
- this.searchSourceChange.emit(source);
321
- }
322
- /**
323
- * Triggered when the check all / uncheck all type is clicked,
324
- * @internal
325
- */
326
- checkUncheckAllSources(event) {
327
- event.stopPropagation();
328
- this.getSearchSources().map((source) => {
329
- source.enabled = this.searchSourcesAllEnabled;
330
- this.searchSourceChange.emit(source);
331
- });
332
- }
333
- /**
334
- * Triggered when a setting is checked (radiobutton style)
335
- * @internal
336
- */
337
- settingsValueCheckedRadioButton(event, source, setting, settingValue) {
338
- setting.values.forEach((conf) => {
339
- if (conf.value !== settingValue.value) {
340
- conf.enabled = !event.source.checked;
341
- }
342
- else {
343
- conf.enabled = event.source.checked;
344
- }
345
- });
346
- source.setParamFromSetting(setting);
347
- this.searchSourceChange.emit(source);
348
- }
349
- onCheckSearchSource(event, source) {
350
- source.enabled = event.checked;
351
- const storage = (this.storageService.get(source.getId() + '.options') || {});
352
- storage.enabled = source.enabled;
353
- this.storageService.set(source.getId() + '.options', storage);
354
- this.searchSourceChange.emit(source);
355
- }
356
- getAvailableValues(setting) {
357
- return setting.values.filter((s) => s.available !== false);
358
- }
359
- getAvailableHashtagsValues(setting) {
360
- if (setting.hashtags) {
361
- return setting.hashtags.map((h) => '#' + h).join(', ');
362
- }
363
- return;
364
- }
365
- stopPropagation(event) {
366
- event.stopPropagation();
367
- }
368
- changePointerReverseSearch(event) {
369
- this.pointerSummaryEnabled = event.checked;
370
- this.pointerSummaryStatus.emit(this.pointerSummaryEnabled);
371
- }
372
- changeSearchResultsGeometry(event) {
373
- this.searchResultsGeometryEnabled = event.checked;
374
- this.searchResultsGeometryStatus.emit(this.searchResultsGeometryEnabled);
375
- }
376
- }
377
- SearchSettingsComponent.ɵfac = function SearchSettingsComponent_Factory(t) { return new (t || SearchSettingsComponent)(i0.ɵɵdirectiveInject(i1.SearchSourceService), i0.ɵɵdirectiveInject(i2.MediaService), i0.ɵɵdirectiveInject(i2.StorageService)); };
378
- SearchSettingsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SearchSettingsComponent, selectors: [["igo-search-settings"]], hostBindings: function SearchSettingsComponent_HostBindings(rf, ctx) { if (rf & 1) {
379
- i0.ɵɵlistener("keydown", function SearchSettingsComponent_keydown_HostBindingHandler($event) { return ctx.handleKeyboardEvent($event); }, false, i0.ɵɵresolveDocument);
380
- } }, inputs: { pointerSummaryEnabled: "pointerSummaryEnabled", searchResultsGeometryEnabled: "searchResultsGeometryEnabled" }, outputs: { searchSourceChange: "searchSourceChange", pointerSummaryStatus: "pointerSummaryStatus", searchResultsGeometryStatus: "searchResultsGeometryStatus" }, 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, "pointer-summary-option", 3, "matTooltip", "checked", "labelPosition", "change", "click"]], template: function SearchSettingsComponent_Template(rf, ctx) { if (rf & 1) {
381
- i0.ɵɵelementStart(0, "div", 0)(1, "button", 1);
382
- i0.ɵɵpipe(2, "translate");
383
- i0.ɵɵelement(3, "mat-icon", 2);
384
- i0.ɵɵelementEnd();
385
- i0.ɵɵelementStart(4, "mat-menu", 3, 4);
386
- i0.ɵɵtemplate(6, SearchSettingsComponent_div_6_Template, 5, 5, "div", 5);
387
- i0.ɵɵtemplate(7, SearchSettingsComponent_ng_container_7_Template, 8, 5, "ng-container", 6);
388
- i0.ɵɵtemplate(8, SearchSettingsComponent_span_8_Template, 11, 16, "span", 7);
389
- i0.ɵɵelementEnd()();
390
- } if (rf & 2) {
391
- const _r0 = i0.ɵɵreference(5);
392
- i0.ɵɵadvance(1);
393
- i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(2, 5, "igo.geo.search.menu.tooltip"))("matMenuTriggerFor", _r0);
394
- i0.ɵɵadvance(5);
395
- i0.ɵɵproperty("ngIf", ctx.getSearchSources().length > 4);
396
- i0.ɵɵadvance(1);
397
- i0.ɵɵproperty("ngForOf", ctx.getSearchSources());
398
- i0.ɵɵadvance(1);
399
- i0.ɵɵproperty("ngIf", ctx.hasPointerReverseSearchSource && !ctx.isTouchScreen);
400
- } }, 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}.pointer-summary-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 });
401
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SearchSettingsComponent, [{
402
- type: Component,
403
- 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=\"pointer-summary-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=\"pointer-summary-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 </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}.pointer-summary-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"] }]
404
- }], function () { return [{ type: i1.SearchSourceService }, { type: i2.MediaService }, { type: i2.StorageService }]; }, { pointerSummaryEnabled: [{
405
- type: Input
406
- }], searchResultsGeometryEnabled: [{
407
- type: Input
408
- }], searchSourceChange: [{
409
- type: Output
410
- }], pointerSummaryStatus: [{
411
- type: Output
412
- }], searchResultsGeometryStatus: [{
413
- type: Output
414
- }], handleKeyboardEvent: [{
415
- type: HostListener,
416
- args: ['document:keydown', ['$event']]
417
- }] }); })();
418
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXNldHRpbmdzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL3NlYXJjaC9zZWFyY2gtc2V0dGluZ3Mvc2VhcmNoLXNldHRpbmdzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL3NlYXJjaC9zZWFyY2gtc2V0dGluZ3Mvc2VhcmNoLXNldHRpbmdzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFlBQVksRUFDWix1QkFBdUIsRUFFdkIsWUFBWSxFQUNaLEtBQUssRUFDTixNQUFNLGVBQWUsQ0FBQztBQVF2QixPQUFPLEVBQ0wsK0JBQStCLEVBQy9CLGVBQWUsRUFDZixzQkFBc0IsRUFDdkIsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztJQ1I1Qiw4QkFBZ0UsZ0JBQUE7SUFFNUQsMEtBQVMsZUFBQSxxQ0FBOEIsQ0FBQSxJQUFDO0lBQUMsWUFBZ0o7OztJQUFBLGlCQUFTLEVBQUE7OztJQUF6SixlQUFnSjtJQUFoSix5TEFBZ0o7OztJQVd2TCxrQ0FFZ0I7SUFBQSxZQUNoQjtJQUFBLGlCQUFTOzs7O0lBRlAsdUNBQThCO0lBQ2hCLGVBQ2hCO0lBRGdCLCtDQUNoQjs7O0lBQ0Esa0NBRXVDO0lBQ3JDLFlBQ0Y7SUFBQSxpQkFBUzs7O0lBRFAsZUFDRjtJQURFLGdEQUNGOzs7O0lBZ0JVLDRDQU1vRjtJQURsRiw0S0FBUyx3QkFBd0IsSUFBQyxvWUFDeEIsZUFBQSx5RkFBc0UsQ0FBQSxJQUQ5QztJQUVsQyxZQUNGOztJQUFBLGlCQUFtQjs7OztJQU5qQix3Q0FBc0Isb0VBQUEscUNBQUE7SUFLdEIsZUFDRjtJQURFLDZFQUNGOzs7SUFaSiw0QkFBb0MsMEJBQUE7SUFJaEMsd0lBUW1CO0lBQ3JCLGlCQUFr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ZXRDLHFCQUFxQjtrQkFBN0IsS0FBSztZQUNHLDRCQUE0QjtrQkFBcEMsS0FBSztZQUtJLGtCQUFrQjtrQkFBM0IsTUFBTTtZQUtHLG9CQUFvQjtrQkFBN0IsTUFBTTtZQUtHLDJCQUEyQjtrQkFBcEMsTUFBTTtZQUdQLG1CQUFtQjtrQkFEbEIsWUFBWTttQkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1hdENoZWNrYm94Q2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHsgTWF0UmFkaW9DaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbyc7XG5cbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBPbkluaXQsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNlYXJjaFNvdXJjZVNlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQvc2VhcmNoLXNvdXJjZS5zZXJ2aWNlJztcbmltcG9ydCB7IFNlYXJjaFNvdXJjZSB9IGZyb20gJy4uL3NoYXJlZC9zb3VyY2VzL3NvdXJjZSc7XG5pbXBvcnQge1xuICBTZWFyY2hTb3VyY2VTZXR0aW5ncyxcbiAgU2V0dGluZ09wdGlvbnNcbn0gZnJvbSAnLi4vc2hhcmVkL3NvdXJjZXMvc291cmNlLmludGVyZmFjZXMnO1xuaW1wb3J0IHtcbiAgc291cmNlQ2FuUmV2ZXJzZVNlYXJjaEFzU3VtbWFyeSxcbiAgc291cmNlQ2FuU2VhcmNoLFxuICBzb3VyY2VDYW5SZXZlcnNlU2VhcmNoXG59IGZyb20gJy4uL3NoYXJlZC9zZWFyY2gudXRpbHMnO1xuaW1wb3J0IHsgTWVkaWFTZXJ2aWNlLCBTdG9yYWdlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IGFsbG93cyBhIHVzZXIgdG8gc2VsZWN0IGEgc2VhcmNoIHR5cGUgeW8gZW5hYmxlLiBJbiBpdCdzXG4gKiBjdXJyZW50IHZlcnNpb24sIG9ubHkgb25lIHNlYXJjaCB0eXBlIGNhbiBiZSBzZWxlY3RlZCBhdCBvbmNlIChyYWRpbykuIElmXG4gKiB0aGlzIGNvbXBvbmVudCB3ZXJlIHRvIHN1cHBvcnQgbW9yZSB0aGFuIG9uZSBzZWFyY2ggc291cmNlIGVuYWJsZWQgKGNoZWNrYm94KSxcbiAqIHRoZSBzZWFyY2hiYXIgY29tcG9uZW50IHdvdWxkIHJlcXVpcmUgYSBzbWFsbCBjaGFuZ2UgdG8gaXQnc1xuICogcGxhY2Vob2xkZXIgZ2V0dGVyLiBUaGUgc2VhcmNoIHNvdXJjZSBzZXJ2aWNlIGFscmVhZHkgc3VwcG9ydHMgaGF2aW5nXG4gKiBtb3JlIHRoYW4gb25lIHNlYXJjaCBzb3VyY2UgZW5hYmxlZC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWdvLXNlYXJjaC1zZXR0aW5ncycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtc2V0dGluZ3MuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWFyY2gtc2V0dGluZ3MuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoU2V0dGluZ3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwdWJsaWMgaGFzUG9pbnRlclJldmVyc2VTZWFyY2hTb3VyY2U6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIHNlYXJjaFNvdXJjZXNBbGxFbmFibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIGJ1ZmZlciA9IFtdO1xuICBwdWJsaWMgbGFzdEtleVRpbWUgPSBEYXRlLm5vdygpO1xuXG4gIHB1YmxpYyBkaXNwbGF5QmxvY2sgPSAnYmxvY2snO1xuXG4gIGdldCBpc1RvdWNoU2NyZWVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm1lZGlhU2VydmljZS5pc1RvdWNoU2NyZWVuKCk7XG4gIH1cblxuICBASW5wdXQoKSBwb2ludGVyU3VtbWFyeUVuYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2VhcmNoUmVzdWx0c0dlb21ldHJ5RW5hYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGVuYWJsZWQgc2VhcmNoIHNvdXJjZSBjaGFuZ2VzXG4gICAqL1xuICBAT3V0cHV0KCkgc2VhcmNoU291cmNlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTZWFyY2hTb3VyY2U+KCk7XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgcG9pbnRlciBzdW1tYXJ5IGlzIGFjdGl2YXRlZFxuICAgKi9cbiAgQE91dHB1dCgpIHBvaW50ZXJTdW1tYXJ5U3RhdHVzID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHNob3cgZ2VvbWV0cnkgc3VtbWFyeSBpcyBjaGFuZ2VkXG4gICAqL1xuICBAT3V0cHV0KCkgc2VhcmNoUmVzdWx0c0dlb21ldHJ5U3RhdHVzID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nLCBbJyRldmVudCddKVxuICBoYW5kbGVLZXlib2FyZEV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0YyJykge1xuICAgICAgdGhpcy5wb2ludGVyU3VtbWFyeUVuYWJsZWQgPSAhdGhpcy5wb2ludGVyU3VtbWFyeUVuYWJsZWQ7XG4gICAgICB0aGlzLnBvaW50ZXJTdW1tYXJ5U3RhdHVzLmVtaXQodGhpcy5wb2ludGVyU3VtbWFyeUVuYWJsZWQpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc2VhcmNoU291cmNlU2VydmljZTogU2VhcmNoU291cmNlU2VydmljZSxcbiAgICBwcml2YXRlIG1lZGlhU2VydmljZTogTWVkaWFTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmhhc1BvaW50ZXJSZXZlcnNlU2VhcmNoU291cmNlID0gdGhpcy5oYXNSZXZlcnNlU2VhcmNoU291cmNlc0ZvclBvaW50ZXJTdW1tYXJ5KCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFsbCBzZWFyY2ggc291cmNlc1xuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGdldFNlYXJjaFNvdXJjZXMoKTogU2VhcmNoU291cmNlW10ge1xuICAgIGNvbnN0IHRleHRTZWFyY2hTb3VyY2VzID0gdGhpcy5zZWFyY2hTb3VyY2VTZXJ2aWNlXG4gICAgICAuZ2V0U291cmNlcygpXG4gICAgICAuZmlsdGVyKHNvdXJjZUNhblNlYXJjaClcbiAgICAgIC5maWx0ZXIoKHMpID0+IHMuYXZhaWxhYmxlICYmIHMuZ2V0SWQoKSAhPT0gJ21hcCcgJiYgcy5zaG93SW5TZXR0aW5ncyk7XG5cbiAgICBjb25zdCByZXZlcnNlU2VhcmNoU291cmNlcyA9IHRoaXMuc2VhcmNoU291cmNlU2VydmljZVxuICAgICAgLmdldFNvdXJjZXMoKVxuICAgICAgLmZpbHRlcihzb3VyY2VDYW5SZXZlcnNlU2VhcmNoKVxuICAgICAgLmZpbHRlcigocykgPT4gcy5hdmFpbGFibGUgJiYgcy5nZXRJZCgpICE9PSAnbWFwJyAmJiBzLnNob3dJblNldHRpbmdzKTtcbiAgICBjb25zdCBzb3VyY2VzID0gdGV4dFNlYXJjaFNvdXJjZXMuY29uY2F0KHJldmVyc2VTZWFyY2hTb3VyY2VzKTtcbiAgICB0aGlzLmNvbXB1dGVTb3VyY2VzQ2hlY2tBbGxCZWhhdmlvcihzb3VyY2VzKTtcbiAgICByZXR1cm4gc291cmNlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYWxsIHNlYXJjaCBzb3VyY2VzIHVzYWJsZSBmb3IgcG9pbnRlciBzdW1tYXJ5XG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgaGFzUmV2ZXJzZVNlYXJjaFNvdXJjZXNGb3JQb2ludGVyU3VtbWFyeSgpOiBib29sZWFuIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLnNlYXJjaFNvdXJjZVNlcnZpY2VcbiAgICAgICAgLmdldEVuYWJsZWRTb3VyY2VzKClcbiAgICAgICAgLmZpbHRlcihzb3VyY2VDYW5SZXZlcnNlU2VhcmNoQXNTdW1tYXJ5KS5sZW5ndGhcbiAgICApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRyaWdnZXJlZCB3aGVuIGEgc2V0dGluZyBpcyBjaGVja2VkIChjaGVja2JveCBzdHlsZSlcbiAgICogQGludGVybmFsXG4gICAqL1xuICBzZXR0aW5nc1ZhbHVlQ2hlY2tlZENoZWNrYm94KFxuICAgIGV2ZW50OiBNYXRDaGVja2JveENoYW5nZSxcbiAgICBzb3VyY2U6IFNlYXJjaFNvdXJjZSxcbiAgICBzZXR0aW5nOiBTZWFyY2hTb3VyY2VTZXR0aW5ncyxcbiAgICBzZXR0aW5nVmFsdWU6IFNldHRpbmdPcHRpb25zXG4gICkge1xuICAgIHNldHRpbmdWYWx1ZS5lbmFibGVkID0gZXZlbnQuY2hlY2tlZDtcbiAgICBzb3VyY2Uuc2V0UGFyYW1Gcm9tU2V0dGluZyhzZXR0aW5nKTtcbiAgICB0aGlzLnNlYXJjaFNvdXJjZUNoYW5nZS5lbWl0KHNvdXJjZSk7XG4gIH1cblxuICAvKipcbiAgICogRGVmaW5pbmcgdGhlIGFjdGlvbiB0byBkbyBmb3IgY2hlY2svdW5jaGVjayBjaGVja2JveGVzIChzZXR0aW5ncylcbiAgICogcmV0dXJuIHRydWUgaWYgYWxsIGNoZWNrYm94IG11c3QgYmUgY2hlY2tlZFxuICAgKiByZXR1cm4gZmFsc2UgaWYgYWxsIGNoZWNrYm94IG11c3QgYmUgdW5jaGVja2VkXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgY29tcHV0ZVNldHRpbmdDaGVja0FsbEJlaGF2aW9yKHNldHRpbmc6IFNlYXJjaFNvdXJjZVNldHRpbmdzKSB7XG4gICAgaWYgKHNldHRpbmcuYWxsRW5hYmxlZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAoc2V0dGluZy52YWx1ZXMuZmluZCgoc2V0dGluZ1ZhbHVlKSA9PiBzZXR0aW5nVmFsdWUuZW5hYmxlZCkpIHtcbiAgICAgICAgc2V0dGluZy5hbGxFbmFibGVkID0gZmFsc2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXR0aW5nLmFsbEVuYWJsZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzZXR0aW5nLmFsbEVuYWJsZWQgPSAhc2V0dGluZy5hbGxFbmFibGVkO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmluZyB0aGUgYWN0aW9uIHRvIGRvIGZvciBjaGVjay91bmNoZWNrIGNoZWNrYm94ZXMgKHNvdXJjZXMpXG4gICAqIHJldHVybiB0cnVlIGlmIGFsbCBjaGVja2JveCBtdXN0IGJlIGNoZWNrZWRcbiAgICogcmV0dXJuIGZhbHNlIGlmIGFsbCBjaGVja2JveCBtdXN0IGJlIHVuY2hlY2tlZFxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGNvbXB1dGVTb3VyY2VzQ2hlY2tBbGxCZWhhdmlvcihzb3VyY2VzOiBTZWFyY2hTb3VyY2VbXSkge1xuICAgIGNvbnN0IGVuYWJsZWRTb3VyY2VzQ250ID0gc291cmNlcy5maWx0ZXIoKHNvdXJjZSkgPT4gc291cmNlLmVuYWJsZWQpLmxlbmd0aDtcbiAgICBjb25zdCBkaXNhYmxlZFNvdXJjZXNDbnQgPSBzb3VyY2VzLmZpbHRlcigoc291cmNlKSA9PiAhc291cmNlLmVuYWJsZWQpXG4gICAgICAubGVuZ3RoO1xuICAgIHRoaXMuc2VhcmNoU291cmNlc0FsbEVuYWJsZWQgPVxuICAgICAgZW5hYmxlZFNvdXJjZXNDbnQgPj0gZGlzYWJsZWRTb3VyY2VzQ250ID8gZmFsc2UgOiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyaWdnZXJlZCB3aGVuIHRoZSBjaGVjayBhbGwgLyB1bmNoZWNrIGFsbCB0eXBlIGlzIGNsaWNrZWQsXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgY2hlY2tVbmNoZWNrQWxsKGV2ZW50LCBzb3VyY2U6IFNlYXJjaFNvdXJjZSwgc2V0dGluZzogU2VhcmNoU291cmNlU2V0dGluZ3MpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmNvbXB1dGVTZXR0aW5nQ2hlY2tBbGxCZWhhdmlvcihzZXR0aW5nKTtcbiAgICBzZXR0aW5nLnZhbHVlcy5mb3JFYWNoKChzZXR0aW5nVmFsdWUpID0+IHtcbiAgICAgIHNldHRpbmdWYWx1ZS5lbmFibGVkID0gc2V0dGluZy5hbGxFbmFibGVkO1xuICAgIH0pO1xuICAgIHNvdXJjZS5zZXRQYXJhbUZyb21TZXR0aW5nKHNldHRpbmcpO1xuICAgIHRoaXMuc2VhcmNoU291cmNlQ2hhbmdlLmVtaXQoc291cmNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VyZWQgd2hlbiB0aGUgY2hlY2sgYWxsIC8gdW5jaGVjayBhbGwgdHlwZSBpcyBjbGlja2VkLFxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGNoZWNrVW5jaGVja0FsbFNvdXJjZXMoZXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmdldFNlYXJjaFNvdXJjZXMoKS5tYXAoKHNvdXJjZSkgPT4ge1xuICAgICAgc291cmNlLmVuYWJsZWQgPSB0aGlzLnNlYXJjaFNvdXJjZXNBbGxFbmFibGVkO1xuICAgICAgdGhpcy5zZWFyY2hTb3VyY2VDaGFuZ2UuZW1pdChzb3VyY2UpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyaWdnZXJlZCB3aGVuIGEgc2V0dGluZyBpcyBjaGVja2VkIChyYWRpb2J1dHRvbiBzdHlsZSlcbiAgICogQGludGVybmFsXG4gICAqL1xuICBzZXR0aW5nc1ZhbHVlQ2hlY2tlZFJhZGlvQnV0dG9uKFxuICAgIGV2ZW50OiBNYXRSYWRpb0NoYW5nZSxcbiAgICBzb3VyY2U6IFNlYXJjaFNvdXJjZSxcbiAgICBzZXR0aW5nOiBTZWFyY2hTb3VyY2VTZXR0aW5ncyxcbiAgICBzZXR0aW5nVmFsdWU6IFNldHRpbmdPcHRpb25zXG4gICkge1xuICAgIHNldHRpbmcudmFsdWVzLmZvckVhY2goKGNvbmYpID0+IHtcbiAgICAgIGlmIChjb25mLnZhbHVlICE9PSBzZXR0aW5nVmFsdWUudmFsdWUpIHtcbiAgICAgICAgY29uZi5lbmFibGVkID0gIWV2ZW50LnNvdXJjZS5jaGVja2VkO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uZi5lbmFibGVkID0gZXZlbnQuc291cmNlLmNoZWNrZWQ7XG4gICAgICB9XG4gICAgfSk7XG4gICAgc291cmNlLnNldFBhcmFtRnJvbVNldHRpbmcoc2V0dGluZyk7XG4gICAgdGhpcy5zZWFyY2hTb3VyY2VDaGFuZ2UuZW1pdChzb3VyY2UpO1xuICB9XG5cbiAgb25DaGVja1NlYXJjaFNvdXJjZShldmVudDogTWF0Q2hlY2tib3hDaGFuZ2UsIHNvdXJjZTogU2VhcmNoU291cmNlKSB7XG4gICAgc291cmNlLmVuYWJsZWQgPSBldmVudC5jaGVja2VkO1xuICAgIGNvbnN0IHN0b3JhZ2UgPSAodGhpcy5zdG9yYWdlU2VydmljZS5nZXQoc291cmNlLmdldElkKCkgKyAnLm9wdGlvbnMnKSB8fCB7fSkgYXMgU2V0dGluZ09wdGlvbnM7XG4gICAgc3RvcmFnZS5lbmFibGVkID0gc291cmNlLmVuYWJsZWQ7XG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXQoXG4gICAgICBzb3VyY2UuZ2V0SWQoKSArICcub3B0aW9ucycsXG4gICAgICBzdG9yYWdlXG4gICAgKTtcbiAgICB0aGlzLnNlYXJjaFNvdXJjZUNoYW5nZS5lbWl0KHNvdXJjZSk7XG4gIH1cblxuICBnZXRBdmFpbGFibGVWYWx1ZXMoc2V0dGluZzogU2VhcmNoU291cmNlU2V0dGluZ3MpIHtcbiAgICByZXR1cm4gc2V0dGluZy52YWx1ZXMuZmlsdGVyKChzKSA9PiBzLmF2YWlsYWJsZSAhPT0gZmFsc2UpO1xuICB9XG5cbiAgZ2V0QXZhaWxhYmxlSGFzaHRhZ3NWYWx1ZXMoc2V0dGluZzogU2V0dGluZ09wdGlvbnMpIHtcbiAgICBpZiAoc2V0dGluZy5oYXNodGFncykge1xuICAgICAgcmV0dXJuIHNldHRpbmcuaGFzaHRhZ3MubWFwKChoKSA9PiAnIycgKyBoKS5qb2luKCcsICcpO1xuICAgIH1cbiAgICByZXR1cm47XG4gIH1cblxuICBzdG9wUHJvcGFnYXRpb24oZXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIGNoYW5nZVBvaW50ZXJSZXZlcnNlU2VhcmNoKGV2ZW50KSB7XG4gICAgdGhpcy5wb2ludGVyU3VtbWFyeUVuYWJsZWQgPSBldmVudC5jaGVja2VkO1xuICAgIHRoaXMucG9pbnRlclN1bW1hcnlTdGF0dXMuZW1pdCh0aGlzLnBvaW50ZXJTdW1tYXJ5RW5hYmxlZCk7XG4gIH1cblxuICBjaGFuZ2VTZWFyY2hSZXN1bHRzR2VvbWV0cnkoZXZlbnQpIHtcbiAgICB0aGlzLnNlYXJjaFJlc3VsdHNHZW9tZXRyeUVuYWJsZWQgPSBldmVudC5jaGVja2VkO1xuICAgIHRoaXMuc2VhcmNoUmVzdWx0c0dlb21ldHJ5U3RhdHVzLmVtaXQodGhpcy5zZWFyY2hSZXN1bHRzR2VvbWV0cnlFbmFibGVkKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImlnby1zZWFyY2gtc2V0dGluZ3NcIj5cblxuICA8YnV0dG9uXG4gICAgbWF0LWljb24tYnV0dG9uXG4gICAgY2xhc3M9XCJpZ28tc2VhcmNoLXNldHRpbmdzLWJ1dHRvblwiXG4gICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxuICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLnNlYXJjaC5tZW51LnRvb2x0aXAnIHwgdHJhbnNsYXRlXCJcbiAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwic2VhcmNoU2V0dGluZ3NNZW51XCI+XG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJjaGV2cm9uLWRvd25cIj48L21hdC1pY29uPlxuICA8L2J1dHRvbj5cbiAgPG1hdC1tZW51XG4gICAgI3NlYXJjaFNldHRpbmdzTWVudT1cIm1hdE1lbnVcIlxuICAgIGNsYXNzPVwibm8tYm9yZGVyLXJhZGl1c1wiPlxuICAgIDxkaXYgY2xhc3M9XCJjaGVja0FsbEJ1dHRvblwiICpuZ0lmPVwiZ2V0U2VhcmNoU291cmNlcygpLmxlbmd0aD40XCI+XG4gICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICAgIChjbGljayk9XCJjaGVja1VuY2hlY2tBbGxTb3VyY2VzKCRldmVudClcIj57eyFzZWFyY2hTb3VyY2VzQWxsRW5hYmxlZCAgPyAoJ2lnby5nZW8uc2VhcmNoLnNlYXJjaFNvdXJjZXMudW5zZWxlY3RBbGwnIHwgdHJhbnNsYXRlKTogKCdpZ28uZ2VvLnNlYXJjaC5zZWFyY2hTb3VyY2VzLnNlbGVjdEFsbCcgfCB0cmFuc2xhdGUpfX08L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHNvdXJjZSBvZiBnZXRTZWFyY2hTb3VyY2VzKClcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJpZ28tc2VhcmNoLXNldHRpbmdzLXNlYXJjaC1zb3VyY2VcIj5cbiAgICAgICAgICA8bWF0LWNoZWNrYm94XG4gICAgICAgICAgICBjbGFzcz1cImlnby1zZWFyY2gtc2V0dGluZ3MtY2hlY2tib3hcIlxuICAgICAgICAgICAgW2NoZWNrZWRdPVwic291cmNlLmVuYWJsZWRcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cInNvdXJjZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgIChjaGFuZ2UpPVwib25DaGVja1NlYXJjaFNvdXJjZSgkZXZlbnQsIHNvdXJjZSlcIj5cbiAgICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwic291cmNlLnNldHRpbmdzLmxlbmd0aMKgPsKgMFwiXG4gICAgICAgICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwic3ViX21lbnVcIlxuICAgICAgICAgICAgbWF0LW1lbnUtaXRlbT57e3NvdXJjZS50aXRsZX19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgKm5nSWY9XCJzb3VyY2Uuc2V0dGluZ3MubGVuZ3RowqA9PT3CoDBcIj5cbiAgICAgICAgICAgIHt7c291cmNlLnRpdGxlfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxtYXQtbWVudSAjc3ViX21lbnU9XCJtYXRNZW51XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzZXR0aW5nIG9mIHNvdXJjZS5zZXR0aW5nc1wiPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgICAgICAgICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwidGVzdF9zdWJfbWVudVwiPlxuICAgICAgICAgICAgICAgIHt7J2lnby5nZW8uc2VhcmNoLnNlYXJjaFNvdXJjZXMuc2V0dGluZ3MuJysgc2V0dGluZy50aXRsZSB8IHRyYW5zbGF0ZX19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8bWF0LW1lbnUgI3Rlc3Rfc3ViX21lbnU9XCJtYXRNZW51XCJcbiAgICAgICAgICAgICAgICBbbmdTd2l0Y2hdPVwic2V0dGluZy50eXBlXCJcbiAgICAgICAgICAgICAgICB5UG9zaXRpb249XCJhYm92ZVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCIncmFkaW9idXR0b24nXCI+XG4gICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWdyb3VwXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWdvLXNlYXJjaC1zZXR0aW5ncy1yYWRpby1ncm91cFwiXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJzZXR0aW5nXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uICpuZ0Zvcj1cImxldCBzZXR0aW5nVmFsdWUgb2Ygc2V0dGluZy52YWx1ZXNcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWF0LXR5cG9ncmFwaHlcIlxuICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJzZXR0aW5nVmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cImdldEF2YWlsYWJsZUhhc2h0YWdzVmFsdWVzKHNldHRpbmdWYWx1ZSlcIlxuICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInNldHRpbmdWYWx1ZS5lbmFibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInNldHRpbmdzVmFsdWVDaGVja2VkUmFkaW9CdXR0b24oJGV2ZW50LCBzb3VyY2UsIHNldHRpbmcsIHNldHRpbmdWYWx1ZSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICB7e3NldHRpbmdWYWx1ZS50aXRsZSB8IHRyYW5zbGF0ZX19XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ2NoZWNrYm94J1wiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrQWxsQnV0dG9uXCIgKm5nSWY9XCJzZXR0aW5nLnZhbHVlcy5sZW5ndGjCoD7CoDNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjaGVja1VuY2hlY2tBbGwoJGV2ZW50LCBzb3VyY2UsIHNldHRpbmcpXCI+e3tzZXR0aW5nLmFsbEVuYWJsZWQgfHwgc2V0dGluZy5hbGxFbmFibGVkID09PSB1bmRlZmluZWQgID8gKCdpZ28uZ2VvLnNlYXJjaC5zZWFyY2hTb3VyY2VzLnNldHRpbmdzLnVuc2VsZWN0QWxsJyB8IHRyYW5zbGF0ZSk6ICgnaWdvLmdlby5zZWFyY2guc2VhcmNoU291cmNlcy5zZXR0aW5ncy5zZWxlY3RBbGwnIHwgdHJhbnNsYXRlKX19PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggKm5nRm9yPVwibGV0IHNldHRpbmdWYWx1ZSBvZiBnZXRBdmFpbGFibGVWYWx1ZXMoc2V0dGluZylcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1hdC1tZW51LWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUuZGlzcGxheV09XCJkaXNwbGF5QmxvY2tcIlxuICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJzZXR0aW5nVmFsdWUuZW5hYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJzZXR0aW5nXCJcbiAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiZ2V0QXZhaWxhYmxlSGFzaHRhZ3NWYWx1ZXMoc2V0dGluZ1ZhbHVlKVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInNldHRpbmdzVmFsdWVDaGVja2VkQ2hlY2tib3goJGV2ZW50LCBzb3VyY2UsIHNldHRpbmcsIHNldHRpbmdWYWx1ZSlcIj5cbiAgICAgICAgICAgICAgICAgICAge3tzZXR0aW5nVmFsdWUudGl0bGUgfCB0cmFuc2xhdGV9fVxuICAgICAgICAgICAgICAgICAgPC9tYXQtY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L21hdC1tZW51PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9tYXQtbWVudT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPHNwYW4gKm5nSWY9XCJoYXNQb2ludGVyUmV2ZXJzZVNlYXJjaFNvdXJjZSAmJiAhaXNUb3VjaFNjcmVlblwiPlxuICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJwb2ludGVyLXN1bW1hcnktc2xpZGUtdG9nZ2xlLWNvbnRhaW5lciBtYXQtdHlwb2dyYXBoeVwiPlxuICAgICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIGNsYXNzPVwicG9pbnRlci1zdW1tYXJ5LW9wdGlvblwiIChjaGFuZ2UpPVwiY2hhbmdlUG9pbnRlclJldmVyc2VTZWFyY2goJGV2ZW50KVwiIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXG4gICAgICAgICAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCIgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uc2VhcmNoLnBvaW50ZXJTZWFyY2hTdW1tYXJ5LnRvb2x0aXAnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIiBbY2hlY2tlZF09XCJwb2ludGVyU3VtbWFyeUVuYWJsZWRcIiBbbGFiZWxQb3NpdGlvbl09XCInYWZ0ZXInXCI+XG4gICAgICAgICAgICB7eydpZ28uZ2VvLnNlYXJjaC5wb2ludGVyU2VhcmNoU3VtbWFyeS50aXRsZScgfCB0cmFuc2xhdGV9fVxuICAgICAgICAgIDwvbWF0LXNsaWRlLXRvZ2dsZT5cbiAgICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBjbGFzcz1cInBvaW50ZXItc3VtbWFyeS1vcHRpb25cIiAoY2hhbmdlKT1cImNoYW5nZVNlYXJjaFJlc3VsdHNHZW9tZXRyeSgkZXZlbnQpXCIgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcbiAgICAgICAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIiBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5zZWFyY2guc2VhcmNoUmVzdWx0c0dlb21ldHJ5LnRvb2x0aXAnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIiBbY2hlY2tlZF09XCJzZWFyY2hSZXN1bHRzR2VvbWV0cnlFbmFibGVkXCIgW2xhYmVsUG9zaXRpb25dPVwiJ2FmdGVyJ1wiPlxuICAgICAgICAgICAge3snaWdvLmdlby5zZWFyY2guc2VhcmNoUmVzdWx0c0dlb21ldHJ5LnRpdGxlJyB8IHRyYW5zbGF0ZX19XG4gICAgICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gIDwvbWF0LW1lbnU+XG48L2Rpdj5cbiJdfQ==
1
+ import { Component, Output, EventEmitter, ChangeDetectionStrategy, HostListener, Input } from '@angular/core';
2
+ import { sourceCanReverseSearchAsSummary, sourceCanSearch, sourceCanReverseSearch } from '../shared/search.utils';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../shared/search-source.service";
5
+ import * as i2 from "@igo2/core";
6
+ import * as i3 from "@angular/common";
7
+ import * as i4 from "@angular/material/tooltip";
8
+ import * as i5 from "@angular/material/icon";
9
+ import * as i6 from "@angular/material/button";
10
+ import * as i7 from "@angular/material/menu";
11
+ import * as i8 from "@angular/material/radio";
12
+ import * as i9 from "@angular/material/checkbox";
13
+ import * as i10 from "@angular/material/divider";
14
+ import * as i11 from "@angular/material/slide-toggle";
15
+ import * as i12 from "@ngx-translate/core";
16
+ function SearchSettingsComponent_div_6_Template(rf, ctx) { if (rf & 1) {
17
+ const _r5 = i0.ɵɵgetCurrentView();
18
+ i0.ɵɵelementStart(0, "div", 8)(1, "button", 9);
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
+ i0.ɵɵtext(2);
21
+ i0.ɵɵpipe(3, "translate");
22
+ i0.ɵɵpipe(4, "translate");
23
+ i0.ɵɵelementEnd()();
24
+ } if (rf & 2) {
25
+ const ctx_r1 = i0.ɵɵnextContext();
26
+ i0.ɵɵadvance(2);
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
+ } }
29
+ function SearchSettingsComponent_ng_container_7_button_3_Template(rf, ctx) { if (rf & 1) {
30
+ i0.ɵɵelementStart(0, "button", 15);
31
+ i0.ɵɵtext(1);
32
+ i0.ɵɵelementEnd();
33
+ } if (rf & 2) {
34
+ const source_r6 = i0.ɵɵnextContext().$implicit;
35
+ const _r9 = i0.ɵɵreference(6);
36
+ i0.ɵɵproperty("matMenuTriggerFor", _r9);
37
+ i0.ɵɵadvance(1);
38
+ i0.ɵɵtextInterpolate1("", source_r6.title, " ");
39
+ } }
40
+ function SearchSettingsComponent_ng_container_7_button_4_Template(rf, ctx) { if (rf & 1) {
41
+ i0.ɵɵelementStart(0, "button", 16);
42
+ i0.ɵɵtext(1);
43
+ i0.ɵɵelementEnd();
44
+ } if (rf & 2) {
45
+ const source_r6 = i0.ɵɵnextContext().$implicit;
46
+ i0.ɵɵadvance(1);
47
+ i0.ɵɵtextInterpolate1(" ", source_r6.title, " ");
48
+ } }
49
+ function SearchSettingsComponent_ng_container_7_ng_container_7_span_6_mat_radio_button_2_Template(rf, ctx) { if (rf & 1) {
50
+ const _r22 = i0.ɵɵgetCurrentView();
51
+ i0.ɵɵelementStart(0, "mat-radio-button", 22);
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
+ i0.ɵɵtext(1);
54
+ i0.ɵɵpipe(2, "translate");
55
+ i0.ɵɵelementEnd();
56
+ } if (rf & 2) {
57
+ const settingValue_r18 = ctx.$implicit;
58
+ const ctx_r17 = i0.ɵɵnextContext(4);
59
+ i0.ɵɵproperty("value", settingValue_r18)("matTooltip", ctx_r17.getAvailableHashtagsValues(settingValue_r18))("checked", settingValue_r18.enabled);
60
+ i0.ɵɵadvance(1);
61
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 4, settingValue_r18.title), " ");
62
+ } }
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);
66
+ i0.ɵɵelementEnd()();
67
+ } if (rf & 2) {
68
+ const setting_r13 = i0.ɵɵnextContext().$implicit;
69
+ i0.ɵɵadvance(1);
70
+ i0.ɵɵproperty("value", setting_r13);
71
+ i0.ɵɵadvance(1);
72
+ i0.ɵɵproperty("ngForOf", setting_r13.values);
73
+ } }
74
+ function SearchSettingsComponent_ng_container_7_ng_container_7_span_7_div_1_Template(rf, ctx) { if (rf & 1) {
75
+ const _r29 = i0.ɵɵgetCurrentView();
76
+ i0.ɵɵelementStart(0, "div", 8)(1, "button", 9);
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
+ i0.ɵɵtext(2);
79
+ i0.ɵɵpipe(3, "translate");
80
+ i0.ɵɵpipe(4, "translate");
81
+ i0.ɵɵelementEnd()();
82
+ } if (rf & 2) {
83
+ const setting_r13 = i0.ɵɵnextContext(2).$implicit;
84
+ i0.ɵɵadvance(2);
85
+ i0.ɵɵtextInterpolate(setting_r13.allEnabled || setting_r13.allEnabled === undefined ? i0.ɵɵpipeBind1(3, 1, "igo.geo.search.searchSources.settings.unselectAll") : i0.ɵɵpipeBind1(4, 3, "igo.geo.search.searchSources.settings.selectAll"));
86
+ } }
87
+ function SearchSettingsComponent_ng_container_7_ng_container_7_span_7_mat_checkbox_2_Template(rf, ctx) { if (rf & 1) {
88
+ const _r36 = i0.ɵɵgetCurrentView();
89
+ i0.ɵɵelementStart(0, "mat-checkbox", 24);
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
+ i0.ɵɵtext(1);
92
+ i0.ɵɵpipe(2, "translate");
93
+ i0.ɵɵelementEnd();
94
+ } if (rf & 2) {
95
+ const settingValue_r32 = ctx.$implicit;
96
+ const setting_r13 = i0.ɵɵnextContext(2).$implicit;
97
+ const ctx_r26 = i0.ɵɵnextContext(2);
98
+ i0.ɵɵstyleProp("display", ctx_r26.displayBlock);
99
+ i0.ɵɵproperty("checked", settingValue_r32.enabled)("value", setting_r13)("matTooltip", ctx_r26.getAvailableHashtagsValues(settingValue_r32));
100
+ i0.ɵɵadvance(1);
101
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 6, settingValue_r32.title), " ");
102
+ } }
103
+ function SearchSettingsComponent_ng_container_7_ng_container_7_span_7_Template(rf, ctx) { if (rf & 1) {
104
+ i0.ɵɵelementStart(0, "span");
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);
107
+ i0.ɵɵelementEnd();
108
+ } if (rf & 2) {
109
+ const setting_r13 = i0.ɵɵnextContext().$implicit;
110
+ const ctx_r16 = i0.ɵɵnextContext(2);
111
+ i0.ɵɵadvance(1);
112
+ i0.ɵɵproperty("ngIf", setting_r13.values.length > 3);
113
+ i0.ɵɵadvance(1);
114
+ i0.ɵɵproperty("ngForOf", ctx_r16.getAvailableValues(setting_r13));
115
+ } }
116
+ function SearchSettingsComponent_ng_container_7_ng_container_7_Template(rf, ctx) { if (rf & 1) {
117
+ i0.ɵɵelementContainerStart(0);
118
+ i0.ɵɵelementStart(1, "button", 15);
119
+ i0.ɵɵtext(2);
120
+ i0.ɵɵpipe(3, "translate");
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);
125
+ i0.ɵɵelementEnd();
126
+ i0.ɵɵelementContainerEnd();
127
+ } if (rf & 2) {
128
+ const setting_r13 = ctx.$implicit;
129
+ const _r14 = i0.ɵɵreference(5);
130
+ i0.ɵɵadvance(1);
131
+ i0.ɵɵproperty("matMenuTriggerFor", _r14);
132
+ i0.ɵɵadvance(1);
133
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 5, "igo.geo.search.searchSources.settings." + setting_r13.title), " ");
134
+ i0.ɵɵadvance(2);
135
+ i0.ɵɵproperty("ngSwitch", setting_r13.type);
136
+ i0.ɵɵadvance(2);
137
+ i0.ɵɵproperty("ngSwitchCase", "radiobutton");
138
+ i0.ɵɵadvance(1);
139
+ i0.ɵɵproperty("ngSwitchCase", "checkbox");
140
+ } }
141
+ function SearchSettingsComponent_ng_container_7_Template(rf, ctx) { if (rf & 1) {
142
+ const _r42 = i0.ɵɵgetCurrentView();
143
+ i0.ɵɵelementContainerStart(0);
144
+ i0.ɵɵelementStart(1, "span", 10)(2, "mat-checkbox", 11);
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
+ 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);
149
+ i0.ɵɵelementEnd();
150
+ i0.ɵɵelementStart(5, "mat-menu", null, 14);
151
+ i0.ɵɵtemplate(7, SearchSettingsComponent_ng_container_7_ng_container_7_Template, 8, 7, "ng-container", 6);
152
+ i0.ɵɵelementEnd();
153
+ i0.ɵɵelementContainerEnd();
154
+ } if (rf & 2) {
155
+ const source_r6 = ctx.$implicit;
156
+ i0.ɵɵadvance(2);
157
+ i0.ɵɵproperty("checked", source_r6.enabled)("value", source_r6);
158
+ i0.ɵɵadvance(1);
159
+ i0.ɵɵproperty("ngIf", source_r6.settings.length > 0);
160
+ i0.ɵɵadvance(1);
161
+ i0.ɵɵproperty("ngIf", source_r6.settings.length === 0);
162
+ i0.ɵɵadvance(3);
163
+ i0.ɵɵproperty("ngForOf", source_r6.settings);
164
+ } }
165
+ function SearchSettingsComponent_span_8_Template(rf, ctx) { if (rf & 1) {
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");
180
+ 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
+ } if (rf & 2) {
189
+ 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"), " ");
194
+ 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"), " ");
202
+ } }
203
+ /**
204
+ * This component allows a user to select a search type yo enable. In it's
205
+ * current version, only one search type can be selected at once (radio). If
206
+ * this component were to support more than one search source enabled (checkbox),
207
+ * the searchbar component would require a small change to it's
208
+ * placeholder getter. The search source service already supports having
209
+ * more than one search source enabled.
210
+ */
211
+ export class SearchSettingsComponent {
212
+ constructor(searchSourceService, mediaService, storageService) {
213
+ this.searchSourceService = searchSourceService;
214
+ this.mediaService = mediaService;
215
+ this.storageService = storageService;
216
+ this.hasPointerReverseSearchSource = false;
217
+ this.searchSourcesAllEnabled = false;
218
+ this.buffer = [];
219
+ this.lastKeyTime = Date.now();
220
+ this.displayBlock = 'block';
221
+ this.pointerSummaryEnabled = false;
222
+ this.searchResultsGeometryEnabled = false;
223
+ this.reverseSearchCoordsFormatEnabled = false;
224
+ /**
225
+ * Event emitted when the enabled search source changes
226
+ */
227
+ this.searchSourceChange = new EventEmitter();
228
+ /**
229
+ * Event emitted when the pointer summary is activated
230
+ */
231
+ this.pointerSummaryStatus = new EventEmitter();
232
+ /**
233
+ * Event emitted when the show geometry summary is changed
234
+ */
235
+ this.searchResultsGeometryStatus = new EventEmitter();
236
+ /**
237
+ * Event emitted when the coords format is changed
238
+ */
239
+ this.reverseSearchCoordsFormatStatus = new EventEmitter();
240
+ }
241
+ get isTouchScreen() {
242
+ return this.mediaService.isTouchScreen();
243
+ }
244
+ handleKeyboardEvent(event) {
245
+ if (event.key === 'F2') {
246
+ this.pointerSummaryEnabled = !this.pointerSummaryEnabled;
247
+ this.pointerSummaryStatus.emit(this.pointerSummaryEnabled);
248
+ }
249
+ }
250
+ ngOnInit() {
251
+ this.hasPointerReverseSearchSource = this.hasReverseSearchSourcesForPointerSummary();
252
+ }
253
+ /**
254
+ * Get all search sources
255
+ * @internal
256
+ */
257
+ getSearchSources() {
258
+ const textSearchSources = this.searchSourceService
259
+ .getSources()
260
+ .filter(sourceCanSearch)
261
+ .filter((s) => s.available && s.getId() !== 'map' && s.showInSettings);
262
+ const reverseSearchSources = this.searchSourceService
263
+ .getSources()
264
+ .filter(sourceCanReverseSearch)
265
+ .filter((s) => s.available && s.getId() !== 'map' && s.showInSettings);
266
+ const sources = textSearchSources.concat(reverseSearchSources);
267
+ this.computeSourcesCheckAllBehavior(sources);
268
+ return sources;
269
+ }
270
+ /**
271
+ * Get all search sources usable for pointer summary
272
+ * @internal
273
+ */
274
+ hasReverseSearchSourcesForPointerSummary() {
275
+ if (this.searchSourceService
276
+ .getEnabledSources()
277
+ .filter(sourceCanReverseSearchAsSummary).length) {
278
+ return true;
279
+ }
280
+ else {
281
+ return false;
282
+ }
283
+ }
284
+ /**
285
+ * Triggered when a setting is checked (checkbox style)
286
+ * @internal
287
+ */
288
+ settingsValueCheckedCheckbox(event, source, setting, settingValue) {
289
+ settingValue.enabled = event.checked;
290
+ source.setParamFromSetting(setting);
291
+ this.searchSourceChange.emit(source);
292
+ }
293
+ /**
294
+ * Defining the action to do for check/uncheck checkboxes (settings)
295
+ * return true if all checkbox must be checked
296
+ * return false if all checkbox must be unchecked
297
+ * @internal
298
+ */
299
+ computeSettingCheckAllBehavior(setting) {
300
+ if (setting.allEnabled === undefined) {
301
+ if (setting.values.find((settingValue) => settingValue.enabled)) {
302
+ setting.allEnabled = false;
303
+ }
304
+ else {
305
+ setting.allEnabled = true;
306
+ }
307
+ }
308
+ else {
309
+ setting.allEnabled = !setting.allEnabled;
310
+ }
311
+ }
312
+ /**
313
+ * Defining the action to do for check/uncheck checkboxes (sources)
314
+ * return true if all checkbox must be checked
315
+ * return false if all checkbox must be unchecked
316
+ * @internal
317
+ */
318
+ computeSourcesCheckAllBehavior(sources) {
319
+ const enabledSourcesCnt = sources.filter((source) => source.enabled).length;
320
+ const disabledSourcesCnt = sources.filter((source) => !source.enabled)
321
+ .length;
322
+ this.searchSourcesAllEnabled =
323
+ enabledSourcesCnt >= disabledSourcesCnt ? false : true;
324
+ }
325
+ /**
326
+ * Triggered when the check all / uncheck all type is clicked,
327
+ * @internal
328
+ */
329
+ checkUncheckAll(event, source, setting) {
330
+ event.stopPropagation();
331
+ this.computeSettingCheckAllBehavior(setting);
332
+ setting.values.forEach((settingValue) => {
333
+ settingValue.enabled = setting.allEnabled;
334
+ });
335
+ source.setParamFromSetting(setting);
336
+ this.searchSourceChange.emit(source);
337
+ }
338
+ /**
339
+ * Triggered when the check all / uncheck all type is clicked,
340
+ * @internal
341
+ */
342
+ checkUncheckAllSources(event) {
343
+ event.stopPropagation();
344
+ this.getSearchSources().map((source) => {
345
+ source.enabled = this.searchSourcesAllEnabled;
346
+ this.searchSourceChange.emit(source);
347
+ });
348
+ }
349
+ /**
350
+ * Triggered when a setting is checked (radiobutton style)
351
+ * @internal
352
+ */
353
+ settingsValueCheckedRadioButton(event, source, setting, settingValue) {
354
+ setting.values.forEach((conf) => {
355
+ if (conf.value !== settingValue.value) {
356
+ conf.enabled = !event.source.checked;
357
+ }
358
+ else {
359
+ conf.enabled = event.source.checked;
360
+ }
361
+ });
362
+ source.setParamFromSetting(setting);
363
+ this.searchSourceChange.emit(source);
364
+ }
365
+ onCheckSearchSource(event, source) {
366
+ source.enabled = event.checked;
367
+ const storage = (this.storageService.get(source.getId() + '.options') || {});
368
+ storage.enabled = source.enabled;
369
+ this.storageService.set(source.getId() + '.options', storage);
370
+ this.searchSourceChange.emit(source);
371
+ }
372
+ getAvailableValues(setting) {
373
+ return setting.values.filter((s) => s.available !== false);
374
+ }
375
+ getAvailableHashtagsValues(setting) {
376
+ if (setting.hashtags) {
377
+ return setting.hashtags.map((h) => '#' + h).join(', ');
378
+ }
379
+ return;
380
+ }
381
+ stopPropagation(event) {
382
+ event.stopPropagation();
383
+ }
384
+ changePointerReverseSearch(event) {
385
+ this.pointerSummaryEnabled = event.checked;
386
+ this.pointerSummaryStatus.emit(this.pointerSummaryEnabled);
387
+ }
388
+ changeSearchResultsGeometry(event) {
389
+ this.searchResultsGeometryEnabled = event.checked;
390
+ this.searchResultsGeometryStatus.emit(this.searchResultsGeometryEnabled);
391
+ }
392
+ reverseSearchCoordsFormat(event) {
393
+ this.reverseSearchCoordsFormatEnabled = event.checked;
394
+ this.reverseSearchCoordsFormatStatus.emit(this.reverseSearchCoordsFormatEnabled);
395
+ }
396
+ }
397
+ SearchSettingsComponent.ɵfac = function SearchSettingsComponent_Factory(t) { return new (t || SearchSettingsComponent)(i0.ɵɵdirectiveInject(i1.SearchSourceService), i0.ɵɵdirectiveInject(i2.MediaService), i0.ɵɵdirectiveInject(i2.StorageService)); };
398
+ SearchSettingsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SearchSettingsComponent, selectors: [["igo-search-settings"]], hostBindings: function SearchSettingsComponent_HostBindings(rf, ctx) { if (rf & 1) {
399
+ 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) {
401
+ i0.ɵɵelementStart(0, "div", 0)(1, "button", 1);
402
+ i0.ɵɵpipe(2, "translate");
403
+ i0.ɵɵelement(3, "mat-icon", 2);
404
+ i0.ɵɵelementEnd();
405
+ i0.ɵɵelementStart(4, "mat-menu", 3, 4);
406
+ i0.ɵɵtemplate(6, SearchSettingsComponent_div_6_Template, 5, 5, "div", 5);
407
+ 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()();
410
+ } if (rf & 2) {
411
+ const _r0 = i0.ɵɵreference(5);
412
+ i0.ɵɵadvance(1);
413
+ i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(2, 5, "igo.geo.search.menu.tooltip"))("matMenuTriggerFor", _r0);
414
+ i0.ɵɵadvance(5);
415
+ i0.ɵɵproperty("ngIf", ctx.getSearchSources().length > 4);
416
+ i0.ɵɵadvance(1);
417
+ i0.ɵɵproperty("ngForOf", ctx.getSearchSources());
418
+ i0.ɵɵadvance(1);
419
+ i0.ɵɵproperty("ngIf", ctx.hasPointerReverseSearchSource && !ctx.isTouchScreen);
420
+ } }, 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
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SearchSettingsComponent, [{
422
+ 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"] }]
424
+ }], function () { return [{ type: i1.SearchSourceService }, { type: i2.MediaService }, { type: i2.StorageService }]; }, { pointerSummaryEnabled: [{
425
+ type: Input
426
+ }], searchResultsGeometryEnabled: [{
427
+ type: Input
428
+ }], reverseSearchCoordsFormatEnabled: [{
429
+ type: Input
430
+ }], searchSourceChange: [{
431
+ type: Output
432
+ }], pointerSummaryStatus: [{
433
+ type: Output
434
+ }], searchResultsGeometryStatus: [{
435
+ type: Output
436
+ }], reverseSearchCoordsFormatStatus: [{
437
+ type: Output
438
+ }], handleKeyboardEvent: [{
439
+ type: HostListener,
440
+ args: ['document:keydown', ['$event']]
441
+ }] }); })();
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==