@igo2/geo 18.0.1-next.2 → 18.0.2

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 (512) hide show
  1. package/esm2022/igo2-geo.mjs +5 -0
  2. package/esm2022/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +234 -0
  3. package/esm2022/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +272 -0
  4. package/esm2022/lib/catalog/catalog-browser/catalog-browser.component.mjs +246 -0
  5. package/esm2022/lib/catalog/catalog-browser/catalog-browser.module.mjs +19 -0
  6. package/esm2022/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +136 -0
  7. package/esm2022/lib/catalog/catalog-library/catalog-library-item.component.mjs +60 -0
  8. package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +232 -0
  9. package/esm2022/lib/catalog/catalog-library/catalog-library.module.mjs +24 -0
  10. package/esm2022/lib/catalog/catalog-library/index.mjs +4 -0
  11. package/esm2022/lib/catalog/catalog.module.mjs +26 -0
  12. package/esm2022/lib/catalog/index.mjs +6 -0
  13. package/esm2022/lib/catalog/shared/catalog.abstract.mjs +32 -0
  14. package/esm2022/lib/catalog/shared/catalog.enum.mjs +16 -0
  15. package/esm2022/lib/catalog/shared/catalog.interface.mjs +2 -0
  16. package/esm2022/lib/catalog/shared/catalog.service.mjs +706 -0
  17. package/esm2022/lib/catalog/shared/catalogs.mjs +75 -0
  18. package/esm2022/lib/catalog/shared/index.mjs +5 -0
  19. package/esm2022/lib/datasource/index.mjs +3 -0
  20. package/esm2022/lib/datasource/shared/capabilities.interface.mjs +17 -0
  21. package/esm2022/lib/datasource/shared/capabilities.service.mjs +441 -0
  22. package/esm2022/lib/datasource/shared/datasource.service.mjs +258 -0
  23. package/esm2022/lib/datasource/shared/datasources/any-datasource.interface.mjs +2 -0
  24. package/esm2022/lib/datasource/shared/datasources/any-datasource.mjs +2 -0
  25. package/esm2022/lib/datasource/shared/datasources/arcgisrest-datasource.interface.mjs +2 -0
  26. package/esm2022/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +222 -0
  27. package/esm2022/lib/datasource/shared/datasources/carto-datasource.interface.mjs +2 -0
  28. package/esm2022/lib/datasource/shared/datasources/carto-datasource.mjs +118 -0
  29. package/esm2022/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +2 -0
  30. package/esm2022/lib/datasource/shared/datasources/cluster-datasource.mjs +24 -0
  31. package/esm2022/lib/datasource/shared/datasources/data.service.mjs +3 -0
  32. package/esm2022/lib/datasource/shared/datasources/datasource.interface.mjs +2 -0
  33. package/esm2022/lib/datasource/shared/datasources/datasource.mjs +42 -0
  34. package/esm2022/lib/datasource/shared/datasources/feature-datasource.interface.mjs +2 -0
  35. package/esm2022/lib/datasource/shared/datasources/feature-datasource.mjs +52 -0
  36. package/esm2022/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.mjs +2 -0
  37. package/esm2022/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +70 -0
  38. package/esm2022/lib/datasource/shared/datasources/index.mjs +36 -0
  39. package/esm2022/lib/datasource/shared/datasources/mvt-datasource.interface.mjs +2 -0
  40. package/esm2022/lib/datasource/shared/datasources/mvt-datasource.mjs +33 -0
  41. package/esm2022/lib/datasource/shared/datasources/osm-datasource.interface.mjs +2 -0
  42. package/esm2022/lib/datasource/shared/datasources/osm-datasource.mjs +14 -0
  43. package/esm2022/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.mjs +2 -0
  44. package/esm2022/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +60 -0
  45. package/esm2022/lib/datasource/shared/datasources/tiledebug-datasource.interface.mjs +2 -0
  46. package/esm2022/lib/datasource/shared/datasources/tiledebug-datasource.mjs +17 -0
  47. package/esm2022/lib/datasource/shared/datasources/websocket-datasource.interface.mjs +2 -0
  48. package/esm2022/lib/datasource/shared/datasources/websocket-datasource.mjs +56 -0
  49. package/esm2022/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +2 -0
  50. package/esm2022/lib/datasource/shared/datasources/wfs-datasource.mjs +137 -0
  51. package/esm2022/lib/datasource/shared/datasources/wfs.service.mjs +170 -0
  52. package/esm2022/lib/datasource/shared/datasources/wms-datasource.interface.mjs +2 -0
  53. package/esm2022/lib/datasource/shared/datasources/wms-datasource.mjs +227 -0
  54. package/esm2022/lib/datasource/shared/datasources/wms-wfs.utils.mjs +224 -0
  55. package/esm2022/lib/datasource/shared/datasources/wmts-datasource.interface.mjs +2 -0
  56. package/esm2022/lib/datasource/shared/datasources/wmts-datasource.mjs +18 -0
  57. package/esm2022/lib/datasource/shared/datasources/xyz-datasource.interface.mjs +2 -0
  58. package/esm2022/lib/datasource/shared/datasources/xyz-datasource.mjs +11 -0
  59. package/esm2022/lib/datasource/shared/index.mjs +6 -0
  60. package/esm2022/lib/datasource/shared/options/index.mjs +5 -0
  61. package/esm2022/lib/datasource/shared/options/options-api.interface.mjs +2 -0
  62. package/esm2022/lib/datasource/shared/options/options-api.providers.mjs +15 -0
  63. package/esm2022/lib/datasource/shared/options/options-api.service.mjs +85 -0
  64. package/esm2022/lib/datasource/shared/options/options.service.mjs +3 -0
  65. package/esm2022/lib/datasource/utils/index.mjs +2 -0
  66. package/esm2022/lib/datasource/utils/tilegrid.mjs +20 -0
  67. package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +246 -0
  68. package/esm2022/lib/directions/directions-buttons/index.mjs +2 -0
  69. package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +312 -0
  70. package/esm2022/lib/directions/directions-inputs/index.mjs +2 -0
  71. package/esm2022/lib/directions/directions-results/directions-results.component.mjs +192 -0
  72. package/esm2022/lib/directions/directions-results/index.mjs +2 -0
  73. package/esm2022/lib/directions/directions-sources/directions-source.interface.mjs +5 -0
  74. package/esm2022/lib/directions/directions-sources/directions-source.mjs +3 -0
  75. package/esm2022/lib/directions/directions-sources/directions-source.provider.mjs +23 -0
  76. package/esm2022/lib/directions/directions-sources/index.mjs +5 -0
  77. package/esm2022/lib/directions/directions-sources/osrm-directions-source.mjs +159 -0
  78. package/esm2022/lib/directions/directions.component.mjs +437 -0
  79. package/esm2022/lib/directions/directions.module.mjs +46 -0
  80. package/esm2022/lib/directions/directions.provider.mjs +16 -0
  81. package/esm2022/lib/directions/index.mjs +8 -0
  82. package/esm2022/lib/directions/shared/directions-source.service.mjs +18 -0
  83. package/esm2022/lib/directions/shared/directions.enum.mjs +72 -0
  84. package/esm2022/lib/directions/shared/directions.interface.mjs +2 -0
  85. package/esm2022/lib/directions/shared/directions.service.mjs +239 -0
  86. package/esm2022/lib/directions/shared/directions.utils.mjs +522 -0
  87. package/esm2022/lib/directions/shared/index.mjs +6 -0
  88. package/esm2022/lib/directions/shared/store.mjs +21 -0
  89. package/esm2022/lib/download/download-button/download-button.component.mjs +48 -0
  90. package/esm2022/lib/download/download-button/index.mjs +2 -0
  91. package/esm2022/lib/download/download.module.mjs +24 -0
  92. package/esm2022/lib/download/index.mjs +3 -0
  93. package/esm2022/lib/download/shared/download.interface.mjs +2 -0
  94. package/esm2022/lib/download/shared/download.service.mjs +67 -0
  95. package/esm2022/lib/download/shared/index.mjs +3 -0
  96. package/esm2022/lib/draw/draw/draw-layer-popup.component.mjs +42 -0
  97. package/esm2022/lib/draw/draw/draw-popup.component.mjs +421 -0
  98. package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +28 -0
  99. package/esm2022/lib/draw/draw/draw.component.mjs +1136 -0
  100. package/esm2022/lib/draw/draw/draw.module.mjs +19 -0
  101. package/esm2022/lib/draw/drawingTool.module.mjs +18 -0
  102. package/esm2022/lib/draw/index.mjs +3 -0
  103. package/esm2022/lib/draw/shared/draw-icon.service.mjs +30 -0
  104. package/esm2022/lib/draw/shared/draw.enum.mjs +21 -0
  105. package/esm2022/lib/draw/shared/draw.interface.mjs +2 -0
  106. package/esm2022/lib/draw/shared/draw.utils.mjs +125 -0
  107. package/esm2022/lib/draw/shared/index.mjs +5 -0
  108. package/esm2022/lib/environment/environment.interface.mjs +2 -0
  109. package/esm2022/lib/environment/index.mjs +2 -0
  110. package/esm2022/lib/feature/feature-details/feature-details.component.mjs +306 -0
  111. package/esm2022/lib/feature/feature-details/feature-details.directive.mjs +56 -0
  112. package/esm2022/lib/feature/feature-details/feature-details.module.mjs +26 -0
  113. package/esm2022/lib/feature/feature-details/index.mjs +4 -0
  114. package/esm2022/lib/feature/feature-form/feature-form.component.mjs +101 -0
  115. package/esm2022/lib/feature/feature-form/feature-form.module.mjs +19 -0
  116. package/esm2022/lib/feature/feature.module.mjs +26 -0
  117. package/esm2022/lib/feature/index.mjs +5 -0
  118. package/esm2022/lib/feature/shared/feature-store.utils.mjs +28 -0
  119. package/esm2022/lib/feature/shared/feature.enums.mjs +9 -0
  120. package/esm2022/lib/feature/shared/feature.interfaces.mjs +2 -0
  121. package/esm2022/lib/feature/shared/feature.utils.mjs +332 -0
  122. package/esm2022/lib/feature/shared/index.mjs +8 -0
  123. package/esm2022/lib/feature/shared/store.mjs +143 -0
  124. package/esm2022/lib/feature/shared/strategies/geo-properties.mjs +216 -0
  125. package/esm2022/lib/feature/shared/strategies/in-map-extent.mjs +119 -0
  126. package/esm2022/lib/feature/shared/strategies/in-map-resolution.mjs +99 -0
  127. package/esm2022/lib/feature/shared/strategies/index.mjs +8 -0
  128. package/esm2022/lib/feature/shared/strategies/loading-layer.mjs +103 -0
  129. package/esm2022/lib/feature/shared/strategies/loading.mjs +136 -0
  130. package/esm2022/lib/feature/shared/strategies/search.mjs +158 -0
  131. package/esm2022/lib/feature/shared/strategies/selection.mjs +385 -0
  132. package/esm2022/lib/feature/shared/strategies.utils.mjs +37 -0
  133. package/esm2022/lib/filter/filter.module.mjs +131 -0
  134. package/esm2022/lib/filter/index.mjs +17 -0
  135. package/esm2022/lib/filter/ogc-filter-button/index.mjs +2 -0
  136. package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +141 -0
  137. package/esm2022/lib/filter/ogc-filter-form/index.mjs +2 -0
  138. package/esm2022/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +325 -0
  139. package/esm2022/lib/filter/ogc-filter-selection/index.mjs +2 -0
  140. package/esm2022/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +787 -0
  141. package/esm2022/lib/filter/ogc-filter-time/index.mjs +3 -0
  142. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +201 -0
  143. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +665 -0
  144. package/esm2022/lib/filter/ogc-filterable-form/index.mjs +2 -0
  145. package/esm2022/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +66 -0
  146. package/esm2022/lib/filter/ogc-filterable-item/index.mjs +2 -0
  147. package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +244 -0
  148. package/esm2022/lib/filter/ogc-filterable-list/index.mjs +3 -0
  149. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +39 -0
  150. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +32 -0
  151. package/esm2022/lib/filter/shared/filterable-datasource.pipe.mjs +63 -0
  152. package/esm2022/lib/filter/shared/index.mjs +12 -0
  153. package/esm2022/lib/filter/shared/ogc-filter-time.service.mjs +72 -0
  154. package/esm2022/lib/filter/shared/ogc-filter.enum.mjs +30 -0
  155. package/esm2022/lib/filter/shared/ogc-filter.interface.mjs +2 -0
  156. package/esm2022/lib/filter/shared/ogc-filter.mjs +756 -0
  157. package/esm2022/lib/filter/shared/ogc-filter.service.mjs +47 -0
  158. package/esm2022/lib/filter/shared/spatial-filter.enum.mjs +23 -0
  159. package/esm2022/lib/filter/shared/spatial-filter.interface.mjs +2 -0
  160. package/esm2022/lib/filter/shared/spatial-filter.service.mjs +282 -0
  161. package/esm2022/lib/filter/shared/time-filter.enum.mjs +13 -0
  162. package/esm2022/lib/filter/shared/time-filter.interface.mjs +2 -0
  163. package/esm2022/lib/filter/shared/time-filter.service.mjs +107 -0
  164. package/esm2022/lib/filter/spatial-filter/spatial-filter-item/index.mjs +2 -0
  165. package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +875 -0
  166. package/esm2022/lib/filter/spatial-filter/spatial-filter-list/index.mjs +2 -0
  167. package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +191 -0
  168. package/esm2022/lib/filter/spatial-filter/spatial-filter-type/index.mjs +2 -0
  169. package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +120 -0
  170. package/esm2022/lib/filter/time-filter-button/index.mjs +2 -0
  171. package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +70 -0
  172. package/esm2022/lib/filter/time-filter-form/index.mjs +2 -0
  173. package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +537 -0
  174. package/esm2022/lib/filter/time-filter-item/index.mjs +2 -0
  175. package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +90 -0
  176. package/esm2022/lib/filter/time-filter-list/index.mjs +3 -0
  177. package/esm2022/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +39 -0
  178. package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +24 -0
  179. package/esm2022/lib/geo.module.mjs +63 -0
  180. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +559 -0
  181. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +170 -0
  182. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +24 -0
  183. package/esm2022/lib/geometry/geometry-form-field/index.mjs +4 -0
  184. package/esm2022/lib/geometry/geometry.module.mjs +18 -0
  185. package/esm2022/lib/geometry/index.mjs +3 -0
  186. package/esm2022/lib/geometry/shared/controls/draw.mjs +340 -0
  187. package/esm2022/lib/geometry/shared/controls/index.mjs +4 -0
  188. package/esm2022/lib/geometry/shared/controls/modify.mjs +538 -0
  189. package/esm2022/lib/geometry/shared/controls/slice.mjs +190 -0
  190. package/esm2022/lib/geometry/shared/geometry.errors.mjs +24 -0
  191. package/esm2022/lib/geometry/shared/geometry.interfaces.mjs +2 -0
  192. package/esm2022/lib/geometry/shared/geometry.utils.mjs +113 -0
  193. package/esm2022/lib/geometry/shared/index.mjs +5 -0
  194. package/esm2022/lib/import-export/export-button/export-button.component.mjs +49 -0
  195. package/esm2022/lib/import-export/export-button/index.mjs +2 -0
  196. package/esm2022/lib/import-export/import-export/import-export.component.mjs +876 -0
  197. package/esm2022/lib/import-export/import-export/index.mjs +2 -0
  198. package/esm2022/lib/import-export/import-export.module.mjs +31 -0
  199. package/esm2022/lib/import-export/index.mjs +5 -0
  200. package/esm2022/lib/import-export/shared/drop-geo-file.directive.mjs +114 -0
  201. package/esm2022/lib/import-export/shared/export.errors.mjs +15 -0
  202. package/esm2022/lib/import-export/shared/export.interface.mjs +2 -0
  203. package/esm2022/lib/import-export/shared/export.service.mjs +378 -0
  204. package/esm2022/lib/import-export/shared/export.type.mjs +13 -0
  205. package/esm2022/lib/import-export/shared/export.utils.mjs +51 -0
  206. package/esm2022/lib/import-export/shared/import.errors.mjs +39 -0
  207. package/esm2022/lib/import-export/shared/import.interface.mjs +2 -0
  208. package/esm2022/lib/import-export/shared/import.service.mjs +221 -0
  209. package/esm2022/lib/import-export/shared/import.utils.mjs +203 -0
  210. package/esm2022/lib/import-export/shared/index.mjs +11 -0
  211. package/esm2022/lib/layer/index.mjs +16 -0
  212. package/esm2022/lib/layer/layer-group/index.mjs +2 -0
  213. package/esm2022/lib/layer/layer-group/layer-group.component.mjs +103 -0
  214. package/esm2022/lib/layer/layer-item/index.mjs +2 -0
  215. package/esm2022/lib/layer/layer-item/layer-item.component.mjs +196 -0
  216. package/esm2022/lib/layer/layer-legend/index.mjs +2 -0
  217. package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +287 -0
  218. package/esm2022/lib/layer/layer-legend-item/index.mjs +2 -0
  219. package/esm2022/lib/layer/layer-legend-item/layer-legend-item.component.mjs +85 -0
  220. package/esm2022/lib/layer/layer-legend-list/index.mjs +3 -0
  221. package/esm2022/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +54 -0
  222. package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +104 -0
  223. package/esm2022/lib/layer/layer-list/index.mjs +2 -0
  224. package/esm2022/lib/layer/layer-list/layer-list.component.mjs +232 -0
  225. package/esm2022/lib/layer/layer-list-tool/index.mjs +4 -0
  226. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +92 -0
  227. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.interface.mjs +7 -0
  228. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.service.mjs +61 -0
  229. package/esm2022/lib/layer/layer-search/index.mjs +2 -0
  230. package/esm2022/lib/layer/layer-search/layer-search.component.mjs +65 -0
  231. package/esm2022/lib/layer/layer-unavailable/index.mjs +3 -0
  232. package/esm2022/lib/layer/layer-unavailable/layer-unavailable-list/layer-unavailable-list.component.mjs +26 -0
  233. package/esm2022/lib/layer/layer-unavailable/layer-unavailable.component.mjs +35 -0
  234. package/esm2022/lib/layer/layer-viewer/index.mjs +3 -0
  235. package/esm2022/lib/layer/layer-viewer/layer-viewer.component.mjs +226 -0
  236. package/esm2022/lib/layer/layer-viewer/layer-viewer.interface.mjs +2 -0
  237. package/esm2022/lib/layer/layer-viewer-bottom-actions/index.mjs +2 -0
  238. package/esm2022/lib/layer/layer-viewer-bottom-actions/layer-viewer-bottom-actions.component.mjs +207 -0
  239. package/esm2022/lib/layer/layer-visibility-button/index.mjs +2 -0
  240. package/esm2022/lib/layer/layer-visibility-button/layer-visibility-button.component.mjs +83 -0
  241. package/esm2022/lib/layer/layer.module.mjs +107 -0
  242. package/esm2022/lib/layer/shared/clusterParam.mjs +2 -0
  243. package/esm2022/lib/layer/shared/index.mjs +6 -0
  244. package/esm2022/lib/layer/shared/layer-controller.mjs +316 -0
  245. package/esm2022/lib/layer/shared/layer-selection.mjs +38 -0
  246. package/esm2022/lib/layer/shared/layer.enums.mjs +2 -0
  247. package/esm2022/lib/layer/shared/layer.service.mjs +315 -0
  248. package/esm2022/lib/layer/shared/layers/any-layer.interface.mjs +2 -0
  249. package/esm2022/lib/layer/shared/layers/any-layer.mjs +2 -0
  250. package/esm2022/lib/layer/shared/layers/image-layer.interface.mjs +2 -0
  251. package/esm2022/lib/layer/shared/layers/image-layer.mjs +75 -0
  252. package/esm2022/lib/layer/shared/layers/index.mjs +18 -0
  253. package/esm2022/lib/layer/shared/layers/layer-base.mjs +199 -0
  254. package/esm2022/lib/layer/shared/layers/layer-group.interface.mjs +2 -0
  255. package/esm2022/lib/layer/shared/layers/layer-group.mjs +120 -0
  256. package/esm2022/lib/layer/shared/layers/layer.interface.mjs +7 -0
  257. package/esm2022/lib/layer/shared/layers/layer.mjs +178 -0
  258. package/esm2022/lib/layer/shared/layers/legend.interface.mjs +2 -0
  259. package/esm2022/lib/layer/shared/layers/linked/index.mjs +4 -0
  260. package/esm2022/lib/layer/shared/layers/linked/linked-layer.interface.mjs +12 -0
  261. package/esm2022/lib/layer/shared/layers/linked/linked-layer.mjs +242 -0
  262. package/esm2022/lib/layer/shared/layers/linked/linked-layer.utils.mjs +70 -0
  263. package/esm2022/lib/layer/shared/layers/tile-layer.interface.mjs +2 -0
  264. package/esm2022/lib/layer/shared/layers/tile-layer.mjs +55 -0
  265. package/esm2022/lib/layer/shared/layers/vector-layer.interface.mjs +2 -0
  266. package/esm2022/lib/layer/shared/layers/vector-layer.mjs +576 -0
  267. package/esm2022/lib/layer/shared/layers/vectortile-layer.interface.mjs +2 -0
  268. package/esm2022/lib/layer/shared/layers/vectortile-layer.mjs +112 -0
  269. package/esm2022/lib/layer/track-feature-button/index.mjs +2 -0
  270. package/esm2022/lib/layer/track-feature-button/track-feature-button.component.mjs +54 -0
  271. package/esm2022/lib/layer/utils/image-watcher.mjs +62 -0
  272. package/esm2022/lib/layer/utils/index.mjs +6 -0
  273. package/esm2022/lib/layer/utils/layer.utils.mjs +57 -0
  274. package/esm2022/lib/layer/utils/outputLegend.mjs +32 -0
  275. package/esm2022/lib/layer/utils/tile-watcher.mjs +52 -0
  276. package/esm2022/lib/layer/utils/vector-watcher.mjs +50 -0
  277. package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.animation.mjs +20 -0
  278. package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +87 -0
  279. package/esm2022/lib/map/baselayers-switcher/index.mjs +3 -0
  280. package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +122 -0
  281. package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +78 -0
  282. package/esm2022/lib/map/geolocate-button/index.mjs +2 -0
  283. package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +73 -0
  284. package/esm2022/lib/map/home-extent-button/home-extent-button.interface.mjs +2 -0
  285. package/esm2022/lib/map/home-extent-button/index.mjs +3 -0
  286. package/esm2022/lib/map/index.mjs +14 -0
  287. package/esm2022/lib/map/info-section/index.mjs +2 -0
  288. package/esm2022/lib/map/info-section/info-section.component.mjs +15 -0
  289. package/esm2022/lib/map/map-browser/index.mjs +2 -0
  290. package/esm2022/lib/map/map-browser/map-browser.component.mjs +67 -0
  291. package/esm2022/lib/map/map-center/index.mjs +2 -0
  292. package/esm2022/lib/map/map-center/map-center.component.mjs +56 -0
  293. package/esm2022/lib/map/map.module.mjs +89 -0
  294. package/esm2022/lib/map/menu-button/index.mjs +2 -0
  295. package/esm2022/lib/map/menu-button/menu-button.component.mjs +57 -0
  296. package/esm2022/lib/map/offline-button/index.mjs +2 -0
  297. package/esm2022/lib/map/offline-button/offline-button.component.mjs +53 -0
  298. package/esm2022/lib/map/rotation-button/index.mjs +2 -0
  299. package/esm2022/lib/map/rotation-button/rotation-button.component.mjs +58 -0
  300. package/esm2022/lib/map/shared/controllers/controller.mjs +44 -0
  301. package/esm2022/lib/map/shared/controllers/geolocation.interface.mjs +8 -0
  302. package/esm2022/lib/map/shared/controllers/geolocation.mjs +431 -0
  303. package/esm2022/lib/map/shared/controllers/index.mjs +5 -0
  304. package/esm2022/lib/map/shared/controllers/view.mjs +361 -0
  305. package/esm2022/lib/map/shared/hover-feature.directive.mjs +481 -0
  306. package/esm2022/lib/map/shared/index.mjs +15 -0
  307. package/esm2022/lib/map/shared/linkedLayers.utils.mjs +238 -0
  308. package/esm2022/lib/map/shared/map-pointer-position.directive.mjs +122 -0
  309. package/esm2022/lib/map/shared/map.abstract.mjs +24 -0
  310. package/esm2022/lib/map/shared/map.enums.mjs +6 -0
  311. package/esm2022/lib/map/shared/map.interface.mjs +2 -0
  312. package/esm2022/lib/map/shared/map.mjs +201 -0
  313. package/esm2022/lib/map/shared/map.service.mjs +29 -0
  314. package/esm2022/lib/map/shared/map.utils.mjs +455 -0
  315. package/esm2022/lib/map/shared/mapOffline.directive.mjs +114 -0
  316. package/esm2022/lib/map/shared/projection.interfaces.mjs +2 -0
  317. package/esm2022/lib/map/shared/projection.service.mjs +67 -0
  318. package/esm2022/lib/map/shared/projection.utils.mjs +122 -0
  319. package/esm2022/lib/map/swipe-control/index.mjs +2 -0
  320. package/esm2022/lib/map/swipe-control/swipe-control.component.mjs +211 -0
  321. package/esm2022/lib/map/utils/index.mjs +2 -0
  322. package/esm2022/lib/map/utils/layer-watcher.mjs +112 -0
  323. package/esm2022/lib/map/wake-lock-button/index.mjs +2 -0
  324. package/esm2022/lib/map/wake-lock-button/wake-lock-button.component.mjs +103 -0
  325. package/esm2022/lib/map/zoom-button/index.mjs +2 -0
  326. package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +35 -0
  327. package/esm2022/lib/measure/index.mjs +3 -0
  328. package/esm2022/lib/measure/measure.module.mjs +20 -0
  329. package/esm2022/lib/measure/measurer/index.mjs +6 -0
  330. package/esm2022/lib/measure/measurer/measure-format.pipe.mjs +40 -0
  331. package/esm2022/lib/measure/measurer/measurer-dialog.component.mjs +38 -0
  332. package/esm2022/lib/measure/measurer/measurer-item.component.mjs +143 -0
  333. package/esm2022/lib/measure/measurer/measurer.component.mjs +948 -0
  334. package/esm2022/lib/measure/measurer/measurer.module.mjs +20 -0
  335. package/esm2022/lib/measure/shared/index.mjs +4 -0
  336. package/esm2022/lib/measure/shared/measure.enum.mjs +37 -0
  337. package/esm2022/lib/measure/shared/measure.interfaces.mjs +2 -0
  338. package/esm2022/lib/measure/shared/measure.utils.mjs +497 -0
  339. package/esm2022/lib/metadata/index.mjs +4 -0
  340. package/esm2022/lib/metadata/metadata-button/index.mjs +2 -0
  341. package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +96 -0
  342. package/esm2022/lib/metadata/metadata.module.mjs +29 -0
  343. package/esm2022/lib/metadata/shared/index.mjs +3 -0
  344. package/esm2022/lib/metadata/shared/metadata.interface.mjs +2 -0
  345. package/esm2022/lib/metadata/shared/metadata.service.mjs +18 -0
  346. package/esm2022/lib/offline/geoDB/configFileToGeoDB.service.mjs +130 -0
  347. package/esm2022/lib/offline/geoDB/geoDB.enums.mjs +6 -0
  348. package/esm2022/lib/offline/geoDB/geoDB.interface.mjs +2 -0
  349. package/esm2022/lib/offline/geoDB/geoDB.service.mjs +172 -0
  350. package/esm2022/lib/offline/geoDB/index.mjs +5 -0
  351. package/esm2022/lib/offline/index.mjs +6 -0
  352. package/esm2022/lib/offline/layerDB/index.mjs +3 -0
  353. package/esm2022/lib/offline/layerDB/layerDB.interface.mjs +2 -0
  354. package/esm2022/lib/offline/layerDB/layerDB.service.mjs +83 -0
  355. package/esm2022/lib/offline/offline.interface.mjs +2 -0
  356. package/esm2022/lib/offline/offline.provider.mjs +50 -0
  357. package/esm2022/lib/offline/shared/geo-network.service.mjs +79 -0
  358. package/esm2022/lib/offline/shared/index.mjs +2 -0
  359. package/esm2022/lib/overlay/index.mjs +2 -0
  360. package/esm2022/lib/overlay/shared/index.mjs +4 -0
  361. package/esm2022/lib/overlay/shared/overlay.enum.mjs +8 -0
  362. package/esm2022/lib/overlay/shared/overlay.mjs +139 -0
  363. package/esm2022/lib/overlay/shared/overlay.utils.mjs +17 -0
  364. package/esm2022/lib/print/index.mjs +4 -0
  365. package/esm2022/lib/print/print/print.component.mjs +116 -0
  366. package/esm2022/lib/print/print-form/index.mjs +2 -0
  367. package/esm2022/lib/print/print-form/print-form.component.mjs +320 -0
  368. package/esm2022/lib/print/print.module.mjs +20 -0
  369. package/esm2022/lib/print/shared/geopdf.mjs +68 -0
  370. package/esm2022/lib/print/shared/index.mjs +5 -0
  371. package/esm2022/lib/print/shared/print.interface.mjs +2 -0
  372. package/esm2022/lib/print/shared/print.service.mjs +1136 -0
  373. package/esm2022/lib/print/shared/print.type.mjs +30 -0
  374. package/esm2022/lib/query/index.mjs +2 -0
  375. package/esm2022/lib/query/query.module.mjs +27 -0
  376. package/esm2022/lib/query/shared/index.mjs +8 -0
  377. package/esm2022/lib/query/shared/query-search-source.mjs +35 -0
  378. package/esm2022/lib/query/shared/query-search-source.providers.mjs +22 -0
  379. package/esm2022/lib/query/shared/query.directive.mjs +290 -0
  380. package/esm2022/lib/query/shared/query.enums.mjs +32 -0
  381. package/esm2022/lib/query/shared/query.interfaces.mjs +2 -0
  382. package/esm2022/lib/query/shared/query.service.mjs +753 -0
  383. package/esm2022/lib/query/shared/query.utils.mjs +45 -0
  384. package/esm2022/lib/search/index.mjs +10 -0
  385. package/esm2022/lib/search/search-bar/search-bar.component.mjs +483 -0
  386. package/esm2022/lib/search/search-bar/search-bar.module.mjs +19 -0
  387. package/esm2022/lib/search/search-results/index.mjs +5 -0
  388. package/esm2022/lib/search/search-results/save-feature-dialog.component.mjs +101 -0
  389. package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +433 -0
  390. package/esm2022/lib/search/search-results/search-results-item.component.mjs +119 -0
  391. package/esm2022/lib/search/search-results/search-results.component.mjs +297 -0
  392. package/esm2022/lib/search/search-results/search-results.directive.mjs +7 -0
  393. package/esm2022/lib/search/search-results/search-results.module.mjs +20 -0
  394. package/esm2022/lib/search/search-selector/search-selector.component.mjs +118 -0
  395. package/esm2022/lib/search/search-selector/search-selector.module.mjs +19 -0
  396. package/esm2022/lib/search/search-settings/search-settings.component.mjs +264 -0
  397. package/esm2022/lib/search/search-settings/search-settings.module.mjs +19 -0
  398. package/esm2022/lib/search/search.module.mjs +77 -0
  399. package/esm2022/lib/search/shared/index.mjs +10 -0
  400. package/esm2022/lib/search/shared/search-pointer-summary.directive.mjs +328 -0
  401. package/esm2022/lib/search/shared/search-source-service.providers.mjs +20 -0
  402. package/esm2022/lib/search/shared/search-source.service.mjs +56 -0
  403. package/esm2022/lib/search/shared/search.enums.mjs +4 -0
  404. package/esm2022/lib/search/shared/search.interfaces.mjs +2 -0
  405. package/esm2022/lib/search/shared/search.provider.mjs +20 -0
  406. package/esm2022/lib/search/shared/search.service.mjs +149 -0
  407. package/esm2022/lib/search/shared/search.utils.mjs +92 -0
  408. package/esm2022/lib/search/shared/sources/cadastre.mjs +142 -0
  409. package/esm2022/lib/search/shared/sources/cadastre.providers.mjs +32 -0
  410. package/esm2022/lib/search/shared/sources/coordinates.interfaces.mjs +2 -0
  411. package/esm2022/lib/search/shared/sources/coordinates.mjs +168 -0
  412. package/esm2022/lib/search/shared/sources/coordinates.providers.mjs +52 -0
  413. package/esm2022/lib/search/shared/sources/icherche-icons.mjs +32 -0
  414. package/esm2022/lib/search/shared/sources/icherche.interfaces.mjs +2 -0
  415. package/esm2022/lib/search/shared/sources/icherche.mjs +816 -0
  416. package/esm2022/lib/search/shared/sources/icherche.providers.mjs +87 -0
  417. package/esm2022/lib/search/shared/sources/ilayer.interfaces.mjs +2 -0
  418. package/esm2022/lib/search/shared/sources/ilayer.mjs +339 -0
  419. package/esm2022/lib/search/shared/sources/ilayer.providers.mjs +58 -0
  420. package/esm2022/lib/search/shared/sources/index.mjs +23 -0
  421. package/esm2022/lib/search/shared/sources/nominatim.interfaces.mjs +2 -0
  422. package/esm2022/lib/search/shared/sources/nominatim.mjs +263 -0
  423. package/esm2022/lib/search/shared/sources/nominatim.providers.mjs +31 -0
  424. package/esm2022/lib/search/shared/sources/source.interfaces.mjs +13 -0
  425. package/esm2022/lib/search/shared/sources/source.mjs +221 -0
  426. package/esm2022/lib/search/shared/sources/storedqueries.interfaces.mjs +2 -0
  427. package/esm2022/lib/search/shared/sources/storedqueries.mjs +454 -0
  428. package/esm2022/lib/search/shared/sources/storedqueries.providers.mjs +56 -0
  429. package/esm2022/lib/search/shared/sources/workspace.interfaces.mjs +2 -0
  430. package/esm2022/lib/search/shared/sources/workspace.mjs +192 -0
  431. package/esm2022/lib/search/shared/sources/workspace.providers.mjs +31 -0
  432. package/esm2022/lib/style/index.mjs +5 -0
  433. package/esm2022/lib/style/shared/datasource/esri-style-generator.mjs +360 -0
  434. package/esm2022/lib/style/shared/datasource/index.mjs +2 -0
  435. package/esm2022/lib/style/shared/feature/feature-style.mjs +162 -0
  436. package/esm2022/lib/style/shared/feature/index.mjs +2 -0
  437. package/esm2022/lib/style/shared/font.enum.mjs +17 -0
  438. package/esm2022/lib/style/shared/index.mjs +5 -0
  439. package/esm2022/lib/style/shared/overlay/index.mjs +3 -0
  440. package/esm2022/lib/style/shared/overlay/overlay-marker-style.utils.mjs +39 -0
  441. package/esm2022/lib/style/shared/overlay/overlay-style.utils.mjs +88 -0
  442. package/esm2022/lib/style/shared/vector/commonVectorStyle.mjs +78 -0
  443. package/esm2022/lib/style/shared/vector/conversion.utils.mjs +27 -0
  444. package/esm2022/lib/style/shared/vector/index.mjs +4 -0
  445. package/esm2022/lib/style/shared/vector/vector-style.interface.mjs +2 -0
  446. package/esm2022/lib/style/style-list/index.mjs +5 -0
  447. package/esm2022/lib/style/style-list/style-list.interface.mjs +2 -0
  448. package/esm2022/lib/style/style-list/style-list.module.mjs +23 -0
  449. package/esm2022/lib/style/style-list/style-list.provider.mjs +21 -0
  450. package/esm2022/lib/style/style-list/style-list.service.mjs +52 -0
  451. package/esm2022/lib/style/style-modal/drawing/index.mjs +2 -0
  452. package/esm2022/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +193 -0
  453. package/esm2022/lib/style/style-modal/index.mjs +5 -0
  454. package/esm2022/lib/style/style-modal/layer/index.mjs +2 -0
  455. package/esm2022/lib/style/style-modal/layer/style-modal-layer.component.mjs +142 -0
  456. package/esm2022/lib/style/style-modal/layer-button/index.mjs +2 -0
  457. package/esm2022/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +44 -0
  458. package/esm2022/lib/style/style-modal/shared/index.mjs +2 -0
  459. package/esm2022/lib/style/style-modal/shared/style-modal.interface.mjs +2 -0
  460. package/esm2022/lib/style/style-service/draw-style.service.mjs +255 -0
  461. package/esm2022/lib/style/style-service/index.mjs +3 -0
  462. package/esm2022/lib/style/style-service/style.service.mjs +393 -0
  463. package/esm2022/lib/style/style.module.mjs +46 -0
  464. package/esm2022/lib/toast/index.mjs +2 -0
  465. package/esm2022/lib/toast/toast.component.mjs +99 -0
  466. package/esm2022/lib/toast/toast.module.mjs +24 -0
  467. package/esm2022/lib/utils/googleLinks.mjs +13 -0
  468. package/esm2022/lib/utils/id-generator.mjs +112 -0
  469. package/esm2022/lib/utils/index.mjs +5 -0
  470. package/esm2022/lib/utils/osmLinks.mjs +9 -0
  471. package/esm2022/lib/utils/propertyTypeDetector/index.mjs +3 -0
  472. package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.interface.mjs +2 -0
  473. package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.service.mjs +64 -0
  474. package/esm2022/lib/wkt/index.mjs +2 -0
  475. package/esm2022/lib/wkt/shared/index.mjs +2 -0
  476. package/esm2022/lib/wkt/shared/wkt.service.mjs +235 -0
  477. package/esm2022/lib/wkt/wkt.module.mjs +25 -0
  478. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +36 -0
  479. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +19 -0
  480. package/esm2022/lib/workspace/confirmation-popup/index.mjs +3 -0
  481. package/esm2022/lib/workspace/index.mjs +8 -0
  482. package/esm2022/lib/workspace/shared/edition-workspace.mjs +301 -0
  483. package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +720 -0
  484. package/esm2022/lib/workspace/shared/feature-workspace.mjs +41 -0
  485. package/esm2022/lib/workspace/shared/feature-workspace.service.mjs +113 -0
  486. package/esm2022/lib/workspace/shared/index.mjs +8 -0
  487. package/esm2022/lib/workspace/shared/wfs-workspace.mjs +41 -0
  488. package/esm2022/lib/workspace/shared/wfs-workspace.service.mjs +121 -0
  489. package/esm2022/lib/workspace/shared/wms-workspace.service.mjs +248 -0
  490. package/esm2022/lib/workspace/shared/workspace.utils.mjs +188 -0
  491. package/esm2022/lib/workspace/widgets/index.mjs +4 -0
  492. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +48 -0
  493. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +19 -0
  494. package/esm2022/lib/workspace/widgets/widgets.mjs +15 -0
  495. package/esm2022/lib/workspace/workspace-selector/workspace-selector.directive.mjs +172 -0
  496. package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +19 -0
  497. package/esm2022/lib/workspace/workspace-updator/workspace-updator.directive.mjs +137 -0
  498. package/esm2022/lib/workspace/workspace-updator/workspace-updator.module.mjs +19 -0
  499. package/esm2022/lib/workspace/workspace.module.mjs +32 -0
  500. package/esm2022/public_api.mjs +56 -0
  501. package/fesm2022/igo2-geo.mjs +717 -691
  502. package/fesm2022/igo2-geo.mjs.map +1 -1
  503. package/lib/datasource/shared/datasources/datasource.d.ts +2 -2
  504. package/lib/directions/shared/directions.service.d.ts +0 -1
  505. package/lib/offline/geoDB/geoDB.service.d.ts +1 -1
  506. package/lib/offline/layerDB/layerDB.service.d.ts +1 -1
  507. package/lib/style/style-list/style-list.provider.d.ts +8 -1
  508. package/lib/style/style-list/style-list.service.d.ts +1 -1
  509. package/package.json +16 -14
  510. package/src/lib/layer/layer-list/layer-list.theme.scss +1 -2
  511. package/src/lib/map/menu-button/menu-button.theming.scss +3 -3
  512. package/src/style/style.scss +1 -1
