@igo2/geo 1.15.4 → 16.0.0-rc.0

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 (1433) hide show
  1. package/esm2022/igo2-geo.mjs +5 -0
  2. package/esm2022/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +320 -0
  3. package/esm2022/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +319 -0
  4. package/esm2022/lib/catalog/catalog-browser/catalog-browser.component.mjs +278 -0
  5. package/esm2022/lib/catalog/catalog-browser/catalog-browser.module.mjs +78 -0
  6. package/esm2022/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +223 -0
  7. package/esm2022/lib/catalog/catalog-library/catalog-library-item.component.mjs +89 -0
  8. package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +230 -0
  9. package/esm2022/lib/catalog/catalog-library/catalog-library.module.mjs +91 -0
  10. package/esm2022/lib/catalog/catalog.module.mjs +48 -0
  11. package/esm2022/lib/catalog/index.mjs +5 -0
  12. package/esm2022/lib/catalog/shared/catalog.abstract.mjs +32 -0
  13. package/esm2022/lib/catalog/shared/catalog.enum.mjs +16 -0
  14. package/esm2022/lib/catalog/shared/catalog.interface.mjs +2 -0
  15. package/esm2022/lib/catalog/shared/catalog.service.mjs +666 -0
  16. package/esm2022/lib/catalog/shared/catalogs.mjs +75 -0
  17. package/esm2022/lib/catalog/shared/index.mjs +5 -0
  18. package/esm2022/lib/datasource/datasource.module.mjs +22 -0
  19. package/esm2022/lib/datasource/index.mjs +3 -0
  20. package/esm2022/lib/datasource/shared/capabilities.service.mjs +448 -0
  21. package/esm2022/lib/datasource/shared/datasource.service.mjs +259 -0
  22. package/esm2022/lib/datasource/shared/datasources/any-datasource.interface.mjs +2 -0
  23. package/esm2022/lib/datasource/shared/datasources/any-datasource.mjs +2 -0
  24. package/esm2022/lib/datasource/shared/datasources/arcgisrest-datasource.interface.mjs +2 -0
  25. package/esm2022/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +212 -0
  26. package/esm2022/lib/datasource/shared/datasources/carto-datasource.interface.mjs +2 -0
  27. package/esm2022/lib/datasource/shared/datasources/carto-datasource.mjs +109 -0
  28. package/esm2022/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +2 -0
  29. package/esm2022/lib/datasource/shared/datasources/cluster-datasource.mjs +15 -0
  30. package/esm2022/lib/datasource/shared/datasources/data.service.mjs +3 -0
  31. package/esm2022/lib/datasource/shared/datasources/datasource.interface.mjs +2 -0
  32. package/esm2022/lib/datasource/shared/datasources/datasource.mjs +34 -0
  33. package/esm2022/lib/datasource/shared/datasources/feature-datasource.interface.mjs +2 -0
  34. package/esm2022/lib/datasource/shared/datasources/feature-datasource.mjs +43 -0
  35. package/esm2022/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.mjs +2 -0
  36. package/esm2022/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +61 -0
  37. package/esm2022/lib/datasource/shared/datasources/index.mjs +36 -0
  38. package/esm2022/lib/datasource/shared/datasources/mvt-datasource.interface.mjs +2 -0
  39. package/esm2022/lib/datasource/shared/datasources/mvt-datasource.mjs +28 -0
  40. package/esm2022/lib/datasource/shared/datasources/osm-datasource.interface.mjs +2 -0
  41. package/esm2022/lib/datasource/shared/datasources/osm-datasource.mjs +12 -0
  42. package/esm2022/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.mjs +2 -0
  43. package/esm2022/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +51 -0
  44. package/esm2022/lib/datasource/shared/datasources/tiledebug-datasource.interface.mjs +2 -0
  45. package/esm2022/lib/datasource/shared/datasources/tiledebug-datasource.mjs +15 -0
  46. package/esm2022/lib/datasource/shared/datasources/websocket-datasource.interface.mjs +2 -0
  47. package/esm2022/lib/datasource/shared/datasources/websocket-datasource.mjs +55 -0
  48. package/esm2022/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +2 -0
  49. package/esm2022/lib/datasource/shared/datasources/wfs-datasource.mjs +79 -0
  50. package/esm2022/lib/datasource/shared/datasources/wfs.service.mjs +169 -0
  51. package/esm2022/lib/datasource/shared/datasources/wms-datasource.interface.mjs +2 -0
  52. package/esm2022/lib/datasource/shared/datasources/wms-datasource.mjs +218 -0
  53. package/esm2022/lib/datasource/shared/datasources/wms-wfs.utils.mjs +222 -0
  54. package/esm2022/lib/datasource/shared/datasources/wmts-datasource.interface.mjs +2 -0
  55. package/esm2022/lib/datasource/shared/datasources/wmts-datasource.mjs +16 -0
  56. package/esm2022/lib/datasource/shared/datasources/xyz-datasource.interface.mjs +2 -0
  57. package/esm2022/lib/datasource/shared/datasources/xyz-datasource.mjs +9 -0
  58. package/esm2022/lib/datasource/shared/index.mjs +5 -0
  59. package/esm2022/lib/datasource/shared/options/index.mjs +5 -0
  60. package/esm2022/lib/datasource/shared/options/options-api.interface.mjs +2 -0
  61. package/esm2022/lib/datasource/shared/options/options-api.providers.mjs +15 -0
  62. package/esm2022/lib/datasource/shared/options/options-api.service.mjs +85 -0
  63. package/esm2022/lib/datasource/shared/options/options.service.mjs +3 -0
  64. package/esm2022/lib/datasource/utils/index.mjs +2 -0
  65. package/esm2022/lib/datasource/utils/tilegrid.mjs +20 -0
  66. package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +265 -0
  67. package/esm2022/lib/directions/directions-buttons/index.mjs +2 -0
  68. package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +294 -0
  69. package/esm2022/lib/directions/directions-inputs/index.mjs +2 -0
  70. package/esm2022/lib/directions/directions-results/directions-results.component.mjs +215 -0
  71. package/esm2022/lib/directions/directions-results/index.mjs +2 -0
  72. package/esm2022/lib/directions/directions-sources/directions-source.interface.mjs +2 -0
  73. package/esm2022/lib/directions/directions-sources/directions-source.mjs +3 -0
  74. package/esm2022/lib/directions/directions-sources/directions-source.provider.mjs +16 -0
  75. package/esm2022/lib/directions/directions-sources/index.mjs +5 -0
  76. package/esm2022/lib/directions/directions-sources/osrm-directions-source.mjs +128 -0
  77. package/esm2022/lib/directions/directions.component.mjs +349 -0
  78. package/esm2022/lib/directions/directions.module.mjs +102 -0
  79. package/esm2022/lib/directions/index.mjs +7 -0
  80. package/esm2022/lib/directions/shared/directions-source.service.mjs +18 -0
  81. package/esm2022/lib/directions/shared/directions.enum.mjs +28 -0
  82. package/esm2022/lib/directions/shared/directions.interface.mjs +2 -0
  83. package/esm2022/lib/directions/shared/directions.service.mjs +202 -0
  84. package/esm2022/lib/directions/shared/directions.utils.mjs +559 -0
  85. package/esm2022/lib/directions/shared/index.mjs +6 -0
  86. package/esm2022/lib/directions/shared/store.mjs +21 -0
  87. package/esm2022/lib/download/download-button/download-button.component.mjs +65 -0
  88. package/esm2022/lib/download/download-button/index.mjs +2 -0
  89. package/esm2022/lib/download/download.module.mjs +42 -0
  90. package/esm2022/lib/download/index.mjs +3 -0
  91. package/esm2022/lib/download/shared/download.interface.mjs +2 -0
  92. package/esm2022/lib/download/shared/download.service.mjs +67 -0
  93. package/esm2022/lib/download/shared/index.mjs +3 -0
  94. package/esm2022/lib/draw/draw/draw-layer-popup.component.mjs +57 -0
  95. package/esm2022/lib/draw/draw/draw-popup.component.mjs +677 -0
  96. package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +48 -0
  97. package/esm2022/lib/draw/draw/draw.component.mjs +1369 -0
  98. package/esm2022/lib/draw/draw/draw.module.mjs +117 -0
  99. package/esm2022/lib/draw/drawingTool.module.mjs +18 -0
  100. package/esm2022/lib/draw/index.mjs +3 -0
  101. package/esm2022/lib/draw/shared/draw-icon.service.mjs +30 -0
  102. package/esm2022/lib/draw/shared/draw.enum.mjs +21 -0
  103. package/esm2022/lib/draw/shared/draw.interface.mjs +2 -0
  104. package/esm2022/lib/draw/shared/draw.utils.mjs +125 -0
  105. package/esm2022/lib/draw/shared/index.mjs +5 -0
  106. package/esm2022/lib/feature/feature-details/feature-details.component.mjs +440 -0
  107. package/esm2022/lib/feature/feature-details/feature-details.directive.mjs +57 -0
  108. package/esm2022/lib/feature/feature-details/feature-details.module.mjs +40 -0
  109. package/esm2022/lib/feature/feature-form/feature-form.component.mjs +120 -0
  110. package/esm2022/lib/feature/feature-form/feature-form.module.mjs +23 -0
  111. package/esm2022/lib/feature/feature.module.mjs +21 -0
  112. package/esm2022/lib/feature/index.mjs +4 -0
  113. package/esm2022/lib/feature/shared/feature-store.utils.mjs +27 -0
  114. package/esm2022/lib/feature/shared/feature.enums.mjs +9 -0
  115. package/esm2022/lib/feature/shared/feature.interfaces.mjs +2 -0
  116. package/esm2022/lib/feature/shared/feature.utils.mjs +333 -0
  117. package/esm2022/lib/feature/shared/index.mjs +8 -0
  118. package/esm2022/lib/feature/shared/store.mjs +143 -0
  119. package/esm2022/lib/feature/shared/strategies/geo-properties.mjs +216 -0
  120. package/esm2022/lib/feature/shared/strategies/in-map-extent.mjs +115 -0
  121. package/esm2022/lib/feature/shared/strategies/in-map-resolution.mjs +96 -0
  122. package/esm2022/lib/feature/shared/strategies/index.mjs +8 -0
  123. package/esm2022/lib/feature/shared/strategies/loading-layer.mjs +104 -0
  124. package/esm2022/lib/feature/shared/strategies/loading.mjs +136 -0
  125. package/esm2022/lib/feature/shared/strategies/search.mjs +159 -0
  126. package/esm2022/lib/feature/shared/strategies/selection.mjs +384 -0
  127. package/esm2022/lib/feature/shared/strategies.utils.mjs +37 -0
  128. package/esm2022/lib/filter/filter.module.mjs +300 -0
  129. package/esm2022/lib/filter/index.mjs +16 -0
  130. package/esm2022/lib/filter/ogc-filter-button/index.mjs +2 -0
  131. package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +153 -0
  132. package/esm2022/lib/filter/ogc-filter-form/index.mjs +2 -0
  133. package/esm2022/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +663 -0
  134. package/esm2022/lib/filter/ogc-filter-selection/index.mjs +2 -0
  135. package/esm2022/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +1344 -0
  136. package/esm2022/lib/filter/ogc-filter-time/index.mjs +3 -0
  137. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +226 -0
  138. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +936 -0
  139. package/esm2022/lib/filter/ogc-filterable-form/index.mjs +2 -0
  140. package/esm2022/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +63 -0
  141. package/esm2022/lib/filter/ogc-filterable-item/index.mjs +2 -0
  142. package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +320 -0
  143. package/esm2022/lib/filter/ogc-filterable-list/index.mjs +3 -0
  144. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +36 -0
  145. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +47 -0
  146. package/esm2022/lib/filter/shared/filterable-datasource.pipe.mjs +55 -0
  147. package/esm2022/lib/filter/shared/index.mjs +12 -0
  148. package/esm2022/lib/filter/shared/ogc-filter-time.service.mjs +73 -0
  149. package/esm2022/lib/filter/shared/ogc-filter.enum.mjs +30 -0
  150. package/esm2022/lib/filter/shared/ogc-filter.interface.mjs +2 -0
  151. package/esm2022/lib/filter/shared/ogc-filter.mjs +699 -0
  152. package/esm2022/lib/filter/shared/ogc-filter.service.mjs +48 -0
  153. package/esm2022/lib/filter/shared/spatial-filter.enum.mjs +23 -0
  154. package/esm2022/lib/filter/shared/spatial-filter.interface.mjs +2 -0
  155. package/esm2022/lib/filter/shared/spatial-filter.service.mjs +280 -0
  156. package/esm2022/lib/filter/shared/time-filter.enum.mjs +13 -0
  157. package/esm2022/lib/filter/shared/time-filter.interface.mjs +2 -0
  158. package/esm2022/lib/filter/shared/time-filter.service.mjs +108 -0
  159. package/esm2022/lib/filter/spatial-filter/spatial-filter-item/index.mjs +2 -0
  160. package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +1150 -0
  161. package/esm2022/lib/filter/spatial-filter/spatial-filter-list/index.mjs +2 -0
  162. package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +244 -0
  163. package/esm2022/lib/filter/spatial-filter/spatial-filter-type/index.mjs +2 -0
  164. package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +157 -0
  165. package/esm2022/lib/filter/time-filter-button/index.mjs +2 -0
  166. package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +82 -0
  167. package/esm2022/lib/filter/time-filter-form/index.mjs +2 -0
  168. package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +755 -0
  169. package/esm2022/lib/filter/time-filter-item/index.mjs +2 -0
  170. package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +124 -0
  171. package/esm2022/lib/filter/time-filter-list/index.mjs +3 -0
  172. package/esm2022/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +36 -0
  173. package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +40 -0
  174. package/esm2022/lib/geo.module.mjs +106 -0
  175. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +563 -0
  176. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +218 -0
  177. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +56 -0
  178. package/esm2022/lib/geometry/geometry.module.mjs +20 -0
  179. package/esm2022/lib/geometry/index.mjs +4 -0
  180. package/esm2022/lib/geometry/shared/controls/draw.mjs +340 -0
  181. package/esm2022/lib/geometry/shared/controls/index.mjs +4 -0
  182. package/esm2022/lib/geometry/shared/controls/modify.mjs +541 -0
  183. package/esm2022/lib/geometry/shared/controls/slice.mjs +190 -0
  184. package/esm2022/lib/geometry/shared/geometry.errors.mjs +26 -0
  185. package/esm2022/lib/geometry/shared/geometry.interfaces.mjs +2 -0
  186. package/esm2022/lib/geometry/shared/geometry.utils.mjs +122 -0
  187. package/esm2022/lib/geometry/shared/index.mjs +5 -0
  188. package/esm2022/lib/import-export/export-button/export-button.component.mjs +66 -0
  189. package/esm2022/lib/import-export/export-button/index.mjs +2 -0
  190. package/esm2022/lib/import-export/import-export/import-export.component.mjs +1350 -0
  191. package/esm2022/lib/import-export/import-export/index.mjs +2 -0
  192. package/esm2022/lib/import-export/import-export.module.mjs +98 -0
  193. package/esm2022/lib/import-export/index.mjs +4 -0
  194. package/esm2022/lib/import-export/shared/drop-geo-file.directive.mjs +174 -0
  195. package/esm2022/lib/import-export/shared/export.errors.mjs +15 -0
  196. package/esm2022/lib/import-export/shared/export.interface.mjs +2 -0
  197. package/esm2022/lib/import-export/shared/export.service.mjs +205 -0
  198. package/esm2022/lib/import-export/shared/export.type.mjs +13 -0
  199. package/esm2022/lib/import-export/shared/export.utils.mjs +47 -0
  200. package/esm2022/lib/import-export/shared/import.errors.mjs +39 -0
  201. package/esm2022/lib/import-export/shared/import.interface.mjs +2 -0
  202. package/esm2022/lib/import-export/shared/import.service.mjs +221 -0
  203. package/esm2022/lib/import-export/shared/import.utils.mjs +203 -0
  204. package/esm2022/lib/import-export/shared/index.mjs +11 -0
  205. package/esm2022/lib/layer/index.mjs +10 -0
  206. package/esm2022/lib/layer/layer-item/index.mjs +2 -0
  207. package/esm2022/lib/layer/layer-item/layer-item.component.mjs +324 -0
  208. package/esm2022/lib/layer/layer-legend/index.mjs +2 -0
  209. package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +429 -0
  210. package/esm2022/lib/layer/layer-legend-item/index.mjs +2 -0
  211. package/esm2022/lib/layer/layer-legend-item/layer-legend-item.component.mjs +93 -0
  212. package/esm2022/lib/layer/layer-legend-list/index.mjs +3 -0
  213. package/esm2022/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +54 -0
  214. package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +201 -0
  215. package/esm2022/lib/layer/layer-list/index.mjs +4 -0
  216. package/esm2022/lib/layer/layer-list/layer-list-binding.directive.mjs +69 -0
  217. package/esm2022/lib/layer/layer-list/layer-list.component.mjs +1022 -0
  218. package/esm2022/lib/layer/layer-list/layer-list.enum.mjs +19 -0
  219. package/esm2022/lib/layer/layer-list-tool/index.mjs +5 -0
  220. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +157 -0
  221. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.enum.mjs +7 -0
  222. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.interface.mjs +2 -0
  223. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.service.mjs +22 -0
  224. package/esm2022/lib/layer/layer.module.mjs +175 -0
  225. package/esm2022/lib/layer/shared/clusterParam.mjs +2 -0
  226. package/esm2022/lib/layer/shared/index.mjs +5 -0
  227. package/esm2022/lib/layer/shared/layer.enums.mjs +2 -0
  228. package/esm2022/lib/layer/shared/layer.service.mjs +268 -0
  229. package/esm2022/lib/layer/shared/layers/any-layer.interface.mjs +2 -0
  230. package/esm2022/lib/layer/shared/layers/any-layer.mjs +2 -0
  231. package/esm2022/lib/layer/shared/layers/image-layer.interface.mjs +2 -0
  232. package/esm2022/lib/layer/shared/layers/image-layer.mjs +70 -0
  233. package/esm2022/lib/layer/shared/layers/index.mjs +13 -0
  234. package/esm2022/lib/layer/shared/layers/layer.interface.mjs +17 -0
  235. package/esm2022/lib/layer/shared/layers/layer.mjs +184 -0
  236. package/esm2022/lib/layer/shared/layers/legend.interface.mjs +2 -0
  237. package/esm2022/lib/layer/shared/layers/tile-layer.interface.mjs +2 -0
  238. package/esm2022/lib/layer/shared/layers/tile-layer.mjs +50 -0
  239. package/esm2022/lib/layer/shared/layers/vector-layer.interface.mjs +2 -0
  240. package/esm2022/lib/layer/shared/layers/vector-layer.mjs +562 -0
  241. package/esm2022/lib/layer/shared/layers/vectortile-layer.interface.mjs +2 -0
  242. package/esm2022/lib/layer/shared/layers/vectortile-layer.mjs +107 -0
  243. package/esm2022/lib/layer/track-feature-button/index.mjs +2 -0
  244. package/esm2022/lib/layer/track-feature-button/track-feature-button.component.mjs +60 -0
  245. package/esm2022/lib/layer/utils/image-watcher.mjs +62 -0
  246. package/esm2022/lib/layer/utils/index.mjs +6 -0
  247. package/esm2022/lib/layer/utils/layer.utils.mjs +11 -0
  248. package/esm2022/lib/layer/utils/outputLegend.mjs +28 -0
  249. package/esm2022/lib/layer/utils/tile-watcher.mjs +52 -0
  250. package/esm2022/lib/layer/utils/vector-watcher.mjs +50 -0
  251. package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.animation.mjs +16 -0
  252. package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +120 -0
  253. package/esm2022/lib/map/baselayers-switcher/index.mjs +3 -0
  254. package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +155 -0
  255. package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +87 -0
  256. package/esm2022/lib/map/geolocate-button/index.mjs +2 -0
  257. package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +80 -0
  258. package/esm2022/lib/map/home-extent-button/index.mjs +2 -0
  259. package/esm2022/lib/map/index.mjs +14 -0
  260. package/esm2022/lib/map/info-section/index.mjs +2 -0
  261. package/esm2022/lib/map/info-section/info-section.component.mjs +29 -0
  262. package/esm2022/lib/map/map-browser/index.mjs +2 -0
  263. package/esm2022/lib/map/map-browser/map-browser.component.mjs +74 -0
  264. package/esm2022/lib/map/map-center/index.mjs +2 -0
  265. package/esm2022/lib/map/map-center/map-center.component.mjs +61 -0
  266. package/esm2022/lib/map/map.module.mjs +120 -0
  267. package/esm2022/lib/map/menu-button/index.mjs +2 -0
  268. package/esm2022/lib/map/menu-button/menu-button.component.mjs +66 -0
  269. package/esm2022/lib/map/offline-button/index.mjs +2 -0
  270. package/esm2022/lib/map/offline-button/offline-button.component.mjs +55 -0
  271. package/esm2022/lib/map/rotation-button/index.mjs +2 -0
  272. package/esm2022/lib/map/rotation-button/rotation-button.component.mjs +73 -0
  273. package/esm2022/lib/map/shared/controllers/controller.mjs +44 -0
  274. package/esm2022/lib/map/shared/controllers/geolocation.interface.mjs +8 -0
  275. package/esm2022/lib/map/shared/controllers/geolocation.mjs +431 -0
  276. package/esm2022/lib/map/shared/controllers/index.mjs +5 -0
  277. package/esm2022/lib/map/shared/controllers/view.mjs +360 -0
  278. package/esm2022/lib/map/shared/hover-feature.directive.mjs +493 -0
  279. package/esm2022/lib/map/shared/index.mjs +15 -0
  280. package/esm2022/lib/map/shared/linkedLayers.utils.mjs +248 -0
  281. package/esm2022/lib/map/shared/map-pointer-position.directive.mjs +121 -0
  282. package/esm2022/lib/map/shared/map.abstract.mjs +23 -0
  283. package/esm2022/lib/map/shared/map.enums.mjs +6 -0
  284. package/esm2022/lib/map/shared/map.interface.mjs +2 -0
  285. package/esm2022/lib/map/shared/map.mjs +434 -0
  286. package/esm2022/lib/map/shared/map.service.mjs +30 -0
  287. package/esm2022/lib/map/shared/map.utils.mjs +456 -0
  288. package/esm2022/lib/map/shared/mapOffline.directive.mjs +107 -0
  289. package/esm2022/lib/map/shared/projection.interfaces.mjs +2 -0
  290. package/esm2022/lib/map/shared/projection.service.mjs +67 -0
  291. package/esm2022/lib/map/shared/projection.utils.mjs +64 -0
  292. package/esm2022/lib/map/swipe-control/index.mjs +2 -0
  293. package/esm2022/lib/map/swipe-control/swipe-control.component.mjs +219 -0
  294. package/esm2022/lib/map/utils/layer-watcher.mjs +78 -0
  295. package/esm2022/lib/map/wake-lock-button/index.mjs +2 -0
  296. package/esm2022/lib/map/wake-lock-button/wake-lock-button.component.mjs +106 -0
  297. package/esm2022/lib/map/zoom-button/index.mjs +2 -0
  298. package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +49 -0
  299. package/esm2022/lib/measure/index.mjs +4 -0
  300. package/esm2022/lib/measure/measure.module.mjs +18 -0
  301. package/esm2022/lib/measure/measurer/measure-format.pipe.mjs +39 -0
  302. package/esm2022/lib/measure/measurer/measurer-dialog.component.mjs +184 -0
  303. package/esm2022/lib/measure/measurer/measurer-item.component.mjs +162 -0
  304. package/esm2022/lib/measure/measurer/measurer.component.mjs +1121 -0
  305. package/esm2022/lib/measure/measurer/measurer.module.mjs +95 -0
  306. package/esm2022/lib/measure/shared/index.mjs +4 -0
  307. package/esm2022/lib/measure/shared/measure.enum.mjs +37 -0
  308. package/esm2022/lib/measure/shared/measure.interfaces.mjs +2 -0
  309. package/esm2022/lib/measure/shared/measure.utils.mjs +497 -0
  310. package/esm2022/lib/metadata/index.mjs +3 -0
  311. package/esm2022/lib/metadata/metadata-button/index.mjs +2 -0
  312. package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +140 -0
  313. package/esm2022/lib/metadata/metadata.module.mjs +47 -0
  314. package/esm2022/lib/metadata/shared/index.mjs +3 -0
  315. package/esm2022/lib/metadata/shared/metadata.interface.mjs +2 -0
  316. package/esm2022/lib/metadata/shared/metadata.service.mjs +19 -0
  317. package/esm2022/lib/offline/geoDB/configFileToGeoDB.service.mjs +128 -0
  318. package/esm2022/lib/offline/geoDB/geoDB.enums.mjs +6 -0
  319. package/esm2022/lib/offline/geoDB/geoDB.interface.mjs +2 -0
  320. package/esm2022/lib/offline/geoDB/geoDB.service.mjs +175 -0
  321. package/esm2022/lib/offline/geoDB/index.mjs +5 -0
  322. package/esm2022/lib/offline/index.mjs +4 -0
  323. package/esm2022/lib/offline/layerDB/index.mjs +3 -0
  324. package/esm2022/lib/offline/layerDB/layerDB.interface.mjs +2 -0
  325. package/esm2022/lib/offline/layerDB/layerDB.service.mjs +84 -0
  326. package/esm2022/lib/offline/shared/geo-network.service.mjs +87 -0
  327. package/esm2022/lib/offline/shared/index.mjs +2 -0
  328. package/esm2022/lib/overlay/index.mjs +2 -0
  329. package/esm2022/lib/overlay/overlay.module.mjs +23 -0
  330. package/esm2022/lib/overlay/shared/index.mjs +6 -0
  331. package/esm2022/lib/overlay/shared/overlay.directive.mjs +38 -0
  332. package/esm2022/lib/overlay/shared/overlay.enum.mjs +8 -0
  333. package/esm2022/lib/overlay/shared/overlay.mjs +138 -0
  334. package/esm2022/lib/overlay/shared/overlay.service.mjs +26 -0
  335. package/esm2022/lib/overlay/shared/overlay.utils.mjs +17 -0
  336. package/esm2022/lib/print/index.mjs +4 -0
  337. package/esm2022/lib/print/print/print.component.mjs +122 -0
  338. package/esm2022/lib/print/print-form/index.mjs +2 -0
  339. package/esm2022/lib/print/print-form/print-form.component.mjs +580 -0
  340. package/esm2022/lib/print/print.module.mjs +65 -0
  341. package/esm2022/lib/print/shared/geopdf.mjs +68 -0
  342. package/esm2022/lib/print/shared/index.mjs +5 -0
  343. package/esm2022/lib/print/shared/print.interface.mjs +2 -0
  344. package/esm2022/lib/print/shared/print.service.mjs +1093 -0
  345. package/esm2022/lib/print/shared/print.type.mjs +30 -0
  346. package/esm2022/lib/query/index.mjs +2 -0
  347. package/esm2022/lib/query/query.module.mjs +29 -0
  348. package/esm2022/lib/query/shared/index.mjs +7 -0
  349. package/esm2022/lib/query/shared/query-search-source.mjs +35 -0
  350. package/esm2022/lib/query/shared/query-search-source.providers.mjs +22 -0
  351. package/esm2022/lib/query/shared/query.directive.mjs +285 -0
  352. package/esm2022/lib/query/shared/query.enums.mjs +30 -0
  353. package/esm2022/lib/query/shared/query.interfaces.mjs +2 -0
  354. package/esm2022/lib/query/shared/query.service.mjs +753 -0
  355. package/esm2022/lib/query/shared/query.utils.mjs +41 -0
  356. package/esm2022/lib/search/index.mjs +12 -0
  357. package/esm2022/lib/search/search-bar/search-bar.component.mjs +559 -0
  358. package/esm2022/lib/search/search-bar/search-bar.module.mjs +73 -0
  359. package/esm2022/lib/search/search-bar/search-url-param.directive.mjs +40 -0
  360. package/esm2022/lib/search/search-results/save-feature-dialog.component.mjs +132 -0
  361. package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +456 -0
  362. package/esm2022/lib/search/search-results/search-results-item.component.mjs +166 -0
  363. package/esm2022/lib/search/search-results/search-results.component.mjs +480 -0
  364. package/esm2022/lib/search/search-results/search-results.module.mjs +104 -0
  365. package/esm2022/lib/search/search-selector/search-selector.component.mjs +133 -0
  366. package/esm2022/lib/search/search-selector/search-selector.module.mjs +56 -0
  367. package/esm2022/lib/search/search-settings/search-settings.component.mjs +448 -0
  368. package/esm2022/lib/search/search-settings/search-settings.module.mjs +60 -0
  369. package/esm2022/lib/search/search.module.mjs +67 -0
  370. package/esm2022/lib/search/shared/index.mjs +9 -0
  371. package/esm2022/lib/search/shared/search-pointer-summary.directive.mjs +337 -0
  372. package/esm2022/lib/search/shared/search-source-service.providers.mjs +20 -0
  373. package/esm2022/lib/search/shared/search-source.service.mjs +56 -0
  374. package/esm2022/lib/search/shared/search.enums.mjs +4 -0
  375. package/esm2022/lib/search/shared/search.interfaces.mjs +2 -0
  376. package/esm2022/lib/search/shared/search.service.mjs +130 -0
  377. package/esm2022/lib/search/shared/search.utils.mjs +92 -0
  378. package/esm2022/lib/search/shared/sources/cadastre.mjs +139 -0
  379. package/esm2022/lib/search/shared/sources/cadastre.providers.mjs +23 -0
  380. package/esm2022/lib/search/shared/sources/coordinates.interfaces.mjs +2 -0
  381. package/esm2022/lib/search/shared/sources/coordinates.mjs +166 -0
  382. package/esm2022/lib/search/shared/sources/coordinates.providers.mjs +40 -0
  383. package/esm2022/lib/search/shared/sources/icherche.interfaces.mjs +2 -0
  384. package/esm2022/lib/search/shared/sources/icherche.mjs +796 -0
  385. package/esm2022/lib/search/shared/sources/icherche.providers.mjs +66 -0
  386. package/esm2022/lib/search/shared/sources/ilayer.interfaces.mjs +2 -0
  387. package/esm2022/lib/search/shared/sources/ilayer.mjs +335 -0
  388. package/esm2022/lib/search/shared/sources/ilayer.providers.mjs +46 -0
  389. package/esm2022/lib/search/shared/sources/index.mjs +23 -0
  390. package/esm2022/lib/search/shared/sources/nominatim.interfaces.mjs +2 -0
  391. package/esm2022/lib/search/shared/sources/nominatim.mjs +263 -0
  392. package/esm2022/lib/search/shared/sources/nominatim.providers.mjs +23 -0
  393. package/esm2022/lib/search/shared/sources/source.interfaces.mjs +2 -0
  394. package/esm2022/lib/search/shared/sources/source.mjs +220 -0
  395. package/esm2022/lib/search/shared/sources/storedqueries.interfaces.mjs +2 -0
  396. package/esm2022/lib/search/shared/sources/storedqueries.mjs +455 -0
  397. package/esm2022/lib/search/shared/sources/storedqueries.providers.mjs +41 -0
  398. package/esm2022/lib/search/shared/sources/workspace.interfaces.mjs +2 -0
  399. package/esm2022/lib/search/shared/sources/workspace.mjs +191 -0
  400. package/esm2022/lib/search/shared/sources/workspace.providers.mjs +22 -0
  401. package/esm2022/lib/style/index.mjs +5 -0
  402. package/esm2022/lib/style/shared/datasource/esri-style-generator.mjs +359 -0
  403. package/esm2022/lib/style/shared/datasource/index.mjs +2 -0
  404. package/esm2022/lib/style/shared/feature/feature-style.mjs +161 -0
  405. package/esm2022/lib/style/shared/feature/index.mjs +2 -0
  406. package/esm2022/lib/style/shared/font.enum.mjs +17 -0
  407. package/esm2022/lib/style/shared/index.mjs +5 -0
  408. package/esm2022/lib/style/shared/overlay/index.mjs +3 -0
  409. package/esm2022/lib/style/shared/overlay/overlay-marker-style.utils.mjs +45 -0
  410. package/esm2022/lib/style/shared/overlay/overlay-style.utils.mjs +88 -0
  411. package/esm2022/lib/style/shared/vector/commonVectorStyle.mjs +78 -0
  412. package/esm2022/lib/style/shared/vector/conversion.utils.mjs +27 -0
  413. package/esm2022/lib/style/shared/vector/index.mjs +4 -0
  414. package/esm2022/lib/style/shared/vector/vector-style.interface.mjs +2 -0
  415. package/esm2022/lib/style/style-list/index.mjs +5 -0
  416. package/esm2022/lib/style/style-list/style-list.interface.mjs +2 -0
  417. package/esm2022/lib/style/style-list/style-list.module.mjs +23 -0
  418. package/esm2022/lib/style/style-list/style-list.provider.mjs +21 -0
  419. package/esm2022/lib/style/style-list/style-list.service.mjs +52 -0
  420. package/esm2022/lib/style/style-modal/drawing/index.mjs +2 -0
  421. package/esm2022/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +288 -0
  422. package/esm2022/lib/style/style-modal/index.mjs +5 -0
  423. package/esm2022/lib/style/style-modal/layer/index.mjs +2 -0
  424. package/esm2022/lib/style/style-modal/layer/style-modal-layer.component.mjs +182 -0
  425. package/esm2022/lib/style/style-modal/layer-button/index.mjs +2 -0
  426. package/esm2022/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +48 -0
  427. package/esm2022/lib/style/style-modal/shared/index.mjs +2 -0
  428. package/esm2022/lib/style/style-modal/shared/style-modal.interface.mjs +2 -0
  429. package/esm2022/lib/style/style-service/draw-style.service.mjs +256 -0
  430. package/esm2022/lib/style/style-service/index.mjs +3 -0
  431. package/esm2022/lib/style/style-service/style.service.mjs +393 -0
  432. package/esm2022/lib/style/style.module.mjs +92 -0
  433. package/esm2022/lib/toast/index.mjs +2 -0
  434. package/esm2022/lib/toast/toast.component.mjs +119 -0
  435. package/esm2022/lib/toast/toast.module.mjs +45 -0
  436. package/esm2022/lib/utils/googleLinks.mjs +13 -0
  437. package/esm2022/lib/utils/id-generator.mjs +110 -0
  438. package/esm2022/lib/utils/index.mjs +5 -0
  439. package/esm2022/lib/utils/osmLinks.mjs +9 -0
  440. package/esm2022/lib/utils/propertyTypeDetector/index.mjs +3 -0
  441. package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.interface.mjs +2 -0
  442. package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.service.mjs +64 -0
  443. package/esm2022/lib/wkt/index.mjs +2 -0
  444. package/esm2022/lib/wkt/shared/index.mjs +2 -0
  445. package/esm2022/lib/wkt/shared/wkt.service.mjs +236 -0
  446. package/esm2022/lib/wkt/wkt.module.mjs +22 -0
  447. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +52 -0
  448. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +36 -0
  449. package/esm2022/lib/workspace/confirmation-popup/index.mjs +3 -0
  450. package/esm2022/lib/workspace/index.mjs +8 -0
  451. package/esm2022/lib/workspace/shared/edition-workspace.mjs +304 -0
  452. package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +711 -0
  453. package/esm2022/lib/workspace/shared/feature-workspace.mjs +41 -0
  454. package/esm2022/lib/workspace/shared/feature-workspace.service.mjs +109 -0
  455. package/esm2022/lib/workspace/shared/index.mjs +8 -0
  456. package/esm2022/lib/workspace/shared/wfs-workspace.mjs +41 -0
  457. package/esm2022/lib/workspace/shared/wfs-workspace.service.mjs +102 -0
  458. package/esm2022/lib/workspace/shared/wms-workspace.service.mjs +225 -0
  459. package/esm2022/lib/workspace/shared/workspace.utils.mjs +185 -0
  460. package/esm2022/lib/workspace/widgets/index.mjs +4 -0
  461. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +52 -0
  462. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +25 -0
  463. package/esm2022/lib/workspace/widgets/widgets.mjs +15 -0
  464. package/esm2022/lib/workspace/workspace-selector/workspace-selector.directive.mjs +167 -0
  465. package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +22 -0
  466. package/esm2022/lib/workspace/workspace-updator/workspace-updator.directive.mjs +135 -0
  467. package/esm2022/lib/workspace/workspace-updator/workspace-updator.module.mjs +22 -0
  468. package/esm2022/lib/workspace/workspace.module.mjs +58 -0
  469. package/esm2022/public_api.mjs +57 -0
  470. package/fesm2022/igo2-geo.mjs +48131 -0
  471. package/fesm2022/igo2-geo.mjs.map +1 -0
  472. package/geo-theme.scss +21 -0
  473. package/index.d.ts +5 -5
  474. package/lib/catalog/catalog-browser/catalog-browser-group.component.d.ts +117 -117
  475. package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +77 -77
  476. package/lib/catalog/catalog-browser/catalog-browser.component.d.ts +99 -99
  477. package/lib/catalog/catalog-browser/catalog-browser.module.d.ts +22 -22
  478. package/lib/catalog/catalog-library/add-catalog-dialog.component.d.ts +45 -45
  479. package/lib/catalog/catalog-library/catalog-library-item.component.d.ts +25 -25
  480. package/lib/catalog/catalog-library/catalog-library.component.d.ts +64 -64
  481. package/lib/catalog/catalog-library/catalog-library.module.d.ts +26 -26
  482. package/lib/catalog/catalog.module.d.ts +14 -14
  483. package/lib/catalog/index.d.ts +4 -4
  484. package/lib/catalog/shared/catalog.abstract.d.ts +41 -50
  485. package/lib/catalog/shared/catalog.enum.d.ts +14 -14
  486. package/lib/catalog/shared/catalog.interface.d.ts +76 -76
  487. package/lib/catalog/shared/catalog.service.d.ts +36 -36
  488. package/lib/catalog/shared/catalogs.d.ts +35 -0
  489. package/lib/catalog/shared/index.d.ts +4 -4
  490. package/lib/datasource/datasource.module.d.ts +8 -8
  491. package/lib/datasource/index.d.ts +2 -2
  492. package/lib/datasource/shared/capabilities.service.d.ts +37 -37
  493. package/lib/datasource/shared/datasource.service.d.ts +37 -37
  494. package/lib/datasource/shared/datasources/any-datasource.d.ts +16 -16
  495. package/lib/datasource/shared/datasources/any-datasource.interface.d.ts +15 -15
  496. package/lib/datasource/shared/datasources/arcgisrest-datasource.d.ts +14 -14
  497. package/lib/datasource/shared/datasources/arcgisrest-datasource.interface.d.ts +14 -14
  498. package/lib/datasource/shared/datasources/carto-datasource.d.ts +15 -15
  499. package/lib/datasource/shared/datasources/carto-datasource.interface.d.ts +13 -13
  500. package/lib/datasource/shared/datasources/cluster-datasource.d.ts +10 -10
  501. package/lib/datasource/shared/datasources/cluster-datasource.interface.d.ts +11 -11
  502. package/lib/datasource/shared/datasources/data.service.d.ts +3 -3
  503. package/lib/datasource/shared/datasources/datasource.d.ts +20 -20
  504. package/lib/datasource/shared/datasources/datasource.interface.d.ts +113 -113
  505. package/lib/datasource/shared/datasources/feature-datasource.d.ts +12 -12
  506. package/lib/datasource/shared/datasources/feature-datasource.interface.d.ts +23 -23
  507. package/lib/datasource/shared/datasources/imagearcgisrest-datasource.d.ts +15 -15
  508. package/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.d.ts +15 -15
  509. package/lib/datasource/shared/datasources/index.d.ts +35 -35
  510. package/lib/datasource/shared/datasources/mvt-datasource.d.ts +10 -10
  511. package/lib/datasource/shared/datasources/mvt-datasource.interface.d.ts +13 -13
  512. package/lib/datasource/shared/datasources/osm-datasource.d.ts +9 -9
  513. package/lib/datasource/shared/datasources/osm-datasource.interface.d.ts +7 -7
  514. package/lib/datasource/shared/datasources/tilearcgisrest-datasource.d.ts +15 -15
  515. package/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.d.ts +14 -14
  516. package/lib/datasource/shared/datasources/tiledebug-datasource.d.ts +9 -9
  517. package/lib/datasource/shared/datasources/tiledebug-datasource.interface.d.ts +9 -9
  518. package/lib/datasource/shared/datasources/websocket-datasource.d.ts +15 -15
  519. package/lib/datasource/shared/datasources/websocket-datasource.interface.d.ts +7 -7
  520. package/lib/datasource/shared/datasources/wfs-datasource.d.ts +20 -20
  521. package/lib/datasource/shared/datasources/wfs-datasource.interface.d.ts +20 -20
  522. package/lib/datasource/shared/datasources/wfs.service.d.ts +17 -17
  523. package/lib/datasource/shared/datasources/wms-datasource.d.ts +45 -31
  524. package/lib/datasource/shared/datasources/wms-datasource.interface.d.ts +37 -32
  525. package/lib/datasource/shared/datasources/wms-wfs.utils.d.ts +41 -41
  526. package/lib/datasource/shared/datasources/wmts-datasource.d.ts +10 -10
  527. package/lib/datasource/shared/datasources/wmts-datasource.interface.d.ts +13 -13
  528. package/lib/datasource/shared/datasources/xyz-datasource.d.ts +9 -9
  529. package/lib/datasource/shared/datasources/xyz-datasource.interface.d.ts +11 -11
  530. package/lib/datasource/shared/index.d.ts +4 -4
  531. package/lib/datasource/shared/options/index.d.ts +4 -4
  532. package/lib/datasource/shared/options/options-api.interface.d.ts +4 -4
  533. package/lib/datasource/shared/options/options-api.providers.d.ts +10 -10
  534. package/lib/datasource/shared/options/options-api.service.d.ts +16 -16
  535. package/lib/datasource/shared/options/options.service.d.ts +6 -6
  536. package/lib/datasource/utils/index.d.ts +1 -1
  537. package/lib/datasource/utils/tilegrid.d.ts +2 -2
  538. package/lib/directions/directions-buttons/directions-buttons.component.d.ts +35 -30
  539. package/lib/directions/directions-buttons/index.d.ts +1 -1
  540. package/lib/directions/directions-inputs/directions-inputs.component.d.ts +45 -45
  541. package/lib/directions/directions-inputs/index.d.ts +1 -1
  542. package/lib/directions/directions-results/directions-results.component.d.ts +30 -30
  543. package/lib/directions/directions-results/directions-results.theming.scss +10 -0
  544. package/lib/directions/directions-results/index.d.ts +1 -1
  545. package/lib/directions/directions-sources/directions-source.d.ts +7 -7
  546. package/lib/directions/directions-sources/directions-source.interface.d.ts +11 -11
  547. package/lib/directions/directions-sources/directions-source.provider.d.ts +11 -11
  548. package/lib/directions/directions-sources/index.d.ts +4 -4
  549. package/lib/directions/directions-sources/osrm-directions-source.d.ts +24 -23
  550. package/lib/directions/directions.component.d.ts +56 -56
  551. package/lib/directions/directions.module.d.ts +26 -26
  552. package/lib/directions/directions.theming.scss +6 -0
  553. package/lib/directions/index.d.ts +6 -6
  554. package/lib/directions/shared/directions-source.service.d.ts +11 -11
  555. package/lib/directions/shared/directions.enum.d.ts +22 -22
  556. package/lib/directions/shared/directions.interface.d.ts +126 -126
  557. package/lib/directions/shared/directions.service.d.ts +28 -13
  558. package/lib/directions/shared/directions.utils.d.ts +42 -42
  559. package/lib/directions/shared/index.d.ts +5 -5
  560. package/lib/directions/shared/store.d.ts +18 -18
  561. package/lib/download/download-button/download-button.component.d.ts +18 -18
  562. package/lib/download/download-button/index.d.ts +1 -1
  563. package/lib/download/download.module.d.ts +14 -14
  564. package/lib/download/index.d.ts +2 -2
  565. package/lib/download/shared/download.interface.d.ts +10 -10
  566. package/lib/download/shared/download.service.d.ts +10 -10
  567. package/lib/download/shared/index.d.ts +2 -2
  568. package/lib/draw/draw/draw-layer-popup.component.d.ts +14 -14
  569. package/lib/draw/draw/draw-popup.component.d.ts +63 -63
  570. package/lib/draw/draw/draw-shorcuts.component.d.ts +5 -5
  571. package/lib/draw/draw/draw.component.d.ts +240 -240
  572. package/lib/draw/draw/draw.module.d.ts +33 -34
  573. package/lib/draw/draw.theming.scss +32 -0
  574. package/lib/draw/drawingTool.module.d.ts +7 -7
  575. package/lib/draw/index.d.ts +2 -2
  576. package/lib/draw/shared/draw-icon.service.d.ts +12 -12
  577. package/lib/draw/shared/draw.enum.d.ts +17 -17
  578. package/lib/draw/shared/draw.interface.d.ts +40 -40
  579. package/lib/draw/shared/draw.utils.d.ts +35 -35
  580. package/lib/draw/shared/index.d.ts +4 -4
  581. package/lib/feature/feature-details/feature-details.component.d.ts +60 -60
  582. package/lib/feature/feature-details/feature-details.directive.d.ts +19 -19
  583. package/lib/feature/feature-details/feature-details.module.d.ts +15 -15
  584. package/lib/feature/feature-details/feature-details.theming.scss +16 -0
  585. package/lib/feature/feature-form/feature-form.component.d.ts +50 -50
  586. package/lib/feature/feature-form/feature-form.module.d.ts +12 -12
  587. package/lib/feature/feature.module.d.ts +9 -9
  588. package/lib/feature/feature.theming.scss +4 -0
  589. package/lib/feature/index.d.ts +3 -3
  590. package/lib/feature/shared/feature-store.utils.d.ts +10 -0
  591. package/lib/feature/shared/feature.enums.d.ts +7 -7
  592. package/lib/feature/shared/feature.interfaces.d.ts +82 -79
  593. package/lib/feature/shared/feature.utils.d.ts +97 -106
  594. package/lib/feature/shared/index.d.ts +7 -6
  595. package/lib/feature/shared/store.d.ts +78 -78
  596. package/lib/feature/shared/strategies/geo-properties.d.ts +61 -0
  597. package/lib/feature/shared/strategies/in-map-extent.d.ts +52 -52
  598. package/lib/feature/shared/strategies/in-map-resolution.d.ts +52 -52
  599. package/lib/feature/shared/strategies/index.d.ts +7 -6
  600. package/lib/feature/shared/strategies/loading-layer.d.ts +59 -59
  601. package/lib/feature/shared/strategies/loading.d.ts +75 -75
  602. package/lib/feature/shared/strategies/search.d.ts +55 -55
  603. package/lib/feature/shared/strategies/selection.d.ts +176 -176
  604. package/lib/feature/shared/strategies.utils.d.ts +17 -17
  605. package/lib/filter/filter.module.d.ts +53 -53
  606. package/lib/filter/filter.theming.scss +16 -0
  607. package/lib/filter/index.d.ts +15 -15
  608. package/lib/filter/ogc-filter-button/index.d.ts +1 -1
  609. package/lib/filter/ogc-filter-button/ogc-filter-button.component.d.ts +20 -20
  610. package/lib/filter/ogc-filter-form/index.d.ts +1 -1
  611. package/lib/filter/ogc-filter-form/ogc-filter-form.component.d.ts +65 -65
  612. package/lib/filter/ogc-filter-selection/index.d.ts +1 -1
  613. package/lib/filter/ogc-filter-selection/ogc-filter-selection.component.d.ts +93 -93
  614. package/lib/filter/ogc-filter-selection/ogc-filter-selection.theming.scss +18 -0
  615. package/lib/filter/ogc-filter-time/index.d.ts +2 -2
  616. package/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.d.ts +39 -39
  617. package/lib/filter/ogc-filter-time/ogc-filter-time-slider.theming.scss +15 -0
  618. package/lib/filter/ogc-filter-time/ogc-filter-time.component.d.ts +86 -86
  619. package/lib/filter/ogc-filterable-form/index.d.ts +1 -1
  620. package/lib/filter/ogc-filterable-form/ogc-filterable-form.component.d.ts +15 -15
  621. package/lib/filter/ogc-filterable-item/index.d.ts +1 -1
  622. package/lib/filter/ogc-filterable-item/ogc-filterable-item.component.d.ts +41 -41
  623. package/lib/filter/ogc-filterable-list/index.d.ts +2 -2
  624. package/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.d.ts +14 -14
  625. package/lib/filter/ogc-filterable-list/ogc-filterable-list.component.d.ts +10 -10
  626. package/lib/filter/shared/filterable-datasource.pipe.d.ts +10 -10
  627. package/lib/filter/shared/index.d.ts +11 -11
  628. package/lib/filter/shared/ogc-filter-time.service.d.ts +19 -19
  629. package/lib/filter/shared/ogc-filter.d.ts +29 -29
  630. package/lib/filter/shared/ogc-filter.enum.d.ts +27 -27
  631. package/lib/filter/shared/ogc-filter.interface.d.ts +200 -200
  632. package/lib/filter/shared/ogc-filter.service.d.ts +11 -11
  633. package/lib/filter/shared/spatial-filter.enum.d.ts +19 -19
  634. package/lib/filter/shared/spatial-filter.interface.d.ts +10 -10
  635. package/lib/filter/shared/spatial-filter.service.d.ts +37 -37
  636. package/lib/filter/shared/time-filter.enum.d.ts +10 -10
  637. package/lib/filter/shared/time-filter.interface.d.ts +15 -29
  638. package/lib/filter/shared/time-filter.service.d.ts +11 -11
  639. package/lib/filter/spatial-filter/spatial-filter-item/index.d.ts +1 -1
  640. package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +166 -166
  641. package/lib/filter/spatial-filter/spatial-filter-list/index.d.ts +1 -1
  642. package/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.d.ts +57 -57
  643. package/lib/filter/spatial-filter/spatial-filter-type/index.d.ts +1 -1
  644. package/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.d.ts +45 -45
  645. package/lib/filter/time-filter-button/index.d.ts +1 -1
  646. package/lib/filter/time-filter-button/time-filter-button.component.d.ts +20 -20
  647. package/lib/filter/time-filter-form/index.d.ts +1 -1
  648. package/lib/filter/time-filter-form/time-filter-form.component.d.ts +77 -77
  649. package/lib/filter/time-filter-form/time-filter-form.theming.scss +5 -0
  650. package/lib/filter/time-filter-item/index.d.ts +1 -1
  651. package/lib/filter/time-filter-item/time-filter-item.component.d.ts +28 -28
  652. package/lib/filter/time-filter-list/index.d.ts +2 -2
  653. package/lib/filter/time-filter-list/time-filter-list-binding.directive.d.ts +14 -14
  654. package/lib/filter/time-filter-list/time-filter-list.component.d.ts +12 -12
  655. package/lib/geo.module.d.ts +29 -29
  656. package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +202 -202
  657. package/lib/geometry/geometry-form-field/geometry-form-field.component.d.ts +88 -88
  658. package/lib/geometry/geometry-form-field/geometry-form-field.module.d.ts +19 -19
  659. package/lib/geometry/geometry.module.d.ts +8 -8
  660. package/lib/geometry/index.d.ts +3 -3
  661. package/lib/geometry/shared/controls/draw.d.ts +150 -150
  662. package/lib/geometry/shared/controls/index.d.ts +3 -3
  663. package/lib/geometry/shared/controls/modify.d.ts +228 -228
  664. package/lib/geometry/shared/controls/slice.d.ts +99 -99
  665. package/lib/geometry/shared/geometry.errors.d.ts +11 -11
  666. package/lib/geometry/shared/geometry.interfaces.d.ts +13 -13
  667. package/lib/geometry/shared/geometry.utils.d.ts +45 -45
  668. package/lib/geometry/shared/index.d.ts +4 -4
  669. package/lib/import-export/export-button/export-button.component.d.ts +16 -16
  670. package/lib/import-export/export-button/index.d.ts +1 -1
  671. package/lib/import-export/import-export/import-export.component.d.ts +109 -109
  672. package/lib/import-export/import-export/index.d.ts +1 -1
  673. package/lib/import-export/import-export.module.d.ts +25 -25
  674. package/lib/import-export/index.d.ts +3 -3
  675. package/lib/import-export/shared/drop-geo-file.directive.d.ts +39 -39
  676. package/lib/import-export/shared/export.errors.d.ts +8 -8
  677. package/lib/import-export/shared/export.interface.d.ts +11 -11
  678. package/lib/import-export/shared/export.service.d.ts +30 -30
  679. package/lib/import-export/shared/export.type.d.ts +16 -16
  680. package/lib/import-export/shared/export.utils.d.ts +19 -19
  681. package/lib/import-export/shared/import.errors.d.ts +20 -20
  682. package/lib/import-export/shared/import.interface.d.ts +10 -10
  683. package/lib/import-export/shared/import.service.d.ts +31 -31
  684. package/lib/import-export/shared/import.utils.d.ts +20 -20
  685. package/lib/import-export/shared/index.d.ts +10 -10
  686. package/lib/layer/index.d.ts +9 -9
  687. package/lib/layer/layer-item/index.d.ts +1 -1
  688. package/lib/layer/layer-item/layer-item.component.d.ts +62 -62
  689. package/lib/layer/layer-legend/index.d.ts +1 -1
  690. package/lib/layer/layer-legend/layer-legend.component.d.ts +90 -90
  691. package/lib/layer/layer-legend/layer-legend.theming.scss +10 -0
  692. package/lib/layer/layer-legend-item/index.d.ts +1 -1
  693. package/lib/layer/layer-legend-item/layer-legend-item.component.d.ts +22 -22
  694. package/lib/layer/layer-legend-list/index.d.ts +2 -2
  695. package/lib/layer/layer-legend-list/layer-legend-list-binding.directive.d.ts +16 -16
  696. package/lib/layer/layer-legend-list/layer-legend-list.component.d.ts +31 -31
  697. package/lib/layer/layer-list/index.d.ts +3 -3
  698. package/lib/layer/layer-list/layer-list-binding.directive.d.ts +19 -19
  699. package/lib/layer/layer-list/layer-list.component.d.ts +127 -127
  700. package/lib/layer/layer-list/layer-list.enum.d.ts +15 -15
  701. package/lib/layer/layer-list-tool/index.d.ts +4 -4
  702. package/lib/layer/layer-list-tool/layer-list-tool.component.d.ts +32 -32
  703. package/lib/layer/layer-list-tool/layer-list-tool.enum.d.ts +5 -5
  704. package/lib/layer/layer-list-tool/layer-list-tool.interface.d.ts +8 -8
  705. package/lib/layer/layer-list-tool/layer-list-tool.service.d.ts +14 -14
  706. package/lib/layer/layer-list-tool/layer-list-tool.theming.scss +22 -0
  707. package/lib/layer/layer.module.d.ts +34 -35
  708. package/lib/layer/layer.theming.scss +24 -0
  709. package/lib/layer/shared/clusterParam.d.ts +13 -13
  710. package/lib/layer/shared/index.d.ts +4 -4
  711. package/lib/layer/shared/layer.enums.d.ts +1 -1
  712. package/lib/layer/shared/layer.service.d.ts +33 -33
  713. package/lib/layer/shared/layers/any-layer.d.ts +6 -6
  714. package/lib/layer/shared/layers/any-layer.interface.d.ts +6 -6
  715. package/lib/layer/shared/layers/image-layer.d.ts +21 -21
  716. package/lib/layer/shared/layers/image-layer.interface.d.ts +19 -19
  717. package/lib/layer/shared/layers/index.d.ts +12 -12
  718. package/lib/layer/shared/layers/layer.d.ts +66 -66
  719. package/lib/layer/shared/layers/layer.interface.d.ts +90 -109
  720. package/lib/layer/shared/layers/legend.interface.d.ts +22 -0
  721. package/lib/layer/shared/layers/tile-layer.d.ts +31 -31
  722. package/lib/layer/shared/layers/tile-layer.interface.d.ts +20 -20
  723. package/lib/layer/shared/layers/vector-layer.d.ts +94 -94
  724. package/lib/layer/shared/layers/vector-layer.interface.d.ts +42 -42
  725. package/lib/layer/shared/layers/vectortile-layer.d.ts +28 -28
  726. package/lib/layer/shared/layers/vectortile-layer.interface.d.ts +16 -16
  727. package/lib/layer/track-feature-button/index.d.ts +1 -1
  728. package/lib/layer/track-feature-button/track-feature-button.component.d.ts +15 -15
  729. package/lib/layer/utils/image-watcher.d.ts +16 -16
  730. package/lib/layer/utils/index.d.ts +5 -5
  731. package/lib/layer/utils/layer.utils.d.ts +2 -2
  732. package/lib/layer/utils/outputLegend.d.ts +7 -7
  733. package/lib/layer/utils/tile-watcher.d.ts +14 -14
  734. package/lib/layer/utils/vector-watcher.d.ts +13 -13
  735. package/lib/map/baselayers-switcher/baselayers-switcher.animation.d.ts +2 -2
  736. package/lib/map/baselayers-switcher/baselayers-switcher.component.d.ts +22 -21
  737. package/lib/map/baselayers-switcher/index.d.ts +2 -2
  738. package/lib/map/baselayers-switcher/mini-basemap.component.d.ts +29 -29
  739. package/lib/map/geolocate-button/geolocate-button.component.d.ts +22 -22
  740. package/lib/map/geolocate-button/index.d.ts +1 -1
  741. package/lib/map/home-extent-button/home-extent-button.component.d.ts +20 -20
  742. package/lib/map/home-extent-button/index.d.ts +1 -1
  743. package/lib/map/index.d.ts +13 -13
  744. package/lib/map/info-section/index.d.ts +1 -1
  745. package/lib/map/info-section/info-section.component.d.ts +7 -7
  746. package/lib/map/map-browser/index.d.ts +1 -1
  747. package/lib/map/map-browser/map-browser.component.d.ts +25 -25
  748. package/lib/map/map-browser/map-browser.theming.scss +46 -0
  749. package/lib/map/map-center/index.d.ts +1 -1
  750. package/lib/map/map-center/map-center.component.d.ts +31 -31
  751. package/lib/map/map.module.d.ts +28 -28
  752. package/lib/map/map.theming.scss +9 -0
  753. package/lib/map/menu-button/index.d.ts +1 -1
  754. package/lib/map/menu-button/menu-button.component.d.ts +17 -17
  755. package/lib/map/menu-button/menu-button.theming.scss +24 -0
  756. package/lib/map/offline-button/index.d.ts +1 -1
  757. package/lib/map/offline-button/offline-button.component.d.ts +15 -15
  758. package/lib/map/rotation-button/index.d.ts +1 -1
  759. package/lib/map/rotation-button/rotation-button.component.d.ts +17 -17
  760. package/lib/map/shared/controllers/controller.d.ts +29 -29
  761. package/lib/map/shared/controllers/geolocation.d.ts +95 -127
  762. package/lib/map/shared/controllers/geolocation.interface.d.ts +30 -0
  763. package/lib/map/shared/controllers/index.d.ts +4 -3
  764. package/lib/map/shared/controllers/view.d.ts +200 -200
  765. package/lib/map/shared/hover-feature.directive.d.ts +124 -124
  766. package/lib/map/shared/index.d.ts +14 -13
  767. package/lib/map/shared/linkedLayers.utils.d.ts +17 -17
  768. package/lib/map/shared/map-pointer-position.directive.d.ts +71 -71
  769. package/lib/map/shared/map.abstract.d.ts +59 -0
  770. package/lib/map/shared/map.d.ts +140 -135
  771. package/lib/map/shared/map.enums.d.ts +4 -4
  772. package/lib/map/shared/map.interface.d.ts +57 -57
  773. package/lib/map/shared/map.service.d.ts +19 -19
  774. package/lib/map/shared/map.utils.d.ts +90 -90
  775. package/lib/map/shared/mapOffline.directive.d.ts +18 -18
  776. package/lib/map/shared/projection.interfaces.d.ts +29 -29
  777. package/lib/map/shared/projection.service.d.ts +19 -19
  778. package/lib/map/shared/projection.utils.d.ts +19 -19
  779. package/lib/map/swipe-control/index.d.ts +1 -1
  780. package/lib/map/swipe-control/swipe-control.component.d.ts +97 -97
  781. package/lib/map/utils/layer-watcher.d.ts +20 -20
  782. package/lib/map/wake-lock-button/index.d.ts +1 -1
  783. package/lib/map/wake-lock-button/wake-lock-button.component.d.ts +27 -27
  784. package/lib/map/zoom-button/index.d.ts +1 -1
  785. package/lib/map/zoom-button/zoom-button.component.d.ts +12 -12
  786. package/lib/map/zoom-button/zoom-button.theming.scss +32 -0
  787. package/lib/measure/index.d.ts +3 -3
  788. package/lib/measure/measure.module.d.ts +7 -7
  789. package/lib/measure/measure.theming.scss +5 -0
  790. package/lib/measure/measurer/measure-format.pipe.d.ts +15 -15
  791. package/lib/measure/measurer/measurer-dialog.component.d.ts +14 -14
  792. package/lib/measure/measurer/measurer-item.component.d.ts +66 -66
  793. package/lib/measure/measurer/measurer.component.d.ts +405 -405
  794. package/lib/measure/measurer/measurer.module.d.ts +26 -25
  795. package/lib/measure/measurer/measurer.theming.scss +26 -0
  796. package/lib/measure/shared/index.d.ts +3 -3
  797. package/lib/measure/shared/measure.enum.d.ts +33 -33
  798. package/lib/measure/shared/measure.interfaces.d.ts +21 -21
  799. package/lib/measure/shared/measure.utils.d.ts +180 -180
  800. package/lib/metadata/index.d.ts +2 -2
  801. package/lib/metadata/metadata-button/index.d.ts +1 -1
  802. package/lib/metadata/metadata-button/metadata-button.component.d.ts +26 -26
  803. package/lib/metadata/metadata.module.d.ts +15 -15
  804. package/lib/metadata/shared/index.d.ts +2 -2
  805. package/lib/metadata/shared/metadata.interface.d.ts +13 -13
  806. package/lib/metadata/shared/metadata.service.d.ts +8 -8
  807. package/lib/offline/geoDB/configFileToGeoDB.service.d.ts +14 -14
  808. package/lib/offline/geoDB/geoDB.enums.d.ts +4 -4
  809. package/lib/offline/geoDB/geoDB.interface.d.ts +19 -19
  810. package/lib/offline/geoDB/geoDB.service.d.ts +37 -37
  811. package/lib/offline/geoDB/index.d.ts +4 -4
  812. package/lib/offline/index.d.ts +3 -3
  813. package/lib/offline/layerDB/index.d.ts +2 -2
  814. package/lib/offline/layerDB/layerDB.interface.d.ts +7 -7
  815. package/lib/offline/layerDB/layerDB.service.d.ts +36 -36
  816. package/lib/offline/shared/geo-network.service.d.ts +28 -28
  817. package/lib/offline/shared/index.d.ts +1 -1
  818. package/lib/overlay/index.d.ts +1 -1
  819. package/lib/overlay/overlay.module.d.ts +9 -9
  820. package/lib/overlay/shared/index.d.ts +5 -5
  821. package/lib/overlay/shared/overlay.d.ts +81 -81
  822. package/lib/overlay/shared/overlay.directive.d.ts +18 -18
  823. package/lib/overlay/shared/overlay.enum.d.ts +6 -6
  824. package/lib/overlay/shared/overlay.service.d.ts +14 -14
  825. package/lib/overlay/shared/overlay.utils.d.ts +6 -6
  826. package/lib/print/index.d.ts +3 -3
  827. package/lib/print/print/print.component.d.ts +35 -35
  828. package/lib/print/print-form/index.d.ts +1 -1
  829. package/lib/print/print-form/print-form.component.d.ts +99 -99
  830. package/lib/print/print.module.d.ts +19 -19
  831. package/lib/print/shared/geopdf.d.ts +1 -1
  832. package/lib/print/shared/index.d.ts +4 -4
  833. package/lib/print/shared/print.interface.d.ts +22 -22
  834. package/lib/print/shared/print.service.d.ts +171 -174
  835. package/lib/print/shared/print.type.d.ts +45 -45
  836. package/lib/query/index.d.ts +1 -1
  837. package/lib/query/query.module.d.ts +11 -11
  838. package/lib/query/shared/index.d.ts +6 -6
  839. package/lib/query/shared/query-search-source.d.ts +17 -17
  840. package/lib/query/shared/query-search-source.providers.d.ts +17 -17
  841. package/lib/query/shared/query.directive.d.ts +105 -105
  842. package/lib/query/shared/query.enums.d.ts +26 -26
  843. package/lib/query/shared/query.interfaces.d.ts +35 -35
  844. package/lib/query/shared/query.service.d.ts +56 -56
  845. package/lib/query/shared/query.utils.d.ts +27 -27
  846. package/lib/search/index.d.ts +11 -11
  847. package/lib/search/search-bar/search-bar.component.d.ts +231 -230
  848. package/lib/search/search-bar/search-bar.module.d.ts +24 -23
  849. package/lib/search/search-bar/search-bar.theming.scss +36 -0
  850. package/lib/search/search-bar/search-url-param.directive.d.ts +13 -13
  851. package/lib/search/search-results/save-feature-dialog.component.d.ts +32 -32
  852. package/lib/search/search-results/search-results-add-button.component.d.ts +84 -84
  853. package/lib/search/search-results/search-results-item.component.d.ts +52 -52
  854. package/lib/search/search-results/search-results.component.d.ts +165 -165
  855. package/lib/search/search-results/search-results.module.d.ts +29 -29
  856. package/lib/search/search-selector/search-selector.component.d.ts +58 -58
  857. package/lib/search/search-selector/search-selector.module.d.ts +19 -19
  858. package/lib/search/search-settings/search-settings.component.d.ts +102 -102
  859. package/lib/search/search-settings/search-settings.module.d.ts +20 -20
  860. package/lib/search/search.module.d.ts +14 -14
  861. package/lib/search/search.theming.scss +5 -0
  862. package/lib/search/shared/index.d.ts +8 -8
  863. package/lib/search/shared/search-pointer-summary.directive.d.ts +125 -124
  864. package/lib/search/shared/search-source-service.providers.d.ts +15 -15
  865. package/lib/search/shared/search-source.service.d.ts +39 -39
  866. package/lib/search/shared/search.enums.d.ts +1 -1
  867. package/lib/search/shared/search.interfaces.d.ts +54 -29
  868. package/lib/search/shared/search.service.d.ts +53 -53
  869. package/lib/search/shared/search.utils.d.ts +39 -39
  870. package/lib/search/shared/sources/cadastre.d.ts +34 -33
  871. package/lib/search/shared/sources/cadastre.providers.d.ts +18 -18
  872. package/lib/search/shared/sources/coordinates.d.ts +40 -40
  873. package/lib/search/shared/sources/coordinates.interfaces.d.ts +12 -12
  874. package/lib/search/shared/sources/coordinates.providers.d.ts +31 -31
  875. package/lib/search/shared/sources/icherche.d.ts +98 -96
  876. package/lib/search/shared/sources/icherche.interfaces.d.ts +30 -30
  877. package/lib/search/shared/sources/icherche.providers.d.ts +46 -46
  878. package/lib/search/shared/sources/ilayer.d.ts +56 -55
  879. package/lib/search/shared/sources/ilayer.interfaces.d.ts +47 -47
  880. package/lib/search/shared/sources/ilayer.providers.d.ts +31 -31
  881. package/lib/search/shared/sources/index.d.ts +22 -22
  882. package/lib/search/shared/sources/nominatim.d.ts +46 -45
  883. package/lib/search/shared/sources/nominatim.interfaces.d.ts +10 -10
  884. package/lib/search/shared/sources/nominatim.providers.d.ts +18 -18
  885. package/lib/search/shared/sources/source.d.ts +86 -114
  886. package/lib/search/shared/sources/source.interfaces.d.ts +54 -47
  887. package/lib/search/shared/sources/storedqueries.d.ts +75 -73
  888. package/lib/search/shared/sources/storedqueries.interfaces.d.ts +42 -42
  889. package/lib/search/shared/sources/storedqueries.providers.d.ts +32 -32
  890. package/lib/search/shared/sources/workspace.d.ts +33 -33
  891. package/lib/search/shared/sources/workspace.interfaces.d.ts +9 -9
  892. package/lib/search/shared/sources/workspace.providers.d.ts +17 -17
  893. package/lib/style/index.d.ts +4 -4
  894. package/lib/style/shared/datasource/esri-style-generator.d.ts +21 -21
  895. package/lib/style/shared/datasource/index.d.ts +1 -1
  896. package/lib/style/shared/feature/feature-style.d.ts +18 -18
  897. package/lib/style/shared/feature/index.d.ts +1 -1
  898. package/lib/style/shared/font.enum.d.ts +15 -15
  899. package/lib/style/shared/index.d.ts +4 -4
  900. package/lib/style/shared/overlay/index.d.ts +2 -2
  901. package/lib/style/shared/overlay/overlay-marker-style.utils.d.ts +11 -11
  902. package/lib/style/shared/overlay/overlay-style.utils.d.ts +19 -19
  903. package/lib/style/shared/vector/commonVectorStyle.d.ts +14 -14
  904. package/lib/style/shared/vector/conversion.utils.d.ts +22 -22
  905. package/lib/style/shared/vector/index.d.ts +3 -3
  906. package/lib/style/shared/vector/vector-style.interface.d.ts +69 -69
  907. package/lib/style/style-list/index.d.ts +4 -4
  908. package/lib/style/style-list/style-list.interface.d.ts +6 -6
  909. package/lib/style/style-list/style-list.module.d.ts +8 -8
  910. package/lib/style/style-list/style-list.provider.d.ts +15 -15
  911. package/lib/style/style-list/style-list.service.d.ts +18 -18
  912. package/lib/style/style-modal/drawing/index.d.ts +1 -1
  913. package/lib/style/style-modal/drawing/style-modal-drawing.component.d.ts +33 -31
  914. package/lib/style/style-modal/index.d.ts +4 -4
  915. package/lib/style/style-modal/layer/index.d.ts +1 -1
  916. package/lib/style/style-modal/layer/style-modal-layer.component.d.ts +32 -30
  917. package/lib/style/style-modal/layer-button/index.d.ts +1 -1
  918. package/lib/style/style-modal/layer-button/style-modal-layer-button.component.d.ts +14 -14
  919. package/lib/style/style-modal/shared/index.d.ts +1 -1
  920. package/lib/style/style-modal/shared/style-modal.interface.d.ts +17 -17
  921. package/lib/style/style-service/draw-style.service.d.ts +35 -35
  922. package/lib/style/style-service/index.d.ts +2 -2
  923. package/lib/style/style-service/style.service.d.ts +57 -57
  924. package/lib/style/style.module.d.ts +23 -22
  925. package/lib/toast/index.d.ts +1 -1
  926. package/lib/toast/toast.component.d.ts +33 -33
  927. package/lib/toast/toast.module.d.ts +14 -14
  928. package/lib/utils/googleLinks.d.ts +5 -5
  929. package/lib/utils/id-generator.d.ts +54 -54
  930. package/lib/utils/index.d.ts +4 -3
  931. package/lib/utils/osmLinks.d.ts +4 -4
  932. package/lib/utils/propertyTypeDetector/index.d.ts +2 -0
  933. package/lib/utils/propertyTypeDetector/propertyTypeDetector.interface.d.ts +5 -0
  934. package/lib/utils/propertyTypeDetector/propertyTypeDetector.service.d.ts +15 -0
  935. package/lib/wkt/index.d.ts +1 -1
  936. package/lib/wkt/shared/index.d.ts +1 -1
  937. package/lib/wkt/shared/wkt.service.d.ts +19 -19
  938. package/lib/wkt/wkt.module.d.ts +8 -8
  939. package/lib/workspace/confirmation-popup/confirmation-popup.component.d.ts +23 -23
  940. package/lib/workspace/confirmation-popup/confirmation-popup.module.d.ts +14 -14
  941. package/lib/workspace/confirmation-popup/confirmation-popup.theming.scss +14 -0
  942. package/lib/workspace/confirmation-popup/index.d.ts +2 -2
  943. package/lib/workspace/index.d.ts +7 -7
  944. package/lib/workspace/shared/edition-workspace.d.ts +84 -82
  945. package/lib/workspace/shared/edition-workspace.service.d.ts +50 -51
  946. package/lib/workspace/shared/feature-workspace.d.ts +18 -18
  947. package/lib/workspace/shared/feature-workspace.service.d.ts +22 -19
  948. package/lib/workspace/shared/index.d.ts +7 -7
  949. package/lib/workspace/shared/wfs-workspace.d.ts +18 -18
  950. package/lib/workspace/shared/wfs-workspace.service.d.ts +22 -19
  951. package/lib/workspace/shared/wms-workspace.service.d.ts +24 -22
  952. package/lib/workspace/shared/workspace.utils.d.ts +23 -10
  953. package/lib/workspace/widgets/index.d.ts +3 -3
  954. package/lib/workspace/widgets/ogc-filter/ogc-filter.component.d.ts +29 -29
  955. package/lib/workspace/widgets/ogc-filter/ogc-filter.module.d.ts +14 -14
  956. package/lib/workspace/widgets/widgets.d.ts +9 -9
  957. package/lib/workspace/workspace-selector/workspace-selector.directive.d.ts +32 -32
  958. package/lib/workspace/workspace-selector/workspace-selector.module.d.ts +11 -11
  959. package/lib/workspace/workspace-updator/workspace-updator.directive.d.ts +26 -26
  960. package/lib/workspace/workspace-updator/workspace-updator.module.d.ts +11 -11
  961. package/lib/workspace/workspace.module.d.ts +14 -14
  962. package/lib/workspace/workspace.theming.scss +6 -0
  963. package/locale/en.geo.json +807 -0
  964. package/locale/fr.geo.json +808 -0
  965. package/package.json +38 -38
  966. package/public_api.d.ts +53 -53
  967. package/style/style.css +350 -0
  968. package/esm2020/igo2-geo.mjs +0 -5
  969. package/esm2020/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +0 -303
  970. package/esm2020/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +0 -306
  971. package/esm2020/lib/catalog/catalog-browser/catalog-browser.component.mjs +0 -250
  972. package/esm2020/lib/catalog/catalog-browser/catalog-browser.module.mjs +0 -80
  973. package/esm2020/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +0 -209
  974. package/esm2020/lib/catalog/catalog-library/catalog-library-item.component.mjs +0 -79
  975. package/esm2020/lib/catalog/catalog-library/catalog-library.component.mjs +0 -212
  976. package/esm2020/lib/catalog/catalog-library/catalog-library.module.mjs +0 -95
  977. package/esm2020/lib/catalog/catalog.module.mjs +0 -53
  978. package/esm2020/lib/catalog/index.mjs +0 -5
  979. package/esm2020/lib/catalog/shared/catalog.abstract.mjs +0 -95
  980. package/esm2020/lib/catalog/shared/catalog.enum.mjs +0 -16
  981. package/esm2020/lib/catalog/shared/catalog.interface.mjs +0 -2
  982. package/esm2020/lib/catalog/shared/catalog.service.mjs +0 -604
  983. package/esm2020/lib/catalog/shared/index.mjs +0 -5
  984. package/esm2020/lib/datasource/datasource.module.mjs +0 -22
  985. package/esm2020/lib/datasource/index.mjs +0 -3
  986. package/esm2020/lib/datasource/shared/capabilities.service.mjs +0 -431
  987. package/esm2020/lib/datasource/shared/datasource.service.mjs +0 -232
  988. package/esm2020/lib/datasource/shared/datasources/any-datasource.interface.mjs +0 -2
  989. package/esm2020/lib/datasource/shared/datasources/any-datasource.mjs +0 -2
  990. package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.interface.mjs +0 -2
  991. package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +0 -145
  992. package/esm2020/lib/datasource/shared/datasources/carto-datasource.interface.mjs +0 -2
  993. package/esm2020/lib/datasource/shared/datasources/carto-datasource.mjs +0 -109
  994. package/esm2020/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +0 -2
  995. package/esm2020/lib/datasource/shared/datasources/cluster-datasource.mjs +0 -15
  996. package/esm2020/lib/datasource/shared/datasources/data.service.mjs +0 -3
  997. package/esm2020/lib/datasource/shared/datasources/datasource.interface.mjs +0 -2
  998. package/esm2020/lib/datasource/shared/datasources/datasource.mjs +0 -29
  999. package/esm2020/lib/datasource/shared/datasources/feature-datasource.interface.mjs +0 -2
  1000. package/esm2020/lib/datasource/shared/datasources/feature-datasource.mjs +0 -43
  1001. package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.mjs +0 -2
  1002. package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +0 -57
  1003. package/esm2020/lib/datasource/shared/datasources/index.mjs +0 -36
  1004. package/esm2020/lib/datasource/shared/datasources/mvt-datasource.interface.mjs +0 -2
  1005. package/esm2020/lib/datasource/shared/datasources/mvt-datasource.mjs +0 -28
  1006. package/esm2020/lib/datasource/shared/datasources/osm-datasource.interface.mjs +0 -2
  1007. package/esm2020/lib/datasource/shared/datasources/osm-datasource.mjs +0 -12
  1008. package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.mjs +0 -2
  1009. package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +0 -49
  1010. package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.interface.mjs +0 -2
  1011. package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.mjs +0 -15
  1012. package/esm2020/lib/datasource/shared/datasources/websocket-datasource.interface.mjs +0 -2
  1013. package/esm2020/lib/datasource/shared/datasources/websocket-datasource.mjs +0 -54
  1014. package/esm2020/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +0 -2
  1015. package/esm2020/lib/datasource/shared/datasources/wfs-datasource.mjs +0 -72
  1016. package/esm2020/lib/datasource/shared/datasources/wfs.service.mjs +0 -152
  1017. package/esm2020/lib/datasource/shared/datasources/wms-datasource.interface.mjs +0 -2
  1018. package/esm2020/lib/datasource/shared/datasources/wms-datasource.mjs +0 -206
  1019. package/esm2020/lib/datasource/shared/datasources/wms-wfs.utils.mjs +0 -207
  1020. package/esm2020/lib/datasource/shared/datasources/wmts-datasource.interface.mjs +0 -2
  1021. package/esm2020/lib/datasource/shared/datasources/wmts-datasource.mjs +0 -16
  1022. package/esm2020/lib/datasource/shared/datasources/xyz-datasource.interface.mjs +0 -2
  1023. package/esm2020/lib/datasource/shared/datasources/xyz-datasource.mjs +0 -9
  1024. package/esm2020/lib/datasource/shared/index.mjs +0 -5
  1025. package/esm2020/lib/datasource/shared/options/index.mjs +0 -5
  1026. package/esm2020/lib/datasource/shared/options/options-api.interface.mjs +0 -2
  1027. package/esm2020/lib/datasource/shared/options/options-api.providers.mjs +0 -15
  1028. package/esm2020/lib/datasource/shared/options/options-api.service.mjs +0 -81
  1029. package/esm2020/lib/datasource/shared/options/options.service.mjs +0 -3
  1030. package/esm2020/lib/datasource/utils/index.mjs +0 -2
  1031. package/esm2020/lib/datasource/utils/tilegrid.mjs +0 -20
  1032. package/esm2020/lib/directions/directions-buttons/directions-buttons.component.mjs +0 -218
  1033. package/esm2020/lib/directions/directions-buttons/index.mjs +0 -2
  1034. package/esm2020/lib/directions/directions-inputs/directions-inputs.component.mjs +0 -290
  1035. package/esm2020/lib/directions/directions-inputs/index.mjs +0 -2
  1036. package/esm2020/lib/directions/directions-results/directions-results.component.mjs +0 -196
  1037. package/esm2020/lib/directions/directions-results/index.mjs +0 -2
  1038. package/esm2020/lib/directions/directions-sources/directions-source.interface.mjs +0 -2
  1039. package/esm2020/lib/directions/directions-sources/directions-source.mjs +0 -3
  1040. package/esm2020/lib/directions/directions-sources/directions-source.provider.mjs +0 -16
  1041. package/esm2020/lib/directions/directions-sources/index.mjs +0 -5
  1042. package/esm2020/lib/directions/directions-sources/osrm-directions-source.mjs +0 -99
  1043. package/esm2020/lib/directions/directions.component.mjs +0 -311
  1044. package/esm2020/lib/directions/directions.module.mjs +0 -102
  1045. package/esm2020/lib/directions/index.mjs +0 -7
  1046. package/esm2020/lib/directions/shared/directions-source.service.mjs +0 -17
  1047. package/esm2020/lib/directions/shared/directions.enum.mjs +0 -28
  1048. package/esm2020/lib/directions/shared/directions.interface.mjs +0 -2
  1049. package/esm2020/lib/directions/shared/directions.service.mjs +0 -29
  1050. package/esm2020/lib/directions/shared/directions.utils.mjs +0 -509
  1051. package/esm2020/lib/directions/shared/index.mjs +0 -6
  1052. package/esm2020/lib/directions/shared/store.mjs +0 -24
  1053. package/esm2020/lib/download/download-button/download-button.component.mjs +0 -61
  1054. package/esm2020/lib/download/download-button/index.mjs +0 -2
  1055. package/esm2020/lib/download/download.module.mjs +0 -42
  1056. package/esm2020/lib/download/index.mjs +0 -3
  1057. package/esm2020/lib/download/shared/download.interface.mjs +0 -2
  1058. package/esm2020/lib/download/shared/download.service.mjs +0 -62
  1059. package/esm2020/lib/download/shared/index.mjs +0 -3
  1060. package/esm2020/lib/draw/draw/draw-layer-popup.component.mjs +0 -55
  1061. package/esm2020/lib/draw/draw/draw-popup.component.mjs +0 -591
  1062. package/esm2020/lib/draw/draw/draw-shorcuts.component.mjs +0 -48
  1063. package/esm2020/lib/draw/draw/draw.component.mjs +0 -1300
  1064. package/esm2020/lib/draw/draw/draw.module.mjs +0 -113
  1065. package/esm2020/lib/draw/drawingTool.module.mjs +0 -20
  1066. package/esm2020/lib/draw/index.mjs +0 -3
  1067. package/esm2020/lib/draw/shared/draw-icon.service.mjs +0 -27
  1068. package/esm2020/lib/draw/shared/draw.enum.mjs +0 -21
  1069. package/esm2020/lib/draw/shared/draw.interface.mjs +0 -2
  1070. package/esm2020/lib/draw/shared/draw.utils.mjs +0 -122
  1071. package/esm2020/lib/draw/shared/index.mjs +0 -5
  1072. package/esm2020/lib/feature/feature-details/feature-details.component.mjs +0 -404
  1073. package/esm2020/lib/feature/feature-details/feature-details.directive.mjs +0 -54
  1074. package/esm2020/lib/feature/feature-details/feature-details.module.mjs +0 -48
  1075. package/esm2020/lib/feature/feature-form/feature-form.component.mjs +0 -112
  1076. package/esm2020/lib/feature/feature-form/feature-form.module.mjs +0 -34
  1077. package/esm2020/lib/feature/feature.module.mjs +0 -28
  1078. package/esm2020/lib/feature/index.mjs +0 -4
  1079. package/esm2020/lib/feature/shared/feature.enums.mjs +0 -9
  1080. package/esm2020/lib/feature/shared/feature.interfaces.mjs +0 -2
  1081. package/esm2020/lib/feature/shared/feature.utils.mjs +0 -349
  1082. package/esm2020/lib/feature/shared/index.mjs +0 -7
  1083. package/esm2020/lib/feature/shared/store.mjs +0 -133
  1084. package/esm2020/lib/feature/shared/strategies/in-map-extent.mjs +0 -113
  1085. package/esm2020/lib/feature/shared/strategies/in-map-resolution.mjs +0 -94
  1086. package/esm2020/lib/feature/shared/strategies/index.mjs +0 -7
  1087. package/esm2020/lib/feature/shared/strategies/loading-layer.mjs +0 -104
  1088. package/esm2020/lib/feature/shared/strategies/loading.mjs +0 -133
  1089. package/esm2020/lib/feature/shared/strategies/search.mjs +0 -150
  1090. package/esm2020/lib/feature/shared/strategies/selection.mjs +0 -370
  1091. package/esm2020/lib/feature/shared/strategies.utils.mjs +0 -37
  1092. package/esm2020/lib/filter/filter.module.mjs +0 -289
  1093. package/esm2020/lib/filter/index.mjs +0 -16
  1094. package/esm2020/lib/filter/ogc-filter-button/index.mjs +0 -2
  1095. package/esm2020/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +0 -140
  1096. package/esm2020/lib/filter/ogc-filter-form/index.mjs +0 -2
  1097. package/esm2020/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +0 -645
  1098. package/esm2020/lib/filter/ogc-filter-selection/index.mjs +0 -2
  1099. package/esm2020/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +0 -1302
  1100. package/esm2020/lib/filter/ogc-filter-time/index.mjs +0 -3
  1101. package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +0 -177
  1102. package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +0 -898
  1103. package/esm2020/lib/filter/ogc-filterable-form/index.mjs +0 -2
  1104. package/esm2020/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +0 -59
  1105. package/esm2020/lib/filter/ogc-filterable-item/index.mjs +0 -2
  1106. package/esm2020/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +0 -307
  1107. package/esm2020/lib/filter/ogc-filterable-list/index.mjs +0 -3
  1108. package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +0 -31
  1109. package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +0 -44
  1110. package/esm2020/lib/filter/shared/filterable-datasource.pipe.mjs +0 -55
  1111. package/esm2020/lib/filter/shared/index.mjs +0 -12
  1112. package/esm2020/lib/filter/shared/ogc-filter-time.service.mjs +0 -72
  1113. package/esm2020/lib/filter/shared/ogc-filter.enum.mjs +0 -30
  1114. package/esm2020/lib/filter/shared/ogc-filter.interface.mjs +0 -2
  1115. package/esm2020/lib/filter/shared/ogc-filter.mjs +0 -692
  1116. package/esm2020/lib/filter/shared/ogc-filter.service.mjs +0 -46
  1117. package/esm2020/lib/filter/shared/spatial-filter.enum.mjs +0 -23
  1118. package/esm2020/lib/filter/shared/spatial-filter.interface.mjs +0 -2
  1119. package/esm2020/lib/filter/shared/spatial-filter.service.mjs +0 -269
  1120. package/esm2020/lib/filter/shared/time-filter.enum.mjs +0 -13
  1121. package/esm2020/lib/filter/shared/time-filter.interface.mjs +0 -2
  1122. package/esm2020/lib/filter/shared/time-filter.service.mjs +0 -107
  1123. package/esm2020/lib/filter/spatial-filter/spatial-filter-item/index.mjs +0 -2
  1124. package/esm2020/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +0 -1089
  1125. package/esm2020/lib/filter/spatial-filter/spatial-filter-list/index.mjs +0 -2
  1126. package/esm2020/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +0 -207
  1127. package/esm2020/lib/filter/spatial-filter/spatial-filter-type/index.mjs +0 -2
  1128. package/esm2020/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +0 -144
  1129. package/esm2020/lib/filter/time-filter-button/index.mjs +0 -2
  1130. package/esm2020/lib/filter/time-filter-button/time-filter-button.component.mjs +0 -78
  1131. package/esm2020/lib/filter/time-filter-form/index.mjs +0 -2
  1132. package/esm2020/lib/filter/time-filter-form/time-filter-form.component.mjs +0 -734
  1133. package/esm2020/lib/filter/time-filter-item/index.mjs +0 -2
  1134. package/esm2020/lib/filter/time-filter-item/time-filter-item.component.mjs +0 -119
  1135. package/esm2020/lib/filter/time-filter-list/index.mjs +0 -3
  1136. package/esm2020/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +0 -31
  1137. package/esm2020/lib/filter/time-filter-list/time-filter-list.component.mjs +0 -39
  1138. package/esm2020/lib/geo.module.mjs +0 -106
  1139. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +0 -522
  1140. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +0 -189
  1141. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +0 -64
  1142. package/esm2020/lib/geometry/geometry.module.mjs +0 -27
  1143. package/esm2020/lib/geometry/index.mjs +0 -4
  1144. package/esm2020/lib/geometry/shared/controls/draw.mjs +0 -314
  1145. package/esm2020/lib/geometry/shared/controls/index.mjs +0 -4
  1146. package/esm2020/lib/geometry/shared/controls/modify.mjs +0 -521
  1147. package/esm2020/lib/geometry/shared/controls/slice.mjs +0 -177
  1148. package/esm2020/lib/geometry/shared/geometry.errors.mjs +0 -26
  1149. package/esm2020/lib/geometry/shared/geometry.interfaces.mjs +0 -2
  1150. package/esm2020/lib/geometry/shared/geometry.utils.mjs +0 -122
  1151. package/esm2020/lib/geometry/shared/index.mjs +0 -5
  1152. package/esm2020/lib/import-export/export-button/export-button.component.mjs +0 -64
  1153. package/esm2020/lib/import-export/export-button/index.mjs +0 -2
  1154. package/esm2020/lib/import-export/import-export/import-export.component.mjs +0 -1228
  1155. package/esm2020/lib/import-export/import-export/index.mjs +0 -2
  1156. package/esm2020/lib/import-export/import-export.module.mjs +0 -92
  1157. package/esm2020/lib/import-export/index.mjs +0 -4
  1158. package/esm2020/lib/import-export/shared/drop-geo-file.directive.mjs +0 -152
  1159. package/esm2020/lib/import-export/shared/export.errors.mjs +0 -15
  1160. package/esm2020/lib/import-export/shared/export.interface.mjs +0 -2
  1161. package/esm2020/lib/import-export/shared/export.service.mjs +0 -195
  1162. package/esm2020/lib/import-export/shared/export.type.mjs +0 -4
  1163. package/esm2020/lib/import-export/shared/export.utils.mjs +0 -46
  1164. package/esm2020/lib/import-export/shared/import.errors.mjs +0 -39
  1165. package/esm2020/lib/import-export/shared/import.interface.mjs +0 -2
  1166. package/esm2020/lib/import-export/shared/import.service.mjs +0 -215
  1167. package/esm2020/lib/import-export/shared/import.utils.mjs +0 -202
  1168. package/esm2020/lib/import-export/shared/index.mjs +0 -11
  1169. package/esm2020/lib/layer/index.mjs +0 -10
  1170. package/esm2020/lib/layer/layer-item/index.mjs +0 -2
  1171. package/esm2020/lib/layer/layer-item/layer-item.component.mjs +0 -300
  1172. package/esm2020/lib/layer/layer-legend/index.mjs +0 -2
  1173. package/esm2020/lib/layer/layer-legend/layer-legend.component.mjs +0 -388
  1174. package/esm2020/lib/layer/layer-legend-item/index.mjs +0 -2
  1175. package/esm2020/lib/layer/layer-legend-item/layer-legend-item.component.mjs +0 -84
  1176. package/esm2020/lib/layer/layer-legend-list/index.mjs +0 -3
  1177. package/esm2020/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +0 -48
  1178. package/esm2020/lib/layer/layer-legend-list/layer-legend-list.component.mjs +0 -195
  1179. package/esm2020/lib/layer/layer-list/index.mjs +0 -4
  1180. package/esm2020/lib/layer/layer-list/layer-list-binding.directive.mjs +0 -59
  1181. package/esm2020/lib/layer/layer-list/layer-list.component.mjs +0 -1009
  1182. package/esm2020/lib/layer/layer-list/layer-list.enum.mjs +0 -19
  1183. package/esm2020/lib/layer/layer-list-tool/index.mjs +0 -5
  1184. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.component.mjs +0 -165
  1185. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.enum.mjs +0 -7
  1186. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.interface.mjs +0 -2
  1187. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.service.mjs +0 -22
  1188. package/esm2020/lib/layer/layer.module.mjs +0 -180
  1189. package/esm2020/lib/layer/shared/clusterParam.mjs +0 -2
  1190. package/esm2020/lib/layer/shared/index.mjs +0 -5
  1191. package/esm2020/lib/layer/shared/layer.enums.mjs +0 -2
  1192. package/esm2020/lib/layer/shared/layer.service.mjs +0 -237
  1193. package/esm2020/lib/layer/shared/layers/any-layer.interface.mjs +0 -2
  1194. package/esm2020/lib/layer/shared/layers/any-layer.mjs +0 -2
  1195. package/esm2020/lib/layer/shared/layers/image-layer.interface.mjs +0 -2
  1196. package/esm2020/lib/layer/shared/layers/image-layer.mjs +0 -67
  1197. package/esm2020/lib/layer/shared/layers/index.mjs +0 -13
  1198. package/esm2020/lib/layer/shared/layers/layer.interface.mjs +0 -17
  1199. package/esm2020/lib/layer/shared/layers/layer.mjs +0 -166
  1200. package/esm2020/lib/layer/shared/layers/tile-layer.interface.mjs +0 -2
  1201. package/esm2020/lib/layer/shared/layers/tile-layer.mjs +0 -47
  1202. package/esm2020/lib/layer/shared/layers/vector-layer.interface.mjs +0 -2
  1203. package/esm2020/lib/layer/shared/layers/vector-layer.mjs +0 -527
  1204. package/esm2020/lib/layer/shared/layers/vectortile-layer.interface.mjs +0 -2
  1205. package/esm2020/lib/layer/shared/layers/vectortile-layer.mjs +0 -104
  1206. package/esm2020/lib/layer/track-feature-button/index.mjs +0 -2
  1207. package/esm2020/lib/layer/track-feature-button/track-feature-button.component.mjs +0 -59
  1208. package/esm2020/lib/layer/utils/image-watcher.mjs +0 -59
  1209. package/esm2020/lib/layer/utils/index.mjs +0 -6
  1210. package/esm2020/lib/layer/utils/layer.utils.mjs +0 -10
  1211. package/esm2020/lib/layer/utils/outputLegend.mjs +0 -28
  1212. package/esm2020/lib/layer/utils/tile-watcher.mjs +0 -50
  1213. package/esm2020/lib/layer/utils/vector-watcher.mjs +0 -48
  1214. package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.animation.mjs +0 -20
  1215. package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +0 -97
  1216. package/esm2020/lib/map/baselayers-switcher/index.mjs +0 -3
  1217. package/esm2020/lib/map/baselayers-switcher/mini-basemap.component.mjs +0 -142
  1218. package/esm2020/lib/map/geolocate-button/geolocate-button.component.mjs +0 -79
  1219. package/esm2020/lib/map/geolocate-button/index.mjs +0 -2
  1220. package/esm2020/lib/map/home-extent-button/home-extent-button.component.mjs +0 -63
  1221. package/esm2020/lib/map/home-extent-button/index.mjs +0 -2
  1222. package/esm2020/lib/map/index.mjs +0 -14
  1223. package/esm2020/lib/map/info-section/index.mjs +0 -2
  1224. package/esm2020/lib/map/info-section/info-section.component.mjs +0 -30
  1225. package/esm2020/lib/map/map-browser/index.mjs +0 -2
  1226. package/esm2020/lib/map/map-browser/map-browser.component.mjs +0 -66
  1227. package/esm2020/lib/map/map-center/index.mjs +0 -2
  1228. package/esm2020/lib/map/map-center/map-center.component.mjs +0 -50
  1229. package/esm2020/lib/map/map.module.mjs +0 -127
  1230. package/esm2020/lib/map/menu-button/index.mjs +0 -2
  1231. package/esm2020/lib/map/menu-button/menu-button.component.mjs +0 -62
  1232. package/esm2020/lib/map/offline-button/index.mjs +0 -2
  1233. package/esm2020/lib/map/offline-button/offline-button.component.mjs +0 -53
  1234. package/esm2020/lib/map/rotation-button/index.mjs +0 -2
  1235. package/esm2020/lib/map/rotation-button/rotation-button.component.mjs +0 -70
  1236. package/esm2020/lib/map/shared/controllers/controller.mjs +0 -42
  1237. package/esm2020/lib/map/shared/controllers/geolocation.mjs +0 -423
  1238. package/esm2020/lib/map/shared/controllers/index.mjs +0 -4
  1239. package/esm2020/lib/map/shared/controllers/view.mjs +0 -351
  1240. package/esm2020/lib/map/shared/hover-feature.directive.mjs +0 -454
  1241. package/esm2020/lib/map/shared/index.mjs +0 -14
  1242. package/esm2020/lib/map/shared/linkedLayers.utils.mjs +0 -240
  1243. package/esm2020/lib/map/shared/map-pointer-position.directive.mjs +0 -107
  1244. package/esm2020/lib/map/shared/map.enums.mjs +0 -6
  1245. package/esm2020/lib/map/shared/map.interface.mjs +0 -2
  1246. package/esm2020/lib/map/shared/map.mjs +0 -409
  1247. package/esm2020/lib/map/shared/map.service.mjs +0 -29
  1248. package/esm2020/lib/map/shared/map.utils.mjs +0 -463
  1249. package/esm2020/lib/map/shared/mapOffline.directive.mjs +0 -98
  1250. package/esm2020/lib/map/shared/projection.interfaces.mjs +0 -2
  1251. package/esm2020/lib/map/shared/projection.service.mjs +0 -65
  1252. package/esm2020/lib/map/shared/projection.utils.mjs +0 -64
  1253. package/esm2020/lib/map/swipe-control/index.mjs +0 -2
  1254. package/esm2020/lib/map/swipe-control/swipe-control.component.mjs +0 -193
  1255. package/esm2020/lib/map/utils/layer-watcher.mjs +0 -79
  1256. package/esm2020/lib/map/wake-lock-button/index.mjs +0 -2
  1257. package/esm2020/lib/map/wake-lock-button/wake-lock-button.component.mjs +0 -103
  1258. package/esm2020/lib/map/zoom-button/index.mjs +0 -2
  1259. package/esm2020/lib/map/zoom-button/zoom-button.component.mjs +0 -40
  1260. package/esm2020/lib/measure/index.mjs +0 -4
  1261. package/esm2020/lib/measure/measure.module.mjs +0 -20
  1262. package/esm2020/lib/measure/measurer/measure-format.pipe.mjs +0 -37
  1263. package/esm2020/lib/measure/measurer/measurer-dialog.component.mjs +0 -180
  1264. package/esm2020/lib/measure/measurer/measurer-item.component.mjs +0 -140
  1265. package/esm2020/lib/measure/measurer/measurer.component.mjs +0 -1042
  1266. package/esm2020/lib/measure/measurer/measurer.module.mjs +0 -94
  1267. package/esm2020/lib/measure/shared/index.mjs +0 -4
  1268. package/esm2020/lib/measure/shared/measure.enum.mjs +0 -37
  1269. package/esm2020/lib/measure/shared/measure.interfaces.mjs +0 -2
  1270. package/esm2020/lib/measure/shared/measure.utils.mjs +0 -489
  1271. package/esm2020/lib/metadata/index.mjs +0 -3
  1272. package/esm2020/lib/metadata/metadata-button/index.mjs +0 -2
  1273. package/esm2020/lib/metadata/metadata-button/metadata-button.component.mjs +0 -134
  1274. package/esm2020/lib/metadata/metadata.module.mjs +0 -55
  1275. package/esm2020/lib/metadata/shared/index.mjs +0 -3
  1276. package/esm2020/lib/metadata/shared/metadata.interface.mjs +0 -2
  1277. package/esm2020/lib/metadata/shared/metadata.service.mjs +0 -19
  1278. package/esm2020/lib/offline/geoDB/configFileToGeoDB.service.mjs +0 -105
  1279. package/esm2020/lib/offline/geoDB/geoDB.enums.mjs +0 -6
  1280. package/esm2020/lib/offline/geoDB/geoDB.interface.mjs +0 -2
  1281. package/esm2020/lib/offline/geoDB/geoDB.service.mjs +0 -167
  1282. package/esm2020/lib/offline/geoDB/index.mjs +0 -5
  1283. package/esm2020/lib/offline/index.mjs +0 -4
  1284. package/esm2020/lib/offline/layerDB/index.mjs +0 -3
  1285. package/esm2020/lib/offline/layerDB/layerDB.interface.mjs +0 -2
  1286. package/esm2020/lib/offline/layerDB/layerDB.service.mjs +0 -76
  1287. package/esm2020/lib/offline/shared/geo-network.service.mjs +0 -66
  1288. package/esm2020/lib/offline/shared/index.mjs +0 -2
  1289. package/esm2020/lib/overlay/index.mjs +0 -2
  1290. package/esm2020/lib/overlay/overlay.module.mjs +0 -23
  1291. package/esm2020/lib/overlay/shared/index.mjs +0 -6
  1292. package/esm2020/lib/overlay/shared/overlay.directive.mjs +0 -33
  1293. package/esm2020/lib/overlay/shared/overlay.enum.mjs +0 -8
  1294. package/esm2020/lib/overlay/shared/overlay.mjs +0 -130
  1295. package/esm2020/lib/overlay/shared/overlay.service.mjs +0 -27
  1296. package/esm2020/lib/overlay/shared/overlay.utils.mjs +0 -17
  1297. package/esm2020/lib/print/index.mjs +0 -4
  1298. package/esm2020/lib/print/print/print.component.mjs +0 -112
  1299. package/esm2020/lib/print/print-form/index.mjs +0 -2
  1300. package/esm2020/lib/print/print-form/print-form.component.mjs +0 -514
  1301. package/esm2020/lib/print/print.module.mjs +0 -65
  1302. package/esm2020/lib/print/shared/geopdf.mjs +0 -58
  1303. package/esm2020/lib/print/shared/index.mjs +0 -5
  1304. package/esm2020/lib/print/shared/print.interface.mjs +0 -2
  1305. package/esm2020/lib/print/shared/print.service.mjs +0 -984
  1306. package/esm2020/lib/print/shared/print.type.mjs +0 -30
  1307. package/esm2020/lib/query/index.mjs +0 -2
  1308. package/esm2020/lib/query/query.module.mjs +0 -29
  1309. package/esm2020/lib/query/shared/index.mjs +0 -7
  1310. package/esm2020/lib/query/shared/query-search-source.mjs +0 -35
  1311. package/esm2020/lib/query/shared/query-search-source.providers.mjs +0 -22
  1312. package/esm2020/lib/query/shared/query.directive.mjs +0 -261
  1313. package/esm2020/lib/query/shared/query.enums.mjs +0 -30
  1314. package/esm2020/lib/query/shared/query.interfaces.mjs +0 -2
  1315. package/esm2020/lib/query/shared/query.service.mjs +0 -731
  1316. package/esm2020/lib/query/shared/query.utils.mjs +0 -37
  1317. package/esm2020/lib/search/index.mjs +0 -12
  1318. package/esm2020/lib/search/search-bar/search-bar.component.mjs +0 -512
  1319. package/esm2020/lib/search/search-bar/search-bar.module.mjs +0 -75
  1320. package/esm2020/lib/search/search-bar/search-url-param.directive.mjs +0 -35
  1321. package/esm2020/lib/search/search-results/save-feature-dialog.component.mjs +0 -118
  1322. package/esm2020/lib/search/search-results/search-results-add-button.component.mjs +0 -429
  1323. package/esm2020/lib/search/search-results/search-results-item.component.mjs +0 -147
  1324. package/esm2020/lib/search/search-results/search-results.component.mjs +0 -454
  1325. package/esm2020/lib/search/search-results/search-results.module.mjs +0 -108
  1326. package/esm2020/lib/search/search-selector/search-selector.component.mjs +0 -123
  1327. package/esm2020/lib/search/search-selector/search-selector.module.mjs +0 -56
  1328. package/esm2020/lib/search/search-settings/search-settings.component.mjs +0 -440
  1329. package/esm2020/lib/search/search-settings/search-settings.module.mjs +0 -60
  1330. package/esm2020/lib/search/search.module.mjs +0 -67
  1331. package/esm2020/lib/search/shared/index.mjs +0 -9
  1332. package/esm2020/lib/search/shared/search-pointer-summary.directive.mjs +0 -295
  1333. package/esm2020/lib/search/shared/search-source-service.providers.mjs +0 -20
  1334. package/esm2020/lib/search/shared/search-source.service.mjs +0 -55
  1335. package/esm2020/lib/search/shared/search.enums.mjs +0 -4
  1336. package/esm2020/lib/search/shared/search.interfaces.mjs +0 -2
  1337. package/esm2020/lib/search/shared/search.service.mjs +0 -121
  1338. package/esm2020/lib/search/shared/search.utils.mjs +0 -91
  1339. package/esm2020/lib/search/shared/sources/cadastre.mjs +0 -126
  1340. package/esm2020/lib/search/shared/sources/cadastre.providers.mjs +0 -23
  1341. package/esm2020/lib/search/shared/sources/coordinates.interfaces.mjs +0 -2
  1342. package/esm2020/lib/search/shared/sources/coordinates.mjs +0 -153
  1343. package/esm2020/lib/search/shared/sources/coordinates.providers.mjs +0 -40
  1344. package/esm2020/lib/search/shared/sources/icherche.interfaces.mjs +0 -2
  1345. package/esm2020/lib/search/shared/sources/icherche.mjs +0 -767
  1346. package/esm2020/lib/search/shared/sources/icherche.providers.mjs +0 -66
  1347. package/esm2020/lib/search/shared/sources/ilayer.interfaces.mjs +0 -2
  1348. package/esm2020/lib/search/shared/sources/ilayer.mjs +0 -320
  1349. package/esm2020/lib/search/shared/sources/ilayer.providers.mjs +0 -40
  1350. package/esm2020/lib/search/shared/sources/index.mjs +0 -23
  1351. package/esm2020/lib/search/shared/sources/nominatim.interfaces.mjs +0 -2
  1352. package/esm2020/lib/search/shared/sources/nominatim.mjs +0 -253
  1353. package/esm2020/lib/search/shared/sources/nominatim.providers.mjs +0 -23
  1354. package/esm2020/lib/search/shared/sources/source.interfaces.mjs +0 -2
  1355. package/esm2020/lib/search/shared/sources/source.mjs +0 -209
  1356. package/esm2020/lib/search/shared/sources/storedqueries.interfaces.mjs +0 -2
  1357. package/esm2020/lib/search/shared/sources/storedqueries.mjs +0 -425
  1358. package/esm2020/lib/search/shared/sources/storedqueries.providers.mjs +0 -41
  1359. package/esm2020/lib/search/shared/sources/workspace.interfaces.mjs +0 -2
  1360. package/esm2020/lib/search/shared/sources/workspace.mjs +0 -186
  1361. package/esm2020/lib/search/shared/sources/workspace.providers.mjs +0 -26
  1362. package/esm2020/lib/style/index.mjs +0 -5
  1363. package/esm2020/lib/style/shared/datasource/esri-style-generator.mjs +0 -357
  1364. package/esm2020/lib/style/shared/datasource/index.mjs +0 -2
  1365. package/esm2020/lib/style/shared/feature/feature-style.mjs +0 -141
  1366. package/esm2020/lib/style/shared/feature/index.mjs +0 -2
  1367. package/esm2020/lib/style/shared/font.enum.mjs +0 -17
  1368. package/esm2020/lib/style/shared/index.mjs +0 -5
  1369. package/esm2020/lib/style/shared/overlay/index.mjs +0 -3
  1370. package/esm2020/lib/style/shared/overlay/overlay-marker-style.utils.mjs +0 -43
  1371. package/esm2020/lib/style/shared/overlay/overlay-style.utils.mjs +0 -88
  1372. package/esm2020/lib/style/shared/vector/commonVectorStyle.mjs +0 -75
  1373. package/esm2020/lib/style/shared/vector/conversion.utils.mjs +0 -27
  1374. package/esm2020/lib/style/shared/vector/index.mjs +0 -4
  1375. package/esm2020/lib/style/shared/vector/vector-style.interface.mjs +0 -2
  1376. package/esm2020/lib/style/style-list/index.mjs +0 -5
  1377. package/esm2020/lib/style/style-list/style-list.interface.mjs +0 -2
  1378. package/esm2020/lib/style/style-list/style-list.module.mjs +0 -23
  1379. package/esm2020/lib/style/style-list/style-list.provider.mjs +0 -21
  1380. package/esm2020/lib/style/style-list/style-list.service.mjs +0 -51
  1381. package/esm2020/lib/style/style-modal/drawing/index.mjs +0 -2
  1382. package/esm2020/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +0 -288
  1383. package/esm2020/lib/style/style-modal/index.mjs +0 -5
  1384. package/esm2020/lib/style/style-modal/layer/index.mjs +0 -2
  1385. package/esm2020/lib/style/style-modal/layer/style-modal-layer.component.mjs +0 -187
  1386. package/esm2020/lib/style/style-modal/layer-button/index.mjs +0 -2
  1387. package/esm2020/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +0 -44
  1388. package/esm2020/lib/style/style-modal/shared/index.mjs +0 -2
  1389. package/esm2020/lib/style/style-modal/shared/style-modal.interface.mjs +0 -2
  1390. package/esm2020/lib/style/style-service/draw-style.service.mjs +0 -187
  1391. package/esm2020/lib/style/style-service/index.mjs +0 -3
  1392. package/esm2020/lib/style/style-service/style.service.mjs +0 -356
  1393. package/esm2020/lib/style/style.module.mjs +0 -74
  1394. package/esm2020/lib/toast/index.mjs +0 -2
  1395. package/esm2020/lib/toast/toast.component.mjs +0 -113
  1396. package/esm2020/lib/toast/toast.module.mjs +0 -45
  1397. package/esm2020/lib/utils/googleLinks.mjs +0 -13
  1398. package/esm2020/lib/utils/id-generator.mjs +0 -110
  1399. package/esm2020/lib/utils/index.mjs +0 -4
  1400. package/esm2020/lib/utils/osmLinks.mjs +0 -10
  1401. package/esm2020/lib/wkt/index.mjs +0 -2
  1402. package/esm2020/lib/wkt/shared/index.mjs +0 -2
  1403. package/esm2020/lib/wkt/shared/wkt.service.mjs +0 -239
  1404. package/esm2020/lib/wkt/wkt.module.mjs +0 -22
  1405. package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +0 -48
  1406. package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +0 -36
  1407. package/esm2020/lib/workspace/confirmation-popup/index.mjs +0 -3
  1408. package/esm2020/lib/workspace/index.mjs +0 -8
  1409. package/esm2020/lib/workspace/shared/edition-workspace.mjs +0 -280
  1410. package/esm2020/lib/workspace/shared/edition-workspace.service.mjs +0 -642
  1411. package/esm2020/lib/workspace/shared/feature-workspace.mjs +0 -35
  1412. package/esm2020/lib/workspace/shared/feature-workspace.service.mjs +0 -157
  1413. package/esm2020/lib/workspace/shared/index.mjs +0 -8
  1414. package/esm2020/lib/workspace/shared/wfs-workspace.mjs +0 -35
  1415. package/esm2020/lib/workspace/shared/wfs-workspace.service.mjs +0 -150
  1416. package/esm2020/lib/workspace/shared/wms-workspace.service.mjs +0 -260
  1417. package/esm2020/lib/workspace/shared/workspace.utils.mjs +0 -24
  1418. package/esm2020/lib/workspace/widgets/index.mjs +0 -4
  1419. package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +0 -47
  1420. package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +0 -36
  1421. package/esm2020/lib/workspace/widgets/widgets.mjs +0 -15
  1422. package/esm2020/lib/workspace/workspace-selector/workspace-selector.directive.mjs +0 -133
  1423. package/esm2020/lib/workspace/workspace-selector/workspace-selector.module.mjs +0 -28
  1424. package/esm2020/lib/workspace/workspace-updator/workspace-updator.directive.mjs +0 -113
  1425. package/esm2020/lib/workspace/workspace-updator/workspace-updator.module.mjs +0 -28
  1426. package/esm2020/lib/workspace/workspace.module.mjs +0 -62
  1427. package/esm2020/public_api.mjs +0 -57
  1428. package/fesm2015/igo2-geo.mjs +0 -46894
  1429. package/fesm2015/igo2-geo.mjs.map +0 -1
  1430. package/fesm2020/igo2-geo.mjs +0 -44993
  1431. package/fesm2020/igo2-geo.mjs.map +0 -1
  1432. package/ngcc.config.js +0 -3
  1433. package/style/geo.theming.scss +0 -12
