@igo2/geo 16.0.2 → 16.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (331) hide show
  1. package/esm2022/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +28 -132
  2. package/esm2022/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +22 -86
  3. package/esm2022/lib/catalog/catalog-browser/catalog-browser.component.mjs +22 -65
  4. package/esm2022/lib/catalog/catalog-browser/catalog-browser.module.mjs +42 -47
  5. package/esm2022/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +13 -129
  6. package/esm2022/lib/catalog/catalog-library/catalog-library-item.component.mjs +14 -55
  7. package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +27 -57
  8. package/esm2022/lib/catalog/catalog-library/catalog-library.module.mjs +46 -54
  9. package/esm2022/lib/catalog/catalog.module.mjs +28 -29
  10. package/esm2022/lib/catalog/shared/catalog.abstract.mjs +1 -1
  11. package/esm2022/lib/catalog/shared/catalog.interface.mjs +1 -1
  12. package/esm2022/lib/catalog/shared/catalog.service.mjs +14 -14
  13. package/esm2022/lib/datasource/datasource.module.mjs +12 -12
  14. package/esm2022/lib/datasource/shared/capabilities.interface.mjs +9 -0
  15. package/esm2022/lib/datasource/shared/capabilities.service.mjs +10 -17
  16. package/esm2022/lib/datasource/shared/datasource.service.mjs +11 -11
  17. package/esm2022/lib/datasource/shared/datasources/index.mjs +1 -1
  18. package/esm2022/lib/datasource/shared/datasources/wfs.service.mjs +9 -9
  19. package/esm2022/lib/datasource/shared/datasources/wms-datasource.interface.mjs +1 -1
  20. package/esm2022/lib/datasource/shared/datasources/wms-datasource.mjs +1 -1
  21. package/esm2022/lib/datasource/shared/index.mjs +2 -1
  22. package/esm2022/lib/datasource/shared/options/options-api.service.mjs +12 -12
  23. package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +19 -102
  24. package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +21 -122
  25. package/esm2022/lib/directions/directions-results/directions-results.component.mjs +11 -103
  26. package/esm2022/lib/directions/directions-sources/osrm-directions-source.mjs +6 -6
  27. package/esm2022/lib/directions/directions.component.mjs +25 -47
  28. package/esm2022/lib/directions/directions.module.mjs +61 -62
  29. package/esm2022/lib/directions/shared/directions.service.mjs +15 -14
  30. package/esm2022/lib/download/download-button/download-button.component.mjs +11 -26
  31. package/esm2022/lib/download/download.module.mjs +22 -23
  32. package/esm2022/lib/download/shared/download.service.mjs +9 -9
  33. package/esm2022/lib/draw/draw/draw-layer-popup.component.mjs +9 -35
  34. package/esm2022/lib/draw/draw/draw-popup.component.mjs +20 -299
  35. package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +7 -40
  36. package/esm2022/lib/draw/draw/draw.component.mjs +56 -322
  37. package/esm2022/lib/draw/draw/draw.module.mjs +64 -65
  38. package/esm2022/lib/draw/drawingTool.module.mjs +12 -13
  39. package/esm2022/lib/draw/shared/draw-icon.service.mjs +9 -9
  40. package/esm2022/lib/draw/shared/draw.interface.mjs +1 -1
  41. package/esm2022/lib/environment/environment.interface.mjs +1 -1
  42. package/esm2022/lib/feature/feature-details/feature-details.component.mjs +21 -171
  43. package/esm2022/lib/feature/feature-details/feature-details.directive.mjs +17 -19
  44. package/esm2022/lib/feature/feature-details/feature-details.module.mjs +22 -23
  45. package/esm2022/lib/feature/feature-form/feature-form.component.mjs +16 -34
  46. package/esm2022/lib/feature/feature-form/feature-form.module.mjs +12 -13
  47. package/esm2022/lib/feature/feature.module.mjs +13 -14
  48. package/esm2022/lib/feature/shared/feature-store.utils.mjs +2 -2
  49. package/esm2022/lib/feature/shared/feature.interfaces.mjs +1 -1
  50. package/esm2022/lib/feature/shared/feature.utils.mjs +1 -1
  51. package/esm2022/lib/feature/shared/store.mjs +1 -1
  52. package/esm2022/lib/feature/shared/strategies/geo-properties.mjs +1 -1
  53. package/esm2022/lib/feature/shared/strategies/in-map-extent.mjs +1 -1
  54. package/esm2022/lib/feature/shared/strategies/index.mjs +1 -1
  55. package/esm2022/lib/feature/shared/strategies/selection.mjs +2 -2
  56. package/esm2022/lib/filter/filter.module.mjs +158 -197
  57. package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +24 -49
  58. package/esm2022/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +32 -397
  59. package/esm2022/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +39 -625
  60. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +20 -47
  61. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +44 -340
  62. package/esm2022/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +36 -58
  63. package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +26 -126
  64. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +11 -11
  65. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +17 -40
  66. package/esm2022/lib/filter/shared/filterable-datasource.pipe.mjs +9 -9
  67. package/esm2022/lib/filter/shared/ogc-filter-time.service.mjs +6 -6
  68. package/esm2022/lib/filter/shared/ogc-filter.service.mjs +6 -6
  69. package/esm2022/lib/filter/shared/spatial-filter.service.mjs +9 -9
  70. package/esm2022/lib/filter/shared/time-filter.service.mjs +6 -6
  71. package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +73 -386
  72. package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +23 -87
  73. package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +37 -86
  74. package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +24 -49
  75. package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +20 -268
  76. package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +20 -72
  77. package/esm2022/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +11 -11
  78. package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +13 -24
  79. package/esm2022/lib/geo.module.mjs +54 -55
  80. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +36 -39
  81. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +32 -97
  82. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +30 -31
  83. package/esm2022/lib/geometry/geometry.module.mjs +13 -14
  84. package/esm2022/lib/geometry/shared/geometry.interfaces.mjs +1 -1
  85. package/esm2022/lib/import-export/export-button/export-button.component.mjs +11 -24
  86. package/esm2022/lib/import-export/import-export/import-export.component.mjs +25 -434
  87. package/esm2022/lib/import-export/import-export.module.mjs +54 -55
  88. package/esm2022/lib/import-export/shared/drop-geo-file.directive.mjs +20 -22
  89. package/esm2022/lib/import-export/shared/export.service.mjs +10 -10
  90. package/esm2022/lib/import-export/shared/import.service.mjs +9 -9
  91. package/esm2022/lib/layer/layer-item/layer-item.component.mjs +47 -127
  92. package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +16 -183
  93. package/esm2022/lib/layer/layer-legend-item/layer-legend-item.component.mjs +16 -26
  94. package/esm2022/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +11 -11
  95. package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +26 -130
  96. package/esm2022/lib/layer/layer-list/layer-list-binding.directive.mjs +13 -13
  97. package/esm2022/lib/layer/layer-list/layer-list.component.mjs +50 -272
  98. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +21 -72
  99. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.service.mjs +9 -9
  100. package/esm2022/lib/layer/layer.module.mjs +94 -114
  101. package/esm2022/lib/layer/shared/layer.service.mjs +12 -12
  102. package/esm2022/lib/layer/shared/layers/image-layer.mjs +2 -2
  103. package/esm2022/lib/layer/shared/layers/layer.mjs +1 -1
  104. package/esm2022/lib/layer/shared/layers/tile-layer.mjs +2 -2
  105. package/esm2022/lib/layer/shared/layers/vector-layer.mjs +2 -2
  106. package/esm2022/lib/layer/shared/layers/vectortile-layer.mjs +2 -2
  107. package/esm2022/lib/layer/track-feature-button/track-feature-button.component.mjs +12 -27
  108. package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +18 -60
  109. package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +20 -48
  110. package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +11 -31
  111. package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +17 -26
  112. package/esm2022/lib/map/index.mjs +1 -1
  113. package/esm2022/lib/map/info-section/info-section.component.mjs +9 -22
  114. package/esm2022/lib/map/map-browser/map-browser.component.mjs +11 -18
  115. package/esm2022/lib/map/map-center/map-center.component.mjs +9 -13
  116. package/esm2022/lib/map/map.module.mjs +88 -96
  117. package/esm2022/lib/map/menu-button/menu-button.component.mjs +11 -19
  118. package/esm2022/lib/map/offline-button/offline-button.component.mjs +13 -24
  119. package/esm2022/lib/map/rotation-button/rotation-button.component.mjs +13 -39
  120. package/esm2022/lib/map/shared/hover-feature.directive.mjs +18 -20
  121. package/esm2022/lib/map/shared/linkedLayers.utils.mjs +1 -1
  122. package/esm2022/lib/map/shared/map-pointer-position.directive.mjs +15 -15
  123. package/esm2022/lib/map/shared/map.abstract.mjs +1 -1
  124. package/esm2022/lib/map/shared/map.service.mjs +9 -9
  125. package/esm2022/lib/map/shared/mapOffline.directive.mjs +9 -9
  126. package/esm2022/lib/map/shared/projection.service.mjs +9 -9
  127. package/esm2022/lib/map/swipe-control/swipe-control.component.mjs +9 -16
  128. package/esm2022/lib/map/wake-lock-button/wake-lock-button.component.mjs +11 -24
  129. package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +11 -28
  130. package/esm2022/lib/measure/measure.module.mjs +12 -13
  131. package/esm2022/lib/measure/measurer/measure-format.pipe.mjs +9 -9
  132. package/esm2022/lib/measure/measurer/measurer-dialog.component.mjs +13 -166
  133. package/esm2022/lib/measure/measurer/measurer-item.component.mjs +19 -51
  134. package/esm2022/lib/measure/measurer/measurer.component.mjs +74 -241
  135. package/esm2022/lib/measure/measurer/measurer.module.mjs +46 -59
  136. package/esm2022/lib/measure/shared/measure.interfaces.mjs +1 -1
  137. package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +20 -69
  138. package/esm2022/lib/metadata/metadata.module.mjs +24 -25
  139. package/esm2022/lib/metadata/shared/metadata.interface.mjs +1 -1
  140. package/esm2022/lib/metadata/shared/metadata.service.mjs +9 -9
  141. package/esm2022/lib/offline/geoDB/configFileToGeoDB.service.mjs +9 -9
  142. package/esm2022/lib/offline/geoDB/geoDB.service.mjs +9 -9
  143. package/esm2022/lib/offline/layerDB/layerDB.service.mjs +9 -9
  144. package/esm2022/lib/offline/shared/geo-network.service.mjs +9 -9
  145. package/esm2022/lib/overlay/overlay.module.mjs +12 -13
  146. package/esm2022/lib/overlay/shared/overlay.directive.mjs +11 -11
  147. package/esm2022/lib/overlay/shared/overlay.mjs +1 -1
  148. package/esm2022/lib/overlay/shared/overlay.service.mjs +9 -9
  149. package/esm2022/lib/overlay/shared/overlay.utils.mjs +2 -2
  150. package/esm2022/lib/print/print/print.component.mjs +21 -27
  151. package/esm2022/lib/print/print-form/print-form.component.mjs +56 -349
  152. package/esm2022/lib/print/print.module.mjs +36 -37
  153. package/esm2022/lib/print/shared/print.service.mjs +14 -14
  154. package/esm2022/lib/print/shared/print.type.mjs +2 -2
  155. package/esm2022/lib/query/query.module.mjs +13 -14
  156. package/esm2022/lib/query/shared/query-search-source.mjs +9 -9
  157. package/esm2022/lib/query/shared/query.directive.mjs +21 -21
  158. package/esm2022/lib/query/shared/query.service.mjs +10 -10
  159. package/esm2022/lib/search/search-bar/search-bar.component.mjs +66 -165
  160. package/esm2022/lib/search/search-bar/search-bar.module.mjs +38 -39
  161. package/esm2022/lib/search/search-bar/search-url-param.directive.mjs +13 -13
  162. package/esm2022/lib/search/search-results/save-feature-dialog.component.mjs +12 -68
  163. package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +23 -66
  164. package/esm2022/lib/search/search-results/search-results-item.component.mjs +18 -74
  165. package/esm2022/lib/search/search-results/search-results.component.mjs +41 -238
  166. package/esm2022/lib/search/search-results/search-results.module.mjs +58 -59
  167. package/esm2022/lib/search/search-selector/search-selector.component.mjs +13 -43
  168. package/esm2022/lib/search/search-selector/search-selector.module.mjs +30 -31
  169. package/esm2022/lib/search/search-settings/search-settings.component.mjs +24 -233
  170. package/esm2022/lib/search/search-settings/search-settings.module.mjs +32 -33
  171. package/esm2022/lib/search/search.module.mjs +32 -33
  172. package/esm2022/lib/search/shared/search-pointer-summary.directive.mjs +18 -20
  173. package/esm2022/lib/search/shared/search.enums.mjs +3 -3
  174. package/esm2022/lib/search/shared/search.interfaces.mjs +1 -1
  175. package/esm2022/lib/search/shared/search.service.mjs +10 -10
  176. package/esm2022/lib/search/shared/sources/cadastre.mjs +10 -10
  177. package/esm2022/lib/search/shared/sources/coordinates.mjs +19 -19
  178. package/esm2022/lib/search/shared/sources/icherche.interfaces.mjs +1 -1
  179. package/esm2022/lib/search/shared/sources/icherche.mjs +37 -26
  180. package/esm2022/lib/search/shared/sources/ilayer.mjs +19 -19
  181. package/esm2022/lib/search/shared/sources/index.mjs +1 -1
  182. package/esm2022/lib/search/shared/sources/nominatim.mjs +10 -10
  183. package/esm2022/lib/search/shared/sources/source.mjs +1 -1
  184. package/esm2022/lib/search/shared/sources/storedqueries.interfaces.mjs +1 -1
  185. package/esm2022/lib/search/shared/sources/storedqueries.mjs +18 -18
  186. package/esm2022/lib/search/shared/sources/workspace.mjs +10 -10
  187. package/esm2022/lib/style/index.mjs +1 -1
  188. package/esm2022/lib/style/shared/index.mjs +1 -1
  189. package/esm2022/lib/style/style-list/style-list.module.mjs +12 -12
  190. package/esm2022/lib/style/style-list/style-list.service.mjs +9 -9
  191. package/esm2022/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +12 -121
  192. package/esm2022/lib/style/style-modal/layer/style-modal-layer.component.mjs +13 -59
  193. package/esm2022/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +9 -17
  194. package/esm2022/lib/style/style-service/draw-style.service.mjs +9 -9
  195. package/esm2022/lib/style/style-service/style.service.mjs +9 -9
  196. package/esm2022/lib/style/style.module.mjs +51 -52
  197. package/esm2022/lib/toast/toast.component.mjs +15 -44
  198. package/esm2022/lib/toast/toast.module.mjs +24 -25
  199. package/esm2022/lib/utils/id-generator.mjs +1 -1
  200. package/esm2022/lib/utils/index.mjs +1 -1
  201. package/esm2022/lib/utils/propertyTypeDetector/index.mjs +1 -1
  202. package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.service.mjs +9 -9
  203. package/esm2022/lib/wkt/shared/wkt.service.mjs +9 -9
  204. package/esm2022/lib/wkt/wkt.module.mjs +12 -12
  205. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +10 -27
  206. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +20 -21
  207. package/esm2022/lib/workspace/shared/edition-workspace.mjs +4 -4
  208. package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +10 -10
  209. package/esm2022/lib/workspace/shared/feature-workspace.mjs +1 -1
  210. package/esm2022/lib/workspace/shared/feature-workspace.service.mjs +14 -13
  211. package/esm2022/lib/workspace/shared/wfs-workspace.mjs +1 -1
  212. package/esm2022/lib/workspace/shared/wfs-workspace.service.mjs +14 -13
  213. package/esm2022/lib/workspace/shared/wms-workspace.service.mjs +12 -12
  214. package/esm2022/lib/workspace/shared/workspace.utils.mjs +1 -1
  215. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +15 -19
  216. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +12 -13
  217. package/esm2022/lib/workspace/workspace-selector/workspace-selector.directive.mjs +21 -21
  218. package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +12 -13
  219. package/esm2022/lib/workspace/workspace-updator/workspace-updator.directive.mjs +15 -15
  220. package/esm2022/lib/workspace/workspace-updator/workspace-updator.module.mjs +12 -13
  221. package/esm2022/lib/workspace/workspace.module.mjs +35 -36
  222. package/fesm2022/igo2-geo.mjs +16547 -23425
  223. package/fesm2022/igo2-geo.mjs.map +1 -1
  224. package/lib/catalog/catalog-browser/catalog-browser-group.component.d.ts +1 -1
  225. package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +1 -1
  226. package/lib/catalog/catalog-browser/catalog-browser.component.d.ts +1 -1
  227. package/lib/catalog/catalog-library/catalog-library-item.component.d.ts +1 -1
  228. package/lib/catalog/catalog-library/catalog-library.component.d.ts +2 -2
  229. package/lib/catalog/shared/catalog.abstract.d.ts +3 -3
  230. package/lib/catalog/shared/catalog.interface.d.ts +2 -2
  231. package/lib/catalog/shared/catalog.service.d.ts +1 -1
  232. package/lib/datasource/shared/capabilities.interface.d.ts +8 -0
  233. package/lib/datasource/shared/capabilities.service.d.ts +1 -8
  234. package/lib/datasource/shared/datasources/wms-datasource.d.ts +1 -1
  235. package/lib/datasource/shared/datasources/wms-datasource.interface.d.ts +1 -1
  236. package/lib/datasource/shared/index.d.ts +1 -0
  237. package/lib/directions/shared/directions.service.d.ts +2 -2
  238. package/lib/download/shared/download.service.d.ts +1 -1
  239. package/lib/draw/shared/draw.interface.d.ts +1 -1
  240. package/lib/environment/environment.interface.d.ts +8 -6
  241. package/lib/feature/shared/feature.interfaces.d.ts +3 -3
  242. package/lib/feature/shared/feature.utils.d.ts +2 -1
  243. package/lib/feature/shared/store.d.ts +1 -1
  244. package/lib/filter/ogc-filter-button/ogc-filter-button.component.d.ts +1 -1
  245. package/lib/filter/ogc-filter-form/ogc-filter-form.component.d.ts +1 -1
  246. package/lib/filter/ogc-filter-selection/ogc-filter-selection.component.d.ts +1 -1
  247. package/lib/filter/ogc-filter-time/ogc-filter-time.component.d.ts +1 -0
  248. package/lib/filter/ogc-filterable-form/ogc-filterable-form.component.d.ts +1 -1
  249. package/lib/filter/ogc-filterable-item/ogc-filterable-item.component.d.ts +1 -1
  250. package/lib/filter/ogc-filterable-list/ogc-filterable-list.component.d.ts +1 -1
  251. package/lib/filter/shared/spatial-filter.service.d.ts +1 -1
  252. package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +1 -1
  253. package/lib/filter/time-filter-button/time-filter-button.component.d.ts +2 -2
  254. package/lib/filter/time-filter-item/time-filter-item.component.d.ts +1 -1
  255. package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +1 -1
  256. package/lib/geometry/geometry-form-field/geometry-form-field.component.d.ts +1 -1
  257. package/lib/geometry/shared/geometry.interfaces.d.ts +1 -1
  258. package/lib/import-export/export-button/export-button.component.d.ts +1 -1
  259. package/lib/layer/layer-item/layer-item.component.d.ts +1 -1
  260. package/lib/layer/layer-legend/layer-legend.component.d.ts +1 -1
  261. package/lib/layer/layer-legend-item/layer-legend-item.component.d.ts +1 -1
  262. package/lib/layer/layer-legend-list/layer-legend-list.component.d.ts +1 -1
  263. package/lib/layer/shared/layers/image-layer.d.ts +1 -1
  264. package/lib/layer/shared/layers/layer.d.ts +2 -1
  265. package/lib/layer/shared/layers/tile-layer.d.ts +1 -1
  266. package/lib/layer/shared/layers/vectortile-layer.d.ts +1 -1
  267. package/lib/layer/track-feature-button/track-feature-button.component.d.ts +1 -1
  268. package/lib/map/baselayers-switcher/baselayers-switcher.component.d.ts +1 -1
  269. package/lib/map/baselayers-switcher/mini-basemap.component.d.ts +1 -1
  270. package/lib/map/shared/map.abstract.d.ts +5 -4
  271. package/lib/measure/measurer/measurer.component.d.ts +8 -4
  272. package/lib/measure/shared/measure.interfaces.d.ts +2 -2
  273. package/lib/metadata/shared/metadata.interface.d.ts +1 -1
  274. package/lib/overlay/shared/overlay.d.ts +1 -1
  275. package/lib/print/print-form/print-form.component.d.ts +4 -6
  276. package/lib/print/shared/print.service.d.ts +2 -1
  277. package/lib/print/shared/print.type.d.ts +2 -6
  278. package/lib/search/search-results/search-results-add-button.component.d.ts +1 -1
  279. package/lib/search/search-results/search-results-item.component.d.ts +1 -1
  280. package/lib/search/search-results/search-results.component.d.ts +1 -1
  281. package/lib/search/shared/search.interfaces.d.ts +1 -1
  282. package/lib/search/shared/sources/cadastre.d.ts +1 -1
  283. package/lib/search/shared/sources/coordinates.d.ts +1 -1
  284. package/lib/search/shared/sources/icherche.d.ts +1 -1
  285. package/lib/search/shared/sources/icherche.interfaces.d.ts +1 -1
  286. package/lib/search/shared/sources/nominatim.d.ts +1 -1
  287. package/lib/search/shared/sources/source.d.ts +1 -1
  288. package/lib/search/shared/sources/storedqueries.d.ts +1 -1
  289. package/lib/search/shared/sources/storedqueries.interfaces.d.ts +1 -1
  290. package/lib/search/shared/sources/workspace.d.ts +1 -1
  291. package/lib/utils/id-generator.d.ts +1 -1
  292. package/lib/workspace/shared/edition-workspace.d.ts +3 -3
  293. package/lib/workspace/shared/edition-workspace.service.d.ts +1 -1
  294. package/lib/workspace/shared/feature-workspace.d.ts +1 -1
  295. package/lib/workspace/shared/feature-workspace.service.d.ts +2 -2
  296. package/lib/workspace/shared/wfs-workspace.d.ts +1 -1
  297. package/lib/workspace/shared/wfs-workspace.service.d.ts +2 -2
  298. package/lib/workspace/shared/wms-workspace.service.d.ts +2 -2
  299. package/lib/workspace/shared/workspace.utils.d.ts +1 -1
  300. package/lib/workspace/workspace-selector/workspace-selector.directive.d.ts +1 -1
  301. package/lib/workspace/workspace-updator/workspace-updator.directive.d.ts +1 -1
  302. package/locale/en.geo.json +5 -3
  303. package/locale/fr.geo.json +5 -3
  304. package/package.json +26 -29
  305. package/{lib → src/lib}/search/search-bar/search-bar.theming.scss +1 -0
  306. package/src/style/style.scss +1 -0
  307. /package/{geo-theme.scss → src/geo-theme.scss} +0 -0
  308. /package/{lib → src/lib}/catalog/catalog-browser/catalog-browser.theming.scss +0 -0
  309. /package/{lib → src/lib}/catalog/catalog.theming.scss +0 -0
  310. /package/{lib → src/lib}/directions/directions-results/directions-results.theming.scss +0 -0
  311. /package/{lib → src/lib}/directions/directions.theming.scss +0 -0
  312. /package/{lib → src/lib}/draw/draw.theming.scss +0 -0
  313. /package/{lib → src/lib}/feature/feature-details/feature-details.theming.scss +0 -0
  314. /package/{lib → src/lib}/feature/feature.theming.scss +0 -0
  315. /package/{lib → src/lib}/filter/filter.theming.scss +0 -0
  316. /package/{lib → src/lib}/filter/ogc-filter-selection/ogc-filter-selection.theming.scss +0 -0
  317. /package/{lib → src/lib}/filter/time-filter-form/time-filter-form.theming.scss +0 -0
  318. /package/{lib → src/lib}/layer/layer-item/layer-item.theme.scss +0 -0
  319. /package/{lib → src/lib}/layer/layer-legend/layer-legend.theming.scss +0 -0
  320. /package/{lib → src/lib}/layer/layer-list-tool/layer-list-tool.theming.scss +0 -0
  321. /package/{lib → src/lib}/layer/layer.theming.scss +0 -0
  322. /package/{lib → src/lib}/map/map-browser/map-browser.theming.scss +0 -0
  323. /package/{lib → src/lib}/map/map.theming.scss +0 -0
  324. /package/{lib → src/lib}/map/menu-button/menu-button.theming.scss +0 -0
  325. /package/{lib → src/lib}/map/zoom-button/zoom-button.theming.scss +0 -0
  326. /package/{lib → src/lib}/measure/measure.theming.scss +0 -0
  327. /package/{lib → src/lib}/measure/measurer/measurer.theming.scss +0 -0
  328. /package/{lib → src/lib}/search/search-results/search-results-item.theme.scss +0 -0
  329. /package/{lib → src/lib}/search/search.theming.scss +0 -0
  330. /package/{lib → src/lib}/workspace/confirmation-popup/confirmation-popup.theming.scss +0 -0
  331. /package/{lib → src/lib}/workspace/workspace.theming.scss +0 -0