@@ -0,0 +1,207 @@
1
+ import { NgIf, NgTemplateOutlet } from '@angular/common';
2
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
3
+ import { MatBadgeModule } from '@angular/material/badge';
4
+ import { MatButtonModule } from '@angular/material/button';
5
+ import { MatIconModule } from '@angular/material/icon';
6
+ import { MatMenuModule } from '@angular/material/menu';
7
+ import { MatSliderModule } from '@angular/material/slider';
8
+ import { MatTooltipModule } from '@angular/material/tooltip';
9
+ import { FormDialogService } from '@igo2/common/form';
10
+ import { PanelComponent } from '@igo2/common/panel';
11
+ import { IgoLanguageModule } from '@igo2/core/language';
12
+ import * as olextent from 'ol/extent';
13
+ import { LayerListToolService } from '../layer-list-tool';
14
+ import { LayerController } from '../shared/layer-controller';
15
+ import { LinkedProperties, isLayerLinked, isLayerLinkedTogether } from '../shared/layers/linked';
16
+ import { isBaseLayer, isLayerGroup, isLayerItem } from '../utils/layer.utils';
17
+ import * as i0 from "@angular/core";
18
+ import * as i1 from "../layer-list-tool";
19
+ import * as i2 from "@angular/material/button";
20
+ import * as i3 from "@angular/material/tooltip";
21
+ import * as i4 from "@angular/material/icon";
22
+ import * as i5 from "@angular/material/badge";
23
+ import * as i6 from "@angular/material/menu";
24
+ import * as i7 from "@angular/material/slider";
25
+ import * as i8 from "@ngx-translate/core";
26
+ export class LayerViewerBottomActionsComponent {
27
+ layerListToolService;
28
+ orderable = true;
29
+ map;
30
+ controller;
31
+ searchTerm;
32
+ viewerOptions;
33
+ layerChange = new EventEmitter();
34
+ get layersFlattened() {
35
+ return this.controller.layersFlattened;
36
+ }
37
+ get hasMultipleSelection() {
38
+ return this.controller.selected.length > 1;
39
+ }
40
+ get selected() {
41
+ return this.controller.selected;
42
+ }
43
+ get opacity() {
44
+ return Math.round(this.selected[0].opacity * 100);
45
+ }
46
+ set opacity(opacity) {
47
+ this.selected[0].opacity = opacity / 100;
48
+ }
49
+ get allSelectionVisibilityHidden() {
50
+ return this.controller.selected.every((layer) => !layer.visible);
51
+ }
52
+ get isSelectionRaisable() {
53
+ return this.controller.selected.every((layer) => this.isRaisable(layer));
54
+ }
55
+ get isSelectionLowerable() {
56
+ return this.controller.selected.every((layer) => this.isLowerable(layer));
57
+ }
58
+ get canRename() {
59
+ if (!this.viewerOptions.group.canRename || this.selected.length > 1) {
60
+ return false;
61
+ }
62
+ const layer = this.selected[0];
63
+ return isLayerGroup(layer);
64
+ }
65
+ constructor(layerListToolService) {
66
+ this.layerListToolService = layerListToolService;
67
+ }
68
+ isLayerItem = isLayerItem;
69
+ handleRename() {
70
+ const layer = this.selected[0];
71
+ this.layerListToolService.renameGroup(layer).subscribe((name) => {
72
+ if (!name) {
73
+ return;
74
+ }
75
+ layer.title = name;
76
+ this.layerChange.emit();
77
+ });
78
+ }
79
+ isLayersRemovable(layers) {
80
+ if (layers.length === 1) {
81
+ return this.isLayerRemovable(layers[0]);
82
+ }
83
+ return layers?.every((l) => this.isLayerRemovable(l));
84
+ }
85
+ removeLayers() {
86
+ this.controller.remove(...this.selected);
87
+ this.controller.clearSelection();
88
+ }
89
+ isExtentsValid() {
90
+ let valid = false;
91
+ const layersExtent = olextent.createEmpty();
92
+ const maxLayerZoomExtent = this.map.viewController.maxLayerZoomExtent;
93
+ if (this.selected.some((layer) => isLayerItem(layer) && layer.options.showButtonZoomToExtent === false)) {
94
+ return false;
95
+ }
96
+ for (const layer of this.selected) {
97
+ const layerExtent = layer.options.extent;
98
+ if (layerExtent && !layerExtent.includes(Infinity)) {
99
+ olextent.extend(layersExtent, layerExtent);
100
+ }
101
+ }
102
+ if (!olextent.isEmpty(layersExtent)) {
103
+ if (maxLayerZoomExtent) {
104
+ valid = olextent.containsExtent(maxLayerZoomExtent, layersExtent);
105
+ }
106
+ else {
107
+ valid = true;
108
+ }
109
+ }
110
+ return valid;
111
+ }
112
+ zoomLayersExtents() {
113
+ const layersExtent = olextent.createEmpty();
114
+ for (const layer of this.selected) {
115
+ const layerExtent = layer.options.extent;
116
+ if (layerExtent) {
117
+ olextent.extend(layersExtent, layerExtent);
118
+ }
119
+ }
120
+ this.map.viewController.zoomToExtent(layersExtent);
121
+ }
122
+ raiseSelection() {
123
+ this.map.layerController.raise(...this.selected);
124
+ }
125
+ lowerSelection() {
126
+ this.map.layerController.lower(...this.selected);
127
+ }
128
+ changeOpacity(event) {
129
+ this.opacity = event.value;
130
+ }
131
+ toggleSelectionVisibility() {
132
+ this.selected.forEach((layer) => {
133
+ layer.visible = !layer.visible;
134
+ });
135
+ this.layerChange.emit();
136
+ }
137
+ isLowerable(layer) {
138
+ if (isBaseLayer(layer)) {
139
+ return false;
140
+ }
141
+ const recipient = this.getRecipientOfVisibleLayer(layer);
142
+ const index = recipient.findIndex((lay) => lay.id === layer.id);
143
+ if (index >= recipient.length - 1) {
144
+ return false;
145
+ }
146
+ if (isLayerLinked(layer)) {
147
+ const layerBelow = recipient[index + 1];
148
+ return !isLayerLinkedTogether(layer, layerBelow, this.controller.layersFlattened, LinkedProperties.ZINDEX);
149
+ }
150
+ return true;
151
+ }
152
+ isRaisable(layer) {
153
+ if (isBaseLayer(layer)) {
154
+ return false;
155
+ }
156
+ const recipient = this.getRecipientOfVisibleLayer(layer);
157
+ const index = recipient.findIndex((lay) => lay.id === layer.id);
158
+ if (index <= 0) {
159
+ return false;
160
+ }
161
+ if (isLayerLinked(layer)) {
162
+ const layerAbove = recipient[index - 1];
163
+ return !isLayerLinkedTogether(layer, layerAbove, this.controller.layersFlattened, LinkedProperties.ZINDEX);
164
+ }
165
+ return true;
166
+ }
167
+ getRecipientOfVisibleLayer(layer) {
168
+ return [...this.controller.getLayerRecipient(layer)].filter((layer) => layer.showInLayerList);
169
+ }
170
+ isLayerRemovable(layer) {
171
+ if (isLayerGroup(layer)) {
172
+ return true;
173
+ }
174
+ return layer.options.removable !== false;
175
+ }
176
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LayerViewerBottomActionsComponent, deps: [{ token: i1.LayerListToolService }], target: i0.ɵɵFactoryTarget.Component });
177
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: LayerViewerBottomActionsComponent, isStandalone: true, selector: "igo-layer-viewer-bottom-actions", inputs: { map: "map", controller: "controller", searchTerm: "searchTerm", viewerOptions: "viewerOptions" }, outputs: { layerChange: "layerChange" }, providers: [LayerListToolService, FormDialogService], ngImport: i0, template: "<igo-panel\n class=\"igo-layer-actions-container\"\n [title]=\"\n hasMultipleSelection\n ? ('igo.geo.layer.tools' | translate)\n : selected[0].title\n \"\n>\n <div class=\"igo-layer-button-group\">\n <button\n *ngIf=\"isLayersRemovable(selected)\"\n class=\"delete-button\"\n mat-icon-button\n color=\"warn\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"\n (hasMultipleSelection\n ? isLayersRemovable(selected)\n ? ('igo.geo.layer.removeSelectedLayers' | translate)\n : ('igo.geo.layer.removeSelectedLayersRestriction' | translate)\n : 'igo.geo.layer.removeLayer'\n ) | translate\n \"\n (click)=\"removeLayers()\"\n >\n <mat-icon\n aria-hidden=\"false\"\n [matBadge]=\"'!'\"\n matBadgeColor=\"warn\"\n matBadgeSize=\"medium\"\n [matBadgeHidden]=\"!hasMultipleSelection || isLayersRemovable(selected)\"\n >delete</mat-icon\n >\n </button>\n\n <button\n *ngIf=\"hasMultipleSelection\"\n class=\"eye-button\"\n mat-icon-button\n color=\"primary\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [disabled]=\"selected.length === 0\"\n [matTooltip]=\"\n allSelectionVisibilityHidden\n ? ('igo.geo.layer.showSelectedLayers' | translate)\n : ('igo.geo.layer.hideSelectedLayers' | translate)\n \"\n (click)=\"toggleSelectionVisibility()\"\n >\n <mat-icon>{{\n allSelectionVisibilityHidden ? 'visibility_off' : 'visibility'\n }}</mat-icon>\n </button>\n\n <button\n class=\"down-button\"\n mat-icon-button\n color=\"primary\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"\n searchTerm\n ? ('igo.geo.layer.filterLowerLayer' | translate)\n : ('igo.geo.layer.lowerLayer' | translate)\n \"\n [disabled]=\"!isSelectionLowerable\"\n (click)=\"lowerSelection()\"\n >\n <mat-icon\n aria-hidden=\"false\"\n [matBadge]=\"searchTerm ? '!' : ''\"\n matBadgeColor=\"warn\"\n matBadgeSize=\"medium\"\n [matBadgeHidden]=\"!isSelectionLowerable\"\n >arrow_downward</mat-icon\n >\n </button>\n\n <button\n class=\"up-button\"\n color=\"primary\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"\n searchTerm\n ? ('igo.geo.layer.filterRaiseLayer' | translate)\n : ('igo.geo.layer.raiseLayer' | translate)\n \"\n [disabled]=\"!isSelectionRaisable\"\n (click)=\"raiseSelection()\"\n >\n <mat-icon\n aria-hidden=\"false\"\n [matBadge]=\"searchTerm ? '!' : ''\"\n matBadgeColor=\"warn\"\n matBadgeSize=\"medium\"\n [matBadgeHidden]=\"!isSelectionRaisable\"\n >arrow_upward</mat-icon\n >\n </button>\n\n <ng-container *ngIf=\"controller.selected.length === 1\">\n <button\n class=\"opacity-button\"\n color=\"primary\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matMenuTriggerFor]=\"opacityMenu\"\n [matTooltip]=\"'igo.geo.layer.opacity' | translate\"\n >\n <mat-icon\n aria-hidden=\"false\"\n [matBadge]=\"opacity === 100 ? null : opacity\"\n matBadgeColor=\"primary\"\n matBadgeSize=\"medium\"\n >opacity</mat-icon\n >\n </button>\n\n <mat-menu #opacityMenu=\"matMenu\" class=\"panel-opacity-menu\">\n <mat-slider\n id=\"opacity-slider\"\n color=\"primary\"\n discrete\n step=\"5\"\n [min]=\"0\"\n [max]=\"100\"\n [matTooltip]=\"'igo.geo.layer.opacity' | translate\"\n (click)=\"$event.stopPropagation()\"\n matTooltipShowDelay=\"500\"\n tooltip-position=\"below\"\n #ngSlider\n ><input\n matSliderThumb\n [value]=\"opacity\"\n (input)=\"\n changeOpacity({\n source: ngSliderThumb,\n parent: ngSlider,\n value: ngSliderThumb.value\n })\n \"\n #ngSliderThumb=\"matSliderThumb\"\n />\n </mat-slider>\n </mat-menu>\n </ng-container>\n\n <button\n *ngIf=\"isExtentsValid()\"\n class=\"zoomLayer-button\"\n color=\"primary\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"\n (hasMultipleSelection\n ? 'igo.geo.layer.zoomLayers'\n : 'igo.geo.layer.zoomLayer'\n ) | translate\n \"\n (click)=\"zoomLayersExtents()\"\n >\n <mat-icon matBadgeColor=\"primary\" matBadgeSize=\"medium\"\n >frame_inspect</mat-icon\n >\n </button>\n\n <button\n *ngIf=\"canRename\"\n color=\"primary\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.layer.group.rename' | translate\"\n (click)=\"handleRename()\"\n >\n <mat-icon>edit</mat-icon>\n </button>\n\n <ng-content></ng-content>\n </div>\n</igo-panel>\n", styles: [".igo-layer-actions-container{padding:0 6px 0 4px}.igo-layer-actions-container>div{text-align:center}.igo-layer-button-group,.actions-buttons-multi{display:flex;align-items:center;flex-direction:row-reverse;overflow-x:auto;overflow-y:hidden}.igo-layer-button-group::-webkit-scrollbar,.actions-buttons-multi::-webkit-scrollbar{height:4px}.igo-layer-button-group::-webkit-scrollbar-track,.actions-buttons-multi::-webkit-scrollbar-track{background:#f1f1f1}.igo-layer-button-group::-webkit-scrollbar-thumb,.actions-buttons-multi::-webkit-scrollbar-thumb{background:#888}.igo-layer-button-group::-webkit-scrollbar-thumb:hover,.actions-buttons-multi::-webkit-scrollbar-thumb:hover{background:#555}.igo-layer-button-group{padding-top:4px}igo-panel{height:unset}::ng-deep .panel-opacity-menu{overflow:visible!important}::ng-deep .panel-opacity-menu #opacity-slider{margin:0 16px}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatBadgeModule }, { kind: "directive", type: i5.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i6.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "directive", type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatSliderModule }, { kind: "component", type: i7.MatSlider, selector: "mat-slider", inputs: ["disabled", "discrete", "showTickMarks", "min", "color", "disableRipple", "max", "step", "displayWith"], exportAs: ["matSlider"] }, { kind: "directive", type: i7.MatSliderThumb, selector: "input[matSliderThumb]", inputs: ["value"], outputs: ["valueChange", "dragStart", "dragEnd"], exportAs: ["matSliderThumb"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }, { kind: "component", type: PanelComponent, selector: "igo-panel", inputs: ["title", "withHeader", "cursorPointer"] }] });
178
+ }
179
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LayerViewerBottomActionsComponent, decorators: [{
180
+ type: Component,
181
+ args: [{ selector: 'igo-layer-viewer-bottom-actions', standalone: true, imports: [
182
+ NgIf,
183
+ NgTemplateOutlet,
184
+ MatButtonModule,
185
+ MatTooltipModule,
186
+ MatIconModule,
187
+ MatBadgeModule,
188
+ MatMenuModule,
189
+ MatSliderModule,
190
+ IgoLanguageModule,
191
+ PanelComponent
192
+ ], providers: [LayerListToolService, FormDialogService], template: "<igo-panel\n class=\"igo-layer-actions-container\"\n [title]=\"\n hasMultipleSelection\n ? ('igo.geo.layer.tools' | translate)\n : selected[0].title\n \"\n>\n <div class=\"igo-layer-button-group\">\n <button\n *ngIf=\"isLayersRemovable(selected)\"\n class=\"delete-button\"\n mat-icon-button\n color=\"warn\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"\n (hasMultipleSelection\n ? isLayersRemovable(selected)\n ? ('igo.geo.layer.removeSelectedLayers' | translate)\n : ('igo.geo.layer.removeSelectedLayersRestriction' | translate)\n : 'igo.geo.layer.removeLayer'\n ) | translate\n \"\n (click)=\"removeLayers()\"\n >\n <mat-icon\n aria-hidden=\"false\"\n [matBadge]=\"'!'\"\n matBadgeColor=\"warn\"\n matBadgeSize=\"medium\"\n [matBadgeHidden]=\"!hasMultipleSelection || isLayersRemovable(selected)\"\n >delete</mat-icon\n >\n </button>\n\n <button\n *ngIf=\"hasMultipleSelection\"\n class=\"eye-button\"\n mat-icon-button\n color=\"primary\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [disabled]=\"selected.length === 0\"\n [matTooltip]=\"\n allSelectionVisibilityHidden\n ? ('igo.geo.layer.showSelectedLayers' | translate)\n : ('igo.geo.layer.hideSelectedLayers' | translate)\n \"\n (click)=\"toggleSelectionVisibility()\"\n >\n <mat-icon>{{\n allSelectionVisibilityHidden ? 'visibility_off' : 'visibility'\n }}</mat-icon>\n </button>\n\n <button\n class=\"down-button\"\n mat-icon-button\n color=\"primary\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"\n searchTerm\n ? ('igo.geo.layer.filterLowerLayer' | translate)\n : ('igo.geo.layer.lowerLayer' | translate)\n \"\n [disabled]=\"!isSelectionLowerable\"\n (click)=\"lowerSelection()\"\n >\n <mat-icon\n aria-hidden=\"false\"\n [matBadge]=\"searchTerm ? '!' : ''\"\n matBadgeColor=\"warn\"\n matBadgeSize=\"medium\"\n [matBadgeHidden]=\"!isSelectionLowerable\"\n >arrow_downward</mat-icon\n >\n </button>\n\n <button\n class=\"up-button\"\n color=\"primary\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"\n searchTerm\n ? ('igo.geo.layer.filterRaiseLayer' | translate)\n : ('igo.geo.layer.raiseLayer' | translate)\n \"\n [disabled]=\"!isSelectionRaisable\"\n (click)=\"raiseSelection()\"\n >\n <mat-icon\n aria-hidden=\"false\"\n [matBadge]=\"searchTerm ? '!' : ''\"\n matBadgeColor=\"warn\"\n matBadgeSize=\"medium\"\n [matBadgeHidden]=\"!isSelectionRaisable\"\n >arrow_upward</mat-icon\n >\n </button>\n\n <ng-container *ngIf=\"controller.selected.length === 1\">\n <button\n class=\"opacity-button\"\n color=\"primary\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matMenuTriggerFor]=\"opacityMenu\"\n [matTooltip]=\"'igo.geo.layer.opacity' | translate\"\n >\n <mat-icon\n aria-hidden=\"false\"\n [matBadge]=\"opacity === 100 ? null : opacity\"\n matBadgeColor=\"primary\"\n matBadgeSize=\"medium\"\n >opacity</mat-icon\n >\n </button>\n\n <mat-menu #opacityMenu=\"matMenu\" class=\"panel-opacity-menu\">\n <mat-slider\n id=\"opacity-slider\"\n color=\"primary\"\n discrete\n step=\"5\"\n [min]=\"0\"\n [max]=\"100\"\n [matTooltip]=\"'igo.geo.layer.opacity' | translate\"\n (click)=\"$event.stopPropagation()\"\n matTooltipShowDelay=\"500\"\n tooltip-position=\"below\"\n #ngSlider\n ><input\n matSliderThumb\n [value]=\"opacity\"\n (input)=\"\n changeOpacity({\n source: ngSliderThumb,\n parent: ngSlider,\n value: ngSliderThumb.value\n })\n \"\n #ngSliderThumb=\"matSliderThumb\"\n />\n </mat-slider>\n </mat-menu>\n </ng-container>\n\n <button\n *ngIf=\"isExtentsValid()\"\n class=\"zoomLayer-button\"\n color=\"primary\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"\n (hasMultipleSelection\n ? 'igo.geo.layer.zoomLayers'\n : 'igo.geo.layer.zoomLayer'\n ) | translate\n \"\n (click)=\"zoomLayersExtents()\"\n >\n <mat-icon matBadgeColor=\"primary\" matBadgeSize=\"medium\"\n >frame_inspect</mat-icon\n >\n </button>\n\n <button\n *ngIf=\"canRename\"\n color=\"primary\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.layer.group.rename' | translate\"\n (click)=\"handleRename()\"\n >\n <mat-icon>edit</mat-icon>\n </button>\n\n <ng-content></ng-content>\n </div>\n</igo-panel>\n", styles: [".igo-layer-actions-container{padding:0 6px 0 4px}.igo-layer-actions-container>div{text-align:center}.igo-layer-button-group,.actions-buttons-multi{display:flex;align-items:center;flex-direction:row-reverse;overflow-x:auto;overflow-y:hidden}.igo-layer-button-group::-webkit-scrollbar,.actions-buttons-multi::-webkit-scrollbar{height:4px}.igo-layer-button-group::-webkit-scrollbar-track,.actions-buttons-multi::-webkit-scrollbar-track{background:#f1f1f1}.igo-layer-button-group::-webkit-scrollbar-thumb,.actions-buttons-multi::-webkit-scrollbar-thumb{background:#888}.igo-layer-button-group::-webkit-scrollbar-thumb:hover,.actions-buttons-multi::-webkit-scrollbar-thumb:hover{background:#555}.igo-layer-button-group{padding-top:4px}igo-panel{height:unset}::ng-deep .panel-opacity-menu{overflow:visible!important}::ng-deep .panel-opacity-menu #opacity-slider{margin:0 16px}\n"] }]
193
+ }], ctorParameters: () => [{ type: i1.LayerListToolService }], propDecorators: { map: [{
194
+ type: Input,
195
+ args: [{ required: true }]
196
+ }], controller: [{
197
+ type: Input,
198
+ args: [{ required: true }]
199
+ }], searchTerm: [{
200
+ type: Input,
201
+ args: [{ required: true }]
202
+ }], viewerOptions: [{
203
+ type: Input
204
+ }], layerChange: [{
205
+ type: Output
206
+ }] } });
207
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXItdmlld2VyLWJvdHRvbS1hY3Rpb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2xheWVyL2xheWVyLXZpZXdlci1ib3R0b20tYWN0aW9ucy9sYXllci12aWV3ZXItYm90dG9tLWFjdGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbGF5ZXIvbGF5ZXItdmlld2VyLWJvdHRvbS1hY3Rpb25zL2xheWVyLXZpZXdlci1ib3R0b20tYWN0aW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFtQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFeEQsT0FBTyxLQUFLLFFBQVEsTUFBTSxXQUFXLENB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QUFDLG9CQUFvQixFQUFFLGlCQUFpQixDQUFDLDBCQzVDdEQsNHhLQTJMQSxrNkJEMUpJLElBQUksNEZBRUosZUFBZSwySUFDZixnQkFBZ0IsNFRBQ2hCLGFBQWEsbUxBQ2IsY0FBYywyUEFDZCxhQUFhLHltQkFDYixlQUFlLGthQUNmLGlCQUFpQiw0RkFDakIsY0FBYzs7NEZBSUwsaUNBQWlDO2tCQW5CN0MsU0FBUzsrQkFDRSxpQ0FBaUMsY0FHL0IsSUFBSSxXQUNQO3dCQUNQLElBQUk7d0JBQ0osZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLGNBQWM7cUJBQ2YsYUFDVSxDQUFDLG9CQUFvQixFQUFFLGlCQUFpQixDQUFDO3lGQUt6QixHQUFHO3NCQUE3QixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDRSxVQUFVO3NCQUFwQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDRSxVQUFVO3NCQUFwQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDaEIsYUFBYTtzQkFBckIsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0QmFkZ2VNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9iYWRnZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgTWF0U2xpZGVyQ2hhbmdlLCBNYXRTbGlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZXInO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuXG5pbXBvcnQgeyBGb3JtRGlhbG9nU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvbW1vbi9mb3JtJztcbmltcG9ydCB7IFBhbmVsQ29tcG9uZW50IH0gZnJvbSAnQGlnbzIvY29tbW9uL3BhbmVsJztcbmltcG9ydCB7IElnb0xhbmd1YWdlTW9kdWxlIH0gZnJvbSAnQGlnbzIvY29yZS9sYW5ndWFnZSc7XG5cbmltcG9ydCAqIGFzIG9sZXh0ZW50IGZyb20gJ29sL2V4dGVudCc7XG5cbmltcG9ydCB0eXBlIHsgTWFwQmFzZSB9IGZyb20gJy4uLy4uL21hcC9zaGFyZWQvbWFwLmFic3RyYWN0JztcbmltcG9ydCB7IExheWVyTGlzdFRvb2xTZXJ2aWNlIH0gZnJvbSAnLi4vbGF5ZXItbGlzdC10b29sJztcbmltcG9ydCB7IExheWVyVmlld2VyT3B0aW9ucyB9IGZyb20gJy4uL2xheWVyLXZpZXdlci9sYXllci12aWV3ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IExheWVyQ29udHJvbGxlciB9IGZyb20gJy4uL3NoYXJlZC9sYXllci1jb250cm9sbGVyJztcbmltcG9ydCB0eXBlIHsgQW55TGF5ZXIsIExheWVyR3JvdXAgfSBmcm9tICcuLi9zaGFyZWQvbGF5ZXJzJztcbmltcG9ydCB7XG4gIExpbmtlZFByb3BlcnRpZXMsXG4gIGlzTGF5ZXJMaW5rZWQsXG4gIGlzTGF5ZXJMaW5rZWRUb2dldGhlclxufSBmcm9tICcuLi9zaGFyZWQvbGF5ZXJzL2xpbmtlZCc7XG5pbXBvcnQgeyBpc0Jhc2VMYXllciwgaXNMYXllckdyb3VwLCBpc0xheWVySXRlbSB9IGZyb20gJy4uL3V0aWxzL2xheWVyLnV0aWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWdvLWxheWVyLXZpZXdlci1ib3R0b20tYWN0aW9ucycsXG4gIHRlbXBsYXRlVXJsOiAnLi9sYXllci12aWV3ZXItYm90dG9tLWFjdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9sYXllci12aWV3ZXItYm90dG9tLWFjdGlvbnMuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE5nSWYsXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdEJhZGdlTW9kdWxlLFxuICAgIE1hdE1lbnVNb2R1bGUsXG4gICAgTWF0U2xpZGVyTW9kdWxlLFxuICAgIElnb0xhbmd1YWdlTW9kdWxlLFxuICAgIFBhbmVsQ29tcG9uZW50XG4gIF0sXG4gIHByb3ZpZGVyczogW0xheWVyTGlzdFRvb2xTZXJ2aWNlLCBGb3JtRGlhbG9nU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgTGF5ZXJWaWV3ZXJCb3R0b21BY3Rpb25zQ29tcG9uZW50IHtcbiAgb3JkZXJhYmxlID0gdHJ1ZTtcblxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBtYXA6IE1hcEJhc2U7XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGNvbnRyb2xsZXI6IExheWVyQ29udHJvbGxlcjtcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgc2VhcmNoVGVybTogc3RyaW5nO1xuICBASW5wdXQoKSB2aWV3ZXJPcHRpb25zOiBMYXllclZpZXdlck9wdGlvbnM7XG5cbiAgQE91dHB1dCgpIGxheWVyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGdldCBsYXllcnNGbGF0dGVuZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbGxlci5sYXllcnNGbGF0dGVuZWQ7XG4gIH1cblxuICBnZXQgaGFzTXVsdGlwbGVTZWxlY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbGxlci5zZWxlY3RlZC5sZW5ndGggPiAxO1xuICB9XG5cbiAgZ2V0IHNlbGVjdGVkKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2xsZXIuc2VsZWN0ZWQ7XG4gIH1cblxuICBnZXQgb3BhY2l0eSgpIHtcbiAgICByZXR1cm4gTWF0aC5yb3VuZCh0aGlzLnNlbGVjdGVkWzBdLm9wYWNpdHkgKiAxMDApO1xuICB9XG4gIHNldCBvcGFjaXR5KG9wYWNpdHk6IG51bWJlcikge1xuICAgIHRoaXMuc2VsZWN0ZWRbMF0ub3BhY2l0eSA9IG9wYWNpdHkgLyAxMDA7XG4gIH1cblxuICBnZXQgYWxsU2VsZWN0aW9uVmlzaWJpbGl0eUhpZGRlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sbGVyLnNlbGVjdGVkLmV2ZXJ5KChsYXllcikgPT4gIWxheWVyLnZpc2libGUpO1xuICB9XG5cbiAgZ2V0IGlzU2VsZWN0aW9uUmFpc2FibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbGxlci5zZWxlY3RlZC5ldmVyeSgobGF5ZXIpID0+IHRoaXMuaXNSYWlzYWJsZShsYXllcikpO1xuICB9XG4gIGdldCBpc1NlbGVjdGlvbkxvd2VyYWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sbGVyLnNlbGVjdGVkLmV2ZXJ5KChsYXllcikgPT4gdGhpcy5pc0xvd2VyYWJsZShsYXllcikpO1xuICB9XG5cbiAgZ2V0IGNhblJlbmFtZSgpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMudmlld2VyT3B0aW9ucy5ncm91cC5jYW5SZW5hbWUgfHwgdGhpcy5zZWxlY3RlZC5sZW5ndGggPiAxKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgbGF5ZXIgPSB0aGlzLnNlbGVjdGVkWzBdO1xuICAgIHJldHVybiBpc0xheWVyR3JvdXAobGF5ZXIpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsYXllckxpc3RUb29sU2VydmljZTogTGF5ZXJMaXN0VG9vbFNlcnZpY2UpIHt9XG5cbiAgaXNMYXllckl0ZW0gPSBpc0xheWVySXRlbTtcblxuICBoYW5kbGVSZW5hbWUoKTogdm9pZCB7XG4gICAgY29uc3QgbGF5ZXIgPSB0aGlzLnNlbGVjdGVkWzBdIGFzIExheWVyR3JvdXA7XG4gICAgdGhpcy5sYXllckxpc3RUb29sU2VydmljZS5yZW5hbWVHcm91cChsYXllcikuc3Vic2NyaWJlKChuYW1lKSA9PiB7XG4gICAgICBpZiAoIW5hbWUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbGF5ZXIudGl0bGUgPSBuYW1lO1xuICAgICAgdGhpcy5sYXllckNoYW5nZS5lbWl0KCk7XG4gICAgfSk7XG4gIH1cblxuICBpc0xheWVyc1JlbW92YWJsZShsYXllcnM6IEFueUxheWVyW10pOiBib29sZWFuIHtcbiAgICBpZiAobGF5ZXJzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgcmV0dXJuIHRoaXMuaXNMYXllclJlbW92YWJsZShsYXllcnNbMF0pO1xuICAgIH1cbiAgICByZXR1cm4gbGF5ZXJzPy5ldmVyeSgobCkgPT4gdGhpcy5pc0xheWVyUmVtb3ZhYmxlKGwpKTtcbiAgfVxuXG4gIHJlbW92ZUxheWVycygpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRyb2xsZXIucmVtb3ZlKC4uLnRoaXMuc2VsZWN0ZWQpO1xuICAgIHRoaXMuY29udHJvbGxlci5jbGVhclNlbGVjdGlvbigpO1xuICB9XG5cbiAgaXNFeHRlbnRzVmFsaWQoKTogYm9vbGVhbiB7XG4gICAgbGV0IHZhbGlkID0gZmFsc2U7XG4gICAgY29uc3QgbGF5ZXJzRXh0ZW50ID0gb2xleHRlbnQuY3JlYXRlRW1wdHkoKTtcbiAgICBjb25zdCBtYXhMYXllclpvb21FeHRlbnQgPSB0aGlzLm1hcC52aWV3Q29udHJvbGxlci5tYXhMYXllclpvb21FeHRlbnQ7XG4gICAgaWYgKFxuICAgICAgdGhpcy5zZWxlY3RlZC5zb21lKFxuICAgICAgICAobGF5ZXIpID0+XG4gICAgICAgICAgaXNMYXllckl0ZW0obGF5ZXIpICYmIGxheWVyLm9wdGlvbnMuc2hvd0J1dHRvblpvb21Ub0V4dGVudCA9PT0gZmFsc2VcbiAgICAgIClcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGxheWVyIG9mIHRoaXMuc2VsZWN0ZWQpIHtcbiAgICAgIGNvbnN0IGxheWVyRXh0ZW50ID0gbGF5ZXIub3B0aW9ucy5leHRlbnQ7XG5cbiAgICAgIGlmIChsYXllckV4dGVudCAmJiAhbGF5ZXJFeHRlbnQuaW5jbHVkZXMoSW5maW5pdHkpKSB7XG4gICAgICAgIG9sZXh0ZW50LmV4dGVuZChsYXllcnNFeHRlbnQsIGxheWVyRXh0ZW50KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIW9sZXh0ZW50LmlzRW1wdHkobGF5ZXJzRXh0ZW50KSkge1xuICAgICAgaWYgKG1heExheWVyWm9vbUV4dGVudCkge1xuICAgICAgICB2YWxpZCA9IG9sZXh0ZW50LmNvbnRhaW5zRXh0ZW50KG1heExheWVyWm9vbUV4dGVudCwgbGF5ZXJzRXh0ZW50KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhbGlkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHZhbGlkO1xuICB9XG4gIHpvb21MYXllcnNFeHRlbnRzKCk6IHZvaWQge1xuICAgIGNvbnN0IGxheWVyc0V4dGVudCA9IG9sZXh0ZW50LmNyZWF0ZUVtcHR5KCk7XG5cbiAgICBmb3IgKGNvbnN0IGxheWVyIG9mIHRoaXMuc2VsZWN0ZWQpIHtcbiAgICAgIGNvbnN0IGxheWVyRXh0ZW50ID0gbGF5ZXIub3B0aW9ucy5leHRlbnQ7XG5cbiAgICAgIGlmIChsYXllckV4dGVudCkge1xuICAgICAgICBvbGV4dGVudC5leHRlbmQobGF5ZXJzRXh0ZW50LCBsYXllckV4dGVudCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMubWFwLnZpZXdDb250cm9sbGVyLnpvb21Ub0V4dGVudChcbiAgICAgIGxheWVyc0V4dGVudCBhcyBbbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyXVxuICAgICk7XG4gIH1cblxuICByYWlzZVNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLm1hcC5sYXllckNvbnRyb2xsZXIucmFpc2UoLi4udGhpcy5zZWxlY3RlZCk7XG4gIH1cblxuICBsb3dlclNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLm1hcC5sYXllckNvbnRyb2xsZXIubG93ZXIoLi4udGhpcy5zZWxlY3RlZCk7XG4gIH1cblxuICBjaGFuZ2VPcGFjaXR5KGV2ZW50OiBNYXRTbGlkZXJDaGFuZ2UpOiB2b2lkIHtcbiAgICB0aGlzLm9wYWNpdHkgPSBldmVudC52YWx1ZTtcbiAgfVxuXG4gIHRvZ2dsZVNlbGVjdGlvblZpc2liaWxpdHkoKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZC5mb3JFYWNoKChsYXllcikgPT4ge1xuICAgICAgbGF5ZXIudmlzaWJsZSA9ICFsYXllci52aXNpYmxlO1xuICAgIH0pO1xuICAgIHRoaXMubGF5ZXJDaGFuZ2UuZW1pdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0xvd2VyYWJsZShsYXllcjogQW55TGF5ZXIpOiBib29sZWFuIHtcbiAgICBpZiAoaXNCYXNlTGF5ZXIobGF5ZXIpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IHJlY2lwaWVudCA9IHRoaXMuZ2V0UmVjaXBpZW50T2ZWaXNpYmxlTGF5ZXIobGF5ZXIpO1xuICAgIGNvbnN0IGluZGV4ID0gcmVjaXBpZW50LmZpbmRJbmRleCgobGF5KSA9PiBsYXkuaWQgPT09IGxheWVyLmlkKTtcbiAgICBpZiAoaW5kZXggPj0gcmVjaXBpZW50Lmxlbmd0aCAtIDEpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoaXNMYXllckxpbmtlZChsYXllcikpIHtcbiAgICAgIGNvbnN0IGxheWVyQmVsb3cgPSByZWNpcGllbnRbaW5kZXggKyAxXTtcbiAgICAgIHJldHVybiAhaXNMYXllckxpbmtlZFRvZ2V0aGVyKFxuICAgICAgICBsYXllcixcbiAgICAgICAgbGF5ZXJCZWxvdyxcbiAgICAgICAgdGhpcy5jb250cm9sbGVyLmxheWVyc0ZsYXR0ZW5lZCxcbiAgICAgICAgTGlua2VkUHJvcGVydGllcy5aSU5ERVhcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwcml2YXRlIGlzUmFpc2FibGUobGF5ZXI6IEFueUxheWVyKTogYm9vbGVhbiB7XG4gICAgaWYgKGlzQmFzZUxheWVyKGxheWVyKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCByZWNpcGllbnQgPSB0aGlzLmdldFJlY2lwaWVudE9mVmlzaWJsZUxheWVyKGxheWVyKTtcbiAgICBjb25zdCBpbmRleCA9IHJlY2lwaWVudC5maW5kSW5kZXgoKGxheSkgPT4gbGF5LmlkID09PSBsYXllci5pZCk7XG4gICAgaWYgKGluZGV4IDw9IDApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoaXNMYXllckxpbmtlZChsYXllcikpIHtcbiAgICAgIGNvbnN0IGxheWVyQWJvdmUgPSByZWNpcGllbnRbaW5kZXggLSAxXTtcbiAgICAgIHJldHVybiAhaXNMYXllckxpbmtlZFRvZ2V0aGVyKFxuICAgICAgICBsYXllcixcbiAgICAgICAgbGF5ZXJBYm92ZSxcbiAgICAgICAgdGhpcy5jb250cm9sbGVyLmxheWVyc0ZsYXR0ZW5lZCxcbiAgICAgICAgTGlua2VkUHJvcGVydGllcy5aSU5ERVhcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwcml2YXRlIGdldFJlY2lwaWVudE9mVmlzaWJsZUxheWVyKGxheWVyOiBBbnlMYXllcik6IEFueUxheWVyW10ge1xuICAgIHJldHVybiBbLi4udGhpcy5jb250cm9sbGVyLmdldExheWVyUmVjaXBpZW50KGxheWVyKV0uZmlsdGVyKFxuICAgICAgKGxheWVyKSA9PiBsYXllci5zaG93SW5MYXllckxpc3RcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0xheWVyUmVtb3ZhYmxlKGxheWVyOiBBbnlMYXllcik6IGJvb2xlYW4ge1xuICAgIGlmIChpc0xheWVyR3JvdXAobGF5ZXIpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGxheWVyLm9wdGlvbnMucmVtb3ZhYmxlICE9PSBmYWxzZTtcbiAgfVxufVxuIiwiPGlnby1wYW5lbFxuICBjbGFzcz1cImlnby1sYXllci1hY3Rpb25zLWNvbnRhaW5lclwiXG4gIFt0aXRsZV09XCJcbiAgICBoYXNNdWx0aXBsZVNlbGVjdGlvblxuICAgICAgPyAoJ2lnby5nZW8ubGF5ZXIudG9vbHMnIHwgdHJhbnNsYXRlKVxuICAgICAgOiBzZWxlY3RlZFswXS50aXRsZVxuICBcIlxuPlxuICA8ZGl2IGNsYXNzPVwiaWdvLWxheWVyLWJ1dHRvbi1ncm91cFwiPlxuICAgIDxidXR0b25cbiAgICAgICpuZ0lmPVwiaXNMYXllcnNSZW1vdmFibGUoc2VsZWN0ZWQpXCJcbiAgICAgIGNsYXNzPVwiZGVsZXRlLWJ1dHRvblwiXG4gICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgIGNvbG9yPVwid2FyblwiXG4gICAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxuICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgICBbbWF0VG9vbHRpcF09XCJcbiAgICAgICAgKGhhc011bHRpcGxlU2VsZWN0aW9uXG4gICAgICAgICAgPyBpc0xheWVyc1JlbW92YWJsZShzZWxlY3RlZClcbiAgICAgICAgICAgID8gKCdpZ28uZ2VvLmxheWVyLnJlbW92ZVNlbGVjdGVkTGF5ZXJzJyB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICAgIDogKCdpZ28uZ2VvLmxheWVyLnJlbW92ZVNlbGVjdGVkTGF5ZXJzUmVzdHJpY3Rpb24nIHwgdHJhbnNsYXRlKVxuICAgICAgICAgIDogJ2lnby5nZW8ubGF5ZXIucmVtb3ZlTGF5ZXInXG4gICAgICAgICkgfCB0cmFuc2xhdGVcbiAgICAgIFwiXG4gICAgICAoY2xpY2spPVwicmVtb3ZlTGF5ZXJzKClcIlxuICAgID5cbiAgICAgIDxtYXQtaWNvblxuICAgICAgICBhcmlhLWhpZGRlbj1cImZhbHNlXCJcbiAgICAgICAgW21hdEJhZGdlXT1cIichJ1wiXG4gICAgICAgIG1hdEJhZGdlQ29sb3I9XCJ3YXJuXCJcbiAgICAgICAgbWF0QmFkZ2VTaXplPVwibWVkaXVtXCJcbiAgICAgICAgW21hdEJhZGdlSGlkZGVuXT1cIiFoYXNNdWx0aXBsZVNlbGVjdGlvbiB8fCBpc0xheWVyc1JlbW92YWJsZShzZWxlY3RlZClcIlxuICAgICAgICA+ZGVsZXRlPC9tYXQtaWNvblxuICAgICAgPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGJ1dHRvblxuICAgICAgKm5nSWY9XCJoYXNNdWx0aXBsZVNlbGVjdGlvblwiXG4gICAgICBjbGFzcz1cImV5ZS1idXR0b25cIlxuICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcbiAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICAgICAgW2Rpc2FibGVkXT1cInNlbGVjdGVkLmxlbmd0aCA9PT0gMFwiXG4gICAgICBbbWF0VG9vbHRpcF09XCJcbiAgICAgICAgYWxsU2VsZWN0aW9uVmlzaWJpbGl0eUhpZGRlblxuICAgICAgICAgID8gKCdpZ28uZ2VvLmxheWVyLnNob3dTZWxlY3RlZExheWVycycgfCB0cmFuc2xhdGUpXG4gICAgICAgICAgOiAoJ2lnby5nZW8ubGF5ZXIuaGlkZVNlbGVjdGVkTGF5ZXJzJyB8IHRyYW5zbGF0ZSlcbiAgICAgIFwiXG4gICAgICAoY2xpY2spPVwidG9nZ2xlU2VsZWN0aW9uVmlzaWJpbGl0eSgpXCJcbiAgICA+XG4gICAgICA8bWF0LWljb24+e3tcbiAgICAgICAgYWxsU2VsZWN0aW9uVmlzaWJpbGl0eUhpZGRlbiA/ICd2aXNpYmlsaXR5X29mZicgOiAndmlzaWJpbGl0eSdcbiAgICAgIH19PC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiZG93bi1idXR0b25cIlxuICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcbiAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICAgICAgW21hdFRvb2x0aXBdPVwiXG4gICAgICAgIHNlYXJjaFRlcm1cbiAgICAgICAgICA/ICgnaWdvLmdlby5sYXllci5maWx0ZXJMb3dlckxheWVyJyB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICA6ICgnaWdvLmdlby5sYXllci5sb3dlckxheWVyJyB8IHRyYW5zbGF0ZSlcbiAgICAgIFwiXG4gICAgICBbZGlzYWJsZWRdPVwiIWlzU2VsZWN0aW9uTG93ZXJhYmxlXCJcbiAgICAgIChjbGljayk9XCJsb3dlclNlbGVjdGlvbigpXCJcbiAgICA+XG4gICAgICA8bWF0LWljb25cbiAgICAgICAgYXJpYS1oaWRkZW49XCJmYWxzZVwiXG4gICAgICAgIFttYXRCYWRnZV09XCJzZWFyY2hUZXJtID8gJyEnIDogJydcIlxuICAgICAgICBtYXRCYWRnZUNvbG9yPVwid2FyblwiXG4gICAgICAgIG1hdEJhZGdlU2l6ZT1cIm1lZGl1bVwiXG4gICAgICAgIFttYXRCYWRnZUhpZGRlbl09XCIhaXNTZWxlY3Rpb25Mb3dlcmFibGVcIlxuICAgICAgICA+YXJyb3dfZG93bndhcmQ8L21hdC1pY29uXG4gICAgICA+XG4gICAgPC9idXR0b24+XG5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cInVwLWJ1dHRvblwiXG4gICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxuICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgICBbbWF0VG9vbHRpcF09XCJcbiAgICAgICAgc2VhcmNoVGVybVxuICAgICAgICAgID8gKCdpZ28uZ2VvLmxheWVyLmZpbHRlclJhaXNlTGF5ZXInIHwgdHJhbnNsYXRlKVxuICAgICAgICAgIDogKCdpZ28uZ2VvLmxheWVyLnJhaXNlTGF5ZXInIHwgdHJhbnNsYXRlKVxuICAgICAgXCJcbiAgICAgIFtkaXNhYmxlZF09XCIhaXNTZWxlY3Rpb25SYWlzYWJsZVwiXG4gICAgICAoY2xpY2spPVwicmFpc2VTZWxlY3Rpb24oKVwiXG4gICAgPlxuICAgICAgPG1hdC1pY29uXG4gICAgICAgIGFyaWEtaGlkZGVuPVwiZmFsc2VcIlxuICAgICAgICBbbWF0QmFkZ2VdPVwic2VhcmNoVGVybSA/ICchJyA6ICcnXCJcbiAgICAgICAgbWF0QmFkZ2VDb2xvcj1cIndhcm5cIlxuICAgICAgICBtYXRCYWRnZVNpemU9XCJtZWRpdW1cIlxuICAgICAgICBbbWF0QmFkZ2VIaWRkZW5dPVwiIWlzU2VsZWN0aW9uUmFpc2FibGVcIlxuICAgICAgICA+YXJyb3dfdXB3YXJkPC9tYXQtaWNvblxuICAgICAgPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRyb2xsZXIuc2VsZWN0ZWQubGVuZ3RoID09PSAxXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwib3BhY2l0eS1idXR0b25cIlxuICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcbiAgICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJvcGFjaXR5TWVudVwiXG4gICAgICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLmxheWVyLm9wYWNpdHknIHwgdHJhbnNsYXRlXCJcbiAgICAgID5cbiAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgYXJpYS1oaWRkZW49XCJmYWxzZVwiXG4gICAgICAgICAgW21hdEJhZGdlXT1cIm9wYWNpdHkgPT09IDEwMCA/IG51bGwgOiBvcGFjaXR5XCJcbiAgICAgICAgICBtYXRCYWRnZUNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgbWF0QmFkZ2VTaXplPVwibWVkaXVtXCJcbiAgICAgICAgICA+b3BhY2l0eTwvbWF0LWljb25cbiAgICAgICAgPlxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDxtYXQtbWVudSAjb3BhY2l0eU1lbnU9XCJtYXRNZW51XCIgY2xhc3M9XCJwYW5lbC1vcGFjaXR5LW1lbnVcIj5cbiAgICAgICAgPG1hdC1zbGlkZXJcbiAgICAgICAgICBpZD1cIm9wYWNpdHktc2xpZGVyXCJcbiAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgIGRpc2NyZXRlXG4gICAgICAgICAgc3RlcD1cIjVcIlxuICAgICAgICAgIFttaW5dPVwiMFwiXG4gICAgICAgICAgW21heF09XCIxMDBcIlxuICAgICAgICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLmxheWVyLm9wYWNpdHknIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAgICAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxuICAgICAgICAgICNuZ1NsaWRlclxuICAgICAgICAgID48aW5wdXRcbiAgICAgICAgICAgIG1hdFNsaWRlclRodW1iXG4gICAgICAgICAgICBbdmFsdWVdPVwib3BhY2l0eVwiXG4gICAgICAgICAgICAoaW5wdXQpPVwiXG4gICAgICAgICAgICAgIGNoYW5nZU9wYWNpdHkoe1xuICAgICAgICAgICAgICAgIHNvdXJjZTogbmdTbGlkZXJUaHVtYixcbiAgICAgICAgICAgICAgICBwYXJlbnQ6IG5nU2xpZGVyLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBuZ1NsaWRlclRodW1iLnZhbHVlXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgI25nU2xpZGVyVGh1bWI9XCJtYXRTbGlkZXJUaHVtYlwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9tYXQtc2xpZGVyPlxuICAgICAgPC9tYXQtbWVudT5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxidXR0b25cbiAgICAgICpuZ0lmPVwiaXNFeHRlbnRzVmFsaWQoKVwiXG4gICAgICBjbGFzcz1cInpvb21MYXllci1idXR0b25cIlxuICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcbiAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICAgICAgW21hdFRvb2x0aXBdPVwiXG4gICAgICAgIChoYXNNdWx0aXBsZVNlbGVjdGlvblxuICAgICAgICAgID8gJ2lnby5nZW8ubGF5ZXIuem9vbUxheWVycydcbiAgICAgICAgICA6ICdpZ28uZ2VvLmxheWVyLnpvb21MYXllcidcbiAgICAgICAgKSB8IHRyYW5zbGF0ZVxuICAgICAgXCJcbiAgICAgIChjbGljayk9XCJ6b29tTGF5ZXJzRXh0ZW50cygpXCJcbiAgICA+XG4gICAgICA8bWF0LWljb24gbWF0QmFkZ2VDb2xvcj1cInByaW1hcnlcIiBtYXRCYWRnZVNpemU9XCJtZWRpdW1cIlxuICAgICAgICA+ZnJhbWVfaW5zcGVjdDwvbWF0LWljb25cbiAgICAgID5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b25cbiAgICAgICpuZ0lmPVwiY2FuUmVuYW1lXCJcbiAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXG4gICAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLmxheWVyLmdyb3VwLnJlbmFtZScgfCB0cmFuc2xhdGVcIlxuICAgICAgKGNsaWNrKT1cImhhbmRsZVJlbmFtZSgpXCJcbiAgICA+XG4gICAgICA8bWF0LWljb24+ZWRpdDwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9pZ28tcGFuZWw+XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './layer-visibility-button.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9sYXllci9sYXllci12aXNpYmlsaXR5LWJ1dHRvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFDQUFxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9sYXllci12aXNpYmlsaXR5LWJ1dHRvbi5jb21wb25lbnQnO1xuIl19
@@ -0,0 +1,83 @@
1
+ import { NgClass } from '@angular/common';
2
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';
3
+ import { MatBadgeModule } from '@angular/material/badge';
4
+ import { MatButtonModule } from '@angular/material/button';
5
+ import { MatIconModule } from '@angular/material/icon';
6
+ import { MatTooltipModule } from '@angular/material/tooltip';
7
+ import { IgoIconComponent } from '@igo2/common/icon';
8
+ import { IgoLanguageModule } from '@igo2/core/language';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@angular/material/badge";
11
+ import * as i2 from "@angular/material/button";
12
+ import * as i3 from "@angular/material/tooltip";
13
+ import * as i4 from "@ngx-translate/core";
14
+ const EYE_CLOSE_SVG = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><title>eye-closed</title><path d="M12 17.5C8.2 17.5 4.8 15.4 3.2 12H1C2.7 16.4 7 19.5 12 19.5S21.3 16.4 23 12H20.8C19.2 15.4 15.8 17.5 12 17.5Z" /></svg>`;
15
+ export class LayerVisibilityButtonComponent {
16
+ cdr;
17
+ eyeClosedSvg = {
18
+ name: 'eye-closed',
19
+ svg: EYE_CLOSE_SVG
20
+ };
21
+ hiddenByParent;
22
+ visible;
23
+ layer;
24
+ tooltip;
25
+ disabled;
26
+ showQueryBadge;
27
+ inResolutionsRange;
28
+ get defaultTooltip() {
29
+ return !this.layer.isInResolutionsRange
30
+ ? 'igo.geo.layer.notInResolution'
31
+ : this.layer.visible && this.disabled
32
+ ? 'igo.geo.layer.group.hideChildren'
33
+ : this.layer.visible
34
+ ? 'igo.geo.layer.hideLayer'
35
+ : 'igo.geo.layer.showLayer';
36
+ }
37
+ visibilityChange = new EventEmitter();
38
+ constructor(cdr) {
39
+ this.cdr = cdr;
40
+ }
41
+ ngOnInit() {
42
+ this.layer.parent?.displayed$.subscribe((displayed) => {
43
+ this.hiddenByParent = !displayed;
44
+ this.cdr.markForCheck();
45
+ });
46
+ this.layer.visible$.subscribe((visible) => {
47
+ this.visible = visible;
48
+ this.cdr.markForCheck();
49
+ });
50
+ }
51
+ toggle(event) {
52
+ this.layer.visible = !this.layer.visible;
53
+ this.visibilityChange.emit(event);
54
+ }
55
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LayerVisibilityButtonComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
56
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: LayerVisibilityButtonComponent, isStandalone: true, selector: "igo-layer-visibility-button", inputs: { layer: "layer", tooltip: "tooltip", disabled: "disabled", showQueryBadge: "showQueryBadge", inResolutionsRange: "inResolutionsRange" }, outputs: { visibilityChange: "visibilityChange" }, ngImport: i0, template: "<button\n mat-icon-button\n [ngClass]=\"{\n disabled: disabled,\n 'out-of-range': !inResolutionsRange,\n 'visibility-hidden': !visible\n }\"\n [color]=\"visible ? 'primary' : 'default'\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"tooltip ?? defaultTooltip | translate\"\n (click)=\"toggle($event)\"\n>\n <igo-icon\n matBadge=\"?\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\"\n matBadgePosition=\"after\"\n [matBadgeHidden]=\"!showQueryBadge\"\n [icon]=\"\n visible\n ? hiddenByParent\n ? eyeClosedSvg\n : 'visibility'\n : 'visibility_off'\n \"\n iconPositionEnd\n />\n</button>\n", styles: [":host .disabled.out-of-range,:host .visibility-hidden.out-of-range{opacity:.54}mat-icon[matBadge] ::ng-deep .mat-badge-content{font-size:12px}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatBadgeModule }, { kind: "directive", type: i1.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "component", type: IgoIconComponent, selector: "igo-icon", inputs: ["icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
57
+ }
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LayerVisibilityButtonComponent, decorators: [{
59
+ type: Component,
60
+ args: [{ selector: 'igo-layer-visibility-button', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
61
+ NgClass,
62
+ MatBadgeModule,
63
+ MatButtonModule,
64
+ MatIconModule,
65
+ MatTooltipModule,
66
+ IgoLanguageModule,
67
+ IgoIconComponent
68
+ ], template: "<button\n mat-icon-button\n [ngClass]=\"{\n disabled: disabled,\n 'out-of-range': !inResolutionsRange,\n 'visibility-hidden': !visible\n }\"\n [color]=\"visible ? 'primary' : 'default'\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"tooltip ?? defaultTooltip | translate\"\n (click)=\"toggle($event)\"\n>\n <igo-icon\n matBadge=\"?\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\"\n matBadgePosition=\"after\"\n [matBadgeHidden]=\"!showQueryBadge\"\n [icon]=\"\n visible\n ? hiddenByParent\n ? eyeClosedSvg\n : 'visibility'\n : 'visibility_off'\n \"\n iconPositionEnd\n />\n</button>\n", styles: [":host .disabled.out-of-range,:host .visibility-hidden.out-of-range{opacity:.54}mat-icon[matBadge] ::ng-deep .mat-badge-content{font-size:12px}\n"] }]
69
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { layer: [{
70
+ type: Input,
71
+ args: [{ required: true }]
72
+ }], tooltip: [{
73
+ type: Input
74
+ }], disabled: [{
75
+ type: Input
76
+ }], showQueryBadge: [{
77
+ type: Input
78
+ }], inResolutionsRange: [{
79
+ type: Input
80
+ }], visibilityChange: [{
81
+ type: Output
82
+ }] } });
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXItdmlzaWJpbGl0eS1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbGF5ZXIvbGF5ZXItdmlzaWJpbGl0eS1idXR0b24vbGF5ZXItdmlzaWJpbGl0eS1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbGF5ZXIvbGF5ZXItdmlzaWJpbGl0eS1idXR0b24vbGF5ZXItdmlzaWJpbGl0eS1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU3RCxPQUFPLEVBQVcsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7O0FBSXhELE1BQU0sYUFBYSxHQUFHLHVOQUF1TixDQUFDO0FBa0I5TyxNQUFNLE9BQU8sOEJBQThCO0lBMEJyQjtJQXpCcEIsWUFBWSxHQUFZO1FBQ3RCLElBQUksRUFBRSxZQUFZO1FBQ2xCLEdBQUcsRUFBRSxhQUFhO0tBQ25CLENBQUM7SUFDRixjQUFjLENBQVc7SUFDekIsT0FBTyxDQUFVO0lBRVUsS0FBSyxDQUFXO0lBQ2xDLE9BQU8sQ0FBUztJQUNoQixRQUFRLENBQVU7SUFDbEIsY0FBYyxDQUFVO0lBQ3hCLGtCQUFrQixDQUFVO0lBRXJDLElBQUksY0FBYztRQUNoQixPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0I7WUFDckMsQ0FBQyxDQUFDLCtCQUErQjtZQUNqQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVE7Z0JBQ25DLENBQUMsQ0FBQyxrQ0FBa0M7Z0JBQ3BDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU87b0JBQ2xCLENBQUMsQ0FBQyx5QkFBeUI7b0JBQzNCLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQztJQUNwQyxDQUFDO0lBRVMsZ0JBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztJQUV2RCxZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtJQUFHLENBQUM7SUFFOUMsUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNwRCxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsU0FBUyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUN4QyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztZQUN2QixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFZO1FBQ2pCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDekMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO3dHQTNDVSw4QkFBOEI7NEZBQTlCLDhCQUE4Qiw0UkN0QzNDLDhyQkE2QkEsME1EQUksT0FBTyxtRkFDUCxjQUFjLDJQQUNkLGVBQWUsMklBQ2YsYUFBYSw4QkFDYixnQkFBZ0IsNFRBQ2hCLGlCQUFpQiw0RkFDakIsZ0JBQWdCOzs0RkFHUCw4QkFBOEI7a0JBaEIxQyxTQUFTOytCQUNFLDZCQUE2QixtQkFHdEIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsT0FBTzt3QkFDUCxjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLGlCQUFpQjt3QkFDakIsZ0JBQWdCO3FCQUNqQjtzRkFVMEIsS0FBSztzQkFBL0IsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ2hCLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQVlJLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0QmFkZ2VNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9iYWRnZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuXG5pbXBvcnQgeyBJY29uU3ZnLCBJZ29JY29uQ29tcG9uZW50IH0gZnJvbSAnQGlnbzIvY29tbW9uL2ljb24nO1xuaW1wb3J0IHsgSWdvTGFuZ3VhZ2VNb2R1bGUgfSBmcm9tICdAaWdvMi9jb3JlL2xhbmd1YWdlJztcblxuaW1wb3J0IHsgQW55TGF5ZXIgfSBmcm9tICcuLi9zaGFyZWQvbGF5ZXJzL2FueS1sYXllcic7XG5cbmNvbnN0IEVZRV9DTE9TRV9TVkcgPSBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPjx0aXRsZT5leWUtY2xvc2VkPC90aXRsZT48cGF0aCBkPVwiTTEyIDE3LjVDOC4yIDE3LjUgNC44IDE1LjQgMy4yIDEySDFDMi43IDE2LjQgNyAxOS41IDEyIDE5LjVTMjEuMyAxNi40IDIzIDEySDIwLjhDMTkuMiAxNS40IDE1LjggMTcuNSAxMiAxNy41WlwiIC8+PC9zdmc+YDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWdvLWxheWVyLXZpc2liaWxpdHktYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xheWVyLXZpc2liaWxpdHktYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbGF5ZXItdmlzaWJpbGl0eS1idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0NsYXNzLFxuICAgIE1hdEJhZGdlTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgSWdvTGFuZ3VhZ2VNb2R1bGUsXG4gICAgSWdvSWNvbkNvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIExheWVyVmlzaWJpbGl0eUJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGV5ZUNsb3NlZFN2ZzogSWNvblN2ZyA9IHtcbiAgICBuYW1lOiAnZXllLWNsb3NlZCcsXG4gICAgc3ZnOiBFWUVfQ0xPU0VfU1ZHXG4gIH07XG4gIGhpZGRlbkJ5UGFyZW50PzogYm9vbGVhbjtcbiAgdmlzaWJsZTogYm9vbGVhbjtcblxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBsYXllcjogQW55TGF5ZXI7XG4gIEBJbnB1dCgpIHRvb2x0aXA6IHN0cmluZztcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHNob3dRdWVyeUJhZGdlOiBib29sZWFuO1xuICBASW5wdXQoKSBpblJlc29sdXRpb25zUmFuZ2U6IGJvb2xlYW47XG5cbiAgZ2V0IGRlZmF1bHRUb29sdGlwKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICF0aGlzLmxheWVyLmlzSW5SZXNvbHV0aW9uc1JhbmdlXG4gICAgICA/ICdpZ28uZ2VvLmxheWVyLm5vdEluUmVzb2x1dGlvbidcbiAgICAgIDogdGhpcy5sYXllci52aXNpYmxlICYmIHRoaXMuZGlzYWJsZWRcbiAgICAgICAgPyAnaWdvLmdlby5sYXllci5ncm91cC5oaWRlQ2hpbGRyZW4nXG4gICAgICAgIDogdGhpcy5sYXllci52aXNpYmxlXG4gICAgICAgICAgPyAnaWdvLmdlby5sYXllci5oaWRlTGF5ZXInXG4gICAgICAgICAgOiAnaWdvLmdlby5sYXllci5zaG93TGF5ZXInO1xuICB9XG5cbiAgQE91dHB1dCgpIHZpc2liaWxpdHlDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmxheWVyLnBhcmVudD8uZGlzcGxheWVkJC5zdWJzY3JpYmUoKGRpc3BsYXllZCkgPT4ge1xuICAgICAgdGhpcy5oaWRkZW5CeVBhcmVudCA9ICFkaXNwbGF5ZWQ7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcblxuICAgIHRoaXMubGF5ZXIudmlzaWJsZSQuc3Vic2NyaWJlKCh2aXNpYmxlKSA9PiB7XG4gICAgICB0aGlzLnZpc2libGUgPSB2aXNpYmxlO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gIH1cblxuICB0b2dnbGUoZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5sYXllci52aXNpYmxlID0gIXRoaXMubGF5ZXIudmlzaWJsZTtcbiAgICB0aGlzLnZpc2liaWxpdHlDaGFuZ2UuZW1pdChldmVudCk7XG4gIH1cbn1cbiIsIjxidXR0b25cbiAgbWF0LWljb24tYnV0dG9uXG4gIFtuZ0NsYXNzXT1cIntcbiAgICBkaXNhYmxlZDogZGlzYWJsZWQsXG4gICAgJ291dC1vZi1yYW5nZSc6ICFpblJlc29sdXRpb25zUmFuZ2UsXG4gICAgJ3Zpc2liaWxpdHktaGlkZGVuJzogIXZpc2libGVcbiAgfVwiXG4gIFtjb2xvcl09XCJ2aXNpYmxlID8gJ3ByaW1hcnknIDogJ2RlZmF1bHQnXCJcbiAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcbiAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gIFttYXRUb29sdGlwXT1cInRvb2x0aXAgPz8gZGVmYXVsdFRvb2x0aXAgfCB0cmFuc2xhdGVcIlxuICAoY2xpY2spPVwidG9nZ2xlKCRldmVudClcIlxuPlxuICA8aWdvLWljb25cbiAgICBtYXRCYWRnZT1cIj9cIlxuICAgIG1hdEJhZGdlQ29sb3I9XCJhY2NlbnRcIlxuICAgIG1hdEJhZGdlU2l6ZT1cInNtYWxsXCJcbiAgICBtYXRCYWRnZVBvc2l0aW9uPVwiYWZ0ZXJcIlxuICAgIFttYXRCYWRnZUhpZGRlbl09XCIhc2hvd1F1ZXJ5QmFkZ2VcIlxuICAgIFtpY29uXT1cIlxuICAgICAgdmlzaWJsZVxuICAgICAgICA/IGhpZGRlbkJ5UGFyZW50XG4gICAgICAgICAgPyBleWVDbG9zZWRTdmdcbiAgICAgICAgICA6ICd2aXNpYmlsaXR5J1xuICAgICAgICA6ICd2aXNpYmlsaXR5X29mZidcbiAgICBcIlxuICAgIGljb25Qb3NpdGlvbkVuZFxuICAvPlxuPC9idXR0b24+XG4iXX0=
@@ -0,0 +1,107 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { FormDialogService } from '@igo2/common/form';
3
+ import { StyleService } from '../style/style-service/style.service';
4
+ import { LayerGroupComponent } from './layer-group/layer-group.component';
5
+ import { LayerItemComponent } from './layer-item/layer-item.component';
6
+ import { LayerLegendItemComponent } from './layer-legend-item/layer-legend-item.component';
7
+ import { LayerLegendListBindingDirective } from './layer-legend-list/layer-legend-list-binding.directive';
8
+ import { LayerLegendListComponent } from './layer-legend-list/layer-legend-list.component';
9
+ import { LayerLegendComponent } from './layer-legend/layer-legend.component';
10
+ import { LayerListToolComponent } from './layer-list-tool/layer-list-tool.component';
11
+ import { LayerListToolService } from './layer-list-tool/layer-list-tool.service';
12
+ import { LayerListComponent } from './layer-list/layer-list.component';
13
+ import { LayerSearchComponent } from './layer-search/layer-search.component';
14
+ import { LayerUnavailableListComponent } from './layer-unavailable/layer-unavailable-list/layer-unavailable-list.component';
15
+ import { LayerUnavailableComponent } from './layer-unavailable/layer-unavailable.component';
16
+ import { LayerViewerBottomActionsComponent } from './layer-viewer-bottom-actions/layer-viewer-bottom-actions.component';
17
+ import { LayerViewerComponent } from './layer-viewer/layer-viewer.component';
18
+ import { LayerVisibilityButtonComponent } from './layer-visibility-button/layer-visibility-button.component';
19
+ import { LayerService } from './shared/layer.service';
20
+ import { TrackFeatureButtonComponent } from './track-feature-button/track-feature-button.component';
21
+ import * as i0 from "@angular/core";
22
+ export const LAYER_DIRECTIVES = [
23
+ LayerItemComponent,
24
+ LayerLegendItemComponent,
25
+ LayerLegendComponent,
26
+ LayerListComponent,
27
+ LayerListToolComponent,
28
+ LayerLegendListComponent,
29
+ LayerLegendListBindingDirective,
30
+ TrackFeatureButtonComponent,
31
+ LayerGroupComponent,
32
+ LayerViewerComponent,
33
+ LayerUnavailableComponent,
34
+ LayerVisibilityButtonComponent,
35
+ LayerSearchComponent,
36
+ LayerViewerBottomActionsComponent,
37
+ LayerUnavailableListComponent
38
+ ];
39
+ /**
40
+ * @deprecated import the components/directives directly or LAYER_DIRECTIVES for the set
41
+ */
42
+ export class IgoLayerModule {
43
+ static forRoot() {
44
+ return {
45
+ ngModule: IgoLayerModule,
46
+ providers: [
47
+ LayerService,
48
+ StyleService,
49
+ FormDialogService,
50
+ LayerListToolService
51
+ ]
52
+ };
53
+ }
54
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoLayerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
55
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: IgoLayerModule, imports: [LayerItemComponent,
56
+ LayerLegendItemComponent,
57
+ LayerLegendComponent,
58
+ LayerListComponent,
59
+ LayerListToolComponent,
60
+ LayerLegendListComponent,
61
+ LayerLegendListBindingDirective,
62
+ TrackFeatureButtonComponent,
63
+ LayerGroupComponent,
64
+ LayerViewerComponent,
65
+ LayerUnavailableComponent,
66
+ LayerVisibilityButtonComponent,
67
+ LayerSearchComponent,
68
+ LayerViewerBottomActionsComponent,
69
+ LayerUnavailableListComponent], exports: [LayerItemComponent,
70
+ LayerLegendItemComponent,
71
+ LayerLegendComponent,
72
+ LayerListComponent,
73
+ LayerListToolComponent,
74
+ LayerLegendListComponent,
75
+ LayerLegendListBindingDirective,
76
+ TrackFeatureButtonComponent,
77
+ LayerGroupComponent,
78
+ LayerViewerComponent,
79
+ LayerUnavailableComponent,
80
+ LayerVisibilityButtonComponent,
81
+ LayerSearchComponent,
82
+ LayerViewerBottomActionsComponent,
83
+ LayerUnavailableListComponent] });
84
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoLayerModule, providers: [FormDialogService], imports: [LayerItemComponent,
85
+ LayerLegendItemComponent,
86
+ LayerLegendComponent,
87
+ LayerListComponent,
88
+ LayerListToolComponent,
89
+ LayerLegendListComponent,
90
+ TrackFeatureButtonComponent,
91
+ LayerGroupComponent,
92
+ LayerViewerComponent,
93
+ LayerUnavailableComponent,
94
+ LayerVisibilityButtonComponent,
95
+ LayerSearchComponent,
96
+ LayerViewerBottomActionsComponent,
97
+ LayerUnavailableListComponent] });
98
+ }
99
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoLayerModule, decorators: [{
100
+ type: NgModule,
101
+ args: [{
102
+ imports: [...LAYER_DIRECTIVES],
103
+ exports: [...LAYER_DIRECTIVES],
104
+ providers: [FormDialogService]
105
+ }]
106
+ }] });
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbGF5ZXIvbGF5ZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXRELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUMzRixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUMzRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNyRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNqRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw2RUFBNkUsQ0FBQztBQUM1SCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxxRUFBcUUsQ0FBQztBQUN4SCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUM3RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sdURBQXVELENBQUM7O0FBRXBHLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzlCLGtCQUFrQjtJQUNsQix3QkFBd0I7SUFDeEIsb0JBQW9CO0lBQ3BCLGtCQUFrQjtJQUNsQixzQkFBc0I7SUFDdEIsd0JBQXdCO0lBQ3hCLCtCQUErQjtJQUMvQiwyQkFBMkI7SUFDM0IsbUJBQW1CO0lBQ25CLG9CQUFvQjtJQUNwQix5QkFBeUI7SUFDekIsOEJBQThCO0lBQzlCLG9CQUFvQjtJQUNwQixpQ0FBaUM7SUFDakMsNkJBQTZCO0NBQ3JCLENBQUM7QUFFWDs7R0FFRztBQU1ILE1BQU0sT0FBTyxjQUFjO0lBQ3pCLE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTztZQUNMLFFBQVEsRUFBRSxjQUFjO1lBQ3hCLFNBQVMsRUFBRTtnQkFDVCxZQUFZO2dCQUNaLFlBQVk7Z0JBQ1osaUJBQWlCO2dCQUNqQixvQkFBb0I7YUFDckI7U0FDRixDQUFDO0lBQ0osQ0FBQzt3R0FYVSxjQUFjO3lHQUFkLGNBQWMsWUF6QnpCLGtCQUFrQjtZQUNsQix3QkFBd0I7WUFDeEIsb0JBQW9CO1lBQ3BCLGtCQUFrQjtZQUNsQixzQkFBc0I7WUFDdEIsd0JBQXdCO1lBQ3hCLCtCQUErQjtZQUMvQiwyQkFBMkI7WUFDM0IsbUJBQW1CO1lBQ25CLG9CQUFvQjtZQUNwQix5QkFBeUI7WUFDekIsOEJBQThCO1lBQzlCLG9CQUFvQjtZQUNwQixpQ0FBaUM7WUFDakMsNkJBQTZCLGFBZDdCLGtCQUFrQjtZQUNsQix3QkFBd0I7WUFDeEIsb0JBQW9CO1lBQ3BCLGtCQUFrQjtZQUNsQixzQkFBc0I7WUFDdEIsd0JBQXdCO1lBQ3hCLCtCQUErQjtZQUMvQiwyQkFBMkI7WUFDM0IsbUJBQW1CO1lBQ25CLG9CQUFvQjtZQUNwQix5QkFBeUI7WUFDekIsOEJBQThCO1lBQzlCLG9CQUFvQjtZQUNwQixpQ0FBaUM7WUFDakMsNkJBQTZCO3lHQVdsQixjQUFjLGFBRmQsQ0FBQyxpQkFBaUIsQ0FBQyxZQXZCOUIsa0JBQWtCO1lBQ2xCLHdCQUF3QjtZQUN4QixvQkFBb0I7WUFDcEIsa0JBQWtCO1lBQ2xCLHNCQUFzQjtZQUN0Qix3QkFBd0I7WUFFeEIsMkJBQTJCO1lBQzNCLG1CQUFtQjtZQUNuQixvQkFBb0I7WUFDcEIseUJBQXlCO1lBQ3pCLDhCQUE4QjtZQUM5QixvQkFBb0I7WUFDcEIsaUNBQWlDO1lBQ2pDLDZCQUE2Qjs7NEZBV2xCLGNBQWM7a0JBTDFCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQztvQkFDOUIsT0FBTyxFQUFFLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQztvQkFDOUIsU0FBUyxFQUFFLENBQUMsaUJBQWlCLENBQUM7aUJBQy9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRm9ybURpYWxvZ1NlcnZpY2UgfSBmcm9tICdAaWdvMi9jb21tb24vZm9ybSc7XG5cbmltcG9ydCB7IFN0eWxlU2VydmljZSB9IGZyb20gJy4uL3N0eWxlL3N0eWxlLXNlcnZpY2Uvc3R5bGUuc2VydmljZSc7XG5pbXBvcnQgeyBMYXllckdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9sYXllci1ncm91cC9sYXllci1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGF5ZXJJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9sYXllci1pdGVtL2xheWVyLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IExheWVyTGVnZW5kSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vbGF5ZXItbGVnZW5kLWl0ZW0vbGF5ZXItbGVnZW5kLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IExheWVyTGVnZW5kTGlzdEJpbmRpbmdEaXJlY3RpdmUgfSBmcm9tICcuL2xheWVyLWxlZ2VuZC1saXN0L2xheWVyLWxlZ2VuZC1saXN0LWJpbmRpbmcuZGlyZWN0aXZlJztcbmltcG9ydCB7IExheWVyTGVnZW5kTGlzdENvbXBvbmVudCB9IGZyb20gJy4vbGF5ZXItbGVnZW5kLWxpc3QvbGF5ZXItbGVnZW5kLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IExheWVyTGVnZW5kQ29tcG9uZW50IH0gZnJvbSAnLi9sYXllci1sZWdlbmQvbGF5ZXItbGVnZW5kLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMYXllckxpc3RUb29sQ29tcG9uZW50IH0gZnJvbSAnLi9sYXllci1saXN0LXRvb2wvbGF5ZXItbGlzdC10b29sLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMYXllckxpc3RUb29sU2VydmljZSB9IGZyb20gJy4vbGF5ZXItbGlzdC10b29sL2xheWVyLWxpc3QtdG9vbC5zZXJ2aWNlJztcbmltcG9ydCB7IExheWVyTGlzdENvbXBvbmVudCB9IGZyb20gJy4vbGF5ZXItbGlzdC9sYXllci1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMYXllclNlYXJjaENvbXBvbmVudCB9IGZyb20gJy4vbGF5ZXItc2VhcmNoL2xheWVyLXNlYXJjaC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGF5ZXJVbmF2YWlsYWJsZUxpc3RDb21wb25lbnQgfSBmcm9tICcuL2xheWVyLXVuYXZhaWxhYmxlL2xheWVyLXVuYXZhaWxhYmxlLWxpc3QvbGF5ZXItdW5hdmFpbGFibGUtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGF5ZXJVbmF2YWlsYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vbGF5ZXItdW5hdmFpbGFibGUvbGF5ZXItdW5hdmFpbGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IExheWVyVmlld2VyQm90dG9tQWN0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4vbGF5ZXItdmlld2VyLWJvdHRvbS1hY3Rpb25zL2xheWVyLXZpZXdlci1ib3R0b20tYWN0aW9ucy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGF5ZXJWaWV3ZXJDb21wb25lbnQgfSBmcm9tICcuL2xheWVyLXZpZXdlci9sYXllci12aWV3ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IExheWVyVmlzaWJpbGl0eUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vbGF5ZXItdmlzaWJpbGl0eS1idXR0b24vbGF5ZXItdmlzaWJpbGl0eS1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IExheWVyU2VydmljZSB9IGZyb20gJy4vc2hhcmVkL2xheWVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgVHJhY2tGZWF0dXJlQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi90cmFjay1mZWF0dXJlLWJ1dHRvbi90cmFjay1mZWF0dXJlLWJ1dHRvbi5jb21wb25lbnQnO1xuXG5leHBvcnQgY29uc3QgTEFZRVJfRElSRUNUSVZFUyA9IFtcbiAgTGF5ZXJJdGVtQ29tcG9uZW50LFxuICBMYXllckxlZ2VuZEl0ZW1Db21wb25lbnQsXG4gIExheWVyTGVnZW5kQ29tcG9uZW50LFxuICBMYXllckxpc3RDb21wb25lbnQsXG4gIExheWVyTGlzdFRvb2xDb21wb25lbnQsXG4gIExheWVyTGVnZW5kTGlzdENvbXBvbmVudCxcbiAgTGF5ZXJMZWdlbmRMaXN0QmluZGluZ0RpcmVjdGl2ZSxcbiAgVHJhY2tGZWF0dXJlQnV0dG9uQ29tcG9uZW50LFxuICBMYXllckdyb3VwQ29tcG9uZW50LFxuICBMYXllclZpZXdlckNvbXBvbmVudCxcbiAgTGF5ZXJVbmF2YWlsYWJsZUNvbXBvbmVudCxcbiAgTGF5ZXJWaXNpYmlsaXR5QnV0dG9uQ29tcG9uZW50LFxuICBMYXllclNlYXJjaENvbXBvbmVudCxcbiAgTGF5ZXJWaWV3ZXJCb3R0b21BY3Rpb25zQ29tcG9uZW50LFxuICBMYXllclVuYXZhaWxhYmxlTGlzdENvbXBvbmVudFxuXSBhcyBjb25zdDtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBpbXBvcnQgdGhlIGNvbXBvbmVudHMvZGlyZWN0aXZlcyBkaXJlY3RseSBvciBMQVlFUl9ESVJFQ1RJVkVTIGZvciB0aGUgc2V0XG4gKi9cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFsuLi5MQVlFUl9ESVJFQ1RJVkVTXSxcbiAgZXhwb3J0czogWy4uLkxBWUVSX0RJUkVDVElWRVNdLFxuICBwcm92aWRlcnM6IFtGb3JtRGlhbG9nU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgSWdvTGF5ZXJNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPElnb0xheWVyTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBJZ29MYXllck1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICBMYXllclNlcnZpY2UsXG4gICAgICAgIFN0eWxlU2VydmljZSxcbiAgICAgICAgRm9ybURpYWxvZ1NlcnZpY2UsXG4gICAgICAgIExheWVyTGlzdFRvb2xTZXJ2aWNlXG4gICAgICBdXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2x1c3RlclBhcmFtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbGF5ZXIvc2hhcmVkL2NsdXN0ZXJQYXJhbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBDbHVzdGVyUGFyYW0ge1xuICBjbHVzdGVyUmFuZ2VzPzogQ2x1c3RlclJhbmdlW107XG4gIHJhZGl1c0NhbGM/OiAoc2l6ZTogbnVtYmVyKSA9PiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2x1c3RlclJhbmdlIHtcbiAgbWluUmFkaXVzPzogbnVtYmVyO1xuICBtYXhSYWRpdXM/OiBudW1iZXI7XG4gIHNob3dSYW5nZT86IGJvb2xlYW47XG4gIGR5bmFtaWNSYWRpdXM/OiBib29sZWFuO1xuICBzdHlsZTogUmVjb3JkPHN0cmluZywgYW55Pjtcbn1cbiJdfQ==
@@ -0,0 +1,6 @@
1
+ export * from './layer.service';
2
+ export * from './layer.enums';
3
+ export * from './layers';
4
+ export * from './layer-controller';
5
+ export * from './clusterParam';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9sYXllci9zaGFyZWQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xheWVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9sYXllci5lbnVtcyc7XG5leHBvcnQgKiBmcm9tICcuL2xheWVycyc7XG5leHBvcnQgKiBmcm9tICcuL2xheWVyLWNvbnRyb2xsZXInO1xuZXhwb3J0ICogZnJvbSAnLi9jbHVzdGVyUGFyYW0nO1xuIl19