@igo2/integration 1.12.0 → 1.13.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. package/{esm2015/igo2-integration.js → esm2020/igo2-integration.mjs} +0 -0
  2. package/esm2020/lib/about/about-tool/about-tool.component.mjs +185 -0
  3. package/{esm2015/lib/about/about-tool/index.js → esm2020/lib/about/about-tool/index.mjs} +0 -0
  4. package/{esm2015/lib/about/about.module.js → esm2020/lib/about/about.module.mjs} +9 -11
  5. package/{esm2015/lib/about/index.js → esm2020/lib/about/index.mjs} +0 -0
  6. package/{esm2015/lib/analytics/analytics-listener.service.js → esm2020/lib/analytics/analytics-listener.service.mjs} +0 -0
  7. package/{esm2015/lib/analytics/analytics.module.js → esm2020/lib/analytics/analytics.module.mjs} +2 -2
  8. package/{esm2015/lib/analytics/index.js → esm2020/lib/analytics/index.mjs} +0 -0
  9. package/{esm2015/lib/catalog/catalog-browser-tool/catalog-browser-tool.component.js → esm2020/lib/catalog/catalog-browser-tool/catalog-browser-tool.component.mjs} +3 -7
  10. package/{esm2015/lib/catalog/catalog-browser-tool/catalog-browser-tool.module.js → esm2020/lib/catalog/catalog-browser-tool/catalog-browser-tool.module.mjs} +3 -5
  11. package/{esm2015/lib/catalog/catalog-library-tool/catalog-library-tool.component.js → esm2020/lib/catalog/catalog-library-tool/catalog-library-tool.component.mjs} +3 -7
  12. package/{esm2015/lib/catalog/catalog-library-tool/catalog-library-tool.module.js → esm2020/lib/catalog/catalog-library-tool/catalog-library-tool.module.mjs} +3 -5
  13. package/{esm2015/lib/catalog/catalog.module.js → esm2020/lib/catalog/catalog.module.mjs} +2 -2
  14. package/{esm2015/lib/catalog/catalog.state.js → esm2020/lib/catalog/catalog.state.mjs} +0 -0
  15. package/{esm2015/lib/catalog/index.js → esm2020/lib/catalog/index.mjs} +0 -0
  16. package/{esm2015/lib/context/context-editor-tool/context-editor-tool.component.js → esm2020/lib/context/context-editor-tool/context-editor-tool.component.mjs} +3 -6
  17. package/{esm2015/lib/context/context-manager-tool/context-manager-tool.component.js → esm2020/lib/context/context-manager-tool/context-manager-tool.component.mjs} +3 -6
  18. package/{esm2015/lib/context/context-permission-manager-tool/context-permission-manager-tool.component.js → esm2020/lib/context/context-permission-manager-tool/context-permission-manager-tool.component.mjs} +3 -6
  19. package/{esm2015/lib/context/context-share-tool/context-share-tool.component.js → esm2020/lib/context/context-share-tool/context-share-tool.component.mjs} +3 -6
  20. package/{esm2015/lib/context/context.module.js → esm2020/lib/context/context.module.mjs} +2 -2
  21. package/{esm2015/lib/context/context.state.js → esm2020/lib/context/context.state.mjs} +0 -0
  22. package/{esm2015/lib/context/index.js → esm2020/lib/context/index.mjs} +0 -0
  23. package/{esm2015/lib/directions/directions-tool/directions-tool.component.js → esm2020/lib/directions/directions-tool/directions-tool.component.mjs} +3 -6
  24. package/{esm2015/lib/directions/directions-tool/index.js → esm2020/lib/directions/directions-tool/index.mjs} +0 -0
  25. package/{esm2015/lib/directions/directions.module.js → esm2020/lib/directions/directions.module.mjs} +2 -2
  26. package/esm2020/lib/directions/directions.state.mjs +64 -0
  27. package/{esm2015/lib/directions/index.js → esm2020/lib/directions/index.mjs} +0 -0
  28. package/{esm2015/lib/draw/draw.module.js → esm2020/lib/draw/draw.module.mjs} +2 -2
  29. package/{esm2015/lib/draw/draw.state.js → esm2020/lib/draw/draw.state.mjs} +0 -0
  30. package/{esm2015/lib/draw/drawing-tool/drawing-tool.component.js → esm2020/lib/draw/drawing-tool/drawing-tool.component.mjs} +3 -7
  31. package/{esm2015/lib/draw/index.js → esm2020/lib/draw/index.mjs} +0 -0
  32. package/{esm2015/lib/filter/active-ogc-filter-tool/active-ogc-filter-tool.animation.js → esm2020/lib/filter/active-ogc-filter-tool/active-ogc-filter-tool.animation.mjs} +0 -0
  33. package/{esm2015/lib/filter/active-ogc-filter-tool/active-ogc-filter-tool.component.js → esm2020/lib/filter/active-ogc-filter-tool/active-ogc-filter-tool.component.mjs} +3 -7
  34. package/{esm2015/lib/filter/active-ogc-filter-tool/index.js → esm2020/lib/filter/active-ogc-filter-tool/index.mjs} +0 -0
  35. package/{esm2015/lib/filter/active-time-filter-tool/active-time-filter-tool.animation.js → esm2020/lib/filter/active-time-filter-tool/active-time-filter-tool.animation.mjs} +0 -0
  36. package/{esm2015/lib/filter/active-time-filter-tool/active-time-filter-tool.component.js → esm2020/lib/filter/active-time-filter-tool/active-time-filter-tool.component.mjs} +3 -7
  37. package/{esm2015/lib/filter/active-time-filter-tool/index.js → esm2020/lib/filter/active-time-filter-tool/index.mjs} +0 -0
  38. package/{esm2015/lib/filter/filter.module.js → esm2020/lib/filter/filter.module.mjs} +2 -2
  39. package/{esm2015/lib/filter/index.js → esm2020/lib/filter/index.mjs} +0 -0
  40. package/{esm2015/lib/filter/ogc-filter-tool/index.js → esm2020/lib/filter/ogc-filter-tool/index.mjs} +0 -0
  41. package/{esm2015/lib/filter/ogc-filter-tool/ogc-filter-tool.component.js → esm2020/lib/filter/ogc-filter-tool/ogc-filter-tool.component.mjs} +3 -6
  42. package/{esm2015/lib/filter/spatial-filter-tool/index.js → esm2020/lib/filter/spatial-filter-tool/index.mjs} +0 -0
  43. package/esm2020/lib/filter/spatial-filter-tool/spatial-filter-tool.component.mjs +535 -0
  44. package/{esm2015/lib/filter/time-filter-tool/index.js → esm2020/lib/filter/time-filter-tool/index.mjs} +0 -0
  45. package/{esm2015/lib/filter/time-filter-tool/time-filter-tool.component.js → esm2020/lib/filter/time-filter-tool/time-filter-tool.component.mjs} +3 -6
  46. package/esm2020/lib/import-export/import-export-tool/import-export-tool.component.mjs +137 -0
  47. package/{esm2015/lib/import-export/import-export-tool/index.js → esm2020/lib/import-export/import-export-tool/index.mjs} +0 -0
  48. package/{esm2015/lib/import-export/import-export.module.js → esm2020/lib/import-export/import-export.module.mjs} +7 -9
  49. package/{esm2015/lib/import-export/import-export.state.js → esm2020/lib/import-export/import-export.state.mjs} +0 -0
  50. package/{esm2015/lib/import-export/index.js → esm2020/lib/import-export/index.mjs} +0 -0
  51. package/{esm2015/lib/integration.module.js → esm2020/lib/integration.module.mjs} +2 -2
  52. package/{esm2015/lib/map/advanced-map-tool/advanced-coordinates/advanced-coordinates.component.js → esm2020/lib/map/advanced-map-tool/advanced-coordinates/advanced-coordinates.component.mjs} +14 -22
  53. package/esm2020/lib/map/advanced-map-tool/advanced-map-tool.component.mjs +89 -0
  54. package/esm2020/lib/map/advanced-map-tool/advanced-swipe/advanced-swipe.component.mjs +218 -0
  55. package/{esm2015/lib/map/advanced-map-tool/index.js → esm2020/lib/map/advanced-map-tool/index.mjs} +0 -0
  56. package/{esm2015/lib/map/index.js → esm2020/lib/map/index.mjs} +0 -0
  57. package/{esm2015/lib/map/layer-list-tool.state.js → esm2020/lib/map/layer-list-tool.state.mjs} +0 -0
  58. package/{esm2015/lib/map/map-details-tool/index.js → esm2020/lib/map/map-details-tool/index.mjs} +0 -0
  59. package/esm2020/lib/map/map-details-tool/map-details-tool.component.mjs +256 -0
  60. package/{esm2015/lib/map/map-legend/index.js → esm2020/lib/map/map-legend/index.mjs} +0 -0
  61. package/esm2020/lib/map/map-legend/map-legend-tool.component.mjs +275 -0
  62. package/{esm2015/lib/map/map-proximity-tool/index.js → esm2020/lib/map/map-proximity-tool/index.mjs} +0 -0
  63. package/esm2020/lib/map/map-proximity-tool/map-proximity-tool.component.mjs +206 -0
  64. package/{esm2015/lib/map/map-proximity.state.js → esm2020/lib/map/map-proximity.state.mjs} +10 -11
  65. package/{esm2015/lib/map/map-tool/index.js → esm2020/lib/map/map-tool/index.mjs} +0 -0
  66. package/esm2020/lib/map/map-tool/map-tool.component.mjs +130 -0
  67. package/{esm2015/lib/map/map-tools/index.js → esm2020/lib/map/map-tools/index.mjs} +0 -0
  68. package/esm2020/lib/map/map-tools/map-tools.component.mjs +478 -0
  69. package/esm2020/lib/map/map.module.mjs +141 -0
  70. package/esm2020/lib/map/map.state.mjs +47 -0
  71. package/{esm2015/lib/measure/index.js → esm2020/lib/measure/index.mjs} +0 -0
  72. package/{esm2015/lib/measure/measure.module.js → esm2020/lib/measure/measure.module.mjs} +2 -2
  73. package/{esm2015/lib/measure/measure.state.js → esm2020/lib/measure/measure.state.mjs} +0 -0
  74. package/{esm2015/lib/measure/measurer-tool/measurer-tool.component.js → esm2020/lib/measure/measurer-tool/measurer-tool.component.mjs} +3 -7
  75. package/{esm2015/lib/measure/measurer-tool/measurer-tool.module.js → esm2020/lib/measure/measurer-tool/measurer-tool.module.mjs} +2 -4
  76. package/{esm2015/lib/print/index.js → esm2020/lib/print/index.mjs} +0 -0
  77. package/{esm2015/lib/print/print-tool/index.js → esm2020/lib/print/print-tool/index.mjs} +0 -0
  78. package/{esm2015/lib/print/print-tool/print-tool.component.js → esm2020/lib/print/print-tool/print-tool.component.mjs} +3 -6
  79. package/{esm2015/lib/print/print.module.js → esm2020/lib/print/print.module.mjs} +2 -2
  80. package/{esm2015/lib/search/index.js → esm2020/lib/search/index.mjs} +0 -0
  81. package/{esm2015/lib/search/query.state.js → esm2020/lib/search/query.state.mjs} +0 -0
  82. package/{esm2015/lib/search/search-bar/search-bar-binding.directive.js → esm2020/lib/search/search-bar/search-bar-binding.directive.mjs} +0 -0
  83. package/{esm2015/lib/search/search-bar/search-bar.module.js → esm2020/lib/search/search-bar/search-bar.module.mjs} +2 -2
  84. package/esm2020/lib/search/search-results-tool/search-results-tool.component.mjs +577 -0
  85. package/{esm2015/lib/search/search-results-tool/search-results-tool.module.js → esm2020/lib/search/search-results-tool/search-results-tool.module.mjs} +13 -15
  86. package/{esm2015/lib/search/search.module.js → esm2020/lib/search/search.module.mjs} +2 -2
  87. package/{esm2015/lib/search/search.state.js → esm2020/lib/search/search.state.mjs} +0 -0
  88. package/{esm2015/lib/storage/index.js → esm2020/lib/storage/index.mjs} +0 -0
  89. package/{esm2015/lib/storage/storage.module.js → esm2020/lib/storage/storage.module.mjs} +2 -2
  90. package/{esm2015/lib/storage/storage.state.js → esm2020/lib/storage/storage.state.mjs} +0 -0
  91. package/{esm2015/lib/tool/index.js → esm2020/lib/tool/index.mjs} +0 -0
  92. package/{esm2015/lib/tool/tool.module.js → esm2020/lib/tool/tool.module.mjs} +2 -2
  93. package/{esm2015/lib/tool/tool.state.js → esm2020/lib/tool/tool.state.mjs} +0 -0
  94. package/{esm2015/lib/workspace/index.js → esm2020/lib/workspace/index.mjs} +0 -0
  95. package/esm2020/lib/workspace/shared/edition-actions.service.mjs +156 -0
  96. package/{esm2015/lib/workspace/shared/feature-actions.service.js → esm2020/lib/workspace/shared/feature-actions.service.mjs} +0 -0
  97. package/{esm2015/lib/workspace/shared/index.js → esm2020/lib/workspace/shared/index.mjs} +0 -0
  98. package/esm2020/lib/workspace/shared/wfs-actions.service.mjs +158 -0
  99. package/{esm2015/lib/workspace/shared/workspace.utils.js → esm2020/lib/workspace/shared/workspace.utils.mjs} +0 -0
  100. package/{esm2015/lib/workspace/workspace-button/index.js → esm2020/lib/workspace/workspace-button/index.mjs} +0 -0
  101. package/esm2020/lib/workspace/workspace-button/workspace-button.component.mjs +69 -0
  102. package/{esm2015/lib/workspace/workspace.module.js → esm2020/lib/workspace/workspace.module.mjs} +6 -8
  103. package/esm2020/lib/workspace/workspace.state.mjs +188 -0
  104. package/{esm2015/public_api.js → esm2020/public_api.mjs} +0 -0
  105. package/fesm2015/igo2-integration.mjs +6606 -0
  106. package/fesm2015/igo2-integration.mjs.map +1 -0
  107. package/{fesm2015/igo2-integration.js → fesm2020/igo2-integration.mjs} +336 -565
  108. package/fesm2020/igo2-integration.mjs.map +1 -0
  109. package/{igo2-integration.d.ts → index.d.ts} +0 -0
  110. package/lib/about/about-tool/about-tool.component.d.ts +1 -1
  111. package/lib/catalog/catalog-browser-tool/catalog-browser-tool.component.d.ts +1 -1
  112. package/lib/catalog/catalog-library-tool/catalog-library-tool.component.d.ts +1 -1
  113. package/lib/context/context-editor-tool/context-editor-tool.component.d.ts +1 -1
  114. package/lib/context/context-manager-tool/context-manager-tool.component.d.ts +1 -1
  115. package/lib/context/context-permission-manager-tool/context-permission-manager-tool.component.d.ts +1 -1
  116. package/lib/context/context-share-tool/context-share-tool.component.d.ts +1 -1
  117. package/lib/directions/directions-tool/directions-tool.component.d.ts +1 -1
  118. package/lib/draw/drawing-tool/drawing-tool.component.d.ts +1 -1
  119. package/lib/filter/active-ogc-filter-tool/active-ogc-filter-tool.component.d.ts +1 -1
  120. package/lib/filter/active-time-filter-tool/active-time-filter-tool.component.d.ts +1 -1
  121. package/lib/filter/ogc-filter-tool/ogc-filter-tool.component.d.ts +1 -1
  122. package/lib/filter/spatial-filter-tool/spatial-filter-tool.component.d.ts +3 -1
  123. package/lib/filter/time-filter-tool/time-filter-tool.component.d.ts +1 -1
  124. package/lib/import-export/import-export-tool/import-export-tool.component.d.ts +1 -1
  125. package/lib/map/advanced-map-tool/advanced-coordinates/advanced-coordinates.component.d.ts +1 -1
  126. package/lib/map/advanced-map-tool/advanced-map-tool.component.d.ts +1 -1
  127. package/lib/map/advanced-map-tool/advanced-swipe/advanced-swipe.component.d.ts +1 -1
  128. package/lib/map/map-details-tool/map-details-tool.component.d.ts +1 -1
  129. package/lib/map/map-legend/map-legend-tool.component.d.ts +1 -1
  130. package/lib/map/map-proximity-tool/map-proximity-tool.component.d.ts +1 -1
  131. package/lib/map/map-tool/map-tool.component.d.ts +1 -1
  132. package/lib/map/map-tools/map-tools.component.d.ts +1 -1
  133. package/lib/map/map.state.d.ts +3 -2
  134. package/lib/measure/measurer-tool/measurer-tool.component.d.ts +1 -1
  135. package/lib/print/print-tool/print-tool.component.d.ts +1 -1
  136. package/lib/search/search-bar/search-bar-binding.directive.d.ts +1 -1
  137. package/lib/search/search-results-tool/search-results-tool.component.d.ts +1 -1
  138. package/lib/workspace/workspace-button/workspace-button.component.d.ts +1 -1
  139. package/package.json +24 -11
  140. package/bundles/igo2-integration.umd.js +0 -7861
  141. package/bundles/igo2-integration.umd.js.map +0 -1
  142. package/esm2015/lib/about/about-tool/about-tool.component.js +0 -190
  143. package/esm2015/lib/directions/directions.state.js +0 -66
  144. package/esm2015/lib/filter/spatial-filter-tool/spatial-filter-tool.component.js +0 -544
  145. package/esm2015/lib/import-export/import-export-tool/import-export-tool.component.js +0 -145
  146. package/esm2015/lib/map/advanced-map-tool/advanced-map-tool.component.js +0 -99
  147. package/esm2015/lib/map/advanced-map-tool/advanced-swipe/advanced-swipe.component.js +0 -234
  148. package/esm2015/lib/map/map-details-tool/map-details-tool.component.js +0 -274
  149. package/esm2015/lib/map/map-legend/map-legend-tool.component.js +0 -289
  150. package/esm2015/lib/map/map-proximity-tool/map-proximity-tool.component.js +0 -221
  151. package/esm2015/lib/map/map-tool/map-tool.component.js +0 -142
  152. package/esm2015/lib/map/map-tools/map-tools.component.js +0 -496
  153. package/esm2015/lib/map/map.module.js +0 -143
  154. package/esm2015/lib/map/map.state.js +0 -46
  155. package/esm2015/lib/search/search-results-tool/search-results-tool.component.js +0 -598
  156. package/esm2015/lib/workspace/shared/edition-actions.service.js +0 -157
  157. package/esm2015/lib/workspace/shared/wfs-actions.service.js +0 -159
  158. package/esm2015/lib/workspace/workspace-button/workspace-button.component.js +0 -74
  159. package/esm2015/lib/workspace/workspace.state.js +0 -190
  160. package/fesm2015/igo2-integration.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"igo2-integration.umd.js","sources":["../../../packages/integration/src/lib/analytics/analytics.module.ts","../../../node_modules/tslib/tslib.es6.js","../../../packages/integration/src/lib/import-export/import-export.state.ts","../../../packages/integration/src/lib/tool/tool.state.ts","../../../packages/integration/src/lib/context/context-editor-tool/context-editor-tool.component.ts","../../../packages/integration/src/lib/context/context-editor-tool/context-editor-tool.component.html","../../../packages/integration/src/lib/map/map.state.ts","../../../packages/integration/src/lib/context/context-manager-tool/context-manager-tool.component.ts","../../../packages/integration/src/lib/context/context-manager-tool/context-manager-tool.component.html","../../../packages/integration/src/lib/context/context-permission-manager-tool/context-permission-manager-tool.component.ts","../../../packages/integration/src/lib/context/context-permission-manager-tool/context-permission-manager-tool.component.html","../../../packages/integration/src/lib/map/layer-list-tool.state.ts","../../../packages/integration/src/lib/context/context-share-tool/context-share-tool.component.ts","../../../packages/integration/src/lib/context/context-share-tool/context-share-tool.component.html","../../../packages/integration/src/lib/context/context.module.ts","../../../packages/integration/src/lib/catalog/catalog.state.ts","../../../packages/integration/src/lib/catalog/catalog-library-tool/catalog-library-tool.component.ts","../../../packages/integration/src/lib/catalog/catalog-library-tool/catalog-library-tool.component.html","../../../packages/integration/src/lib/catalog/catalog-library-tool/catalog-library-tool.module.ts","../../../packages/integration/src/lib/catalog/catalog-browser-tool/catalog-browser-tool.component.html","../../../packages/integration/src/lib/catalog/catalog-browser-tool/catalog-browser-tool.component.ts","../../../packages/integration/src/lib/catalog/catalog-browser-tool/catalog-browser-tool.module.ts","../../../packages/integration/src/lib/catalog/catalog.module.ts","../../../packages/integration/src/lib/directions/directions.state.ts","../../../packages/integration/src/lib/context/context.state.ts","../../../packages/integration/src/lib/directions/directions-tool/directions-tool.component.ts","../../../packages/integration/src/lib/directions/directions-tool/directions-tool.component.html","../../../packages/integration/src/lib/directions/directions.module.ts","../../../packages/integration/src/lib/draw/draw.state.ts","../../../packages/integration/src/lib/draw/drawing-tool/drawing-tool.component.ts","../../../packages/integration/src/lib/draw/drawing-tool/drawing-tool.component.html","../../../packages/integration/src/lib/draw/draw.module.ts","../../../packages/integration/src/lib/workspace/shared/workspace.utils.ts","../../../packages/integration/src/lib/storage/storage.state.ts","../../../packages/integration/src/lib/workspace/shared/feature-actions.service.ts","../../../packages/integration/src/lib/workspace/shared/wfs-actions.service.ts","../../../packages/integration/src/lib/workspace/shared/edition-actions.service.ts","../../../packages/integration/src/lib/workspace/workspace.state.ts","../../../packages/integration/src/lib/workspace/workspace-button/workspace-button.component.html","../../../packages/integration/src/lib/workspace/workspace-button/workspace-button.component.ts","../../../packages/integration/src/lib/workspace/workspace.module.ts","../../../packages/integration/src/lib/import-export/import-export-tool/import-export-tool.component.html","../../../packages/integration/src/lib/import-export/import-export-tool/import-export-tool.component.ts","../../../packages/integration/src/lib/import-export/import-export.module.ts","../../../packages/integration/src/lib/map/map-details-tool/map-details-tool.component.html","../../../packages/integration/src/lib/map/map-details-tool/map-details-tool.component.ts","../../../packages/integration/src/lib/map/map-tool/map-tool.component.html","../../../packages/integration/src/lib/map/map-tool/map-tool.component.ts","../../../packages/integration/src/lib/map/map-tools/map-tools.component.html","../../../packages/integration/src/lib/map/map-tools/map-tools.component.ts","../../../packages/integration/src/lib/map/map-legend/map-legend-tool.component.html","../../../packages/integration/src/lib/map/map-legend/map-legend-tool.component.ts","../../../packages/integration/src/lib/map/advanced-map-tool/advanced-swipe/advanced-swipe.component.html","../../../packages/integration/src/lib/map/advanced-map-tool/advanced-swipe/advanced-swipe.component.ts","../../../packages/integration/src/lib/map/advanced-map-tool/advanced-coordinates/advanced-coordinates.component.html","../../../packages/integration/src/lib/map/advanced-map-tool/advanced-coordinates/advanced-coordinates.component.ts","../../../packages/integration/src/lib/map/advanced-map-tool/advanced-map-tool.component.ts","../../../packages/integration/src/lib/map/advanced-map-tool/advanced-map-tool.component.html","../../../packages/integration/src/lib/map/map-proximity.state.ts","../../../packages/integration/src/lib/map/map-proximity-tool/map-proximity-tool.component.html","../../../packages/integration/src/lib/map/map-proximity-tool/map-proximity-tool.component.ts","../../../packages/integration/src/lib/map/map.module.ts","../../../packages/integration/src/lib/measure/measure.state.ts","../../../packages/integration/src/lib/measure/measurer-tool/measurer-tool.component.ts","../../../packages/integration/src/lib/measure/measurer-tool/measurer-tool.component.html","../../../packages/integration/src/lib/measure/measurer-tool/measurer-tool.module.ts","../../../packages/integration/src/lib/measure/measure.module.ts","../../../packages/integration/src/lib/print/print-tool/print-tool.component.ts","../../../packages/integration/src/lib/print/print-tool/print-tool.component.html","../../../packages/integration/src/lib/print/print.module.ts","../../../packages/integration/src/lib/search/search.state.ts","../../../packages/integration/src/lib/search/search-bar/search-bar-binding.directive.ts","../../../packages/integration/src/lib/search/search-bar/search-bar.module.ts","../../../packages/integration/src/lib/search/search-results-tool/search-results-tool.component.html","../../../packages/integration/src/lib/search/search-results-tool/search-results-tool.component.ts","../../../packages/integration/src/lib/search/search-results-tool/search-results-tool.module.ts","../../../packages/integration/src/lib/search/search.module.ts","../../../packages/integration/src/lib/filter/ogc-filter-tool/ogc-filter-tool.component.ts","../../../packages/integration/src/lib/filter/ogc-filter-tool/ogc-filter-tool.component.html","../../../packages/integration/src/lib/filter/time-filter-tool/time-filter-tool.component.ts","../../../packages/integration/src/lib/filter/time-filter-tool/time-filter-tool.component.html","../../../packages/integration/src/lib/filter/spatial-filter-tool/spatial-filter-tool.component.html","../../../packages/integration/src/lib/filter/spatial-filter-tool/spatial-filter-tool.component.ts","../../../packages/integration/src/lib/filter/active-time-filter-tool/active-time-filter-tool.animation.ts","../../../packages/integration/src/lib/filter/active-time-filter-tool/active-time-filter-tool.component.ts","../../../packages/integration/src/lib/filter/active-time-filter-tool/active-time-filter-tool.component.html","../../../packages/integration/src/lib/filter/active-ogc-filter-tool/active-ogc-filter-tool.animation.ts","../../../packages/integration/src/lib/filter/active-ogc-filter-tool/active-ogc-filter-tool.component.ts","../../../packages/integration/src/lib/filter/active-ogc-filter-tool/active-ogc-filter-tool.component.html","../../../packages/integration/src/lib/filter/filter.module.ts","../../../packages/integration/src/lib/about/about-tool/about-tool.component.html","../../../packages/integration/src/lib/about/about-tool/about-tool.component.ts","../../../packages/integration/src/lib/about/about.module.ts","../../../packages/integration/src/lib/storage/storage.module.ts","../../../packages/integration/src/lib/integration.module.ts","../../../packages/integration/src/lib/tool/tool.module.ts","../../../packages/integration/src/lib/analytics/analytics-listener.service.ts","../../../packages/integration/src/lib/search/query.state.ts","../../../packages/integration/src/public_api.ts","../../../packages/integration/src/igo2-integration.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [],\r\n exports: []\r\n})\r\nexport class IgoAppAnalyticsModule {}\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ExportOptions } from '@igo2/geo';\r\n\r\nexport enum ImportExportType {\r\n layer = 'layer',\r\n context = 'context'\r\n}\r\n\r\nexport enum ImportExportMode {\r\n import = 'import',\r\n export = 'export'\r\n}\r\n\r\n/**\r\n * Service that holds the state of the importExport module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ImportExportState {\r\n\r\n readonly importExportType$: BehaviorSubject<ImportExportType> = new BehaviorSubject(ImportExportType.layer);\r\n readonly selectedMode$: BehaviorSubject<ImportExportMode> = new BehaviorSubject(ImportExportMode.import);\r\n readonly exportOptions$: BehaviorSubject<ExportOptions> = new BehaviorSubject(undefined);\r\n\r\n setImportExportType(type: ImportExportType) {\r\n this.importExportType$.next(type);\r\n }\r\n\r\n setMode(mode: ImportExportMode) {\r\n this.selectedMode$.next(mode);\r\n }\r\n\r\n setsExportOptions(exportOptions: ExportOptions) {\r\n this.exportOptions$.next(exportOptions);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { Toolbox, ToolService } from '@igo2/common';\r\n\r\nimport { ExportOptions } from '@igo2/geo';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ImportExportMode, ImportExportState } from '../import-export/import-export.state';\r\n\r\n/**\r\n * Service that holds the state of the search module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ToolState {\r\n get toolbox(): Toolbox {\r\n return this.toolService.toolbox;\r\n }\r\n\r\n public openSidenav$: BehaviorSubject<boolean> = new BehaviorSubject(undefined);\r\n\r\n constructor(\r\n private toolService: ToolService,\r\n private importExportState: ImportExportState\r\n ) {}\r\n\r\n toolToActivateFromOptions(toolToActivate: { tool: string; options: {[key: string]: any} }) {\r\n if (!toolToActivate) { return; }\r\n if (toolToActivate.tool === 'importExport') {\r\n let exportOptions: ExportOptions = this.importExportState.exportOptions$.value;\r\n if (!exportOptions) {\r\n exportOptions = {\r\n layers: toolToActivate.options.layers,\r\n featureInMapExtent: toolToActivate.options.featureInMapExtent\r\n };\r\n } else {\r\n exportOptions.layers = toolToActivate.options.layers;\r\n exportOptions.featureInMapExtent = toolToActivate.options.featureInMapExtent;\r\n }\r\n this.importExportState.setsExportOptions(exportOptions);\r\n this.importExportState.setMode(ImportExportMode.export);\r\n }\r\n\r\n if (this.toolbox.getTool(toolToActivate.tool)) {\r\n this.toolbox.activateTool(toolToActivate.tool);\r\n this.openSidenav$.next(true);\r\n }\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport { ToolState } from '../../tool/tool.state';\r\n\r\n@ToolComponent({\r\n name: 'contextEditor',\r\n title: 'igo.integration.tools.contexts',\r\n icon: 'star',\r\n parent: 'contextManager'\r\n})\r\n@Component({\r\n selector: 'igo-context-editor-tool',\r\n templateUrl: './context-editor-tool.component.html'\r\n})\r\nexport class ContextEditorToolComponent {\r\n\r\n constructor(private toolState: ToolState) {}\r\n\r\n submitSuccessed() {\r\n this.toolState.toolbox.activatePreviousTool();\r\n }\r\n}\r\n","<igo-context-edit\r\n igoContextEditBinding\r\n (submitSuccessed)=\"submitSuccessed()\"\r\n></igo-context-edit>\r\n","import { Injectable } from '@angular/core';\r\nimport { StorageService } from '@igo2/core';\r\n\r\nimport { IgoMap, MapService, ProjectionService } from '@igo2/geo';\r\n// import { BehaviorSubject } from 'rxjs';\r\n\r\n/**\r\n * Service that holds the state of the map module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MapState {\r\n\r\n // public mapCenter$ = new BehaviorSubject<boolean>(false);\r\n get showAllLegendsValue(): boolean {\r\n return this._legendToolShowAll;\r\n }\r\n\r\n set showAllLegendsValue(value) {\r\n this._legendToolShowAll = value;\r\n }\r\n private _legendToolShowAll: boolean;\r\n\r\n /**\r\n * Active map\r\n */\r\n get map(): IgoMap { return this._map; }\r\n private _map: IgoMap;\r\n\r\n constructor(\r\n private mapService: MapService,\r\n private projectionService: ProjectionService, // Don't remove this or it'll never be injected,\r\n private storageService: StorageService\r\n ) {\r\n this._map = new IgoMap({\r\n controls: {\r\n scaleLine: true,\r\n attribution: {\r\n collapsed: true\r\n }\r\n }\r\n },\r\n this.storageService);\r\n\r\n this.mapService.setMap(this.map);\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\n\r\nimport { ToolState } from '../../tool/tool.state';\r\nimport { MapState } from '../../map/map.state';\r\nimport { IgoMap } from '@igo2/geo';\r\n\r\n@ToolComponent({\r\n name: 'contextManager',\r\n title: 'igo.integration.tools.contexts',\r\n icon: 'star'\r\n})\r\n@Component({\r\n selector: 'igo-context-manager-tool',\r\n templateUrl: './context-manager-tool.component.html'\r\n})\r\nexport class ContextManagerToolComponent {\r\n\r\n @Input() toolToOpenOnContextChange: string = 'mapTools';\r\n\r\n get map(): IgoMap { return this.mapState.map; }\r\n\r\n constructor(private toolState: ToolState, private mapState: MapState) {}\r\n\r\n editContext() {\r\n this.toolState.toolbox.activateTool('contextEditor');\r\n }\r\n\r\n managePermissions() {\r\n this.toolState.toolbox.activateTool('contextPermissionManager');\r\n }\r\n}\r\n","<igo-context-list\r\n igoContextListBinding\r\n [map]=\"map\"\r\n (edit)=\"editContext()\"\r\n (managePermissions)=\"managePermissions()\">\r\n</igo-context-list>\r\n","import { Component } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\n\r\n@ToolComponent({\r\n name: 'contextPermissionManager',\r\n title: 'igo.integration.tools.contexts',\r\n icon: 'star',\r\n parent: 'contextManager'\r\n})\r\n@Component({\r\n selector: 'igo-context-permission-manager-tool',\r\n templateUrl: './context-permission-manager-tool.component.html'\r\n})\r\nexport class ContextPermissionManagerToolComponent {}\r\n","<igo-context-permissions igoContextPermissionsBinding></igo-context-permissions>\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { LayerListControlsOptions } from '@igo2/geo';\r\n\r\n/**\r\n * Service that holds the state of layer list tool values\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LayerListToolState {\r\n\r\n readonly keyword$: BehaviorSubject<string> = new BehaviorSubject('');\r\n readonly sortAlpha$: BehaviorSubject<boolean> = new BehaviorSubject(undefined);\r\n readonly onlyVisible$: BehaviorSubject<boolean> = new BehaviorSubject(undefined);\r\n readonly selectedTab$: BehaviorSubject<number> = new BehaviorSubject(undefined);\r\n\r\n setKeyword(keyword: string) {\r\n this.keyword$.next(keyword);\r\n }\r\n\r\n setSortAlpha(sort: boolean) {\r\n this.sortAlpha$.next(sort);\r\n }\r\n\r\n setOnlyVisible(onlyVisible: boolean) {\r\n this.onlyVisible$.next(onlyVisible);\r\n }\r\n\r\n setSelectedTab(tab: number) {\r\n this.selectedTab$.next(tab);\r\n }\r\n\r\n getLayerListControls(): LayerListControlsOptions {\r\n return {\r\n keyword: this.keyword$.value,\r\n onlyVisible: this.onlyVisible$.value,\r\n sortAlpha: this.sortAlpha$.value\r\n };\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport { IgoMap, LayerListControlsOptions } from '@igo2/geo';\r\n\r\nimport { MapState } from '../../map/map.state';\r\nimport { LayerListToolState } from '../../map/layer-list-tool.state';\r\n\r\n@ToolComponent({\r\n name: 'shareMap',\r\n title: 'igo.integration.tools.shareMap',\r\n icon: 'share-variant'\r\n})\r\n@Component({\r\n selector: 'igo-context-share-tool',\r\n templateUrl: './context-share-tool.component.html'\r\n})\r\nexport class ContextShareToolComponent {\r\n\r\n get map(): IgoMap { return this.mapState.map; }\r\n\r\n get layerListControls(): LayerListControlsOptions { return this.layerListToolState.getLayerListControls(); }\r\n\r\n constructor(\r\n private mapState: MapState,\r\n private layerListToolState: LayerListToolState\r\n ) {}\r\n}\r\n","<igo-share-map\r\n [map]=\"map\"></igo-share-map>\r\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\n\r\nimport { IgoContextModule } from '@igo2/context';\r\n\r\nimport { ContextEditorToolComponent } from './context-editor-tool/context-editor-tool.component';\r\nimport { ContextManagerToolComponent } from './context-manager-tool/context-manager-tool.component';\r\nimport { ContextPermissionManagerToolComponent } from './context-permission-manager-tool/context-permission-manager-tool.component';\r\nimport { ContextShareToolComponent } from './context-share-tool/context-share-tool.component';\r\n\r\n@NgModule({\r\n imports: [IgoContextModule],\r\n declarations: [\r\n ContextEditorToolComponent,\r\n ContextManagerToolComponent,\r\n ContextPermissionManagerToolComponent,\r\n ContextShareToolComponent\r\n ],\r\n exports: [\r\n ContextEditorToolComponent,\r\n ContextManagerToolComponent,\r\n ContextPermissionManagerToolComponent,\r\n ContextShareToolComponent\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppContextModule {}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { AuthService } from '@igo2/auth';\r\nimport { EntityStore } from '@igo2/common';\r\nimport { Catalog, CatalogItem } from '@igo2/geo';\r\n\r\n/**\r\n * Service that holds the state of the catalog module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CatalogState {\r\n\r\n /**\r\n * Store that contains all the catalogs\r\n */\r\n get catalogStore(): EntityStore<Catalog> { return this._catalogStore; }\r\n private _catalogStore: EntityStore<Catalog>;\r\n\r\n /**\r\n * Catalog -> Catalog items store mapping\r\n */\r\n private catalogItemsStores = new Map<string, EntityStore<CatalogItem>>();\r\n\r\n constructor(authService: AuthService) {\r\n this._catalogStore = new EntityStore([]);\r\n\r\n authService.authenticate$.subscribe(() => {\r\n this.clearCatalogItemsStores();\r\n });\r\n }\r\n\r\n /**\r\n * Get a catalog's items store\r\n * @param catalog Catalog\r\n * @returns Store that contains the catalog items\r\n */\r\n getCatalogItemsStore(catalog: Catalog): EntityStore<CatalogItem> {\r\n return this.catalogItemsStores.get(catalog.id as string);\r\n }\r\n\r\n /**\r\n * Bind a catalog items store to a catalog\r\n * @param catalog Catalog\r\n * @param store Catalog items store\r\n */\r\n setCatalogItemsStore(catalog: Catalog, store: EntityStore<CatalogItem>) {\r\n this.catalogItemsStores.set(catalog.id as string, store);\r\n }\r\n\r\n /**\r\n * Clear all catalog items stores\r\n */\r\n clearCatalogItemsStores() {\r\n this.catalogItemsStores.clear();\r\n }\r\n}\r\n","import { Component, OnInit, ChangeDetectionStrategy, Input } from '@angular/core';\r\nimport { take } from 'rxjs/operators';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\n\r\nimport { EntityStore } from '@igo2/common';\r\nimport { Catalog, CatalogService } from '@igo2/geo';\r\nimport { StorageService } from '@igo2/core';\r\n\r\nimport { ToolState } from '../../tool/tool.state';\r\nimport { CatalogState } from '../catalog.state';\r\n\r\n/**\r\n * Tool to browse the list of available catalogs.\r\n */\r\n@ToolComponent({\r\n name: 'catalog',\r\n title: 'igo.integration.tools.catalog',\r\n icon: 'layers-plus'\r\n})\r\n@Component({\r\n selector: 'igo-catalog-library-tool',\r\n templateUrl: './catalog-library-tool.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CatalogLibraryToolComponent implements OnInit {\r\n /**\r\n * Store that contains the catalogs\r\n * @internal\r\n */\r\n get store(): EntityStore<Catalog> {\r\n return this.catalogState.catalogStore;\r\n }\r\n\r\n /**\r\n * Determine if the form to add a catalog is allowed\r\n */\r\n @Input() addCatalogAllowed: boolean = false;\r\n\r\n /**\r\n * List of predefined catalogs\r\n */\r\n @Input() predefinedCatalogs: Catalog[] = [];\r\n\r\n constructor(\r\n private catalogService: CatalogService,\r\n private catalogState: CatalogState,\r\n private toolState: ToolState,\r\n private storageService: StorageService\r\n ) {}\r\n\r\n /**\r\n * @internal\r\n */\r\n ngOnInit() {\r\n if (this.store.count === 0) {\r\n this.loadCatalogs();\r\n }\r\n }\r\n\r\n /**\r\n * When the selected catalog changes, toggle the the CatalogBrowser tool.\r\n * @internal\r\n * @param event Select event\r\n */\r\n onCatalogSelectChange(event: { selected: boolean; catalog: Catalog }) {\r\n if (event.selected === false) {\r\n return;\r\n }\r\n this.toolState.toolbox.activateTool('catalogBrowser');\r\n }\r\n\r\n /**\r\n * Get all the available catalogs from the CatalogService and\r\n * load them into the store.\r\n */\r\n private loadCatalogs() {\r\n this.catalogService.loadCatalogs().pipe(take(1)).subscribe((catalogs: Catalog[]) => {\r\n this.store.clear();\r\n this.store.load(catalogs.concat((this.storageService.get('addedCatalogs') || []) as Catalog[]));\r\n });\r\n }\r\n}\r\n","<igo-catalog-library\r\n [predefinedCatalogs]=\"predefinedCatalogs\"\r\n [addCatalogAllowed]=\"addCatalogAllowed\"\r\n [store]=\"store\"\r\n (catalogSelectChange)=\"onCatalogSelectChange($event)\">\r\n</igo-catalog-library>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\n\r\nimport { IgoCatalogLibraryModule } from '@igo2/geo';\r\nimport { CatalogLibraryToolComponent } from './catalog-library-tool.component';\r\n\r\n/**\r\n * @ignore\r\n */\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IgoCatalogLibraryModule\r\n ],\r\n declarations: [CatalogLibraryToolComponent],\r\n exports: [CatalogLibraryToolComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppCatalogLibraryToolModule {}\r\n","<igo-catalog-browser\r\n *ngIf=\"store$ | async as store\"\r\n [catalog]=\"catalog\"\r\n [store]=\"store\"\r\n [map]=\"map\"\r\n [toggleCollapsedGroup]=\"toggleCollapsedGroup\">\r\n</igo-catalog-browser>\r\n","import {\r\n Component,\r\n Input,\r\n OnInit,\r\n OnDestroy,\r\n ChangeDetectionStrategy\r\n} from '@angular/core';\r\n\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport { take } from 'rxjs/operators';\r\n\r\nimport { EntityRecord, EntityStore, ToolComponent } from '@igo2/common';\r\nimport { AuthService } from '@igo2/auth';\r\n\r\nimport {\r\n IgoMap,\r\n Catalog,\r\n CatalogItem,\r\n CatalogItemState,\r\n CatalogService\r\n} from '@igo2/geo';\r\n\r\nimport { MapState } from '../../map/map.state';\r\nimport { CatalogState } from '../catalog.state';\r\n\r\n/**\r\n * Tool to browse a catalog's groups and layers and display them to a map.\r\n */\r\n@ToolComponent({\r\n name: 'catalogBrowser',\r\n title: 'igo.integration.tools.catalog',\r\n icon: 'photo-browser',\r\n parent: 'catalog'\r\n})\r\n@Component({\r\n selector: 'igo-catalog-browser-tool',\r\n templateUrl: './catalog-browser-tool.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CatalogBrowserToolComponent implements OnInit, OnDestroy {\r\n catalog: Catalog;\r\n\r\n /**\r\n * Store that contains the catalog items\r\n * @internal\r\n */\r\n store$ = new BehaviorSubject<EntityStore<CatalogItem, CatalogItemState>>(\r\n undefined\r\n );\r\n\r\n /**\r\n * Subscription to the selected catalog\r\n */\r\n private catalog$$: Subscription;\r\n\r\n /**\r\n * Subscription for authentication\r\n */\r\n private authenticate$$: Subscription;\r\n\r\n /**\r\n * Whether a group can be toggled when it's collapsed\r\n */\r\n @Input() toggleCollapsedGroup: boolean = true;\r\n\r\n /**\r\n * Map to add layers to\r\n * @internal\r\n */\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n constructor(\r\n private catalogService: CatalogService,\r\n private catalogState: CatalogState,\r\n private mapState: MapState,\r\n private authService: AuthService\r\n ) {}\r\n\r\n /**\r\n * @internal\r\n */\r\n ngOnInit() {\r\n const catalogStore = this.catalogState.catalogStore;\r\n this.catalog$$ = catalogStore.stateView\r\n .firstBy$(\r\n (record: EntityRecord<Catalog>) => record.state.selected === true\r\n )\r\n .subscribe((record: EntityRecord<Catalog>) => {\r\n if (record && record.entity) {\r\n const catalog = record.entity;\r\n this.catalog = catalog;\r\n }\r\n });\r\n\r\n this.authenticate$$ = this.authService.authenticate$.subscribe(() => {\r\n this.loadCatalogItems(this.catalog);\r\n });\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n ngOnDestroy() {\r\n this.catalog$$.unsubscribe();\r\n this.authenticate$$.unsubscribe();\r\n }\r\n\r\n /**\r\n * Get the selected catalog's items from the CatalogService and\r\n * load them into the store.\r\n * @param catalog Selected catalog\r\n */\r\n private loadCatalogItems(catalog: Catalog) {\r\n let store = this.catalogState.getCatalogItemsStore(catalog);\r\n if (store !== undefined) {\r\n this.store$.next(store);\r\n return;\r\n }\r\n\r\n store = new EntityStore<CatalogItem>([]);\r\n this.catalogState.setCatalogItemsStore(catalog, store);\r\n this.catalogService\r\n .loadCatalogItems(catalog)\r\n .pipe(take(1))\r\n .subscribe((items: CatalogItem[]) => {\r\n store.load(items);\r\n this.store$.next(store);\r\n });\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\n\r\nimport { IgoCatalogBrowserModule } from '@igo2/geo';\r\nimport { CatalogBrowserToolComponent } from './catalog-browser-tool.component';\r\n\r\n/**\r\n * @ignore\r\n */\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IgoCatalogBrowserModule\r\n ],\r\n declarations: [CatalogBrowserToolComponent],\r\n exports: [CatalogBrowserToolComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppCatalogBrowserToolModule {}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { IgoAppCatalogLibraryToolModule } from './catalog-library-tool/catalog-library-tool.module';\r\nimport { IgoAppCatalogBrowserToolModule } from './catalog-browser-tool/catalog-browser-tool.module';\r\n\r\n@NgModule({\r\n imports: [],\r\n exports: [\r\n IgoAppCatalogLibraryToolModule,\r\n IgoAppCatalogBrowserToolModule\r\n ],\r\n declarations: []\r\n})\r\nexport class IgoAppCatalogModule {}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { AnyLayerOptions, StopsStore, StopsFeatureStore, RoutesFeatureStore, StepFeatureStore } from '@igo2/geo';\r\nimport { Subject } from 'rxjs';\r\nimport { MapState } from '../map/map.state';\r\n\r\n/**\r\n * Service that holds the state of the direction module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DirectionState {\r\n\r\n public zoomToActiveRoute$: Subject<void> = new Subject();\r\n\r\n /**\r\n * Store that holds the stop\r\n */\r\n public stopsStore: StopsStore = new StopsStore([]);\r\n\r\n /**\r\n * Store that holds the driving stops as feature\r\n */\r\n public stopsFeatureStore: StopsFeatureStore = new StopsFeatureStore([], {\r\n map: this.mapState.map\r\n });\r\n\r\n /**\r\n * Store that holds the driving route as feature\r\n */\r\n public routesFeatureStore: RoutesFeatureStore = new RoutesFeatureStore([], {\r\n map: this.mapState.map\r\n });\r\n\r\n public stepFeatureStore: StepFeatureStore = new StepFeatureStore([], {\r\n map: this.mapState.map\r\n });\r\n\r\n public debounceTime: number = 200;\r\n\r\n constructor(private mapState: MapState) {\r\n\r\n this.mapState.map.ol.once('rendercomplete', () => {\r\n this.stopsFeatureStore.empty$.subscribe((empty) => {\r\n if (this.stopsFeatureStore.layer?.options) {\r\n (this.stopsFeatureStore.layer.options as AnyLayerOptions).showInLayerList = !empty;\r\n }\r\n });\r\n this.routesFeatureStore.empty$.subscribe((empty) => {\r\n if (this.routesFeatureStore.layer?.options) {\r\n (this.routesFeatureStore.layer.options as AnyLayerOptions).showInLayerList = !empty;\r\n }\r\n });\r\n });\r\n\r\n this.mapState.map.layers$.subscribe(() => {\r\n if (!this.mapState.map.getLayerById('igo-direction-stops-layer')) {\r\n this.stopsStore.deleteMany(this.stopsStore.all());\r\n this.stopsFeatureStore.deleteMany(this.stopsFeatureStore.all()); // not necessary\r\n }\r\n if (!this.mapState.map.getLayerById('igo-direction-route-layer')) {\r\n this.routesFeatureStore.deleteMany(this.routesFeatureStore.all());\r\n }\r\n });\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\nimport { LanguageService } from '@igo2/core';\r\nimport { Tool, ToolService } from '@igo2/common';\r\nimport { ContextService, DetailedContext } from '@igo2/context';\r\n\r\nimport { ToolState } from '../tool/tool.state';\r\n\r\n/**\r\n * Service that holds the state of the context module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ContextState {\r\n /**\r\n * Observable of the active context\r\n */\r\n context$: BehaviorSubject<DetailedContext> = new BehaviorSubject(undefined);\r\n\r\n constructor(\r\n private contextService: ContextService,\r\n private toolService: ToolService,\r\n private toolState: ToolState,\r\n private languageService: LanguageService\r\n ) {\r\n this.contextService.context$.subscribe((context: DetailedContext) => {\r\n this.onContextChange(context);\r\n });\r\n this.contextService.toolsChanged$.subscribe((context: DetailedContext) => {\r\n this.updateTools(context);\r\n });\r\n }\r\n\r\n /**\r\n * Set the active context\r\n * @param context Detailed context\r\n */\r\n private setContext(context: DetailedContext) {\r\n this.updateTools(context);\r\n this.context$.next(context);\r\n }\r\n\r\n /**\r\n * Update the tool state with the context's tools\r\n * @param context Detailed context\r\n */\r\n private updateTools(context: DetailedContext) {\r\n const toolbox = this.toolState.toolbox;\r\n\r\n const tools = [];\r\n const contextTools = context.tools || [];\r\n contextTools.forEach((contextTool: Tool) => {\r\n const baseTool = this.toolService.getTool(contextTool.name);\r\n if (baseTool === undefined) {\r\n return;\r\n }\r\n\r\n const options = Object.assign(\r\n {},\r\n baseTool.options || {},\r\n contextTool.options || {}\r\n );\r\n const tool = Object.assign({}, baseTool, contextTool, { options });\r\n tools.push(tool);\r\n });\r\n\r\n tools.forEach((tool) => {\r\n if (tool.parent) {\r\n const parentIndex = tools.findIndex((el) => el.name === tool.parent);\r\n if (parentIndex !== -1) {\r\n tools[parentIndex].children = [];\r\n tools[parentIndex].children.push(tool.name);\r\n }\r\n }\r\n });\r\n\r\n toolbox.setTools(tools);\r\n toolbox.setToolbar(context.toolbar || []);\r\n\r\n // TODO: This is a patch so the context service can work without\r\n // injecting the ToolState or without being completely refactored\r\n this.contextService.setTools([].concat(tools));\r\n this.contextService.setToolbar(context.toolbar || []);\r\n }\r\n\r\n /**\r\n * Set a new context and update the tool state\r\n * @param context Detailed context\r\n */\r\n private onContextChange(context: DetailedContext) {\r\n if (context === undefined) {\r\n return;\r\n }\r\n this.setContext(context);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AuthService } from '@igo2/auth';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport { LanguageService, MessageService, StorageScope, StorageService } from '@igo2/core';\r\nimport { IgoMap, RoutesFeatureStore, StopsFeatureStore, StopsStore, StepFeatureStore } from '@igo2/geo';\r\nimport { Subject } from 'rxjs';\r\nimport { ContextState } from '../../context/context.state';\r\n\r\nimport { MapState } from '../../map/map.state';\r\nimport { DirectionState } from '../directions.state';\r\n\r\n@ToolComponent({\r\n name: 'directions',\r\n title: 'igo.integration.tools.directions',\r\n icon: 'directions'\r\n})\r\n@Component({\r\n selector: 'igo-directions-tool',\r\n templateUrl: './directions-tool.component.html'\r\n})\r\nexport class DirectionsToolComponent implements OnInit {\r\n\r\n public currentContextUri: string;\r\n /**\r\n * stops\r\n * @internal\r\n */\r\n get stopsStore(): StopsStore { return this.directionState.stopsStore; }\r\n\r\n get debounceTime(): number { return this.directionState.debounceTime; }\r\n\r\n /**\r\n * stops\r\n * @internal\r\n */\r\n get stopsFeatureStore(): StopsFeatureStore { return this.directionState.stopsFeatureStore; }\r\n\r\n /**\r\n * routes\r\n * @internal\r\n */\r\n get routesFeatureStore(): RoutesFeatureStore { return this.directionState.routesFeatureStore; }\r\n\r\n /**\r\n * step store\r\n * @internal\r\n */\r\n get stepFeatureStore(): StepFeatureStore { return this.directionState.stepFeatureStore; }\r\n\r\n /**\r\n * step store\r\n * @internal\r\n */\r\n get zoomToActiveRoute$(): Subject<void> { return this.directionState.zoomToActiveRoute$; }\r\n\r\n\r\n /**\r\n * Map to measure on\r\n * @internal\r\n */\r\n get map(): IgoMap { return this.mapState.map; }\r\n\r\n constructor(\r\n private directionState: DirectionState,\r\n private mapState: MapState,\r\n private languageService: LanguageService,\r\n private messageService: MessageService,\r\n private storageService: StorageService,\r\n public contextState: ContextState,\r\n private authService: AuthService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n const warningShown = this.storageService.get('direction.warning.shown') as boolean;\r\n if (!warningShown) {\r\n const translate = this.languageService.translate;\r\n const title = translate.instant(\r\n 'igo.integration.directions.warning.title'\r\n );\r\n const msg = translate.instant('igo.integration.directions.warning.message');\r\n this.messageService.info(msg, title, { timeOut: 20000 });\r\n this.storageService.set('direction.warning.shown', true, StorageScope.SESSION);\r\n }\r\n this.contextState.context$.subscribe(c => {\r\n if (!this.authService.authenticated) {\r\n this.currentContextUri = c.uri;\r\n }\r\n });\r\n }\r\n\r\n}\r\n","<igo-directions\r\n [contextUri]=\"currentContextUri\"\r\n [debounceTime]=\"debounceTime\"\r\n [stopsStore]=\"stopsStore\"\r\n [stopsFeatureStore]=\"stopsFeatureStore\"\r\n [stepFeatureStore]=\"stepFeatureStore\"\r\n [routesFeatureStore]=\"routesFeatureStore\"\r\n [zoomToActiveRoute$]=\"zoomToActiveRoute$\"> \r\n</igo-directions>","import {\r\n NgModule,\r\n ModuleWithProviders,\r\n CUSTOM_ELEMENTS_SCHEMA\r\n} from '@angular/core';\r\n\r\nimport { IgoDirectionsModule } from '@igo2/geo';\r\nimport { DirectionsToolComponent } from './directions-tool/directions-tool.component';\r\n\r\n@NgModule({\r\n imports: [IgoDirectionsModule],\r\n declarations: [DirectionsToolComponent],\r\n exports: [DirectionsToolComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppDirectionsModule {\r\n static forRoot(): ModuleWithProviders<IgoAppDirectionsModule> {\r\n return {\r\n ngModule: IgoAppDirectionsModule,\r\n providers: []\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { FeatureStore, Feature } from '@igo2/geo';\r\nimport { MapState } from '../map/map.state';\r\n\r\n/**\r\n * Service that holds the state of the measure module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DrawState {\r\n\r\n /**\r\n * Store that holds the measures\r\n */\r\n public store: FeatureStore<Feature> = new FeatureStore<Feature>([], {\r\n map: this.mapState.map\r\n });\r\n\r\n constructor(private mapState: MapState) {\r\n\r\n this.mapState.map.layers$.subscribe(() => {\r\n if (!this.mapState.map.getLayerById('igo-draw-layer')) {\r\n this.store.deleteMany(this.store.all());\r\n }\r\n });\r\n }\r\n\r\n}\r\n","import {\r\n Component,\r\n ChangeDetectionStrategy\r\n } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport { FeatureStore, Feature, IgoMap } from '@igo2/geo';\r\nimport { MapState } from '../../map/map.state';\r\nimport { DrawState } from '../draw.state';\r\n\r\n/**\r\n * Tool to measure lengths and areas\r\n */\r\n@ToolComponent({\r\n name: 'draw',\r\n title: 'igo.integration.tools.draw',\r\n icon: 'draw'\r\n})\r\n@Component({\r\n selector: 'igo-drawing-tool',\r\n templateUrl: './drawing-tool.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class DrawingToolComponent {\r\n\r\n/**\r\n * Map to measure on\r\n * @internal\r\n */\r\nget store(): FeatureStore<Feature> { return this.drawState.store; }\r\n\r\n/**\r\n * Map to measure on\r\n * @internal\r\n */\r\nget map(): IgoMap { return this.mapState.map; }\r\n\r\nconstructor(\r\n private drawState: DrawState,\r\n private mapState: MapState\r\n) {}\r\n\r\n}\r\n","<igo-draw [store]=\"store\" [map]=\"map\"></igo-draw>\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { IgoDrawingToolModule } from '@igo2/geo';\r\nimport { DrawingToolComponent } from './drawing-tool/drawing-tool.component';\r\n\r\n@NgModule({\r\n imports: [IgoDrawingToolModule],\r\n declarations: [DrawingToolComponent],\r\n exports: [\r\n DrawingToolComponent\r\n ]\r\n})\r\nexport class IgoAppDrawModule {}\r\n","import {\r\n FeatureMotion,\r\n FeatureStoreSelectionStrategy,\r\n FeatureWorkspace,\r\n WfsWorkspace,\r\n EditionWorkspace\r\n} from '@igo2/geo';\r\n\r\n\r\nexport function handleZoomAuto(workspace: FeatureWorkspace | WfsWorkspace | EditionWorkspace, storageService) {\r\n const zoomStrategy = workspace.entityStore\r\n .getStrategyOfType(FeatureStoreSelectionStrategy) as FeatureStoreSelectionStrategy;\r\n zoomStrategy.setMotion(storageService.get('zoomAuto') as boolean ? FeatureMotion.Default : FeatureMotion.None);\r\n}\r\n\r\n\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { StorageService } from '@igo2/core';\r\n\r\n/**\r\n * Service that holds the state of storage service\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StorageState {\r\n get storageService(): StorageService {\r\n return this.igoStorageService;\r\n }\r\n\r\n constructor(private igoStorageService: StorageService) {}\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\n\r\nimport {\r\n Action,\r\n EntityStoreFilterCustomFuncStrategy,\r\n EntityStoreFilterSelectionStrategy\r\n} from '@igo2/common';\r\n\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport {\r\n FeatureWorkspace,\r\n mapExtentStrategyActiveToolTip,\r\n noElementSelected,\r\n ExportOptions\r\n} from '@igo2/geo';\r\nimport { StorageService, StorageServiceEvent, StorageServiceEventEnum, LanguageService, MediaService} from '@igo2/core';\r\nimport { StorageState } from '../../storage/storage.state';\r\nimport { map, skipWhile } from 'rxjs/operators';\r\nimport { ToolState } from '../../tool/tool.state';\r\nimport { handleZoomAuto } from './workspace.utils';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FeatureActionsService implements OnDestroy {\r\n\r\n public maximize$: BehaviorSubject<boolean> = new BehaviorSubject(\r\n this.storageService.get('workspaceMaximize') as boolean\r\n );\r\n\r\n zoomAuto$: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n private storageChange$$: Subscription;\r\n\r\n get storageService(): StorageService {\r\n return this.storageState.storageService;\r\n }\r\n\r\n get zoomAuto(): boolean {\r\n return this.storageService.get('zoomAuto') as boolean;\r\n }\r\n\r\n constructor(\r\n private storageState: StorageState,\r\n public languageService: LanguageService,\r\n private toolState: ToolState,\r\n private mediaService: MediaService\r\n ) {}\r\n\r\n ngOnDestroy(): void {\r\n if (this.storageChange$$) {\r\n this.storageChange$$.unsubscribe();\r\n }\r\n }\r\n\r\n loadActions(\r\n workspace: FeatureWorkspace,\r\n rowsInMapExtentCheckCondition$: BehaviorSubject<boolean>,\r\n selectOnlyCheckCondition$: BehaviorSubject<boolean>\r\n ) {\r\n const actions = this.buildActions(\r\n workspace,\r\n rowsInMapExtentCheckCondition$,\r\n selectOnlyCheckCondition$\r\n );\r\n workspace.actionStore.load(actions);\r\n }\r\n\r\n buildActions(\r\n workspace: FeatureWorkspace,\r\n rowsInMapExtentCheckCondition$: BehaviorSubject<boolean>,\r\n selectOnlyCheckCondition$: BehaviorSubject<boolean>\r\n ): Action[] {\r\n this.zoomAuto$.next(this.zoomAuto);\r\n this.storageChange$$ = this.storageService.storageChange$\r\n .pipe(\r\n skipWhile(\r\n (storageChange: StorageServiceEvent) =>\r\n storageChange.key !== 'zoomAuto' || storageChange.event === StorageServiceEventEnum.CLEARED\r\n )\r\n )\r\n .subscribe(() => {\r\n this.zoomAuto$.next(this.zoomAuto);\r\n handleZoomAuto(workspace, this.storageService);\r\n });\r\n return [\r\n {\r\n id: 'zoomAuto',\r\n checkbox: true,\r\n title: 'igo.integration.workspace.zoomAuto.title',\r\n tooltip: 'igo.integration.workspace.zoomAuto.tooltip',\r\n checkCondition: this.zoomAuto$,\r\n handler: () => {\r\n handleZoomAuto(workspace, this.storageService);\r\n this.storageService.set(\r\n 'zoomAuto',\r\n !this.storageService.get('zoomAuto') as boolean\r\n );\r\n }\r\n },\r\n {\r\n id: 'filterInMapExtent',\r\n checkbox: true,\r\n title: 'igo.integration.workspace.inMapExtent.title',\r\n tooltip: mapExtentStrategyActiveToolTip(workspace),\r\n checkCondition: rowsInMapExtentCheckCondition$,\r\n handler: () => rowsInMapExtentCheckCondition$.next(!rowsInMapExtentCheckCondition$.value)\r\n },\r\n {\r\n id: 'selectedOnly',\r\n checkbox: true,\r\n title: 'igo.integration.workspace.selected.title',\r\n tooltip: 'igo.integration.workspace.selected.tooltip',\r\n checkCondition: selectOnlyCheckCondition$,\r\n handler: () => selectOnlyCheckCondition$.next(!selectOnlyCheckCondition$.value)\r\n },\r\n {\r\n id: 'clearselection',\r\n icon: 'select-off',\r\n title: 'igo.integration.workspace.clearSelection.title',\r\n tooltip: 'igo.integration.workspace.clearSelection.tooltip',\r\n handler: (ws: FeatureWorkspace) => {\r\n ws.entityStore.state.updateMany(ws.entityStore.view.all(), {\r\n selected: false\r\n });\r\n },\r\n args: [workspace],\r\n availability: (ws: FeatureWorkspace) => noElementSelected(ws)\r\n },\r\n {\r\n id: 'featureDownload',\r\n icon: 'file-export',\r\n title: 'igo.integration.workspace.download.title',\r\n tooltip: 'igo.integration.workspace.download.tooltip',\r\n handler: (ws: FeatureWorkspace) => {\r\n const filterStrategy = ws.entityStore.getStrategyOfType(\r\n EntityStoreFilterCustomFuncStrategy\r\n );\r\n const filterSelectionStrategy = ws.entityStore.getStrategyOfType(\r\n EntityStoreFilterSelectionStrategy\r\n );\r\n const layersWithSelection = filterSelectionStrategy.active\r\n ? [ws.layer.id]\r\n : [];\r\n this.toolState.toolToActivateFromOptions({\r\n tool: 'importExport',\r\n options: {\r\n layers: [ws.layer.id],\r\n featureInMapExtent: filterStrategy.active,\r\n layersWithSelection\r\n } as ExportOptions\r\n });\r\n },\r\n args: [workspace]\r\n },\r\n {\r\n id: 'maximize',\r\n title: this.languageService.translate.instant('igo.integration.workspace.maximize'),\r\n tooltip: this.languageService.translate.instant(\r\n 'igo.integration.workspace.maximizeTooltip'\r\n ),\r\n icon: 'resize',\r\n display: () => {\r\n return this.maximize$.pipe(map((v) => !v && !this.mediaService.isMobile()));\r\n },\r\n handler: () => {\r\n if (!this.mediaService.isMobile()) {\r\n this.maximize$.next(true);\r\n }\r\n },\r\n },\r\n {\r\n id: 'standardExtent',\r\n title: this.languageService.translate.instant(\r\n 'igo.integration.workspace.standardExtent'\r\n ),\r\n tooltip: this.languageService.translate.instant(\r\n 'igo.integration.workspace.standardExtentTooltip'\r\n ),\r\n icon: 'resize',\r\n display: () => {\r\n return this.maximize$.pipe(map((v) => v && !this.mediaService.isMobile()));\r\n },\r\n handler: () => {\r\n this.maximize$.next(false);\r\n }\r\n }\r\n ];\r\n }\r\n}\r\n","import { Inject, Injectable, OnDestroy } from '@angular/core';\r\n\r\nimport {\r\n Action,\r\n EntityStoreFilterCustomFuncStrategy,\r\n EntityStoreFilterSelectionStrategy,\r\n Widget\r\n} from '@igo2/common';\r\n\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport {\r\n WfsWorkspace,\r\n mapExtentStrategyActiveToolTip,\r\n noElementSelected,\r\n ExportOptions,\r\n OgcFilterWidget,\r\n OgcFilterableDataSource,\r\n} from '@igo2/geo';\r\nimport { StorageService, StorageServiceEvent, StorageServiceEventEnum, LanguageService, MediaService} from '@igo2/core';\r\nimport { StorageState } from '../../storage/storage.state';\r\nimport { map, skipWhile } from 'rxjs/operators';\r\nimport { ToolState } from '../../tool/tool.state';\r\nimport { handleZoomAuto } from './workspace.utils';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class WfsActionsService implements OnDestroy {\r\n\r\n public maximize$: BehaviorSubject<boolean> = new BehaviorSubject(\r\n this.storageService.get('workspaceMaximize') as boolean\r\n );\r\n\r\n selectOnlyCheckCondition$: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n // rowsInMapExtentCheckCondition$: BehaviorSubject<boolean> = new BehaviorSubject(true);\r\n zoomAuto$: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n private storageChange$$: Subscription;\r\n\r\n get storageService(): StorageService {\r\n return this.storageState.storageService;\r\n }\r\n\r\n get zoomAuto(): boolean {\r\n return this.storageService.get('zoomAuto') as boolean;\r\n }\r\n\r\n constructor(\r\n @Inject(OgcFilterWidget) private ogcFilterWidget: Widget,\r\n private storageState: StorageState,\r\n public languageService: LanguageService,\r\n private mediaService: MediaService,\r\n private toolState: ToolState) {}\r\n\r\n ngOnDestroy(): void {\r\n if (this.storageChange$$) {\r\n this.storageChange$$.unsubscribe();\r\n }\r\n }\r\n\r\n loadActions(\r\n workspace: WfsWorkspace,\r\n rowsInMapExtentCheckCondition$: BehaviorSubject<boolean>,\r\n selectOnlyCheckCondition$: BehaviorSubject<boolean>\r\n ) {\r\n const actions = this.buildActions(\r\n workspace,\r\n rowsInMapExtentCheckCondition$,\r\n selectOnlyCheckCondition$\r\n );\r\n workspace.actionStore.load(actions);\r\n }\r\n\r\n buildActions(\r\n workspace: WfsWorkspace,\r\n rowsInMapExtentCheckCondition$: BehaviorSubject<boolean>,\r\n selectOnlyCheckCondition$: BehaviorSubject<boolean>\r\n ): Action[] {\r\n this.zoomAuto$.next(this.zoomAuto);\r\n this.storageChange$$ = this.storageService.storageChange$\r\n .pipe(skipWhile((storageChange: StorageServiceEvent) =>\r\n storageChange?.key !== 'zoomAuto' || storageChange?.event === StorageServiceEventEnum.CLEARED))\r\n .subscribe(() => {\r\n this.zoomAuto$.next(this.zoomAuto);\r\n handleZoomAuto(workspace, this.storageService);\r\n });\r\n const actions = [\r\n {\r\n id: 'zoomAuto',\r\n checkbox: true,\r\n title: 'igo.integration.workspace.zoomAuto.title',\r\n tooltip: 'igo.integration.workspace.zoomAuto.tooltip',\r\n checkCondition: this.zoomAuto$,\r\n handler: () => {\r\n handleZoomAuto(workspace, this.storageService);\r\n this.storageService.set('zoomAuto', !this.storageService.get('zoomAuto') as boolean);\r\n }\r\n },\r\n {\r\n id: 'filterInMapExtent',\r\n checkbox: true,\r\n title: 'igo.integration.workspace.inMapExtent.title',\r\n tooltip: mapExtentStrategyActiveToolTip(workspace),\r\n checkCondition: rowsInMapExtentCheckCondition$,\r\n handler: () => rowsInMapExtentCheckCondition$.next(!rowsInMapExtentCheckCondition$.value)\r\n },\r\n {\r\n id: 'selectedOnly',\r\n checkbox: true,\r\n title: 'igo.integration.workspace.selected.title',\r\n tooltip: 'igo.integration.workspace.selected.title',\r\n checkCondition: selectOnlyCheckCondition$,\r\n handler: () => selectOnlyCheckCondition$.next(!selectOnlyCheckCondition$.value)\r\n },\r\n {\r\n id: 'clearselection',\r\n icon: 'select-off',\r\n title: 'igo.integration.workspace.clearSelection.title',\r\n tooltip: 'igo.integration.workspace.clearSelection.tooltip',\r\n handler: (ws: WfsWorkspace) => {\r\n ws.entityStore.state.updateMany(ws.entityStore.view.all(), { selected: false });\r\n },\r\n args: [workspace],\r\n availability: (ws: WfsWorkspace) => noElementSelected(ws)\r\n },\r\n {\r\n id: 'wfsDownload',\r\n icon: 'file-export',\r\n title: 'igo.integration.workspace.download.title',\r\n tooltip: 'igo.integration.workspace.download.tooltip',\r\n handler: (ws: WfsWorkspace) => {\r\n const filterStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy);\r\n const filterSelectionStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterSelectionStrategy);\r\n const layersWithSelection = filterSelectionStrategy.active ? [ws.layer.id] : [];\r\n this.toolState.toolToActivateFromOptions({\r\n tool: 'importExport',\r\n options: { layers: [ws.layer.id], featureInMapExtent: filterStrategy.active, layersWithSelection } as ExportOptions\r\n });\r\n },\r\n args: [workspace]\r\n },\r\n {\r\n id: 'ogcFilter',\r\n icon: 'filter',\r\n title: 'igo.integration.workspace.ogcFilter.title',\r\n tooltip: 'igo.integration.workspace.ogcFilter.tooltip',\r\n handler: (widget: Widget, ws: WfsWorkspace) => {\r\n ws.activateWidget(widget, {\r\n map: ws.map,\r\n layer: ws.layer\r\n });\r\n },\r\n args: [this.ogcFilterWidget, workspace]\r\n },\r\n {\r\n id: 'maximize',\r\n title: this.languageService.translate.instant('igo.integration.workspace.maximize'),\r\n tooltip: this.languageService.translate.instant(\r\n 'igo.integration.workspace.maximizeTooltip'\r\n ),\r\n icon: 'resize',\r\n display: () => {\r\n return this.maximize$.pipe(map((v) => !v && !this.mediaService.isMobile()));\r\n },\r\n handler: () => {\r\n if (!this.mediaService.isMobile()) {\r\n this.maximize$.next(true);\r\n }\r\n },\r\n },\r\n {\r\n id: 'standardExtent',\r\n title: this.languageService.translate.instant(\r\n 'igo.integration.workspace.standardExtent'\r\n ),\r\n tooltip: this.languageService.translate.instant(\r\n 'igo.integration.workspace.standardExtentTooltip'\r\n ),\r\n icon: 'resize',\r\n display: () => {\r\n return this.maximize$.pipe(map((v) => v && !this.mediaService.isMobile()));\r\n },\r\n handler: () => {\r\n this.maximize$.next(false);\r\n }\r\n }\r\n ];\r\n return (workspace.layer.dataSource as OgcFilterableDataSource).ogcFilters$?.value?.enabled ?\r\n actions : actions.filter(action => action.id !== 'ogcFilter');\r\n }\r\n}\r\n","import { Inject, Injectable, OnDestroy } from '@angular/core';\r\n\r\nimport {\r\n Action,\r\n EntityStoreFilterCustomFuncStrategy,\r\n EntityStoreFilterSelectionStrategy,\r\n Widget\r\n} from '@igo2/common';\r\n\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport {\r\n EditionWorkspace,\r\n mapExtentStrategyActiveToolTip,\r\n noElementSelected,\r\n ExportOptions,\r\n OgcFilterWidget,\r\n OgcFilterableDataSource,\r\n} from '@igo2/geo';\r\nimport { StorageService, StorageServiceEvent, StorageServiceEventEnum, LanguageService, MediaService} from '@igo2/core';\r\nimport { StorageState } from '../../storage/storage.state';\r\nimport { map, skipWhile } from 'rxjs/operators';\r\nimport { ToolState } from '../../tool/tool.state';\r\nimport { handleZoomAuto } from './workspace.utils';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EditionActionsService implements OnDestroy {\r\n\r\n public maximize$: BehaviorSubject<boolean> = new BehaviorSubject(\r\n this.storageService.get('workspaceMaximize') as boolean\r\n );\r\n\r\n zoomAuto$: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n private storageChange$$: Subscription;\r\n\r\n get storageService(): StorageService {\r\n return this.storageState.storageService;\r\n }\r\n\r\n get zoomAuto(): boolean {\r\n return this.storageService.get('zoomAuto') as boolean;\r\n }\r\n\r\n constructor(\r\n @Inject(OgcFilterWidget) private ogcFilterWidget: Widget,\r\n private storageState: StorageState,\r\n public languageService: LanguageService,\r\n private mediaService: MediaService,\r\n private toolState: ToolState) {}\r\n\r\n ngOnDestroy(): void {\r\n if (this.storageChange$$) {\r\n this.storageChange$$.unsubscribe();\r\n }\r\n }\r\n\r\n loadActions(\r\n workspace: EditionWorkspace,\r\n rowsInMapExtentCheckCondition$: BehaviorSubject<boolean>,\r\n selectOnlyCheckCondition$: BehaviorSubject<boolean>\r\n ) {\r\n const actions = this.buildActions(\r\n workspace,\r\n rowsInMapExtentCheckCondition$,\r\n selectOnlyCheckCondition$\r\n );\r\n workspace.actionStore.load(actions);\r\n }\r\n\r\n buildActions(\r\n workspace: EditionWorkspace,\r\n rowsInMapExtentCheckCondition$: BehaviorSubject<boolean>,\r\n selectOnlyCheckCondition$: BehaviorSubject<boolean>\r\n ): Action[] {\r\n this.zoomAuto$.next(this.zoomAuto);\r\n this.storageChange$$ = this.storageService.storageChange$\r\n .pipe(skipWhile((storageChange: StorageServiceEvent) =>\r\n storageChange?.key !== 'zoomAuto' || storageChange?.event === StorageServiceEventEnum.CLEARED))\r\n .subscribe(() => {\r\n this.zoomAuto$.next(this.zoomAuto);\r\n handleZoomAuto(workspace, this.storageService);\r\n });\r\n const actions = [\r\n {\r\n id: 'zoomAuto',\r\n checkbox: true,\r\n title: 'igo.integration.workspace.zoomAuto.title',\r\n tooltip: 'igo.integration.workspace.zoomAuto.tooltip',\r\n checkCondition: this.zoomAuto$,\r\n handler: () => {\r\n handleZoomAuto(workspace, this.storageService);\r\n this.storageService.set('zoomAuto', !this.storageService.get('zoomAuto') as boolean);\r\n }\r\n },\r\n {\r\n id: 'filterInMapExtent',\r\n checkbox: true,\r\n title: 'igo.integration.workspace.inMapExtent.title',\r\n tooltip: mapExtentStrategyActiveToolTip(workspace),\r\n checkCondition: rowsInMapExtentCheckCondition$,\r\n handler: () => rowsInMapExtentCheckCondition$.next(!rowsInMapExtentCheckCondition$.value)\r\n },\r\n {\r\n id: 'selectedOnly',\r\n checkbox: true,\r\n title: 'igo.integration.workspace.selected.title',\r\n tooltip: 'igo.integration.workspace.selected.title',\r\n checkCondition: selectOnlyCheckCondition$,\r\n handler: () => selectOnlyCheckCondition$.next(!selectOnlyCheckCondition$.value)\r\n },\r\n {\r\n id: 'clearselection',\r\n icon: 'select-off',\r\n title: 'igo.integration.workspace.clearSelection.title',\r\n tooltip: 'igo.integration.workspace.clearSelection.tooltip',\r\n handler: (ws: EditionWorkspace) => {\r\n ws.entityStore.state.updateMany(ws.entityStore.view.all(), { selected: false });\r\n },\r\n args: [workspace],\r\n availability: (ws: EditionWorkspace) => noElementSelected(ws)\r\n },\r\n {\r\n id: 'wfsDownload',\r\n icon: 'file-export',\r\n title: 'igo.integration.workspace.download.title',\r\n tooltip: 'igo.integration.workspace.download.tooltip',\r\n handler: (ws: EditionWorkspace) => {\r\n const filterStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy);\r\n const filterSelectionStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterSelectionStrategy);\r\n const layersWithSelection = filterSelectionStrategy.active ? [ws.layer.id] : [];\r\n this.toolState.toolToActivateFromOptions({\r\n tool: 'importExport',\r\n options: { layers: [ws.layer.id], featureInMapExtent: filterStrategy.active, layersWithSelection } as ExportOptions\r\n });\r\n },\r\n args: [workspace]\r\n },\r\n {\r\n id: 'ogcFilter',\r\n icon: 'filter',\r\n title: 'igo.integration.workspace.ogcFilter.title',\r\n tooltip: 'igo.integration.workspace.ogcFilter.tooltip',\r\n handler: (widget: Widget, ws: EditionWorkspace) => {\r\n ws.activateWidget(widget, {\r\n map: ws.map,\r\n layer: ws.layer\r\n });\r\n },\r\n args: [this.ogcFilterWidget, workspace]\r\n },\r\n {\r\n id: 'maximize',\r\n title: this.languageService.translate.instant('igo.integration.workspace.maximize'),\r\n tooltip: this.languageService.translate.instant(\r\n 'igo.integration.workspace.maximizeTooltip'\r\n ),\r\n icon: 'resize',\r\n display: () => {\r\n return this.maximize$.pipe(map((v) => !v && !this.mediaService.isMobile()));\r\n },\r\n handler: () => {\r\n if (!this.mediaService.isMobile()) {\r\n this.maximize$.next(true);\r\n }\r\n },\r\n },\r\n {\r\n id: 'standardExtent',\r\n title: this.languageService.translate.instant(\r\n 'igo.integration.workspace.standardExtent'\r\n ),\r\n tooltip: this.languageService.translate.instant(\r\n 'igo.integration.workspace.standardExtentTooltip'\r\n ),\r\n icon: 'resize',\r\n display: () => {\r\n return this.maximize$.pipe(map((v) => v && !this.mediaService.isMobile()));\r\n },\r\n handler: () => {\r\n this.maximize$.next(false);\r\n }\r\n }\r\n ];\r\n return (workspace.layer.dataSource as OgcFilterableDataSource).ogcFilters$?.value?.enabled ?\r\n actions : actions.filter(action => action.id !== 'ogcFilter');\r\n }\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\n\r\nimport { BehaviorSubject, Subscription, Observable, of } from 'rxjs';\r\n\r\nimport {\r\n EntityRecord,\r\n Workspace,\r\n WorkspaceStore,\r\n Widget,\r\n EntityStoreFilterCustomFuncStrategy,\r\n EntityStoreFilterSelectionStrategy,\r\n EntityState } from '@igo2/common';\r\nimport { WfsWorkspace, FeatureWorkspace, EditionWorkspace } from '@igo2/geo';\r\nimport { FeatureActionsService } from './shared/feature-actions.service';\r\nimport { WfsActionsService } from './shared/wfs-actions.service';\r\nimport { StorageService } from '@igo2/core';\r\nimport { EditionActionsService } from './shared/edition-actions.service';\r\n\r\n/**\r\n * Service that holds the state of the workspace module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class WorkspaceState implements OnDestroy {\r\n\r\n public workspacePanelExpanded: boolean = false;\r\n\r\n readonly workspaceEnabled$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\r\n readonly rowsInMapExtentCheckCondition$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\r\n readonly selectOnlyCheckCondition$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\r\n\r\n readonly workspaceMaximize$: BehaviorSubject<boolean> = new BehaviorSubject(\r\n this.storageService.get('workspaceMaximize') as boolean\r\n );\r\n private actionMaximize$$: Subscription[] = [];\r\n\r\n private rowsInMapExtentCheckCondition$$: Subscription;\r\n private selectOnlyCheckCondition$$: Subscription;\r\n\r\n /** Subscription to the active workspace */\r\n private activeWorkspace$$: Subscription;\r\n\r\n /** Subscription to the active workspace widget */\r\n private activeWorkspaceWidget$$: Subscription;\r\n\r\n /** Active widget observable. Only one may be active for all available workspaces */\r\n readonly activeWorkspaceWidget$: BehaviorSubject<Widget> = new BehaviorSubject<Widget>(undefined);\r\n\r\n /**\r\n * Observable of the active workspace\r\n */\r\n public workspace$ = new BehaviorSubject<Workspace>(undefined);\r\n\r\n /**\r\n * Store that holds all the available workspaces\r\n */\r\n get store(): WorkspaceStore { return this._store; }\r\n private _store: WorkspaceStore;\r\n\r\n get workspaceSelection() {\r\n if (this.workspace$.value) {\r\n return this.workspace$.value?.entityStore.stateView.manyBy((r) => r.state.selected === true);\r\n } else {\r\n return [];\r\n }\r\n }\r\n\r\n get workspaceSelection$(): Observable<EntityRecord<object, EntityState>[]> {\r\n if (this.workspace$.value) {\r\n return this.workspace$.value?.entityStore?.stateView.manyBy$((r) => r.state.selected === true);\r\n } else {\r\n return of([]);\r\n }\r\n }\r\n\r\n constructor(\r\n private featureActionsService: FeatureActionsService,\r\n private wfsActionsService: WfsActionsService,\r\n private editionActionsService: EditionActionsService,\r\n private storageService: StorageService\r\n ) {\r\n this.initWorkspaces();\r\n }\r\n\r\n /**\r\n * Initialize the workspace store. Each time a workspace is activated,\r\n * subscribe to it's active widget. Tracking the active widget is useful\r\n * to make sure only one widget is active at a time.\r\n */\r\n private initWorkspaces() {\r\n this._store = new WorkspaceStore([]);\r\n this._store.stateView\r\n .firstBy$((record: EntityRecord<Workspace>) => record.state.active === true)\r\n .subscribe((record: EntityRecord<Workspace>) => {\r\n const workspace = record ? record.entity : undefined;\r\n this.workspace$.next(workspace);\r\n });\r\n\r\n this._store.stateView.all$()\r\n .subscribe((workspaces: EntityRecord<Workspace>[]) => {\r\n workspaces.map((wks: EntityRecord<Workspace>) => {\r\n if (wks.entity.actionStore.empty) {\r\n if (wks.entity instanceof WfsWorkspace) {\r\n this.wfsActionsService.loadActions(\r\n wks.entity,\r\n this.rowsInMapExtentCheckCondition$,\r\n this.selectOnlyCheckCondition$);\r\n } else if (wks.entity instanceof FeatureWorkspace) {\r\n this.featureActionsService.loadActions(\r\n wks.entity,\r\n this.rowsInMapExtentCheckCondition$,\r\n this.selectOnlyCheckCondition$);\r\n } else if (wks.entity instanceof EditionWorkspace) {\r\n this.editionActionsService.loadActions(\r\n wks.entity,\r\n this.rowsInMapExtentCheckCondition$,\r\n this.selectOnlyCheckCondition$);\r\n }\r\n }\r\n\r\n });\r\n });\r\n\r\n this.actionMaximize$$.push(this.featureActionsService.maximize$.subscribe(maximized => {\r\n this.setWorkspaceIsMaximized(maximized);\r\n }));\r\n\r\n this.actionMaximize$$.push(this.wfsActionsService.maximize$.subscribe(maximized => {\r\n this.setWorkspaceIsMaximized(maximized);\r\n }));\r\n\r\n this.actionMaximize$$.push(this.editionActionsService.maximize$.subscribe(maximized => {\r\n this.setWorkspaceIsMaximized(maximized);\r\n }));\r\n\r\n this.activeWorkspace$$ = this.workspace$\r\n .subscribe((workspace: Workspace) => {\r\n if (this.activeWorkspaceWidget$$ !== undefined) {\r\n this.activeWorkspaceWidget$$.unsubscribe();\r\n this.activeWorkspaceWidget$$ = undefined;\r\n }\r\n\r\n if (workspace !== undefined) {\r\n this.activeWorkspaceWidget$$ = workspace.widget$\r\n .subscribe((widget: Widget) => this.activeWorkspaceWidget$.next(widget));\r\n }\r\n });\r\n\r\n this.rowsInMapExtentCheckCondition$$ = this.rowsInMapExtentCheckCondition$.subscribe((rowsInMapExtent) => {\r\n this._store.stateView.all().map((wks: EntityRecord<Workspace>) => {\r\n if (!wks.entity.actionStore.empty) {\r\n const filterStrategy = wks.entity.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy);\r\n if (filterStrategy) {\r\n if (rowsInMapExtent) {\r\n filterStrategy.activate();\r\n } else {\r\n filterStrategy.deactivate();\r\n }\r\n }\r\n }\r\n });\r\n });\r\n\r\n this.selectOnlyCheckCondition$$ = this.selectOnlyCheckCondition$.subscribe((selectOnly) => {\r\n this._store.stateView.all().map((wks: EntityRecord<Workspace>) => {\r\n if (!wks.entity.actionStore.empty) {\r\n const filterStrategy = wks.entity.entityStore.getStrategyOfType(EntityStoreFilterSelectionStrategy);\r\n if (filterStrategy) {\r\n if (selectOnly) {\r\n filterStrategy.activate();\r\n } else {\r\n filterStrategy.deactivate();\r\n }\r\n }\r\n }\r\n });\r\n });\r\n }\r\n\r\n private setWorkspaceIsMaximized(maximized: boolean) {\r\n this.storageService.set('workspaceMaximize', maximized);\r\n this.workspaceMaximize$.next(maximized);\r\n }\r\n\r\n public setActiveWorkspaceById(id: string) {\r\n const wksFromId = this.store\r\n .all()\r\n .find(workspace => workspace.id === id);\r\n if (wksFromId) {\r\n this.store.activateWorkspace(wksFromId);\r\n }\r\n }\r\n\r\n public setActiveWorkspaceByTitle(title: string) {\r\n const wksFromTitle = this.store\r\n .all()\r\n .find(workspace => workspace.title === title);\r\n if (wksFromTitle) {\r\n this.store.activateWorkspace(wksFromTitle);\r\n }\r\n }\r\n\r\n /**\r\n * Teardown all the workspaces\r\n * @internal\r\n */\r\n ngOnDestroy() {\r\n this.teardownWorkspaces();\r\n this.actionMaximize$$.map(a => a.unsubscribe());\r\n if (this.rowsInMapExtentCheckCondition$$) {\r\n this.selectOnlyCheckCondition$$.unsubscribe();\r\n }\r\n if (this.selectOnlyCheckCondition$$) {\r\n this.selectOnlyCheckCondition$$.unsubscribe();\r\n }\r\n }\r\n\r\n /**\r\n * Teardown the workspace store and any subscribers\r\n */\r\n private teardownWorkspaces() {\r\n this.store.clear();\r\n if (this.activeWorkspaceWidget$$ !== undefined) {\r\n this.activeWorkspaceWidget$$.unsubscribe();\r\n }\r\n if (this.activeWorkspace$$ !== undefined) {\r\n this.activeWorkspace$$.unsubscribe();\r\n }\r\n }\r\n\r\n}\r\n","<button\r\n *ngIf=\"hasWorkspace$ | async\"\r\n mat-icon-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.integration.workspace.toggleWorkspace' | translate\"\r\n [color]=\"color\"\r\n (click)=\"activateWorkspace()\"\r\n >\r\n <mat-icon svgIcon=\"table\"></mat-icon>\r\n</button>\r\n","import { Component, Input, ChangeDetectionStrategy, OnInit, OnDestroy } from '@angular/core';\r\nimport type { Layer } from '@igo2/geo';\r\nimport { WorkspaceState } from '../workspace.state';\r\nimport { BehaviorSubject, combineLatest, Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'igo-workspace-button',\r\n templateUrl: './workspace-button.component.html',\r\n styleUrls: ['./workspace-button.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class WorkspaceButtonComponent implements OnInit, OnDestroy {\r\n\r\n public hasWorkspace$: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n private hasWorkspace$$: Subscription;\r\n\r\n private _layer: Layer;\r\n private layer$: BehaviorSubject<Layer> = new BehaviorSubject(undefined);\r\n @Input()\r\n set layer(value: Layer) {\r\n this._layer = value;\r\n this.layer$.next(this._layer);\r\n }\r\n\r\n get layer(): Layer {\r\n return this._layer;\r\n }\r\n\r\n @Input() color: string = 'primary';\r\n\r\n constructor(private workspaceState: WorkspaceState) { }\r\n\r\n ngOnInit(): void {\r\n this.hasWorkspace$$ = combineLatest([this.workspaceState.workspaceEnabled$, this.layer$])\r\n .subscribe(bunch => this.hasWorkspace$.next(bunch[0] && bunch[1]?.options.workspace?.enabled)\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.hasWorkspace$$.unsubscribe();\r\n }\r\n\r\n activateWorkspace() {\r\n if (\r\n this.workspaceState.workspace$.value &&\r\n (this.workspaceState.workspace$.value as any).layer.id === this.layer.id &&\r\n this.workspaceState.workspacePanelExpanded) {\r\n this.workspaceState.workspacePanelExpanded = false;\r\n } else {\r\n this.workspaceState.workspacePanelExpanded = true;\r\n this.workspaceState.setActiveWorkspaceById(this.layer.id);\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { WorkspaceButtonComponent } from './workspace-button/workspace-button.component';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { IgoLanguageModule } from '@igo2/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatTooltipModule,\r\n IgoLanguageModule\r\n ],\r\n declarations: [WorkspaceButtonComponent],\r\n exports: [WorkspaceButtonComponent]\r\n})\r\nexport class IgoAppWorkspaceModule {}\r\n","<mat-tab-group *ngIf=\"importExportShowBothType\" >\r\n <mat-tab [label]=\"'igo.integration.importExportTool.importExportData' | translate\">\r\n <igo-import-export \r\n [map]=\"map\"\r\n [selectFirstProj]=\"selectFirstProj\"\r\n [projectionsLimitations]=\"projectionsLimitations\"\r\n [store]=\"workspaceStore\"\r\n [selectedMode]=\"importExportState.selectedMode$ | async\"\r\n (selectMode)=\"modeChanged($event)\"\r\n [exportOptions$]=\"importExportState.exportOptions$\"\r\n (exportOptionsChange)=\"exportOptionsChange($event)\">\r\n </igo-import-export>\r\n </mat-tab>\r\n <mat-tab [label]=\"'igo.integration.importExportTool.importExportContext' | translate\">\r\n <igo-context-import-export [map]=\"map\"></igo-context-import-export>\r\n </mat-tab>\r\n</mat-tab-group>\r\n\r\n<igo-import-export \r\n *ngIf=\"!importExportShowBothType && importExportType === 'layer'\"\r\n [map]=\"map\"\r\n [store]=\"workspaceStore\"\r\n [selectedMode]=\"importExportState.selectedMode$ | async\"\r\n (selectMode)=\"modeChanged($event)\"\r\n [exportOptions$]=\"importExportState.exportOptions$\"\r\n (exportOptionsChange)=\"exportOptionsChange($event)\">\r\n</igo-import-export>\r\n\r\n<igo-context-import-export \r\n *ngIf=\"!importExportShowBothType && importExportType === 'context'\"\r\n [map]=\"map\">\r\n</igo-context-import-export>","import { Component, ChangeDetectionStrategy, OnInit, Input } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport type { WorkspaceStore } from '@igo2/common';\r\nimport { IgoMap, ExportOptions, ProjectionsLimitationsOptions } from '@igo2/geo';\r\n\r\nimport { MapState } from '../../map/map.state';\r\nimport { ImportExportMode, ImportExportState, ImportExportType } from '../import-export.state';\r\nimport { WorkspaceState } from '../../workspace/workspace.state';\r\n\r\n@ToolComponent({\r\n name: 'importExport',\r\n title: 'igo.integration.tools.importExport',\r\n icon: 'file-move'\r\n})\r\n@Component({\r\n selector: 'igo-import-export-tool',\r\n templateUrl: './import-export-tool.component.html',\r\n styleUrls: ['./import-export-tool.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ImportExportToolComponent implements OnInit {\r\n\r\n @Input() projectionsLimitations: ProjectionsLimitationsOptions;\r\n\r\n @Input() selectFirstProj: boolean = false;\r\n\r\n /**\r\n * Map to measure on\r\n * @internal\r\n */\r\n get map(): IgoMap { return this.mapState.map; }\r\n\r\n get workspaceStore(): WorkspaceStore {\r\n return this.workspaceState.store;\r\n }\r\n\r\n @Input() importExportType: ImportExportType = ImportExportType.layer;\r\n @Input() importExportShowBothType: boolean = true;\r\n\r\n constructor(\r\n private mapState: MapState,\r\n public importExportState: ImportExportState,\r\n private workspaceState: WorkspaceState,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.selectType();\r\n this.selectMode();\r\n }\r\n\r\n private selectType() {\r\n if (this.importExportType) {\r\n this.importExportState.importExportType$.next(this.importExportType);\r\n }\r\n const userSelectedType = this.importExportState.importExportType$.value;\r\n if (userSelectedType !== undefined) {\r\n this.importExportState.setImportExportType(userSelectedType);\r\n } else {\r\n this.importExportState.setImportExportType(ImportExportType.layer);\r\n }\r\n }\r\n\r\n private selectMode() {\r\n const userSelectedMode = this.importExportState.selectedMode$.value;\r\n if (userSelectedMode !== undefined) {\r\n this.importExportState.setMode(userSelectedMode);\r\n } else {\r\n this.importExportState.setMode(ImportExportMode.import);\r\n\r\n }\r\n }\r\n\r\n public modeChanged(mode: ImportExportMode) {\r\n this.importExportState.setMode(mode);\r\n }\r\n\r\n public exportOptionsChange(exportOptions: ExportOptions) {\r\n this.importExportState.setsExportOptions(exportOptions);\r\n }\r\n\r\n importExportTypeChange(event) {\r\n this.importExportType = event.value;\r\n }\r\n}\r\n","import {\r\n NgModule,\r\n ModuleWithProviders,\r\n CUSTOM_ELEMENTS_SCHEMA\r\n} from '@angular/core';\r\n\r\nimport { IgoImportExportModule } from '@igo2/geo';\r\nimport { ImportExportToolComponent } from './import-export-tool/import-export-tool.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\n\r\nimport { IgoLanguageModule } from '@igo2/core';\r\nimport { IgoContextImportExportModule } from '@igo2/context';\r\n\r\n@NgModule({\r\n imports: [\r\n IgoImportExportModule,\r\n IgoContextImportExportModule,\r\n CommonModule,\r\n IgoLanguageModule,\r\n MatButtonToggleModule,\r\n MatTabsModule\r\n ],\r\n declarations: [ImportExportToolComponent],\r\n exports: [ImportExportToolComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppImportExportModule {\r\n static forRoot(): ModuleWithProviders<IgoAppImportExportModule> {\r\n return {\r\n ngModule: IgoAppImportExportModule,\r\n providers: []\r\n };\r\n }\r\n}\r\n","<igo-layer-list class=\"mapDetailsList\" *ngIf=\"(layers$ | async).length; else empty\"\r\n [map]=\"map\"\r\n igoLayerListBinding\r\n [excludeBaseLayers]=\"excludeBaseLayers\"\r\n [layerFilterAndSortOptions]=\"layerFilterAndSortOptions\"\r\n [expandLegendOfVisibleLayers]=\"expandLegendOfVisibleLayers\"\r\n [toggleLegendOnVisibilityChange]=\"toggleLegendOnVisibilityChange\"\r\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\"\r\n floatLabel=\"never\"\r\n [queryBadge]=\"queryBadge\">\r\n\r\n <ng-template #igoLayerItemToolbar let-layer=\"layer\">\r\n <!-- <igo-download-button [layer]=\"layer\"></igo-download-button> -->\r\n <igo-workspace-button [layer]=\"layer\"></igo-workspace-button>\r\n <igo-export-button [layer]=\"layer\" (click)=\"activateExport(layer)\"></igo-export-button>\r\n <igo-ogc-filter-button [header]=\"ogcButton\" [layer]=\"layer\"></igo-ogc-filter-button>\r\n <igo-time-filter-button [header]=\"timeButton\" [layer]=\"layer\"></igo-time-filter-button>\r\n <igo-track-feature-button [trackFeature]=\"true\" [layer]=\"layer\"></igo-track-feature-button>\r\n <igo-metadata-button [layer]=\"layer\"></igo-metadata-button>\r\n </ng-template>\r\n\r\n</igo-layer-list>\r\n\r\n<ng-template #empty>\r\n <mat-list *ngIf=\"delayedShowEmptyMapContent\">\r\n <p class=\"map-empty mat-typography\">\r\n {{'igo.integration.mapTool.empty' | translate}}</p>\r\n <p *ngIf=\"layerAdditionAllowed && (searchToolInToolbar || catalogToolInToolbar || contextToolInToolbar)\" class=\"map-empty mat-typography\">\r\n {{'igo.integration.mapTool.customize' | translate}}</p>\r\n <mat-list-item *ngIf=\"layerAdditionAllowed && searchToolInToolbar\">\r\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z'> </path> </svg></mat-icon>\r\n <h4 matLine class=\"search-tool mat-typography\" (click)=\"searchEmit()\">\r\n {{'igo.integration.mapTool.search-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n <mat-list-item *ngIf=\"layerAdditionAllowed && catalogToolInToolbar\">\r\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M17,14H19V17H22V19H19V22H17V19H14V17H17V14M11,16L2,9L11,2L20,9L11,16M11,18.54L12,17.75V18C12,18.71 12.12,19.39 12.35,20L11,21.07L2,14.07L3.62,12.81L11,18.54Z'></path> </svg></mat-icon>\r\n <h4 matLine class=\"catalog-tool mat-typography\" (click)=\"catalogEmit()\">\r\n {{'igo.integration.mapTool.catalog-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n <mat-list-item *ngIf=\"layerAdditionAllowed && contextToolInToolbar\">\r\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z'></path> </svg></mat-icon>\r\n <h4 matLine class=\"context-tool mat-typography\" (click)=\"contextEmit()\">\r\n {{'igo.integration.mapTool.context-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n </mat-list>\r\n</ng-template>\r\n","import { Component, Input, OnInit, ChangeDetectorRef } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport {\r\n LayerListControlsEnum,\r\n Layer,\r\n IgoMap,\r\n LayerListControlsOptions,\r\n SearchSourceService,\r\n sourceCanSearch,\r\n ExportOptions\r\n} from '@igo2/geo';\r\n\r\nimport { ToolState } from './../../tool/tool.state';\r\nimport { MapState } from './../map.state';\r\nimport { ImportExportMode, ImportExportState } from '../../import-export/import-export.state';\r\n\r\n@ToolComponent({\r\n name: 'mapDetails',\r\n title: 'igo.integration.tools.map',\r\n icon: 'map'\r\n})\r\n@Component({\r\n selector: 'igo-map-details-tool',\r\n templateUrl: './map-details-tool.component.html',\r\n styleUrls: ['./map-details-tool.component.scss']\r\n})\r\nexport class MapDetailsToolComponent implements OnInit {\r\n public delayedShowEmptyMapContent: boolean = false;\r\n\r\n @Input() toggleLegendOnVisibilityChange: boolean = false;\r\n\r\n @Input() expandLegendOfVisibleLayers: boolean = false;\r\n\r\n @Input() updateLegendOnResolutionChange: boolean = false;\r\n\r\n @Input() ogcButton: boolean = true;\r\n\r\n @Input() timeButton: boolean = true;\r\n\r\n @Input() layerListControls: LayerListControlsOptions = {};\r\n\r\n @Input() queryBadge: boolean = false;\r\n\r\n @Input() layerAdditionAllowed: boolean = true;\r\n\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n get layers$(): Observable<Layer[]> {\r\n return this.map.layers$.pipe(\r\n map((layers) =>\r\n layers.filter(\r\n (layer) =>\r\n layer.showInLayerList !== false &&\r\n (!this.excludeBaseLayers || !layer.baseLayer)\r\n )\r\n )\r\n );\r\n }\r\n\r\n get excludeBaseLayers(): boolean {\r\n return this.layerListControls.excludeBaseLayers || false;\r\n }\r\n\r\n get layerFilterAndSortOptions(): any {\r\n const filterSortOptions = Object.assign(\r\n {\r\n showToolbar: LayerListControlsEnum.default\r\n },\r\n this.layerListControls\r\n );\r\n\r\n switch (this.layerListControls.showToolbar) {\r\n case LayerListControlsEnum.always:\r\n filterSortOptions.showToolbar = LayerListControlsEnum.always;\r\n break;\r\n case LayerListControlsEnum.never:\r\n filterSortOptions.showToolbar = LayerListControlsEnum.never;\r\n break;\r\n default:\r\n break;\r\n }\r\n return filterSortOptions;\r\n }\r\n\r\n get searchToolInToolbar(): boolean {\r\n return (\r\n this.toolState.toolbox.getToolbar().indexOf('searchResults') !== -1 &&\r\n this.searchSourceService\r\n .getSources()\r\n .filter(sourceCanSearch)\r\n .filter((s) => s.available && s.getType() === 'Layer').length > 0\r\n );\r\n }\r\n\r\n get catalogToolInToolbar(): boolean {\r\n return this.toolState.toolbox.getToolbar().indexOf('catalog') !== -1;\r\n }\r\n\r\n get contextToolInToolbar(): boolean {\r\n return this.toolState.toolbox.getToolbar().indexOf('contextManager') !== -1;\r\n }\r\n\r\n constructor(\r\n private mapState: MapState,\r\n private toolState: ToolState,\r\n private searchSourceService: SearchSourceService,\r\n private cdRef: ChangeDetectorRef,\r\n private importExportState: ImportExportState\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n // prevent message to be shown too quickly. Waiting for layers\r\n setTimeout(() => {\r\n this.delayedShowEmptyMapContent = true;\r\n this.cdRef.detectChanges();\r\n }, 250);\r\n }\r\n\r\n searchEmit() {\r\n this.toolState.toolbox.activateTool('searchResults');\r\n }\r\n\r\n catalogEmit() {\r\n this.toolState.toolbox.activateTool('catalog');\r\n }\r\n\r\n contextEmit() {\r\n this.toolState.toolbox.activateTool('contextManager');\r\n }\r\n\r\n activateExport(layer: Layer) {\r\n let id = layer.id;\r\n if (layer.options.workspace?.workspaceId) {\r\n id = layer.options.workspace.workspaceId !== layer.id ? layer.options.workspace.workspaceId : layer.id;\r\n }\r\n this.importExportState.setsExportOptions({ layers: [id] } as ExportOptions);\r\n this.importExportState.setMode(ImportExportMode.export);\r\n this.toolState.toolbox.activateTool('importExport');\r\n }\r\n}\r\n","<mat-tab-group>\r\n\r\n <mat-tab [label]=\"'igo.integration.tools.map' | translate\">\r\n <igo-layer-list\r\n [map]=\"map\"\r\n igoLayerListBinding\r\n [excludeBaseLayers]=\"excludeBaseLayers\"\r\n [layerFilterAndSortOptions]=\"layerFilterAndSortOptions\"\r\n [expandLegendOfVisibleLayers]=\"expandLegendOfVisibleLayers\"\r\n [toggleLegendOnVisibilityChange]=\"toggleLegendOnVisibilityChange\"\r\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\"\r\n [floatLabel]=\"false\"\r\n [queryBadge]=\"queryBadge\">\r\n\r\n <ng-template #igoLayerItemToolbar let-layer=\"layer\">\r\n <!-- <igo-download-button [layer]=\"layer\"></igo-download-button> -->\r\n <igo-workspace-button [layer]=\"layer\"></igo-workspace-button>\r\n <igo-export-button [layer]=\"layer\" (click)=\"activateExport(layer)\"></igo-export-button>\r\n <igo-ogc-filter-button [header]=\"ogcButton\" [layer]=\"layer\"></igo-ogc-filter-button>\r\n <igo-time-filter-button [header]=\"timeButton\" [layer]=\"layer\"></igo-time-filter-button>\r\n <igo-track-feature-button [trackFeature]=\"true\" [layer]=\"layer\"></igo-track-feature-button>\r\n <igo-metadata-button [layer]=\"layer\"></igo-metadata-button>\r\n </ng-template>\r\n\r\n </igo-layer-list>\r\n </mat-tab>\r\n\r\n <mat-tab [label]=\"'igo.integration.tools.contexts' | translate\">\r\n <igo-context-list igoContextListBinding></igo-context-list>\r\n </mat-tab>\r\n\r\n</mat-tab-group>\r\n","import { Component, ChangeDetectionStrategy, Input } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport {\r\n LayerListControlsEnum,\r\n LayerListControlsOptions,\r\n IgoMap,\r\n ExportOptions,\r\n Layer\r\n} from '@igo2/geo';\r\nimport { MapState } from './../map.state';\r\nimport { ImportExportMode, ImportExportState } from '../../import-export/import-export.state';\r\nimport { ToolState } from '../../tool/tool.state';\r\n\r\n/**\r\n * Tool to browse a map's layers or to choose a different map\r\n */\r\n@ToolComponent({\r\n name: 'map',\r\n title: 'igo.integration.tools.map',\r\n icon: 'map'\r\n})\r\n@Component({\r\n selector: 'igo-map-tool',\r\n templateUrl: './map-tool.component.html',\r\n styleUrls: ['./map-tool.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class MapToolComponent {\r\n @Input() toggleLegendOnVisibilityChange: boolean = false;\r\n\r\n @Input() expandLegendOfVisibleLayers: boolean = false;\r\n\r\n @Input() updateLegendOnResolutionChange: boolean = false;\r\n\r\n @Input() ogcButton: boolean = true;\r\n\r\n @Input() timeButton: boolean = true;\r\n\r\n @Input() layerListControls: LayerListControlsOptions = {};\r\n\r\n @Input() queryBadge: boolean = false;\r\n\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n get excludeBaseLayers(): boolean {\r\n return this.layerListControls.excludeBaseLayers || false;\r\n }\r\n\r\n get layerFilterAndSortOptions(): any {\r\n const filterSortOptions = Object.assign(\r\n {\r\n showToolbar: LayerListControlsEnum.default\r\n },\r\n this.layerListControls\r\n );\r\n\r\n switch (this.layerListControls.showToolbar) {\r\n case LayerListControlsEnum.always:\r\n filterSortOptions.showToolbar = LayerListControlsEnum.always;\r\n break;\r\n case LayerListControlsEnum.never:\r\n filterSortOptions.showToolbar = LayerListControlsEnum.never;\r\n break;\r\n default:\r\n break;\r\n }\r\n return filterSortOptions;\r\n }\r\n\r\n constructor(\r\n private mapState: MapState,\r\n private toolState: ToolState,\r\n private importExportState: ImportExportState\r\n ) {}\r\n\r\n activateExport(layer: Layer) {\r\n let id = layer.id;\r\n if (layer.options.workspace?.workspaceId) {\r\n id = layer.options.workspace.workspaceId !== layer.id ? layer.options.workspace.workspaceId : layer.id;\r\n }\r\n this.importExportState.setsExportOptions({ layers: [id] } as ExportOptions);\r\n this.importExportState.setMode(ImportExportMode.export);\r\n this.toolState.toolbox.activateTool('importExport');\r\n }\r\n}\r\n","<mat-tab-group\r\n #tabGroup\r\n [selectedIndex]=\"layerListToolState.selectedTab$ | async\"\r\n (selectedTabChange)=\"tabChanged($event)\">\r\n\r\n <mat-tab [label]=\"'igo.integration.tools.layers' | translate\">\r\n <igo-layer-list *ngIf=\"(layers$ | async).length !== 0; else emptyLayers\"\r\n igoLayerListBinding\r\n [excludeBaseLayers]=\"excludeBaseLayers\"\r\n [layerFilterAndSortOptions]=\"layerFilterAndSortOptions\"\r\n [expandLegendOfVisibleLayers]=\"expandLegendOfVisibleLayers\"\r\n [toggleLegendOnVisibilityChange]=\"toggleLegendOnVisibilityChange\"\r\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\"\r\n [floatLabel]=\"false\"\r\n [queryBadge]=\"queryBadge\"\r\n [map]=\"map\"\r\n (appliedFilterAndSort)= onLayerListChange($event)>\r\n\r\n <ng-template #igoLayerItemToolbar let-layer=\"layer\">\r\n <igo-metadata-button [layer]=\"layer\"></igo-metadata-button>\r\n <igo-track-feature-button [trackFeature]=\"true\" [layer]=\"layer\"></igo-track-feature-button>\r\n <igo-time-filter-button *ngIf=\"isTimeFilterButton(layer)\" [header]=\"timeButton\" [layer]=\"layer\"\r\n (click)=\"activateTimeFilter()\"></igo-time-filter-button>\r\n <igo-ogc-filter-button *ngIf=\"isOGCFilterButton(layer)\" [header]=\"ogcButton\" [layer]=\"layer\"\r\n (click)=\"activateOgcFilter()\"></igo-ogc-filter-button>\r\n <igo-export-button *ngIf=\"isExportButton(layer)\" [layer]=\"layer\" (click)=\"activateExport(layer)\"></igo-export-button>\r\n <igo-workspace-button [layer]=\"layer\"></igo-workspace-button>\r\n </ng-template>\r\n </igo-layer-list>\r\n </mat-tab>\r\n\r\n <mat-tab [label]=\"'igo.integration.tools.legend' | translate\">\r\n <igo-layer-legend-list *ngIf=\"showAllLegend()\"\r\n igoLayerLegendListBinding\r\n [allowShowAllLegends]=\"allowShowAllLegends\"\r\n [showAllLegendsValue]=\"(showAllLegendsValue$ | async)\"\r\n (allLegendsShown)=\"onShowAllLegends($event)\"\r\n [excludeBaseLayers]=\"excludeBaseLayers\"\r\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\">\r\n </igo-layer-legend-list>\r\n <ng-template *ngIf=\"(layers$ | async).length !== 0; else emptyLayers\"></ng-template>\r\n\r\n <p class=\"map-empty mat-typography\"\r\n *ngIf=\"!allowShowAllLegends && (layers$ | async).length !== 0 && (visibleOrInRangeLayers$ | async).length === 0\">\r\n {{ ((visibleLayers$ | async).length) ? ('igo.integration.mapTool.noLayersInRange' | translate) : ('igo.integration.mapTool.noLayersVisible' | translate) }}\r\n </p>\r\n </mat-tab>\r\n\r\n <ng-template #emptyLayers>\r\n <mat-list *ngIf=\"delayedShowEmptyMapContent\">\r\n <p class=\"map-empty mat-typography\">\r\n {{'igo.integration.mapTool.empty' | translate}}</p>\r\n <p *ngIf=\"layerAdditionAllowed && (searchToolInToolbar || catalogToolInToolbar || contextToolInToolbar)\"\r\n class=\"map-empty mat-typography\">\r\n {{'igo.integration.mapTool.customize' | translate}}</p>\r\n\r\n <mat-list-item *ngIf=\"layerAdditionAllowed && searchToolInToolbar\">\r\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%'\r\n preserveAspectRatio='xMidYMid meet' focusable='false'>\r\n <path\r\n d='M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z'>\r\n </path>\r\n </svg></mat-icon>\r\n <h4 matLine class=\"search-tool mat-typography\" (click)=\"searchEmit()\">\r\n {{'igo.integration.mapTool.search-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n <mat-list-item *ngIf=\"layerAdditionAllowed && catalogToolInToolbar\">\r\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%'\r\n preserveAspectRatio='xMidYMid meet' focusable='false'>\r\n <path\r\n d='M17,14H19V17H22V19H19V22H17V19H14V17H17V14M11,16L2,9L11,2L20,9L11,16M11,18.54L12,17.75V18C12,18.71 12.12,19.39 12.35,20L11,21.07L2,14.07L3.62,12.81L11,18.54Z'>\r\n </path>\r\n </svg></mat-icon>\r\n <h4 matLine class=\"catalog-tool mat-typography\" (click)=\"catalogEmit()\">\r\n {{'igo.integration.mapTool.catalog-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n <mat-list-item *ngIf=\"layerAdditionAllowed && contextToolInToolbar\">\r\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%'\r\n preserveAspectRatio='xMidYMid meet' focusable='false'>\r\n <path\r\n d='M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z'>\r\n </path>\r\n </svg></mat-icon>\r\n <h4 matLine class=\"context-tool mat-typography\" (click)=\"contextEmit()\">\r\n {{'igo.integration.mapTool.context-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n </mat-list>\r\n </ng-template>\r\n</mat-tab-group>\r\n","import {\r\n Component,\r\n ChangeDetectionStrategy,\r\n Input,\r\n OnInit,\r\n ViewChild,\r\n OnDestroy\r\n} from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport {\r\n LayerListControlsEnum,\r\n LayerListControlsOptions,\r\n IgoMap,\r\n SearchSourceService,\r\n sourceCanSearch,\r\n Layer,\r\n ExportOptions,\r\n VectorLayer\r\n} from '@igo2/geo';\r\n\r\nimport { LayerListToolState } from '../layer-list-tool.state';\r\nimport { MatTabChangeEvent } from '@angular/material/tabs';\r\nimport { ToolState } from '../../tool/tool.state';\r\nimport { MapState } from '../map.state';\r\nimport { BehaviorSubject, Observable, Subscription, combineLatest } from 'rxjs';\r\nimport { map, debounceTime } from 'rxjs/operators';\r\nimport { ImportExportMode, ImportExportState } from '../../import-export/import-export.state';\r\n/**\r\n * Tool to browse a map's layers or to choose a different map\r\n */\r\n@ToolComponent({\r\n name: 'mapTools',\r\n title: 'igo.integration.tools.map',\r\n icon: 'map'\r\n})\r\n@Component({\r\n selector: 'igo-map-tools',\r\n templateUrl: './map-tools.component.html',\r\n styleUrls: ['./map-tools.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class MapToolsComponent implements OnInit, OnDestroy {\r\n layers$: BehaviorSubject<Layer[]> = new BehaviorSubject([]);\r\n showAllLegendsValue$: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n\r\n private resolution$$: Subscription;\r\n private visibleOrInRangeLayers$$: Subscription;\r\n public delayedShowEmptyMapContent: boolean = false;\r\n\r\n @Input() allowShowAllLegends: boolean = false;\r\n\r\n @Input() showAllLegendsValue: boolean = false;\r\n\r\n @Input() toggleLegendOnVisibilityChange: boolean = false;\r\n\r\n @Input() expandLegendOfVisibleLayers: boolean = false;\r\n\r\n @Input() updateLegendOnResolutionChange: boolean = false;\r\n\r\n @Input() selectedTabAtOpening: string;\r\n\r\n @Input() ogcButton: boolean = true;\r\n\r\n @Input() timeButton: boolean = true;\r\n\r\n @Input() layerAdditionAllowed: boolean = true;\r\n\r\n @Input()\r\n get layerListControls(): LayerListControlsOptions {\r\n return this._layerListControls;\r\n }\r\n set layerListControls(value: LayerListControlsOptions) {\r\n const stateOptions = this.layerListToolState.getLayerListControls();\r\n const stateKeyword = stateOptions.keyword;\r\n const stateOnlyVisible = stateOptions.onlyVisible;\r\n const stateSortAlpha = stateOptions.sortAlpha;\r\n\r\n value.keyword = stateKeyword !== '' ? stateKeyword : value.keyword;\r\n value.onlyVisible =\r\n stateOnlyVisible !== undefined ? stateOnlyVisible : value.onlyVisible;\r\n value.sortAlpha =\r\n stateSortAlpha !== undefined ? stateSortAlpha : value.sortAlpha;\r\n\r\n value.onlyVisible =\r\n value.onlyVisible === undefined ? false : value.onlyVisible;\r\n value.sortAlpha = value.sortAlpha === undefined ? false : value.sortAlpha;\r\n\r\n this._layerListControls = value;\r\n }\r\n private _layerListControls = {};\r\n\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n @Input() queryBadge: boolean = false;\r\n\r\n get visibleOrInRangeLayers$(): Observable<Layer[]> {\r\n return this.layers$.pipe(\r\n map((layers) =>\r\n layers.filter(\r\n (layer) => layer.visible$.value && layer.isInResolutionsRange$.value\r\n )\r\n )\r\n );\r\n }\r\n\r\n get visibleLayers$(): Observable<Layer[]> {\r\n return this.layers$.pipe(\r\n map((layers) => layers.filter((layer) => layer.visible$.value))\r\n );\r\n }\r\n\r\n get excludeBaseLayers(): boolean {\r\n return this.layerListControls.excludeBaseLayers || false;\r\n }\r\n\r\n get layerFilterAndSortOptions(): LayerListControlsOptions {\r\n const filterSortOptions = Object.assign(\r\n {\r\n showToolbar: LayerListControlsEnum.default\r\n },\r\n this.layerListControls\r\n );\r\n\r\n switch (this.layerListControls.showToolbar) {\r\n case LayerListControlsEnum.always:\r\n filterSortOptions.showToolbar = LayerListControlsEnum.always;\r\n break;\r\n case LayerListControlsEnum.never:\r\n filterSortOptions.showToolbar = LayerListControlsEnum.never;\r\n break;\r\n default:\r\n break;\r\n }\r\n return filterSortOptions;\r\n }\r\n\r\n @ViewChild('tabGroup', { static: true }) tabGroup;\r\n\r\n get searchToolInToolbar(): boolean {\r\n return (\r\n this.toolState.toolbox.getToolbar().indexOf('searchResults') !== -1 &&\r\n this.searchSourceService\r\n .getSources()\r\n .filter(sourceCanSearch)\r\n .filter((s) => s.available && s.getType() === 'Layer').length > 0\r\n );\r\n }\r\n\r\n get catalogToolInToolbar(): boolean {\r\n return this.toolState.toolbox.getToolbar().indexOf('catalog') !== -1;\r\n }\r\n\r\n get contextToolInToolbar(): boolean {\r\n return this.toolState.toolbox.getToolbar().indexOf('contextManager') !== -1;\r\n }\r\n\r\n constructor(\r\n public layerListToolState: LayerListToolState,\r\n private toolState: ToolState,\r\n public mapState: MapState,\r\n private searchSourceService: SearchSourceService,\r\n private importExportState: ImportExportState\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.selectedTab();\r\n this.resolution$$ = combineLatest([\r\n this.map.layers$,\r\n this.map.viewController.resolution$\r\n ])\r\n .pipe(debounceTime(10))\r\n .subscribe((bunch: [Layer[], number]) => {\r\n this.layers$.next(\r\n bunch[0].filter(\r\n (layer) =>\r\n layer.showInLayerList !== false &&\r\n (!this.excludeBaseLayers || !layer.baseLayer)\r\n )\r\n );\r\n });\r\n\r\n if (this.allowShowAllLegends) {\r\n this.mapState.showAllLegendsValue =\r\n this.mapState.showAllLegendsValue !== undefined\r\n ? this.mapState.showAllLegendsValue\r\n : this.showAllLegendsValue || false;\r\n this.showAllLegendsValue$.next(this.mapState.showAllLegendsValue);\r\n } else {\r\n this.showAllLegendsValue$.next(false);\r\n }\r\n\r\n // prevent message to be shown too quickly. Waiting for layers\r\n setTimeout(() => (this.delayedShowEmptyMapContent = true), 250);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.resolution$$.unsubscribe();\r\n if (this.visibleOrInRangeLayers$$) {\r\n this.visibleOrInRangeLayers$$.unsubscribe();\r\n }\r\n }\r\n\r\n onShowAllLegends(event) {\r\n this.mapState.showAllLegendsValue = event;\r\n this.showAllLegendsValue$.next(event);\r\n }\r\n\r\n private selectedTab() {\r\n const userSelectedTab = this.layerListToolState.selectedTab$.value;\r\n if (userSelectedTab !== undefined) {\r\n this.layerListToolState.setSelectedTab(userSelectedTab);\r\n } else {\r\n if (this.selectedTabAtOpening === 'legend') {\r\n this.layerListToolState.setSelectedTab(1);\r\n } else {\r\n this.layerListToolState.setSelectedTab(0);\r\n }\r\n }\r\n }\r\n\r\n public tabChanged(tab: MatTabChangeEvent) {\r\n this.layerListToolState.setSelectedTab(tab.index);\r\n this.layers$.next(\r\n this.map.layers.filter(\r\n (layer) =>\r\n layer.showInLayerList !== false &&\r\n (!this.excludeBaseLayers || !layer.baseLayer)\r\n )\r\n );\r\n }\r\n\r\n onLayerListChange(appliedFilters: LayerListControlsOptions) {\r\n this.layerListToolState.setKeyword(appliedFilters.keyword);\r\n this.layerListToolState.setSortAlpha(appliedFilters.sortAlpha);\r\n this.layerListToolState.setOnlyVisible(appliedFilters.onlyVisible);\r\n }\r\n\r\n showAllLegend() {\r\n if (this.layers$.getValue().length === 0) {\r\n return false;\r\n } else if (\r\n this.layers$.getValue().length !== 0 &&\r\n this.allowShowAllLegends === false\r\n ) {\r\n let visibleOrInRangeLayers;\r\n this.visibleOrInRangeLayers$$ = this.visibleOrInRangeLayers$.subscribe((value) => {\r\n value.length === 0\r\n ? (visibleOrInRangeLayers = false)\r\n : (visibleOrInRangeLayers = true);\r\n });\r\n\r\n if (visibleOrInRangeLayers === false) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n activateExport(layer: Layer) {\r\n let id = layer.id;\r\n if (layer.options.workspace?.workspaceId) {\r\n id = layer.options.workspace.workspaceId !== layer.id ? layer.options.workspace.workspaceId : layer.id;\r\n }\r\n this.importExportState.setsExportOptions({ layers: [id] } as ExportOptions);\r\n this.importExportState.setMode(ImportExportMode.export);\r\n this.toolState.toolbox.activateTool('importExport');\r\n }\r\n\r\n activateTimeFilter() {\r\n this.toolState.toolbox.activateTool('activeTimeFilter');\r\n }\r\n\r\n activateOgcFilter() {\r\n this.toolState.toolbox.activateTool('activeOgcFilter');\r\n }\r\n\r\n searchEmit() {\r\n this.toolState.toolbox.activateTool('searchResults');\r\n }\r\n\r\n catalogEmit() {\r\n this.toolState.toolbox.activateTool('catalog');\r\n }\r\n\r\n contextEmit() {\r\n this.toolState.toolbox.activateTool('contextManager');\r\n }\r\n\r\n isTimeFilterButton(layer): boolean {\r\n const options = layer.dataSource.options;\r\n return this.timeButton && options.timeFilterable && options.timeFilter;\r\n }\r\n\r\n isOGCFilterButton(layer): boolean {\r\n const options = layer.dataSource.options;\r\n return this.ogcButton && options.ogcFilters && options.ogcFilters.enabled &&\r\n (options.ogcFilters.pushButtons || options.ogcFilters.checkboxes || options.ogcFilters.radioButtons\r\n || options.ogcFilters.select || options.ogcFilters.autocomplete || options.ogcFilters.editable);\r\n }\r\n\r\n isExportButton(layer: Layer): boolean {\r\n if (\r\n (layer instanceof VectorLayer && layer.exportable === true) ||\r\n (layer.dataSource.options.download && layer.dataSource.options.download.url) ||\r\n (layer.options.workspace?.enabled && layer.options.workspace?.workspaceId !== layer.id))\r\n {\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\n","<igo-layer-legend-list *ngIf=\"showAllLegend()\"\r\n igoLayerLegendListBinding\r\n [excludeBaseLayers]=\"excludeBaseLayers\"\r\n [allowShowAllLegends]=\"allowShowAllLegends\"\r\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\"\r\n [showAllLegendsValue]=\"(showAllLegendsValue$ | async)\"\r\n (allLegendsShown)=\"onShowAllLegends($event)\">\r\n</igo-layer-legend-list>\r\n<ng-template *ngIf=\"(layers$ | async).length !== 0; else emptyLayers\"></ng-template>\r\n\r\n<p class=\"map-empty mat-typography\"\r\n *ngIf=\"!allowShowAllLegends && (layers$ | async).length !== 0 && (visibleOrInRangeLayers$ | async).length === 0\">\r\n {{ ((visibleLayers$ | async).length) ? ('igo.integration.mapTool.noLayersInRange' | translate) : ('igo.integration.mapTool.noLayersVisible' | translate) }}\r\n</p>\r\n\r\n\r\n<ng-template #emptyLayers>\r\n <mat-list *ngIf=\"delayedShowEmptyMapContent\">\r\n <p class=\"map-empty mat-typography\">\r\n {{'igo.integration.mapTool.empty' | translate}}</p>\r\n <p *ngIf=\"layerAdditionAllowed && (searchToolInToolbar || catalogToolInToolbar || contextToolInToolbar)\" class=\"map-empty mat-typography\">\r\n {{'igo.integration.mapTool.customize' | translate}}</p>\r\n\r\n <mat-list-item *ngIf=\"layerAdditionAllowed && searchToolInToolbar\">\r\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z'> </path> </svg></mat-icon>\r\n <h4 matLine class=\"search-tool mat-typography\" (click)=\"searchEmit()\">\r\n {{'igo.integration.mapTool.search-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n <mat-list-item *ngIf=\"layerAdditionAllowed && catalogToolInToolbar\">\r\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M17,14H19V17H22V19H19V22H17V19H14V17H17V14M11,16L2,9L11,2L20,9L11,16M11,18.54L12,17.75V18C12,18.71 12.12,19.39 12.35,20L11,21.07L2,14.07L3.62,12.81L11,18.54Z'></path> </svg></mat-icon>\r\n <h4 matLine class=\"catalog-tool mat-typography\" (click)=\"catalogEmit()\">\r\n {{'igo.integration.mapTool.catalog-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n <mat-list-item *ngIf=\"layerAdditionAllowed && contextToolInToolbar\">\r\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z'></path> </svg></mat-icon>\r\n <h4 matLine class=\"context-tool mat-typography\" (click)=\"contextEmit()\">\r\n {{'igo.integration.mapTool.context-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n </mat-list>\r\n</ng-template>\r\n","import {\r\n Component,\r\n Input,\r\n OnInit,\r\n OnDestroy,\r\n ChangeDetectorRef\r\n} from '@angular/core';\r\nimport { Observable, Subscription, BehaviorSubject, ReplaySubject, combineLatest } from 'rxjs';\r\nimport { map, debounceTime } from 'rxjs/operators';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport {\r\n Layer,\r\n IgoMap,\r\n LayerListControlsOptions,\r\n SearchSourceService,\r\n sourceCanSearch\r\n} from '@igo2/geo';\r\n\r\nimport { ToolState } from './../../tool/tool.state';\r\nimport { MapState } from './../map.state';\r\n\r\n@ToolComponent({\r\n name: 'mapLegend',\r\n title: 'igo.integration.tools.legend',\r\n icon: 'format-list-bulleted-type'\r\n})\r\n@Component({\r\n selector: 'igo-map-legend-tool',\r\n templateUrl: './map-legend-tool.component.html',\r\n styleUrls: ['./map-legend-tool.component.scss']\r\n})\r\nexport class MapLegendToolComponent implements OnInit, OnDestroy {\r\n public delayedShowEmptyMapContent: boolean = false;\r\n\r\n layers$: BehaviorSubject<Layer[]> = new BehaviorSubject([]);\r\n showAllLegendsValue$: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n change$ = new ReplaySubject<void>(1);\r\n\r\n private resolution$$: Subscription;\r\n private visibleOrInRangeLayers$$: Subscription;\r\n\r\n @Input() updateLegendOnResolutionChange: boolean = false;\r\n\r\n @Input() layerAdditionAllowed: boolean = true;\r\n\r\n @Input() allowShowAllLegends: boolean = false;\r\n\r\n @Input() showAllLegendsValue: boolean = false;\r\n\r\n @Input() layerListControls: LayerListControlsOptions = {};\r\n\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n get visibleOrInRangeLayers$(): Observable<Layer[]> {\r\n return this.layers$.pipe(\r\n map(layers =>\r\n layers.filter(\r\n layer => layer.visible$.value && layer.isInResolutionsRange$.value\r\n )\r\n )\r\n );\r\n }\r\n\r\n get visibleLayers$(): Observable<Layer[]> {\r\n return this.layers$.pipe(\r\n map(layers => layers.filter(layer => layer.visible$.value))\r\n );\r\n }\r\n\r\n get excludeBaseLayers(): boolean {\r\n return this.layerListControls.excludeBaseLayers || false;\r\n }\r\n\r\n get searchToolInToolbar(): boolean {\r\n return (\r\n this.toolState.toolbox.getToolbar().indexOf('searchResults') !== -1 &&\r\n this.searchSourceService\r\n .getSources()\r\n .filter(sourceCanSearch)\r\n .filter(s => s.available && s.getType() === 'Layer').length > 0\r\n );\r\n }\r\n\r\n get catalogToolInToolbar(): boolean {\r\n return this.toolState.toolbox.getToolbar().indexOf('catalog') !== -1;\r\n }\r\n\r\n get contextToolInToolbar(): boolean {\r\n return this.toolState.toolbox.getToolbar().indexOf('contextManager') !== -1;\r\n }\r\n constructor(\r\n private mapState: MapState,\r\n private toolState: ToolState,\r\n private searchSourceService: SearchSourceService,\r\n private cdRef: ChangeDetectorRef\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.resolution$$ = combineLatest([\r\n this.map.layers$,\r\n this.map.viewController.resolution$\r\n ])\r\n .pipe(debounceTime(10))\r\n .subscribe((bunch: [Layer[], number]) => {\r\n this.layers$.next(\r\n bunch[0].filter(\r\n layer =>\r\n layer.showInLayerList !== false &&\r\n (!this.excludeBaseLayers || !layer.baseLayer)\r\n )\r\n );\r\n });\r\n\r\n if (this.allowShowAllLegends) {\r\n this.mapState.showAllLegendsValue =\r\n this.mapState.showAllLegendsValue !== undefined\r\n ? this.mapState.showAllLegendsValue\r\n : this.showAllLegendsValue || false;\r\n this.showAllLegendsValue$.next(this.mapState.showAllLegendsValue);\r\n } else {\r\n this.showAllLegendsValue$.next(false);\r\n }\r\n\r\n // prevent message to be shown too quickly. Waiting for layers\r\n setTimeout(() => {\r\n this.delayedShowEmptyMapContent = true;\r\n this.cdRef.detectChanges();\r\n }, 250);\r\n }\r\n\r\n onShowAllLegends(event) {\r\n this.mapState.showAllLegendsValue = event;\r\n this.showAllLegendsValue$.next(event);\r\n }\r\n\r\n showAllLegend() {\r\n if (this.layers$.getValue().length === 0) {\r\n return false;\r\n } else if (\r\n this.layers$.getValue().length !== 0 &&\r\n this.allowShowAllLegends === false\r\n ) {\r\n let visibleOrInRangeLayers;\r\n this.visibleOrInRangeLayers$$ = this.visibleOrInRangeLayers$.subscribe(value => {\r\n value.length === 0\r\n ? (visibleOrInRangeLayers = false)\r\n : (visibleOrInRangeLayers = true);\r\n });\r\n\r\n if (visibleOrInRangeLayers === false) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.resolution$$.unsubscribe();\r\n if (this.visibleOrInRangeLayers$$) {\r\n this.visibleOrInRangeLayers$$.unsubscribe();\r\n }\r\n }\r\n\r\n searchEmit() {\r\n this.toolState.toolbox.activateTool('searchResults');\r\n }\r\n\r\n catalogEmit() {\r\n this.toolState.toolbox.activateTool('catalog');\r\n }\r\n\r\n contextEmit() {\r\n this.toolState.toolbox.activateTool('contextManager');\r\n }\r\n}\r\n","<div *ngIf=\"userControlledLayerList.length; else noLayersBlock\" class=\"igo-swipe-select-container\">\r\n <form class=\"igo-form\" [formGroup]=\"form\">\r\n <mat-form-field>\r\n <mat-label>{{'igo.integration.advanced-map-tool.advanced-swipe.swipe-select' | translate}}</mat-label>\r\n <mat-select formControlName=\"layers\" multiple>\r\n <mat-option [value]=\"1\" (click)=\"selectAll(e)\" #e>\r\n {{'igo.integration.advanced-map-tool.advanced-swipe.selectAll' | translate}}\r\n </mat-option>\r\n <mat-divider></mat-divider>\r\n <mat-option *ngFor=\"let layer of userControlledLayerList\" [value]=\"layer\" (click)=\"applyNewLayers(e)\">{{layer.title}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </form>\r\n\r\n <mat-slide-toggle class=\"swipe-toggle mat-typography\"\r\n [checked]=\"swipe\"\r\n [labelPosition]=\"'before'\"\r\n (change)=\"startSwipe($event.checked)\">\r\n {{'igo.integration.advanced-map-tool.advanced-swipe.swipe' | translate}}\r\n </mat-slide-toggle> \r\n</div>\r\n\r\n<ng-template #noLayersBlock>\r\n <mat-list>\r\n <p class=\"map-empty mat-typography\">\r\n {{'igo.integration.advanced-map-tool.advanced-swipe.empty' | translate}}</p>\r\n <p class=\"map-empty mat-typography\">\r\n {{'igo.integration.advanced-map-tool.advanced-swipe.customize' | translate}}</p>\r\n <mat-list-item>\r\n <mat-icon mat-list-icon svgIcon=\"magnify\"></mat-icon>\r\n <h4 matLine class=\"search-tool mat-typography\" (click)=\"searchEmit()\">\r\n {{'igo.integration.advanced-map-tool.advanced-swipe.search-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n <mat-list-item>\r\n <mat-icon mat-list-icon svgIcon=\"layers-plus\"></mat-icon>\r\n <h4 matLine class=\"catalog-tool mat-typography\" (click)=\"catalogEmit()\">\r\n {{'igo.integration.advanced-map-tool.advanced-swipe.catalog-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n <mat-list-item>\r\n <mat-icon mat-list-icon svgIcon=\"star\"></mat-icon>\r\n <h4 matLine class=\"context-tool mat-typography\" (click)=\"contextEmit()\">\r\n {{'igo.integration.advanced-map-tool.advanced-swipe.context-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n </mat-list>\r\n</ng-template>\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { ContextService, DetailedContext } from '@igo2/context';\r\nimport { IgoMap, Layer, VectorLayer } from '@igo2/geo';\r\nimport { MapState } from '../../map.state';\r\nimport { ToolState } from '../../../tool/tool.state';\r\n\r\n@Component({\r\n selector: 'igo-advanced-swipe',\r\n templateUrl: './advanced-swipe.component.html',\r\n styleUrls: ['./advanced-swipe.component.scss']\r\n})\r\n\r\nexport class AdvancedSwipeComponent implements OnInit, OnDestroy {\r\n public swipe: boolean = false;\r\n public layerList: Layer[];\r\n public userControlledLayerList: Layer[];\r\n public form: FormGroup;\r\n public layers: VectorLayer[];\r\n public res: DetailedContext;\r\n public listForSwipe: Layer[];\r\n\r\n /**\r\n * Get an active map state\r\n */\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n constructor(\r\n public mapState: MapState,\r\n private contextService: ContextService,\r\n private formBuilder: FormBuilder,\r\n private toolState: ToolState) {\r\n this.buildForm();\r\n }\r\n\r\n /**\r\n * Get the list of layers for swipe\r\n * @internal\r\n */\r\n ngOnInit() {\r\n this.map.layers$.subscribe(ll => this.userControlledLayerList = ll.filter(layer =>\r\n (!layer.baseLayer && layer.showInLayerList && layer.displayed)));\r\n }\r\n\r\n /**\r\n * Desactivate the swipe\r\n * @internal\r\n */\r\n ngOnDestroy(){\r\n this.swipe = false;\r\n this.map.swipeEnabled$.next(this.swipe);\r\n }\r\n\r\n /**\r\n * Build a form for choise of the layers\r\n */\r\n private buildForm() {\r\n this.form = this.formBuilder.group({\r\n layers: ['', [Validators.required]]\r\n });\r\n }\r\n\r\n /**\r\n * Activate the swipe, send a list of layers for a swipe-tool\r\n */\r\n startSwipe(toggle: boolean){\r\n this.swipe = toggle;\r\n this.map.swipeEnabled$.next(toggle);\r\n this.listForSwipe = [];\r\n for (const layer of this.form.value.layers) {\r\n this.listForSwipe.push(layer);\r\n }\r\n this.map.selectedFeatures$.next(this.listForSwipe);\r\n }\r\n\r\n /**\r\n * Restart a swipe for a new layers-list\r\n */\r\n applyNewLayers(e) {\r\n this.startSwipe(false); // l'approche KISS\r\n this.startSwipe(true);\r\n if (e._selected) {e._selected = false; }\r\n const allLayers = this.userControlledLayerList.length;\r\n const selectedLayers = this.form.controls.layers.value.length;\r\n if (selectedLayers === allLayers){\r\n e._selected = true;\r\n }\r\n }\r\n\r\n /**\r\n * Select all list of layers and restart a tool\r\n */\r\n selectAll(e) {\r\n if (e._selected) {\r\n this.form.controls.layers.setValue(this.userControlledLayerList);\r\n e._selected = true;\r\n }\r\n else {\r\n this.form.controls.layers.setValue([]);\r\n }\r\n this.startSwipe(false);\r\n this.startSwipe(true);\r\n }\r\n\r\n /**\r\n * Open search tool\r\n */\r\n searchEmit() {\r\n this.toolState.toolbox.activateTool('searchResults');\r\n }\r\n\r\n /**\r\n * Open catalog\r\n */\r\n catalogEmit() {\r\n this.toolState.toolbox.activateTool('catalog');\r\n }\r\n\r\n /**\r\n * Open context manager\r\n */\r\n contextEmit() {\r\n this.toolState.toolbox.activateTool('contextManager');\r\n }\r\n}\r\n","<mat-form-field *ngIf=\"units; else elseBlock\" class=\"coordinates\">\r\n <textarea #textArea matInput readonly rows=\"1\"\r\n [placeholder]=\"'igo.integration.advanced-map-tool.advanced-coordinates.lon' | translate\"\r\n [value]=\"coordinates[0]\"></textarea>\r\n</mat-form-field>\r\n<ng-template #elseBlock >\r\n <mat-form-field class=\"coordinates\">\r\n <textarea #textArea matInput readonly rows=\"1\"\r\n [placeholder]=\"'igo.integration.advanced-map-tool.advanced-coordinates.est' | translate\"\r\n [value]=\"coordinates[0]\"></textarea></mat-form-field>\r\n</ng-template>\r\n\r\n<mat-form-field *ngIf=\"units; else elseBlock2\" class=\"coordinates2\">\r\n <textarea #textArea matInput readonly rows=\"1\"\r\n [placeholder]=\"'igo.integration.advanced-map-tool.advanced-coordinates.lat' | translate\"\r\n [value]=\"coordinates[1]\"></textarea>\r\n</mat-form-field>\r\n<ng-template #elseBlock2 >\r\n <mat-form-field class=\"coordinates2\"> <textarea #textArea matInput readonly rows=\"1\"\r\n [placeholder]=\"'igo.integration.advanced-map-tool.advanced-coordinates.nord' | translate\"\r\n [value]=\"coordinates[1]\"></textarea></mat-form-field>\r\n</ng-template>\r\n\r\n<button class=\"igo-form-button-group\"\r\n mat-raised-button\r\n (click)=\"copyTextToClipboard()\">\r\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\r\n {{ 'igo.integration.advanced-map-tool.advanced-coordinates.copy' | translate }}\r\n</button>\r\n\r\n<form class=\"igo-form\" [formGroup]=\"form\">\r\n <mat-form-field class=\"igo-input-container\">\r\n <mat-label>{{'igo.integration.advanced-map-tool.advanced-coordinates.coordSystem' | translate}}</mat-label>\r\n <mat-select [(value)]=\"inputProj\">\r\n <mat-option matTooltipShowDelay=\"500\"\r\n *ngFor=\"let projection of (projections$ | async)\"\r\n [value]=\"projection\"\r\n (click)=\"$event.stopPropagation()\">\r\n {{projection.translatedValue || projection.alias }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-slide-toggle class=\"center-toggle mat-typography\"\r\n [checked]=\"center\"\r\n [labelPosition]=\"'before'\"\r\n (change)=\"displayCenter($event.checked)\">\r\n {{'igo.integration.advanced-map-tool.advanced-coordinates.center' | translate}}\r\n </mat-slide-toggle> \r\n</form>\r\n\r\n<p class=\"igo-zoom mat-typography\">{{'igo.integration.advanced-map-tool.advanced-coordinates.zoom' | translate}} {{map.viewController.getZoom() }}</p>\r\n<p class=\"igo-zoom mat-typography\">{{'igo.integration.advanced-map-tool.advanced-coordinates.scale' | translate}} {{ formattedScale$ | async }}</p>\r\n<p class=\"igo-zoom mat-typography\">{{'igo.integration.advanced-map-tool.advanced-coordinates.resolution' | translate}} {{map.viewController.getResolution() | number: '1.0-0' }}</p>","import { ChangeDetectorRef, Component, OnDestroy, OnInit, Input } from '@angular/core';\r\nimport { formatScale, IgoMap, InputProjections, ProjectionsLimitationsOptions } from '@igo2/geo';\r\nimport { MapState } from '../../map.state';\r\nimport { Clipboard } from '@igo2/utils';\r\nimport { MessageService, LanguageService, StorageService, StorageScope, ConfigService } from '@igo2/core';\r\nimport { BehaviorSubject, combineLatest, Subscription } from 'rxjs';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport { zoneMtm, zoneUtm, computeProjectionsConstraints } from '@igo2/geo';\r\nimport * as olproj from 'ol/proj';\r\n/**\r\n * Tool to display the coordinates and a cursor of the center of the map\r\n */\r\n@Component({\r\n selector: 'igo-advanced-coordinates',\r\n templateUrl: './advanced-coordinates.component.html',\r\n styleUrls: ['./advanced-coordinates.component.scss']\r\n})\r\nexport class AdvancedCoordinatesComponent implements OnInit, OnDestroy {\r\n public formattedScale$: BehaviorSubject<string> = new BehaviorSubject('');\r\n public projections$: BehaviorSubject<InputProjections[]> = new BehaviorSubject([]);\r\n public form: FormGroup;\r\n public coordinates: string[];\r\n private currentCenterDefaultProj: [number, number];\r\n public center: boolean = this.storageService.get('centerToggle') as boolean;\r\n private inMtmZone: boolean = true;\r\n private inLambert2 = {32198: true, 3798: true};\r\n private mapState$$: Subscription;\r\n private _projectionsLimitations: ProjectionsLimitationsOptions = {};\r\n private projectionsConstraints: ProjectionsLimitationsOptions;\r\n private defaultProj: InputProjections = {\r\n translatedValue: this.languageService.translate.instant('igo.geo.importExportForm.projections.wgs84', { code: 'EPSG:4326' }),\r\n translateKey: 'wgs84', alias: 'WGS84', code: 'EPSG:4326', zone: ''\r\n };\r\n private currentZones = { utm: undefined, mtm: undefined };\r\n public units: boolean = true;\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n get inputProj(): InputProjections {\r\n return this.form.get('inputProj').value;\r\n }\r\n set inputProj(value: InputProjections) {\r\n this.form.patchValue({ inputProj: value });\r\n }\r\n get projectionsLimitations(): ProjectionsLimitationsOptions {\r\n return this._projectionsLimitations || {};\r\n }\r\n\r\n @Input()\r\n set projectionsLimitations(value: ProjectionsLimitationsOptions) {\r\n this._projectionsLimitations = value;\r\n }\r\n\r\n constructor(\r\n public mapState: MapState,\r\n private languageService: LanguageService,\r\n private messageService: MessageService,\r\n private cdRef: ChangeDetectorRef,\r\n private storageService: StorageService,\r\n private config: ConfigService,\r\n private formBuilder: FormBuilder) {\r\n this.computeProjections();\r\n this.buildForm();\r\n }\r\n\r\n /**\r\n * Listen a state of the map, a state of a form, update the coordinates\r\n */\r\n ngOnInit(): void {\r\n this.mapState$$ = combineLatest([this.map.viewController.state$.pipe(debounceTime(50)), this.form.valueChanges])\r\n .subscribe(() => {\r\n this.setScaleValue(this.map);\r\n this.currentCenterDefaultProj = this.map.viewController.getCenter(this.defaultProj.code);\r\n const currentMtmZone = zoneMtm(this.currentCenterDefaultProj[0]);\r\n const currentUtmZone = zoneUtm(this.currentCenterDefaultProj[0]);\r\n if (!this.inMtmZone && currentMtmZone !== this.currentZones.mtm) {\r\n this.back2quebec();\r\n }\r\n let zoneChange = false;\r\n if (currentMtmZone !== this.currentZones.mtm) {\r\n this.currentZones.mtm = currentMtmZone;\r\n zoneChange = true;\r\n }\r\n if (currentUtmZone !== this.currentZones.utm) {\r\n this.currentZones.utm = currentUtmZone;\r\n zoneChange = true;\r\n }\r\n if (zoneChange) {\r\n this.updateProjectionsZoneChange();\r\n }\r\n this.checkLambert(this.currentCenterDefaultProj);\r\n this.coordinates = this.getCoordinates();\r\n this.cdRef.detectChanges();\r\n this.storageService.set('currentProjection', this.inputProj, StorageScope.SESSION);\r\n });\r\n\r\n const tempInputProj = this.storageService.get('currentProjection') as InputProjections;\r\n this.inputProj = this.projections$.value[0];\r\n if (tempInputProj !== null)\r\n {\r\n const pos = this.positionInList(tempInputProj);\r\n this.inputProj = this.projections$.value[pos];\r\n this.updateZoneMtmUtm();\r\n }\r\n this.map.mapCenter$.next(this.center);\r\n this.coordinates = this.getCoordinates();\r\n this.currentCenterDefaultProj = this.map.viewController.getCenter(this.defaultProj.code);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.map.mapCenter$.next(false);\r\n this.mapState$$.unsubscribe();\r\n }\r\n\r\n setScaleValue(map: IgoMap) {\r\n this.formattedScale$.next(': ~ 1 / ' + formatScale(map.viewController.getScale()));\r\n }\r\n /**\r\n * Coordinates of the center of the map on the appropriate systeme of coordinates\r\n * @returns Array of two numbers\r\n */\r\n getCoordinates(): string[] {\r\n this.currentZones.mtm = zoneMtm(this.currentCenterDefaultProj[0]);\r\n this.currentZones.utm = zoneUtm(this.currentCenterDefaultProj[0]);\r\n let coord;\r\n const code = this.inputProj.code;\r\n let decimal = 2;\r\n if (code.includes('EPSG:4326') || code.includes('EPSG:4269')) {\r\n decimal = 5;\r\n }\r\n this.units = (code === 'EPSG:4326' || code === 'EPSG:4269');\r\n coord = this.map.viewController.getCenter(code).map(c => c.toFixed(decimal));\r\n return coord;\r\n }\r\n\r\n /**\r\n * Copy the coordinates to a clipboard\r\n */\r\n copyTextToClipboard(): void {\r\n const successful = Clipboard.copy(this.coordinates.toString());\r\n if (successful) {\r\n const translate = this.languageService.translate;\r\n const title = translate.instant(\r\n 'igo.integration.advanced-map-tool.advanced-coordinates.copyTitle'\r\n );\r\n const msg = translate.instant('igo.integration.advanced-map-tool.advanced-coordinates.copyMsg');\r\n this.messageService.success(msg, title);\r\n }\r\n }\r\n\r\n /**\r\n * Display a cursor on the center of the map\r\n */\r\n displayCenter(toggle: boolean): void {\r\n this.center = toggle;\r\n this.map.mapCenter$.next(toggle);\r\n this.storageService.set('centerToggle', toggle, StorageScope.SESSION);\r\n }\r\n\r\n /**\r\n * Builder of the form\r\n */\r\n private buildForm(): void {\r\n this.form = this.formBuilder.group({\r\n inputProj: ['', [Validators.required]]\r\n });\r\n }\r\n\r\n /**\r\n * Update list of projections after changing of the state of the map\r\n */\r\n private updateProjectionsZoneChange(): void {\r\n let modifiedProj = this.projections$.value;\r\n const translate = this.languageService.translate;\r\n modifiedProj.map(p => {\r\n if (p.translateKey === 'mtm') {\r\n const zone = zoneMtm(this.currentCenterDefaultProj[0]);\r\n if (zone) {\r\n const code = zone < 10 ? `EPSG:3218${zone}` : `EPSG:321${80 + zone}`;\r\n p.alias = `MTM ${zone}`;\r\n p.code = code;\r\n p.zone = `${zone}`;\r\n p.translatedValue = translate.instant('igo.geo.importExportForm.projections.mtm', p);\r\n }\r\n else {\r\n p.alias = '';\r\n this.inMtmZone = false;\r\n if (this.inputProj.translateKey === 'mtm') {\r\n this.inputProj = this.projections$.value[0];\r\n }\r\n }\r\n }\r\n if (p.translateKey === 'utm') {\r\n const zone = zoneUtm(this.currentCenterDefaultProj[0]);\r\n const code = `EPSG:326${zone}`;\r\n p.alias = `UTM ${zone}`;\r\n p.code = code;\r\n p.zone = `${zone}`;\r\n p.translatedValue = translate.instant('igo.geo.importExportForm.projections.utm', p);\r\n }\r\n });\r\n modifiedProj = modifiedProj.filter(p => p.alias !== '');\r\n this.projections$.next(modifiedProj);\r\n }\r\n\r\n /**\r\n * Create a list of currents projections\r\n */\r\n private computeProjections(): void {\r\n this.projectionsConstraints = computeProjectionsConstraints(this.projectionsLimitations);\r\n const projections: InputProjections[] = [];\r\n\r\n if (!this.currentCenterDefaultProj) {\r\n this.currentCenterDefaultProj = this.map.viewController.getCenter(this.defaultProj.code);\r\n }\r\n\r\n const translate = this.languageService.translate;\r\n if (this.projectionsConstraints.wgs84) {\r\n projections.push({\r\n translatedValue: translate.instant('igo.geo.importExportForm.projections.wgs84', { code: 'EPSG:4326' }),\r\n translateKey: 'wgs84', alias: 'WGS84', code: 'EPSG:4326', zone: ''\r\n });\r\n }\r\n\r\n if (this.projectionsConstraints.nad83) {\r\n projections.push({\r\n translatedValue: translate.instant('igo.geo.importExportForm.projections.nad83', { code: 'EPSG:4269' }),\r\n translateKey: 'nad83', alias: 'NAD83', code: 'EPSG:4269', zone: ''\r\n });\r\n }\r\n\r\n if (this.projectionsConstraints.webMercator) {\r\n projections.push({\r\n translatedValue: translate.instant('igo.geo.importExportForm.projections.webMercator', { code: 'EPSG:3857' }),\r\n translateKey: 'webMercator', alias: 'Web Mercator', code: 'EPSG:3857', zone: ''\r\n });\r\n }\r\n if (this.projectionsConstraints.mtm) {\r\n // Quebec\r\n const zone = zoneMtm(this.currentCenterDefaultProj[0]);\r\n if (zone) {\r\n this.inMtmZone = true;\r\n const code = zone < 10 ? `EPSG:3218${zone}` : `EPSG:321${80 + zone}`;\r\n projections.splice(3, 0, {\r\n translatedValue: this.languageService.translate.instant('igo.geo.importExportForm.projections.mtm', { code, zone }),\r\n translateKey: 'mtm', alias: `MTM ${zone}`, code, zone: `${zone}`\r\n });\r\n }\r\n else {\r\n this.inMtmZone = false;\r\n }\r\n }\r\n if (this.projectionsConstraints.utm) {\r\n const order = this.inMtmZone ? 4 : 3;\r\n const zone = zoneUtm(this.currentCenterDefaultProj[0]);\r\n const code = zone < 10 ? `EPSG:3260${zone}` : `EPSG:326${zone}`;\r\n projections.splice(order, 0, {\r\n translatedValue: this.languageService.translate.instant('igo.geo.importExportForm.projections.utm', { code, zone }),\r\n translateKey: 'utm', alias: `UTM ${zone}`, code, zone: `${zone}`\r\n });\r\n }\r\n let configProjection = [];\r\n if (this.projectionsConstraints.projFromConfig) {\r\n configProjection = this.config.getConfig('projections') || [];\r\n }\r\n this.projections$.next(projections.concat(configProjection));\r\n }\r\n\r\n /**\r\n * Push the MTM in the array of systeme of coordinates\r\n * @param projections Array of the InputProjections\r\n */\r\n private pushMtm(projections: Array<InputProjections>): void {\r\n if (this.projectionsConstraints.mtm) {\r\n const zone = zoneMtm(this.currentCenterDefaultProj[0]);\r\n const code = zone < 10 ? `EPSG:3218${zone}` : `EPSG:321${80 + zone}`;\r\n projections.splice(3, 0, {\r\n translatedValue: this.languageService.translate.instant('igo.geo.importExportForm.projections.mtm', { code, zone }),\r\n translateKey: 'mtm', alias: `MTM ${zone}`, code, zone: `${zone}`});\r\n }\r\n }\r\n\r\n /**\r\n * Updates the list of systems of coordinates for territory of Quebec\r\n * push MTM and UTM in the Array\r\n */\r\n private back2quebec(): void {\r\n const projections = this.projections$.value;\r\n this.pushMtm(projections);\r\n this.inMtmZone = true;\r\n }\r\n\r\n /**\r\n * Update the numbers of the zones when application is restarted\r\n */\r\n private updateZoneMtmUtm() {\r\n if (this.inputProj.translateKey === 'mtm') {\r\n const zone = zoneMtm(this.currentCenterDefaultProj[0]);\r\n this.inputProj.alias = `MTM ${zone}`;\r\n const code = zone < 10 ? `EPSG:3218${zone}` : `EPSG:321${80 + zone}`;\r\n this.inputProj.code = code;\r\n this.inputProj.zone = `${zone}`;\r\n this.inputProj.translatedValue = this.languageService.translate.instant('igo.geo.importExportForm.projections.mtm', { code, zone });\r\n }\r\n if (this.inputProj.translateKey === 'utm') {\r\n const zone = zoneUtm(this.currentCenterDefaultProj[0]);\r\n this.inputProj.alias = `UTM ${zone}`;\r\n const code = zone < 10 ? `EPSG:3260${zone}` : `EPSG:326${zone}`;\r\n this.inputProj.code = code;\r\n this.inputProj.zone = `${zone}`;\r\n this.inputProj.translatedValue = this.languageService.translate.instant('igo.geo.importExportForm.projections.utm', { code, zone });\r\n }\r\n }\r\n\r\n /**\r\n * Compute the position of a current projection in a list. 0 if the projection is not in the list\r\n * @param translateKey string, translate key of a projection\r\n * @returns numeric, position of an element in the array\r\n */\r\n positionInList(tempInputProj: InputProjections): number {\r\n const tk = tempInputProj.translateKey;\r\n const alias = tempInputProj.alias;\r\n let position; // = undefined;\r\n let iter = 0;\r\n this.projections$.value.map((projection) => {\r\n if (tk) {\r\n if (tk === projection.translateKey) {\r\n position = iter;\r\n }\r\n }\r\n else if (alias === projection.alias) {\r\n position = iter;\r\n }\r\n iter++;\r\n });\r\n position = position ? position : 0;\r\n return position;\r\n }\r\n\r\n /**\r\n * Change the list of projections depending on the projections of Lambert\r\n * @param coordinates An array of numbers, longitude and latitude\r\n */\r\n checkLambert(coordinates: [number, number]) {\r\n const lambertProjections = this.config.getConfig('projections');\r\n lambertProjections.forEach(projection => {\r\n let modifiedProj = this.projections$.value;\r\n const extent = projection.extent;\r\n const code = projection.code.match(/\\d+/);\r\n const currentExtentWGS = olproj.transformExtent(extent, projection.code, this.defaultProj.code);\r\n if (coordinates[0] < currentExtentWGS[0] || coordinates[0] > currentExtentWGS[2] ||\r\n coordinates[1] < currentExtentWGS[1] || coordinates[1] > currentExtentWGS[3]) {\r\n this.inLambert2[code] = false;\r\n if (this.inputProj.alias === projection.alias) {\r\n this.inputProj = this.projections$.value[0];\r\n }\r\n modifiedProj = modifiedProj.filter(p => p.alias !== projection.alias);\r\n this.projections$.next(modifiedProj);\r\n }\r\n else {\r\n if (!this.inLambert2[code]) {\r\n this.projections$.next(modifiedProj.concat(projection));\r\n this.inLambert2[code] = true;\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { ToolComponent } from '@igo2/common';\r\nimport { MapState } from '../map.state';\r\n\r\n@ToolComponent({\r\n name: 'advancedMap',\r\n title: 'igo.integration.tools.advancedMap',\r\n icon: 'toolbox'\r\n})\r\n\r\n/**\r\n * Tool to handle the advanced map tools\r\n */\r\n@Component({\r\n selector: 'igo-advanced-map-tool',\r\n templateUrl: './advanced-map-tool.component.html',\r\n styleUrls: ['./advanced-map-tool.component.scss']\r\n})\r\n\r\nexport class AdvancedMapToolComponent {\r\n\r\n get tracking$() {\r\n return this.mapState.map.geolocationController.tracking$;\r\n }\r\n get followPosition$() {\r\n return this.mapState.map.geolocationController.followPosition$;\r\n }\r\n\r\n constructor(\r\n public mapState: MapState) {}\r\n\r\n toggleTracking(value) {\r\n this.mapState.map.geolocationController.tracking = value;\r\n }\r\n\r\n toggleFollow(value) {\r\n this.mapState.map.geolocationController.followPosition = value;\r\n }\r\n}\r\n","<h4 class=\"nameOfTool\">{{'igo.integration.advanced-map-tool.advanced-swipe.swipe-tool' | translate}}</h4>\r\n<igo-advanced-swipe></igo-advanced-swipe>\r\n<mat-divider class=\"advanced-tool-line\"></mat-divider>\r\n\r\n<h4 class=\"nameOfTool\">{{'igo.integration.advanced-map-tool.advanced-coordinates.coordinates' | translate}}</h4>\r\n<igo-advanced-coordinates></igo-advanced-coordinates>\r\n<mat-divider class=\"advanced-tool-line\"></mat-divider>\r\n\r\n<h4 class=\"nameOfTool\">{{'igo.integration.advanced-map-tool.geolocation.title' | translate}}</h4>\r\n\r\n<div class=\"igo-input-container\">\r\n <div class=\"geolocation-slide-toggle-container mat-typography\">\r\n <mat-slide-toggle \r\n class=\"geolocation-option mat-typography\"\r\n [checked]=\"tracking$ | async\"\r\n [labelPosition]=\"'before'\"\r\n (change)=\"toggleTracking($event.checked)\">\r\n {{'igo.integration.advanced-map-tool.geolocation.tracking' | translate}}\r\n </mat-slide-toggle>\r\n\r\n <mat-slide-toggle\r\n class=\"geolocation-option mat-typography\"\r\n [disabled]=\"(tracking$ | async) !== true\"\r\n [checked]=\"followPosition$ | async\"\r\n [labelPosition]=\"'before'\"\r\n (change)=\"toggleFollow($event.checked)\">\r\n {{'igo.integration.advanced-map-tool.geolocation.follow' | translate}}\r\n </mat-slide-toggle>\r\n </div>\r\n</div>","import { Injectable } from '@angular/core';\r\n\r\nimport {\r\n FeatureStore, Feature, IgoMap,\r\n featureFromOl, measureOlGeometryLength, Layer, QueryableDataSourceOptions, FEATURE, roundCoordTo, QueryableDataSource, MapGeolocationState\r\n} from '@igo2/geo';\r\nimport { BehaviorSubject, combineLatest, interval, Subscription } from 'rxjs';\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport { MapState } from '../map/map.state';\r\n\r\nimport GeoJSON from 'ol/format/GeoJSON';\r\nimport { uuid } from '@igo2/utils';\r\n\r\nimport olLayerVector from 'ol/layer/Vector';\r\nimport olVectorSource from 'ol/source/Vector';\r\nimport Geometry from 'ol/geom/Geometry';\r\nimport olLineString from 'ol/geom/LineString';\r\nimport * as olProj from 'ol/proj';\r\n/**\r\n * Service that holds the state of the direction module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MapProximityState {\r\n\r\n public enabled$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\r\n public proximityRadiusValue$: BehaviorSubject<number> = new BehaviorSubject<number>(30);\r\n public proximitylocationType$: BehaviorSubject<string> = new BehaviorSubject<string>('geolocation');\r\n public proximityFeatureStore: FeatureStore<Feature> = new FeatureStore<Feature>([], { map: this.mapState.map });\r\n private subs$$: Subscription[] = [];\r\n public currentPositionCoordinate$: BehaviorSubject<[number, number]> = new BehaviorSubject(undefined);\r\n\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n constructor(private mapState: MapState) {\r\n\r\n this.mapState.map.ol.once('rendercomplete', () => {\r\n this.subscribeProximityMonitor();\r\n });\r\n }\r\n\r\n\r\n subscribeProximityMonitor() {\r\n this.subs$$.push(combineLatest([\r\n this.enabled$,\r\n this.proximitylocationType$,\r\n this.proximityRadiusValue$,\r\n interval(5000),\r\n this.map.geolocationController.position$\r\n ])\r\n .pipe(debounceTime(750))\r\n .subscribe((bunch: [boolean, string, number, number, MapGeolocationState]) => {\r\n this.proximityFeatureStore.clear();\r\n const enabled = bunch[0];\r\n const layers = this.map.layers;\r\n const currentPos = this.map.geolocationController.position$.value;\r\n const locationType = bunch[1];\r\n const proximityRadiusValue = bunch[2];\r\n\r\n if (!enabled) {\r\n return;\r\n }\r\n\r\n\r\n let coord: number[];\r\n if (locationType === 'geolocation') {\r\n if (!currentPos || !currentPos.position) {\r\n return;\r\n }\r\n\r\n coord = olProj.transform(currentPos.position, currentPos.projection, this.map.projection);\r\n this.map.mapCenter$.next(false);\r\n } else {\r\n coord = this.map.viewController.getCenter();;\r\n this.map.mapCenter$.next(true);\r\n }\r\n\r\n const coordLonLat = olProj.transform(coord, this.map.projection, 'EPSG:4269');\r\n const roundedCoordLonLat = roundCoordTo(coordLonLat as [number, number], 6);\r\n this.currentPositionCoordinate$.next(roundedCoordLonLat);\r\n\r\n const layersToMonitor = layers\r\n .filter(layer =>\r\n layer.ol instanceof olLayerVector &&\r\n (layer.dataSource as QueryableDataSource).options.queryable &&\r\n layer.visible &&\r\n layer.isInResolutionsRange);\r\n\r\n layersToMonitor.map(layerToMonitor => {\r\n const layerSource = layerToMonitor.ol.getSource() as olVectorSource<Geometry>;\r\n\r\n // Mostly for polygon features.\r\n const olFeaturesAtCoordinate = layerSource.getFeaturesAtCoordinate(coord);\r\n if (olFeaturesAtCoordinate && olFeaturesAtCoordinate.length) {\r\n olFeaturesAtCoordinate.map(olFeatureAtCoordinate => {\r\n const featureAtThisPosition = featureFromOl(olFeatureAtCoordinate, this.map.projection);\r\n let title = this.getQueryTitle(featureAtThisPosition, layerToMonitor);\r\n // todo handle imported layers without querytitle? prompt title or detect first column?\r\n this.addFeatureToStore(layerToMonitor, coord, featureAtThisPosition, title, 0);\r\n });\r\n } else {\r\n // compute proximity for remaining sources\r\n const closestOlFeature = layerSource.getClosestFeatureToCoordinate(coord);\r\n if (closestOlFeature) {\r\n const closestOlGeom = closestOlFeature.getGeometry();\r\n const closestFeature = featureFromOl(closestOlFeature, this.map.projection);\r\n const geometryClosestPoint = closestOlGeom.getClosestPoint(coord);\r\n const linebetween = new olLineString([coord, geometryClosestPoint]);\r\n const lineLength = measureOlGeometryLength(linebetween, 'EPSG:3857');\r\n if (lineLength <= proximityRadiusValue) {\r\n let title = this.getQueryTitle(closestFeature, layerToMonitor);\r\n // todo handle imported layers without querytitle? prompt title or detect first column?\r\n this.addFeatureToStore(layerToMonitor, coord, closestFeature, title, lineLength);\r\n }\r\n }\r\n }\r\n });\r\n\r\n }));\r\n }\r\n\r\n /**\r\n * Add a feature with proximity properties to the store\r\n * @internal\r\n */\r\n private addFeatureToStore(layer: Layer, coordFromCalculatedDistance, feature: Feature, title, distance) {\r\n const featureId = uuid();\r\n const projection = this.map.ol.getView().getProjection();\r\n const olGeometry = feature.ol.getGeometry() as Geometry;\r\n const geometry = new GeoJSON().writeGeometryObject(olGeometry, {\r\n featureProjection: projection,\r\n dataProjection: projection\r\n }) as any;\r\n this.proximityFeatureStore.update({\r\n type: FEATURE,\r\n geometry,\r\n projection: projection.getCode(),\r\n properties: {...feature.properties,...{\r\n id: featureId,\r\n element: title,\r\n distance,\r\n coordFromCalculatedDistance,\r\n layerSrcId: layer.id,\r\n layerSrcTitle: layer.title\r\n }},\r\n meta: {\r\n id: featureId\r\n }\r\n });\r\n }\r\n\r\n getQueryTitle(feature: Feature, layer: Layer): string {\r\n let title;\r\n if (layer.options?.source?.options) {\r\n const dataSourceOptions = layer.options.source\r\n .options as QueryableDataSourceOptions;\r\n if (dataSourceOptions.queryTitle) {\r\n title = this.getLabelMatch(feature, dataSourceOptions.queryTitle);\r\n }\r\n }\r\n return title;\r\n }\r\n\r\n getLabelMatch(feature: Feature, labelMatch): string {\r\n let label = labelMatch;\r\n const labelToGet = Array.from(labelMatch.matchAll(/\\$\\{([^\\{\\}]+)\\}/g));\r\n\r\n labelToGet.forEach(v => {\r\n label = label.replace(v[0], feature.properties[v[1]]);\r\n });\r\n\r\n // Nothing done? check feature's attribute\r\n if (labelToGet.length === 0 && label === labelMatch) {\r\n label = feature.properties[labelMatch] || labelMatch;\r\n }\r\n return label;\r\n }\r\n}\r\n","<igo-entity-table #table class=\"table-compact\" [store]=\"mapProximityState.proximityFeatureStore\" [template]=\"tableTemplate\"></igo-entity-table>\r\n<br>\r\n<mat-form-field *ngIf=\"mapProximityState.currentPositionCoordinate$ | async as coord\" class=\"coordinates\">\r\n <textarea #textArea matInput readonly rows=\"1\"\r\n [placeholder]=\"'igo.integration.map-proximity-tool.lon' | translate\"\r\n [value]=\"coord[0]\"></textarea>\r\n</mat-form-field>\r\n<mat-form-field *ngIf=\"mapProximityState.currentPositionCoordinate$ | async as coord2\" class=\"coordinates2\">\r\n <textarea #textArea matInput readonly rows=\"1\"\r\n [placeholder]=\"'igo.integration.map-proximity-tool.lat' | translate\"\r\n [value]=\"coord2[1]\"></textarea>\r\n</mat-form-field>\r\n\r\n<button *ngIf=\"(mapProximityState.currentPositionCoordinate$ | async) && (mapProximityState.currentPositionCoordinate$ | async).length\" mat-icon-button\r\n (click)=\"copyTextToClipboard()\">\r\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\r\n</button>\r\n<div class=\"title-container\">\r\n <mat-label class=\"title mat-typography\">{{'igo.integration.map-proximity-tool.method' | translate}}</mat-label>\r\n</div>\r\n<div class=\"igo-input-container mat-typography\">\r\n <mat-radio-group (change)=\"onLocationTypeChange($event)\">\r\n <mat-radio-button [checked]=\"(mapProximityState.proximitylocationType$|async)==='geolocation'\" value=\"geolocation\">{{'igo.integration.map-proximity-tool.geolocation' | translate}}</mat-radio-button>\r\n <mat-radio-button [checked]=\"(mapProximityState.proximitylocationType$|async)==='mapCenter'\" value=\"mapCenter\">{{'igo.integration.map-proximity-tool.mapCenter' | translate}}</mat-radio-button>\r\n </mat-radio-group>\r\n</div>\r\n\r\n<div class=\"radius-unit\"> \r\n \r\n <mat-form-field appearance=\"outline\" class=\"measure-field\" floatLabel=\"always\">\r\n <mat-label>{{'igo.integration.map-proximity-tool.radiusM' | translate}}</mat-label>\r\n <input type=\"number\" pattern=\"[0-9]*\" [(ngModel)]=\"maxDistance\" matInput placeholder=\"{{'igo.integration.map-proximity-tool.radiusM' | translate}}\">\r\n </mat-form-field>\r\n\r\n \r\n</div>","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { MatRadioChange } from '@angular/material/radio';\r\nimport { EntityTableComponent, EntityTableTemplate, ToolComponent } from '@igo2/common';\r\nimport { LanguageService, MessageService } from '@igo2/core';\r\nimport { Feature, IgoMap } from '@igo2/geo';\r\nimport { NumberUtils, Clipboard } from '@igo2/utils';\r\nimport { Subscription } from 'rxjs';\r\nimport { MapProximityState } from '../map-proximity.state';\r\nimport { MapState } from '../map.state';\r\n@ToolComponent({\r\n name: 'map-proximity',\r\n title: 'igo.integration.tools.closestFeature',\r\n icon: 'radius'\r\n})\r\n\r\n/**\r\n * Tool to handle the advanced map tools\r\n */\r\n@Component({\r\n selector: 'igo-map-proximity-tool',\r\n templateUrl: './map-proximity-tool.component.html',\r\n styleUrls: ['./map-proximity-tool.component.scss']\r\n})\r\n\r\nexport class MapProximityToolComponent implements OnInit, OnDestroy {\r\n\r\n private subs$$: Subscription[] = [];\r\n @ViewChild('table', { static: true }) table: EntityTableComponent;\r\n\r\n get maxDistance() {\r\n return this.mapProximityState.proximityRadiusValue$.value;\r\n }\r\n set maxDistance(value: number) {\r\n this.mapProximityState.proximityRadiusValue$.next(value);\r\n }\r\n\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n public userDefinedMapCenter: boolean;\r\n public userDefinedFollowPosition: boolean;\r\n /**\r\n * Table template\r\n * @internal\r\n */\r\n public tableTemplate: EntityTableTemplate = {\r\n selection: true,\r\n selectMany: false,\r\n selectionCheckbox: false,\r\n sort: true,\r\n columns: [\r\n {\r\n name: 'element',\r\n title: this.languageService.translate.instant('igo.integration.map-proximity-tool.feature'),\r\n valueAccessor: (localFeature: Feature) => {\r\n return localFeature.properties.element;\r\n }\r\n },\r\n {\r\n name: 'distance',\r\n title: this.languageService.translate.instant('igo.integration.map-proximity-tool.distance'),\r\n valueAccessor: (localFeature: Feature) => {\r\n return `${NumberUtils.roundToNDecimal(localFeature.properties.distance, 1)}m`;\r\n }\r\n }\r\n ]\r\n };\r\n\r\n constructor(\r\n public mapState: MapState,\r\n public mapProximityState: MapProximityState,\r\n private languageService: LanguageService,\r\n private messageService: MessageService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.mapProximityState.enabled$.next(true);\r\n this.userDefinedFollowPosition = this.map.geolocationController.followPosition === true;\r\n this.userDefinedMapCenter = this.map.mapCenter$.value === true;\r\n\r\n this.subs$$.push(this.mapProximityState.proximitylocationType$.subscribe(v => {\r\n this.map.mapCenter$.next(v !== 'geolocation');\r\n if (v === 'geolocation') {\r\n this.map.geolocationController.followPosition = true;\r\n } else {\r\n this.map.geolocationController.followPosition = false;\r\n }\r\n }));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.mapProximityState.enabled$.next(false);\r\n this.map.mapCenter$.next(this.userDefinedMapCenter);\r\n this.subs$$.map(s => s.unsubscribe());\r\n this.map.geolocationController.followPosition = this.userDefinedFollowPosition;\r\n }\r\n\r\n onLocationTypeChange(e: MatRadioChange) {\r\n this.mapProximityState.proximitylocationType$.next(e.value);\r\n }\r\n\r\n /**\r\n * Copy the coordinates to a clipboard\r\n */\r\n copyTextToClipboard(): void {\r\n\r\n const successful = Clipboard.copy(this.mapProximityState.currentPositionCoordinate$?.value.toString());\r\n if (successful) {\r\n const translate = this.languageService.translate;\r\n const title = translate.instant(\r\n 'igo.integration.map-proximity-tool.copyTitle'\r\n );\r\n const msg = translate.instant('igo.integration.map-proximity-tool.copyMsg');\r\n this.messageService.success(msg, title);\r\n }\r\n }\r\n}\r\n","import {\r\n NgModule,\r\n ModuleWithProviders,\r\n CUSTOM_ELEMENTS_SCHEMA\r\n} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { IgoLanguageModule } from '@igo2/core';\r\nimport {\r\n IgoLayerModule,\r\n IgoMetadataModule,\r\n IgoDownloadModule,\r\n IgoFilterModule,\r\n IgoImportExportModule\r\n} from '@igo2/geo';\r\nimport { IgoContextModule } from '@igo2/context';\r\nimport { MapDetailsToolComponent } from './map-details-tool/map-details-tool.component';\r\nimport { MapToolComponent } from './map-tool/map-tool.component';\r\nimport { MapToolsComponent } from './map-tools/map-tools.component';\r\nimport { MapLegendToolComponent } from './map-legend/map-legend-tool.component';\r\nimport { IgoAppWorkspaceModule } from '../workspace/workspace.module';\r\nimport { AdvancedMapToolComponent } from './advanced-map-tool/advanced-map-tool.component';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatOptionModule } from '@angular/material/core';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { IgoEntityTableModule, IgoSpinnerModule } from '@igo2/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { AdvancedSwipeComponent } from './advanced-map-tool/advanced-swipe/advanced-swipe.component';\r\nimport { AdvancedCoordinatesComponent } from './advanced-map-tool/advanced-coordinates/advanced-coordinates.component';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MapProximityToolComponent } from './map-proximity-tool/map-proximity-tool.component';\r\n\r\n@NgModule({\r\n imports: [\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatButtonToggleModule,\r\n MatDividerModule,\r\n MatSelectModule,\r\n MatOptionModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatCheckboxModule,\r\n IgoSpinnerModule,\r\n CommonModule,\r\n MatTabsModule,\r\n MatListModule,\r\n MatIconModule,\r\n IgoLanguageModule,\r\n IgoLayerModule,\r\n IgoMetadataModule,\r\n IgoDownloadModule,\r\n IgoImportExportModule,\r\n IgoFilterModule,\r\n MatRadioModule,\r\n IgoContextModule,\r\n IgoAppWorkspaceModule,\r\n MatSlideToggleModule,\r\n MatMenuModule,\r\n MatButtonModule,\r\n MatTooltipModule,\r\n IgoEntityTableModule\r\n ],\r\n declarations: [ AdvancedMapToolComponent, MapProximityToolComponent, MapToolComponent,\r\n MapToolsComponent, MapDetailsToolComponent, MapLegendToolComponent, AdvancedSwipeComponent, AdvancedCoordinatesComponent],\r\n exports: [AdvancedMapToolComponent, MapProximityToolComponent, MapToolComponent,\r\n MapToolsComponent, MapDetailsToolComponent, MapLegendToolComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppMapModule {\r\n static forRoot(): ModuleWithProviders<IgoAppMapModule> {\r\n return {\r\n ngModule: IgoAppMapModule,\r\n providers: []\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { FeatureStore, FeatureWithMeasure } from '@igo2/geo';\r\nimport { MapState } from '../map/map.state';\r\n\r\n/**\r\n * Service that holds the state of the measure module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MeasureState {\r\n\r\n /**\r\n * Store that holds the measures\r\n */\r\n public store: FeatureStore<FeatureWithMeasure> = new FeatureStore<FeatureWithMeasure>([], {\r\n map: this.mapState.map\r\n });\r\n\r\n constructor(private mapState: MapState) {\r\n\r\n this.mapState.map.layers$.subscribe((layers) => {\r\n if ((layers.filter(l => l.id.startsWith('igo-measures-')).length === 0)) {\r\n this.store.deleteMany(this.store.all());\r\n this.mapState.map.ol.getOverlays().getArray()\r\n .filter(overlay => (overlay as any).options.className.includes('igo-map-tooltip'))\r\n .map(overlay => this.mapState.map.ol.removeOverlay(overlay));\r\n }\r\n });\r\n }\r\n\r\n}\r\n","import {\r\n Component,\r\n ChangeDetectionStrategy\r\n} from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport { FeatureStore, FeatureWithMeasure, IgoMap } from '@igo2/geo';\r\nimport { MapState } from '../../map/map.state';\r\nimport { MeasureState } from '../measure.state';\r\n\r\n/**\r\n * Tool to measure lengths and areas\r\n */\r\n@ToolComponent({\r\n name: 'measurer',\r\n title: 'igo.integration.tools.measurer',\r\n icon: 'ruler'\r\n})\r\n@Component({\r\n selector: 'igo-measurer-tool',\r\n templateUrl: './measurer-tool.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class MeasurerToolComponent {\r\n\r\n /**\r\n * Map to measure on\r\n * @internal\r\n */\r\n get store(): FeatureStore<FeatureWithMeasure> { return this.measureState.store; }\r\n\r\n /**\r\n * Map to measure on\r\n * @internal\r\n */\r\n get map(): IgoMap { return this.mapState.map; }\r\n\r\n constructor(\r\n private measureState: MeasureState,\r\n private mapState: MapState\r\n ) {}\r\n\r\n}\r\n","<igo-measurer [store]=\"store\" [map]=\"map\"></igo-measurer>\r\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\n\r\nimport { IgoMeasurerModule } from '@igo2/geo';\r\n\r\nimport { MeasurerToolComponent } from './measurer-tool.component';\r\n\r\n/**\r\n * @ignore\r\n */\r\n@NgModule({\r\n imports: [\r\n IgoMeasurerModule\r\n ],\r\n declarations: [MeasurerToolComponent],\r\n exports: [MeasurerToolComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppMeasurerToolModule {}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { IgoAppMeasurerToolModule } from './measurer-tool/measurer-tool.module';\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [],\r\n exports: [\r\n IgoAppMeasurerToolModule\r\n ]\r\n})\r\nexport class IgoAppMeasureModule {}\r\n","import { Component } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport { IgoMap } from '@igo2/geo';\r\n\r\nimport { MapState } from '../../map/map.state';\r\n\r\n@ToolComponent({\r\n name: 'print',\r\n title: 'igo.integration.tools.print',\r\n icon: 'printer'\r\n})\r\n@Component({\r\n selector: 'igo-print-tool',\r\n templateUrl: './print-tool.component.html'\r\n})\r\nexport class PrintToolComponent {\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n constructor(private mapState: MapState) {}\r\n}\r\n","<igo-print [map]=\"map\"></igo-print>\r\n","import {\r\n NgModule,\r\n ModuleWithProviders,\r\n CUSTOM_ELEMENTS_SCHEMA\r\n} from '@angular/core';\r\n\r\nimport { IgoPrintModule } from '@igo2/geo';\r\nimport { PrintToolComponent } from './print-tool/print-tool.component';\r\n\r\n@NgModule({\r\n imports: [IgoPrintModule],\r\n declarations: [PrintToolComponent],\r\n exports: [PrintToolComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppPrintModule {\r\n static forRoot(): ModuleWithProviders<IgoAppPrintModule> {\r\n return {\r\n ngModule: IgoAppPrintModule,\r\n providers: []\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { EntityRecord, EntityStore, EntityStoreFilterCustomFuncStrategy, EntityStoreStrategyFuncOptions } from '@igo2/common';\r\nimport { ConfigService, StorageService } from '@igo2/core';\r\nimport { SearchResult, SearchSourceService, SearchSource, CommonVectorStyleOptions } from '@igo2/geo';\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\n\r\n/**\r\n * Service that holds the state of the search module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SearchState {\r\n public searchOverlayStyle: CommonVectorStyleOptions = {};\r\n public searchOverlayStyleSelection: CommonVectorStyleOptions = {};\r\n public searchOverlayStyleFocus: CommonVectorStyleOptions = {};\r\n\r\n public focusedOrResolution$$: Subscription;\r\n public selectedOrResolution$$: Subscription;\r\n\r\n readonly searchTermSplitter$: BehaviorSubject<string> = new BehaviorSubject('|');\r\n\r\n readonly searchTerm$: BehaviorSubject<string> = new BehaviorSubject(undefined);\r\n\r\n readonly searchType$: BehaviorSubject<string> = new BehaviorSubject(undefined);\r\n\r\n readonly searchDisabled$: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n\r\n readonly searchResultsGeometryEnabled$: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n\r\n readonly searchSettingsChange$: BehaviorSubject<boolean> = new BehaviorSubject(undefined);\r\n\r\n readonly selectedResult$: BehaviorSubject<SearchResult> = new BehaviorSubject(undefined);\r\n\r\n /**\r\n * Store that holds the search results\r\n */\r\n readonly store: EntityStore<SearchResult> = new EntityStore<SearchResult>([]);\r\n\r\n /**\r\n * Search types currently enabled in the search source service\r\n */\r\n get searchTypes(): string[] {\r\n return this.searchSourceService\r\n .getEnabledSources()\r\n .map((source: SearchSource) => (source.constructor as any).type);\r\n }\r\n\r\n constructor(\r\n private searchSourceService: SearchSourceService,\r\n private storageService: StorageService,\r\n private configService: ConfigService) {\r\n const searchOverlayStyle = this.configService.getConfig('searchOverlayStyle') as {\r\n base?: CommonVectorStyleOptions,\r\n selection?: CommonVectorStyleOptions,\r\n focus?: CommonVectorStyleOptions\r\n };\r\n if (searchOverlayStyle) {\r\n this.searchOverlayStyle = searchOverlayStyle.base;\r\n this.searchOverlayStyleSelection = searchOverlayStyle.selection;\r\n this.searchOverlayStyleFocus = searchOverlayStyle.focus;\r\n }\r\n\r\n const searchResultsGeometryEnabled = this.storageService.get('searchResultsGeometryEnabled') as boolean;\r\n if (searchResultsGeometryEnabled) {\r\n this.searchResultsGeometryEnabled$.next(searchResultsGeometryEnabled);\r\n }\r\n this.store.addStrategy(this.createCustomFilterTermStrategy(), false);\r\n }\r\n\r\n private createCustomFilterTermStrategy(): EntityStoreFilterCustomFuncStrategy {\r\n const filterClauseFunc = (record: EntityRecord<SearchResult>) => {\r\n return record.entity.meta.score === 100;\r\n };\r\n return new EntityStoreFilterCustomFuncStrategy({filterClauseFunc} as EntityStoreStrategyFuncOptions);\r\n }\r\n\r\n /**\r\n * Activate custom strategy\r\n *\r\n */\r\n activateCustomFilterTermStrategy() {\r\n const strategy = this.store.getStrategyOfType(EntityStoreFilterCustomFuncStrategy);\r\n if (strategy !== undefined) {\r\n strategy.activate();\r\n }\r\n }\r\n\r\n /**\r\n * Deactivate custom strategy\r\n *\r\n */\r\n deactivateCustomFilterTermStrategy() {\r\n const strategy = this.store.getStrategyOfType(EntityStoreFilterCustomFuncStrategy);\r\n if (strategy !== undefined) {\r\n strategy.deactivate();\r\n }\r\n }\r\n\r\n enableSearch() {\r\n this.searchDisabled$.next(false);\r\n }\r\n\r\n disableSearch() {\r\n this.searchDisabled$.next(true);\r\n }\r\n\r\n setSearchTerm(searchTerm: string) {\r\n this.searchTerm$.next(searchTerm);\r\n }\r\n\r\n setSearchType(searchType: string) {\r\n this.searchSourceService.enableSourcesByType(searchType);\r\n this.searchType$.next(searchType);\r\n }\r\n\r\n setSearchSettingsChange() {\r\n this.searchSettingsChange$.next(true);\r\n }\r\n\r\n setSelectedResult(result: SearchResult) {\r\n this.selectedResult$.next(result);\r\n }\r\n\r\n setSearchResultsGeometryStatus(value) {\r\n this.storageService.set('searchResultsGeometryEnabled', value);\r\n this.searchResultsGeometryEnabled$.next(value);\r\n }\r\n}\r\n","import { Directive, Self, OnInit, OnDestroy, HostListener } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { SearchBarComponent } from '@igo2/geo';\r\nimport { SearchState } from '../search.state';\r\n\r\n@Directive({\r\n selector: '[igoSearchBarBinding]'\r\n})\r\nexport class SearchBarBindingDirective implements OnInit, OnDestroy {\r\n\r\n get searchTerm(): string { return this.searchState.searchTerm$.value; }\r\n get searchType(): string { return this.searchState.searchType$.value; }\r\n\r\n private searchTerm$$: Subscription;\r\n private searchType$$: Subscription;\r\n private searchDisabled$$: Subscription;\r\n\r\n constructor(\r\n @Self() private component: SearchBarComponent,\r\n private searchState: SearchState\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.searchTerm$$ = this.searchState.searchTerm$.subscribe((searchTerm: string) => {\r\n if (searchTerm !== undefined && searchTerm !== null) {\r\n this.component.setTerm(searchTerm);\r\n }\r\n });\r\n\r\n this.searchType$$ = this.searchState.searchType$.subscribe((searchType: string) => {\r\n if (searchType !== undefined && searchType !== null) {\r\n this.component.setSearchType(searchType);\r\n }\r\n });\r\n\r\n this.searchDisabled$$ = this.searchState.searchDisabled$.subscribe((searchDisabled: boolean) => {\r\n this.component.disabled = searchDisabled;\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.searchTerm$$.unsubscribe();\r\n this.searchType$$.unsubscribe();\r\n this.searchDisabled$$.unsubscribe();\r\n }\r\n\r\n @HostListener('searchTermChange', ['$event'])\r\n onSearchTermChange(searchTerm?: string) {\r\n if (searchTerm !== this.searchTerm) {\r\n this.searchState.setSearchTerm(searchTerm);\r\n }\r\n }\r\n\r\n @HostListener('searchTypeChange', ['$event'])\r\n onSearchTypeChange(searchType?: string) {\r\n if (searchType !== this.searchType) {\r\n this.searchState.setSearchType(searchType);\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { IgoSearchModule } from '@igo2/geo';\r\n\r\nimport { SearchBarBindingDirective } from './search-bar-binding.directive';\r\n\r\n/**\r\n * @ignore\r\n */\r\n@NgModule({\r\n imports: [IgoSearchModule],\r\n declarations: [SearchBarBindingDirective],\r\n exports: [SearchBarBindingDirective],\r\n})\r\nexport class IgoAppSearchBarModule {}\r\n","<div *ngIf=\"(!store || store.stateView.empty) && (debouncedEmpty$ | async) \" style=\"margin: 10px;\">\r\n <section class=\"mat-typography\">\r\n <h4><strong>{{ 'igo.integration.searchResultsTool.noResults' | translate }}</strong></h4>\r\n <p><strong>{{ 'igo.integration.searchResultsTool.doSearch' | translate }}</strong></p>\r\n <div [innerHTML]=\"'igo.integration.searchResultsTool.examples' | translate | sanitizeHtml\"></div>\r\n</section>\r\n</div>\r\n\r\n<igo-flexible\r\n *ngIf=\"store && (store.stateView.empty$ | async)===false\"\r\n #topPanel\r\n initial=\"100%\"\r\n initialMobile=\"100%\"\r\n collapsed=\"calc(100% - 58px)\"\r\n collapsedMobile=\"calc(100% - 58px)\"\r\n expanded=\"60%\"\r\n expandedMobile=\"60%\"\r\n [state]=\"(feature$ | async) ? topPanelState : 'initial'\">\r\n\r\n <div class=\"igo-content\">\r\n <igo-search-results\r\n [store]=\"store\"\r\n [showIcons]=\"showIcons\"\r\n [term]=\"term\"\r\n [termSplitter]=\"termSplitter\"\r\n [settingsChange$]=\"settingsChange$\"\r\n placeholder=\"false\"\r\n (resultFocus)=\"onResultFocus($event)\"\r\n (resultSelect)=\"onResultSelect($event)\"\r\n (resultUnfocus)=\"onResultUnfocus($event)\"\r\n (resultMouseenter)=\"onResultFocus($event)\"\r\n (resultMouseleave)=\"onResultUnfocus($event)\"\r\n (moreResults)=\"onSearch($event)\">\r\n <ng-template #igoSearchItemToolbar let-result=\"result\">\r\n <igo-search-add-button\r\n [map]=\"map\"\r\n [layer]=\"result\">\r\n </igo-search-add-button>\r\n </ng-template>\r\n </igo-search-results>\r\n </div>\r\n\r\n <div igoFlexibleFill class=\"igo-content\">\r\n <igo-panel [title]=\"featureTitle\" *ngIf=\"feature$ | async\">\r\n\r\n <button\r\n mat-icon-button\r\n panelLeftButton\r\n class=\"igo-icon-button\"\r\n (click)=\"toggleTopPanel()\">\r\n <mat-icon [svgIcon]=\"(topPanelState$ | async) === 'collapsed' ? 'arrow-up' : 'arrow-down'\"></mat-icon>\r\n </button>\r\n\r\n <button\r\n *ngIf=\"feature.geometry\"\r\n mat-icon-button\r\n panelRightButton\r\n class=\"igo-icon-button\"\r\n [matTooltip]=\"((isSelectedResultOutOfView$ | async) ? 'igo.integration.searchResultsTool.zoomOnFeatureTooltipOutOfView' : 'igo.integration.searchResultsTool.zoomOnFeatureTooltip') | translate\"\r\n matTooltipShowDelay=\"500\"\r\n (click)=\"zoomToFeatureExtent()\">\r\n <mat-icon\r\n [matBadge]=\"(isSelectedResultOutOfView$ | async) ? '!' : ''\"\r\n matBadgeColor=\"accent\"\r\n matBadgeSize=\"small\"\r\n [matBadgeHidden]=\"(isSelectedResultOutOfView$ | async)===false\" \r\n svgIcon=\"magnify-plus-outline\"></mat-icon>\r\n </button>\r\n\r\n <igo-feature-details\r\n igoFeatureDetailsDirective\r\n [feature]=\"feature$ | async\"\r\n [map]=\"map\"\r\n [toolbox]=\"toolState.toolbox\"\r\n (routingEvent)=\"getRoute()\">\r\n </igo-feature-details>\r\n </igo-panel>\r\n </div>\r\n\r\n</igo-flexible>\r\n","import {\r\n Component,\r\n ChangeDetectionStrategy,\r\n Input,\r\n OnInit,\r\n ElementRef,\r\n OnDestroy\r\n} from '@angular/core';\r\nimport { Observable, BehaviorSubject, Subscription, combineLatest } from 'rxjs';\r\nimport { debounceTime, map } from 'rxjs/operators';\r\nimport olFormatGeoJSON from 'ol/format/GeoJSON';\r\nimport olFeature from 'ol/Feature';\r\nimport olPoint from 'ol/geom/Point';\r\nimport type { default as OlGeometry } from 'ol/geom/Geometry';\r\n\r\nimport pointOnFeature from '@turf/point-on-feature';\r\nimport * as olProj from 'ol/proj';\r\nimport { ConfigService } from '@igo2/core';\r\n\r\nimport {\r\n EntityStore,\r\n ToolComponent,\r\n FlexibleState,\r\n getEntityTitle,\r\n FlexibleComponent,\r\n EntityState\r\n} from '@igo2/common';\r\n\r\nimport {\r\n FEATURE,\r\n Feature,\r\n FeatureMotion,\r\n SearchResult,\r\n IgoMap,\r\n moveToOlFeatures,\r\n Research,\r\n featuresAreTooDeepInView,\r\n featureToOl,\r\n featureFromOl,\r\n getCommonVectorStyle,\r\n getCommonVectorSelectedStyle,\r\n computeOlFeaturesExtent,\r\n featuresAreOutOfView,\r\n roundCoordTo\r\n} from '@igo2/geo';\r\n\r\nimport { MapState } from '../../map/map.state';\r\n\r\nimport { SearchState } from '../search.state';\r\nimport { ToolState } from '../../tool/tool.state';\r\nimport { DirectionState } from '../../directions/directions.state';\r\n\r\n/**\r\n * Tool to browse the search results\r\n */\r\n@ToolComponent({\r\n name: 'searchResults',\r\n title: 'igo.integration.tools.searchResults',\r\n icon: 'magnify'\r\n})\r\n@Component({\r\n selector: 'igo-search-results-tool',\r\n templateUrl: './search-results-tool.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SearchResultsToolComponent implements OnInit, OnDestroy {\r\n /**\r\n * to show hide results icons\r\n */\r\n @Input() showIcons: boolean = true;\r\n\r\n /**\r\n * Determine the top panel default state\r\n */\r\n @Input() topPanelStateDefault: string = 'expanded';\r\n\r\n private hasFeatureEmphasisOnSelection: boolean = false;\r\n\r\n private showResultsGeometries$$: Subscription;\r\n private getRoute$$: Subscription;\r\n private shownResultsGeometries: Feature[] = [];\r\n private shownResultsEmphasisGeometries: Feature[] = [];\r\n private focusedResult$: BehaviorSubject<SearchResult> = new BehaviorSubject(\r\n undefined\r\n );\r\n public isSelectedResultOutOfView$ = new BehaviorSubject(false);\r\n private isSelectedResultOutOfView$$: Subscription;\r\n private abstractFocusedResult: Feature;\r\n private abstractSelectedResult: Feature;\r\n\r\n public debouncedEmpty$ :BehaviorSubject<boolean> = new BehaviorSubject(true);\r\n private debouncedEmpty$$: Subscription;\r\n\r\n /**\r\n * Store holding the search results\r\n * @internal\r\n */\r\n get store(): EntityStore<SearchResult> {\r\n return this.searchState.store;\r\n }\r\n\r\n /**\r\n * Map to display the results on\r\n * @internal\r\n */\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n get featureTitle(): string {\r\n return this.feature ? getEntityTitle(this.feature) : undefined;\r\n }\r\n\r\n get feature$(): Observable<Feature> {\r\n return this.store.stateView\r\n .firstBy$((e) => e.state.focused)\r\n .pipe(\r\n map(\r\n (element) =>\r\n (this.feature = element\r\n ? (element.entity.data as Feature)\r\n : undefined)\r\n )\r\n );\r\n }\r\n\r\n public feature: Feature;\r\n\r\n public term = '';\r\n private searchTerm$$: Subscription;\r\n\r\n public settingsChange$ = new BehaviorSubject<boolean>(undefined);\r\n\r\n public topPanelState$ = new BehaviorSubject<FlexibleState>('initial');\r\n private topPanelState$$: Subscription;\r\n\r\n @Input()\r\n set topPanelState(value: FlexibleState) {\r\n this.topPanelState$.next(value);\r\n }\r\n get topPanelState(): FlexibleState {\r\n return this.topPanelState$.value;\r\n }\r\n\r\n get termSplitter(): string {\r\n return this.searchState.searchTermSplitter$.value;\r\n }\r\n\r\n private format = new olFormatGeoJSON();\r\n\r\n constructor(\r\n private mapState: MapState,\r\n private searchState: SearchState,\r\n private elRef: ElementRef,\r\n public toolState: ToolState,\r\n private directionState: DirectionState,\r\n configService: ConfigService\r\n ) {\r\n this.hasFeatureEmphasisOnSelection = configService.getConfig(\r\n 'hasFeatureEmphasisOnSelection'\r\n );\r\n }\r\n\r\n ngOnInit() {\r\n this.searchTerm$$ = this.searchState.searchTerm$.subscribe(\r\n (searchTerm: string) => {\r\n if (searchTerm !== undefined && searchTerm !== null) {\r\n this.term = searchTerm;\r\n }\r\n }\r\n );\r\n\r\n for (const res of this.store.stateView.all$().value) {\r\n if (this.store.state.get(res.entity).selected === true) {\r\n this.topPanelState = 'expanded';\r\n }\r\n }\r\n\r\n this.searchState.searchSettingsChange$.subscribe(() => {\r\n this.settingsChange$.next(true);\r\n });\r\n\r\n this.topPanelState$$ = this.topPanelState$.subscribe(() => {\r\n const igoList = this.computeElementRef()[0];\r\n const selected = this.computeElementRef()[1];\r\n if (selected) {\r\n setTimeout(() => {\r\n // To be sure the flexible component has been displayed yet\r\n if (!this.isScrolledIntoView(igoList, selected)) {\r\n this.adjustTopPanel(igoList, selected);\r\n }\r\n }, FlexibleComponent.transitionTime + 50);\r\n }\r\n });\r\n\r\n if (this.hasFeatureEmphasisOnSelection) {\r\n if (!this.searchState.focusedOrResolution$$) {\r\n this.searchState.focusedOrResolution$$ = combineLatest([\r\n this.focusedResult$,\r\n this.map.viewController.resolution$\r\n ]).subscribe((bunch: [SearchResult<Feature>, number]) =>\r\n this.buildResultEmphasis(bunch[0], 'focused')\r\n );\r\n }\r\n\r\n if (!this.searchState.selectedOrResolution$$) {\r\n this.searchState.selectedOrResolution$$ = combineLatest([\r\n this.searchState.selectedResult$,\r\n this.map.viewController.resolution$\r\n ]).subscribe((bunch: [SearchResult<Feature>, number]) =>\r\n this.buildResultEmphasis(bunch[0], 'selected')\r\n );\r\n }\r\n }\r\n this.monitorResultOutOfView();\r\n\r\n this.showResultsGeometries$$ = combineLatest([\r\n this.searchState.searchResultsGeometryEnabled$,\r\n this.store.stateView.all$(),\r\n this.focusedResult$,\r\n this.searchState.selectedResult$,\r\n this.searchState.searchTerm$,\r\n this.map.viewController.resolution$\r\n ]).subscribe((bunch: [boolean, { entity: SearchResult, state: EntityState }[], SearchResult, SearchResult, string, number]) => {\r\n\r\n const searchResultsGeometryEnabled = bunch[0];\r\n const searchResults = bunch[1];\r\n\r\n if (this.hasFeatureEmphasisOnSelection) {\r\n this.clearFeatureEmphasis('shown');\r\n }\r\n this.shownResultsGeometries.map(result => this.map.queryResultsOverlay.removeFeature(result));\r\n const featureToHandleGeom = searchResults\r\n .filter(result =>\r\n result.entity.meta.dataType === FEATURE &&\r\n result.entity.data.geometry &&\r\n !result.state.selected &&\r\n !result.state.focused);\r\n\r\n featureToHandleGeom.map(result => {\r\n if (searchResultsGeometryEnabled) {\r\n result.entity.data.meta.style =\r\n getCommonVectorStyle(\r\n Object.assign(\r\n {},\r\n { feature: result.entity.data as Feature | olFeature<OlGeometry> },\r\n this.searchState.searchOverlayStyle,\r\n result.entity.style?.base ? result.entity.style.base : {}\r\n ));\r\n this.shownResultsGeometries.push(result.entity.data as Feature);\r\n this.map.queryResultsOverlay.addFeature(result.entity.data as Feature, FeatureMotion.None);\r\n if (this.hasFeatureEmphasisOnSelection) {\r\n this.buildResultEmphasis(result.entity as SearchResult<Feature>, 'shown');\r\n }\r\n }\r\n });\r\n });\r\n\r\n this.debouncedEmpty$$ = this.store.stateView.empty$.pipe(debounceTime(1500)).subscribe(empty => this.debouncedEmpty$.next(empty));\r\n }\r\n\r\n private monitorResultOutOfView() {\r\n this.isSelectedResultOutOfView$$ = combineLatest([\r\n this.map.viewController.state$,\r\n this.searchState.selectedResult$\r\n ])\r\n .pipe(debounceTime(100))\r\n .subscribe((bunch) => {\r\n const selectedResult = bunch[1] as SearchResult<Feature>;\r\n if (!selectedResult) {\r\n this.isSelectedResultOutOfView$.next(false);\r\n return;\r\n }\r\n if (selectedResult.data.geometry) {\r\n const selectedOlFeature = featureToOl(\r\n selectedResult.data,\r\n this.map.projection\r\n );\r\n const selectedOlFeatureExtent = computeOlFeaturesExtent(this.map, [\r\n selectedOlFeature\r\n ]);\r\n this.isSelectedResultOutOfView$.next(\r\n featuresAreOutOfView(this.map, selectedOlFeatureExtent)\r\n );\r\n }\r\n });\r\n }\r\n\r\n private buildResultEmphasis(\r\n result: SearchResult<Feature>,\r\n trigger: 'selected' | 'focused' | 'shown' | undefined\r\n ) {\r\n if (trigger !== 'shown') {\r\n this.clearFeatureEmphasis(trigger);\r\n }\r\n if (!result || !result.data.geometry) {\r\n return;\r\n }\r\n const myOlFeature = featureToOl(result.data, this.map.projection);\r\n const olGeometry = myOlFeature.getGeometry();\r\n if (featuresAreTooDeepInView(this.map, olGeometry.getExtent() as [number, number, number, number], 0.0025)) {\r\n const extent = olGeometry.getExtent();\r\n const x = extent[0] + (extent[2] - extent[0]) / 2;\r\n const y = extent[1] + (extent[3] - extent[1]) / 2;\r\n const feature1 = new olFeature({\r\n name: `${trigger}AbstractResult'`,\r\n geometry: new olPoint([x, y])\r\n });\r\n const abstractResult = featureFromOl(feature1, this.map.projection);\r\n\r\n let computedStyle;\r\n let zIndexOffset = 0;\r\n\r\n switch (trigger) {\r\n case 'focused':\r\n computedStyle = getCommonVectorSelectedStyle(\r\n Object.assign({},\r\n { feature: abstractResult },\r\n this.searchState.searchOverlayStyleFocus,\r\n result.style?.focus ? result.style.focus : {}));\r\n zIndexOffset = 2;\r\n break;\r\n case 'shown':\r\n computedStyle = getCommonVectorStyle(Object.assign({},\r\n { feature: abstractResult },\r\n this.searchState.searchOverlayStyle,\r\n result.style?.base ? result.style.base : {}));\r\n break;\r\n case 'selected':\r\n computedStyle = getCommonVectorSelectedStyle(\r\n Object.assign({},\r\n { feature: abstractResult },\r\n this.searchState.searchOverlayStyleSelection,\r\n result.style?.selection ? result.style.selection : {}));\r\n zIndexOffset = 1;\r\n break;\r\n }\r\n abstractResult.meta.style = computedStyle;\r\n abstractResult.meta.style.setZIndex(2000 + zIndexOffset);\r\n this.map.searchResultsOverlay.addFeature(abstractResult, FeatureMotion.None);\r\n if (trigger === 'focused') {\r\n this.abstractFocusedResult = abstractResult;\r\n }\r\n if (trigger === 'selected') {\r\n this.abstractSelectedResult = abstractResult;\r\n }\r\n if (trigger === 'shown') {\r\n this.shownResultsEmphasisGeometries.push(abstractResult);\r\n }\r\n } else {\r\n this.clearFeatureEmphasis(trigger);\r\n }\r\n }\r\n\r\n private clearFeatureEmphasis(trigger: 'selected' | 'focused' | 'shown') {\r\n if (trigger === 'focused' && this.abstractFocusedResult) {\r\n this.map.searchResultsOverlay.removeFeature(this.abstractFocusedResult);\r\n this.abstractFocusedResult = undefined;\r\n }\r\n if (trigger === 'selected' && this.abstractSelectedResult) {\r\n this.map.searchResultsOverlay.removeFeature(this.abstractSelectedResult);\r\n this.abstractSelectedResult = undefined;\r\n }\r\n if (trigger === 'shown') {\r\n this.shownResultsEmphasisGeometries.map(shownResult => this.map.searchResultsOverlay.removeFeature(shownResult));\r\n this.shownResultsEmphasisGeometries = [];\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.topPanelState$$.unsubscribe();\r\n this.searchTerm$$.unsubscribe();\r\n if (this.isSelectedResultOutOfView$$) {\r\n this.isSelectedResultOutOfView$$.unsubscribe();\r\n }\r\n if (this.showResultsGeometries$$) {\r\n this.showResultsGeometries$$.unsubscribe();\r\n }\r\n if (this.getRoute$$) {\r\n this.getRoute$$.unsubscribe();\r\n }\r\n if (this.debouncedEmpty$$) {\r\n this.debouncedEmpty$$.unsubscribe();\r\n }\r\n }\r\n\r\n /**\r\n * Try to add a feature to the map when it's being focused\r\n * @internal\r\n * @param result A search result that could be a feature\r\n */\r\n onResultFocus(result: SearchResult) {\r\n this.focusedResult$.next(result);\r\n if (result.meta.dataType === FEATURE && result.data.geometry) {\r\n result.data.meta.style = getCommonVectorSelectedStyle(\r\n Object.assign({},\r\n { feature: result.data as Feature | olFeature<OlGeometry> },\r\n this.searchState.searchOverlayStyleFocus,\r\n result.style?.focus ? result.style.focus : {}));\r\n\r\n const feature = this.map.searchResultsOverlay.dataSource.ol.getFeatureById(result.meta.id);\r\n if (feature) {\r\n feature.setStyle(result.data.meta.style);\r\n return;\r\n }\r\n this.map.searchResultsOverlay.addFeature(result.data as Feature, FeatureMotion.None);\r\n }\r\n }\r\n\r\n onResultUnfocus(result: SearchResult) {\r\n this.focusedResult$.next(undefined);\r\n if (result.meta.dataType !== FEATURE) {\r\n return;\r\n }\r\n\r\n if (this.store.state.get(result).selected === true) {\r\n const feature = this.map.searchResultsOverlay.dataSource.ol.getFeatureById(result.meta.id);\r\n if (feature) {\r\n const style = getCommonVectorSelectedStyle(\r\n Object.assign({},\r\n { feature: result.data as Feature | olFeature<OlGeometry> },\r\n this.searchState.searchOverlayStyleFocus,\r\n result.style?.focus ? result.style.focus : {}));\r\n feature.setStyle(style);\r\n }\r\n return;\r\n }\r\n this.map.searchResultsOverlay.removeFeature(result.data as Feature);\r\n }\r\n\r\n /**\r\n * Try to add a feature to the map when it's being selected\r\n * @internal\r\n * @param result A search result that could be a feature or some layer options\r\n */\r\n onResultSelect(result: SearchResult) {\r\n this.map.searchResultsOverlay.dataSource.ol.clear();\r\n this.tryAddFeatureToMap(result);\r\n this.searchState.setSelectedResult(result);\r\n\r\n if (this.topPanelState === 'initial') {\r\n if (this.topPanelStateDefault !== 'collapsed') {\r\n this.topPanelState = 'expanded';\r\n } else {\r\n this.topPanelState = 'collapsed';\r\n }\r\n }\r\n\r\n if (this.topPanelState === 'expanded') {\r\n const igoList = this.computeElementRef()[0];\r\n const selected = this.computeElementRef()[1];\r\n if (!this.isScrolledIntoView(igoList, selected)) {\r\n this.adjustTopPanel(igoList, selected);\r\n }\r\n }\r\n }\r\n\r\n onSearch(event: { research: Research; results: SearchResult[] }) {\r\n const results = event.results;\r\n const newResults = this.store.entities$.value\r\n .filter((result: SearchResult) => result.source !== event.research.source)\r\n .concat(results);\r\n\r\n this.store.load(newResults);\r\n\r\n for (const res of this.store.all()) {\r\n if (\r\n this.store.state.get(res).focused === true &&\r\n this.store.state.get(res).selected !== true\r\n ) {\r\n this.store.state.update(res, { focused: false }, true);\r\n }\r\n }\r\n\r\n setTimeout(() => {\r\n const igoList = this.elRef.nativeElement.querySelector('igo-list');\r\n let moreResults;\r\n event.research.request.subscribe((source) => {\r\n if (!source[0] || !source[0].source) {\r\n moreResults = null;\r\n } else if (source[0].source.getId() === 'icherche') {\r\n moreResults = igoList.querySelector('.icherche .moreResults');\r\n } else if (source[0].source.getId() === 'ilayer') {\r\n moreResults = igoList.querySelector('.ilayer .moreResults');\r\n } else if (source[0].source.getId() === 'nominatim') {\r\n moreResults = igoList.querySelector('.nominatim .moreResults');\r\n } else {\r\n moreResults = igoList.querySelector('.' + source[0].source.getId() + ' .moreResults');\r\n }\r\n\r\n if (\r\n moreResults !== null &&\r\n !this.isScrolledIntoView(igoList, moreResults)\r\n ) {\r\n igoList.scrollTop =\r\n moreResults.offsetTop +\r\n moreResults.offsetHeight -\r\n igoList.clientHeight;\r\n }\r\n });\r\n }, 250);\r\n }\r\n\r\n computeElementRef() {\r\n const items = document.getElementsByTagName('igo-search-results-item');\r\n const igoList = this.elRef.nativeElement.getElementsByTagName(\r\n 'igo-list'\r\n )[0];\r\n let selectedItem;\r\n // eslint-disable-next-line\r\n for (let i = 0; i < items.length; i++) {\r\n if (items[i].className.includes('igo-list-item-selected')) {\r\n selectedItem = items[i];\r\n }\r\n }\r\n return [igoList, selectedItem];\r\n }\r\n\r\n adjustTopPanel(elemSource, elem) {\r\n if (!this.isScrolledIntoView(elemSource, elem)) {\r\n elemSource.scrollTop =\r\n elem.offsetTop +\r\n elem.children[0].offsetHeight -\r\n elemSource.clientHeight;\r\n }\r\n }\r\n\r\n toggleTopPanel() {\r\n if (this.topPanelState === 'expanded') {\r\n this.topPanelState = 'collapsed';\r\n } else {\r\n this.topPanelState = 'expanded';\r\n }\r\n }\r\n\r\n zoomToFeatureExtent() {\r\n if (this.feature.geometry) {\r\n const localOlFeature = this.format.readFeature(this.feature, {\r\n dataProjection: this.feature.projection,\r\n featureProjection: this.map.projection\r\n });\r\n moveToOlFeatures(this.map, [localOlFeature], FeatureMotion.Zoom);\r\n }\r\n }\r\n\r\n /**\r\n * Try to add a feature to the map overlay\r\n * @param result A search result that could be a feature\r\n */\r\n private tryAddFeatureToMap(result: SearchResult) {\r\n if (result.meta.dataType !== FEATURE) {\r\n return undefined;\r\n }\r\n const feature = (result as SearchResult<Feature>).data;\r\n\r\n // Somethimes features have no geometry. It happens with some GetFeatureInfo\r\n if (!feature.geometry) {\r\n return;\r\n }\r\n\r\n feature.meta.style = getCommonVectorSelectedStyle(\r\n Object.assign({},\r\n { feature },\r\n this.searchState.searchOverlayStyleSelection,\r\n result.style?.selection ? result.style.selection : {}));\r\n\r\n this.map.searchResultsOverlay.addFeature(feature);\r\n }\r\n\r\n isScrolledIntoView(elemSource, elem) {\r\n const padding = 6;\r\n const docViewTop = elemSource.scrollTop;\r\n const docViewBottom = docViewTop + elemSource.clientHeight;\r\n\r\n const elemTop = elem.offsetTop;\r\n const elemBottom = elemTop + elem.clientHeight + padding;\r\n return elemBottom <= docViewBottom && elemTop >= docViewTop;\r\n }\r\n\r\n getRoute() {\r\n this.toolState.toolbox.activateTool('directions');\r\n this.directionState.stopsStore.clearStops();\r\n setTimeout(() => {\r\n let routingCoordLoaded = false;\r\n if (this.getRoute$$) { this.getRoute$$.unsubscribe(); }\r\n this.getRoute$$ = this.directionState.stopsStore.storeInitialized$.subscribe((init: boolean) => {\r\n if (this.directionState.stopsStore.storeInitialized$.value && !routingCoordLoaded) {\r\n routingCoordLoaded = true;\r\n const stop = this.directionState.stopsStore.all().find((e) => e.position === 1);\r\n let coord;\r\n if (this.feature.geometry) {\r\n if (this.feature.geometry.type === 'Point') {\r\n coord = [this.feature.geometry.coordinates[0], this.feature.geometry.coordinates[1]];\r\n } else {\r\n const point = pointOnFeature(this.feature.geometry);\r\n coord = [point.geometry.coordinates[0], point.geometry.coordinates[1]];\r\n }\r\n }\r\n stop.text = this.featureTitle;\r\n stop.coordinates = coord;\r\n this.directionState.stopsStore.update(stop);\r\n if (this.map.geolocationController.position$.value) {\r\n const currentPos = this.map.geolocationController.position$.value;\r\n const stop = this.directionState.stopsStore.all().find((e) => e.position === 0);\r\n const currentCoord = olProj.transform(currentPos.position, currentPos.projection, 'EPSG:4326');\r\n const coord: [number,number] = roundCoordTo([currentCoord[0], currentCoord[1]], 6);\r\n stop.text = coord.join(',');\r\n stop.coordinates = coord;\r\n this.directionState.stopsStore.update(stop);\r\n }\r\n\r\n }\r\n });\r\n }, 250);\r\n }\r\n}\r\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { IgoLanguageModule } from '@igo2/core';\r\nimport { IgoFlexibleModule, IgoCustomHtmlModule, IgoPanelModule } from '@igo2/common';\r\nimport {\r\n IgoFeatureModule,\r\n IgoSearchModule,\r\n IgoFeatureDetailsModule\r\n} from '@igo2/geo';\r\n\r\nimport { SearchResultsToolComponent } from './search-results-tool.component';\r\n\r\n/**\r\n * @ignore\r\n */\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatIconModule,\r\n MatBadgeModule,\r\n MatTooltipModule,\r\n MatButtonModule,\r\n IgoLanguageModule,\r\n IgoFeatureModule,\r\n IgoSearchModule,\r\n IgoFlexibleModule,\r\n IgoPanelModule,\r\n IgoFeatureDetailsModule,\r\n IgoCustomHtmlModule\r\n ],\r\n declarations: [SearchResultsToolComponent],\r\n exports: [SearchResultsToolComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppSearchResultsToolModule {}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { IgoAppSearchBarModule } from './search-bar/search-bar.module';\r\nimport { IgoAppSearchResultsToolModule } from './search-results-tool/search-results-tool.module';\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [],\r\n exports: [\r\n IgoAppSearchBarModule,\r\n IgoAppSearchResultsToolModule\r\n ],\r\n})\r\nexport class IgoAppSearchModule {}\r\n","import { Component } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\n\r\n@ToolComponent({\r\n name: 'ogcFilter',\r\n title: 'igo.integration.tools.ogcFilter',\r\n icon: 'filter'\r\n})\r\n@Component({\r\n selector: 'igo-ogc-filter-tool',\r\n templateUrl: './ogc-filter-tool.component.html'\r\n})\r\nexport class OgcFilterToolComponent {\r\n constructor() {}\r\n}\r\n","<igo-ogc-filterable-list igoOgcFilterableListBinding></igo-ogc-filterable-list>\r\n\r\n\r\n","import { Component } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\n\r\n@ToolComponent({\r\n name: 'timeFilter',\r\n title: 'igo.integration.tools.timeFilter',\r\n icon: 'history'\r\n})\r\n@Component({\r\n selector: 'igo-time-filter-tool',\r\n templateUrl: './time-filter-tool.component.html'\r\n})\r\nexport class TimeFilterToolComponent {\r\n constructor() {}\r\n}\r\n","<igo-time-filter-list igoTimeFilterListBinding></igo-time-filter-list>\r\n","<igo-panel>\r\n <igo-spatial-filter-type\r\n [store]=\"spatialListStore\"\r\n [selectedQueryType]=\"queryType\"\r\n [zone]=\"zone\"\r\n [layers]=\"activeLayers\"\r\n (eventType)=\"getOutputType($event)\"\r\n (eventQueryType)=\"getOutputQueryType($event)\"\r\n (zoneChange)=\"onZoneChange($event)\"\r\n (zoneWithBufferChange)=\"onZoneChange($event, true)\"\r\n (bufferChange)=\"buffer = $event\"\r\n (measureUnitChange)=\"measureUnit = $event\">\r\n </igo-spatial-filter-type>\r\n\r\n <igo-spatial-filter-item\r\n [type]=\"type\"\r\n [queryType]=\"queryType\"\r\n [map]=\"map\"\r\n [zone]=\"zone\"\r\n [loading]=\"loading\"\r\n [store]=\"store\"\r\n [layers]=\"activeLayers\"\r\n [allLayers]=\"layers\"\r\n [thematicLength]=\"thematicLength\"\r\n (radiusEvent)=\"buffer = $event\"\r\n (bufferEvent)=\"buffer = $event\"\r\n (measureUnitChange)=\"measureUnit = $event\"\r\n (freehandControl)=\"freehandDrawIsActive = $event\"\r\n (drawZoneEvent)=\"zone = $event\"\r\n (zoneWithBufferChange)=\"onZoneChange($event, true)\"\r\n (itemTypeChange)=\"itemType = $event\"\r\n (thematicChange)=\"thematics = $event\"\r\n (toggleSearch)=\"getOutputToggleSearch()\"\r\n (clearButtonEvent)=\"clearMap()\"\r\n (clearSearchEvent)=\"getOutputClearSearch()\"\r\n (export)=\"activateExportTool()\"\r\n (openWorkspace)=\"activateWorkspace()\"\r\n (entityChange)=\"activateWorkspace($event)\">\r\n </igo-spatial-filter-item>\r\n</igo-panel>\r\n\r\n<igo-panel>\r\n <ng-container *ngIf=\"selectedFeature$ | async as feature\">\r\n <igo-feature-details [feature]=\"feature\"></igo-feature-details>\r\n </ng-container>\r\n</igo-panel>","import { Component, Input, ChangeDetectionStrategy, ChangeDetectorRef, OnDestroy, OnInit } from '@angular/core';\r\nimport { MatIconRegistry } from '@angular/material/icon';\r\nimport { Observable, forkJoin, Subject } from 'rxjs';\r\nimport { tap, take, takeUntil } from 'rxjs/operators';\r\n\r\nimport {\r\n IgoMap,\r\n DataSourceService,\r\n LayerService,\r\n Feature,\r\n moveToOlFeatures,\r\n FeatureMotion,\r\n ClusterDataSource,\r\n featureToOl,\r\n DataSource,\r\n QueryableDataSourceOptions,\r\n SpatialFilterService,\r\n SpatialFilterType,\r\n SpatialFilterItemType,\r\n SpatialFilterQueryType,\r\n SpatialFilterThematic,\r\n Layer,\r\n createOverlayMarkerStyle,\r\n ExportOptions,\r\n MeasureLengthUnit\r\n} from '@igo2/geo';\r\nimport { EntityStore, ToolComponent } from '@igo2/common';\r\nimport olFormatGeoJSON from 'ol/format/GeoJSON';\r\nimport olSourceVector from 'ol/source/Vector';\r\nimport olSourceCluster from 'ol/source/Cluster';\r\nimport type { default as OlGeometry } from 'ol/geom/Geometry';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { MapState } from '../../map/map.state';\r\nimport { ImportExportMode, ImportExportState } from './../../import-export/import-export.state';\r\nimport * as olstyle from 'ol/style';\r\nimport { MessageService, LanguageService } from '@igo2/core';\r\nimport { ToolState } from '../../tool/tool.state';\r\nimport { WorkspaceState } from '../../workspace/workspace.state';\r\nimport { EventsKey } from 'ol/events';\r\n\r\n/**\r\n * Tool to apply spatial filter\r\n */\r\n@ToolComponent({\r\n name: 'spatialFilter',\r\n title: 'igo.integration.tools.spatialFilter',\r\n icon: 'selection-marker'\r\n})\r\n/**\r\n * Spatial Filter Type\r\n */\r\n@Component({\r\n selector: 'igo-spatial-filter-tool',\r\n templateUrl: './spatial-filter-tool.component.html',\r\n styleUrls: ['./spatial-filter-tool.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SpatialFilterToolComponent implements OnInit, OnDestroy {\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n @Input() type: SpatialFilterType;\r\n @Input() itemType: SpatialFilterItemType = SpatialFilterItemType.Address;\r\n @Input() freehandDrawIsActive: boolean;\r\n\r\n public layers: Layer[] = [];\r\n public activeLayers: Layer[] = [];\r\n\r\n public queryType: SpatialFilterQueryType;\r\n public thematics: SpatialFilterThematic[];\r\n public zone: Feature;\r\n public zoneWithBuffer: Feature;\r\n public buffer = 0;\r\n\r\n public iterator = 1;\r\n\r\n public selectedFeature$: BehaviorSubject<Feature> = new BehaviorSubject(\r\n undefined\r\n );\r\n\r\n private format = new olFormatGeoJSON();\r\n\r\n public store: EntityStore<Feature> = new EntityStore<Feature>([]); // Store to print results at the end\r\n\r\n public spatialListStore: EntityStore<Feature> = new EntityStore<Feature>([]);\r\n\r\n public loading = false;\r\n\r\n public thematicLength = 0;\r\n\r\n public measureUnit: MeasureLengthUnit = MeasureLengthUnit.Meters;\r\n private unsubscribe$ = new Subject<void>();\r\n\r\n private moveendKey: EventsKey;\r\n\r\n constructor(\r\n private matIconRegistry: MatIconRegistry,\r\n private spatialFilterService: SpatialFilterService,\r\n private dataSourceService: DataSourceService,\r\n private layerService: LayerService,\r\n private mapState: MapState,\r\n private messageService: MessageService,\r\n private languageService: LanguageService,\r\n private importExportState: ImportExportState,\r\n private toolState: ToolState,\r\n private workspaceState: WorkspaceState,\r\n private cdRef: ChangeDetectorRef\r\n ) {}\r\n\r\n ngOnInit() {\r\n for (const layer of this.map.layers) {\r\n if (layer.title && layer.title.includes(this.languageService.translate.instant('igo.geo.spatialFilter.spatialFilter'))) {\r\n this.layers.push(layer);\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n getOutputType(event: SpatialFilterType) {\r\n this.type = event;\r\n this.queryType = undefined;\r\n }\r\n\r\n getOutputQueryType(event: SpatialFilterQueryType) {\r\n this.queryType = event;\r\n if (this.queryType) {\r\n this.loadFilterList();\r\n }\r\n }\r\n\r\n activateExportTool() {\r\n const ids = [];\r\n const re = new RegExp('^Zone \\\\d+');\r\n for (const layer of this.layers) {\r\n if (!layer.title.match(re)) {\r\n ids.push(layer.id);\r\n }\r\n }\r\n this.importExportState.setMode(ImportExportMode.export);\r\n this.importExportState.setsExportOptions({ layers: ids } as ExportOptions);\r\n this.toolState.toolbox.activateTool('importExport');\r\n }\r\n\r\n activateWorkspace(record?) {\r\n let layerToOpenWks;\r\n this.workspaceState.store.entities$.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\r\n if (!record && this.activeLayers.length && this.workspaceState.store.all().length > 1) {\r\n if (this.itemType === SpatialFilterItemType.Thematics) {\r\n for (const thematic of this.thematics) {\r\n if (!thematic.zeroResults) {\r\n layerToOpenWks = this.activeLayers.find(layer => layer.title.includes(thematic.name + ' ' + this.iterator.toString()));\r\n break;\r\n }\r\n }\r\n } else {\r\n const title = 'Adresses ' + this.iterator.toString();\r\n this.activeLayers.forEach((layer) => {\r\n if (layer.title.includes(title)) {\r\n layerToOpenWks = layer;\r\n }\r\n });\r\n }\r\n\r\n if (layerToOpenWks) {\r\n this.workspaceState.workspacePanelExpanded = true;\r\n this.workspaceState.setActiveWorkspaceById(layerToOpenWks.id);\r\n }\r\n } else if (record && this.activeLayers.length && this.workspaceState.store.all().length > 1) {\r\n this.selectWorkspaceEntity(record);\r\n this.moveendKey = this.map.ol.on('moveend', () => {\r\n this.selectWorkspaceEntity(record);\r\n });\r\n }\r\n });\r\n }\r\n\r\n private selectWorkspaceEntity(record) {\r\n this.workspaceState.store.all().forEach(workspace => {\r\n workspace.entityStore.state.updateAll({selected: false});\r\n if (workspace.title.includes(record.added[0].meta.title)) {\r\n this.workspaceState.setActiveWorkspaceById(workspace.id);\r\n workspace.entityStore.state.updateMany(record.added, {selected: true});\r\n }\r\n });\r\n }\r\n\r\n private loadFilterList() {\r\n this.spatialFilterService\r\n .loadFilterList(this.queryType)\r\n .pipe(takeUntil(this.unsubscribe$))\r\n .subscribe((features: Feature[]) => {\r\n features.sort((a, b) => {\r\n if (a.properties.nom < b.properties.nom) {\r\n return -1;\r\n }\r\n if (a.properties.nom > b.properties.nom) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n this.spatialListStore.clear();\r\n this.spatialListStore.load(features);\r\n });\r\n }\r\n\r\n getOutputToggleSearch() {\r\n this.loadThematics();\r\n }\r\n\r\n getOutputClearSearch() {\r\n this.zone = undefined;\r\n this.queryType = undefined;\r\n }\r\n\r\n clearMap() {\r\n this.map.removeLayers(this.layers);\r\n this.layers = [];\r\n this.activeLayers = [];\r\n this.thematicLength = 0;\r\n this.iterator = 1;\r\n if (this.type === SpatialFilterType.Predefined) {\r\n this.zone = undefined;\r\n this.queryType = undefined;\r\n }\r\n }\r\n\r\n private loadThematics() {\r\n this.loading = true;\r\n let zeroResults = true;\r\n let thematics;\r\n if (this.buffer === 0 || this.type === SpatialFilterType.Point) {\r\n this.tryAddFeaturesToMap([this.zone]);\r\n }\r\n if (this.itemType !== SpatialFilterItemType.Thematics) {\r\n const theme: SpatialFilterThematic = {\r\n name: ''\r\n };\r\n thematics = [theme];\r\n } else {\r\n thematics = this.thematics;\r\n }\r\n if (this.measureUnit === MeasureLengthUnit.Kilometers && this.type !== SpatialFilterType.Point) {\r\n this.buffer = this.buffer * 1000;\r\n }\r\n if (this.type === SpatialFilterType.Polygon) {\r\n this.buffer = 0; // to avoid buffer enter a second time in terrAPI\r\n }\r\n\r\n const observables$: Observable<Feature[]>[] = [];\r\n thematics.forEach(thematic => {\r\n observables$.push(\r\n this.spatialFilterService\r\n .loadFilterItem(\r\n this.zone,\r\n this.itemType,\r\n this.queryType,\r\n thematic,\r\n this.buffer\r\n )\r\n .pipe(\r\n tap((features: Feature[]) => {\r\n this.store.insertMany(features);\r\n const featuresPoint: Feature[] = [];\r\n const featuresLinePoly: Feature[] = [];\r\n let idPoint;\r\n let idLinePoly;\r\n features.forEach(feature => {\r\n if (feature.geometry.type === 'Point') {\r\n feature.properties.longitude = feature.geometry.coordinates[0];\r\n feature.properties.latitude = feature.geometry.coordinates[1];\r\n featuresPoint.push(feature);\r\n idPoint = feature.meta.id;\r\n } else {\r\n featuresLinePoly.push(feature);\r\n idLinePoly = feature.meta.id;\r\n }\r\n });\r\n\r\n this.tryAddPointToMap(featuresPoint, idPoint);\r\n this.tryAddLayerToMap(featuresLinePoly, idLinePoly);\r\n if (features.length) {\r\n zeroResults = false;\r\n this.thematicLength += 1;\r\n thematic.zeroResults = false;\r\n this.cdRef.detectChanges();\r\n } else {\r\n thematic.zeroResults = true;\r\n }\r\n\r\n if (features.length >= 10000) {\r\n this.messageService.alert(\r\n this.languageService.translate.instant(\r\n 'igo.geo.spatialFilter.maxSizeAlert'\r\n ),\r\n this.languageService.translate.instant(\r\n 'igo.geo.spatialFilter.warning'\r\n ),\r\n { timeOut: 10000 }\r\n );\r\n }\r\n })\r\n )\r\n );\r\n });\r\n\r\n forkJoin(observables$).pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\r\n this.loading = false;\r\n if (zeroResults) {\r\n this.messageService.alert(\r\n this.languageService.translate.instant(\r\n 'igo.geo.spatialFilter.zeroResults'\r\n ),\r\n this.languageService.translate.instant(\r\n 'igo.geo.spatialFilter.warning'\r\n ),\r\n { timeOut: 10000 }\r\n );\r\n }\r\n });\r\n }\r\n\r\n onZoneChange(feature: Feature, buffer?: boolean) {\r\n this.zone = feature;\r\n if (feature) {\r\n buffer ? this.tryAddFeaturesToMap([feature], true) : this.tryAddFeaturesToMap([feature]);\r\n this.zoomToFeatureExtent(feature);\r\n }\r\n }\r\n\r\n /**\r\n * Try to add zone feature to the map overlay\r\n */\r\n public tryAddFeaturesToMap(features: Feature[], buffer?: boolean) {\r\n let i = 1;\r\n for (const feature of features) {\r\n if (this.type === SpatialFilterType.Predefined) {\r\n for (const layer of this.layers) {\r\n if (\r\n layer.options._internal &&\r\n layer.options._internal.code === feature.properties.code &&\r\n !buffer\r\n ) {\r\n if (!layer.title?.startsWith('Zone')) {\r\n const index = this.layers.indexOf(layer);\r\n this.layers.splice(index, 1);\r\n }\r\n return;\r\n }\r\n if (layer.title?.startsWith('Zone')) {\r\n this.activeLayers = [];\r\n const index = this.layers.indexOf(layer);\r\n this.layers.splice(index, 1);\r\n this.map.removeLayer(layer);\r\n }\r\n }\r\n } else {\r\n if (buffer) {\r\n for (const layer of this.activeLayers) {\r\n if (this.activeLayers.length === 1 && layer.title?.startsWith('Zone')) {\r\n const index = this.layers.indexOf(layer);\r\n this.layers.splice(index, 1);\r\n this.map.removeLayer(layer);\r\n }\r\n }\r\n }\r\n this.activeLayers = [];\r\n }\r\n for (const layer of this.layers) {\r\n if (layer.title?.startsWith('Zone')) {\r\n i++;\r\n }\r\n }\r\n this.dataSourceService\r\n .createAsyncDataSource({\r\n type: 'vector',\r\n queryable: true\r\n } as QueryableDataSourceOptions)\r\n .pipe(take(1))\r\n .subscribe((dataSource: DataSource) => {\r\n const olLayer = this.layerService.createLayer({\r\n isIgoInternalLayer: true,\r\n title: ('Zone ' + i + ' - ' + this.languageService.translate.instant(\r\n 'igo.geo.spatialFilter.spatialFilter'\r\n )) as string,\r\n workspace: { enabled: true },\r\n _internal: {\r\n code:\r\n this.type === SpatialFilterType.Predefined\r\n ? feature.properties.code\r\n : undefined\r\n },\r\n source: dataSource,\r\n visible: true,\r\n style: (_feature, resolution) => {\r\n const coordinates = (features[0] as any).coordinates;\r\n return new olstyle.Style({\r\n image: new olstyle.Circle({\r\n radius: coordinates\r\n ? this.buffer /\r\n Math.cos((Math.PI / 180) * coordinates[1]) /\r\n resolution\r\n : undefined,\r\n fill: new olstyle.Fill({\r\n color: 'rgba(200, 200, 20, 0.2)'\r\n }),\r\n stroke: new olstyle.Stroke({\r\n width: 1,\r\n color: 'orange'\r\n })\r\n }),\r\n stroke: new olstyle.Stroke({\r\n width: 1,\r\n color: 'orange'\r\n }),\r\n fill: new olstyle.Fill({\r\n color: 'rgba(200, 200, 20, 0.2)'\r\n })\r\n });\r\n }\r\n });\r\n const featuresOl = features.map(f => {\r\n return featureToOl(f, this.map.projection);\r\n });\r\n if (this.type !== SpatialFilterType.Predefined) {\r\n const type = this.type === SpatialFilterType.Point ? 'Cercle' : 'Polygone';\r\n featuresOl[0].set('nom', 'Zone', true);\r\n featuresOl[0].set('type', type, true);\r\n }\r\n const ol = dataSource.ol as olSourceVector<OlGeometry> | olSourceCluster;\r\n ol.addFeatures(featuresOl);\r\n this.map.addLayer(olLayer);\r\n this.layers.push(olLayer);\r\n this.activeLayers.push(olLayer);\r\n this.cdRef.detectChanges();\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Try to add point features to the map\r\n * Necessary to create clusters\r\n */\r\n private tryAddPointToMap(features: Feature[], id) {\r\n let i = 1;\r\n if (features.length) {\r\n if (this.map === undefined) {\r\n return;\r\n }\r\n for (const layer of this.layers) {\r\n if (layer.title?.startsWith(features[0].meta.title)) {\r\n i++;\r\n }\r\n }\r\n this.dataSourceService\r\n .createAsyncDataSource({\r\n type: 'cluster',\r\n id,\r\n queryable: true,\r\n distance: 120,\r\n meta: {\r\n title: 'Cluster'\r\n }\r\n } as QueryableDataSourceOptions)\r\n .pipe(take(1))\r\n .subscribe((dataSource: ClusterDataSource) => {\r\n const icon = features[0].meta.icon;\r\n let style: olstyle.Style;\r\n if (!icon) {\r\n style = createOverlayMarkerStyle();\r\n } else {\r\n style = this.createSvgIcon(icon) || createOverlayMarkerStyle();\r\n }\r\n\r\n const olLayer = this.layerService.createLayer({\r\n isIgoInternalLayer: true,\r\n title: (features[0].meta.title + ' ' + i + ' - ' + this.languageService.translate.instant(\r\n 'igo.geo.spatialFilter.spatialFilter'\r\n )) as string,\r\n source: dataSource,\r\n visible: true,\r\n style\r\n });\r\n\r\n const featuresOl = features.map(feature => {\r\n return featureToOl(feature, this.map.projection);\r\n });\r\n const ol = dataSource.ol as olSourceCluster;\r\n ol.getSource().addFeatures(featuresOl);\r\n if (this.layers.find(layer => layer.id === olLayer.id)) {\r\n this.map.removeLayer(\r\n this.layers.find(layer => layer.id === olLayer.id)\r\n );\r\n i = i - 1;\r\n olLayer.title = (features[0].meta.title + ' ' + i + ' - ' + this.languageService.translate.instant(\r\n 'igo.geo.spatialFilter.spatialFilter'\r\n )) as string;\r\n olLayer.options.title = olLayer.title;\r\n }\r\n this.iterator = i;\r\n this.map.addLayer(olLayer);\r\n this.layers.push(olLayer);\r\n this.pushLayer(olLayer);\r\n this.cdRef.detectChanges();\r\n });\r\n }\r\n }\r\n\r\n private createSvgIcon(icon): olstyle.Style {\r\n let style: olstyle.Style;\r\n this.matIconRegistry.getNamedSvgIcon(icon).subscribe(svgObj => {\r\n const xmlSerializer = new XMLSerializer();\r\n svgObj.setAttribute('width', '30');\r\n svgObj.setAttribute('height', '30');\r\n svgObj.setAttribute('fill', 'rgba(0, 128, 255)');\r\n svgObj.setAttribute('stroke', 'white');\r\n const svg = xmlSerializer.serializeToString(svgObj);\r\n style = new olstyle.Style({\r\n image: new olstyle.Icon({\r\n src: 'data:image/svg+xml;utf8,' + svg\r\n })\r\n });\r\n });\r\n return style;\r\n }\r\n /**\r\n * Try to add line or polygon features to the map\r\n */\r\n private tryAddLayerToMap(features: Feature[], id) {\r\n let i = 1;\r\n if (features.length) {\r\n if (this.map === undefined) {\r\n return;\r\n }\r\n for (const layer of this.layers) {\r\n if (layer.title?.startsWith(features[0].meta.title)) {\r\n i++;\r\n }\r\n }\r\n this.dataSourceService\r\n .createAsyncDataSource({\r\n type: 'vector',\r\n id,\r\n queryable: true\r\n } as QueryableDataSourceOptions)\r\n .pipe(take(1))\r\n .subscribe((dataSource: DataSource) => {\r\n const olLayer = this.layerService.createLayer({\r\n isIgoInternalLayer: true,\r\n title: (features[0].meta.title + ' ' + i + ' - ' + this.languageService.translate.instant(\r\n 'igo.geo.spatialFilter.spatialFilter'\r\n )) as string,\r\n source: dataSource,\r\n visible: true\r\n });\r\n const featuresOl = features.map(feature => {\r\n return featureToOl(feature, this.map.projection);\r\n });\r\n const ol = dataSource.ol as olSourceVector<OlGeometry>;\r\n ol.addFeatures(featuresOl);\r\n if (this.layers.find(layer => layer.id === olLayer.id)) {\r\n this.map.removeLayer(\r\n this.layers.find(layer => layer.id === olLayer.id)\r\n );\r\n i = i - 1;\r\n olLayer.title = (features[0].meta.title + ' ' + i + ' - ' + this.languageService.translate.instant(\r\n 'igo.geo.spatialFilter.spatialFilter'\r\n )) as string;\r\n olLayer.options.title = olLayer.title;\r\n }\r\n this.map.addLayer(olLayer);\r\n this.layers.push(olLayer);\r\n this.pushLayer(olLayer);\r\n this.cdRef.detectChanges();\r\n });\r\n }\r\n }\r\n\r\n zoomToFeatureExtent(feature) {\r\n if (feature) {\r\n const olFeature = this.format.readFeature(feature, {\r\n dataProjection: feature.projection,\r\n featureProjection: this.map.projection\r\n });\r\n moveToOlFeatures(this.map, [olFeature], FeatureMotion.Zoom);\r\n }\r\n }\r\n\r\n pushLayer(layer) {\r\n for (const lay of this.activeLayers) {\r\n if (lay.id === layer.id) {\r\n return;\r\n }\r\n }\r\n\r\n this.activeLayers.push(layer);\r\n }\r\n}\r\n","import {\r\n trigger,\r\n state,\r\n style,\r\n transition,\r\n animate,\r\n AnimationTriggerMetadata\r\n} from '@angular/animations';\r\n\r\nexport function toolSlideInOut(\r\n speed = '300ms',\r\n type = 'ease-in-out'\r\n): AnimationTriggerMetadata {\r\n return trigger('toolSlideInOut', [\r\n state(\r\n 'enter',\r\n style({\r\n transform: 'translateX(100%)'\r\n })\r\n ),\r\n transition('void => enter', animate(speed + ' ' + type))\r\n ]);\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport { MapState } from '../../map/map.state';\r\nimport { IgoMap, Layer } from '@igo2/geo';\r\nimport { toolSlideInOut } from './active-time-filter-tool.animation';\r\n\r\n@ToolComponent({\r\n name: 'activeTimeFilter',\r\n title: 'igo.integration.tools.timeFilter',\r\n icon: 'history',\r\n parent: 'mapTools'\r\n})\r\n@Component({\r\n selector: 'igo-active-time-filter-tool',\r\n templateUrl: './active-time-filter-tool.component.html',\r\n animations: [toolSlideInOut()]\r\n})\r\nexport class ActiveTimeFilterToolComponent {\r\n\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n get layer(): Layer {\r\n for (const lay of this.map.layers) {\r\n if (lay.options.active === true) {\r\n return lay;\r\n }\r\n }\r\n return;\r\n }\r\n\r\n public animate = 'enter';\r\n\r\n constructor(public mapState: MapState) {}\r\n}\r\n","<igo-time-filter-item\r\n [map]=\"map\"\r\n [layer]=\"layer\"\r\n [header]=\"false\"\r\n [@toolSlideInOut]=\"animate\">\r\n</igo-time-filter-item>\r\n","import {\r\n trigger,\r\n state,\r\n style,\r\n transition,\r\n animate,\r\n AnimationTriggerMetadata\r\n} from '@angular/animations';\r\n\r\nexport function toolSlideInOut(\r\n speed = '300ms',\r\n type = 'ease-in-out'\r\n): AnimationTriggerMetadata {\r\n return trigger('toolSlideInOut', [\r\n state(\r\n 'enter',\r\n style({\r\n transform: 'translateX(100%)'\r\n })\r\n ),\r\n transition('void => enter', animate(speed + ' ' + type))\r\n ]);\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport { MapState } from '../../map/map.state';\r\nimport { Layer, IgoMap } from '@igo2/geo';\r\n\r\nimport { toolSlideInOut } from './active-ogc-filter-tool.animation';\r\n\r\n@ToolComponent({\r\n name: 'activeOgcFilter',\r\n title: 'igo.integration.tools.ogcFilter',\r\n icon: 'filter',\r\n parent: 'mapTools'\r\n})\r\n@Component({\r\n selector: 'igo-active-ogc-filter-tool',\r\n templateUrl: './active-ogc-filter-tool.component.html',\r\n animations: [toolSlideInOut()]\r\n})\r\nexport class ActiveOgcFilterToolComponent {\r\n\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n get layer(): Layer {\r\n for (const lay of this.map.layers) {\r\n if (lay.options.active === true) {\r\n return lay;\r\n }\r\n }\r\n return;\r\n }\r\n\r\n public animate = 'enter';\r\n\r\n constructor(public mapState: MapState) {}\r\n}\r\n","<igo-ogc-filterable-item\r\n [map]=\"map\"\r\n [layer]=\"layer\"\r\n [header]=\"false\"\r\n [@toolSlideInOut]=\"animate\">\r\n</igo-ogc-filterable-item>\r\n\r\n\r\n","import {\r\n NgModule,\r\n ModuleWithProviders,\r\n CUSTOM_ELEMENTS_SCHEMA\r\n} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { IgoFilterModule, IgoQueryModule } from '@igo2/geo';\r\nimport { OgcFilterToolComponent } from './ogc-filter-tool/ogc-filter-tool.component';\r\nimport { TimeFilterToolComponent } from './time-filter-tool/time-filter-tool.component';\r\nimport { SpatialFilterToolComponent } from './spatial-filter-tool/spatial-filter-tool.component';\r\nimport { ActiveTimeFilterToolComponent } from './active-time-filter-tool/active-time-filter-tool.component';\r\nimport { ActiveOgcFilterToolComponent } from './active-ogc-filter-tool/active-ogc-filter-tool.component';\r\n\r\n@NgModule({\r\n imports: [IgoFilterModule, IgoQueryModule, CommonModule],\r\n declarations: [\r\n OgcFilterToolComponent,\r\n ActiveOgcFilterToolComponent,\r\n TimeFilterToolComponent,\r\n ActiveTimeFilterToolComponent,\r\n SpatialFilterToolComponent\r\n ],\r\n exports: [\r\n OgcFilterToolComponent,\r\n ActiveOgcFilterToolComponent,\r\n TimeFilterToolComponent,\r\n ActiveTimeFilterToolComponent,\r\n SpatialFilterToolComponent\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppFilterModule {\r\n static forRoot(): ModuleWithProviders<IgoAppFilterModule> {\r\n return {\r\n ngModule: IgoAppFilterModule,\r\n providers: []\r\n };\r\n }\r\n}\r\n","<p></p>\r\n<igo-interactive-tour\r\n mat-raised-button\r\n tourToStart=\"global\"\r\n menuIsOpen=true\r\n styleButton=\"raised\"\r\n [discoverTitleInLocale$]=\"discoverTitleInLocale$\">\r\n</igo-interactive-tour>\r\n\r\n<button *ngIf=\"auth.authenticated && trainingGuideURLs && trainingGuideURLs.length === 1\"\r\n class=\"training-guide-button\"\r\n mat-raised-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [disabled]=\"loading\"\r\n [matTooltip]=\"'igo.integration.aboutTool.trainingGuideTooltip' | translate\"\r\n (click)=\"openGuide()\">\r\n <span>{{'igo.integration.aboutTool.trainingGuide' | translate}}</span>\r\n <mat-icon svgIcon=\"file-document\"></mat-icon>\r\n</button>\r\n\r\n<button *ngIf=\"auth.authenticated && trainingGuideURLs && trainingGuideURLs.length > 1\"\r\n class=\"training-guide-button\"\r\n mat-raised-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [disabled]=\"loading\"\r\n [matTooltip]=\"'igo.integration.aboutTool.trainingGuideTooltip' | translate\"\r\n [matMenuTriggerFor]=\"menu\">\r\n <span>{{'igo.integration.aboutTool.trainingGuide' | translate}}</span>\r\n <mat-icon svgIcon=\"file-document\"></mat-icon>\r\n</button>\r\n\r\n<mat-menu #menu=\"matMenu\">\r\n <button *ngFor=\"let guide of trainingGuideURLs\" mat-menu-item (click)=\"openGuide(guide)\">{{formatFileName(guide)}}</button>\r\n</mat-menu>\r\n\r\n<igo-custom-html *ngIf=\"headerHtml !== ''\" class=\"mat-typography\"\r\n [html]=\"headerHtml | translate\">\r\n</igo-custom-html>\r\n\r\n<igo-custom-html class=\"mat-typography\"\r\n [html]=\"html | translate: {version: version}\">\r\n</igo-custom-html>\r\n","import { ChangeDetectorRef, Component, Input, OnInit } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport { ConfigService, LanguageService, Version } from '@igo2/core';\r\nimport { of } from 'rxjs';\r\nimport type { Observable } from 'rxjs';\r\nimport { AuthService } from '@igo2/auth';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@ToolComponent({\r\n name: 'about',\r\n title: 'igo.integration.tools.about',\r\n icon: 'help-circle'\r\n})\r\n@Component({\r\n selector: 'igo-about-tool',\r\n templateUrl: './about-tool.component.html',\r\n styleUrls: ['./about-tool.component.scss']\r\n})\r\nexport class AboutToolComponent implements OnInit {\r\n @Input()\r\n get headerHtml() {\r\n return this._headerHtml;\r\n }\r\n set headerHtml(value: string) {\r\n this._headerHtml = Array.isArray(value) ? value.join('\\n') : value;\r\n }\r\n\r\n @Input()\r\n get html() {\r\n return this._html;\r\n }\r\n set html(value: string) {\r\n this._html = Array.isArray(value) ? value.join('\\n') : value;\r\n }\r\n private _discoverTitleInLocale: string = 'IGO';\r\n public discoverTitleInLocale$: Observable<string> = of(this._discoverTitleInLocale);\r\n\r\n @Input()\r\n get discoverTitleInLocale() {\r\n return this._discoverTitleInLocale;\r\n }\r\n set discoverTitleInLocale(value: string) {\r\n this._discoverTitleInLocale = value;\r\n this.discoverTitleInLocale$ = of(value);\r\n }\r\n\r\n @Input() trainingGuideURLs;\r\n\r\n public version: Version;\r\n private _html: string = 'igo.integration.aboutTool.html';\r\n private _headerHtml: string = this.languageService.translate.instant('igo.integration.aboutTool.headerHtml');\r\n\r\n private baseUrlProfil;\r\n private baseUrlGuide;\r\n\r\n public loading = false;\r\n\r\n constructor(\r\n public configService: ConfigService,\r\n public auth: AuthService,\r\n private http: HttpClient,\r\n private cdRef: ChangeDetectorRef,\r\n private languageService: LanguageService) {\r\n this.version = configService.getConfig('version');\r\n this.baseUrlProfil = configService.getConfig('storage.url');\r\n this.baseUrlGuide = configService.getConfig('depot.url') + configService.getConfig('depot.guideUrl');\r\n }\r\n\r\n ngOnInit() {\r\n if (this.auth.authenticated && this.configService.getConfig('context.url')) {\r\n this.http.get(this.baseUrlProfil).subscribe((profil) => {\r\n const recast = profil as any;\r\n this.trainingGuideURLs = recast.guides;\r\n this.cdRef.detectChanges();\r\n });\r\n } else if (\r\n this.auth.authenticated &&\r\n !this.configService.getConfig('context.url') &&\r\n this.configService.getConfig('depot.trainingGuides')) {\r\n this.trainingGuideURLs = this.configService.getConfig('depot.trainingGuides');\r\n }\r\n }\r\n\r\n openGuide(guide?) {\r\n this.loading = true;\r\n const url = guide ?\r\n this.baseUrlGuide + guide + '?' :\r\n this.baseUrlGuide + this.trainingGuideURLs[0] + '?';\r\n this.http\r\n .get(url, {\r\n responseType: 'blob'\r\n })\r\n .subscribe(() => {\r\n this.loading = false;\r\n window.open(url, '_blank');\r\n this.cdRef.detectChanges();\r\n });\r\n }\r\n\r\n formatFileName(name: string) {\r\n name = name.split('_').join(' ');\r\n const index = name.indexOf('.');\r\n name = name.slice(0, index);\r\n return name;\r\n }\r\n}\r\n","import {\r\n NgModule,\r\n ModuleWithProviders,\r\n CUSTOM_ELEMENTS_SCHEMA\r\n} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\n\r\nimport { IgoLanguageModule } from '@igo2/core';\r\nimport { IgoCustomHtmlModule, IgoInteractiveTourModule } from '@igo2/common';\r\n\r\nimport { AboutToolComponent } from './about-tool/about-tool.component';\r\n\r\n@NgModule({\r\n imports: [\r\n IgoLanguageModule,\r\n IgoCustomHtmlModule,\r\n MatButtonModule,\r\n MatTooltipModule,\r\n MatIconModule,\r\n MatMenuModule,\r\n IgoInteractiveTourModule,\r\n CommonModule\r\n ],\r\n declarations: [AboutToolComponent],\r\n exports: [AboutToolComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppAboutModule {\r\n static forRoot(): ModuleWithProviders<IgoAppAboutModule> {\r\n return {\r\n ngModule: IgoAppAboutModule,\r\n providers: []\r\n };\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [],\r\n exports: []\r\n})\r\nexport class IgoAppStorageModule {}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { IgoAppAnalyticsModule } from './analytics/analytics.module';\r\nimport { IgoAppContextModule } from './context/context.module';\r\nimport { IgoAppCatalogModule } from './catalog/catalog.module';\r\nimport { IgoAppDirectionsModule } from './directions/directions.module';\r\nimport { IgoAppDrawModule } from './draw/draw.module';\r\nimport { IgoAppWorkspaceModule } from './workspace/workspace.module';\r\nimport { IgoAppImportExportModule } from './import-export/import-export.module';\r\nimport { IgoAppMapModule } from './map/map.module';\r\nimport { IgoAppMeasureModule } from './measure/measure.module';\r\nimport { IgoAppPrintModule } from './print/print.module';\r\nimport { IgoAppSearchModule } from './search/search.module';\r\nimport { IgoAppFilterModule } from './filter/filter.module';\r\nimport { IgoAppAboutModule } from './about/about.module';\r\nimport { IgoAppStorageModule } from './storage/storage.module';\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [],\r\n exports: [\r\n IgoAppStorageModule,\r\n IgoAppAnalyticsModule,\r\n IgoAppContextModule,\r\n IgoAppCatalogModule,\r\n IgoAppDirectionsModule,\r\n IgoAppDrawModule,\r\n IgoAppWorkspaceModule,\r\n IgoAppImportExportModule,\r\n IgoAppMapModule,\r\n IgoAppMeasureModule,\r\n IgoAppPrintModule,\r\n IgoAppSearchModule,\r\n IgoAppFilterModule,\r\n IgoAppAboutModule\r\n ]\r\n})\r\nexport class IgoIntegrationModule {}\r\n","import { NgModule } from '@angular/core';\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [],\r\n exports: []\r\n})\r\nexport class IgoAppToolModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport { skip } from 'rxjs/operators';\r\n\r\nimport { AnalyticsService } from '@igo2/core';\r\nimport { AuthService } from '@igo2/auth';\r\n\r\nimport { ContextState } from '../context/context.state';\r\nimport { SearchState } from '../search/search.state';\r\nimport { ToolState } from '../tool/tool.state';\r\n\r\n/**\r\n * Service that holds the state of the search module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AnalyticsListenerService {\r\n /**\r\n * Toolbox that holds main tools\r\n */\r\n\r\n constructor(\r\n private analyticsService: AnalyticsService,\r\n private authService: AuthService,\r\n private contextState: ContextState,\r\n private searchState: SearchState,\r\n private toolState: ToolState\r\n ) {}\r\n\r\n listen() {\r\n this.listenUser();\r\n this.listenContext();\r\n this.listenTool();\r\n this.listenSearch();\r\n }\r\n\r\n listenUser() {\r\n this.authService.authenticate$.subscribe(() => {\r\n const tokenDecoded = this.authService.decodeToken() || {};\r\n if (tokenDecoded.user) {\r\n this.authService\r\n .getProfils()\r\n .subscribe(profils =>\r\n this.analyticsService.setUser(tokenDecoded.user, profils.profils)\r\n );\r\n } else {\r\n this.analyticsService.setUser();\r\n }\r\n });\r\n }\r\n\r\n listenContext() {\r\n this.contextState.context$.subscribe(context => {\r\n if (context) {\r\n this.analyticsService.trackEvent('context', 'activateContext', context.id || context.uri);\r\n }\r\n });\r\n }\r\n\r\n listenTool() {\r\n this.toolState.toolbox.activeTool$.pipe(skip(1)).subscribe(tool => {\r\n if (tool) {\r\n this.analyticsService.trackEvent('tool', 'activateTool', tool.name);\r\n }\r\n });\r\n }\r\n\r\n listenSearch() {\r\n this.searchState.searchTerm$.pipe(skip(1)).subscribe((searchTerm: string) => {\r\n if (searchTerm !== undefined && searchTerm !== null) {\r\n this.analyticsService.trackSearch(searchTerm, this.searchState.store.count);\r\n }\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { EntityStore } from '@igo2/common';\r\nimport { ConfigService } from '@igo2/core';\r\nimport { CommonVectorStyleOptions, SearchResult } from '@igo2/geo';\r\n\r\n/**\r\n * Service that holds the state of the query module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class QueryState {\r\n /**\r\n * Store that holds the query results\r\n */\r\n public store: EntityStore<SearchResult> = new EntityStore<SearchResult>([]);\r\n public queryOverlayStyle: CommonVectorStyleOptions = {};\r\n public queryOverlayStyleSelection: CommonVectorStyleOptions = {};\r\n public queryOverlayStyleFocus: CommonVectorStyleOptions = {};\r\n\r\n constructor(private configService: ConfigService) {\r\n const queryOverlayStyle = this.configService.getConfig('queryOverlayStyle') as {\r\n base?: CommonVectorStyleOptions,\r\n selection?: CommonVectorStyleOptions,\r\n focus?: CommonVectorStyleOptions\r\n };\r\n if (queryOverlayStyle) {\r\n this.queryOverlayStyle = queryOverlayStyle.base;\r\n this.queryOverlayStyleSelection = queryOverlayStyle.selection;\r\n this.queryOverlayStyleFocus = queryOverlayStyle.focus;\r\n }\r\n }\r\n}\r\n","/*\r\n * Public API Surface of tools\r\n */\r\n\r\nexport * from './lib/integration.module';\r\nexport * from './lib/about/about.module';\r\nexport * from './lib/analytics/analytics.module';\r\nexport * from './lib/storage/storage.module';\r\nexport * from './lib/context/context.module';\r\nexport * from './lib/catalog/catalog.module';\r\n\r\nexport * from './lib/directions/directions.module';\r\nexport * from './lib/draw/draw.module';\r\nexport * from './lib/workspace/workspace.module';\r\nexport * from './lib/filter/filter.module';\r\nexport * from './lib/import-export/import-export.module';\r\nexport * from './lib/map/map.module';\r\nexport * from './lib/measure/measure.module';\r\nexport * from './lib/print/print.module';\r\nexport * from './lib/search/search.module';\r\nexport * from './lib/tool/tool.module';\r\n\r\nexport * from './lib/about';\r\nexport * from './lib/analytics';\r\nexport * from './lib/context';\r\nexport * from './lib/catalog';\r\nexport * from './lib/directions';\r\nexport * from './lib/draw';\r\nexport * from './lib/workspace';\r\nexport * from './lib/filter';\r\nexport * from './lib/import-export';\r\nexport * from './lib/map';\r\nexport * from './lib/measure';\r\nexport * from './lib/print';\r\nexport * from './lib/search';\r\nexport * from './lib/tool';\r\nexport * from './lib/storage';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["NgModule","ImportExportType","ImportExportMode","BehaviorSubject","Injectable","ContextEditorToolComponent","i0","ToolComponent","Component","IgoMap","ContextManagerToolComponent","Input","ContextPermissionManagerToolComponent","ContextShareToolComponent","IgoContextModule","CUSTOM_ELEMENTS_SCHEMA","EntityStore","CatalogLibraryToolComponent","take","ChangeDetectionStrategy","CommonModule","IgoCatalogLibraryModule","CatalogBrowserToolComponent","IgoCatalogBrowserModule","Subject","StopsStore","StopsFeatureStore","RoutesFeatureStore","StepFeatureStore","DirectionsToolComponent","StorageScope","IgoDirectionsModule","FeatureStore","DrawingToolComponent","IgoDrawingToolModule","FeatureStoreSelectionStrategy","FeatureMotion","skipWhile","StorageServiceEventEnum","mapExtentStrategyActiveToolTip","noElementSelected","EntityStoreFilterCustomFuncStrategy","EntityStoreFilterSelectionStrategy","map","OgcFilterWidget","Inject","of","WorkspaceStore","WfsWorkspace","FeatureWorkspace","EditionWorkspace","combineLatest","MatIconModule","MatButtonModule","MatTooltipModule","IgoLanguageModule","ImportExportToolComponent","IgoImportExportModule","IgoContextImportExportModule","MatButtonToggleModule","MatTabsModule","MapDetailsToolComponent","LayerListControlsEnum","sourceCanSearch","MapToolComponent","MapToolsComponent","debounceTime","VectorLayer","ViewChild","MapLegendToolComponent","ReplaySubject","Validators","zoneMtm","zoneUtm","formatScale","Clipboard","computeProjectionsConstraints","olproj","AdvancedMapToolComponent","interval","olProj","roundCoordTo","olLayerVector","featureFromOl","olLineString","measureOlGeometryLength","uuid","GeoJSON","FEATURE","MapProximityToolComponent","NumberUtils","FormsModule","ReactiveFormsModule","MatDividerModule","MatSelectModule","MatOptionModule","MatFormFieldModule","MatInputModule","MatCheckboxModule","IgoSpinnerModule","MatListModule","IgoLayerModule","IgoMetadataModule","IgoDownloadModule","IgoFilterModule","MatRadioModule","MatSlideToggleModule","MatMenuModule","IgoEntityTableModule","MeasurerToolComponent","IgoMeasurerModule","PrintToolComponent","IgoPrintModule","Directive","Self","HostListener","IgoSearchModule","SearchResultsToolComponent","olFormatGeoJSON","getEntityTitle","FlexibleComponent","getCommonVectorStyle","featureToOl","computeOlFeaturesExtent","featuresAreOutOfView","featuresAreTooDeepInView","olFeature","olPoint","getCommonVectorSelectedStyle","moveToOlFeatures","pointOnFeature","MatBadgeModule","IgoFeatureModule","IgoFlexibleModule","IgoPanelModule","IgoFeatureDetailsModule","IgoCustomHtmlModule","OgcFilterToolComponent","TimeFilterToolComponent","SpatialFilterToolComponent","SpatialFilterItemType","MeasureLengthUnit","takeUntil","SpatialFilterType","tap","forkJoin","olstyle","createOverlayMarkerStyle","toolSlideInOut","trigger","state","style","transition","animate","ActiveTimeFilterToolComponent","ActiveOgcFilterToolComponent","IgoQueryModule","AboutToolComponent","IgoInteractiveTourModule","skip"],"mappings":"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"}