@@ -2,67 +2,18 @@ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Even
2
2
  import { NetworkService } from '@igo2/core';
3
3
  import { BehaviorSubject } from 'rxjs';
4
4
  import { layerIsQueryable } from '../../query/shared/query.utils';
5
- import { TooltipType } from '../shared/layers';
5
+ import { TooltipType } from '../shared/layers/layer.interface';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@igo2/core";
8
- function LayerItemComponent_mat_checkbox_1_Template(rf, ctx) { if (rf & 1) {
9
- const _r7 = i0.ɵɵgetCurrentView();
10
- i0.ɵɵelementStart(0, "mat-checkbox", 10);
11
- i0.ɵɵlistener("change", function LayerItemComponent_mat_checkbox_1_Template_mat_checkbox_change_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r6 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r6.check()); });
12
- i0.ɵɵelementEnd();
13
- } if (rf & 2) {
14
- const ctx_r0 = i0.ɵɵnextContext();
15
- i0.ɵɵproperty("checked", ctx_r0.layerCheck);
16
- } }
17
- const _c0 = function (a0) { return { disabled: a0 }; };
18
- function LayerItemComponent_button_5_Template(rf, ctx) { if (rf & 1) {
19
- const _r9 = i0.ɵɵgetCurrentView();
20
- i0.ɵɵelementStart(0, "button", 11);
21
- i0.ɵɵlistener("click", function LayerItemComponent_button_5_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r8 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r8.toggleVisibility($event)); });
22
- i0.ɵɵpipe(1, "translate");
23
- i0.ɵɵelement(2, "mat-icon", 12);
24
- i0.ɵɵpipe(3, "async");
25
- i0.ɵɵpipe(4, "async");
26
- i0.ɵɵpipe(5, "async");
27
- i0.ɵɵelementEnd();
28
- } if (rf & 2) {
29
- const ctx_r1 = i0.ɵɵnextContext();
30
- i0.ɵɵproperty("color", ctx_r1.layer.visible ? "primary" : "default")("matTooltip", i0.ɵɵpipeBind1(1, 5, ctx_r1.eyeTooltip));
31
- i0.ɵɵadvance(2);
32
- i0.ɵɵproperty("matBadgeHidden", i0.ɵɵpipeBind1(3, 7, ctx_r1.queryBadgeHidden$))("ngClass", i0.ɵɵpureFunction1(13, _c0, i0.ɵɵpipeBind1(4, 9, ctx_r1.inResolutionRange$) === false))("svgIcon", i0.ɵɵpipeBind1(5, 11, ctx_r1.layer.visible$) ? "eye" : "eye-off");
33
- } }
34
- function LayerItemComponent_button_6_Template(rf, ctx) { if (rf & 1) {
35
- const _r11 = i0.ɵɵgetCurrentView();
36
- i0.ɵɵelementStart(0, "button", 13);
37
- i0.ɵɵlistener("click", function LayerItemComponent_button_6_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r10 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r10.toggleVisibility($event)); });
38
- i0.ɵɵpipe(1, "translate");
39
- i0.ɵɵpipe(2, "translate");
40
- i0.ɵɵelement(3, "mat-icon", 12);
41
- i0.ɵɵpipe(4, "async");
42
- i0.ɵɵpipe(5, "async");
43
- i0.ɵɵelementEnd();
44
- } if (rf & 2) {
45
- const ctx_r2 = i0.ɵɵnextContext();
46
- i0.ɵɵproperty("color", ctx_r2.layer.visible ? "primary" : "default")("matTooltip", ctx_r2.layer.visible ? i0.ɵɵpipeBind1(1, 5, "igo.geo.layer.hideLayer") : i0.ɵɵpipeBind1(2, 7, "igo.geo.layer.showLayer"));
47
- i0.ɵɵadvance(3);
48
- i0.ɵɵproperty("matBadgeHidden", i0.ɵɵpipeBind1(4, 9, ctx_r2.queryBadgeHidden$))("ngClass", i0.ɵɵpureFunction1(13, _c0, i0.ɵɵpipeBind1(5, 11, ctx_r2.inResolutionRange$) === false))("svgIcon", ctx_r2.layer.visible ? "eye" : "eye-off");
49
- } }
50
- function LayerItemComponent_button_7_Template(rf, ctx) { if (rf & 1) {
51
- const _r13 = i0.ɵɵgetCurrentView();
52
- i0.ɵɵelementStart(0, "button", 14);
53
- i0.ɵɵlistener("click", function LayerItemComponent_button_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r13); const ctx_r12 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r12.toggleLayerTool()); });
54
- i0.ɵɵpipe(1, "translate");
55
- i0.ɵɵelement(2, "mat-icon", 15);
56
- i0.ɵɵelementEnd();
57
- } if (rf & 2) {
58
- i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(1, 1, "igo.geo.layer.moreOptions"));
59
- } }
60
- function LayerItemComponent_igo_layer_legend_10_Template(rf, ctx) { if (rf & 1) {
61
- i0.ɵɵelement(0, "igo-layer-legend", 16);
62
- } if (rf & 2) {
63
- const ctx_r5 = i0.ɵɵnextContext();
64
- i0.ɵɵproperty("layer", ctx_r5.layer)("updateLegendOnResolutionChange", ctx_r5.updateLegendOnResolutionChange);
65
- } }
8
+ import * as i2 from "@angular/common";
9
+ import * as i3 from "@angular/material/icon";
10
+ import * as i4 from "@angular/material/button";
11
+ import * as i5 from "@angular/material/tooltip";
12
+ import * as i6 from "@angular/material/list";
13
+ import * as i7 from "@angular/material/badge";
14
+ import * as i8 from "@angular/material/checkbox";
15
+ import * as i9 from "../layer-legend/layer-legend.component";
16
+ import * as i10 from "@ngx-translate/core";
66
17
  export class LayerItemComponent {
67
18
  networkService;
68
19
  renderer;
@@ -253,72 +204,41 @@ export class LayerItemComponent {
253
204
  this.layerCheck = !this.layerCheck;
254
205
  this.checkbox.emit({ layer: this.layer, check: this.layerCheck });
255
206
  }
256
- static ɵfac = function LayerItemComponent_Factory(t) { return new (t || LayerItemComponent)(i0.ɵɵdirectiveInject(i1.NetworkService), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
257
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LayerItemComponent, selectors: [["igo-layer-item"]], inputs: { activeLayer: "activeLayer", selectAll: "selectAll", layerCheck: "layerCheck", layer: "layer", toggleLegendOnVisibilityChange: "toggleLegendOnVisibilityChange", expandLegendIfVisible: "expandLegendIfVisible", updateLegendOnResolutionChange: "updateLegendOnResolutionChange", orderable: "orderable", lowerDisabled: "lowerDisabled", raiseDisabled: "raiseDisabled", queryBadge: "queryBadge", selectionMode: "selectionMode", changeDetection: "changeDetection" }, outputs: { action: "action", checkbox: "checkbox" }, decls: 12, vars: 9, consts: [[1, "igo-layer-list-item"], ["class", "layerCheck", "matListItemIcon", "", 3, "checked", "change", 4, "ngIf"], ["matListItemTitle", "", "matTooltipShowDelay", "500", 1, "igo-layer-title", 3, "matTooltip", "click"], ["matListItemMeta", ""], ["mat-icon-button", "", "collapsibleButton", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "color", "matTooltip", "click", 4, "ngIf"], ["class", "selection-eye", "mat-icon-button", "", "collapsibleButton", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "color", "matTooltip", "click", 4, "ngIf"], ["class", "actions-button", "tooltip-position", "below", "matTooltipShowDelay", "500", "mat-icon-button", "", "color", "primary", 3, "matTooltip", "click", 4, "ngIf"], [1, "igo-layer-legend-container"], ["legend", ""], [3, "layer", "updateLegendOnResolutionChange", 4, "ngIf"], ["matListItemIcon", "", 1, "layerCheck", 3, "checked", "change"], ["mat-icon-button", "", "collapsibleButton", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "color", "matTooltip", "click"], ["aria-hidden", "false", "matBadge", "?", "matBadgeColor", "accent", "matBadgeSize", "small", "matBadgePosition", "after", 3, "matBadgeHidden", "ngClass", "svgIcon"], ["mat-icon-button", "", "collapsibleButton", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 1, "selection-eye", 3, "color", "matTooltip", "click"], ["tooltip-position", "below", "matTooltipShowDelay", "500", "mat-icon-button", "", "color", "primary", 1, "actions-button", 3, "matTooltip", "click"], ["svgIcon", "dots-horizontal"], [3, "layer", "updateLegendOnResolutionChange"]], template: function LayerItemComponent_Template(rf, ctx) { if (rf & 1) {
258
- i0.ɵɵelementStart(0, "mat-list-item", 0);
259
- i0.ɵɵtemplate(1, LayerItemComponent_mat_checkbox_1_Template, 1, 1, "mat-checkbox", 1);
260
- i0.ɵɵelementStart(2, "span", 2);
261
- i0.ɵɵlistener("click", function LayerItemComponent_Template_span_click_2_listener() { return ctx.toggleLegendOnClick(); });
262
- i0.ɵɵtext(3);
263
- i0.ɵɵelementEnd();
264
- i0.ɵɵelementStart(4, "div", 3);
265
- i0.ɵɵtemplate(5, LayerItemComponent_button_5_Template, 6, 15, "button", 4);
266
- i0.ɵɵtemplate(6, LayerItemComponent_button_6_Template, 6, 15, "button", 5);
267
- i0.ɵɵtemplate(7, LayerItemComponent_button_7_Template, 3, 3, "button", 6);
268
- i0.ɵɵelementEnd()();
269
- i0.ɵɵelementStart(8, "div", 7, 8);
270
- i0.ɵɵtemplate(10, LayerItemComponent_igo_layer_legend_10_Template, 1, 2, "igo-layer-legend", 9);
271
- i0.ɵɵpipe(11, "async");
272
- i0.ɵɵelementEnd();
273
- } if (rf & 2) {
274
- i0.ɵɵadvance(1);
275
- i0.ɵɵproperty("ngIf", ctx.selectionMode);
276
- i0.ɵɵadvance(1);
277
- i0.ɵɵproperty("matTooltip", ctx.tooltipText);
278
- i0.ɵɵadvance(1);
279
- i0.ɵɵtextInterpolate1(" ", ctx.layer.title, " ");
280
- i0.ɵɵadvance(2);
281
- i0.ɵɵproperty("ngIf", !ctx.selectionMode);
282
- i0.ɵɵadvance(1);
283
- i0.ɵɵproperty("ngIf", ctx.selectionMode);
284
- i0.ɵɵadvance(1);
285
- i0.ɵɵproperty("ngIf", !ctx.selectionMode);
286
- i0.ɵɵadvance(3);
287
- i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(11, 7, ctx.showLegend$));
288
- } }, styles: ["[_nghost-%COMP%]{overflow:hidden}[_nghost-%COMP%] .igo-layer-title{display:block;width:100%;cursor:pointer}[_nghost-%COMP%] .igo-layer-legend-container[_ngcontent-%COMP%]{padding-left:18px;width:calc(100% - 18px)}[_nghost-%COMP%] mat-icon[matBadge][_ngcontent-%COMP%] .mat-badge-content{font-size:12px}[_nghost-%COMP%] .layerCheck[_ngcontent-%COMP%]{align-self:baseline;width:16px;padding-right:0}"], changeDetection: 0 });
207
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LayerItemComponent, deps: [{ token: i1.NetworkService }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
208
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: LayerItemComponent, selector: "igo-layer-item", inputs: { activeLayer: "activeLayer", selectAll: "selectAll", layerCheck: "layerCheck", layer: "layer", toggleLegendOnVisibilityChange: "toggleLegendOnVisibilityChange", expandLegendIfVisible: "expandLegendIfVisible", updateLegendOnResolutionChange: "updateLegendOnResolutionChange", orderable: "orderable", lowerDisabled: "lowerDisabled", raiseDisabled: "raiseDisabled", queryBadge: "queryBadge", selectionMode: "selectionMode", changeDetection: "changeDetection" }, outputs: { action: "action", checkbox: "checkbox" }, ngImport: i0, template: "<mat-list-item class=\"igo-layer-list-item\">\r\n <mat-checkbox\r\n *ngIf=\"selectionMode\"\r\n class=\"layerCheck\"\r\n matListItemIcon\r\n (change)=\"check()\"\r\n [checked]=\"layerCheck\"\r\n >\r\n </mat-checkbox>\r\n <span\r\n matListItemTitle\r\n class=\"igo-layer-title\"\r\n [matTooltip]=\"tooltipText\"\r\n matTooltipShowDelay=\"500\"\r\n (click)=\"toggleLegendOnClick()\"\r\n >\r\n {{ layer.title }}\r\n </span>\r\n\r\n <div matListItemMeta>\r\n <button\r\n *ngIf=\"!selectionMode\"\r\n mat-icon-button\r\n [color]=\"layer.visible ? 'primary' : 'default'\"\r\n collapsibleButton\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"eyeTooltip | translate\"\r\n (click)=\"toggleVisibility($event)\"\r\n >\r\n <mat-icon\r\n aria-hidden=\"false\"\r\n matBadge=\"?\"\r\n matBadgeColor=\"accent\"\r\n matBadgeSize=\"small\"\r\n matBadgePosition=\"after\"\r\n [matBadgeHidden]=\"queryBadgeHidden$ | async\"\r\n [ngClass]=\"{ disabled: (inResolutionRange$ | async) === false }\"\r\n [svgIcon]=\"(layer.visible$ | async) ? 'eye' : 'eye-off'\"\r\n >\r\n </mat-icon>\r\n </button>\r\n\r\n <button\r\n *ngIf=\"selectionMode\"\r\n class=\"selection-eye\"\r\n mat-icon-button\r\n [color]=\"layer.visible ? 'primary' : 'default'\"\r\n collapsibleButton\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"\r\n layer.visible\r\n ? ('igo.geo.layer.hideLayer' | translate)\r\n : ('igo.geo.layer.showLayer' | translate)\r\n \"\r\n (click)=\"toggleVisibility($event)\"\r\n >\r\n <mat-icon\r\n aria-hidden=\"false\"\r\n matBadge=\"?\"\r\n matBadgeColor=\"accent\"\r\n matBadgeSize=\"small\"\r\n matBadgePosition=\"after\"\r\n [matBadgeHidden]=\"queryBadgeHidden$ | async\"\r\n [ngClass]=\"{ disabled: (inResolutionRange$ | async) === false }\"\r\n [svgIcon]=\"layer.visible ? 'eye' : 'eye-off'\"\r\n >\r\n </mat-icon>\r\n </button>\r\n\r\n <button\r\n *ngIf=\"!selectionMode\"\r\n class=\"actions-button\"\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.geo.layer.moreOptions' | translate\"\r\n mat-icon-button\r\n color=\"primary\"\r\n (click)=\"toggleLayerTool()\"\r\n >\r\n <mat-icon svgIcon=\"dots-horizontal\"></mat-icon>\r\n </button>\r\n </div>\r\n</mat-list-item>\r\n\r\n<div #legend class=\"igo-layer-legend-container\">\r\n <igo-layer-legend\r\n *ngIf=\"showLegend$ | async\"\r\n [layer]=\"layer\"\r\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\"\r\n >\r\n </igo-layer-legend>\r\n</div>\r\n", styles: [":host{overflow:hidden}:host ::ng-deep .igo-layer-title{display:block;width:100%;cursor:pointer}:host .igo-layer-legend-container{padding-left:18px;width:calc(100% - 18px)}:host mat-icon[matBadge] ::ng-deep .mat-badge-content{font-size:12px}:host .layerCheck{align-self:baseline;width:16px;padding-right:0}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i6.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i6.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i6.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "directive", type: i6.MatListItemMeta, selector: "[matListItemMeta]" }, { kind: "directive", type: i7.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgeColor", "matBadgeOverlap", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i8.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i9.LayerLegendComponent, selector: "igo-layer-legend", inputs: ["updateLegendOnResolutionChange", "layer"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
289
209
  }
290
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LayerItemComponent, [{
291
- type: Component,
292
- args: [{ selector: 'igo-layer-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-list-item class=\"igo-layer-list-item\">\r\n <mat-checkbox\r\n *ngIf=\"selectionMode\"\r\n class=\"layerCheck\"\r\n matListItemIcon\r\n (change)=\"check()\"\r\n [checked]=\"layerCheck\"\r\n >\r\n </mat-checkbox>\r\n <span\r\n matListItemTitle\r\n class=\"igo-layer-title\"\r\n [matTooltip]=\"tooltipText\"\r\n matTooltipShowDelay=\"500\"\r\n (click)=\"toggleLegendOnClick()\"\r\n >\r\n {{ layer.title }}\r\n </span>\r\n\r\n <div matListItemMeta>\r\n <button\r\n *ngIf=\"!selectionMode\"\r\n mat-icon-button\r\n [color]=\"layer.visible ? 'primary' : 'default'\"\r\n collapsibleButton\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"eyeTooltip | translate\"\r\n (click)=\"toggleVisibility($event)\"\r\n >\r\n <mat-icon\r\n aria-hidden=\"false\"\r\n matBadge=\"?\"\r\n matBadgeColor=\"accent\"\r\n matBadgeSize=\"small\"\r\n matBadgePosition=\"after\"\r\n [matBadgeHidden]=\"queryBadgeHidden$ | async\"\r\n [ngClass]=\"{ disabled: (inResolutionRange$ | async) === false }\"\r\n [svgIcon]=\"(layer.visible$ | async) ? 'eye' : 'eye-off'\"\r\n >\r\n </mat-icon>\r\n </button>\r\n\r\n <button\r\n *ngIf=\"selectionMode\"\r\n class=\"selection-eye\"\r\n mat-icon-button\r\n [color]=\"layer.visible ? 'primary' : 'default'\"\r\n collapsibleButton\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"\r\n layer.visible\r\n ? ('igo.geo.layer.hideLayer' | translate)\r\n : ('igo.geo.layer.showLayer' | translate)\r\n \"\r\n (click)=\"toggleVisibility($event)\"\r\n >\r\n <mat-icon\r\n aria-hidden=\"false\"\r\n matBadge=\"?\"\r\n matBadgeColor=\"accent\"\r\n matBadgeSize=\"small\"\r\n matBadgePosition=\"after\"\r\n [matBadgeHidden]=\"queryBadgeHidden$ | async\"\r\n [ngClass]=\"{ disabled: (inResolutionRange$ | async) === false }\"\r\n [svgIcon]=\"layer.visible ? 'eye' : 'eye-off'\"\r\n >\r\n </mat-icon>\r\n </button>\r\n\r\n <button\r\n *ngIf=\"!selectionMode\"\r\n class=\"actions-button\"\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.geo.layer.moreOptions' | translate\"\r\n mat-icon-button\r\n color=\"primary\"\r\n (click)=\"toggleLayerTool()\"\r\n >\r\n <mat-icon svgIcon=\"dots-horizontal\"></mat-icon>\r\n </button>\r\n </div>\r\n</mat-list-item>\r\n\r\n<div #legend class=\"igo-layer-legend-container\">\r\n <igo-layer-legend\r\n *ngIf=\"showLegend$ | async\"\r\n [layer]=\"layer\"\r\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\"\r\n >\r\n </igo-layer-legend>\r\n</div>\r\n", styles: [":host{overflow:hidden}:host ::ng-deep .igo-layer-title{display:block;width:100%;cursor:pointer}:host .igo-layer-legend-container{padding-left:18px;width:calc(100% - 18px)}:host mat-icon[matBadge] ::ng-deep .mat-badge-content{font-size:12px}:host .layerCheck{align-self:baseline;width:16px;padding-right:0}\n"] }]
293
- }], function () { return [{ type: i1.NetworkService }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, { activeLayer: [{
294
- type: Input
295
- }], selectAll: [{
296
- type: Input
297
- }], layerCheck: [{
298
- type: Input
299
- }], layer: [{
300
- type: Input
301
- }], toggleLegendOnVisibilityChange: [{
302
- type: Input
303
- }], expandLegendIfVisible: [{
304
- type: Input
305
- }], updateLegendOnResolutionChange: [{
306
- type: Input
307
- }], orderable: [{
308
- type: Input
309
- }], lowerDisabled: [{
310
- type: Input
311
- }], raiseDisabled: [{
312
- type: Input
313
- }], queryBadge: [{
314
- type: Input
315
- }], selectionMode: [{
316
- type: Input
317
- }], changeDetection: [{
318
- type: Input
319
- }], action: [{
320
- type: Output
321
- }], checkbox: [{
322
- type: Output
323
- }] }); })();
324
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXItaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9sYXllci9sYXllci1pdGVtL2xheWVyLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbGF5ZXIvbGF5ZXItaXRlbS9sYXllci1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBbUIsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTdELE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBR3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBUyxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7SUNsQnBELHdDQU1DO0lBRkMsZ0xBQVUsZUFBQSxjQUFPLENBQUEsSUFBQztJQUdwQixpQkFBZTs7O0lBRmIsMkNBQXNCOzs7OztJQWN0QixrQ0FTQztJQURDLHdLQUFTLGVBQUEsK0JBQXdCLENBQUEsSUFBQzs7SUFFbEMsK0JBVVc7Ozs7SUFDYixpQkFBUzs7O0lBbEJQLG9FQUErQyx1REFBQTtJQWE3QyxlQUE0QztJQUE1QywrRUFBNEMsbUdBQUEsNkVBQUE7Ozs7SUFPaEQsa0NBY0M7SUFEQywwS0FBUyxlQUFBLGdDQUF3QixDQUFBLElBQUM7OztJQUVsQywrQkFVVzs7O0lBQ2IsaUJBQVM7OztJQXRCUCxvRUFBK0Msd0lBQUE7SUFpQjdDLGVBQTRDO0lBQTVDLCtFQUE0QyxvR0FBQSxxREFBQTs7OztJQU9o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a0JBRGQsS0FBSztZQWdDRixTQUFTO2tCQURaLEtBQUs7WUFZRyxVQUFVO2tCQUFsQixLQUFLO1lBU0YsS0FBSztrQkFEUixLQUFLO1lBVUcsOEJBQThCO2tCQUF0QyxLQUFLO1lBRUcscUJBQXFCO2tCQUE3QixLQUFLO1lBRUcsOEJBQThCO2tCQUF0QyxLQUFLO1lBRUcsU0FBUztrQkFBakIsS0FBSztZQUVHLGFBQWE7a0JBQXJCLEtBQUs7WUFFRyxhQUFhO2tCQUFyQixLQUFLO1lBRUcsVUFBVTtrQkFBbEIsS0FBSztZQUVHLGFBQWE7a0JBQXJCLEtBQUs7WUFFRyxlQUFlO2tCQUF2QixLQUFLO1lBbUJJLE1BQU07a0JBQWYsTUFBTTtZQUNHLFFBQVE7a0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBSZW5kZXJlcjJcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IENvbm5lY3Rpb25TdGF0ZSwgTmV0d29ya1NlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcclxuXHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBNZXRhZGF0YUxheWVyT3B0aW9ucyB9IGZyb20gJy4uLy4uL21ldGFkYXRhL3NoYXJlZC9tZXRhZGF0YS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBsYXllcklzUXVlcnlhYmxlIH0gZnJvbSAnLi4vLi4vcXVlcnkvc2hhcmVkL3F1ZXJ5LnV0aWxzJztcclxuaW1wb3J0IHsgTGF5ZXIsIFRvb2x0aXBUeXBlIH0gZnJvbSAnLi4vc2hhcmVkL2xheWVycyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lnby1sYXllci1pdGVtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbGF5ZXItaXRlbS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbGF5ZXItaXRlbS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMYXllckl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHVibGljIGZvY3VzZWRDbHMgPSAnaWdvLWxheWVyLWl0ZW0tZm9jdXNlZCc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGFjdGl2ZUxheWVyKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZUxheWVyO1xyXG4gIH1cclxuICBzZXQgYWN0aXZlTGF5ZXIodmFsdWUpIHtcclxuICAgIGlmIChcclxuICAgICAgdmFsdWUgJiZcclxuICAgICAgdGhpcy5sYXllciAmJlxyXG4gICAgICB2YWx1ZS5pZCA9PT0gdGhpcy5sYXllci5pZCAmJlxyXG4gICAgICAhdGhpcy5zZWxlY3Rpb25Nb2RlXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5sYXllclRvb2wkLm5leHQodHJ1ZSk7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmZvY3VzZWRDbHMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZm9jdXNlZENscyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHByaXZhdGUgX2FjdGl2ZUxheWVyO1xyXG5cclxuICBsYXllclRvb2wkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcclxuXHJcbiAgc2hvd0xlZ2VuZCQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodHJ1ZSk7XHJcblxyXG4gIGluUmVzb2x1dGlvblJhbmdlJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0cnVlKTtcclxuXHJcbiAgcXVlcnlCYWRnZUhpZGRlbiQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodHJ1ZSk7XHJcblxyXG4gIHRvb2x0aXBUZXh0OiBzdHJpbmc7XHJcblxyXG4gIHN0YXRlOiBDb25uZWN0aW9uU3RhdGU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHNlbGVjdEFsbCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9zZWxlY3RBbGw7XHJcbiAgfVxyXG4gIHNldCBzZWxlY3RBbGwodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX3NlbGVjdEFsbCA9IHZhbHVlO1xyXG4gICAgaWYgKHZhbHVlID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMubGF5ZXJDaGVjayA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHByaXZhdGUgX3NlbGVjdEFsbCA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBsYXllckNoZWNrO1xyXG5cclxuICBwcml2YXRlIHJlc29sdXRpb24kJDogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgbmV0d29yayQkOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBsYXllcnMkJDogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBsYXllcnMkOiBCZWhhdmlvclN1YmplY3Q8TGF5ZXI+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxMYXllcj4odW5kZWZpbmVkKTtcclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgbGF5ZXIoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbGF5ZXI7XHJcbiAgfVxyXG4gIHNldCBsYXllcih2YWx1ZSkge1xyXG4gICAgdGhpcy5fbGF5ZXIgPSB2YWx1ZTtcclxuICAgIHRoaXMubGF5ZXJzJC5uZXh0KHZhbHVlKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfbGF5ZXI7XHJcblxyXG4gIEBJbnB1dCgpIHRvZ2dsZUxlZ2VuZE9uVmlzaWJpbGl0eUNoYW5nZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBleHBhbmRMZWdlbmRJZlZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgdXBkYXRlTGVnZW5kT25SZXNvbHV0aW9uQ2hhbmdlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIG9yZGVyYWJsZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpIGxvd2VyRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgcmFpc2VEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBxdWVyeUJhZGdlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIHNlbGVjdGlvbk1vZGU7XHJcblxyXG4gIEBJbnB1dCgpIGNoYW5nZURldGVjdGlvbjtcclxuXHJcbiAgZ2V0IG9wYWNpdHkoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5sYXllci5vcGFjaXR5ICogMTAwO1xyXG4gIH1cclxuICBzZXQgb3BhY2l0eShvcGFjaXR5OiBudW1iZXIpIHtcclxuICAgIHRoaXMubGF5ZXIub3BhY2l0eSA9IG9wYWNpdHkgLyAxMDA7XHJcbiAgfVxyXG5cclxuICBnZXQgZXllVG9vbHRpcCgpIHtcclxuICAgIGlmICh0aGlzLmluUmVzb2x1dGlvblJhbmdlJC5nZXRWYWx1ZSgpID09PSBmYWxzZSkge1xyXG4gICAgICByZXR1cm4gJ2lnby5nZW8ubGF5ZXIubm90SW5SZXNvbHV0aW9uJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxheWVyLnZpc2libGVcclxuICAgICAgICA/ICdpZ28uZ2VvLmxheWVyLmhpZGVMYXllcidcclxuICAgICAgICA6ICdpZ28uZ2VvLmxheWVyLnNob3dMYXllcic7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgYWN0aW9uOiBFdmVudEVtaXR0ZXI8TGF5ZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxMYXllcj4odW5kZWZpbmVkKTtcclxuICBAT3V0cHV0KCkgY2hlY2tib3ggPSBuZXcgRXZlbnRFbWl0dGVyPHtcclxuICAgIGxheWVyOiBMYXllcjtcclxuICAgIGNoZWNrOiBib29sZWFuO1xyXG4gIH0+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBuZXR3b3JrU2VydmljZTogTmV0d29ya1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmxheWVyLnZpc2libGUgJiZcclxuICAgICAgdGhpcy5leHBhbmRMZWdlbmRJZlZpc2libGUgJiZcclxuICAgICAgdGhpcy5sYXllci5maXJzdExvYWRDb21wb25lbnQgPT09IHRydWVcclxuICAgICkge1xyXG4gICAgICB0aGlzLmxheWVyLmZpcnN0TG9hZENvbXBvbmVudCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmxheWVyLmxlZ2VuZENvbGxhcHNlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgdGhpcy50b2dnbGVMZWdlbmQodGhpcy5sYXllci5sZWdlbmRDb2xsYXBzZWQpO1xyXG4gICAgdGhpcy51cGRhdGVRdWVyeUJhZGdlKCk7XHJcblxyXG4gICAgY29uc3QgcmVzb2x1dGlvbiQgPSB0aGlzLmxheWVyLm1hcC52aWV3Q29udHJvbGxlci5yZXNvbHV0aW9uJDtcclxuICAgIHRoaXMucmVzb2x1dGlvbiQkID0gcmVzb2x1dGlvbiQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5vblJlc29sdXRpb25DaGFuZ2UoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy50b29sdGlwVGV4dCA9IHRoaXMuY29tcHV0ZVRvb2x0aXAoKTtcclxuXHJcbiAgICB0aGlzLm5ldHdvcmskJCA9IHRoaXMubmV0d29ya1NlcnZpY2VcclxuICAgICAgLmN1cnJlbnRTdGF0ZSgpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHN0YXRlOiBDb25uZWN0aW9uU3RhdGUpID0+IHtcclxuICAgICAgICB0aGlzLnN0YXRlID0gc3RhdGU7XHJcbiAgICAgICAgdGhpcy5vblJlc29sdXRpb25DaGFuZ2UoKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgdGhpcy5sYXllcnMkJCA9IHRoaXMubGF5ZXJzJC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5sYXllciAmJiB0aGlzLmxheWVyLm9wdGlvbnMuYWN0aXZlKSB7XHJcbiAgICAgICAgdGhpcy5sYXllclRvb2wkLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZm9jdXNlZENscyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGlmICh0aGlzLmNoYW5nZURldGVjdGlvbikge1xyXG4gICAgICB0aGlzLmNoYW5nZURldGVjdGlvbi5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLnJlc29sdXRpb24kJC51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5uZXR3b3JrJCQudW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMubGF5ZXJzJCQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHRvZ2dsZUxlZ2VuZChjb2xsYXBzZWQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMubGF5ZXIubGVnZW5kQ29sbGFwc2VkID0gY29sbGFwc2VkO1xyXG4gICAgdGhpcy5zaG93TGVnZW5kJC5uZXh0KCFjb2xsYXBzZWQpO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlTGVnZW5kT25DbGljaygpIHtcclxuICAgIHRoaXMudG9nZ2xlTGVnZW5kKHRoaXMuc2hvd0xlZ2VuZCQudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlVmlzaWJpbGl0eShldmVudDogRXZlbnQpIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5sYXllci52aXNpYmxlID0gIXRoaXMubGF5ZXIudmlzaWJsZTtcclxuICAgIGlmICh0aGlzLnRvZ2dsZUxlZ2VuZE9uVmlzaWJpbGl0eUNoYW5nZSkge1xyXG4gICAgICB0aGlzLnRvZ2dsZUxlZ2VuZCghdGhpcy5sYXllci52aXNpYmxlKTtcclxuICAgIH1cclxuICAgIHRoaXMudXBkYXRlUXVlcnlCYWRnZSgpO1xyXG4gIH1cclxuXHJcbiAgY29tcHV0ZVRvb2x0aXAoKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGxheWVyT3B0aW9ucyA9IHRoaXMubGF5ZXIub3B0aW9ucztcclxuICAgIGlmICghbGF5ZXJPcHRpb25zLnRvb2x0aXApIHtcclxuICAgICAgcmV0dXJuIHRoaXMubGF5ZXIudGl0bGU7XHJcbiAgICB9XHJcbiAgICBjb25zdCBsYXllclRvb2x0aXAgPSBsYXllck9wdGlvbnMudG9vbHRpcDtcclxuICAgIGNvbnN0IGxheWVyTWV0YWRhdGEgPSAobGF5ZXJPcHRpb25zIGFzIE1ldGFkYXRhTGF5ZXJPcHRpb25zKS5tZXRhZGF0YTtcclxuICAgIHN3aXRjaCAobGF5ZXJPcHRpb25zLnRvb2x0aXAudHlwZSkge1xyXG4gICAgICBjYXNlIFRvb2x0aXBUeXBlLlRJVExFOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmxheWVyLnRpdGxlO1xyXG4gICAgICBjYXNlIFRvb2x0aXBUeXBlLkFCU1RSQUNUOlxyXG4gICAgICAgIGlmIChsYXllck1ldGFkYXRhICYmIGxheWVyTWV0YWRhdGEuYWJzdHJhY3QpIHtcclxuICAgICAgICAgIHJldHVybiBsYXllck1ldGFkYXRhLmFic3RyYWN0O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5sYXllci50aXRsZTtcclxuICAgICAgICB9XHJcbiAgICAgIGNhc2UgVG9vbHRpcFR5cGUuQ1VTVE9NOlxyXG4gICAgICAgIGlmIChsYXllclRvb2x0aXAgJiYgbGF5ZXJUb29sdGlwLnRleHQpIHtcclxuICAgICAgICAgIHJldHVybiBsYXllclRvb2x0aXAudGV4dDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMubGF5ZXIudGl0bGU7XHJcbiAgICAgICAgfVxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiB0aGlzLmxheWVyLnRpdGxlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvblJlc29sdXRpb25DaGFuZ2UoKSB7XHJcbiAgICBjb25zdCBpblJlc29sdXRpb25SYW5nZSA9IHRoaXMubGF5ZXIuaXNJblJlc29sdXRpb25zUmFuZ2U7XHJcbiAgICBpZiAoXHJcbiAgICAgIGluUmVzb2x1dGlvblJhbmdlID09PSBmYWxzZSAmJlxyXG4gICAgICB0aGlzLnVwZGF0ZUxlZ2VuZE9uUmVzb2x1dGlvbkNoYW5nZSA9PT0gdHJ1ZVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMudG9nZ2xlTGVnZW5kKHRydWUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pblJlc29sdXRpb25SYW5nZSQubmV4dChpblJlc29sdXRpb25SYW5nZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZVF1ZXJ5QmFkZ2UoKSB7XHJcbiAgICBjb25zdCBoaWRkZW4gPVxyXG4gICAgICB0aGlzLnF1ZXJ5QmFkZ2UgPT09IGZhbHNlIHx8XHJcbiAgICAgIHRoaXMubGF5ZXIudmlzaWJsZSA9PT0gZmFsc2UgfHxcclxuICAgICAgIWxheWVySXNRdWVyeWFibGUodGhpcy5sYXllcik7XHJcbiAgICB0aGlzLnF1ZXJ5QmFkZ2VIaWRkZW4kLm5leHQoaGlkZGVuKTtcclxuICB9XHJcblxyXG4gIHRvZ2dsZUxheWVyVG9vbCgpIHtcclxuICAgIHRoaXMubGF5ZXJUb29sJC5uZXh0KCF0aGlzLmxheWVyVG9vbCQuZ2V0VmFsdWUoKSk7XHJcbiAgICBpZiAodGhpcy5sYXllclRvb2wkLmdldFZhbHVlKCkgPT09IHRydWUpIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZm9jdXNlZENscyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5mb2N1c2VkQ2xzKTtcclxuICAgIH1cclxuICAgIHRoaXMuYWN0aW9uLmVtaXQodGhpcy5sYXllcik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2hlY2soKSB7XHJcbiAgICB0aGlzLmxheWVyQ2hlY2sgPSAhdGhpcy5sYXllckNoZWNrO1xyXG4gICAgdGhpcy5jaGVja2JveC5lbWl0KHsgbGF5ZXI6IHRoaXMubGF5ZXIsIGNoZWNrOiB0aGlzLmxheWVyQ2hlY2sgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxtYXQtbGlzdC1pdGVtIGNsYXNzPVwiaWdvLWxheWVyLWxpc3QtaXRlbVwiPlxyXG4gIDxtYXQtY2hlY2tib3hcclxuICAgICpuZ0lmPVwic2VsZWN0aW9uTW9kZVwiXHJcbiAgICBjbGFzcz1cImxheWVyQ2hlY2tcIlxyXG4gICAgbWF0TGlzdEl0ZW1JY29uXHJcbiAgICAoY2hhbmdlKT1cImNoZWNrKClcIlxyXG4gICAgW2NoZWNrZWRdPVwibGF5ZXJDaGVja1wiXHJcbiAgPlxyXG4gIDwvbWF0LWNoZWNrYm94PlxyXG4gIDxzcGFuXHJcbiAgICBtYXRMaXN0SXRlbVRpdGxlXHJcbiAgICBjbGFzcz1cImlnby1sYXllci10aXRsZVwiXHJcbiAgICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwVGV4dFwiXHJcbiAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcclxuICAgIChjbGljayk9XCJ0b2dnbGVMZWdlbmRPbkNsaWNrKClcIlxyXG4gID5cclxuICAgIHt7IGxheWVyLnRpdGxlIH19XHJcbiAgPC9zcGFuPlxyXG5cclxuICA8ZGl2IG1hdExpc3RJdGVtTWV0YT5cclxuICAgIDxidXR0b25cclxuICAgICAgKm5nSWY9XCIhc2VsZWN0aW9uTW9kZVwiXHJcbiAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICBbY29sb3JdPVwibGF5ZXIudmlzaWJsZSA/ICdwcmltYXJ5JyA6ICdkZWZhdWx0J1wiXHJcbiAgICAgIGNvbGxhcHNpYmxlQnV0dG9uXHJcbiAgICAgIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXHJcbiAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxyXG4gICAgICBbbWF0VG9vbHRpcF09XCJleWVUb29sdGlwIHwgdHJhbnNsYXRlXCJcclxuICAgICAgKGNsaWNrKT1cInRvZ2dsZVZpc2liaWxpdHkoJGV2ZW50KVwiXHJcbiAgICA+XHJcbiAgICAgIDxtYXQtaWNvblxyXG4gICAgICAgIGFyaWEtaGlkZGVuPVwiZmFsc2VcIlxyXG4gICAgICAgIG1hdEJhZGdlPVwiP1wiXHJcbiAgICAgICAgbWF0QmFkZ2VDb2xvcj1cImFjY2VudFwiXHJcbiAgICAgICAgbWF0QmFkZ2VTaXplPVwic21hbGxcIlxyXG4gICAgICAgIG1hdEJhZGdlUG9zaXRpb249XCJhZnRlclwiXHJcbiAgICAgICAgW21hdEJhZGdlSGlkZGVuXT1cInF1ZXJ5QmFkZ2VIaWRkZW4kIHwgYXN5bmNcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgZGlzYWJsZWQ6IChpblJlc29sdXRpb25SYW5nZSQgfCBhc3luYykgPT09IGZhbHNlIH1cIlxyXG4gICAgICAgIFtzdmdJY29uXT1cIihsYXllci52aXNpYmxlJCB8IGFzeW5jKSA/ICdleWUnIDogJ2V5ZS1vZmYnXCJcclxuICAgICAgPlxyXG4gICAgICA8L21hdC1pY29uPlxyXG4gICAgPC9idXR0b24+XHJcblxyXG4gICAgPGJ1dHRvblxyXG4gICAgICAqbmdJZj1cInNlbGVjdGlvbk1vZGVcIlxyXG4gICAgICBjbGFzcz1cInNlbGVjdGlvbi1leWVcIlxyXG4gICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgW2NvbG9yXT1cImxheWVyLnZpc2libGUgPyAncHJpbWFyeScgOiAnZGVmYXVsdCdcIlxyXG4gICAgICBjb2xsYXBzaWJsZUJ1dHRvblxyXG4gICAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxyXG4gICAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcclxuICAgICAgW21hdFRvb2x0aXBdPVwiXHJcbiAgICAgICAgbGF5ZXIudmlzaWJsZVxyXG4gICAgICAgICAgPyAoJ2lnby5nZW8ubGF5ZXIuaGlkZUxheWVyJyB8IHRyYW5zbGF0ZSlcclxuICAgICAgICAgIDogKCdpZ28uZ2VvLmxheWVyLnNob3dMYXllcicgfCB0cmFuc2xhdGUpXHJcbiAgICAgIFwiXHJcbiAgICAgIChjbGljayk9XCJ0b2dnbGVWaXNpYmlsaXR5KCRldmVudClcIlxyXG4gICAgPlxyXG4gICAgICA8bWF0LWljb25cclxuICAgICAgICBhcmlhLWhpZGRlbj1cImZhbHNlXCJcclxuICAgICAgICBtYXRCYWRnZT1cIj9cIlxyXG4gICAgICAgIG1hdEJhZGdlQ29sb3I9XCJhY2NlbnRcIlxyXG4gICAgICAgIG1hdEJhZGdlU2l6ZT1cInNtYWxsXCJcclxuICAgICAgICBtYXRCYWRnZVBvc2l0aW9uPVwiYWZ0ZXJcIlxyXG4gICAgICAgIFttYXRCYWRnZUhpZGRlbl09XCJxdWVyeUJhZGdlSGlkZGVuJCB8IGFzeW5jXCJcclxuICAgICAgICBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiAoaW5SZXNvbHV0aW9uUmFuZ2UkIHwgYXN5bmMpID09PSBmYWxzZSB9XCJcclxuICAgICAgICBbc3ZnSWNvbl09XCJsYXllci52aXNpYmxlID8gJ2V5ZScgOiAnZXllLW9mZidcIlxyXG4gICAgICA+XHJcbiAgICAgIDwvbWF0LWljb24+XHJcbiAgICA8L2J1dHRvbj5cclxuXHJcbiAgICA8YnV0dG9uXHJcbiAgICAgICpuZ0lmPVwiIXNlbGVjdGlvbk1vZGVcIlxyXG4gICAgICBjbGFzcz1cImFjdGlvbnMtYnV0dG9uXCJcclxuICAgICAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcclxuICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXHJcbiAgICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLmxheWVyLm1vcmVPcHRpb25zJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgICAoY2xpY2spPVwidG9nZ2xlTGF5ZXJUb29sKClcIlxyXG4gICAgPlxyXG4gICAgICA8bWF0LWljb24gc3ZnSWNvbj1cImRvdHMtaG9yaXpvbnRhbFwiPjwvbWF0LWljb24+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9tYXQtbGlzdC1pdGVtPlxyXG5cclxuPGRpdiAjbGVnZW5kIGNsYXNzPVwiaWdvLWxheWVyLWxlZ2VuZC1jb250YWluZXJcIj5cclxuICA8aWdvLWxheWVyLWxlZ2VuZFxyXG4gICAgKm5nSWY9XCJzaG93TGVnZW5kJCB8IGFzeW5jXCJcclxuICAgIFtsYXllcl09XCJsYXllclwiXHJcbiAgICBbdXBkYXRlTGVnZW5kT25SZXNvbHV0aW9uQ2hhbmdlXT1cInVwZGF0ZUxlZ2VuZE9uUmVzb2x1dGlvbkNoYW5nZVwiXHJcbiAgPlxyXG4gIDwvaWdvLWxheWVyLWxlZ2VuZD5cclxuPC9kaXY+XHJcbiJdfQ==
210
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LayerItemComponent, decorators: [{
211
+ type: Component,
212
+ args: [{ selector: 'igo-layer-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-list-item class=\"igo-layer-list-item\">\r\n <mat-checkbox\r\n *ngIf=\"selectionMode\"\r\n class=\"layerCheck\"\r\n matListItemIcon\r\n (change)=\"check()\"\r\n [checked]=\"layerCheck\"\r\n >\r\n </mat-checkbox>\r\n <span\r\n matListItemTitle\r\n class=\"igo-layer-title\"\r\n [matTooltip]=\"tooltipText\"\r\n matTooltipShowDelay=\"500\"\r\n (click)=\"toggleLegendOnClick()\"\r\n >\r\n {{ layer.title }}\r\n </span>\r\n\r\n <div matListItemMeta>\r\n <button\r\n *ngIf=\"!selectionMode\"\r\n mat-icon-button\r\n [color]=\"layer.visible ? 'primary' : 'default'\"\r\n collapsibleButton\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"eyeTooltip | translate\"\r\n (click)=\"toggleVisibility($event)\"\r\n >\r\n <mat-icon\r\n aria-hidden=\"false\"\r\n matBadge=\"?\"\r\n matBadgeColor=\"accent\"\r\n matBadgeSize=\"small\"\r\n matBadgePosition=\"after\"\r\n [matBadgeHidden]=\"queryBadgeHidden$ | async\"\r\n [ngClass]=\"{ disabled: (inResolutionRange$ | async) === false }\"\r\n [svgIcon]=\"(layer.visible$ | async) ? 'eye' : 'eye-off'\"\r\n >\r\n </mat-icon>\r\n </button>\r\n\r\n <button\r\n *ngIf=\"selectionMode\"\r\n class=\"selection-eye\"\r\n mat-icon-button\r\n [color]=\"layer.visible ? 'primary' : 'default'\"\r\n collapsibleButton\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"\r\n layer.visible\r\n ? ('igo.geo.layer.hideLayer' | translate)\r\n : ('igo.geo.layer.showLayer' | translate)\r\n \"\r\n (click)=\"toggleVisibility($event)\"\r\n >\r\n <mat-icon\r\n aria-hidden=\"false\"\r\n matBadge=\"?\"\r\n matBadgeColor=\"accent\"\r\n matBadgeSize=\"small\"\r\n matBadgePosition=\"after\"\r\n [matBadgeHidden]=\"queryBadgeHidden$ | async\"\r\n [ngClass]=\"{ disabled: (inResolutionRange$ | async) === false }\"\r\n [svgIcon]=\"layer.visible ? 'eye' : 'eye-off'\"\r\n >\r\n </mat-icon>\r\n </button>\r\n\r\n <button\r\n *ngIf=\"!selectionMode\"\r\n class=\"actions-button\"\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.geo.layer.moreOptions' | translate\"\r\n mat-icon-button\r\n color=\"primary\"\r\n (click)=\"toggleLayerTool()\"\r\n >\r\n <mat-icon svgIcon=\"dots-horizontal\"></mat-icon>\r\n </button>\r\n </div>\r\n</mat-list-item>\r\n\r\n<div #legend class=\"igo-layer-legend-container\">\r\n <igo-layer-legend\r\n *ngIf=\"showLegend$ | async\"\r\n [layer]=\"layer\"\r\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\"\r\n >\r\n </igo-layer-legend>\r\n</div>\r\n", styles: [":host{overflow:hidden}:host ::ng-deep .igo-layer-title{display:block;width:100%;cursor:pointer}:host .igo-layer-legend-container{padding-left:18px;width:calc(100% - 18px)}:host mat-icon[matBadge] ::ng-deep .mat-badge-content{font-size:12px}:host .layerCheck{align-self:baseline;width:16px;padding-right:0}\n"] }]
213
+ }], ctorParameters: function () { return [{ type: i1.NetworkService }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { activeLayer: [{
214
+ type: Input
215
+ }], selectAll: [{
216
+ type: Input
217
+ }], layerCheck: [{
218
+ type: Input
219
+ }], layer: [{
220
+ type: Input
221
+ }], toggleLegendOnVisibilityChange: [{
222
+ type: Input
223
+ }], expandLegendIfVisible: [{
224
+ type: Input
225
+ }], updateLegendOnResolutionChange: [{
226
+ type: Input
227
+ }], orderable: [{
228
+ type: Input
229
+ }], lowerDisabled: [{
230
+ type: Input
231
+ }], raiseDisabled: [{
232
+ type: Input
233
+ }], queryBadge: [{
234
+ type: Input
235
+ }], selectionMode: [{
236
+ type: Input
237
+ }], changeDetection: [{
238
+ type: Input
239
+ }], action: [{
240
+ type: Output
241
+ }], checkbox: [{
242
+ type: Output
243
+ }] } });
244
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXItaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9sYXllci9sYXllci1pdGVtL2xheWVyLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbGF5ZXIvbGF5ZXItaXRlbS9sYXllci1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBbUIsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTdELE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBR3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRWxFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7Ozs7Ozs7O0FBUS9ELE1BQU0sT0FBTyxrQkFBa0I7SUEwR25CO0lBQ0E7SUFDQTtJQUNBO0lBNUdILFVBQVUsR0FBRyx3QkFBd0IsQ0FBQztJQUU3QyxJQUNJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQUksV0FBVyxDQUFDLEtBQUs7UUFDbkIsSUFDRSxLQUFLO1lBQ0wsSUFBSSxDQUFDLEtBQUs7WUFDVixLQUFLLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMxQixDQUFDLElBQUksQ0FBQyxhQUFhLEVBQ25CO1lBQ0EsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0IsSUFBSSxDQUFD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bEIsa0JBQWtCLCtqQkM1Qi9CLDgwRkE4RkE7OzRGRGxFYSxrQkFBa0I7a0JBTjlCLFNBQVM7K0JBQ0UsZ0JBQWdCLG1CQUdULHVCQUF1QixDQUFDLE1BQU07c0xBTTNDLFdBQVc7c0JBRGQsS0FBSztnQkFnQ0YsU0FBUztzQkFEWixLQUFLO2dCQVlHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBU0YsS0FBSztzQkFEUixLQUFLO2dCQVVHLDhCQUE4QjtzQkFBdEMsS0FBSztnQkFFRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBRUcsOEJBQThCO3NCQUF0QyxLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsYUFBYTtzQkFBckIsS0FBSztnQkFFRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsYUFBYTtzQkFBckIsS0FBSztnQkFFRyxlQUFlO3NCQUF2QixLQUFLO2dCQW1CSSxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFJlbmRlcmVyMlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQ29ubmVjdGlvblN0YXRlLCBOZXR3b3JrU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IE1ldGFkYXRhTGF5ZXJPcHRpb25zIH0gZnJvbSAnLi4vLi4vbWV0YWRhdGEvc2hhcmVkL21ldGFkYXRhLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IGxheWVySXNRdWVyeWFibGUgfSBmcm9tICcuLi8uLi9xdWVyeS9zaGFyZWQvcXVlcnkudXRpbHMnO1xyXG5pbXBvcnQgeyBMYXllciB9IGZyb20gJy4uL3NoYXJlZC9sYXllcnMvbGF5ZXInO1xyXG5pbXBvcnQgeyBUb29sdGlwVHlwZSB9IGZyb20gJy4uL3NoYXJlZC9sYXllcnMvbGF5ZXIuaW50ZXJmYWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWdvLWxheWVyLWl0ZW0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9sYXllci1pdGVtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9sYXllci1pdGVtLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIExheWVySXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwdWJsaWMgZm9jdXNlZENscyA9ICdpZ28tbGF5ZXItaXRlbS1mb2N1c2VkJztcclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgYWN0aXZlTGF5ZXIoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlTGF5ZXI7XHJcbiAgfVxyXG4gIHNldCBhY3RpdmVMYXllcih2YWx1ZSkge1xyXG4gICAgaWYgKFxyXG4gICAgICB2YWx1ZSAmJlxyXG4gICAgICB0aGlzLmxheWVyICYmXHJcbiAgICAgIHZhbHVlLmlkID09PSB0aGlzLmxheWVyLmlkICYmXHJcbiAgICAgICF0aGlzLnNlbGVjdGlvbk1vZGVcclxuICAgICkge1xyXG4gICAgICB0aGlzLmxheWVyVG9vbCQubmV4dCh0cnVlKTtcclxuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZm9jdXNlZENscyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5mb2N1c2VkQ2xzKTtcclxuICAgIH1cclxuICB9XHJcbiAgcHJpdmF0ZSBfYWN0aXZlTGF5ZXI7XHJcblxyXG4gIGxheWVyVG9vbCQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xyXG5cclxuICBzaG93TGVnZW5kJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0cnVlKTtcclxuXHJcbiAgaW5SZXNvbHV0aW9uUmFuZ2UkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRydWUpO1xyXG5cclxuICBxdWVyeUJhZGdlSGlkZGVuJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0cnVlKTtcclxuXHJcbiAgdG9vbHRpcFRleHQ6IHN0cmluZztcclxuXHJcbiAgc3RhdGU6IENvbm5lY3Rpb25TdGF0ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgc2VsZWN0QWxsKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdEFsbDtcclxuICB9XHJcbiAgc2V0IHNlbGVjdEFsbCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fc2VsZWN0QWxsID0gdmFsdWU7XHJcbiAgICBpZiAodmFsdWUgPT09IHRydWUpIHtcclxuICAgICAgdGhpcy5sYXllckNoZWNrID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcbiAgcHJpdmF0ZSBfc2VsZWN0QWxsID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIGxheWVyQ2hlY2s7XHJcblxyXG4gIHByaXZhdGUgcmVzb2x1dGlvbiQkOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBuZXR3b3JrJCQ6IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIGxheWVycyQkOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGxheWVycyQ6IEJlaGF2aW9yU3ViamVjdDxMYXllcj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PExheWVyPih1bmRlZmluZWQpO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCBsYXllcigpIHtcclxuICAgIHJldHVybiB0aGlzLl9sYXllcjtcclxuICB9XHJcbiAgc2V0IGxheWVyKHZhbHVlKSB7XHJcbiAgICB0aGlzLl9sYXllciA9IHZhbHVlO1xyXG4gICAgdGhpcy5sYXllcnMkLm5leHQodmFsdWUpO1xyXG4gIH1cclxuICBwcml2YXRlIF9sYXllcjtcclxuXHJcbiAgQElucHV0KCkgdG9nZ2xlTGVnZW5kT25WaXNpYmlsaXR5Q2hhbmdlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIGV4cGFuZExlZ2VuZElmVmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSB1cGRhdGVMZWdlbmRPblJlc29sdXRpb25DaGFuZ2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgb3JkZXJhYmxlOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KCkgbG93ZXJEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSByYWlzZURpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIHF1ZXJ5QmFkZ2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgc2VsZWN0aW9uTW9kZTtcclxuXHJcbiAgQElucHV0KCkgY2hhbmdlRGV0ZWN0aW9uO1xyXG5cclxuICBnZXQgb3BhY2l0eSgpIHtcclxuICAgIHJldHVybiB0aGlzLmxheWVyLm9wYWNpdHkgKiAxMDA7XHJcbiAgfVxyXG4gIHNldCBvcGFjaXR5KG9wYWNpdHk6IG51bWJlcikge1xyXG4gICAgdGhpcy5sYXllci5vcGFjaXR5ID0gb3BhY2l0eSAvIDEwMDtcclxuICB9XHJcblxyXG4gIGdldCBleWVUb29sdGlwKCkge1xyXG4gICAgaWYgKHRoaXMuaW5SZXNvbHV0aW9uUmFuZ2UkLmdldFZhbHVlKCkgPT09IGZhbHNlKSB7XHJcbiAgICAgIHJldHVybiAnaWdvLmdlby5sYXllci5ub3RJblJlc29sdXRpb24nO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMubGF5ZXIudmlzaWJsZVxyXG4gICAgICAgID8gJ2lnby5nZW8ubGF5ZXIuaGlkZUxheWVyJ1xyXG4gICAgICAgIDogJ2lnby5nZW8ubGF5ZXIuc2hvd0xheWVyJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSBhY3Rpb246IEV2ZW50RW1pdHRlcjxMYXllcj4gPSBuZXcgRXZlbnRFbWl0dGVyPExheWVyPih1bmRlZmluZWQpO1xyXG4gIEBPdXRwdXQoKSBjaGVja2JveCA9IG5ldyBFdmVudEVtaXR0ZXI8e1xyXG4gICAgbGF5ZXI6IExheWVyO1xyXG4gICAgY2hlY2s6IGJvb2xlYW47XHJcbiAgfT4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIG5ldHdvcmtTZXJ2aWNlOiBOZXR3b3JrU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMubGF5ZXIudmlzaWJsZSAmJlxyXG4gICAgICB0aGlzLmV4cGFuZExlZ2VuZElmVmlzaWJsZSAmJlxyXG4gICAgICB0aGlzLmxheWVyLmZpcnN0TG9hZENvbXBvbmVudCA9PT0gdHJ1ZVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMubGF5ZXIuZmlyc3RMb2FkQ29tcG9uZW50ID0gZmFsc2U7XHJcbiAgICAgIHRoaXMubGF5ZXIubGVnZW5kQ29sbGFwc2VkID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICB0aGlzLnRvZ2dsZUxlZ2VuZCh0aGlzLmxheWVyLmxlZ2VuZENvbGxhcHNlZCk7XHJcbiAgICB0aGlzLnVwZGF0ZVF1ZXJ5QmFkZ2UoKTtcclxuXHJcbiAgICBjb25zdCByZXNvbHV0aW9uJCA9IHRoaXMubGF5ZXIubWFwLnZpZXdDb250cm9sbGVyLnJlc29sdXRpb24kO1xyXG4gICAgdGhpcy5yZXNvbHV0aW9uJCQgPSByZXNvbHV0aW9uJC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLm9uUmVzb2x1dGlvbkNoYW5nZSgpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnRvb2x0aXBUZXh0ID0gdGhpcy5jb21wdXRlVG9vbHRpcCgpO1xyXG5cclxuICAgIHRoaXMubmV0d29yayQkID0gdGhpcy5uZXR3b3JrU2VydmljZVxyXG4gICAgICAuY3VycmVudFN0YXRlKClcclxuICAgICAgLnN1YnNjcmliZSgoc3RhdGU6IENvbm5lY3Rpb25TdGF0ZSkgPT4ge1xyXG4gICAgICAgIHRoaXMuc3RhdGUgPSBzdGF0ZTtcclxuICAgICAgICB0aGlzLm9uUmVzb2x1dGlvbkNoYW5nZSgpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICB0aGlzLmxheWVycyQkID0gdGhpcy5sYXllcnMkLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmxheWVyICYmIHRoaXMubGF5ZXIub3B0aW9ucy5hY3RpdmUpIHtcclxuICAgICAgICB0aGlzLmxheWVyVG9vbCQubmV4dCh0cnVlKTtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5mb2N1c2VkQ2xzKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHRoaXMuY2hhbmdlRGV0ZWN0aW9uKSB7XHJcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0aW9uLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMucmVzb2x1dGlvbiQkLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLm5ldHdvcmskJC51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5sYXllcnMkJC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlTGVnZW5kKGNvbGxhcHNlZDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5sYXllci5sZWdlbmRDb2xsYXBzZWQgPSBjb2xsYXBzZWQ7XHJcbiAgICB0aGlzLnNob3dMZWdlbmQkLm5leHQoIWNvbGxhcHNlZCk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVMZWdlbmRPbkNsaWNrKCkge1xyXG4gICAgdGhpcy50b2dnbGVMZWdlbmQodGhpcy5zaG93TGVnZW5kJC52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVWaXNpYmlsaXR5KGV2ZW50OiBFdmVudCkge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmxheWVyLnZpc2libGUgPSAhdGhpcy5sYXllci52aXNpYmxlO1xyXG4gICAgaWYgKHRoaXMudG9nZ2xlTGVnZW5kT25WaXNpYmlsaXR5Q2hhbmdlKSB7XHJcbiAgICAgIHRoaXMudG9nZ2xlTGVnZW5kKCF0aGlzLmxheWVyLnZpc2libGUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy51cGRhdGVRdWVyeUJhZGdlKCk7XHJcbiAgfVxyXG5cclxuICBjb21wdXRlVG9vbHRpcCgpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgbGF5ZXJPcHRpb25zID0gdGhpcy5sYXllci5vcHRpb25zO1xyXG4gICAgaWYgKCFsYXllck9wdGlvbnMudG9vbHRpcCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5sYXllci50aXRsZTtcclxuICAgIH1cclxuICAgIGNvbnN0IGxheWVyVG9vbHRpcCA9IGxheWVyT3B0aW9ucy50b29sdGlwO1xyXG4gICAgY29uc3QgbGF5ZXJNZXRhZGF0YSA9IChsYXllck9wdGlvbnMgYXMgTWV0YWRhdGFMYXllck9wdGlvbnMpLm1ldGFkYXRhO1xyXG4gICAgc3dpdGNoIChsYXllck9wdGlvbnMudG9vbHRpcC50eXBlKSB7XHJcbiAgICAgIGNhc2UgVG9vbHRpcFR5cGUuVElUTEU6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubGF5ZXIudGl0bGU7XHJcbiAgICAgIGNhc2UgVG9vbHRpcFR5cGUuQUJTVFJBQ1Q6XHJcbiAgICAgICAgaWYgKGxheWVyTWV0YWRhdGEgJiYgbGF5ZXJNZXRhZGF0YS5hYnN0cmFjdCkge1xyXG4gICAgICAgICAgcmV0dXJuIGxheWVyTWV0YWRhdGEuYWJzdHJhY3Q7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmxheWVyLnRpdGxlO1xyXG4gICAgICAgIH1cclxuICAgICAgY2FzZSBUb29sdGlwVHlwZS5DVVNUT006XHJcbiAgICAgICAgaWYgKGxheWVyVG9vbHRpcCAmJiBsYXllclRvb2x0aXAudGV4dCkge1xyXG4gICAgICAgICAgcmV0dXJuIGxheWVyVG9vbHRpcC50ZXh0O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5sYXllci50aXRsZTtcclxuICAgICAgICB9XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubGF5ZXIudGl0bGU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uUmVzb2x1dGlvbkNoYW5nZSgpIHtcclxuICAgIGNvbnN0IGluUmVzb2x1dGlvblJhbmdlID0gdGhpcy5sYXllci5pc0luUmVzb2x1dGlvbnNSYW5nZTtcclxuICAgIGlmIChcclxuICAgICAgaW5SZXNvbHV0aW9uUmFuZ2UgPT09IGZhbHNlICYmXHJcbiAgICAgIHRoaXMudXBkYXRlTGVnZW5kT25SZXNvbHV0aW9uQ2hhbmdlID09PSB0cnVlXHJcbiAgICApIHtcclxuICAgICAgdGhpcy50b2dnbGVMZWdlbmQodHJ1ZSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmluUmVzb2x1dGlvblJhbmdlJC5uZXh0KGluUmVzb2x1dGlvblJhbmdlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlUXVlcnlCYWRnZSgpIHtcclxuICAgIGNvbnN0IGhpZGRlbiA9XHJcbiAgICAgIHRoaXMucXVlcnlCYWRnZSA9PT0gZmFsc2UgfHxcclxuICAgICAgdGhpcy5sYXllci52aXNpYmxlID09PSBmYWxzZSB8fFxyXG4gICAgICAhbGF5ZXJJc1F1ZXJ5YWJsZSh0aGlzLmxheWVyKTtcclxuICAgIHRoaXMucXVlcnlCYWRnZUhpZGRlbiQubmV4dChoaWRkZW4pO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlTGF5ZXJUb29sKCkge1xyXG4gICAgdGhpcy5sYXllclRvb2wkLm5leHQoIXRoaXMubGF5ZXJUb29sJC5nZXRWYWx1ZSgpKTtcclxuICAgIGlmICh0aGlzLmxheWVyVG9vbCQuZ2V0VmFsdWUoKSA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5mb2N1c2VkQ2xzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmZvY3VzZWRDbHMpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5hY3Rpb24uZW1pdCh0aGlzLmxheWVyKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGVjaygpIHtcclxuICAgIHRoaXMubGF5ZXJDaGVjayA9ICF0aGlzLmxheWVyQ2hlY2s7XHJcbiAgICB0aGlzLmNoZWNrYm94LmVtaXQoeyBsYXllcjogdGhpcy5sYXllciwgY2hlY2s6IHRoaXMubGF5ZXJDaGVjayB9KTtcclxuICB9XHJcbn1cclxuIiwiPG1hdC1saXN0LWl0ZW0gY2xhc3M9XCJpZ28tbGF5ZXItbGlzdC1pdGVtXCI+XHJcbiAgPG1hdC1jaGVja2JveFxyXG4gICAgKm5nSWY9XCJzZWxlY3Rpb25Nb2RlXCJcclxuICAgIGNsYXNzPVwibGF5ZXJDaGVja1wiXHJcbiAgICBtYXRMaXN0SXRlbUljb25cclxuICAgIChjaGFuZ2UpPVwiY2hlY2soKVwiXHJcbiAgICBbY2hlY2tlZF09XCJsYXllckNoZWNrXCJcclxuICA+XHJcbiAgPC9tYXQtY2hlY2tib3g+XHJcbiAgPHNwYW5cclxuICAgIG1hdExpc3RJdGVtVGl0bGVcclxuICAgIGNsYXNzPVwiaWdvLWxheWVyLXRpdGxlXCJcclxuICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXBUZXh0XCJcclxuICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxyXG4gICAgKGNsaWNrKT1cInRvZ2dsZUxlZ2VuZE9uQ2xpY2soKVwiXHJcbiAgPlxyXG4gICAge3sgbGF5ZXIudGl0bGUgfX1cclxuICA8L3NwYW4+XHJcblxyXG4gIDxkaXYgbWF0TGlzdEl0ZW1NZXRhPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICAqbmdJZj1cIiFzZWxlY3Rpb25Nb2RlXCJcclxuICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgIFtjb2xvcl09XCJsYXllci52aXNpYmxlID8gJ3ByaW1hcnknIDogJ2RlZmF1bHQnXCJcclxuICAgICAgY29sbGFwc2libGVCdXR0b25cclxuICAgICAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcclxuICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXHJcbiAgICAgIFttYXRUb29sdGlwXT1cImV5ZVRvb2x0aXAgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAoY2xpY2spPVwidG9nZ2xlVmlzaWJpbGl0eSgkZXZlbnQpXCJcclxuICAgID5cclxuICAgICAgPG1hdC1pY29uXHJcbiAgICAgICAgYXJpYS1oaWRkZW49XCJmYWxzZVwiXHJcbiAgICAgICAgbWF0QmFkZ2U9XCI/XCJcclxuICAgICAgICBtYXRCYWRnZUNvbG9yPVwiYWNjZW50XCJcclxuICAgICAgICBtYXRCYWRnZVNpemU9XCJzbWFsbFwiXHJcbiAgICAgICAgbWF0QmFkZ2VQb3NpdGlvbj1cImFmdGVyXCJcclxuICAgICAgICBbbWF0QmFkZ2VIaWRkZW5dPVwicXVlcnlCYWRnZUhpZGRlbiQgfCBhc3luY1wiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwieyBkaXNhYmxlZDogKGluUmVzb2x1dGlvblJhbmdlJCB8IGFzeW5jKSA9PT0gZmFsc2UgfVwiXHJcbiAgICAgICAgW3N2Z0ljb25dPVwiKGxheWVyLnZpc2libGUkIHwgYXN5bmMpID8gJ2V5ZScgOiAnZXllLW9mZidcIlxyXG4gICAgICA+XHJcbiAgICAgIDwvbWF0LWljb24+XHJcbiAgICA8L2J1dHRvbj5cclxuXHJcbiAgICA8YnV0dG9uXHJcbiAgICAgICpuZ0lmPVwic2VsZWN0aW9uTW9kZVwiXHJcbiAgICAgIGNsYXNzPVwic2VsZWN0aW9uLWV5ZVwiXHJcbiAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICBbY29sb3JdPVwibGF5ZXIudmlzaWJsZSA/ICdwcmltYXJ5JyA6ICdkZWZhdWx0J1wiXHJcbiAgICAgIGNvbGxhcHNpYmxlQnV0dG9uXHJcbiAgICAgIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXHJcbiAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxyXG4gICAgICBbbWF0VG9vbHRpcF09XCJcclxuICAgICAgICBsYXllci52aXNpYmxlXHJcbiAgICAgICAgICA/ICgnaWdvLmdlby5sYXllci5oaWRlTGF5ZXInIHwgdHJhbnNsYXRlKVxyXG4gICAgICAgICAgOiAoJ2lnby5nZW8ubGF5ZXIuc2hvd0xheWVyJyB8IHRyYW5zbGF0ZSlcclxuICAgICAgXCJcclxuICAgICAgKGNsaWNrKT1cInRvZ2dsZVZpc2liaWxpdHkoJGV2ZW50KVwiXHJcbiAgICA+XHJcbiAgICAgIDxtYXQtaWNvblxyXG4gICAgICAgIGFyaWEtaGlkZGVuPVwiZmFsc2VcIlxyXG4gICAgICAgIG1hdEJhZGdlPVwiP1wiXHJcbiAgICAgICAgbWF0QmFkZ2VDb2xvcj1cImFjY2VudFwiXHJcbiAgICAgICAgbWF0QmFkZ2VTaXplPVwic21hbGxcIlxyXG4gICAgICAgIG1hdEJhZGdlUG9zaXRpb249XCJhZnRlclwiXHJcbiAgICAgICAgW21hdEJhZGdlSGlkZGVuXT1cInF1ZXJ5QmFkZ2VIaWRkZW4kIHwgYXN5bmNcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgZGlzYWJsZWQ6IChpblJlc29sdXRpb25SYW5nZSQgfCBhc3luYykgPT09IGZhbHNlIH1cIlxyXG4gICAgICAgIFtzdmdJY29uXT1cImxheWVyLnZpc2libGUgPyAnZXllJyA6ICdleWUtb2ZmJ1wiXHJcbiAgICAgID5cclxuICAgICAgPC9tYXQtaWNvbj5cclxuICAgIDwvYnV0dG9uPlxyXG5cclxuICAgIDxidXR0b25cclxuICAgICAgKm5nSWY9XCIhc2VsZWN0aW9uTW9kZVwiXHJcbiAgICAgIGNsYXNzPVwiYWN0aW9ucy1idXR0b25cIlxyXG4gICAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxyXG4gICAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcclxuICAgICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8ubGF5ZXIubW9yZU9wdGlvbnMnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgIGNvbG9yPVwicHJpbWFyeVwiXHJcbiAgICAgIChjbGljayk9XCJ0b2dnbGVMYXllclRvb2woKVwiXHJcbiAgICA+XHJcbiAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiZG90cy1ob3Jpem9udGFsXCI+PC9tYXQtaWNvbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L21hdC1saXN0LWl0ZW0+XHJcblxyXG48ZGl2ICNsZWdlbmQgY2xhc3M9XCJpZ28tbGF5ZXItbGVnZW5kLWNvbnRhaW5lclwiPlxyXG4gIDxpZ28tbGF5ZXItbGVnZW5kXHJcbiAgICAqbmdJZj1cInNob3dMZWdlbmQkIHwgYXN5bmNcIlxyXG4gICAgW2xheWVyXT1cImxheWVyXCJcclxuICAgIFt1cGRhdGVMZWdlbmRPblJlc29sdXRpb25DaGFuZ2VdPVwidXBkYXRlTGVnZW5kT25SZXNvbHV0aW9uQ2hhbmdlXCJcclxuICA+XHJcbiAgPC9pZ28tbGF5ZXItbGVnZW5kPlxyXG48L2Rpdj5cclxuIl19