@@ -0,0 +1,711 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { HttpClient, HttpHeaders } from '@angular/common/http';
3
+ import { MatDialog } from '@angular/material/dialog';
4
+ import { ActionStore, EntityStoreFilterSelectionStrategy, EntityTableColumnRenderer } from '@igo2/common';
5
+ import { ConfigService, MessageService, StorageService } from '@igo2/core';
6
+ import { AuthInterceptor } from '@igo2/auth';
7
+ import { catchError, map, skipWhile, take } from 'rxjs/operators';
8
+ import { FeatureDataSource } from '../../datasource/shared/datasources/feature-datasource';
9
+ import { FeatureMotion, FeatureStore, FeatureStoreInMapExtentStrategy, FeatureStoreInMapResolutionStrategy, FeatureStoreLoadingLayerStrategy, FeatureStoreSelectionStrategy } from '../../feature';
10
+ import { LayerService, LinkedProperties, VectorLayer } from '../../layer/shared';
11
+ import { StyleService } from '../../style/style-service/style.service';
12
+ import { EditionWorkspace } from './edition-workspace';
13
+ import WKT from 'ol/format/WKT';
14
+ import GeoJSON from 'ol/format/GeoJSON';
15
+ import { BehaviorSubject, throwError } from 'rxjs';
16
+ import { createFilterInMapExtentOrResolutionStrategy } from './workspace.utils';
17
+ import * as i0 from "@angular/core";
18
+ import * as i1 from "../../layer/shared";
19
+ import * as i2 from "@igo2/core";
20
+ import * as i3 from "@angular/common/http";
21
+ import * as i4 from "@angular/material/dialog";
22
+ import * as i5 from "../../style/style-service/style.service";
23
+ import * as i6 from "@igo2/auth";
24
+ export class EditionWorkspaceService {
25
+ layerService;
26
+ storageService;
27
+ configService;
28
+ messageService;
29
+ http;
30
+ dialog;
31
+ styleService;
32
+ authInterceptor;
33
+ ws$ = new BehaviorSubject(undefined);
34
+ adding$ = new BehaviorSubject(false);
35
+ relationLayers$ = new BehaviorSubject(undefined);
36
+ rowsInMapExtentCheckCondition$ = new BehaviorSubject(true);
37
+ loading = false;
38
+ wktFormat = new WKT();
39
+ geoJsonFormat = new GeoJSON();
40
+ get zoomAuto() {
41
+ return this.storageService.get('zoomAuto');
42
+ }
43
+ constructor(layerService, storageService, configService, messageService, http, dialog, styleService, authInterceptor) {
44
+ this.layerService = layerService;
45
+ this.storageService = storageService;
46
+ this.configService = configService;
47
+ this.messageService = messageService;
48
+ this.http = http;
49
+ this.dialog = dialog;
50
+ this.styleService = styleService;
51
+ this.authInterceptor = authInterceptor;
52
+ }
53
+ createWorkspace(layer, map) {
54
+ if (layer.options.workspace?.enabled !== true ||
55
+ layer.dataSource.options.edition.enabled !== true) {
56
+ return;
57
+ }
58
+ let wksConfig;
59
+ if (layer.options.workspace) {
60
+ wksConfig = layer.options.workspace;
61
+ }
62
+ else {
63
+ wksConfig = {};
64
+ }
65
+ wksConfig.srcId = layer.id;
66
+ wksConfig.workspaceId = layer.id;
67
+ wksConfig.enabled = true;
68
+ wksConfig.pageSize = layer.options.workspace?.pageSize;
69
+ wksConfig.pageSizeOptions = layer.options.workspace?.pageSizeOptions;
70
+ const dataSource = layer.dataSource;
71
+ const wmsLinkId = layer.id + '.WmsWorkspaceTableSrc';
72
+ const wfsLinkId = layer.id + '.WfsWorkspaceTableDest';
73
+ if (!layer.options.linkedLayers) {
74
+ layer.options.linkedLayers = { linkId: wmsLinkId, links: [] };
75
+ }
76
+ const linkProperties = {
77
+ syncedDelete: true,
78
+ linkedIds: [wfsLinkId],
79
+ properties: [LinkedProperties.ZINDEX, LinkedProperties.VISIBLE]
80
+ };
81
+ if (!layer.options.workspace?.minResolution) {
82
+ linkProperties.properties.push(LinkedProperties.MINRESOLUTION);
83
+ }
84
+ let hasOgcFilters = false;
85
+ if (dataSource.options.ogcFilters?.enabled) {
86
+ linkProperties.properties.push(LinkedProperties.OGCFILTERS);
87
+ hasOgcFilters = true;
88
+ }
89
+ if (!layer.options.workspace?.maxResolution) {
90
+ linkProperties.properties.push(LinkedProperties.MAXRESOLUTION);
91
+ }
92
+ let clonedLinks = [];
93
+ if (layer.options.linkedLayers.links) {
94
+ clonedLinks = JSON.parse(JSON.stringify(layer.options.linkedLayers.links));
95
+ }
96
+ clonedLinks.push(linkProperties);
97
+ (layer.options.linkedLayers.linkId = layer.options.linkedLayers.linkId
98
+ ? layer.options.linkedLayers.linkId
99
+ : wmsLinkId),
100
+ (layer.options.linkedLayers.links = clonedLinks);
101
+ let wks;
102
+ this.layerService
103
+ .createAsyncLayer({
104
+ id: wfsLinkId,
105
+ linkedLayers: {
106
+ linkId: wfsLinkId
107
+ },
108
+ workspace: {
109
+ srcId: layer.id,
110
+ workspaceId: undefined,
111
+ enabled: false,
112
+ queryOptions: {
113
+ mapQueryOnOpenTab: layer.options.workspace?.queryOptions?.mapQueryOnOpenTab,
114
+ tabQuery: false
115
+ },
116
+ pageSize: layer.options.workspace?.pageSize,
117
+ pageSizeOptions: layer.options.workspace?.pageSizeOptions
118
+ },
119
+ showInLayerList: false,
120
+ opacity: 0,
121
+ title: layer.title,
122
+ minResolution: layer.options.workspace?.minResolution || layer.minResolution || 0,
123
+ maxResolution: layer.options.workspace?.maxResolution ||
124
+ layer.maxResolution ||
125
+ Infinity,
126
+ style: this.styleService.createStyle({
127
+ fill: {
128
+ color: 'rgba(255, 255, 255, 0.01)'
129
+ },
130
+ stroke: {
131
+ color: 'rgba(255, 255, 255, 0.01)'
132
+ },
133
+ circle: {
134
+ fill: {
135
+ color: 'rgba(255, 255, 255, 0.01)'
136
+ },
137
+ stroke: {
138
+ color: 'rgba(255, 255, 255, 0.01)'
139
+ },
140
+ radius: 5
141
+ }
142
+ }),
143
+ sourceOptions: {
144
+ download: dataSource.options.download,
145
+ type: 'wfs',
146
+ url: dataSource.options.urlWfs || dataSource.options.url,
147
+ queryable: true,
148
+ relations: dataSource.options.relations,
149
+ queryTitle: dataSource.options
150
+ .queryTitle,
151
+ params: dataSource.options.paramsWFS,
152
+ ogcFilters: Object.assign({}, dataSource.ogcFilters, {
153
+ enabled: hasOgcFilters
154
+ }),
155
+ sourceFields: dataSource.options.sourceFields || undefined,
156
+ edition: dataSource.options.edition
157
+ }
158
+ })
159
+ .subscribe((workspaceLayer) => {
160
+ map.addLayer(workspaceLayer);
161
+ layer.ol.setProperties({
162
+ linkedLayers: {
163
+ linkId: layer.options.linkedLayers.linkId,
164
+ links: clonedLinks
165
+ }
166
+ }, false);
167
+ workspaceLayer.dataSource.ol.refresh();
168
+ wks = new EditionWorkspace(this.dialog, this.configService, this.adding$, this.deleteFeature, this.getDomainValues, {
169
+ id: layer.id,
170
+ title: layer.title,
171
+ layer: workspaceLayer,
172
+ map,
173
+ entityStore: this.createFeatureStore(workspaceLayer, map),
174
+ actionStore: new ActionStore([]),
175
+ meta: {
176
+ tableTemplate: undefined
177
+ }
178
+ });
179
+ this.createTableTemplate(wks, workspaceLayer);
180
+ workspaceLayer.options.workspace.workspaceId = workspaceLayer.id;
181
+ layer.options.workspace = Object.assign({}, layer.options.workspace, {
182
+ wksConfig
183
+ });
184
+ delete dataSource.options.download;
185
+ return wks;
186
+ });
187
+ return wks;
188
+ }
189
+ createFeatureStore(layer, map) {
190
+ const store = new FeatureStore([], { map });
191
+ store.bindLayer(layer);
192
+ const loadingStrategy = new FeatureStoreLoadingLayerStrategy({});
193
+ const inMapExtentStrategy = new FeatureStoreInMapExtentStrategy({});
194
+ const inMapResolutionStrategy = new FeatureStoreInMapResolutionStrategy({});
195
+ const selectedRecordStrategy = new EntityStoreFilterSelectionStrategy({});
196
+ const selectionStrategy = new FeatureStoreSelectionStrategy({
197
+ layer: new VectorLayer({
198
+ zIndex: 300,
199
+ source: new FeatureDataSource(),
200
+ style: undefined,
201
+ showInLayerList: false,
202
+ exportable: false,
203
+ browsable: false
204
+ }),
205
+ map,
206
+ hitTolerance: 15,
207
+ motion: this.zoomAuto ? FeatureMotion.Default : FeatureMotion.None,
208
+ many: true,
209
+ dragBox: true
210
+ });
211
+ store.addStrategy(loadingStrategy, true);
212
+ store.addStrategy(inMapExtentStrategy, true);
213
+ store.addStrategy(inMapResolutionStrategy, true);
214
+ store.addStrategy(selectionStrategy, true);
215
+ store.addStrategy(selectedRecordStrategy, false);
216
+ store.addStrategy(createFilterInMapExtentOrResolutionStrategy(), true);
217
+ return store;
218
+ }
219
+ createTableTemplate(workspace, layer) {
220
+ const fields = layer.dataSource.options.sourceFields || [];
221
+ const relations = layer.dataSource.options.relations || [];
222
+ let rendererType = EntityTableColumnRenderer.UnsanitizedHTML;
223
+ let buttons = [];
224
+ let columns = [];
225
+ let relationsColumn = [];
226
+ buttons = [
227
+ {
228
+ name: 'edition',
229
+ title: undefined,
230
+ renderer: EntityTableColumnRenderer.ButtonGroup,
231
+ primary: false,
232
+ valueAccessor: () => {
233
+ return [
234
+ {
235
+ editMode: false,
236
+ icon: 'pencil',
237
+ color: 'primary',
238
+ disabled: layer.dataSource.options.edition.modifyButton === false
239
+ ? true
240
+ : false,
241
+ click: (feature) => {
242
+ workspace.editFeature(feature, workspace);
243
+ }
244
+ },
245
+ {
246
+ editMode: false,
247
+ icon: 'delete',
248
+ color: 'warn',
249
+ disabled: layer.dataSource.options.edition.deleteButton === false
250
+ ? true
251
+ : false,
252
+ click: (feature) => {
253
+ workspace.deleteFeature(feature, workspace);
254
+ }
255
+ },
256
+ {
257
+ editMode: true,
258
+ icon: 'check',
259
+ color: 'primary',
260
+ disabled: this.loading,
261
+ click: (feature) => {
262
+ this.saveFeature(feature, workspace);
263
+ }
264
+ },
265
+ {
266
+ editMode: true,
267
+ icon: 'alpha-x',
268
+ color: 'primary',
269
+ disabled: this.loading,
270
+ click: (feature) => {
271
+ this.cancelEdit(workspace, feature);
272
+ }
273
+ }
274
+ ];
275
+ }
276
+ }
277
+ ];
278
+ if (fields.length === 0) {
279
+ workspace.entityStore.entities$
280
+ .pipe(skipWhile((val) => val.length === 0), take(1))
281
+ .subscribe((entities) => {
282
+ const ol = entities[0].ol;
283
+ const columnsFromFeatures = ol
284
+ .getKeys()
285
+ .filter((col) => !col.startsWith('_') &&
286
+ col !== 'geometry' &&
287
+ col !== ol.getGeometryName() &&
288
+ !col.match(/boundedby/gi))
289
+ .map((key) => {
290
+ return {
291
+ name: `properties.${key}`,
292
+ title: key,
293
+ renderer: rendererType
294
+ };
295
+ });
296
+ workspace.meta.tableTemplate = {
297
+ selection: false,
298
+ sort: true,
299
+ columns: columnsFromFeatures
300
+ };
301
+ });
302
+ return;
303
+ }
304
+ columns = fields.map((field) => {
305
+ let column = {
306
+ name: `properties.${field.name}`,
307
+ title: field.alias ? field.alias : field.name,
308
+ renderer: rendererType,
309
+ valueAccessor: undefined,
310
+ cellClassFunc: () => {
311
+ const cellClass = {};
312
+ if (field.type) {
313
+ cellClass[`class_${field.type}`] = true;
314
+ return cellClass;
315
+ }
316
+ },
317
+ primary: field.primary === true ? true : false,
318
+ visible: field.visible,
319
+ validation: field.validation,
320
+ linkColumnForce: field.linkColumnForce,
321
+ type: field.type,
322
+ domainValues: undefined,
323
+ relation: undefined,
324
+ multiple: field.multiple,
325
+ step: field.step,
326
+ tooltip: field.tooltip
327
+ };
328
+ if (field.type === 'list' || field.type === 'autocomplete') {
329
+ this.getDomainValues(field.relation).subscribe((result) => {
330
+ column.domainValues = result;
331
+ column.relation = field.relation;
332
+ });
333
+ }
334
+ return column;
335
+ });
336
+ relationsColumn = relations.map((relation) => {
337
+ return {
338
+ name: `properties.${relation.name}`,
339
+ title: relation.alias ? relation.alias : relation.name,
340
+ renderer: EntityTableColumnRenderer.Icon,
341
+ icon: relation.icon,
342
+ parent: relation.parent,
343
+ type: 'relation',
344
+ tooltip: relation.tooltip,
345
+ onClick: () => {
346
+ if (this.adding$.getValue() === false) {
347
+ this.ws$.next(relation.title);
348
+ }
349
+ },
350
+ cellClassFunc: () => {
351
+ return { class_icon: true };
352
+ }
353
+ };
354
+ });
355
+ columns.push(...relationsColumn);
356
+ columns.push(...buttons);
357
+ workspace.meta.tableTemplate = {
358
+ selection: false,
359
+ sort: true,
360
+ columns
361
+ };
362
+ }
363
+ saveFeature(feature, workspace) {
364
+ if (!this.validateFeature(feature, workspace)) {
365
+ return false;
366
+ }
367
+ this.sanitizeParameter(feature, workspace);
368
+ const baseUrl = workspace.layer.dataSource.options.edition.baseUrl;
369
+ let url = this.configService.getConfig('edition.url');
370
+ if (!url) {
371
+ url = baseUrl;
372
+ }
373
+ else {
374
+ url += baseUrl ? baseUrl : '';
375
+ }
376
+ if (feature.newFeature) {
377
+ url += workspace.layer.dataSource.options.edition.addUrl;
378
+ const addHeaders = workspace.layer.dataSource.options.edition.addHeaders;
379
+ const headers = new HttpHeaders(addHeaders);
380
+ this.addFeature(feature, workspace, url, headers);
381
+ }
382
+ else {
383
+ if (workspace.layer.dataSource.options.edition.modifyProtocol !== 'post') {
384
+ url +=
385
+ '?' +
386
+ workspace.layer.dataSource.options.edition.modifyUrl +
387
+ feature.idkey;
388
+ }
389
+ else {
390
+ url += workspace.layer.dataSource.options.edition.modifyUrl;
391
+ }
392
+ const protocole = workspace.layer.dataSource.options.edition.modifyProtocol;
393
+ const modifyHeaders = workspace.layer.dataSource.options.edition.modifyHeaders;
394
+ const headers = new HttpHeaders(modifyHeaders);
395
+ this.modifyFeature(feature, workspace, url, headers, protocole);
396
+ }
397
+ }
398
+ addFeature(feature, workspace, url, headers) {
399
+ if (workspace.layer.dataSource.options.edition.hasGeometry) {
400
+ const projDest = workspace.layer.options.sourceOptions.edition.geomDatabaseProj;
401
+ feature.properties[workspace.layer.dataSource.options.params.fieldNameGeometry] =
402
+ 'SRID=' +
403
+ projDest.replace('EPSG:', '') +
404
+ ';' +
405
+ this.wktFormat.writeGeometry(this.geoJsonFormat
406
+ .readFeature(feature.geometry)
407
+ .getGeometry()
408
+ .transform('EPSG:4326', projDest), { dataProjection: projDest });
409
+ }
410
+ for (const property in feature.properties) {
411
+ for (const sf of workspace.layer.dataSource.options.sourceFields) {
412
+ if ((sf.name === property && sf.validation?.readonly) ||
413
+ (sf.name === property && sf.validation?.send === false)) {
414
+ delete feature.properties[property];
415
+ }
416
+ }
417
+ }
418
+ this.loading = true;
419
+ this.http
420
+ .post(`${url}`, feature.properties, { headers: headers })
421
+ .subscribe(() => {
422
+ this.loading = false;
423
+ workspace.entityStore.stateView.clear();
424
+ workspace.deleteDrawings();
425
+ workspace.entityStore.delete(feature);
426
+ this.messageService.success('igo.geo.workspace.addSuccess');
427
+ this.refreshMap(workspace.layer, workspace.layer.map);
428
+ this.adding$.next(false);
429
+ this.rowsInMapExtentCheckCondition$.next(true);
430
+ }, (error) => {
431
+ this.loading = false;
432
+ error.error.caught = true;
433
+ const messages = workspace.layer.dataSource.options.edition.messages;
434
+ if (messages) {
435
+ let text;
436
+ messages.forEach((message) => {
437
+ const key = Object.keys(message)[0];
438
+ if (error.error.message.includes(key)) {
439
+ text = message[key];
440
+ this.messageService.error(text);
441
+ }
442
+ });
443
+ if (!text) {
444
+ this.messageService.error('igo.geo.workspace.addError');
445
+ }
446
+ }
447
+ else {
448
+ this.messageService.error('igo.geo.workspace.addError');
449
+ }
450
+ });
451
+ }
452
+ deleteFeature(workspace, url) {
453
+ this.loading = true;
454
+ this.http.delete(`${url}`, {}).subscribe(() => {
455
+ this.loading = false;
456
+ this.messageService.success('igo.geo.workspace.deleteSuccess');
457
+ this.refreshMap(workspace.layer, workspace.layer.map);
458
+ for (const relation of workspace.layer.options.sourceOptions
459
+ .relations) {
460
+ workspace.map.layers.forEach((layer) => {
461
+ if (layer.title === relation.title) {
462
+ layer.dataSource.ol.refresh();
463
+ }
464
+ });
465
+ }
466
+ }, (error) => {
467
+ this.loading = false;
468
+ error.error.caught = true;
469
+ const messages = workspace.layer.dataSource.options.edition.messages;
470
+ if (messages) {
471
+ let text;
472
+ messages.forEach((message) => {
473
+ const key = Object.keys(message)[0];
474
+ if (error.error.message.includes(key)) {
475
+ text = message[key];
476
+ this.messageService.error(text);
477
+ }
478
+ });
479
+ if (!text) {
480
+ this.messageService.error('igo.geo.workspace.addError');
481
+ }
482
+ }
483
+ else {
484
+ this.messageService.error('igo.geo.workspace.addError');
485
+ }
486
+ });
487
+ }
488
+ modifyFeature(feature, workspace, url, headers, protocole = 'patch') {
489
+ if (workspace.layer.dataSource.options.edition.hasGeometry) {
490
+ const projDest = workspace.layer.options.sourceOptions.edition.geomDatabaseProj;
491
+ // Remove 3e dimension
492
+ feature.geometry.coordinates = removeZ(feature.geometry.coordinates);
493
+ feature.properties[workspace.layer.dataSource.options.params.fieldNameGeometry] =
494
+ 'SRID=' +
495
+ projDest.replace('EPSG:', '') +
496
+ ';' +
497
+ this.wktFormat.writeGeometry(this.geoJsonFormat
498
+ .readFeature(feature.geometry)
499
+ .getGeometry()
500
+ .transform('EPSG:4326', projDest), { dataProjection: projDest });
501
+ }
502
+ for (const property in feature.properties) {
503
+ for (const sf of workspace.layer.dataSource.options.sourceFields) {
504
+ if ((sf.name === property && sf.validation?.readonly) ||
505
+ (sf.name === property && sf.validation?.send === false) ||
506
+ property === 'boundedBy') {
507
+ delete feature.properties[property];
508
+ }
509
+ }
510
+ }
511
+ this.loading = true;
512
+ this.http[protocole](`${url}`, feature.properties, {
513
+ headers: headers
514
+ }).subscribe(() => {
515
+ this.loading = false;
516
+ this.cancelEdit(workspace, feature, true);
517
+ this.messageService.success('igo.geo.workspace.modifySuccess');
518
+ this.refreshMap(workspace.layer, workspace.layer.map);
519
+ let relationLayers = [];
520
+ for (const relation of workspace.layer.options.sourceOptions
521
+ .relations) {
522
+ workspace.map.layers.forEach((layer) => {
523
+ if (layer.title === relation.title) {
524
+ relationLayers.push(layer);
525
+ layer.dataSource.ol.refresh();
526
+ }
527
+ });
528
+ }
529
+ this.relationLayers$.next(relationLayers);
530
+ }, (error) => {
531
+ this.loading = false;
532
+ error.error.caught = true;
533
+ const messages = workspace.layer.dataSource.options.edition.messages;
534
+ if (messages) {
535
+ let text;
536
+ messages.forEach((message) => {
537
+ const key = Object.keys(message)[0];
538
+ if (error.error.message.includes(key)) {
539
+ text = message[key];
540
+ this.messageService.error(text);
541
+ }
542
+ });
543
+ if (!text) {
544
+ this.messageService.error('igo.geo.workspace.addError');
545
+ }
546
+ }
547
+ else {
548
+ this.messageService.error('igo.geo.workspace.addError');
549
+ }
550
+ });
551
+ }
552
+ cancelEdit(workspace, feature, fromSave = false) {
553
+ feature.edition = false;
554
+ this.adding$.next(false);
555
+ workspace.deleteDrawings();
556
+ workspace.entityStore.stateView.clear();
557
+ if (feature.newFeature) {
558
+ workspace.entityStore.delete(feature);
559
+ workspace.deactivateDrawControl();
560
+ this.rowsInMapExtentCheckCondition$.next(true);
561
+ }
562
+ else {
563
+ if (!fromSave) {
564
+ feature.properties = feature.original_properties;
565
+ feature.geometry = feature.original_geometry;
566
+ }
567
+ delete feature.original_properties;
568
+ delete feature.original_geometry;
569
+ }
570
+ }
571
+ getDomainValues(relation) {
572
+ let url = relation.url;
573
+ if (!url) {
574
+ url = this.configService.getConfig('edition.url')
575
+ ? this.configService.getConfig('edition.url') + relation.table
576
+ : relation.table;
577
+ }
578
+ return this.http.get(url).pipe(map((result) => {
579
+ return result;
580
+ }), catchError((err) => {
581
+ err.error.caught = true;
582
+ return throwError(err);
583
+ }));
584
+ }
585
+ /*
586
+ * Refresh both wms and wfs layer
587
+ * A new wfs loader is used to ensure cache is not retrieving old data
588
+ * WMS params are updated to ensure layer is correctly refreshed
589
+ */
590
+ refreshMap(layer, map) {
591
+ const wfsOlLayer = layer.dataSource.ol;
592
+ const loader = (extent, resolution, proj, success, failure) => {
593
+ layer.customWFSLoader(layer.ol.getSource(), layer.options.sourceOptions, this.authInterceptor, extent, resolution, proj, success, failure, true);
594
+ };
595
+ wfsOlLayer.setLoader(loader);
596
+ wfsOlLayer.refresh();
597
+ for (const lay of map.layers) {
598
+ if (lay.id !== layer.id &&
599
+ lay.options.linkedLayers?.linkId.includes(layer.id.substr(0, layer.id.indexOf('.') - 1)) &&
600
+ lay.options.linkedLayers?.linkId.includes('WmsWorkspaceTableSrc')) {
601
+ const wmsOlLayer = lay.dataSource.ol;
602
+ let params = wmsOlLayer.getParams();
603
+ params._t = new Date().getTime();
604
+ wmsOlLayer.updateParams(params);
605
+ }
606
+ }
607
+ }
608
+ validateFeature(feature, workspace) {
609
+ let message;
610
+ let key;
611
+ let valid = true;
612
+ workspace.meta.tableTemplate.columns.forEach((column) => {
613
+ if (column.hasOwnProperty('validation') && column.validation) {
614
+ key = getColumnKeyWithoutPropertiesTag(column.name);
615
+ Object.keys(column.validation).forEach((type) => {
616
+ switch (type) {
617
+ case 'mandatory': {
618
+ if (column.validation[type] &&
619
+ (!feature.properties.hasOwnProperty(key) ||
620
+ !feature.properties[key])) {
621
+ valid = false;
622
+ this.messageService.error('igo.geo.formValidation.mandatory', undefined, undefined, { column: column.title });
623
+ }
624
+ break;
625
+ }
626
+ case 'minValue': {
627
+ if (feature.properties.hasOwnProperty(key) &&
628
+ feature.properties[key] &&
629
+ feature.properties[key] < column.validation[type]) {
630
+ valid = false;
631
+ this.messageService.error('igo.geo.formValidation.minValue', undefined, undefined, {
632
+ column: column.title,
633
+ value: column.validation[type]
634
+ });
635
+ }
636
+ break;
637
+ }
638
+ case 'maxValue': {
639
+ if (feature.properties.hasOwnProperty(key) &&
640
+ feature.properties[key] &&
641
+ feature.properties[key] > column.validation[type]) {
642
+ valid = false;
643
+ this.messageService.error('igo.geo.formValidation.maxValue', undefined, undefined, {
644
+ column: column.title,
645
+ value: column.validation[type]
646
+ });
647
+ }
648
+ break;
649
+ }
650
+ case 'minLength': {
651
+ if (feature.properties.hasOwnProperty(key) &&
652
+ feature.properties[key] &&
653
+ feature.properties[key].length < column.validation[type]) {
654
+ valid = false;
655
+ this.messageService.error('igo.geo.formValidation.minLength', undefined, undefined, {
656
+ column: column.title,
657
+ value: column.validation[type]
658
+ });
659
+ }
660
+ break;
661
+ }
662
+ case 'maxLength': {
663
+ if (feature.properties.hasOwnProperty(key) &&
664
+ feature.properties[key] &&
665
+ feature.properties[key].length > column.validation[type]) {
666
+ valid = false;
667
+ this.messageService.error('igo.geo.formValidation.maxLength', undefined, undefined, {
668
+ column: column.title,
669
+ value: column.validation[type]
670
+ });
671
+ }
672
+ break;
673
+ }
674
+ }
675
+ });
676
+ }
677
+ });
678
+ return valid;
679
+ }
680
+ sanitizeParameter(feature, workspace) {
681
+ workspace.meta.tableTemplate.columns.forEach((column) => {
682
+ if (column.type === 'list' &&
683
+ feature.properties[getColumnKeyWithoutPropertiesTag(column.name)]) {
684
+ feature.properties[getColumnKeyWithoutPropertiesTag(column.name)] =
685
+ feature.properties[getColumnKeyWithoutPropertiesTag(column.name)].toString();
686
+ }
687
+ });
688
+ }
689
+ static ɵfac = function EditionWorkspaceService_Factory(t) { return new (t || EditionWorkspaceService)(i0.ɵɵinject(i1.LayerService), i0.ɵɵinject(i2.StorageService), i0.ɵɵinject(i2.ConfigService), i0.ɵɵinject(i2.MessageService), i0.ɵɵinject(i3.HttpClient), i0.ɵɵinject(i4.MatDialog), i0.ɵɵinject(i5.StyleService), i0.ɵɵinject(i6.AuthInterceptor)); };
690
+ static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: EditionWorkspaceService, factory: EditionWorkspaceService.ɵfac, providedIn: 'root' });
691
+ }
692
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EditionWorkspaceService, [{
693
+ type: Injectable,
694
+ args: [{
695
+ providedIn: 'root'
696
+ }]
697
+ }], function () { return [{ type: i1.LayerService }, { type: i2.StorageService }, { type: i2.ConfigService }, { type: i2.MessageService }, { type: i3.HttpClient }, { type: i4.MatDialog }, { type: i5.StyleService }, { type: i6.AuthInterceptor }]; }, null); })();
698
+ function getColumnKeyWithoutPropertiesTag(column) {
699
+ if (column.includes('properties.')) {
700
+ return column.split('.')[1];
701
+ }
702
+ return column;
703
+ }
704
+ function removeZ(coords) {
705
+ if (coords.length === 0)
706
+ return coords;
707
+ if (typeof coords[0] === 'number')
708
+ return coords.slice(0, 2);
709
+ return coords.map(removeZ);
710
+ }
711
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdGlvbi13b3Jrc3BhY2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL3dvcmtzcGFjZS9zaGFyZWQvZWRpdGlvbi13b3Jrc3BhY2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFDTCxVQUFVLEVBRVYsV0FBVyxFQUNaLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJELE9BQU8sRUFDTCxXQUFXLEVBQ1gsa0NBQWtDLEVBQ2xDLHlCQUF5QixFQUcxQixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDM0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFNbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFFM0YsT0FBTyxFQUVMLGFBQWEsRUFDYixZQUFZLEVBQ1osK0JBQStCLEVBQy9CLG1DQUFtQyxFQUNuQyxnQ0FBZ0MsRUFDaEMsNkJBQTZCLEVBQzlCLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFFTCxZQUFZLEVBRVosZ0JBQWdCLEVBQ2hCLFdBQVcsRUFDWixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUl2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV2RCxPQUFPLEdBQUcsTUFBTSxlQUFlLENBQUM7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QyxDQUFDLENBQUMsQ0FBQztLQUM3QjtJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxTQUFTLE9BQU8sQ0FBQyxNQUFXO0lBQzFCLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQUUsT0FBTyxNQUFNLENBQUM7SUFDdkMsSUFBSSxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRO1FBQUUsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM3RCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDN0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBIdHRwQ2xpZW50LFxyXG4gIEh0dHBFcnJvclJlc3BvbnNlLFxyXG4gIEh0dHBIZWFkZXJzXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5cclxuaW1wb3J0IHtcclxuICBBY3Rpb25TdG9yZSxcclxuICBFbnRpdHlTdG9yZUZpbHRlclNlbGVjdGlvblN0cmF0ZWd5LFxyXG4gIEVudGl0eVRhYmxlQ29sdW1uUmVuZGVyZXIsXHJcbiAgRW50aXR5VGFibGVUZW1wbGF0ZSxcclxuICBFbnRpdHlUYWJsZUJ1dHRvblxyXG59IGZyb20gJ0BpZ28yL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UsIE1lc3NhZ2VTZXJ2aWNlLCBTdG9yYWdlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5pbXBvcnQgeyBBdXRoSW50ZXJjZXB0b3IgfSBmcm9tICdAaWdvMi9hdXRoJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCBza2lwV2hpbGUsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7XHJcbiAgUmVsYXRpb25PcHRpb25zLFxyXG4gIFNvdXJjZUZpZWxkc09wdGlvbnNQYXJhbXMsXHJcbiAgV01TRGF0YVNvdXJjZVxyXG59IGZyb20gJy4uLy4uL2RhdGFzb3VyY2UnO1xyXG5pbXBvcnQgeyBGZWF0dXJlRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL2ZlYXR1cmUtZGF0YXNvdXJjZSc7XHJcbmltcG9ydCB7IFdGU0RhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvd2ZzLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtcclxuICBGZWF0dXJlLFxyXG4gIEZlYXR1cmVNb3Rpb24sXHJcbiAgRmVhdHVyZVN0b3JlLFxyXG4gIEZlYXR1cmVTdG9yZUluTWFwRXh0ZW50U3RyYXRlZ3ksXHJcbiAgRmVhdHVyZVN0b3JlSW5NYXBSZXNvbHV0aW9uU3RyYXRlZ3ksXHJcbiAgRmVhdHVyZVN0b3JlTG9hZGluZ0xheWVyU3RyYXRlZ3ksXHJcbiAgRmVhdHVyZVN0b3JlU2VsZWN0aW9uU3RyYXRlZ3lcclxufSBmcm9tICcuLi8uLi9mZWF0dXJlJztcclxuXHJcbmltcG9ydCB7IE9nY0ZpbHRlcmFibGVEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4uLy4uL2ZpbHRlci9zaGFyZWQvb2djLWZpbHRlci5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge1xyXG4gIEltYWdlTGF5ZXIsXHJcbiAgTGF5ZXJTZXJ2aWNlLFxyXG4gIExheWVyc0xpbmtQcm9wZXJ0aWVzLFxyXG4gIExpbmtlZFByb3BlcnRpZXMsXHJcbiAgVmVjdG9yTGF5ZXJcclxufSBmcm9tICcuLi8uLi9sYXllci9zaGFyZWQnO1xyXG5pbXBvcnQgeyBTdHlsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zdHlsZS9zdHlsZS1zZXJ2aWNlL3N0eWxlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBHZW9Xb3Jrc3BhY2VPcHRpb25zIH0gZnJvbSAnLi4vLi4vbGF5ZXIvc2hhcmVkL2xheWVycy9sYXllci5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBNYXBCYXNlLCBJZ29NYXAgfSBmcm9tICcuLi8uLi9tYXAvc2hhcmVkJztcclxuaW1wb3J0IHsgUXVlcnlhYmxlRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuLi8uLi9xdWVyeS9zaGFyZWQvcXVlcnkuaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEVkaXRpb25Xb3Jrc3BhY2UgfSBmcm9tICcuL2VkaXRpb24td29ya3NwYWNlJztcclxuXHJcbmltcG9ydCBXS1QgZnJvbSAnb2wvZm9ybWF0L1dLVCc7XHJcbmltcG9ydCBHZW9KU09OIGZyb20gJ29sL2Zvcm1hdC9HZW9KU09OJztcclxuaW1wb3J0IG9sRmVhdHVyZSBmcm9tICdvbC9GZWF0dXJlJztcclxuaW1wb3J0IG9sU291cmNlSW1hZ2VXTVMgZnJvbSAnb2wvc291cmNlL0ltYWdlV01TJztcclxuaW1wb3J0IHR5cGUgeyBkZWZhdWx0IGFzIE9sR2VvbWV0cnkgfSBmcm9tICdvbC9nZW9tL0dlb21ldHJ5JztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNyZWF0ZUZpbHRlckluTWFwRXh0ZW50T3JSZXNvbHV0aW9uU3RyYXRlZ3kgfSBmcm9tICcuL3dvcmtzcGFjZS51dGlscyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFZGl0aW9uV29ya3NwYWNlU2VydmljZSB7XHJcbiAgcHVibGljIHdzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPih1bmRlZmluZWQpO1xyXG4gIHB1YmxpYyBhZGRpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcbiAgcHVibGljIHJlbGF0aW9uTGF5ZXJzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SW1hZ2VMYXllcltdIHwgVmVjdG9yTGF5ZXJbXT4oXHJcbiAgICB1bmRlZmluZWRcclxuICApO1xyXG4gIHB1YmxpYyByb3dzSW5NYXBFeHRlbnRDaGVja0NvbmRpdGlvbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xyXG4gIHB1YmxpYyBsb2FkaW5nID0gZmFsc2U7XHJcbiAgcHVibGljIHdrdEZvcm1hdCA9IG5ldyBXS1QoKTtcclxuICBwdWJsaWMgZ2VvSnNvbkZvcm1hdCA9IG5ldyBHZW9KU09OKCk7XHJcblxyXG4gIGdldCB6b29tQXV0bygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldCgnem9vbUF1dG8nKSBhcyBib29sZWFuO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGxheWVyU2VydmljZTogTGF5ZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIHN0eWxlU2VydmljZTogU3R5bGVTZXJ2aWNlLFxyXG4gICAgcHVibGljIGF1dGhJbnRlcmNlcHRvcj86IEF1dGhJbnRlcmNlcHRvclxyXG4gICkge31cclxuXHJcbiAgY3JlYXRlV29ya3NwYWNlKGxheWVyOiBJbWFnZUxheWVyLCBtYXA6IElnb01hcCk6IEVkaXRpb25Xb3Jrc3BhY2Uge1xyXG4gICAgaWYgKFxyXG4gICAgICBsYXllci5vcHRpb25zLndvcmtzcGFjZT8uZW5hYmxlZCAhPT0gdHJ1ZSB8fFxyXG4gICAgICBsYXllci5kYXRhU291cmNlLm9wdGlvbnMuZWRpdGlvbi5lbmFibGVkICE9PSB0cnVlXHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbGV0IHdrc0NvbmZpZztcclxuICAgIGlmIChsYXllci5vcHRpb25zLndvcmtzcGFjZSkge1xyXG4gICAgICB3a3NDb25maWcgPSBsYXllci5vcHRpb25zLndvcmtzcGFjZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHdrc0NvbmZpZyA9IHt9O1xyXG4gICAgfVxyXG4gICAgd2tzQ29uZmlnLnNyY0lkID0gbGF5ZXIuaWQ7XHJcbiAgICB3a3NDb25maWcud29ya3NwYWNlSWQgPSBsYXllci5pZDtcclxuICAgIHdrc0NvbmZpZy5lbmFibGVkID0gdHJ1ZTtcclxuICAgIHdrc0NvbmZpZy5wYWdlU2l6ZSA9IGxheWVyLm9wdGlvbnMud29ya3NwYWNlPy5wYWdlU2l6ZTtcclxuICAgIHdrc0NvbmZpZy5wYWdlU2l6ZU9wdGlvbnMgPSBsYXllci5vcHRpb25zLndvcmtzcGFjZT8ucGFnZVNpemVPcHRpb25zO1xyXG5cclxuICAgIGNvbnN0IGRhdGFTb3VyY2U6IFdNU0RhdGFTb3VyY2UgPSBsYXllci5kYXRhU291cmNlIGFzIFdNU0RhdGFTb3VyY2U7XHJcbiAgICBjb25zdCB3bXNMaW5rSWQgPSBsYXllci5pZCArICcuV21zV29ya3NwYWNlVGFibGVTcmMnO1xyXG4gICAgY29uc3Qgd2ZzTGlua0lkID0gbGF5ZXIuaWQgKyAnLldmc1dvcmtzcGFjZVRhYmxlRGVzdCc7XHJcbiAgICBpZiAoIWxheWVyLm9wdGlvbnMubGlua2VkTGF5ZXJzKSB7XHJcbiAgICAgIGxheWVyLm9wdGlvbnMubGlua2VkTGF5ZXJzID0geyBsaW5rSWQ6IHdtc0xpbmtJZCwgbGlua3M6IFtdIH07XHJcbiAgICB9XHJcbiAgICBjb25zdCBsaW5rUHJvcGVydGllcyA9IHtcclxuICAgICAgc3luY2VkRGVsZXRlOiB0cnVlLFxyXG4gICAgICBsaW5rZWRJZHM6IFt3ZnNMaW5rSWRdLFxyXG4gICAgICBwcm9wZXJ0aWVzOiBbTGlua2VkUHJvcGVydGllcy5aSU5ERVgsIExpbmtlZFByb3BlcnRpZXMuVklTSUJMRV1cclxuICAgIH0gYXMgTGF5ZXJzTGlua1Byb3BlcnRpZXM7XHJcblxyXG4gICAgaWYgKCFsYXllci5vcHRpb25zLndvcmtzcGFjZT8ubWluUmVzb2x1dGlvbikge1xyXG4gICAgICBsaW5rUHJvcGVydGllcy5wcm9wZXJ0aWVzLnB1c2goTGlua2VkUHJvcGVydGllcy5NSU5SRVNPTFVUSU9OKTtcclxuICAgIH1cclxuICAgIGxldCBoYXNPZ2NGaWx0ZXJzID0gZmFsc2U7XHJcbiAgICBpZiAoXHJcbiAgICAgIChkYXRhU291cmNlLm9wdGlvbnMgYXMgT2djRmlsdGVyYWJsZURhdGFTb3VyY2VPcHRpb25zKS5vZ2NGaWx0ZXJzPy5lbmFibGVkXHJcbiAgICApIHtcclxuICAgICAgbGlua1Byb3BlcnRpZXMucHJvcGVydGllcy5wdXNoKExpbmtlZFByb3BlcnRpZXMuT0dDRklMVEVSUyk7XHJcbiAgICAgIGhhc09nY0ZpbHRlcnMgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgaWYgKCFsYXllci5vcHRpb25zLndvcmtzcGFjZT8ubWF4UmVzb2x1dGlvbikge1xyXG4gICAgICBsaW5rUHJvcGVydGllcy5wcm9wZXJ0aWVzLnB1c2goTGlua2VkUHJvcGVydGllcy5NQVhSRVNPTFVUSU9OKTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgY2xvbmVkTGlua3M6IExheWVyc0xpbmtQcm9wZXJ0aWVzW10gPSBbXTtcclxuICAgIGlmIChsYXllci5vcHRpb25zLmxpbmtlZExheWVycy5saW5rcykge1xyXG4gICAgICBjbG9uZWRMaW5rcyA9IEpTT04ucGFyc2UoXHJcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkobGF5ZXIub3B0aW9ucy5saW5rZWRMYXllcnMubGlua3MpXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBjbG9uZWRMaW5rcy5wdXNoKGxpbmtQcm9wZXJ0aWVzKTtcclxuXHJcbiAgICAobGF5ZXIub3B0aW9ucy5saW5rZWRMYXllcnMubGlua0lkID0gbGF5ZXIub3B0aW9ucy5saW5rZWRMYXllcnMubGlua0lkXHJcbiAgICAgID8gbGF5ZXIub3B0aW9ucy5saW5rZWRMYXllcnMubGlua0lkXHJcbiAgICAgIDogd21zTGlua0lkKSxcclxuICAgICAgKGxheWVyLm9wdGlvbnMubGlua2VkTGF5ZXJzLmxpbmtzID0gY2xvbmVkTGlua3MpO1xyXG4gICAgaW50ZXJmYWNlIFdGU29wdGlvbnNcclxuICAgICAgZXh0ZW5kcyBXRlNEYXRhU291cmNlT3B0aW9ucyxcclxuICAgICAgICBPZ2NGaWx0ZXJhYmxlRGF0YVNvdXJjZU9wdGlvbnMge31cclxuICAgIGxldCB3a3M7XHJcbiAgICB0aGlzLmxheWVyU2VydmljZVxyXG4gICAgICAuY3JlYXRlQXN5bmNMYXllcih7XHJcbiAgICAgICAgaWQ6IHdmc0xpbmtJZCxcclxuICAgICAgICBsaW5rZWRMYXllcnM6IHtcclxuICAgICAgICAgIGxpbmtJZDogd2ZzTGlua0lkXHJcbiAgICAgICAgfSxcclxuICAgICAgICB3b3Jrc3BhY2U6IHtcclxuICAgICAgICAgIHNyY0lkOiBsYXllci5pZCxcclxuICAgICAgICAgIHdvcmtzcGFjZUlkOiB1bmRlZmluZWQsXHJcbiAgICAgICAgICBlbmFibGVkOiBmYWxzZSxcclxuICAgICAgICAgIHF1ZXJ5T3B0aW9uczoge1xyXG4gICAgICAgICAgICBtYXBRdWVyeU9uT3BlblRhYjpcclxuICAgICAgICAgICAgICBsYXllci5vcHRpb25zLndvcmtzcGFjZT8ucXVlcnlPcHRpb25zPy5tYXBRdWVyeU9uT3BlblRhYixcclxuICAgICAgICAgICAgdGFiUXVlcnk6IGZhbHNlXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgcGFnZVNpemU6IGxheWVyLm9wdGlvbnMud29ya3NwYWNlPy5wYWdlU2l6ZSxcclxuICAgICAgICAgIHBhZ2VTaXplT3B0aW9uczogbGF5ZXIub3B0aW9ucy53b3Jrc3BhY2U/LnBhZ2VTaXplT3B0aW9uc1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgc2hvd0luTGF5ZXJMaXN0OiBmYWxzZSxcclxuICAgICAgICBvcGFjaXR5OiAwLFxyXG4gICAgICAgIHRpdGxlOiBsYXllci50aXRsZSxcclxuICAgICAgICBtaW5SZXNvbHV0aW9uOlxyXG4gICAgICAgICAgbGF5ZXIub3B0aW9ucy53b3Jrc3BhY2U/Lm1pblJlc29sdXRpb24gfHwgbGF5ZXIubWluUmVzb2x1dGlvbiB8fCAwLFxyXG4gICAgICAgIG1heFJlc29sdXRpb246XHJcbiAgICAgICAgICBsYXllci5vcHRpb25zLndvcmtzcGFjZT8ubWF4UmVzb2x1dGlvbiB8fFxyXG4gICAgICAgICAgbGF5ZXIubWF4UmVzb2x1dGlvbiB8fFxyXG4gICAgICAgICAgSW5maW5pdHksXHJcbiAgICAgICAgc3R5bGU6IHRoaXMuc3R5bGVTZXJ2aWNlLmNyZWF0ZVN0eWxlKHtcclxuICAgICAgICAgIGZpbGw6IHtcclxuICAgICAgICAgICAgY29sb3I6ICdyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDEpJ1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHN0cm9rZToge1xyXG4gICAgICAgICAgICBjb2xvcjogJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMSknXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgY2lyY2xlOiB7XHJcbiAgICAgICAgICAgIGZpbGw6IHtcclxuICAgICAgICAgICAgICBjb2xvcjogJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMSknXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHN0cm9rZToge1xyXG4gICAgICAgICAgICAgIGNvbG9yOiAncmdiYSgyNTUsIDI1NSwgMjU1LCAwLjAxKSdcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgcmFkaXVzOiA1XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgc291cmNlT3B0aW9uczoge1xyXG4gICAgICAgICAgZG93bmxvYWQ6IGRhdGFTb3VyY2Uub3B0aW9ucy5kb3dubG9hZCxcclxuICAgICAgICAgIHR5cGU6ICd3ZnMnLFxyXG4gICAgICAgICAgdXJsOiBkYXRhU291cmNlLm9wdGlvbnMudXJsV2ZzIHx8IGRhdGFTb3VyY2Uub3B0aW9ucy51cmwsXHJcbiAgICAgICAgICBxdWVyeWFibGU6IHRydWUsXHJcbiAgICAgICAgICByZWxhdGlvbnM6IGRhdGFTb3VyY2Uub3B0aW9ucy5yZWxhdGlvbnMsXHJcbiAgICAgICAgICBxdWVyeVRpdGxlOiAoZGF0YVNvdXJjZS5vcHRpb25zIGFzIFF1ZXJ5YWJsZURhdGFTb3VyY2VPcHRpb25zKVxyXG4gICAgICAgICAgICAucXVlcnlUaXRsZSxcclxuICAgICAgICAgIHBhcmFtczogZGF0YVNvdXJjZS5vcHRpb25zLnBhcmFtc1dGUyxcclxuICAgICAgICAgIG9nY0ZpbHRlcnM6IE9iamVjdC5hc3NpZ24oe30sIGRhdGFTb3VyY2Uub2djRmlsdGVycywge1xyXG4gICAgICAgICAgICBlbmFibGVkOiBoYXNPZ2NGaWx0ZXJzXHJcbiAgICAgICAgICB9KSxcclxuICAgICAgICAgIHNvdXJjZUZpZWxkczogZGF0YVNvdXJjZS5vcHRpb25zLnNvdXJjZUZpZWxkcyB8fCB1bmRlZmluZWQsXHJcbiAgICAgICAgICBlZGl0aW9uOiBkYXRhU291cmNlLm9wdGlvbnMuZWRpdGlvblxyXG4gICAgICAgIH0gYXMgV0ZTb3B0aW9uc1xyXG4gICAgICB9KVxyXG4gICAgICAuc3Vic2NyaWJlKCh3b3Jrc3BhY2VMYXllcjogVmVjdG9yTGF5ZXIpID0+IHtcclxuICAgICAgICBtYXAuYWRkTGF5ZXIod29ya3NwYWNlTGF5ZXIpO1xyXG4gICAgICAgIGxheWVyLm9sLnNldFByb3BlcnRpZXMoXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGxpbmtlZExheWVyczoge1xyXG4gICAgICAgICAgICAgIGxpbmtJZDogbGF5ZXIub3B0aW9ucy5saW5rZWRMYXllcnMubGlua0lkLFxyXG4gICAgICAgICAgICAgIGxpbmtzOiBjbG9uZWRMaW5rc1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZmFsc2VcclxuICAgICAgICApO1xyXG4gICAgICAgIHdvcmtzcGFjZUxheWVyLmRhdGFTb3VyY2Uub2wucmVmcmVzaCgpO1xyXG5cclxuICAgICAgICB3a3MgPSBuZXcgRWRpdGlvbldvcmtzcGFjZShcclxuICAgICAgICAgIHRoaXMuZGlhbG9nLFxyXG4gICAgICAgICAgdGhpcy5jb25maWdTZXJ2aWNlLFxyXG4gICAgICAgICAgdGhpcy5hZGRpbmckLFxyXG4gICAgICAgICAgdGhpcy5kZWxldGVGZWF0dXJlLFxyXG4gICAgICAgICAgdGhpcy5nZXREb21haW5WYWx1ZXMsXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGlkOiBsYXllci5pZCxcclxuICAgICAgICAgICAgdGl0bGU6IGxheWVyLnRpdGxlLFxyXG4gICAgICAgICAgICBsYXllcjogd29ya3NwYWNlTGF5ZXIsXHJcbiAgICAgICAgICAgIG1hcCxcclxuICAgICAgICAgICAgZW50aXR5U3RvcmU6IHRoaXMuY3JlYXRlRmVhdHVyZVN0b3JlKHdvcmtzcGFjZUxheWVyLCBtYXApLFxyXG4gICAgICAgICAgICBhY3Rpb25TdG9yZTogbmV3IEFjdGlvblN0b3JlKFtdKSxcclxuICAgICAgICAgICAgbWV0YToge1xyXG4gICAgICAgICAgICAgIHRhYmxlVGVtcGxhdGU6IHVuZGVmaW5lZFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmNyZWF0ZVRhYmxlVGVtcGxhdGUod2tzLCB3b3Jrc3BhY2VMYXllcik7XHJcblxyXG4gICAgICAgIHdvcmtzcGFjZUxheWVyLm9wdGlvbnMud29ya3NwYWNlLndvcmtzcGFjZUlkID0gd29ya3NwYWNlTGF5ZXIuaWQ7XHJcbiAgICAgICAgbGF5ZXIub3B0aW9ucy53b3Jrc3BhY2UgPSBPYmplY3QuYXNzaWduKHt9LCBsYXllci5vcHRpb25zLndvcmtzcGFjZSwge1xyXG4gICAgICAgICAgd2tzQ29uZmlnXHJcbiAgICAgICAgfSBhcyBHZW9Xb3Jrc3BhY2VPcHRpb25zKTtcclxuXHJcbiAgICAgICAgZGVsZXRlIGRhdGFTb3VyY2Uub3B0aW9ucy5kb3dubG9hZDtcclxuICAgICAgICByZXR1cm4gd2tzO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gd2tzO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVGZWF0dXJlU3RvcmUobGF5ZXI6IFZlY3RvckxheWVyLCBtYXA6IElnb01hcCk6IEZlYXR1cmVTdG9yZSB7XHJcbiAgICBjb25zdCBzdG9yZSA9IG5ldyBGZWF0dXJlU3RvcmUoW10sIHsgbWFwIH0pO1xyXG4gICAgc3RvcmUuYmluZExheWVyKGxheWVyKTtcclxuXHJcbiAgICBjb25zdCBsb2FkaW5nU3RyYXRlZ3kgPSBuZXcgRmVhdHVyZVN0b3JlTG9hZGluZ0xheWVyU3RyYXRlZ3koe30pO1xyXG4gICAgY29uc3QgaW5NYXBFeHRlbnRTdHJhdGVneSA9IG5ldyBGZWF0dXJlU3RvcmVJbk1hcEV4dGVudFN0cmF0ZWd5KHt9KTtcclxuICAgIGNvbnN0IGluTWFwUmVzb2x1dGlvblN0cmF0ZWd5ID0gbmV3IEZlYXR1cmVTdG9yZUluTWFwUmVzb2x1dGlvblN0cmF0ZWd5KHt9KTtcclxuICAgIGNvbnN0IHNlbGVjdGVkUmVjb3JkU3RyYXRlZ3kgPSBuZXcgRW50aXR5U3RvcmVGaWx0ZXJTZWxlY3Rpb25TdHJhdGVneSh7fSk7XHJcbiAgICBjb25zdCBzZWxlY3Rpb25TdHJhdGVneSA9IG5ldyBGZWF0dXJlU3RvcmVTZWxlY3Rpb25TdHJhdGVneSh7XHJcbiAgICAgIGxheWVyOiBuZXcgVmVjdG9yTGF5ZXIoe1xyXG4gICAgICAgIHpJbmRleDogMzAwLFxyXG4gICAgICAgIHNvdXJjZTogbmV3IEZlYXR1cmVEYXRhU291cmNlKCksXHJcbiAgICAgICAgc3R5bGU6IHVuZGVmaW5lZCxcclxuICAgICAgICBzaG93SW5MYXllckxpc3Q6IGZhbHNlLFxyXG4gICAgICAgIGV4cG9ydGFibGU6IGZhbHNlLFxyXG4gICAgICAgIGJyb3dzYWJsZTogZmFsc2VcclxuICAgICAgfSksXHJcbiAgICAgIG1hcCxcclxuICAgICAgaGl0VG9sZXJhbmNlOiAxNSxcclxuICAgICAgbW90aW9uOiB0aGlzLnpvb21BdXRvID8gRmVhdHVyZU1vdGlvbi5EZWZhdWx0IDogRmVhdHVyZU1vdGlvbi5Ob25lLFxyXG4gICAgICBtYW55OiB0cnVlLFxyXG4gICAgICBkcmFnQm94OiB0cnVlXHJcbiAgICB9KTtcclxuICAgIHN0b3JlLmFkZFN0cmF0ZWd5KGxvYWRpbmdTdHJhdGVneSwgdHJ1ZSk7XHJcbiAgICBzdG9yZS5hZGRTdHJhdGVneShpbk1hcEV4dGVudFN0cmF0ZWd5LCB0cnVlKTtcclxuICAgIHN0b3JlLmFkZFN0cmF0ZWd5KGluTWFwUmVzb2x1dGlvblN0cmF0ZWd5LCB0cnVlKTtcclxuICAgIHN0b3JlLmFkZFN0cmF0ZWd5KHNlbGVjdGlvblN0cmF0ZWd5LCB0cnVlKTtcclxuICAgIHN0b3JlLmFkZFN0cmF0ZWd5KHNlbGVjdGVkUmVjb3JkU3RyYXRlZ3ksIGZhbHNlKTtcclxuICAgIHN0b3JlLmFkZFN0cmF0ZWd5KGNyZWF0ZUZpbHRlckluTWFwRXh0ZW50T3JSZXNvbHV0aW9uU3RyYXRlZ3koKSwgdHJ1ZSk7XHJcbiAgICByZXR1cm4gc3RvcmU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZVRhYmxlVGVtcGxhdGUoXHJcbiAgICB3b3Jrc3BhY2U6IEVkaXRpb25Xb3Jrc3BhY2UsXHJcbiAgICBsYXllcjogVmVjdG9yTGF5ZXJcclxuICApOiBFbnRpdHlUYWJsZVRlbXBsYXRlIHtcclxuICAgIGNvbnN0IGZpZWxkcyA9IGxheWVyLmRhdGFTb3VyY2Uub3B0aW9ucy5zb3VyY2VGaWVsZHMgfHwgW107XHJcblxyXG4gICAgY29uc3QgcmVsYXRpb25zID0gbGF5ZXIuZGF0YVNvdXJjZS5vcHRpb25zLnJlbGF0aW9ucyB8fCBbXTtcclxuXHJcbiAgICBsZXQgcmVuZGVyZXJUeXBlID0gRW50aXR5VGFibGVDb2x1bW5SZW5kZXJlci5VbnNhbml0aXplZEhUTUw7XHJcbiAgICBsZXQgYnV0dG9ucyA9IFtdO1xyXG4gICAgbGV0IGNvbHVtbnMgPSBbXTtcclxuICAgIGxldCByZWxhdGlvbnNDb2x1bW4gPSBbXTtcclxuXHJcbiAgICBidXR0b25zID0gW1xyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ2VkaXRpb24nLFxyXG4gICAgICAgIHRpdGxlOiB1bmRlZmluZWQsXHJcbiAgICAgICAgcmVuZGVyZXI6IEVudGl0eVRhYmxlQ29sdW1uUmVuZGVyZXIuQnV0dG9uR3JvdXAsXHJcbiAgICAgICAgcHJpbWFyeTogZmFsc2UsXHJcbiAgICAgICAgdmFsdWVBY2Nlc3NvcjogKCkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIGVkaXRNb2RlOiBmYWxzZSxcclxuICAgICAgICAgICAgICBpY29uOiAncGVuY2lsJyxcclxuICAgICAgICAgICAgICBjb2xvcjogJ3ByaW1hcnknLFxyXG4gICAgICAgICAgICAgIGRpc2FibGVkOlxyXG4gICAgICAgICAgICAgICAgbGF5ZXIuZGF0YVNvdXJjZS5vcHRpb25zLmVkaXRpb24ubW9kaWZ5QnV0dG9uID09PSBmYWxzZVxyXG4gICAgICAgICAgICAgICAgICA/IHRydWVcclxuICAgICAgICAgICAgICAgICAgOiBmYWxzZSxcclxuICAgICAgICAgICAgICBjbGljazogKGZlYXR1cmUpID0+IHtcclxuICAgICAgICAgICAgICAgIHdvcmtzcGFjZS5lZGl0RmVhdHVyZShmZWF0dXJlLCB3b3Jrc3BhY2UpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIGVkaXRNb2RlOiBmYWxzZSxcclxuICAgICAgICAgICAgICBpY29uOiAnZGVsZXRlJyxcclxuICAgICAgICAgICAgICBjb2xvcjogJ3dhcm4nLFxyXG4gICAgICAgICAgICAgIGRpc2FibGVkOlxyXG4gICAgICAgICAgICAgICAgbGF5ZXIuZGF0YVNvdXJjZS5vcHRpb25zLmVkaXRpb24uZGVsZXRlQnV0dG9uID09PSBmYWxzZVxyXG4gICAgICAgICAgICAgICAgICA/IHRydWVcclxuICAgICAgICAgICAgICAgICAgOiBmYWxzZSxcclxuICAgICAgICAgICAgICBjbGljazogKGZlYXR1cmUpID0+IHtcclxuICAgICAgICAgICAgICAgIHdvcmtzcGFjZS5kZWxldGVGZWF0dXJlKGZlYXR1cmUsIHdvcmtzcGFjZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgZWRpdE1vZGU6IHRydWUsXHJcbiAgICAgICAgICAgICAgaWNvbjogJ2NoZWNrJyxcclxuICAgICAgICAgICAgICBjb2xvcjogJ3ByaW1hcnknLFxyXG4gICAgICAgICAgICAgIGRpc2FibGVkOiB0aGlzLmxvYWRpbmcsXHJcbiAgICAgICAgICAgICAgY2xpY2s6IChmZWF0dXJlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNhdmVGZWF0dXJlKGZlYXR1cmUsIHdvcmtzcGFjZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgZWRpdE1vZGU6IHRydWUsXHJcbiAgICAgICAgICAgICAgaWNvbjogJ2FscGhhLXgnLFxyXG4gICAgICAgICAgICAgIGNvbG9yOiAncHJpbWFyeScsXHJcbiAgICAgICAgICAgICAgZGlzYWJsZWQ6IHRoaXMubG9hZGluZyxcclxuICAgICAgICAgICAgICBjbGljazogKGZlYXR1cmUpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2FuY2VsRWRpdCh3b3Jrc3BhY2UsIGZlYXR1cmUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgXSBhcyBFbnRpdHlUYWJsZUJ1dHRvbltdO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgXTtcclxuXHJcbiAgICBpZiAoZmllbGRzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB3b3Jrc3BhY2UuZW50aXR5U3RvcmUuZW50aXRpZXMkXHJcbiAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICBza2lwV2hpbGUoKHZhbCkgPT4gdmFsLmxlbmd0aCA9PT0gMCksXHJcbiAgICAgICAgICB0YWtlKDEpXHJcbiAgICAgICAgKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKGVudGl0aWVzKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBvbCA9IChlbnRpdGllc1swXSBhcyBGZWF0dXJlKS5vbCBhcyBvbEZlYXR1cmU8T2xHZW9tZXRyeT47XHJcbiAgICAgICAgICBjb25zdCBjb2x1bW5zRnJvbUZlYXR1cmVzID0gb2xcclxuICAgICAgICAgICAgLmdldEtleXMoKVxyXG4gICAgICAgICAgICAuZmlsdGVyKFxyXG4gICAgICAgICAgICAgIChjb2wpID0+XHJcbiAgICAgICAgICAgICAgICAhY29sLnN0YXJ0c1dpdGgoJ18nKSAmJlxyXG4gICAgICAgICAgICAgICAgY29sICE9PSAnZ2VvbWV0cnknICYmXHJcbiAgICAgICAgICAgICAgICBjb2wgIT09IG9sLmdldEdlb21ldHJ5TmFtZSgpICYmXHJcbiAgICAgICAgICAgICAgICAhY29sLm1hdGNoKC9ib3VuZGVkYnkvZ2kpXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLm1hcCgoa2V5KSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IGBwcm9wZXJ0aWVzLiR7a2V5fWAsXHJcbiAgICAgICAgICAgICAgICB0aXRsZToga2V5LFxyXG4gICAgICAgICAgICAgICAgcmVuZGVyZXI6IHJlbmRlcmVyVHlwZVxyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgd29ya3NwYWNlLm1ldGEudGFibGVUZW1wbGF0ZSA9IHtcclxuICAgICAgICAgICAgc2VsZWN0aW9uOiBmYWxzZSxcclxuICAgICAgICAgICAgc29ydDogdHJ1ZSxcclxuICAgICAgICAgICAgY29sdW1uczogY29sdW1uc0Zyb21GZWF0dXJlc1xyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbHVtbnMgPSBmaWVsZHMubWFwKChmaWVsZDogU291cmNlRmllbGRzT3B0aW9uc1BhcmFtcykgPT4ge1xyXG4gICAgICBsZXQgY29sdW1uID0ge1xyXG4gICAgICAgIG5hbWU6IGBwcm9wZXJ0aWVzLiR7ZmllbGQubmFtZX1gLFxyXG4gICAgICAgIHRpdGxlOiBmaWVsZC5hbGlhcyA/IGZpZWxkLmFsaWFzIDogZmllbGQubmFtZSxcclxuICAgICAgICByZW5kZXJlcjogcmVuZGVyZXJUeXBlLFxyXG4gICAgICAgIHZhbHVlQWNjZXNzb3I6IHVuZGVmaW5lZCxcclxuICAgICAgICBjZWxsQ2xhc3NGdW5jOiAoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBjZWxsQ2xhc3MgPSB7fTtcclxuICAgICAgICAgIGlmIChmaWVsZC50eXBlKSB7XHJcbiAgICAgICAgICAgIGNlbGxDbGFzc1tgY2xhc3NfJHtmaWVsZC50eXBlfWBdID0gdHJ1ZTtcclxuICAgICAgICAgICAgcmV0dXJuIGNlbGxDbGFzcztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHByaW1hcnk6IGZpZWxkLnByaW1hcnkgPT09IHRydWUgPyB0cnVlIDogZmFsc2UsXHJcbiAgICAgICAgdmlzaWJsZTogZmllbGQudmlzaWJsZSxcclxuICAgICAgICB2YWxpZGF0aW9uOiBmaWVsZC52YWxpZGF0aW9uLFxyXG4gICAgICAgIGxpbmtDb2x1bW5Gb3JjZTogZmllbGQubGlua0NvbHVtbkZvcmNlLFxyXG4gICAgICAgIHR5cGU6IGZpZWxkLnR5cGUsXHJcbiAgICAgICAgZG9tYWluVmFsdWVzOiB1bmRlZmluZWQsXHJcbiAgICAgICAgcmVsYXRpb246IHVuZGVmaW5lZCxcclxuICAgICAgICBtdWx0aXBsZTogZmllbGQubXVsdGlwbGUsXHJcbiAgICAgICAgc3RlcDogZmllbGQuc3RlcCxcclxuICAgICAgICB0b29sdGlwOiBmaWVsZC50b29sdGlwXHJcbiAgICAgIH07XHJcblxyXG4gICAgICBpZiAoZmllbGQudHlwZSA9PT0gJ2xpc3QnIHx8IGZpZWxkLnR5cGUgPT09ICdhdXRvY29tcGxldGUnKSB7XHJcbiAgICAgICAgdGhpcy5nZXREb21haW5WYWx1ZXMoZmllbGQucmVsYXRpb24pLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICBjb2x1bW4uZG9tYWluVmFsdWVzID0gcmVzdWx0O1xyXG4gICAgICAgICAgY29sdW1uLnJlbGF0aW9uID0gZmllbGQucmVsYXRpb247XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGNvbHVtbjtcclxuICAgIH0pO1xyXG5cclxuICAgIHJlbGF0aW9uc0NvbHVtbiA9IHJlbGF0aW9ucy5tYXAoKHJlbGF0aW9uOiBSZWxhdGlvbk9wdGlvbnMpID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBuYW1lOiBgcHJvcGVydGllcy4ke3JlbGF0aW9uLm5hbWV9YCxcclxuICAgICAgICB0aXRsZTogcmVsYXRpb24uYWxpYXMgPyByZWxhdGlvbi5hbGlhcyA6IHJlbGF0aW9uLm5hbWUsXHJcbiAgICAgICAgcmVuZGVyZXI6IEVudGl0eVRhYmxlQ29sdW1uUmVuZGVyZXIuSWNvbixcclxuICAgICAgICBpY29uOiByZWxhdGlvbi5pY29uLFxyXG4gICAgICAgIHBhcmVudDogcmVsYXRpb24ucGFyZW50LFxyXG4gICAgICAgIHR5cGU6ICdyZWxhdGlvbicsXHJcbiAgICAgICAgdG9vbHRpcDogcmVsYXRpb24udG9vbHRpcCxcclxuICAgICAgICBvbkNsaWNrOiAoKSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5hZGRpbmckLmdldFZhbHVlKCkgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgIHRoaXMud3MkLm5leHQocmVsYXRpb24udGl0bGUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY2VsbENsYXNzRnVuYzogKCkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHsgY2xhc3NfaWNvbjogdHJ1ZSB9O1xyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbHVtbnMucHVzaCguLi5yZWxhdGlvbnNDb2x1bW4pO1xyXG4gICAgY29sdW1ucy5wdXNoKC4uLmJ1dHRvbnMpO1xyXG5cclxuICAgIHdvcmtzcGFjZS5tZXRhLnRhYmxlVGVtcGxhdGUgPSB7XHJcbiAgICAgIHNlbGVjdGlvbjogZmFsc2UsXHJcbiAgICAgIHNvcnQ6IHRydWUsXHJcbiAgICAgIGNvbHVtbnNcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2F2ZUZlYXR1cmUoZmVhdHVyZSwgd29ya3NwYWNlOiBFZGl0aW9uV29ya3NwYWNlKSB7XHJcbiAgICBpZiAoIXRoaXMudmFsaWRhdGVGZWF0dXJlKGZlYXR1cmUsIHdvcmtzcGFjZSkpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2FuaXRpemVQYXJhbWV0ZXIoZmVhdHVyZSwgd29ya3NwYWNlKTtcclxuXHJcbiAgICBjb25zdCBiYXNlVXJsID0gd29ya3NwYWNlLmxheWVyLmRhdGFTb3VyY2Uub3B0aW9ucy5lZGl0aW9uLmJhc2VVcmw7XHJcbiAgICBsZXQgdXJsID0gdGhpcy5jb25maWdTZXJ2aWNlLmdldENvbmZpZygnZWRpdGlvbi51cmwnKTtcclxuXHJcbiAgICBpZiAoIXVybCkge1xyXG4gICAgICB1cmwgPSBiYXNlVXJsO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdXJsICs9IGJhc2VVcmwgPyBiYXNlVXJsIDogJyc7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGZlYXR1cmUubmV3RmVhdHVyZSkge1xyXG4gICAgICB1cmwgKz0gd29ya3NwYWNlLmxheWVyLmRhdGFTb3VyY2Uub3B0aW9ucy5lZGl0aW9uLmFkZFVybDtcclxuXHJcbiAgICAgIGNvbnN0IGFkZEhlYWRlcnMgPSB3b3Jrc3BhY2UubGF5ZXIuZGF0YVNvdXJjZS5vcHRpb25zLmVkaXRpb24uYWRkSGVhZGVycztcclxuICAgICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycyhhZGRIZWFkZXJzKTtcclxuXHJcbiAgICAgIHRoaXMuYWRkRmVhdHVyZShmZWF0dXJlLCB3b3Jrc3BhY2UsIHVybCwgaGVhZGVycyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgd29ya3NwYWNlLmxheWVyLmRhdGFTb3VyY2Uub3B0aW9ucy5lZGl0aW9uLm1vZGlmeVByb3RvY29sICE9PSAncG9zdCdcclxuICAgICAgKSB7XHJcbiAgICAgICAgdXJsICs9XHJcbiAgICAgICAgICAnPycgK1xyXG4gICAgICAgICAgd29ya3NwYWNlLmxheWVyLmRhdGFTb3VyY2Uub3B0aW9ucy5lZGl0aW9uLm1vZGlmeVVybCArXHJcbiAgICAgICAgICBmZWF0dXJlLmlka2V5O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHVybCArPSB3b3Jrc3BhY2UubGF5ZXIuZGF0YVNvdXJjZS5vcHRpb25zLmVkaXRpb24ubW9kaWZ5VXJsO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBwcm90b2NvbGUgPVxyXG4gICAgICAgIHdvcmtzcGFjZS5sYXllci5kYXRhU291cmNlLm9wdGlvbnMuZWRpdGlvbi5tb2RpZnlQcm90b2NvbDtcclxuICAgICAgY29uc3QgbW9kaWZ5SGVhZGVycyA9XHJcbiAgICAgICAgd29ya3NwYWNlLmxheWVyLmRhdGFTb3VyY2Uub3B0aW9ucy5lZGl0aW9uLm1vZGlmeUhlYWRlcnM7XHJcbiAgICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMobW9kaWZ5SGVhZGVycyk7XHJcblxyXG4gICAgICB0aGlzLm1vZGlmeUZlYXR1cmUoZmVhdHVyZSwgd29ya3NwYWNlLCB1cmwsIGhlYWRlcnMsIHByb3RvY29sZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWRkRmVhdHVyZShcclxuICAgIGZlYXR1cmUsXHJcbiAgICB3b3Jrc3BhY2U6IEVkaXRpb25Xb3Jrc3BhY2UsXHJcbiAgICB1cmw6IHN0cmluZyxcclxuICAgIGhlYWRlcnM6IHsgW2tleTogc3RyaW5nXTogYW55IH1cclxuICApIHtcclxuICAgIGlmICh3b3Jrc3BhY2UubGF5ZXIuZGF0YVNvdXJjZS5vcHRpb25zLmVkaXRpb24uaGFzR2VvbWV0cnkpIHtcclxuICAgICAgY29uc3QgcHJvakRlc3QgPVxyXG4gICAgICAgIHdvcmtzcGFjZS5sYXllci5vcHRpb25zLnNvdXJjZU9wdGlvbnMuZWRpdGlvbi5nZW9tRGF0YWJhc2VQcm9qO1xyXG4gICAgICBmZWF0dXJlLnByb3BlcnRpZXNbXHJcbiAgICAgICAgd29ya3NwYWNlLmxheWVyLmRhdGFTb3VyY2Uub3B0aW9ucy5wYXJhbXMuZmllbGROYW1lR2VvbWV0cnlcclxuICAgICAgXSA9XHJcbiAgICAgICAgJ1NSSUQ9JyArXHJcbiAgICAgICAgcHJvakRlc3QucmVwbGFjZSgnRVBTRzonLCAnJykgK1xyXG4gICAgICAgICc7JyArXHJcbiAgICAgICAgdGhpcy53a3RGb3JtYXQud3JpdGVHZW9tZXRyeShcclxuICAgICAgICAgIHRoaXMuZ2VvSnNvbkZvcm1hdFxyXG4gICAgICAgICAgICAucmVhZEZlYXR1cmUoZmVhdHVyZS5nZW9tZXRyeSlcclxuICAgICAgICAgICAgLmdldEdlb21ldHJ5KClcclxuICAgICAgICAgICAgLnRyYW5zZm9ybSgnRVBTRzo0MzI2JywgcHJvakRlc3QpLFxyXG4gICAgICAgICAgeyBkYXRhUHJvamVjdGlvbjogcHJvakRlc3QgfVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBmZWF0dXJlLnByb3BlcnRpZXMpIHtcclxuICAgICAgZm9yIChjb25zdCBzZiBvZiB3b3Jrc3BhY2UubGF5ZXIuZGF0YVNvdXJjZS5vcHRpb25zLnNvdXJjZUZpZWxkcykge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIChzZi5uYW1lID09PSBwcm9wZXJ0eSAmJiBzZi52YWxpZGF0aW9uPy5yZWFkb25seSkgfHxcclxuICAgICAgICAgIChzZi5uYW1lID09PSBwcm9wZXJ0eSAmJiBzZi52YWxpZGF0aW9uPy5zZW5kID09PSBmYWxzZSlcclxuICAgICAgICApIHtcclxuICAgICAgICAgIGRlbGV0ZSBmZWF0dXJlLnByb3BlcnRpZXNbcHJvcGVydHldO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmh0dHBcclxuICAgICAgLnBvc3QoYCR7dXJsfWAsIGZlYXR1cmUucHJvcGVydGllcywgeyBoZWFkZXJzOiBoZWFkZXJzIH0pXHJcbiAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB3b3Jrc3BhY2UuZW50aXR5U3RvcmUuc3RhdGVWaWV3LmNsZWFyKCk7XHJcbiAgICAgICAgICB3b3Jrc3BhY2UuZGVsZXRlRHJhd2luZ3MoKTtcclxuICAgICAgICAgIHdvcmtzcGFjZS5lbnRpdHlTdG9yZS5kZWxldGUoZmVhdHVyZSk7XHJcblxyXG4gICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5zdWNjZXNzKCdpZ28uZ2VvLndvcmtzcGFjZS5hZGRTdWNjZXNzJyk7XHJcblxyXG4gICAgICAgICAgdGhpcy5yZWZyZXNoTWFwKHdvcmtzcGFjZS5sYXllciBhcyBWZWN0b3JMYXllciwgd29ya3NwYWNlLmxheWVyLm1hcCk7XHJcbiAgICAgICAgICB0aGlzLmFkZGluZyQubmV4dChmYWxzZSk7XHJcbiAgICAgICAgICB0aGlzLnJvd3NJbk1hcEV4dGVudENoZWNrQ29uZGl0aW9uJC5uZXh0KHRydWUpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIGVycm9yLmVycm9yLmNhdWdodCA9IHRydWU7XHJcbiAgICAgICAgICBjb25zdCBtZXNzYWdlcyA9IHdvcmtzcGFjZS5sYXllci5kYXRhU291cmNlLm9wdGlvbnMuZWRpdGlvbi5tZXNzYWdlcztcclxuICAgICAgICAgIGlmIChtZXNzYWdlcykge1xyXG4gICAgICAgICAgICBsZXQgdGV4dDtcclxuICAgICAgICAgICAgbWVzc2FnZXMuZm9yRWFjaCgobWVzc2FnZSkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGtleSA9IE9iamVjdC5rZXlzKG1lc3NhZ2UpWzBdO1xyXG4gICAgICAgICAgICAgIGlmIChlcnJvci5lcnJvci5tZXNzYWdlLmluY2x1ZGVzKGtleSkpIHtcclxuICAgICAgICAgICAgICAgIHRleHQgPSBtZXNzYWdlW2tleV07XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmVycm9yKHRleHQpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGlmICghdGV4dCkge1xyXG4gICAgICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuZXJyb3IoJ2lnby5nZW8ud29ya3NwYWNlLmFkZEVycm9yJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuZXJyb3IoJ2lnby5nZW8ud29ya3NwYWNlLmFkZEVycm9yJyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGRlbGV0ZUZlYXR1cmUod29ya3NwYWNlOiBFZGl0aW9uV29ya3NwYWNlLCB1cmw6IHN0cmluZykge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuaHR0cC5kZWxldGUoYCR7dXJsfWAsIHt9KS5zdWJzY3JpYmUoXHJcbiAgICAgICgpID0+IHtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnN1Y2Nlc3MoJ2lnby5nZW8ud29ya3NwYWNlLmRlbGV0ZVN1Y2Nlc3MnKTtcclxuXHJcbiAgICAgICAgdGhpcy5yZWZyZXNoTWFwKHdvcmtzcGFjZS5sYXllciBhcyBWZWN0b3JMYXllciwgd29ya3NwYWNlLmxheWVyLm1hcCk7XHJcbiAgICAgICAgZm9yIChjb25zdCByZWxhdGlvbiBvZiB3b3Jrc3BhY2UubGF5ZXIub3B0aW9ucy5zb3VyY2VPcHRpb25zXHJcbiAgICAgICAgICAucmVsYXRpb25zKSB7XHJcbiAgICAgICAgICB3b3Jrc3BhY2UubWFwLmxheWVycy5mb3JFYWNoKChsYXllcikgPT4ge1xyXG4gICAgICAgICAgICBpZiAobGF5ZXIudGl0bGUgPT09IHJlbGF0aW9uLnRpdGxlKSB7XHJcbiAgICAgICAgICAgICAgbGF5ZXIuZGF0YVNvdXJjZS5vbC5yZWZyZXNoKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgZXJyb3IuZXJyb3IuY2F1Z2h0ID0gdHJ1ZTtcclxuICAgICAgICBjb25zdCBtZXNzYWdlcyA9IHdvcmtzcGFjZS5sYXllci5kYXRhU291cmNlLm9wdGlvbnMuZWRpdGlvbi5tZXNzYWdlcztcclxuICAgICAgICBpZiAobWVzc2FnZXMpIHtcclxuICAgICAgICAgIGxldCB0ZXh0O1xyXG4gICAgICAgICAgbWVzc2FnZXMuZm9yRWFjaCgobWVzc2FnZSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBrZXkgPSBPYmplY3Qua2V5cyhtZXNzYWdlKVswXTtcclxuICAgICAgICAgICAgaWYgKGVycm9yLmVycm9yLm1lc3NhZ2UuaW5jbHVkZXMoa2V5KSkge1xyXG4gICAgICAgICAgICAgIHRleHQgPSBtZXNzYWdlW2tleV07XHJcbiAgICAgICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5lcnJvcih0ZXh0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBpZiAoIXRleHQpIHtcclxuICAgICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5lcnJvcignaWdvLmdlby53b3Jrc3BhY2UuYWRkRXJyb3InKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5lcnJvcignaWdvLmdlby53b3Jrc3BhY2UuYWRkRXJyb3InKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbW9kaWZ5RmVhdHVyZShcclxuICAgIGZlYXR1cmUsXHJcbiAgICB3b3Jrc3BhY2U6IEVkaXRpb25Xb3Jrc3BhY2UsXHJcbiAgICB1cmw6IHN0cmluZyxcclxuICAgIGhlYWRlcnM6IHsgW2tleTogc3RyaW5nXTogYW55IH0sXHJcbiAgICBwcm90b2NvbGUgPSAncGF0Y2gnXHJcbiAgKSB7XHJcbiAgICBpZiAod29ya3NwYWNlLmxheWVyLmRhdGFTb3VyY2Uub3B0aW9ucy5lZGl0aW9uLmhhc0dlb21ldHJ5KSB7XHJcbiAgICAgIGNvbnN0IHByb2pEZXN0ID1cclxuICAgICAgICB3b3Jrc3BhY2UubGF5ZXIub3B0aW9ucy5zb3VyY2VPcHRpb25zLmVkaXRpb24uZ2VvbURhdGFiYXNlUHJvajtcclxuICAgICAgLy8gUmVtb3ZlIDNlIGRpbWVuc2lvblxyXG4gICAgICBmZWF0dXJlLmdlb21ldHJ5LmNvb3JkaW5hdGVzID0gcmVtb3ZlWihmZWF0dXJlLmdlb21ldHJ5LmNvb3JkaW5hdGVzKTtcclxuICAgICAgZmVhdHVyZS5wcm9wZXJ0aWVzW1xyXG4gICAgICAgIHdvcmtzcGFjZS5sYXllci5kYXRhU291cmNlLm9wdGlvbnMucGFyYW1zLmZpZWxkTmFtZUdlb21ldHJ5XHJcbiAgICAgIF0gPVxyXG4gICAgICAgICdTUklEPScgK1xyXG4gICAgICAgIHByb2pEZXN0LnJlcGxhY2UoJ0VQU0c6JywgJycpICtcclxuICAgICAgICAnOycgK1xyXG4gICAgICAgIHRoaXMud2t0Rm9ybWF0LndyaXRlR2VvbWV0cnkoXHJcbiAgICAgICAgICB0aGlzLmdlb0pzb25Gb3JtYXRcclxuICAgICAgICAgICAgLnJlYWRGZWF0dXJlKGZlYXR1cmUuZ2VvbWV0cnkpXHJcbiAgICAgICAgICAgIC5nZXRHZW9tZXRyeSgpXHJcbiAgICAgICAgICAgIC50cmFuc2Zvcm0oJ0VQU0c6NDMyNicsIHByb2pEZXN0KSxcclxuICAgICAgICAgIHsgZGF0YVByb2plY3Rpb246IHByb2pEZXN0IH1cclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGZvciAoY29uc3QgcHJvcGVydHkgaW4gZmVhdHVyZS5wcm9wZXJ0aWVzKSB7XHJcbiAgICAgIGZvciAoY29uc3Qgc2Ygb2Ygd29ya3NwYWNlLmxheWVyLmRhdGFTb3VyY2Uub3B0aW9ucy5zb3VyY2VGaWVsZHMpIHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAoc2YubmFtZSA9PT0gcHJvcGVydHkgJiYgc2YudmFsaWRhdGlvbj8ucmVhZG9ubHkpIHx8XHJcbiAgICAgICAgICAoc2YubmFtZSA9PT0gcHJvcGVydHkgJiYgc2YudmFsaWRhdGlvbj8uc2VuZCA9PT0gZmFsc2UpIHx8XHJcbiAgICAgICAgICBwcm9wZXJ0eSA9PT0gJ2JvdW5kZWRCeSdcclxuICAgICAgICApIHtcclxuICAgICAgICAgIGRlbGV0ZSBmZWF0dXJlLnByb3BlcnRpZXNbcHJvcGVydHldO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmh0dHBbcHJvdG9jb2xlXShgJHt1cmx9YCwgZmVhdHVyZS5wcm9wZXJ0aWVzLCB7XHJcbiAgICAgIGhlYWRlcnM6IGhlYWRlcnNcclxuICAgIH0pLnN1YnNjcmliZShcclxuICAgICAgKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY2FuY2VsRWRpdCh3b3Jrc3BhY2UsIGZlYXR1cmUsIHRydWUpO1xyXG5cclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnN1Y2Nlc3MoJ2lnby5nZW8ud29ya3NwYWNlLm1vZGlmeVN1Y2Nlc3MnKTtcclxuXHJcbiAgICAgICAgdGhpcy5yZWZyZXNoTWFwKHdvcmtzcGFjZS5sYXllciBhcyBWZWN0b3JMYXllciwgd29ya3NwYWNlLmxheWVyLm1hcCk7XHJcblxyXG4gICAgICAgIGxldCByZWxhdGlvbkxheWVycyA9IFtdO1xyXG4gICAgICAgIGZvciAoY29uc3QgcmVsYXRpb24gb2Ygd29ya3NwYWNlLmxheWVyLm9wdGlvbnMuc291cmNlT3B0aW9uc1xyXG4gICAgICAgICAgLnJlbGF0aW9ucykge1xyXG4gICAgICAgICAgd29ya3NwYWNlLm1hcC5sYXllcnMuZm9yRWFjaCgobGF5ZXIpID0+IHtcclxuICAgICAgICAgICAgaWYgKGxheWVyLnRpdGxlID09PSByZWxhdGlvbi50aXRsZSkge1xyXG4gICAgICAgICAgICAgIHJlbGF0aW9uTGF5ZXJzLnB1c2gobGF5ZXIpO1xyXG4gICAgICAgICAgICAgIGxheWVyLmRhdGFTb3VyY2Uub2wucmVmcmVzaCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5yZWxhdGlvbkxheWVycyQubmV4dChyZWxhdGlvbkxheWVycyk7XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIGVycm9yLmVycm9yLmNhdWdodCA9IHRydWU7XHJcbiAgICAgICAgY29uc3QgbWVzc2FnZXMgPSB3b3Jrc3BhY2UubGF5ZXIuZGF0YVNvdXJjZS5vcHRpb25zLmVkaXRpb24ubWVzc2FnZXM7XHJcbiAgICAgICAgaWYgKG1lc3NhZ2VzKSB7XHJcbiAgICAgICAgICBsZXQgdGV4dDtcclxuICAgICAgICAgIG1lc3NhZ2VzLmZvckVhY2goKG1lc3NhZ2UpID0+IHtcclxuICAgICAgICAgICAgY29uc3Qga2V5ID0gT2JqZWN0LmtleXMobWVzc2FnZSlbMF07XHJcbiAgICAgICAgICAgIGlmIChlcnJvci5lcnJvci5tZXNzYWdlLmluY2x1ZGVzKGtleSkpIHtcclxuICAgICAgICAgICAgICB0ZXh0ID0gbWVzc2FnZVtrZXldO1xyXG4gICAgICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuZXJyb3IodGV4dCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgaWYgKCF0ZXh0KSB7XHJcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuZXJyb3IoJ2lnby5nZW8ud29ya3NwYWNlLmFkZEVycm9yJyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuZXJyb3IoJ2lnby5nZW8ud29ya3NwYWNlLmFkZEVycm9yJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgY2FuY2VsRWRpdCh3b3Jrc3BhY2U6IEVkaXRpb25Xb3Jrc3BhY2UsIGZlYXR1cmUsIGZyb21TYXZlID0gZmFsc2UpIHtcclxuICAgIGZlYXR1cmUuZWRpdGlvbiA9IGZhbHNlO1xyXG4gICAgdGhpcy5hZGRpbmckLm5leHQoZmFsc2UpO1xyXG4gICAgd29ya3NwYWNlLmRlbGV0ZURyYXdpbmdzKCk7XHJcbiAgICB3b3Jrc3BhY2UuZW50aXR5U3RvcmUuc3RhdGVWaWV3LmNsZWFyKCk7XHJcblxyXG4gICAgaWYgKGZlYXR1cmUubmV3RmVhdHVyZSkge1xyXG4gICAgICB3b3Jrc3BhY2UuZW50aXR5U3RvcmUuZGVsZXRlKGZlYXR1cmUpO1xyXG4gICAgICB3b3Jrc3BhY2UuZGVhY3RpdmF0ZURyYXdDb250cm9sKCk7XHJcblxyXG4gICAgICB0aGlzLnJvd3NJbk1hcEV4dGVudENoZWNrQ29uZGl0aW9uJC5uZXh0KHRydWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKCFmcm9tU2F2ZSkge1xyXG4gICAgICAgIGZlYXR1cmUucHJvcGVydGllcyA9IGZlYXR1cmUub3JpZ2luYWxfcHJvcGVydGllcztcclxuICAgICAgICBmZWF0dXJlLmdlb21ldHJ5ID0gZmVhdHVyZS5vcmlnaW5hbF9nZW9tZXRyeTtcclxuICAgICAgfVxyXG4gICAgICBkZWxldGUgZmVhdHVyZS5vcmlnaW5hbF9wcm9wZXJ0aWVzO1xyXG4gICAgICBkZWxldGUgZmVhdHVyZS5vcmlnaW5hbF9nZW9tZXRyeTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldERvbWFpblZhbHVlcyhyZWxhdGlvbjogUmVsYXRpb25PcHRpb25zKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGxldCB1cmwgPSByZWxhdGlvbi51cmw7XHJcbiAgICBpZiAoIXVybCkge1xyXG4gICAgICB1cmwgPSB0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCdlZGl0aW9uLnVybCcpXHJcbiAgICAgICAgPyB0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCdlZGl0aW9uLnVybCcpICsgcmVsYXRpb24udGFibGVcclxuICAgICAgICA6IHJlbGF0aW9uLnRhYmxlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4odXJsKS5waXBlKFxyXG4gICAgICBtYXAoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgIH0pLFxyXG4gICAgICBjYXRjaEVycm9yKChlcnI6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgZXJyLmVycm9yLmNhdWdodCA9IHRydWU7XHJcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAqIFJlZnJlc2ggYm90aCB3bXMgYW5kIHdmcyBsYXllclxyXG4gICAqIEEgbmV3IHdmcyBsb2FkZXIgaXMgdXNlZCB0byBlbnN1cmUgY2FjaGUgaXMgbm90IHJldHJpZXZpbmcgb2xkIGRhdGFcclxuICAgKiBXTVMgcGFyYW1zIGFyZSB1cGRhdGVkIHRvIGVuc3VyZSBsYXllciBpcyBjb3JyZWN0bHkgcmVmcmVzaGVkXHJcbiAgICovXHJcbiAgcmVmcmVzaE1hcChsYXllcjogVmVjdG9yTGF5ZXIsIG1hcDogTWFwQmFzZSkge1xyXG4gICAgY29uc3Qgd2ZzT2xMYXllciA9IGxheWVyLmRhdGFTb3VyY2Uub2w7XHJcbiAgICBjb25zdCBsb2FkZXIgPSAoZXh0ZW50LCByZXNvbHV0aW9uLCBwcm9qLCBzdWNjZXNzLCBmYWlsdXJlKSA9PiB7XHJcbiAgICAgIGxheWVyLmN1c3RvbVdGU0xvYWRlcihcclxuICAgICAgICBsYXllci5vbC5nZXRTb3VyY2UoKSxcclxuICAgICAgICBsYXllci5vcHRpb25zLnNvdXJjZU9wdGlvbnMsXHJcbiAgICAgICAgdGhpcy5hdXRoSW50ZXJjZXB0b3IsXHJcbiAgICAgICAgZXh0ZW50LFxyXG4gICAgICAgIHJlc29sdXRpb24sXHJcbiAgICAgICAgcHJvaixcclxuICAgICAgICBzdWNjZXNzLFxyXG4gICAgICAgIGZhaWx1cmUsXHJcbiAgICAgICAgdHJ1ZVxyXG4gICAgICApO1xyXG4gICAgfTtcclxuICAgIHdmc09sTGF5ZXIuc2V0TG9hZGVyKGxvYWRlcik7XHJcbiAgICB3ZnNPbExheWVyLnJlZnJlc2goKTtcclxuXHJcbiAgICBmb3IgKGNvbnN0IGxheSBvZiBtYXAubGF5ZXJzKSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBsYXkuaWQgIT09IGxheWVyLmlkICYmXHJcbiAgICAgICAgbGF5Lm9wdGlvbnMubGlua2VkTGF5ZXJzPy5saW5rSWQuaW5jbHVkZXMoXHJcbiAgICAgICAgICBsYXllci5pZC5zdWJzdHIoMCwgbGF5ZXIuaWQuaW5kZXhPZignLicpIC0gMSlcclxuICAgICAgICApICYmXHJcbiAgICAgICAgbGF5Lm9wdGlvbnMubGlua2VkTGF5ZXJzPy5saW5rSWQuaW5jbHVkZXMoJ1dtc1dvcmtzcGFjZVRhYmxlU3JjJylcclxuICAgICAgKSB7XHJcbiAgICAgICAgY29uc3Qgd21zT2xMYXllciA9IGxheS5kYXRhU291cmNlLm9sIGFzIG9sU291cmNlSW1hZ2VXTVM7XHJcbiAgICAgICAgbGV0IHBhcmFtcyA9IHdtc09sTGF5ZXIuZ2V0UGFyYW1zKCk7XHJcbiAgICAgICAgcGFyYW1zLl90ID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgd21zT2xMYXllci51cGRhdGVQYXJhbXMocGFyYW1zKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGVGZWF0dXJlKGZlYXR1cmUsIHdvcmtzcGFjZTogRWRpdGlvbldvcmtzcGFjZSkge1xyXG4gICAgbGV0IG1lc3NhZ2U7XHJcbiAgICBsZXQga2V5O1xyXG4gICAgbGV0IHZhbGlkID0gdHJ1ZTtcclxuICAgIHdvcmtzcGFjZS5tZXRhLnRhYmxlVGVtcGxhdGUuY29sdW1ucy5mb3JFYWNoKChjb2x1bW4pID0+IHtcclxuICAgICAgaWYgKGNvbHVtbi5oYXNPd25Qcm9wZXJ0eSgndmFsaWRhdGlvbicpICYmIGNvbHVtbi52YWxpZGF0aW9uKSB7XHJcbiAgICAgICAga2V5ID0gZ2V0Q29sdW1uS2V5V2l0aG91dFByb3BlcnRpZXNUYWcoY29sdW1uLm5hbWUpO1xyXG4gICAgICAgIE9iamVjdC5rZXlzKGNvbHVtbi52YWxpZGF0aW9uKS5mb3JFYWNoKCh0eXBlKSA9PiB7XHJcbiAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgICAgICAgY2FzZSAnbWFuZGF0b3J5Jzoge1xyXG4gICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgIGNvbHVtbi52YWxpZGF0aW9uW3R5cGVdICYmXHJcbiAgICAgICAgICAgICAgICAoIWZlYXR1cmUucHJvcGVydGllcy5oYXNPd25Qcm9wZXJ0eShrZXkpIHx8XHJcbiAgICAgICAgICAgICAgICAgICFmZWF0dXJlLnByb3BlcnRpZXNba2V5XSlcclxuICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgIHZhbGlkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmVycm9yKFxyXG4gICAgICAgICAgICAgICAgICAnaWdvLmdlby5mb3JtVmFsaWRhdGlvbi5tYW5kYXRvcnknLFxyXG4gICAgICAgICAgICAgICAgICB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZCxcclxuICAgICAgICAgICAgICAgICAgeyBjb2x1bW46IGNvbHVtbi50aXRsZSB9XHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXNlICdtaW5WYWx1ZSc6IHtcclxuICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICBmZWF0dXJlLnByb3BlcnRpZXMuaGFzT3duUHJvcGVydHkoa2V5KSAmJlxyXG4gICAgICAgICAgICAgICAgZmVhdHVyZS5wcm9wZXJ0aWVzW2tleV0gJiZcclxuICAgICAgICAgICAgICAgIGZlYXR1cmUucHJvcGVydGllc1trZXldIDwgY29sdW1uLnZhbGlkYXRpb25bdHlwZV1cclxuICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgIHZhbGlkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmVycm9yKFxyXG4gICAgICAgICAgICAgICAgICAnaWdvLmdlby5mb3JtVmFsaWRhdGlvbi5taW5WYWx1ZScsXHJcbiAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZCxcclxuICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uOiBjb2x1bW4udGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGNvbHVtbi52YWxpZGF0aW9uW3R5cGVdXHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhc2UgJ21heFZhbHVlJzoge1xyXG4gICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgIGZlYXR1cmUucHJvcGVydGllcy5oYXNPd25Qcm9wZXJ0eShrZXkpICYmXHJcbiAgICAgICAgICAgICAgICBmZWF0dXJlLnByb3BlcnRpZXNba2V5XSAmJlxyXG4gICAgICAgICAgICAgICAgZmVhdHVyZS5wcm9wZXJ0aWVzW2tleV0gPiBjb2x1bW4udmFsaWRhdGlvblt0eXBlXVxyXG4gICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgdmFsaWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuZXJyb3IoXHJcbiAgICAgICAgICAgICAgICAgICdpZ28uZ2VvLmZvcm1WYWxpZGF0aW9uLm1heFZhbHVlJyxcclxuICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICAgICAgICB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBjb2x1bW46IGNvbHVtbi50aXRsZSxcclxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogY29sdW1uLnZhbGlkYXRpb25bdHlwZV1cclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2FzZSAnbWluTGVuZ3RoJzoge1xyXG4gICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgIGZlYXR1cmUucHJvcGVydGllcy5oYXNPd25Qcm9wZXJ0eShrZXkpICYmXHJcbiAgICAgICAgICAgICAgICBmZWF0dXJlLnByb3BlcnRpZXNba2V5XSAmJlxyXG4gICAgICAgICAgICAgICAgZmVhdHVyZS5wcm9wZXJ0aWVzW2tleV0ubGVuZ3RoIDwgY29sdW1uLnZhbGlkYXRpb25bdHlwZV1cclxuICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgIHZhbGlkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmVycm9yKFxyXG4gICAgICAgICAgICAgICAgICAnaWdvLmdlby5mb3JtVmFsaWRhdGlvbi5taW5MZW5ndGgnLFxyXG4gICAgICAgICAgICAgICAgICB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZCxcclxuICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbHVtbjogY29sdW1uLnRpdGxlLFxyXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBjb2x1bW4udmFsaWRhdGlvblt0eXBlXVxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXNlICdtYXhMZW5ndGgnOiB7XHJcbiAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgZmVhdHVyZS5wcm9wZXJ0aWVzLmhhc093blByb3BlcnR5KGtleSkgJiZcclxuICAgICAgICAgICAgICAgIGZlYXR1cmUucHJvcGVydGllc1trZXldICYmXHJcbiAgICAgICAgICAgICAgICBmZWF0dXJlLnByb3BlcnRpZXNba2V5XS5sZW5ndGggPiBjb2x1bW4udmFsaWRhdGlvblt0eXBlXVxyXG4gICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgdmFsaWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuZXJyb3IoXHJcbiAgICAgICAgICAgICAgICAgICdpZ28uZ2VvLmZvcm1WYWxpZGF0aW9uLm1heExlbmd0aCcsXHJcbiAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZCxcclxuICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uOiBjb2x1bW4udGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGNvbHVtbi52YWxpZGF0aW9uW3R5cGVdXHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHZhbGlkO1xyXG4gIH1cclxuXHJcbiAgc2FuaXRpemVQYXJhbWV0ZXIoZmVhdHVyZSwgd29ya3NwYWNlOiBFZGl0aW9uV29ya3NwYWNlKSB7XHJcbiAgICB3b3Jrc3BhY2UubWV0YS50YWJsZVRlbXBsYXRlLmNvbHVtbnMuZm9yRWFjaCgoY29sdW1uKSA9PiB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBjb2x1bW4udHlwZSA9PT0gJ2xpc3QnICYmXHJcbiAgICAgICAgZmVhdHVyZS5wcm9wZXJ0aWVzW2dldENvbHVtbktleVdpdGhvdXRQcm9wZXJ0aWVzVGFnKGNvbHVtbi5uYW1lKV1cclxuICAgICAgKSB7XHJcbiAgICAgICAgZmVhdHVyZS5wcm9wZXJ0aWVzW2dldENvbHVtbktleVdpdGhvdXRQcm9wZXJ0aWVzVGFnKGNvbHVtbi5uYW1lKV0gPVxyXG4gICAgICAgICAgZmVhdHVyZS5wcm9wZXJ0aWVzW1xyXG4gICAgICAgICAgICBnZXRDb2x1bW5LZXlXaXRob3V0UHJvcGVydGllc1RhZyhjb2x1bW4ubmFtZSlcclxuICAgICAgICAgIF0udG9TdHJpbmcoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRDb2x1bW5LZXlXaXRob3V0UHJvcGVydGllc1RhZyhjb2x1bW46IHN0cmluZykge1xyXG4gIGlmIChjb2x1bW4uaW5jbHVkZXMoJ3Byb3BlcnRpZXMuJykpIHtcclxuICAgIHJldHVybiBjb2x1bW4uc3BsaXQoJy4nKVsxXTtcclxuICB9XHJcbiAgcmV0dXJuIGNvbHVtbjtcclxufVxyXG5cclxuZnVuY3Rpb24gcmVtb3ZlWihjb29yZHM6IGFueSkge1xyXG4gIGlmIChjb29yZHMubGVuZ3RoID09PSAwKSByZXR1cm4gY29vcmRzO1xyXG4gIGlmICh0eXBlb2YgY29vcmRzWzBdID09PSAnbnVtYmVyJykgcmV0dXJuIGNvb3Jkcy5zbGljZSgwLCAyKTtcclxuICByZXR1cm4gY29vcmRzLm1hcChyZW1vdmVaKTtcclxufVxyXG4iXX0=