@igo2/geo 18.0.0 → 18.0.1-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (510) hide show
  1. package/fesm2022/igo2-geo.mjs +684 -709
  2. package/fesm2022/igo2-geo.mjs.map +1 -1
  3. package/lib/offline/geoDB/geoDB.service.d.ts +1 -1
  4. package/lib/offline/layerDB/layerDB.service.d.ts +1 -1
  5. package/lib/style/style-list/style-list.provider.d.ts +1 -8
  6. package/lib/style/style-list/style-list.service.d.ts +1 -1
  7. package/package.json +15 -17
  8. package/src/lib/layer/layer-list/layer-list.theme.scss +2 -1
  9. package/src/lib/map/menu-button/menu-button.theming.scss +3 -3
  10. package/src/style/style.scss +1 -1
  11. package/esm2022/igo2-geo.mjs +0 -5
  12. package/esm2022/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +0 -234
  13. package/esm2022/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +0 -272
  14. package/esm2022/lib/catalog/catalog-browser/catalog-browser.component.mjs +0 -246
  15. package/esm2022/lib/catalog/catalog-browser/catalog-browser.module.mjs +0 -19
  16. package/esm2022/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +0 -136
  17. package/esm2022/lib/catalog/catalog-library/catalog-library-item.component.mjs +0 -60
  18. package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +0 -232
  19. package/esm2022/lib/catalog/catalog-library/catalog-library.module.mjs +0 -24
  20. package/esm2022/lib/catalog/catalog-library/index.mjs +0 -4
  21. package/esm2022/lib/catalog/catalog.module.mjs +0 -26
  22. package/esm2022/lib/catalog/index.mjs +0 -6
  23. package/esm2022/lib/catalog/shared/catalog.abstract.mjs +0 -32
  24. package/esm2022/lib/catalog/shared/catalog.enum.mjs +0 -16
  25. package/esm2022/lib/catalog/shared/catalog.interface.mjs +0 -2
  26. package/esm2022/lib/catalog/shared/catalog.service.mjs +0 -706
  27. package/esm2022/lib/catalog/shared/catalogs.mjs +0 -75
  28. package/esm2022/lib/catalog/shared/index.mjs +0 -5
  29. package/esm2022/lib/datasource/index.mjs +0 -3
  30. package/esm2022/lib/datasource/shared/capabilities.interface.mjs +0 -17
  31. package/esm2022/lib/datasource/shared/capabilities.service.mjs +0 -441
  32. package/esm2022/lib/datasource/shared/datasource.service.mjs +0 -258
  33. package/esm2022/lib/datasource/shared/datasources/any-datasource.interface.mjs +0 -2
  34. package/esm2022/lib/datasource/shared/datasources/any-datasource.mjs +0 -2
  35. package/esm2022/lib/datasource/shared/datasources/arcgisrest-datasource.interface.mjs +0 -2
  36. package/esm2022/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +0 -222
  37. package/esm2022/lib/datasource/shared/datasources/carto-datasource.interface.mjs +0 -2
  38. package/esm2022/lib/datasource/shared/datasources/carto-datasource.mjs +0 -118
  39. package/esm2022/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +0 -2
  40. package/esm2022/lib/datasource/shared/datasources/cluster-datasource.mjs +0 -24
  41. package/esm2022/lib/datasource/shared/datasources/data.service.mjs +0 -3
  42. package/esm2022/lib/datasource/shared/datasources/datasource.interface.mjs +0 -2
  43. package/esm2022/lib/datasource/shared/datasources/datasource.mjs +0 -41
  44. package/esm2022/lib/datasource/shared/datasources/feature-datasource.interface.mjs +0 -2
  45. package/esm2022/lib/datasource/shared/datasources/feature-datasource.mjs +0 -52
  46. package/esm2022/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.mjs +0 -2
  47. package/esm2022/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +0 -70
  48. package/esm2022/lib/datasource/shared/datasources/index.mjs +0 -36
  49. package/esm2022/lib/datasource/shared/datasources/mvt-datasource.interface.mjs +0 -2
  50. package/esm2022/lib/datasource/shared/datasources/mvt-datasource.mjs +0 -33
  51. package/esm2022/lib/datasource/shared/datasources/osm-datasource.interface.mjs +0 -2
  52. package/esm2022/lib/datasource/shared/datasources/osm-datasource.mjs +0 -14
  53. package/esm2022/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.mjs +0 -2
  54. package/esm2022/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +0 -60
  55. package/esm2022/lib/datasource/shared/datasources/tiledebug-datasource.interface.mjs +0 -2
  56. package/esm2022/lib/datasource/shared/datasources/tiledebug-datasource.mjs +0 -17
  57. package/esm2022/lib/datasource/shared/datasources/websocket-datasource.interface.mjs +0 -2
  58. package/esm2022/lib/datasource/shared/datasources/websocket-datasource.mjs +0 -56
  59. package/esm2022/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +0 -2
  60. package/esm2022/lib/datasource/shared/datasources/wfs-datasource.mjs +0 -137
  61. package/esm2022/lib/datasource/shared/datasources/wfs.service.mjs +0 -170
  62. package/esm2022/lib/datasource/shared/datasources/wms-datasource.interface.mjs +0 -2
  63. package/esm2022/lib/datasource/shared/datasources/wms-datasource.mjs +0 -227
  64. package/esm2022/lib/datasource/shared/datasources/wms-wfs.utils.mjs +0 -224
  65. package/esm2022/lib/datasource/shared/datasources/wmts-datasource.interface.mjs +0 -2
  66. package/esm2022/lib/datasource/shared/datasources/wmts-datasource.mjs +0 -18
  67. package/esm2022/lib/datasource/shared/datasources/xyz-datasource.interface.mjs +0 -2
  68. package/esm2022/lib/datasource/shared/datasources/xyz-datasource.mjs +0 -11
  69. package/esm2022/lib/datasource/shared/index.mjs +0 -6
  70. package/esm2022/lib/datasource/shared/options/index.mjs +0 -5
  71. package/esm2022/lib/datasource/shared/options/options-api.interface.mjs +0 -2
  72. package/esm2022/lib/datasource/shared/options/options-api.providers.mjs +0 -15
  73. package/esm2022/lib/datasource/shared/options/options-api.service.mjs +0 -85
  74. package/esm2022/lib/datasource/shared/options/options.service.mjs +0 -3
  75. package/esm2022/lib/datasource/utils/index.mjs +0 -2
  76. package/esm2022/lib/datasource/utils/tilegrid.mjs +0 -20
  77. package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +0 -246
  78. package/esm2022/lib/directions/directions-buttons/index.mjs +0 -2
  79. package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +0 -312
  80. package/esm2022/lib/directions/directions-inputs/index.mjs +0 -2
  81. package/esm2022/lib/directions/directions-results/directions-results.component.mjs +0 -192
  82. package/esm2022/lib/directions/directions-results/index.mjs +0 -2
  83. package/esm2022/lib/directions/directions-sources/directions-source.interface.mjs +0 -5
  84. package/esm2022/lib/directions/directions-sources/directions-source.mjs +0 -3
  85. package/esm2022/lib/directions/directions-sources/directions-source.provider.mjs +0 -23
  86. package/esm2022/lib/directions/directions-sources/index.mjs +0 -5
  87. package/esm2022/lib/directions/directions-sources/osrm-directions-source.mjs +0 -159
  88. package/esm2022/lib/directions/directions.component.mjs +0 -437
  89. package/esm2022/lib/directions/directions.module.mjs +0 -46
  90. package/esm2022/lib/directions/directions.provider.mjs +0 -16
  91. package/esm2022/lib/directions/index.mjs +0 -8
  92. package/esm2022/lib/directions/shared/directions-source.service.mjs +0 -18
  93. package/esm2022/lib/directions/shared/directions.enum.mjs +0 -72
  94. package/esm2022/lib/directions/shared/directions.interface.mjs +0 -2
  95. package/esm2022/lib/directions/shared/directions.service.mjs +0 -239
  96. package/esm2022/lib/directions/shared/directions.utils.mjs +0 -522
  97. package/esm2022/lib/directions/shared/index.mjs +0 -6
  98. package/esm2022/lib/directions/shared/store.mjs +0 -21
  99. package/esm2022/lib/download/download-button/download-button.component.mjs +0 -48
  100. package/esm2022/lib/download/download-button/index.mjs +0 -2
  101. package/esm2022/lib/download/download.module.mjs +0 -24
  102. package/esm2022/lib/download/index.mjs +0 -3
  103. package/esm2022/lib/download/shared/download.interface.mjs +0 -2
  104. package/esm2022/lib/download/shared/download.service.mjs +0 -67
  105. package/esm2022/lib/download/shared/index.mjs +0 -3
  106. package/esm2022/lib/draw/draw/draw-layer-popup.component.mjs +0 -42
  107. package/esm2022/lib/draw/draw/draw-popup.component.mjs +0 -421
  108. package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +0 -28
  109. package/esm2022/lib/draw/draw/draw.component.mjs +0 -1136
  110. package/esm2022/lib/draw/draw/draw.module.mjs +0 -19
  111. package/esm2022/lib/draw/drawingTool.module.mjs +0 -18
  112. package/esm2022/lib/draw/index.mjs +0 -3
  113. package/esm2022/lib/draw/shared/draw-icon.service.mjs +0 -30
  114. package/esm2022/lib/draw/shared/draw.enum.mjs +0 -21
  115. package/esm2022/lib/draw/shared/draw.interface.mjs +0 -2
  116. package/esm2022/lib/draw/shared/draw.utils.mjs +0 -125
  117. package/esm2022/lib/draw/shared/index.mjs +0 -5
  118. package/esm2022/lib/environment/environment.interface.mjs +0 -2
  119. package/esm2022/lib/environment/index.mjs +0 -2
  120. package/esm2022/lib/feature/feature-details/feature-details.component.mjs +0 -306
  121. package/esm2022/lib/feature/feature-details/feature-details.directive.mjs +0 -56
  122. package/esm2022/lib/feature/feature-details/feature-details.module.mjs +0 -26
  123. package/esm2022/lib/feature/feature-details/index.mjs +0 -4
  124. package/esm2022/lib/feature/feature-form/feature-form.component.mjs +0 -101
  125. package/esm2022/lib/feature/feature-form/feature-form.module.mjs +0 -19
  126. package/esm2022/lib/feature/feature.module.mjs +0 -26
  127. package/esm2022/lib/feature/index.mjs +0 -5
  128. package/esm2022/lib/feature/shared/feature-store.utils.mjs +0 -28
  129. package/esm2022/lib/feature/shared/feature.enums.mjs +0 -9
  130. package/esm2022/lib/feature/shared/feature.interfaces.mjs +0 -2
  131. package/esm2022/lib/feature/shared/feature.utils.mjs +0 -332
  132. package/esm2022/lib/feature/shared/index.mjs +0 -8
  133. package/esm2022/lib/feature/shared/store.mjs +0 -143
  134. package/esm2022/lib/feature/shared/strategies/geo-properties.mjs +0 -216
  135. package/esm2022/lib/feature/shared/strategies/in-map-extent.mjs +0 -119
  136. package/esm2022/lib/feature/shared/strategies/in-map-resolution.mjs +0 -99
  137. package/esm2022/lib/feature/shared/strategies/index.mjs +0 -8
  138. package/esm2022/lib/feature/shared/strategies/loading-layer.mjs +0 -103
  139. package/esm2022/lib/feature/shared/strategies/loading.mjs +0 -136
  140. package/esm2022/lib/feature/shared/strategies/search.mjs +0 -158
  141. package/esm2022/lib/feature/shared/strategies/selection.mjs +0 -385
  142. package/esm2022/lib/feature/shared/strategies.utils.mjs +0 -37
  143. package/esm2022/lib/filter/filter.module.mjs +0 -131
  144. package/esm2022/lib/filter/index.mjs +0 -17
  145. package/esm2022/lib/filter/ogc-filter-button/index.mjs +0 -2
  146. package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +0 -141
  147. package/esm2022/lib/filter/ogc-filter-form/index.mjs +0 -2
  148. package/esm2022/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +0 -325
  149. package/esm2022/lib/filter/ogc-filter-selection/index.mjs +0 -2
  150. package/esm2022/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +0 -787
  151. package/esm2022/lib/filter/ogc-filter-time/index.mjs +0 -3
  152. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +0 -201
  153. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +0 -665
  154. package/esm2022/lib/filter/ogc-filterable-form/index.mjs +0 -2
  155. package/esm2022/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +0 -66
  156. package/esm2022/lib/filter/ogc-filterable-item/index.mjs +0 -2
  157. package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +0 -244
  158. package/esm2022/lib/filter/ogc-filterable-list/index.mjs +0 -3
  159. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +0 -39
  160. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +0 -32
  161. package/esm2022/lib/filter/shared/filterable-datasource.pipe.mjs +0 -63
  162. package/esm2022/lib/filter/shared/index.mjs +0 -12
  163. package/esm2022/lib/filter/shared/ogc-filter-time.service.mjs +0 -72
  164. package/esm2022/lib/filter/shared/ogc-filter.enum.mjs +0 -30
  165. package/esm2022/lib/filter/shared/ogc-filter.interface.mjs +0 -2
  166. package/esm2022/lib/filter/shared/ogc-filter.mjs +0 -756
  167. package/esm2022/lib/filter/shared/ogc-filter.service.mjs +0 -47
  168. package/esm2022/lib/filter/shared/spatial-filter.enum.mjs +0 -23
  169. package/esm2022/lib/filter/shared/spatial-filter.interface.mjs +0 -2
  170. package/esm2022/lib/filter/shared/spatial-filter.service.mjs +0 -282
  171. package/esm2022/lib/filter/shared/time-filter.enum.mjs +0 -13
  172. package/esm2022/lib/filter/shared/time-filter.interface.mjs +0 -2
  173. package/esm2022/lib/filter/shared/time-filter.service.mjs +0 -107
  174. package/esm2022/lib/filter/spatial-filter/spatial-filter-item/index.mjs +0 -2
  175. package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +0 -875
  176. package/esm2022/lib/filter/spatial-filter/spatial-filter-list/index.mjs +0 -2
  177. package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +0 -191
  178. package/esm2022/lib/filter/spatial-filter/spatial-filter-type/index.mjs +0 -2
  179. package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +0 -120
  180. package/esm2022/lib/filter/time-filter-button/index.mjs +0 -2
  181. package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +0 -70
  182. package/esm2022/lib/filter/time-filter-form/index.mjs +0 -2
  183. package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +0 -537
  184. package/esm2022/lib/filter/time-filter-item/index.mjs +0 -2
  185. package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +0 -90
  186. package/esm2022/lib/filter/time-filter-list/index.mjs +0 -3
  187. package/esm2022/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +0 -39
  188. package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +0 -24
  189. package/esm2022/lib/geo.module.mjs +0 -63
  190. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +0 -559
  191. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +0 -170
  192. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +0 -24
  193. package/esm2022/lib/geometry/geometry-form-field/index.mjs +0 -4
  194. package/esm2022/lib/geometry/geometry.module.mjs +0 -18
  195. package/esm2022/lib/geometry/index.mjs +0 -3
  196. package/esm2022/lib/geometry/shared/controls/draw.mjs +0 -340
  197. package/esm2022/lib/geometry/shared/controls/index.mjs +0 -4
  198. package/esm2022/lib/geometry/shared/controls/modify.mjs +0 -538
  199. package/esm2022/lib/geometry/shared/controls/slice.mjs +0 -190
  200. package/esm2022/lib/geometry/shared/geometry.errors.mjs +0 -24
  201. package/esm2022/lib/geometry/shared/geometry.interfaces.mjs +0 -2
  202. package/esm2022/lib/geometry/shared/geometry.utils.mjs +0 -113
  203. package/esm2022/lib/geometry/shared/index.mjs +0 -5
  204. package/esm2022/lib/import-export/export-button/export-button.component.mjs +0 -49
  205. package/esm2022/lib/import-export/export-button/index.mjs +0 -2
  206. package/esm2022/lib/import-export/import-export/import-export.component.mjs +0 -876
  207. package/esm2022/lib/import-export/import-export/index.mjs +0 -2
  208. package/esm2022/lib/import-export/import-export.module.mjs +0 -31
  209. package/esm2022/lib/import-export/index.mjs +0 -5
  210. package/esm2022/lib/import-export/shared/drop-geo-file.directive.mjs +0 -114
  211. package/esm2022/lib/import-export/shared/export.errors.mjs +0 -15
  212. package/esm2022/lib/import-export/shared/export.interface.mjs +0 -2
  213. package/esm2022/lib/import-export/shared/export.service.mjs +0 -378
  214. package/esm2022/lib/import-export/shared/export.type.mjs +0 -13
  215. package/esm2022/lib/import-export/shared/export.utils.mjs +0 -51
  216. package/esm2022/lib/import-export/shared/import.errors.mjs +0 -39
  217. package/esm2022/lib/import-export/shared/import.interface.mjs +0 -2
  218. package/esm2022/lib/import-export/shared/import.service.mjs +0 -221
  219. package/esm2022/lib/import-export/shared/import.utils.mjs +0 -203
  220. package/esm2022/lib/import-export/shared/index.mjs +0 -11
  221. package/esm2022/lib/layer/index.mjs +0 -16
  222. package/esm2022/lib/layer/layer-group/index.mjs +0 -2
  223. package/esm2022/lib/layer/layer-group/layer-group.component.mjs +0 -103
  224. package/esm2022/lib/layer/layer-item/index.mjs +0 -2
  225. package/esm2022/lib/layer/layer-item/layer-item.component.mjs +0 -196
  226. package/esm2022/lib/layer/layer-legend/index.mjs +0 -2
  227. package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +0 -287
  228. package/esm2022/lib/layer/layer-legend-item/index.mjs +0 -2
  229. package/esm2022/lib/layer/layer-legend-item/layer-legend-item.component.mjs +0 -85
  230. package/esm2022/lib/layer/layer-legend-list/index.mjs +0 -3
  231. package/esm2022/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +0 -54
  232. package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +0 -104
  233. package/esm2022/lib/layer/layer-list/index.mjs +0 -2
  234. package/esm2022/lib/layer/layer-list/layer-list.component.mjs +0 -232
  235. package/esm2022/lib/layer/layer-list-tool/index.mjs +0 -4
  236. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +0 -92
  237. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.interface.mjs +0 -7
  238. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.service.mjs +0 -61
  239. package/esm2022/lib/layer/layer-search/index.mjs +0 -2
  240. package/esm2022/lib/layer/layer-search/layer-search.component.mjs +0 -65
  241. package/esm2022/lib/layer/layer-unavailable/index.mjs +0 -3
  242. package/esm2022/lib/layer/layer-unavailable/layer-unavailable-list/layer-unavailable-list.component.mjs +0 -25
  243. package/esm2022/lib/layer/layer-unavailable/layer-unavailable.component.mjs +0 -35
  244. package/esm2022/lib/layer/layer-viewer/index.mjs +0 -3
  245. package/esm2022/lib/layer/layer-viewer/layer-viewer.component.mjs +0 -226
  246. package/esm2022/lib/layer/layer-viewer/layer-viewer.interface.mjs +0 -2
  247. package/esm2022/lib/layer/layer-viewer-bottom-actions/index.mjs +0 -2
  248. package/esm2022/lib/layer/layer-viewer-bottom-actions/layer-viewer-bottom-actions.component.mjs +0 -207
  249. package/esm2022/lib/layer/layer-visibility-button/index.mjs +0 -2
  250. package/esm2022/lib/layer/layer-visibility-button/layer-visibility-button.component.mjs +0 -83
  251. package/esm2022/lib/layer/layer.module.mjs +0 -107
  252. package/esm2022/lib/layer/shared/clusterParam.mjs +0 -2
  253. package/esm2022/lib/layer/shared/index.mjs +0 -6
  254. package/esm2022/lib/layer/shared/layer-controller.mjs +0 -316
  255. package/esm2022/lib/layer/shared/layer-selection.mjs +0 -38
  256. package/esm2022/lib/layer/shared/layer.enums.mjs +0 -2
  257. package/esm2022/lib/layer/shared/layer.service.mjs +0 -315
  258. package/esm2022/lib/layer/shared/layers/any-layer.interface.mjs +0 -2
  259. package/esm2022/lib/layer/shared/layers/any-layer.mjs +0 -2
  260. package/esm2022/lib/layer/shared/layers/image-layer.interface.mjs +0 -2
  261. package/esm2022/lib/layer/shared/layers/image-layer.mjs +0 -75
  262. package/esm2022/lib/layer/shared/layers/index.mjs +0 -18
  263. package/esm2022/lib/layer/shared/layers/layer-base.mjs +0 -199
  264. package/esm2022/lib/layer/shared/layers/layer-group.interface.mjs +0 -2
  265. package/esm2022/lib/layer/shared/layers/layer-group.mjs +0 -120
  266. package/esm2022/lib/layer/shared/layers/layer.interface.mjs +0 -7
  267. package/esm2022/lib/layer/shared/layers/layer.mjs +0 -178
  268. package/esm2022/lib/layer/shared/layers/legend.interface.mjs +0 -2
  269. package/esm2022/lib/layer/shared/layers/linked/index.mjs +0 -4
  270. package/esm2022/lib/layer/shared/layers/linked/linked-layer.interface.mjs +0 -12
  271. package/esm2022/lib/layer/shared/layers/linked/linked-layer.mjs +0 -242
  272. package/esm2022/lib/layer/shared/layers/linked/linked-layer.utils.mjs +0 -70
  273. package/esm2022/lib/layer/shared/layers/tile-layer.interface.mjs +0 -2
  274. package/esm2022/lib/layer/shared/layers/tile-layer.mjs +0 -55
  275. package/esm2022/lib/layer/shared/layers/vector-layer.interface.mjs +0 -2
  276. package/esm2022/lib/layer/shared/layers/vector-layer.mjs +0 -576
  277. package/esm2022/lib/layer/shared/layers/vectortile-layer.interface.mjs +0 -2
  278. package/esm2022/lib/layer/shared/layers/vectortile-layer.mjs +0 -112
  279. package/esm2022/lib/layer/track-feature-button/index.mjs +0 -2
  280. package/esm2022/lib/layer/track-feature-button/track-feature-button.component.mjs +0 -54
  281. package/esm2022/lib/layer/utils/image-watcher.mjs +0 -62
  282. package/esm2022/lib/layer/utils/index.mjs +0 -6
  283. package/esm2022/lib/layer/utils/layer.utils.mjs +0 -57
  284. package/esm2022/lib/layer/utils/outputLegend.mjs +0 -32
  285. package/esm2022/lib/layer/utils/tile-watcher.mjs +0 -52
  286. package/esm2022/lib/layer/utils/vector-watcher.mjs +0 -50
  287. package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.animation.mjs +0 -20
  288. package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +0 -87
  289. package/esm2022/lib/map/baselayers-switcher/index.mjs +0 -3
  290. package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +0 -122
  291. package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +0 -78
  292. package/esm2022/lib/map/geolocate-button/index.mjs +0 -2
  293. package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +0 -73
  294. package/esm2022/lib/map/home-extent-button/home-extent-button.interface.mjs +0 -2
  295. package/esm2022/lib/map/home-extent-button/index.mjs +0 -3
  296. package/esm2022/lib/map/index.mjs +0 -14
  297. package/esm2022/lib/map/info-section/index.mjs +0 -2
  298. package/esm2022/lib/map/info-section/info-section.component.mjs +0 -15
  299. package/esm2022/lib/map/map-browser/index.mjs +0 -2
  300. package/esm2022/lib/map/map-browser/map-browser.component.mjs +0 -67
  301. package/esm2022/lib/map/map-center/index.mjs +0 -2
  302. package/esm2022/lib/map/map-center/map-center.component.mjs +0 -56
  303. package/esm2022/lib/map/map.module.mjs +0 -89
  304. package/esm2022/lib/map/menu-button/index.mjs +0 -2
  305. package/esm2022/lib/map/menu-button/menu-button.component.mjs +0 -57
  306. package/esm2022/lib/map/offline-button/index.mjs +0 -2
  307. package/esm2022/lib/map/offline-button/offline-button.component.mjs +0 -53
  308. package/esm2022/lib/map/rotation-button/index.mjs +0 -2
  309. package/esm2022/lib/map/rotation-button/rotation-button.component.mjs +0 -58
  310. package/esm2022/lib/map/shared/controllers/controller.mjs +0 -44
  311. package/esm2022/lib/map/shared/controllers/geolocation.interface.mjs +0 -8
  312. package/esm2022/lib/map/shared/controllers/geolocation.mjs +0 -431
  313. package/esm2022/lib/map/shared/controllers/index.mjs +0 -5
  314. package/esm2022/lib/map/shared/controllers/view.mjs +0 -361
  315. package/esm2022/lib/map/shared/hover-feature.directive.mjs +0 -481
  316. package/esm2022/lib/map/shared/index.mjs +0 -15
  317. package/esm2022/lib/map/shared/linkedLayers.utils.mjs +0 -238
  318. package/esm2022/lib/map/shared/map-pointer-position.directive.mjs +0 -122
  319. package/esm2022/lib/map/shared/map.abstract.mjs +0 -24
  320. package/esm2022/lib/map/shared/map.enums.mjs +0 -6
  321. package/esm2022/lib/map/shared/map.interface.mjs +0 -2
  322. package/esm2022/lib/map/shared/map.mjs +0 -201
  323. package/esm2022/lib/map/shared/map.service.mjs +0 -29
  324. package/esm2022/lib/map/shared/map.utils.mjs +0 -455
  325. package/esm2022/lib/map/shared/mapOffline.directive.mjs +0 -114
  326. package/esm2022/lib/map/shared/projection.interfaces.mjs +0 -2
  327. package/esm2022/lib/map/shared/projection.service.mjs +0 -67
  328. package/esm2022/lib/map/shared/projection.utils.mjs +0 -122
  329. package/esm2022/lib/map/swipe-control/index.mjs +0 -2
  330. package/esm2022/lib/map/swipe-control/swipe-control.component.mjs +0 -211
  331. package/esm2022/lib/map/utils/index.mjs +0 -2
  332. package/esm2022/lib/map/utils/layer-watcher.mjs +0 -112
  333. package/esm2022/lib/map/wake-lock-button/index.mjs +0 -2
  334. package/esm2022/lib/map/wake-lock-button/wake-lock-button.component.mjs +0 -103
  335. package/esm2022/lib/map/zoom-button/index.mjs +0 -2
  336. package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +0 -35
  337. package/esm2022/lib/measure/index.mjs +0 -3
  338. package/esm2022/lib/measure/measure.module.mjs +0 -20
  339. package/esm2022/lib/measure/measurer/index.mjs +0 -6
  340. package/esm2022/lib/measure/measurer/measure-format.pipe.mjs +0 -40
  341. package/esm2022/lib/measure/measurer/measurer-dialog.component.mjs +0 -38
  342. package/esm2022/lib/measure/measurer/measurer-item.component.mjs +0 -143
  343. package/esm2022/lib/measure/measurer/measurer.component.mjs +0 -948
  344. package/esm2022/lib/measure/measurer/measurer.module.mjs +0 -20
  345. package/esm2022/lib/measure/shared/index.mjs +0 -4
  346. package/esm2022/lib/measure/shared/measure.enum.mjs +0 -37
  347. package/esm2022/lib/measure/shared/measure.interfaces.mjs +0 -2
  348. package/esm2022/lib/measure/shared/measure.utils.mjs +0 -497
  349. package/esm2022/lib/metadata/index.mjs +0 -4
  350. package/esm2022/lib/metadata/metadata-button/index.mjs +0 -2
  351. package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +0 -96
  352. package/esm2022/lib/metadata/metadata.module.mjs +0 -29
  353. package/esm2022/lib/metadata/shared/index.mjs +0 -3
  354. package/esm2022/lib/metadata/shared/metadata.interface.mjs +0 -2
  355. package/esm2022/lib/metadata/shared/metadata.service.mjs +0 -18
  356. package/esm2022/lib/offline/geoDB/configFileToGeoDB.service.mjs +0 -130
  357. package/esm2022/lib/offline/geoDB/geoDB.enums.mjs +0 -6
  358. package/esm2022/lib/offline/geoDB/geoDB.interface.mjs +0 -2
  359. package/esm2022/lib/offline/geoDB/geoDB.service.mjs +0 -172
  360. package/esm2022/lib/offline/geoDB/index.mjs +0 -5
  361. package/esm2022/lib/offline/index.mjs +0 -6
  362. package/esm2022/lib/offline/layerDB/index.mjs +0 -3
  363. package/esm2022/lib/offline/layerDB/layerDB.interface.mjs +0 -2
  364. package/esm2022/lib/offline/layerDB/layerDB.service.mjs +0 -83
  365. package/esm2022/lib/offline/offline.interface.mjs +0 -2
  366. package/esm2022/lib/offline/offline.provider.mjs +0 -50
  367. package/esm2022/lib/offline/shared/geo-network.service.mjs +0 -79
  368. package/esm2022/lib/offline/shared/index.mjs +0 -2
  369. package/esm2022/lib/overlay/index.mjs +0 -2
  370. package/esm2022/lib/overlay/shared/index.mjs +0 -4
  371. package/esm2022/lib/overlay/shared/overlay.enum.mjs +0 -8
  372. package/esm2022/lib/overlay/shared/overlay.mjs +0 -139
  373. package/esm2022/lib/overlay/shared/overlay.utils.mjs +0 -17
  374. package/esm2022/lib/print/index.mjs +0 -4
  375. package/esm2022/lib/print/print/print.component.mjs +0 -116
  376. package/esm2022/lib/print/print-form/index.mjs +0 -2
  377. package/esm2022/lib/print/print-form/print-form.component.mjs +0 -320
  378. package/esm2022/lib/print/print.module.mjs +0 -20
  379. package/esm2022/lib/print/shared/geopdf.mjs +0 -68
  380. package/esm2022/lib/print/shared/index.mjs +0 -5
  381. package/esm2022/lib/print/shared/print.interface.mjs +0 -2
  382. package/esm2022/lib/print/shared/print.service.mjs +0 -1136
  383. package/esm2022/lib/print/shared/print.type.mjs +0 -30
  384. package/esm2022/lib/query/index.mjs +0 -2
  385. package/esm2022/lib/query/query.module.mjs +0 -27
  386. package/esm2022/lib/query/shared/index.mjs +0 -8
  387. package/esm2022/lib/query/shared/query-search-source.mjs +0 -35
  388. package/esm2022/lib/query/shared/query-search-source.providers.mjs +0 -22
  389. package/esm2022/lib/query/shared/query.directive.mjs +0 -290
  390. package/esm2022/lib/query/shared/query.enums.mjs +0 -32
  391. package/esm2022/lib/query/shared/query.interfaces.mjs +0 -2
  392. package/esm2022/lib/query/shared/query.service.mjs +0 -753
  393. package/esm2022/lib/query/shared/query.utils.mjs +0 -45
  394. package/esm2022/lib/search/index.mjs +0 -10
  395. package/esm2022/lib/search/search-bar/search-bar.component.mjs +0 -483
  396. package/esm2022/lib/search/search-bar/search-bar.module.mjs +0 -19
  397. package/esm2022/lib/search/search-results/index.mjs +0 -5
  398. package/esm2022/lib/search/search-results/save-feature-dialog.component.mjs +0 -101
  399. package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +0 -433
  400. package/esm2022/lib/search/search-results/search-results-item.component.mjs +0 -119
  401. package/esm2022/lib/search/search-results/search-results.component.mjs +0 -297
  402. package/esm2022/lib/search/search-results/search-results.directive.mjs +0 -7
  403. package/esm2022/lib/search/search-results/search-results.module.mjs +0 -20
  404. package/esm2022/lib/search/search-selector/search-selector.component.mjs +0 -118
  405. package/esm2022/lib/search/search-selector/search-selector.module.mjs +0 -19
  406. package/esm2022/lib/search/search-settings/search-settings.component.mjs +0 -264
  407. package/esm2022/lib/search/search-settings/search-settings.module.mjs +0 -19
  408. package/esm2022/lib/search/search.module.mjs +0 -77
  409. package/esm2022/lib/search/shared/index.mjs +0 -10
  410. package/esm2022/lib/search/shared/search-pointer-summary.directive.mjs +0 -328
  411. package/esm2022/lib/search/shared/search-source-service.providers.mjs +0 -20
  412. package/esm2022/lib/search/shared/search-source.service.mjs +0 -56
  413. package/esm2022/lib/search/shared/search.enums.mjs +0 -4
  414. package/esm2022/lib/search/shared/search.interfaces.mjs +0 -2
  415. package/esm2022/lib/search/shared/search.provider.mjs +0 -20
  416. package/esm2022/lib/search/shared/search.service.mjs +0 -149
  417. package/esm2022/lib/search/shared/search.utils.mjs +0 -92
  418. package/esm2022/lib/search/shared/sources/cadastre.mjs +0 -142
  419. package/esm2022/lib/search/shared/sources/cadastre.providers.mjs +0 -32
  420. package/esm2022/lib/search/shared/sources/coordinates.interfaces.mjs +0 -2
  421. package/esm2022/lib/search/shared/sources/coordinates.mjs +0 -168
  422. package/esm2022/lib/search/shared/sources/coordinates.providers.mjs +0 -52
  423. package/esm2022/lib/search/shared/sources/icherche-icons.mjs +0 -32
  424. package/esm2022/lib/search/shared/sources/icherche.interfaces.mjs +0 -2
  425. package/esm2022/lib/search/shared/sources/icherche.mjs +0 -816
  426. package/esm2022/lib/search/shared/sources/icherche.providers.mjs +0 -87
  427. package/esm2022/lib/search/shared/sources/ilayer.interfaces.mjs +0 -2
  428. package/esm2022/lib/search/shared/sources/ilayer.mjs +0 -339
  429. package/esm2022/lib/search/shared/sources/ilayer.providers.mjs +0 -58
  430. package/esm2022/lib/search/shared/sources/index.mjs +0 -23
  431. package/esm2022/lib/search/shared/sources/nominatim.interfaces.mjs +0 -2
  432. package/esm2022/lib/search/shared/sources/nominatim.mjs +0 -263
  433. package/esm2022/lib/search/shared/sources/nominatim.providers.mjs +0 -31
  434. package/esm2022/lib/search/shared/sources/source.interfaces.mjs +0 -13
  435. package/esm2022/lib/search/shared/sources/source.mjs +0 -221
  436. package/esm2022/lib/search/shared/sources/storedqueries.interfaces.mjs +0 -2
  437. package/esm2022/lib/search/shared/sources/storedqueries.mjs +0 -454
  438. package/esm2022/lib/search/shared/sources/storedqueries.providers.mjs +0 -56
  439. package/esm2022/lib/search/shared/sources/workspace.interfaces.mjs +0 -2
  440. package/esm2022/lib/search/shared/sources/workspace.mjs +0 -192
  441. package/esm2022/lib/search/shared/sources/workspace.providers.mjs +0 -31
  442. package/esm2022/lib/style/index.mjs +0 -5
  443. package/esm2022/lib/style/shared/datasource/esri-style-generator.mjs +0 -360
  444. package/esm2022/lib/style/shared/datasource/index.mjs +0 -2
  445. package/esm2022/lib/style/shared/feature/feature-style.mjs +0 -162
  446. package/esm2022/lib/style/shared/feature/index.mjs +0 -2
  447. package/esm2022/lib/style/shared/font.enum.mjs +0 -17
  448. package/esm2022/lib/style/shared/index.mjs +0 -5
  449. package/esm2022/lib/style/shared/overlay/index.mjs +0 -3
  450. package/esm2022/lib/style/shared/overlay/overlay-marker-style.utils.mjs +0 -39
  451. package/esm2022/lib/style/shared/overlay/overlay-style.utils.mjs +0 -88
  452. package/esm2022/lib/style/shared/vector/commonVectorStyle.mjs +0 -78
  453. package/esm2022/lib/style/shared/vector/conversion.utils.mjs +0 -27
  454. package/esm2022/lib/style/shared/vector/index.mjs +0 -4
  455. package/esm2022/lib/style/shared/vector/vector-style.interface.mjs +0 -2
  456. package/esm2022/lib/style/style-list/index.mjs +0 -5
  457. package/esm2022/lib/style/style-list/style-list.interface.mjs +0 -2
  458. package/esm2022/lib/style/style-list/style-list.module.mjs +0 -23
  459. package/esm2022/lib/style/style-list/style-list.provider.mjs +0 -21
  460. package/esm2022/lib/style/style-list/style-list.service.mjs +0 -52
  461. package/esm2022/lib/style/style-modal/drawing/index.mjs +0 -2
  462. package/esm2022/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +0 -193
  463. package/esm2022/lib/style/style-modal/index.mjs +0 -5
  464. package/esm2022/lib/style/style-modal/layer/index.mjs +0 -2
  465. package/esm2022/lib/style/style-modal/layer/style-modal-layer.component.mjs +0 -142
  466. package/esm2022/lib/style/style-modal/layer-button/index.mjs +0 -2
  467. package/esm2022/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +0 -44
  468. package/esm2022/lib/style/style-modal/shared/index.mjs +0 -2
  469. package/esm2022/lib/style/style-modal/shared/style-modal.interface.mjs +0 -2
  470. package/esm2022/lib/style/style-service/draw-style.service.mjs +0 -255
  471. package/esm2022/lib/style/style-service/index.mjs +0 -3
  472. package/esm2022/lib/style/style-service/style.service.mjs +0 -393
  473. package/esm2022/lib/style/style.module.mjs +0 -46
  474. package/esm2022/lib/toast/index.mjs +0 -2
  475. package/esm2022/lib/toast/toast.component.mjs +0 -99
  476. package/esm2022/lib/toast/toast.module.mjs +0 -24
  477. package/esm2022/lib/utils/googleLinks.mjs +0 -13
  478. package/esm2022/lib/utils/id-generator.mjs +0 -112
  479. package/esm2022/lib/utils/index.mjs +0 -5
  480. package/esm2022/lib/utils/osmLinks.mjs +0 -9
  481. package/esm2022/lib/utils/propertyTypeDetector/index.mjs +0 -3
  482. package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.interface.mjs +0 -2
  483. package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.service.mjs +0 -64
  484. package/esm2022/lib/wkt/index.mjs +0 -2
  485. package/esm2022/lib/wkt/shared/index.mjs +0 -2
  486. package/esm2022/lib/wkt/shared/wkt.service.mjs +0 -235
  487. package/esm2022/lib/wkt/wkt.module.mjs +0 -25
  488. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +0 -36
  489. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +0 -19
  490. package/esm2022/lib/workspace/confirmation-popup/index.mjs +0 -3
  491. package/esm2022/lib/workspace/index.mjs +0 -8
  492. package/esm2022/lib/workspace/shared/edition-workspace.mjs +0 -301
  493. package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +0 -720
  494. package/esm2022/lib/workspace/shared/feature-workspace.mjs +0 -41
  495. package/esm2022/lib/workspace/shared/feature-workspace.service.mjs +0 -113
  496. package/esm2022/lib/workspace/shared/index.mjs +0 -8
  497. package/esm2022/lib/workspace/shared/wfs-workspace.mjs +0 -41
  498. package/esm2022/lib/workspace/shared/wfs-workspace.service.mjs +0 -121
  499. package/esm2022/lib/workspace/shared/wms-workspace.service.mjs +0 -248
  500. package/esm2022/lib/workspace/shared/workspace.utils.mjs +0 -188
  501. package/esm2022/lib/workspace/widgets/index.mjs +0 -4
  502. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +0 -48
  503. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +0 -19
  504. package/esm2022/lib/workspace/widgets/widgets.mjs +0 -15
  505. package/esm2022/lib/workspace/workspace-selector/workspace-selector.directive.mjs +0 -172
  506. package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +0 -19
  507. package/esm2022/lib/workspace/workspace-updator/workspace-updator.directive.mjs +0 -137
  508. package/esm2022/lib/workspace/workspace-updator/workspace-updator.module.mjs +0 -19
  509. package/esm2022/lib/workspace/workspace.module.mjs +0 -32
  510. package/esm2022/public_api.mjs +0 -56
@@ -1,221 +0,0 @@
1
- import { HttpClient, HttpHeaders } from '@angular/common/http';
2
- import { Injectable } from '@angular/core';
3
- import { ConfigService } from '@igo2/core/config';
4
- import { uuid } from '@igo2/utils';
5
- import * as olformat from 'ol/format';
6
- import { Observable } from 'rxjs';
7
- import { ImportInvalidFileError, ImportOgreServerError, ImportSRSError, ImportSizeError, ImportUnreadableFileError } from './import.errors';
8
- import { computeLayerTitleFromFile, getFileExtension } from './import.utils';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "@angular/common/http";
11
- import * as i2 from "@igo2/core/config";
12
- export class ImportService {
13
- http;
14
- config;
15
- static formatExtensionAssociation = {
16
- GeoJSON: 'geojson',
17
- GML: 'gml',
18
- GPX: 'gpx',
19
- KML: 'kml',
20
- Shapefile: 'zip'
21
- };
22
- static allowedMimeTypes = [
23
- 'application/gml+xml',
24
- 'application/vnd.google-earth.kml+xml',
25
- 'application/gpx+xml',
26
- 'application/json'
27
- ];
28
- static allowedZipMimeTypes = [
29
- 'application/zip',
30
- 'application/x-zip-compressed',
31
- 'application/x-zip'
32
- ];
33
- static allowedExtensions = ['geojson', 'kml', 'gpx', 'json', 'gml', 'zip'];
34
- ogreUrl;
35
- clientSideFileSizeMax;
36
- constructor(http, config) {
37
- this.http = http;
38
- this.config = config;
39
- const importConfig = this.config.getConfig('importExport');
40
- this.ogreUrl = importConfig.url;
41
- const configFileSizeMb = importConfig.clientSideFileSizeMaxMb;
42
- this.clientSideFileSizeMax =
43
- (configFileSizeMb ? configFileSizeMb : 30) * Math.pow(1024, 2);
44
- if (importConfig.formats) {
45
- ImportService.allowedExtensions = importConfig.formats
46
- .map((format) => ImportService.formatExtensionAssociation[format])
47
- .filter((e) => e);
48
- if (ImportService.allowedExtensions.includes('geojson')) {
49
- ImportService.allowedExtensions.push('json');
50
- }
51
- }
52
- }
53
- import(file, projectionIn = 'EPSG:4326', projectionOut = 'EPSG:4326') {
54
- return this.importAsync(file, projectionIn, projectionOut);
55
- }
56
- getFileImporter(file) {
57
- const extension = getFileExtension(file);
58
- const allowedExtensions = ImportService.allowedExtensions;
59
- let zipMimeTypes = [];
60
- if (allowedExtensions.includes('zip')) {
61
- zipMimeTypes = ImportService.allowedZipMimeTypes;
62
- }
63
- const mimeType = file.type;
64
- const allowedMimeTypes = [
65
- ...ImportService.allowedMimeTypes,
66
- ...zipMimeTypes
67
- ];
68
- if (allowedMimeTypes.indexOf(mimeType) < 0 &&
69
- allowedExtensions.indexOf(extension) < 0) {
70
- return undefined;
71
- }
72
- else if (mimeType === 'application/json' ||
73
- ['json', 'geojson', 'kml', 'gpx'].indexOf(extension) >= 0) {
74
- return this.importFile;
75
- }
76
- else if (this.ogreUrl !== undefined) {
77
- return this.importFileWithOgre;
78
- }
79
- return undefined;
80
- }
81
- importAsync(file, projectionIn, projectionOut) {
82
- const doImport = (observer) => {
83
- if (file.size >= this.clientSideFileSizeMax) {
84
- observer.error(new ImportSizeError());
85
- return;
86
- }
87
- const importer = this.getFileImporter(file);
88
- if (importer === undefined) {
89
- observer.error(new ImportInvalidFileError());
90
- return;
91
- }
92
- importer.call(this, file, observer, projectionIn, projectionOut);
93
- };
94
- return new Observable(doImport);
95
- }
96
- importFile(file, observer, projectionIn, projectionOut) {
97
- const reader = new FileReader();
98
- reader.onload = (event) => {
99
- try {
100
- const features = this.parseFeaturesFromFile(file, event.target.result, projectionIn, projectionOut);
101
- observer.next(features);
102
- }
103
- catch {
104
- observer.error(new ImportUnreadableFileError());
105
- }
106
- observer.complete();
107
- };
108
- reader.onerror = () => {
109
- observer.error(new ImportUnreadableFileError());
110
- };
111
- reader.readAsText(file, 'UTF-8');
112
- }
113
- importFileWithOgre(file, observer, projectionIn, projectionOut) {
114
- const url = `${this.ogreUrl}/convert`;
115
- const formData = new FormData();
116
- formData.append('upload', file);
117
- formData.append('sourceSrs', projectionIn);
118
- formData.append('targetSrs', projectionOut);
119
- formData.append('formatOutput', 'GEOJSON');
120
- formData.append('skipFailures', '');
121
- this.http.post(url, formData, { headers: new HttpHeaders() }).subscribe((response) => {
122
- if (response === null) {
123
- observer.error(new ImportUnreadableFileError());
124
- return;
125
- }
126
- const errors = response.errors || [];
127
- if (errors.length > 0) {
128
- observer.error(new ImportUnreadableFileError());
129
- }
130
- else {
131
- const features = this.parseFeaturesFromGeoJSON(file, response, projectionOut);
132
- observer.next(features);
133
- observer.complete();
134
- }
135
- }, (error) => {
136
- error.error.caught = true;
137
- const errMsg = error.error.msg || '';
138
- if (errMsg === 'No valid files found') {
139
- observer.error(new ImportInvalidFileError());
140
- }
141
- else if (errMsg &&
142
- errMsg.startWith('ERROR 1: Failed to process SRS definition')) {
143
- observer.error(new ImportSRSError());
144
- }
145
- else if (error.status === 500) {
146
- observer.error(new ImportOgreServerError());
147
- }
148
- else {
149
- observer.error(new ImportUnreadableFileError());
150
- }
151
- });
152
- }
153
- parseFeaturesFromFile(file, data, projectionIn, projectionOut) {
154
- const extension = getFileExtension(file);
155
- const mimeType = file.type;
156
- const GeoJSON = new olformat.GeoJSON();
157
- let format;
158
- if (mimeType === 'application/vnd.google-earth.kml+xml') {
159
- format = new olformat.KML();
160
- }
161
- else if (mimeType === 'application/gml+xml') {
162
- format = new olformat.GML();
163
- }
164
- else if (mimeType === 'application/gpx+xml') {
165
- format = new olformat.GPX();
166
- }
167
- else {
168
- switch (extension) {
169
- case 'kml':
170
- format = new olformat.KML();
171
- break;
172
- case 'gpx':
173
- format = new olformat.GPX();
174
- break;
175
- case 'gml':
176
- format = new olformat.GML();
177
- break;
178
- default:
179
- format = GeoJSON;
180
- break;
181
- }
182
- }
183
- const olFeatures = format.readFeatures(data, {
184
- dataProjection: projectionIn,
185
- featureProjection: projectionOut
186
- });
187
- const features = olFeatures.map((olFeature) => {
188
- return Object.assign(GeoJSON.writeFeatureObject(olFeature), {
189
- projection: projectionOut,
190
- meta: {
191
- id: uuid(),
192
- title: computeLayerTitleFromFile(file)
193
- }
194
- });
195
- });
196
- return features;
197
- }
198
- parseFeaturesFromGeoJSON(file, data, projectionOut) {
199
- const olFormat = new olformat.GeoJSON();
200
- const olFeatures = olFormat.readFeatures(data);
201
- const features = olFeatures.map((olFeature) => {
202
- return Object.assign(olFormat.writeFeatureObject(olFeature), {
203
- projection: projectionOut,
204
- meta: {
205
- id: uuid(),
206
- title: computeLayerTitleFromFile(file)
207
- }
208
- });
209
- });
210
- return features;
211
- }
212
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImportService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
213
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImportService, providedIn: 'root' });
214
- }
215
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImportService, decorators: [{
216
- type: Injectable,
217
- args: [{
218
- providedIn: 'root'
219
- }]
220
- }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.ConfigService }] });
221
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9pbXBvcnQtZXhwb3J0L3NoYXJlZC9pbXBvcnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHbkMsT0FBTyxLQUFLLFFBQVEsTUFBTSxXQUFXLENBQUM7QUFHdEMsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLE1BQU0sQ0FBQztBQUc1QyxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLHFCQUFxQixFQUNyQixjQUFjLEVBQ2QsZUFBZSxFQUNmLHlCQUF5QixFQUMxQixNQUFNLGlCQUFpQixDQUFDO0FBRXpCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBSzdFLE1BQU0sT0FBTyxhQUFhO0lBNEJkO0lBQ0E7SUE1QlYsTUFBTSxDQUFDLDBCQUEwQixHQUFHO1FBQ2xDLE9BQU8sRUFBRSxTQUFTO1FBQ2xCLEdBQUcsRUFBRSxLQUFLO1FBQ1YsR0FBRyxFQUFFLEtBQUs7UUFDVixHQUFHLEVBQUUsS0FBSztRQUNWLFNBQVMsRUFBRSxLQUFLO0tBQ2pCLENBQUM7SUFFRixNQUFNLENBQUMsZ0JBQWdCLEdBQUc7UUFDeEIscUJBQXFCO1FBQ3JCLHNDQUFzQztRQUN0QyxxQkFBcUI7UUFDckIsa0JBQWtCO0tBQ25CLENBQUM7SUFFRixNQUFNLENBQUMsbUJBQW1CLEdBQUc7UUFDM0IsaUJBQWlCO1FBQ2pCLDhCQUE4QjtRQUM5Qixt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LEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUvY29uZmlnJztcbmltcG9ydCB7IHV1aWQgfSBmcm9tICdAaWdvMi91dGlscyc7XG5cbmltcG9ydCBPbEZlYXR1cmUgZnJvbSAnb2wvRmVhdHVyZSc7XG5pbXBvcnQgKiBhcyBvbGZvcm1hdCBmcm9tICdvbC9mb3JtYXQnO1xuaW1wb3J0IHR5cGUgeyBkZWZhdWx0IGFzIE9sR2VvbWV0cnkgfSBmcm9tICdvbC9nZW9tL0dlb21ldHJ5JztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgT2JzZXJ2ZXIgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gJy4uLy4uL2ZlYXR1cmUvc2hhcmVkL2ZlYXR1cmUuaW50ZXJmYWNlcyc7XG5pbXBvcnQge1xuICBJbXBvcnRJbnZhbGlkRmlsZUVycm9yLFxuICBJbXBvcnRPZ3JlU2VydmVyRXJyb3IsXG4gIEltcG9ydFNSU0Vycm9yLFxuICBJbXBvcnRTaXplRXJyb3IsXG4gIEltcG9ydFVucmVhZGFibGVGaWxlRXJyb3Jcbn0gZnJvbSAnLi9pbXBvcnQuZXJyb3JzJztcbmltcG9ydCB7IEltcG9ydEV4cG9ydFNlcnZpY2VPcHRpb25zIH0gZnJvbSAnLi9pbXBvcnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IGNvbXB1dGVMYXllclRpdGxlRnJvbUZpbGUsIGdldEZpbGVFeHRlbnNpb24gfSBmcm9tICcuL2ltcG9ydC51dGlscyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEltcG9ydFNlcnZpY2Uge1xuICBzdGF0aWMgZm9ybWF0RXh0ZW5zaW9uQXNzb2NpYXRpb24gPSB7XG4gICAgR2VvSlNPTjogJ2dlb2pzb24nLFxuICAgIEdNTDogJ2dtbCcsXG4gICAgR1BYOiAnZ3B4JyxcbiAgICBLTUw6ICdrbWwnLFxuICAgIFNoYXBlZmlsZTogJ3ppcCdcbiAgfTtcblxuICBzdGF0aWMgYWxsb3dlZE1pbWVUeXBlcyA9IFtcbiAgICAnYXBwbGljYXRpb24vZ21sK3htbCcsXG4gICAgJ2FwcGxpY2F0aW9uL3ZuZC5nb29nbGUtZWFydGgua21sK3htbCcsXG4gICAgJ2FwcGxpY2F0aW9uL2dweCt4bWwnLFxuICAgICdhcHBsaWNhdGlvbi9qc29uJ1xuICBdO1xuXG4gIHN0YXRpYyBhbGxvd2VkWmlwTWltZVR5cGVzID0gW1xuICAgICdhcHBsaWNhdGlvbi96aXAnLFxuICAgICdhcHBsaWNhdGlvbi94LXppcC1jb21wcmVzc2VkJyxcbiAgICAnYXBwbGljYXRpb24veC16aXAnXG4gIF07XG5cbiAgc3RhdGljIGFsbG93ZWRFeHRlbnNpb25zID0gWydnZW9qc29uJywgJ2ttbCcsICdncHgnLCAnanNvbicsICdnbWwnLCAnemlwJ107XG5cbiAgcHJpdmF0ZSBvZ3JlVXJsOiBzdHJpbmc7XG4gIHByaXZhdGUgY2xpZW50U2lkZUZpbGVTaXplTWF4OiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgY29uZmlnOiBDb25maWdTZXJ2aWNlXG4gICkge1xuICAgIGNvbnN0IGltcG9ydENvbmZpZyA9IHRoaXMuY29uZmlnLmdldENvbmZpZyhcbiAgICAgICdpbXBvcnRFeHBvcnQnXG4gICAgKSBhcyBJbXBvcnRFeHBvcnRTZXJ2aWNlT3B0aW9ucztcbiAgICB0aGlzLm9ncmVVcmwgPSBpbXBvcnRDb25maWcudXJsO1xuICAgIGNvbnN0IGNvbmZpZ0ZpbGVTaXplTWIgPSBpbXBvcnRDb25maWcuY2xpZW50U2lkZUZpbGVTaXplTWF4TWI7XG4gICAgdGhpcy5jbGllbnRTaWRlRmlsZVNpemVNYXggPVxuICAgICAgKGNvbmZpZ0ZpbGVTaXplTWIgPyBjb25maWdGaWxlU2l6ZU1iIDogMzApICogTWF0aC5wb3coMTAyNCwgMik7XG4gICAgaWYgKGltcG9ydENvbmZpZy5mb3JtYXRzKSB7XG4gICAgICBJbXBvcnRTZXJ2aWNlLmFsbG93ZWRFeHRlbnNpb25zID0gaW1wb3J0Q29uZmlnLmZvcm1hdHNcbiAgICAgICAgLm1hcCgoZm9ybWF0KSA9PiBJbXBvcnRTZXJ2aWNlLmZvcm1hdEV4dGVuc2lvbkFzc29jaWF0aW9uW2Zvcm1hdF0pXG4gICAgICAgIC5maWx0ZXIoKGUpID0+IGUpO1xuICAgICAgaWYgKEltcG9ydFNlcnZpY2UuYWxsb3dlZEV4dGVuc2lvbnMuaW5jbHVkZXMoJ2dlb2pzb24nKSkge1xuICAgICAgICBJbXBvcnRTZXJ2aWNlLmFsbG93ZWRFeHRlbnNpb25zLnB1c2goJ2pzb24nKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpbXBvcnQoXG4gICAgZmlsZTogRmlsZSxcbiAgICBwcm9qZWN0aW9uSW4gPSAnRVBTRzo0MzI2JyxcbiAgICBwcm9qZWN0aW9uT3V0ID0gJ0VQU0c6NDMyNidcbiAgKTogT2JzZXJ2YWJsZTxGZWF0dXJlW10+IHtcbiAgICByZXR1cm4gdGhpcy5pbXBvcnRBc3luYyhmaWxlLCBwcm9qZWN0aW9uSW4sIHByb2plY3Rpb25PdXQpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaWxlSW1wb3J0ZXIoXG4gICAgZmlsZTogRmlsZVxuICApOiAoXG4gICAgZmlsZTogRmlsZSxcbiAgICBvYnNlcnZlcjogT2JzZXJ2ZXI8RmVhdHVyZVtdPixcbiAgICBwcm9qZWN0aW9uSW46IHN0cmluZyxcbiAgICBwcm9qZWN0aW9uT3V0OiBzdHJpbmdcbiAgKSA9PiB2b2lkIHtcbiAgICBjb25zdCBleHRlbnNpb24gPSBnZXRGaWxlRXh0ZW5zaW9uKGZpbGUpO1xuICAgIGNvbnN0IGFsbG93ZWRFeHRlbnNpb25zID0gSW1wb3J0U2VydmljZS5hbGxvd2VkRXh0ZW5zaW9ucztcbiAgICBsZXQgemlwTWltZVR5cGVzID0gW107XG4gICAgaWYgKGFsbG93ZWRFeHRlbnNpb25zLmluY2x1ZGVzKCd6aXAnKSkge1xuICAgICAgemlwTWltZVR5cGVzID0gSW1wb3J0U2VydmljZS5hbGxvd2VkWmlwTWltZVR5cGVzO1xuICAgIH1cbiAgICBjb25zdCBtaW1lVHlwZSA9IGZpbGUudHlwZTtcbiAgICBjb25zdCBhbGxvd2VkTWltZVR5cGVzID0gW1xuICAgICAgLi4uSW1wb3J0U2VydmljZS5hbGxvd2VkTWltZVR5cGVzLFxuICAgICAgLi4uemlwTWltZVR5cGVzXG4gICAgXTtcblxuICAgIGlmIChcbiAgICAgIGFsbG93ZWRNaW1lVHlwZXMuaW5kZXhPZihtaW1lVHlwZSkgPCAwICYmXG4gICAgICBhbGxvd2VkRXh0ZW5zaW9ucy5pbmRleE9mKGV4dGVuc2lvbikgPCAwXG4gICAgKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICBtaW1lVHlwZSA9PT0gJ2FwcGxpY2F0aW9uL2pzb24nIHx8XG4gICAgICBbJ2pzb24nLCAnZ2VvanNvbicsICdrbWwnLCAnZ3B4J10uaW5kZXhPZihleHRlbnNpb24pID49IDBcbiAgICApIHtcbiAgICAgIHJldHVybiB0aGlzLmltcG9ydEZpbGU7XG4gICAgfSBlbHNlIGlmICh0aGlzLm9ncmVVcmwgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHRoaXMuaW1wb3J0RmlsZVdpdGhPZ3JlO1xuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIGltcG9ydEFzeW5jKFxuICAgIGZpbGU6IEZpbGUsXG4gICAgcHJvamVjdGlvbkluOiBzdHJpbmcsXG4gICAgcHJvamVjdGlvbk91dDogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8RmVhdHVyZVtdPiB7XG4gICAgY29uc3QgZG9JbXBvcnQgPSAob2JzZXJ2ZXI6IE9ic2VydmVyPEZlYXR1cmVbXT4pID0+IHtcbiAgICAgIGlmIChmaWxlLnNpemUgPj0gdGhpcy5jbGllbnRTaWRlRmlsZVNpemVNYXgpIHtcbiAgICAgICAgb2JzZXJ2ZXIuZXJyb3IobmV3IEltcG9ydFNpemVFcnJvcigpKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgaW1wb3J0ZXIgPSB0aGlzLmdldEZpbGVJbXBvcnRlcihmaWxlKTtcbiAgICAgIGlmIChpbXBvcnRlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIG9ic2VydmVyLmVycm9yKG5ldyBJbXBvcnRJbnZhbGlkRmlsZUVycm9yKCkpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGltcG9ydGVyLmNhbGwodGhpcywgZmlsZSwgb2JzZXJ2ZXIsIHByb2plY3Rpb25JbiwgcHJvamVjdGlvbk91dCk7XG4gICAgfTtcblxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShkb0ltcG9ydCk7XG4gIH1cblxuICBwcml2YXRlIGltcG9ydEZpbGUoXG4gICAgZmlsZTogRmlsZSxcbiAgICBvYnNlcnZlcjogT2JzZXJ2ZXI8RmVhdHVyZVtdPixcbiAgICBwcm9qZWN0aW9uSW46IHN0cmluZyxcbiAgICBwcm9qZWN0aW9uT3V0OiBzdHJpbmdcbiAgKSB7XG4gICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcblxuICAgIHJlYWRlci5vbmxvYWQgPSAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZmVhdHVyZXMgPSB0aGlzLnBhcnNlRmVhdHVyZXNGcm9tRmlsZShcbiAgICAgICAgICBmaWxlLFxuICAgICAgICAgIGV2ZW50LnRhcmdldC5yZXN1bHQsXG4gICAgICAgICAgcHJvamVjdGlvbkluLFxuICAgICAgICAgIHByb2plY3Rpb25PdXRcbiAgICAgICAgKTtcbiAgICAgICAgb2JzZXJ2ZXIubmV4dChmZWF0dXJlcyk7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgb2JzZXJ2ZXIuZXJyb3IobmV3IEltcG9ydFVucmVhZGFibGVGaWxlRXJyb3IoKSk7XG4gICAgICB9XG5cbiAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgfTtcblxuICAgIHJlYWRlci5vbmVycm9yID0gKCkgPT4ge1xuICAgICAgb2JzZXJ2ZXIuZXJyb3IobmV3IEltcG9ydFVucmVhZGFibGVGaWxlRXJyb3IoKSk7XG4gICAgfTtcblxuICAgIHJlYWRlci5yZWFkQXNUZXh0KGZpbGUsICdVVEYtOCcpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbXBvcnRGaWxlV2l0aE9ncmUoXG4gICAgZmlsZTogRmlsZSxcbiAgICBvYnNlcnZlcjogT2JzZXJ2ZXI8RmVhdHVyZVtdPixcbiAgICBwcm9qZWN0aW9uSW46IHN0cmluZyxcbiAgICBwcm9qZWN0aW9uT3V0OiBzdHJpbmdcbiAgKSB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5vZ3JlVXJsfS9jb252ZXJ0YDtcbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgndXBsb2FkJywgZmlsZSk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdzb3VyY2VTcnMnLCBwcm9qZWN0aW9uSW4pO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgndGFyZ2V0U3JzJywgcHJvamVjdGlvbk91dCk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdmb3JtYXRPdXRwdXQnLCAnR0VPSlNPTicpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgnc2tpcEZhaWx1cmVzJywgJycpO1xuXG4gICAgdGhpcy5odHRwLnBvc3QodXJsLCBmb3JtRGF0YSwgeyBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoKSB9KS5zdWJzY3JpYmUoXG4gICAgICAocmVzcG9uc2U6IHsgZXJyb3JzPzogc3RyaW5nW10gfSB8IG9iamVjdCB8IG51bGwpID0+IHtcbiAgICAgICAgaWYgKHJlc3BvbnNlID09PSBudWxsKSB7XG4gICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IobmV3IEltcG9ydFVucmVhZGFibGVGaWxlRXJyb3IoKSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZXJyb3JzID0gKHJlc3BvbnNlIGFzIGFueSkuZXJyb3JzIHx8IFtdO1xuICAgICAgICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBvYnNlcnZlci5lcnJvcihuZXcgSW1wb3J0VW5yZWFkYWJsZUZpbGVFcnJvcigpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBmZWF0dXJlcyA9IHRoaXMucGFyc2VGZWF0dXJlc0Zyb21HZW9KU09OKFxuICAgICAgICAgICAgZmlsZSxcbiAgICAgICAgICAgIHJlc3BvbnNlLFxuICAgICAgICAgICAgcHJvamVjdGlvbk91dFxuICAgICAgICAgICk7XG4gICAgICAgICAgb2JzZXJ2ZXIubmV4dChmZWF0dXJlcyk7XG4gICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgIGVycm9yLmVycm9yLmNhdWdodCA9IHRydWU7XG4gICAgICAgIGNvbnN0IGVyck1zZyA9IGVycm9yLmVycm9yLm1zZyB8fCAnJztcbiAgICAgICAgaWYgKGVyck1zZyA9PT0gJ05vIHZhbGlkIGZpbGVzIGZvdW5kJykge1xuICAgICAgICAgIG9ic2VydmVyLmVycm9yKG5ldyBJbXBvcnRJbnZhbGlkRmlsZUVycm9yKCkpO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgIGVyck1zZyAmJlxuICAgICAgICAgIGVyck1zZy5zdGFydFdpdGgoJ0VSUk9SIDE6IEZhaWxlZCB0byBwcm9jZXNzIFNSUyBkZWZpbml0aW9uJylcbiAgICAgICAgKSB7XG4gICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IobmV3IEltcG9ydFNSU0Vycm9yKCkpO1xuICAgICAgICB9IGVsc2UgaWYgKGVycm9yLnN0YXR1cyA9PT0gNTAwKSB7XG4gICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IobmV3IEltcG9ydE9ncmVTZXJ2ZXJFcnJvcigpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvYnNlcnZlci5lcnJvcihuZXcgSW1wb3J0VW5yZWFkYWJsZUZpbGVFcnJvcigpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlRmVhdHVyZXNGcm9tRmlsZShcbiAgICBmaWxlOiBGaWxlLFxuICAgIGRhdGE6IHN0cmluZyxcbiAgICBwcm9qZWN0aW9uSW46IHN0cmluZyxcbiAgICBwcm9qZWN0aW9uT3V0OiBzdHJpbmdcbiAgKTogRmVhdHVyZVtdIHtcbiAgICBjb25zdCBleHRlbnNpb24gPSBnZXRGaWxlRXh0ZW5zaW9uKGZpbGUpO1xuICAgIGNvbnN0IG1pbWVUeXBlID0gZmlsZS50eXBlO1xuXG4gICAgY29uc3QgR2VvSlNPTiA9IG5ldyBvbGZvcm1hdC5HZW9KU09OKCk7XG5cbiAgICBsZXQgZm9ybWF0O1xuICAgIGlmIChtaW1lVHlwZSA9PT0gJ2FwcGxpY2F0aW9uL3ZuZC5nb29nbGUtZWFydGgua21sK3htbCcpIHtcbiAgICAgIGZvcm1hdCA9IG5ldyBvbGZvcm1hdC5LTUwoKTtcbiAgICB9IGVsc2UgaWYgKG1pbWVUeXBlID09PSAnYXBwbGljYXRpb24vZ21sK3htbCcpIHtcbiAgICAgIGZvcm1hdCA9IG5ldyBvbGZvcm1hdC5HTUwoKTtcbiAgICB9IGVsc2UgaWYgKG1pbWVUeXBlID09PSAnYXBwbGljYXRpb24vZ3B4K3htbCcpIHtcbiAgICAgIGZvcm1hdCA9IG5ldyBvbGZvcm1hdC5HUFgoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3dpdGNoIChleHRlbnNpb24pIHtcbiAgICAgICAgY2FzZSAna21sJzpcbiAgICAgICAgICBmb3JtYXQgPSBuZXcgb2xmb3JtYXQuS01MKCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2dweCc6XG4gICAgICAgICAgZm9ybWF0ID0gbmV3IG9sZm9ybWF0LkdQWCgpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdnbWwnOlxuICAgICAgICAgIGZvcm1hdCA9IG5ldyBvbGZvcm1hdC5HTUwoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBmb3JtYXQgPSBHZW9KU09OO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IG9sRmVhdHVyZXMgPSBmb3JtYXQucmVhZEZlYXR1cmVzKGRhdGEsIHtcbiAgICAgIGRhdGFQcm9qZWN0aW9uOiBwcm9qZWN0aW9uSW4sXG4gICAgICBmZWF0dXJlUHJvamVjdGlvbjogcHJvamVjdGlvbk91dFxuICAgIH0pO1xuICAgIGNvbnN0IGZlYXR1cmVzID0gb2xGZWF0dXJlcy5tYXAoKG9sRmVhdHVyZTogT2xGZWF0dXJlPE9sR2VvbWV0cnk+KSA9PiB7XG4gICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihHZW9KU09OLndyaXRlRmVhdHVyZU9iamVjdChvbEZlYXR1cmUpLCB7XG4gICAgICAgIHByb2plY3Rpb246IHByb2plY3Rpb25PdXQsXG4gICAgICAgIG1ldGE6IHtcbiAgICAgICAgICBpZDogdXVpZCgpLFxuICAgICAgICAgIHRpdGxlOiBjb21wdXRlTGF5ZXJUaXRsZUZyb21GaWxlKGZpbGUpXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZlYXR1cmVzO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZUZlYXR1cmVzRnJvbUdlb0pTT04oXG4gICAgZmlsZTogRmlsZSxcbiAgICBkYXRhOiBvYmplY3QsXG4gICAgcHJvamVjdGlvbk91dDogc3RyaW5nXG4gICk6IEZlYXR1cmVbXSB7XG4gICAgY29uc3Qgb2xGb3JtYXQgPSBuZXcgb2xmb3JtYXQuR2VvSlNPTigpO1xuICAgIGNvbnN0IG9sRmVhdHVyZXMgPSBvbEZvcm1hdC5yZWFkRmVhdHVyZXMoZGF0YSk7XG4gICAgY29uc3QgZmVhdHVyZXMgPSBvbEZlYXR1cmVzLm1hcCgob2xGZWF0dXJlOiBPbEZlYXR1cmU8T2xHZW9tZXRyeT4pID0+IHtcbiAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKG9sRm9ybWF0LndyaXRlRmVhdHVyZU9iamVjdChvbEZlYXR1cmUpLCB7XG4gICAgICAgIHByb2plY3Rpb246IHByb2plY3Rpb25PdXQsXG4gICAgICAgIG1ldGE6IHtcbiAgICAgICAgICBpZDogdXVpZCgpLFxuICAgICAgICAgIHRpdGxlOiBjb21wdXRlTGF5ZXJUaXRsZUZyb21GaWxlKGZpbGUpXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZlYXR1cmVzIGFzIEZlYXR1cmVbXTtcbiAgfVxufVxuIl19
@@ -1,203 +0,0 @@
1
- import { uuid } from '@igo2/utils';
2
- import { first, of } from 'rxjs';
3
- import { ClusterDataSource } from '../../datasource/shared/datasources/cluster-datasource';
4
- import { FeatureDataSource } from '../../datasource/shared/datasources/feature-datasource';
5
- import { computeOlFeaturesExtent, featureToOl, moveToOlFeatures } from '../../feature/shared/feature.utils';
6
- import { VectorLayer } from '../../layer/shared/layers/vector-layer';
7
- import { featureRandomStyle, featureRandomStyleFunction } from '../../style/shared/feature/feature-style';
8
- export function addLayerAndFeaturesToMap(features, map, contextUri, layerTitle, layerService, storeToIdb = false) {
9
- const olFeatures = features.map((feature) => featureToOl(feature, map.projection));
10
- const id = uuid();
11
- const sourceOptions = {
12
- id,
13
- type: 'vector',
14
- queryable: true
15
- };
16
- const source = new FeatureDataSource(sourceOptions);
17
- source.ol.addFeatures(olFeatures);
18
- let randomStyle;
19
- let editable = false;
20
- if (olFeatures[0].getKeys().includes('_style') ||
21
- olFeatures[0].getKeys().includes('_mapTitle')) {
22
- randomStyle = featureRandomStyleFunction();
23
- }
24
- else {
25
- randomStyle = featureRandomStyle();
26
- editable = true;
27
- }
28
- const layer = layerService.createLayer({
29
- id,
30
- title: layerTitle,
31
- workspace: { enabled: true, searchIndexEnabled: true },
32
- isIgoInternalLayer: true,
33
- source,
34
- igoStyle: { editable },
35
- idbInfo: { firstLoad: true, storeToIdb, contextUri: contextUri || '*' },
36
- style: randomStyle
37
- });
38
- layer.setExtent(computeOlFeaturesExtent(olFeatures, map.viewProjection));
39
- map.layerController.add(layer);
40
- moveToOlFeatures(map.viewController, olFeatures);
41
- return layer;
42
- }
43
- export function addLayerAndFeaturesStyledToMap(features, map, layerTitle, styleListService, styleService, layerId, imposedSourceOptions, imposedLayerOptions, zoomTo = true) {
44
- const olFeatures = features.map((feature) => featureToOl(feature, map.projection));
45
- let style;
46
- let distance;
47
- if (styleListService.getStyleList(layerTitle.toString() + '.styleByAttribute')) {
48
- const styleByAttribute = styleListService.getStyleList(layerTitle.toString() + '.styleByAttribute');
49
- style = (feature, resolution) => {
50
- return styleService.createStyleByAttribute(feature, styleByAttribute, resolution);
51
- };
52
- }
53
- else if (styleListService.getStyleList(layerTitle.toString() + '.clusterStyle')) {
54
- const clusterParam = styleListService.getStyleList(layerTitle.toString() + '.clusterParam');
55
- distance = styleListService.getStyleList(layerTitle.toString() + '.distance');
56
- style = (feature, resolution) => {
57
- const baseStyle = styleService.createStyle(styleListService.getStyleList(layerTitle.toString() + '.clusterStyle'), feature, resolution);
58
- return styleService.createClusterStyle(feature, resolution, clusterParam, baseStyle);
59
- };
60
- }
61
- else if (styleListService.getStyleList(layerTitle.toString() + '.style')) {
62
- style = (feature, resolution) => styleService.createStyle(styleListService.getStyleList(layerTitle.toString() + '.style'), feature, resolution);
63
- }
64
- else if (styleListService.getStyleList('default.clusterStyle') &&
65
- features[0].geometry.type === 'Point') {
66
- const clusterParam = styleListService.getStyleList('default.clusterParam');
67
- distance = styleListService.getStyleList('default.distance');
68
- style = (feature, resolution) => {
69
- const baseStyle = styleService.createStyle(styleListService.getStyleList('default.clusterStyle'), feature, resolution);
70
- return styleService.createClusterStyle(feature, resolution, clusterParam, baseStyle);
71
- };
72
- }
73
- else {
74
- style = (feature, resolution) => styleService.createStyle(styleListService.getStyleList('default.style'), feature, resolution);
75
- }
76
- let source;
77
- if (styleListService.getStyleList(layerTitle.toString() + '.clusterStyle')) {
78
- const sourceOptions = {
79
- distance,
80
- type: 'cluster',
81
- queryable: true
82
- };
83
- source = new ClusterDataSource(Object.assign(sourceOptions, imposedSourceOptions));
84
- source.ol.source.addFeatures(olFeatures);
85
- }
86
- else if (styleListService.getStyleList(layerTitle.toString())) {
87
- const sourceOptions = {
88
- type: 'vector',
89
- queryable: true
90
- };
91
- source = new FeatureDataSource(Object.assign(sourceOptions, imposedSourceOptions));
92
- source.ol.addFeatures(olFeatures);
93
- }
94
- else if (styleListService.getStyleList('default.clusterStyle') &&
95
- features[0].geometry.type === 'Point') {
96
- const sourceOptions = {
97
- distance,
98
- type: 'cluster',
99
- queryable: true
100
- };
101
- source = new ClusterDataSource(Object.assign(sourceOptions, imposedSourceOptions));
102
- source.ol.source.addFeatures(olFeatures);
103
- }
104
- else {
105
- const sourceOptions = {
106
- type: 'vector',
107
- queryable: true
108
- };
109
- source = new FeatureDataSource(Object.assign(sourceOptions, imposedSourceOptions));
110
- source.ol.addFeatures(olFeatures);
111
- }
112
- const layer = new VectorLayer(Object.assign({
113
- title: layerTitle,
114
- id: layerId || uuid(),
115
- isIgoInternalLayer: true,
116
- source,
117
- style
118
- }, imposedLayerOptions));
119
- map.layerController.add(layer);
120
- if (zoomTo) {
121
- moveToOlFeatures(map.viewController, olFeatures);
122
- }
123
- return layer;
124
- }
125
- function padTo2Digits(num) {
126
- return num.toString().padStart(2, '0');
127
- }
128
- export function handleFileImportSuccess(file, features, map, contextUri, messageService, layerService, confirmDialogService, styleListService, styleService) {
129
- if (features.length === 0) {
130
- handleNothingToImportError(file, messageService);
131
- return;
132
- }
133
- let layerTitle = computeLayerTitleFromFile(file);
134
- const obs$ = confirmDialogService
135
- ? confirmDialogService.open('igo.geo.import.promptStoreToIdb')
136
- : of(false);
137
- obs$.pipe(first()).subscribe((confirm) => {
138
- const d = new Date();
139
- const dformat = [
140
- d.getFullYear(),
141
- padTo2Digits(d.getMonth() + 1),
142
- padTo2Digits(d.getDate())
143
- ].join('/') +
144
- ' ' +
145
- [padTo2Digits(d.getHours()), padTo2Digits(d.getMinutes())].join(':');
146
- layerTitle = confirm ? `${layerTitle} (${dformat})` : layerTitle;
147
- if (!styleListService) {
148
- addLayerAndFeaturesToMap(features, map, contextUri, layerTitle, layerService, confirm);
149
- }
150
- else {
151
- addLayerAndFeaturesStyledToMap(features, map, layerTitle, styleListService, styleService);
152
- }
153
- messageService.success('igo.geo.dropGeoFile.success.text', 'igo.geo.dropGeoFile.success.title', undefined, { value: layerTitle });
154
- });
155
- }
156
- export function handleFileImportError(file, error, messageService, sizeMb) {
157
- sizeMb = sizeMb ? sizeMb : 30;
158
- const errMapping = {
159
- 'Invalid file': handleInvalidFileImportError,
160
- 'File is too large': handleSizeFileImportError,
161
- 'Failed to read file': handleUnreadbleFileImportError,
162
- 'Invalid SRS definition': handleSRSImportError,
163
- 'Error 500 with OGRE': handleOgreServerImportError
164
- };
165
- errMapping[error.message](file, error, messageService, sizeMb);
166
- }
167
- export function handleInvalidFileImportError(file, error, messageService) {
168
- messageService.error('igo.geo.dropGeoFile.invalid.text', 'igo.geo.dropGeoFile.invalid.title', undefined, {
169
- value: file.name,
170
- mimeType: file.type
171
- });
172
- }
173
- export function handleUnreadbleFileImportError(file, error, messageService) {
174
- messageService.error('igo.geo.dropGeoFile.unreadable.text', 'igo.geo.dropGeoFile.unreadable.title', undefined, { value: file.name });
175
- }
176
- export function handleSizeFileImportError(file, error, messageService, sizeMb) {
177
- messageService.error('igo.geo.dropGeoFile.tooLarge.text', 'igo.geo.dropGeoFile.tooLarge.title', undefined, {
178
- value: file.name,
179
- size: sizeMb
180
- });
181
- }
182
- export function handleNothingToImportError(file, messageService) {
183
- messageService.error('igo.geo.dropGeoFile.empty.text', 'igo.geo.dropGeoFile.empty.title', undefined, {
184
- value: file.name,
185
- mimeType: file.type
186
- });
187
- }
188
- export function handleSRSImportError(file, messageService) {
189
- messageService.error('igo.geo.dropGeoFile.invalidSRS.text', 'igo.geo.dropGeoFile.invalidSRS.title', undefined, {
190
- value: file.name,
191
- mimeType: file.type
192
- });
193
- }
194
- export function handleOgreServerImportError(file, error, messageService) {
195
- messageService.error('igo.geo.dropGeoFile.ogreServer.text', 'igo.geo.dropGeoFile.ogreServer.title');
196
- }
197
- export function getFileExtension(file) {
198
- return file.name.split('.').pop().toLowerCase();
199
- }
200
- export function computeLayerTitleFromFile(file) {
201
- return file.name.substr(0, file.name.lastIndexOf('.'));
202
- }
203
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvaW1wb3J0LWV4cG9ydC9zaGFyZWQvaW1wb3J0LnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbkMsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFakMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFFM0YsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFHM0YsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2pCLE1BQU0sb0NBQW9DLENBQUM7QUFHNUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBR3JFLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsMEJBQTBCLEVBQzNCLE1BQU0sMENBQTBDLENBQUM7QUFLbEQsTUFBTSxVQUFVLHdCQUF3QixDQUN0QyxRQUFtQixFQUNuQixHQUFXLEVBQ1gsVUFBa0IsRUFDbEIsVUFBa0IsRUFDbEIsWUFBMEIsRUFDMUIsVUFBVSxHQUFHLEtBQUs7SUFFbEIsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQWdCLEVBQUUsRUFBRSxDQUNuRCxXQUFXLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FDckMsQ0FBQztJQUVGLE1BQU0sRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDO0lBQ2xCLE1BQU0sYUFBYSxHQUEwRDtRQUMzRSxFQUFFO1FBQ0YsSUFBSSxFQUFFLFFBQVE7UUFDZCxTQUFTLEVBQUUsSUFBSTtLQUNoQixDQUFDO0lBQ0YsTUFBTSxNQUFNLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQyxhQUFh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QUM7QUFFRCxNQUFNLFVBQVUsMkJBQTJCLENBQ3pDLElBQVUsRUFDVixLQUFZLEVBQ1osY0FBOEI7SUFFOUIsY0FBYyxDQUFDLEtBQUssQ0FDbEIscUNBQXFDLEVBQ3JDLHNDQUFzQyxDQUN2QyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxJQUFVO0lBQ3pDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDbEQsQ0FBQztBQUVELE1BQU0sVUFBVSx5QkFBeUIsQ0FBQyxJQUFVO0lBQ2xELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDekQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmZpcm1EaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29tbW9uL2NvbmZpcm0tZGlhbG9nJztcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9tZXNzYWdlJztcbmltcG9ydCB7IHV1aWQgfSBmcm9tICdAaWdvMi91dGlscyc7XG5cbmltcG9ydCB7IGZpcnN0LCBvZiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBDbHVzdGVyRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL2NsdXN0ZXItZGF0YXNvdXJjZSc7XG5pbXBvcnQgeyBDbHVzdGVyRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9jbHVzdGVyLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZlYXR1cmVEYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvZmVhdHVyZS1kYXRhc291cmNlJztcbmltcG9ydCB7IEZlYXR1cmVEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL2ZlYXR1cmUtZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gJy4uLy4uL2ZlYXR1cmUvc2hhcmVkL2ZlYXR1cmUuaW50ZXJmYWNlcyc7XG5pbXBvcnQge1xuICBjb21wdXRlT2xGZWF0dXJlc0V4dGVudCxcbiAgZmVhdHVyZVRvT2wsXG4gIG1vdmVUb09sRmVhdHVyZXNcbn0gZnJvbSAnLi4vLi4vZmVhdHVyZS9zaGFyZWQvZmVhdHVyZS51dGlscyc7XG5pbXBvcnQgeyBDbHVzdGVyUGFyYW0gfSBmcm9tICcuLi8uLi9sYXllci9zaGFyZWQvY2x1c3RlclBhcmFtJztcbmltcG9ydCB7IExheWVyU2VydmljZSB9IGZyb20gJy4uLy4uL2xheWVyL3NoYXJlZC9sYXllci5zZXJ2aWNlJztcbmltcG9ydCB7IFZlY3RvckxheWVyIH0gZnJvbSAnLi4vLi4vbGF5ZXIvc2hhcmVkL2xheWVycy92ZWN0b3ItbGF5ZXInO1xuaW1wb3J0IHsgSWdvTWFwIH0gZnJvbSAnLi4vLi4vbWFwL3NoYXJlZC9tYXAnO1xuaW1wb3J0IHsgUXVlcnlhYmxlRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuLi8uLi9xdWVyeS9zaGFyZWQvcXVlcnkuaW50ZXJmYWNlcyc7XG5pbXBvcnQge1xuICBmZWF0dXJlUmFuZG9tU3R5bGUsXG4gIGZlYXR1cmVSYW5kb21TdHlsZUZ1bmN0aW9uXG59IGZyb20gJy4uLy4uL3N0eWxlL3NoYXJlZC9mZWF0dXJlL2ZlYXR1cmUtc3R5bGUnO1xuaW1wb3J0IHsgU3R5bGVCeUF0dHJpYnV0ZSB9IGZyb20gJy4uLy4uL3N0eWxlL3NoYXJlZC92ZWN0b3IvdmVjdG9yLXN0eWxlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTdHlsZUxpc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc3R5bGUvc3R5bGUtbGlzdC9zdHlsZS1saXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgU3R5bGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc3R5bGUvc3R5bGUtc2VydmljZS9zdHlsZS5zZXJ2aWNlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGFkZExheWVyQW5kRmVhdHVyZXNUb01hcChcbiAgZmVhdHVyZXM6IEZlYXR1cmVbXSxcbiAgbWFwOiBJZ29NYXAsXG4gIGNvbnRleHRVcmk6IHN0cmluZyxcbiAgbGF5ZXJUaXRsZTogc3RyaW5nLFxuICBsYXllclNlcnZpY2U6IExheWVyU2VydmljZSxcbiAgc3RvcmVUb0lkYiA9IGZhbHNlXG4pOiBWZWN0b3JMYXllciB7XG4gIGNvbnN0IG9sRmVhdHVyZXMgPSBmZWF0dXJlcy5tYXAoKGZlYXR1cmU6IEZlYXR1cmUpID0+XG4gICAgZmVhdHVyZVRvT2woZmVhdHVyZSwgbWFwLnByb2plY3Rpb24pXG4gICk7XG5cbiAgY29uc3QgaWQgPSB1dWlkKCk7XG4gIGNvbnN0IHNvdXJjZU9wdGlvbnM6IEZlYXR1cmVEYXRhU291cmNlT3B0aW9ucyAmIFF1ZXJ5YWJsZURhdGFTb3VyY2VPcHRpb25zID0ge1xuICAgIGlkLFxuICAgIHR5cGU6ICd2ZWN0b3InLFxuICAgIHF1ZXJ5YWJsZTogdHJ1ZVxuICB9O1xuICBjb25zdCBzb3VyY2UgPSBuZXcgRmVhdHVyZURhdGFTb3VyY2Uoc291cmNlT3B0aW9ucyk7XG4gIHNvdXJjZS5vbC5hZGRGZWF0dXJlcyhvbEZlYXR1cmVzKTtcbiAgbGV0IHJhbmRvbVN0eWxlO1xuICBsZXQgZWRpdGFibGUgPSBmYWxzZTtcbiAgaWYgKFxuICAgIG9sRmVhdHVyZXNbMF0uZ2V0S2V5cygpLmluY2x1ZGVzKCdfc3R5bGUnKSB8fFxuICAgIG9sRmVhdHVyZXNbMF0uZ2V0S2V5cygpLmluY2x1ZGVzKCdfbWFwVGl0bGUnKVxuICApIHtcbiAgICByYW5kb21TdHlsZSA9IGZlYXR1cmVSYW5kb21TdHlsZUZ1bmN0aW9uKCk7XG4gIH0gZWxzZSB7XG4gICAgcmFuZG9tU3R5bGUgPSBmZWF0dXJlUmFuZG9tU3R5bGUoKTtcbiAgICBlZGl0YWJsZSA9IHRydWU7XG4gIH1cbiAgY29uc3QgbGF5ZXIgPSBsYXllclNlcnZpY2UuY3JlYXRlTGF5ZXIoe1xuICAgIGlkLFxuICAgIHRpdGxlOiBsYXllclRpdGxlLFxuICAgIHdvcmtzcGFjZTogeyBlbmFibGVkOiB0cnVlLCBzZWFyY2hJbmRleEVuYWJsZWQ6IHRydWUgfSxcbiAgICBpc0lnb0ludGVybmFsTGF5ZXI6IHRydWUsXG4gICAgc291cmNlLFxuICAgIGlnb1N0eWxlOiB7IGVkaXRhYmxlIH0sXG4gICAgaWRiSW5mbzogeyBmaXJzdExvYWQ6IHRydWUsIHN0b3JlVG9JZGIsIGNvbnRleHRVcmk6IGNvbnRleHRVcmkgfHwgJyonIH0sXG4gICAgc3R5bGU6IHJhbmRvbVN0eWxlXG4gIH0pIGFzIFZlY3RvckxheWVyO1xuICBsYXllci5zZXRFeHRlbnQoY29tcHV0ZU9sRmVhdHVyZXNFeHRlbnQob2xGZWF0dXJlcywgbWFwLnZpZXdQcm9qZWN0aW9uKSk7XG4gIG1hcC5sYXllckNvbnRyb2xsZXIuYWRkKGxheWVyKTtcbiAgbW92ZVRvT2xGZWF0dXJlcyhtYXAudmlld0NvbnRyb2xsZXIsIG9sRmVhdHVyZXMpO1xuXG4gIHJldHVybiBsYXllcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFkZExheWVyQW5kRmVhdHVyZXNTdHlsZWRUb01hcChcbiAgZmVhdHVyZXM6IEZlYXR1cmVbXSxcbiAgbWFwOiBJZ29NYXAsXG4gIGxheWVyVGl0bGU6IHN0cmluZyxcbiAgc3R5bGVMaXN0U2VydmljZTogU3R5bGVMaXN0U2VydmljZSxcbiAgc3R5bGVTZXJ2aWNlOiBTdHlsZVNlcnZpY2UsXG4gIGxheWVySWQ/OiBzdHJpbmcsXG4gIGltcG9zZWRTb3VyY2VPcHRpb25zPyxcbiAgaW1wb3NlZExheWVyT3B0aW9ucz8sXG4gIHpvb21UbyA9IHRydWVcbik6IFZlY3RvckxheWVyIHtcbiAgY29uc3Qgb2xGZWF0dXJlcyA9IGZlYXR1cmVzLm1hcCgoZmVhdHVyZTogRmVhdHVyZSkgPT5cbiAgICBmZWF0dXJlVG9PbChmZWF0dXJlLCBtYXAucHJvamVjdGlvbilcbiAgKTtcbiAgbGV0IHN0eWxlO1xuICBsZXQgZGlzdGFuY2U6IG51bWJlcjtcblxuICBpZiAoXG4gICAgc3R5bGVMaXN0U2VydmljZS5nZXRTdHlsZUxpc3QobGF5ZXJUaXRsZS50b1N0cmluZygpICsgJy5zdHlsZUJ5QXR0cmlidXRlJylcbiAgKSB7XG4gICAgY29uc3Qgc3R5bGVCeUF0dHJpYnV0ZTogU3R5bGVCeUF0dHJpYnV0ZSA9IHN0eWxlTGlzdFNlcnZpY2UuZ2V0U3R5bGVMaXN0KFxuICAgICAgbGF5ZXJUaXRsZS50b1N0cmluZygpICsgJy5zdHlsZUJ5QXR0cmlidXRlJ1xuICAgICk7XG5cbiAgICBzdHlsZSA9IChmZWF0dXJlLCByZXNvbHV0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gc3R5bGVTZXJ2aWNlLmNyZWF0ZVN0eWxlQnlBdHRyaWJ1dGUoXG4gICAgICAgIGZlYXR1cmUsXG4gICAgICAgIHN0eWxlQnlBdHRyaWJ1dGUsXG4gICAgICAgIHJlc29sdXRpb25cbiAgICAgICk7XG4gICAgfTtcbiAgfSBlbHNlIGlmIChcbiAgICBzdHlsZUxpc3RTZXJ2aWNlLmdldFN0eWxlTGlzdChsYXllclRpdGxlLnRvU3RyaW5nKCkgKyAnLmNsdXN0ZXJTdHlsZScpXG4gICkge1xuICAgIGNvbnN0IGNsdXN0ZXJQYXJhbTogQ2x1c3RlclBhcmFtID0gc3R5bGVMaXN0U2VydmljZS5nZXRTdHlsZUxpc3QoXG4gICAgICBsYXllclRpdGxlLnRvU3RyaW5nKCkgKyAnLmNsdXN0ZXJQYXJhbSdcbiAgICApO1xuICAgIGRpc3RhbmNlID0gc3R5bGVMaXN0U2VydmljZS5nZXRTdHlsZUxpc3QoXG4gICAgICBsYXllclRpdGxlLnRvU3RyaW5nKCkgKyAnLmRpc3RhbmNlJ1xuICAgICk7XG5cbiAgICBzdHlsZSA9IChmZWF0dXJlLCByZXNvbHV0aW9uKSA9PiB7XG4gICAgICBjb25zdCBiYXNlU3R5bGUgPSBzdHlsZVNlcnZpY2UuY3JlYXRlU3R5bGUoXG4gICAgICAgIHN0eWxlTGlzdFNlcnZpY2UuZ2V0U3R5bGVMaXN0KGxheWVyVGl0bGUudG9TdHJpbmcoKSArICcuY2x1c3RlclN0eWxlJyksXG4gICAgICAgIGZlYXR1cmUsXG4gICAgICAgIHJlc29sdXRpb25cbiAgICAgICk7XG4gICAgICByZXR1cm4gc3R5bGVTZXJ2aWNlLmNyZWF0ZUNsdXN0ZXJTdHlsZShcbiAgICAgICAgZmVhdHVyZSxcbiAgICAgICAgcmVzb2x1dGlvbixcbiAgICAgICAgY2x1c3RlclBhcmFtLFxuICAgICAgICBiYXNlU3R5bGVcbiAgICAgICk7XG4gICAgfTtcbiAgfSBlbHNlIGlmIChzdHlsZUxpc3RTZXJ2aWNlLmdldFN0eWxlTGlzdChsYXllclRpdGxlLnRvU3RyaW5nKCkgKyAnLnN0eWxlJykpIHtcbiAgICBzdHlsZSA9IChmZWF0dXJlLCByZXNvbHV0aW9uKSA9PlxuICAgICAgc3R5bGVTZXJ2aWNlLmNyZWF0ZVN0eWxlKFxuICAgICAgICBzdHlsZUxpc3RTZXJ2aWNlLmdldFN0eWxlTGlzdChsYXllclRpdGxlLnRvU3RyaW5nKCkgKyAnLnN0eWxlJyksXG4gICAgICAgIGZlYXR1cmUsXG4gICAgICAgIHJlc29sdXRpb25cbiAgICAgICk7XG4gIH0gZWxzZSBpZiAoXG4gICAgc3R5bGVMaXN0U2VydmljZS5nZXRTdHlsZUxpc3QoJ2RlZmF1bHQuY2x1c3RlclN0eWxlJykgJiZcbiAgICBmZWF0dXJlc1swXS5nZW9tZXRyeS50eXBlID09PSAnUG9pbnQnXG4gICkge1xuICAgIGNvbnN0IGNsdXN0ZXJQYXJhbTogQ2x1c3RlclBhcmFtID0gc3R5bGVMaXN0U2VydmljZS5nZXRTdHlsZUxpc3QoXG4gICAgICAnZGVmYXVsdC5jbHVzdGVyUGFyYW0nXG4gICAgKTtcbiAgICBkaXN0YW5jZSA9IHN0eWxlTGlzdFNlcnZpY2UuZ2V0U3R5bGVMaXN0KCdkZWZhdWx0LmRpc3RhbmNlJyk7XG5cbiAgICBzdHlsZSA9IChmZWF0dXJlLCByZXNvbHV0aW9uKSA9PiB7XG4gICAgICBjb25zdCBiYXNlU3R5bGUgPSBzdHlsZVNlcnZpY2UuY3JlYXRlU3R5bGUoXG4gICAgICAgIHN0eWxlTGlzdFNlcnZpY2UuZ2V0U3R5bGVMaXN0KCdkZWZhdWx0LmNsdXN0ZXJTdHlsZScpLFxuICAgICAgICBmZWF0dXJlLFxuICAgICAgICByZXNvbHV0aW9uXG4gICAgICApO1xuICAgICAgcmV0dXJuIHN0eWxlU2VydmljZS5jcmVhdGVDbHVzdGVyU3R5bGUoXG4gICAgICAgIGZlYXR1cmUsXG4gICAgICAgIHJlc29sdXRpb24sXG4gICAgICAgIGNsdXN0ZXJQYXJhbSxcbiAgICAgICAgYmFzZVN0eWxlXG4gICAgICApO1xuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgc3R5bGUgPSAoZmVhdHVyZSwgcmVzb2x1dGlvbikgPT5cbiAgICAgIHN0eWxlU2VydmljZS5jcmVhdGVTdHlsZShcbiAgICAgICAgc3R5bGVMaXN0U2VydmljZS5nZXRTdHlsZUxpc3QoJ2RlZmF1bHQuc3R5bGUnKSxcbiAgICAgICAgZmVhdHVyZSxcbiAgICAgICAgcmVzb2x1dGlvblxuICAgICAgKTtcbiAgfVxuXG4gIGxldCBzb3VyY2U7XG4gIGlmIChzdHlsZUxpc3RTZXJ2aWNlLmdldFN0eWxlTGlzdChsYXllclRpdGxlLnRvU3RyaW5nKCkgKyAnLmNsdXN0ZXJTdHlsZScpKSB7XG4gICAgY29uc3Qgc291cmNlT3B0aW9uczogQ2x1c3RlckRhdGFTb3VyY2VPcHRpb25zICYgUXVlcnlhYmxlRGF0YVNvdXJjZU9wdGlvbnMgPVxuICAgICAge1xuICAgICAgICBkaXN0YW5jZSxcbiAgICAgICAgdHlwZTogJ2NsdXN0ZXInLFxuICAgICAgICBxdWVyeWFibGU6IHRydWVcbiAgICAgIH07XG4gICAgc291cmNlID0gbmV3IENsdXN0ZXJEYXRhU291cmNlKFxuICAgICAgT2JqZWN0LmFzc2lnbihzb3VyY2VPcHRpb25zLCBpbXBvc2VkU291cmNlT3B0aW9ucylcbiAgICApO1xuICAgIHNvdXJjZS5vbC5zb3VyY2UuYWRkRmVhdHVyZXMob2xGZWF0dXJlcyk7XG4gIH0gZWxzZSBpZiAoc3R5bGVMaXN0U2VydmljZS5nZXRTdHlsZUxpc3QobGF5ZXJUaXRsZS50b1N0cmluZygpKSkge1xuICAgIGNvbnN0IHNvdXJjZU9wdGlvbnM6IEZlYXR1cmVEYXRhU291cmNlT3B0aW9ucyAmIFF1ZXJ5YWJsZURhdGFTb3VyY2VPcHRpb25zID1cbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ3ZlY3RvcicsXG4gICAgICAgIHF1ZXJ5YWJsZTogdHJ1ZVxuICAgICAgfTtcbiAgICBzb3VyY2UgPSBuZXcgRmVhdHVyZURhdGFTb3VyY2UoXG4gICAgICBPYmplY3QuYXNzaWduKHNvdXJjZU9wdGlvbnMsIGltcG9zZWRTb3VyY2VPcHRpb25zKVxuICAgICk7XG4gICAgc291cmNlLm9sLmFkZEZlYXR1cmVzKG9sRmVhdHVyZXMpO1xuICB9IGVsc2UgaWYgKFxuICAgIHN0eWxlTGlzdFNlcnZpY2UuZ2V0U3R5bGVMaXN0KCdkZWZhdWx0LmNsdXN0ZXJTdHlsZScpICYmXG4gICAgZmVhdHVyZXNbMF0uZ2VvbWV0cnkudHlwZSA9PT0gJ1BvaW50J1xuICApIHtcbiAgICBjb25zdCBzb3VyY2VPcHRpb25zOiBDbHVzdGVyRGF0YVNvdXJjZU9wdGlvbnMgJiBRdWVyeWFibGVEYXRhU291cmNlT3B0aW9ucyA9XG4gICAgICB7XG4gICAgICAgIGRpc3RhbmNlLFxuICAgICAgICB0eXBlOiAnY2x1c3RlcicsXG4gICAgICAgIHF1ZXJ5YWJsZTogdHJ1ZVxuICAgICAgfTtcbiAgICBzb3VyY2UgPSBuZXcgQ2x1c3RlckRhdGFTb3VyY2UoXG4gICAgICBPYmplY3QuYXNzaWduKHNvdXJjZU9wdGlvbnMsIGltcG9zZWRTb3VyY2VPcHRpb25zKVxuICAgICk7XG4gICAgc291cmNlLm9sLnNvdXJjZS5hZGRGZWF0dXJlcyhvbEZlYXR1cmVzKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBzb3VyY2VPcHRpb25zOiBGZWF0dXJlRGF0YVNvdXJjZU9wdGlvbnMgJiBRdWVyeWFibGVEYXRhU291cmNlT3B0aW9ucyA9XG4gICAgICB7XG4gICAgICAgIHR5cGU6ICd2ZWN0b3InLFxuICAgICAgICBxdWVyeWFibGU6IHRydWVcbiAgICAgIH07XG4gICAgc291cmNlID0gbmV3IEZlYXR1cmVEYXRhU291cmNlKFxuICAgICAgT2JqZWN0LmFzc2lnbihzb3VyY2VPcHRpb25zLCBpbXBvc2VkU291cmNlT3B0aW9ucylcbiAgICApO1xuICAgIHNvdXJjZS5vbC5hZGRGZWF0dXJlcyhvbEZlYXR1cmVzKTtcbiAgfVxuXG4gIGNvbnN0IGxheWVyID0gbmV3IFZlY3RvckxheWVyKFxuICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICB7XG4gICAgICAgIHRpdGxlOiBsYXllclRpdGxlLFxuICAgICAgICBpZDogbGF5ZXJJZCB8fCB1dWlkKCksXG4gICAgICAgIGlzSWdvSW50ZXJuYWxMYXllcjogdHJ1ZSxcbiAgICAgICAgc291cmNlLFxuICAgICAgICBzdHlsZVxuICAgICAgfSxcbiAgICAgIGltcG9zZWRMYXllck9wdGlvbnNcbiAgICApXG4gICk7XG4gIG1hcC5sYXllckNvbnRyb2xsZXIuYWRkKGxheWVyKTtcbiAgaWYgKHpvb21Ubykge1xuICAgIG1vdmVUb09sRmVhdHVyZXMobWFwLnZpZXdDb250cm9sbGVyLCBvbEZlYXR1cmVzKTtcbiAgfVxuICByZXR1cm4gbGF5ZXI7XG59XG5cbmZ1bmN0aW9uIHBhZFRvMkRpZ2l0cyhudW0pIHtcbiAgcmV0dXJuIG51bS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVGaWxlSW1wb3J0U3VjY2VzcyhcbiAgZmlsZTogRmlsZSxcbiAgZmVhdHVyZXM6IEZlYXR1cmVbXSxcbiAgbWFwOiBJZ29NYXAsXG4gIGNvbnRleHRVcmk6IHN0cmluZyxcbiAgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICBsYXllclNlcnZpY2U6IExheWVyU2VydmljZSxcbiAgY29uZmlybURpYWxvZ1NlcnZpY2U/OiBDb25maXJtRGlhbG9nU2VydmljZSxcbiAgc3R5bGVMaXN0U2VydmljZT86IFN0eWxlTGlzdFNlcnZpY2UsXG4gIHN0eWxlU2VydmljZT86IFN0eWxlU2VydmljZVxuKSB7XG4gIGlmIChmZWF0dXJlcy5sZW5ndGggPT09IDApIHtcbiAgICBoYW5kbGVOb3RoaW5nVG9JbXBvcnRFcnJvcihmaWxlLCBtZXNzYWdlU2VydmljZSk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgbGV0IGxheWVyVGl0bGUgPSBjb21wdXRlTGF5ZXJUaXRsZUZyb21GaWxlKGZpbGUpO1xuXG4gIGNvbnN0IG9icyQgPSBjb25maXJtRGlhbG9nU2VydmljZVxuICAgID8gY29uZmlybURpYWxvZ1NlcnZpY2Uub3BlbignaWdvLmdlby5pbXBvcnQucHJvbXB0U3RvcmVUb0lkYicpXG4gICAgOiBvZihmYWxzZSk7XG5cbiAgb2JzJC5waXBlKGZpcnN0KCkpLnN1YnNjcmliZSgoY29uZmlybSkgPT4ge1xuICAgIGNvbnN0IGQgPSBuZXcgRGF0ZSgpO1xuICAgIGNvbnN0IGRmb3JtYXQgPVxuICAgICAgW1xuICAgICAgICBkLmdldEZ1bGxZZWFyKCksXG4gICAgICAgIHBhZFRvMkRpZ2l0cyhkLmdldE1vbnRoKCkgKyAxKSxcbiAgICAgICAgcGFkVG8yRGlnaXRzKGQuZ2V0RGF0ZSgpKVxuICAgICAgXS5qb2luKCcvJykgK1xuICAgICAgJyAnICtcbiAgICAgIFtwYWRUbzJEaWdpdHMoZC5nZXRIb3VycygpKSwgcGFkVG8yRGlnaXRzKGQuZ2V0TWludXRlcygpKV0uam9pbignOicpO1xuXG4gICAgbGF5ZXJUaXRsZSA9IGNvbmZpcm0gPyBgJHtsYXllclRpdGxlfSAoJHtkZm9ybWF0fSlgIDogbGF5ZXJUaXRsZTtcbiAgICBpZiAoIXN0eWxlTGlzdFNlcnZpY2UpIHtcbiAgICAgIGFkZExheWVyQW5kRmVhdHVyZXNUb01hcChcbiAgICAgICAgZmVhdHVyZXMsXG4gICAgICAgIG1hcCxcbiAgICAgICAgY29udGV4dFVyaSxcbiAgICAgICAgbGF5ZXJUaXRsZSxcbiAgICAgICAgbGF5ZXJTZXJ2aWNlLFxuICAgICAgICBjb25maXJtXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBhZGRMYXllckFuZEZlYXR1cmVzU3R5bGVkVG9NYXAoXG4gICAgICAgIGZlYXR1cmVzLFxuICAgICAgICBtYXAsXG4gICAgICAgIGxheWVyVGl0bGUsXG4gICAgICAgIHN0eWxlTGlzdFNlcnZpY2UsXG4gICAgICAgIHN0eWxlU2VydmljZVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBtZXNzYWdlU2VydmljZS5zdWNjZXNzKFxuICAgICAgJ2lnby5nZW8uZHJvcEdlb0ZpbGUuc3VjY2Vzcy50ZXh0JyxcbiAgICAgICdpZ28uZ2VvLmRyb3BHZW9GaWxlLnN1Y2Nlc3MudGl0bGUnLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgeyB2YWx1ZTogbGF5ZXJUaXRsZSB9XG4gICAgKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVGaWxlSW1wb3J0RXJyb3IoXG4gIGZpbGU6IEZpbGUsXG4gIGVycm9yOiBFcnJvcixcbiAgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICBzaXplTWI/OiBudW1iZXJcbikge1xuICBzaXplTWIgPSBzaXplTWIgPyBzaXplTWIgOiAzMDtcbiAgY29uc3QgZXJyTWFwcGluZyA9IHtcbiAgICAnSW52YWxpZCBmaWxlJzogaGFuZGxlSW52YWxpZEZpbGVJbXBvcnRFcnJvcixcbiAgICAnRmlsZSBpcyB0b28gbGFyZ2UnOiBoYW5kbGVTaXplRmlsZUltcG9ydEVycm9yLFxuICAgICdGYWlsZWQgdG8gcmVhZCBmaWxlJzogaGFuZGxlVW5yZWFkYmxlRmlsZUltcG9ydEVycm9yLFxuICAgICdJbnZhbGlkIFNSUyBkZWZpbml0aW9uJzogaGFuZGxlU1JTSW1wb3J0RXJyb3IsXG4gICAgJ0Vycm9yIDUwMCB3aXRoIE9HUkUnOiBoYW5kbGVPZ3JlU2VydmVySW1wb3J0RXJyb3JcbiAgfTtcbiAgZXJyTWFwcGluZ1tlcnJvci5tZXNzYWdlXShmaWxlLCBlcnJvciwgbWVzc2FnZVNlcnZpY2UsIHNpemVNYik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVJbnZhbGlkRmlsZUltcG9ydEVycm9yKFxuICBmaWxlOiBGaWxlLFxuICBlcnJvcjogRXJyb3IsXG4gIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZVxuKSB7XG4gIG1lc3NhZ2VTZXJ2aWNlLmVycm9yKFxuICAgICdpZ28uZ2VvLmRyb3BHZW9GaWxlLmludmFsaWQudGV4dCcsXG4gICAgJ2lnby5nZW8uZHJvcEdlb0ZpbGUuaW52YWxpZC50aXRsZScsXG4gICAgdW5kZWZpbmVkLFxuICAgIHtcbiAgICAgIHZhbHVlOiBmaWxlLm5hbWUsXG4gICAgICBtaW1lVHlwZTogZmlsZS50eXBlXG4gICAgfVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlVW5yZWFkYmxlRmlsZUltcG9ydEVycm9yKFxuICBmaWxlOiBGaWxlLFxuICBlcnJvcjogRXJyb3IsXG4gIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZVxuKSB7XG4gIG1lc3NhZ2VTZXJ2aWNlLmVycm9yKFxuICAgICdpZ28uZ2VvLmRyb3BHZW9GaWxlLnVucmVhZGFibGUudGV4dCcsXG4gICAgJ2lnby5nZW8uZHJvcEdlb0ZpbGUudW5yZWFkYWJsZS50aXRsZScsXG4gICAgdW5kZWZpbmVkLFxuICAgIHsgdmFsdWU6IGZpbGUubmFtZSB9XG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVTaXplRmlsZUltcG9ydEVycm9yKFxuICBmaWxlOiBGaWxlLFxuICBlcnJvcjogRXJyb3IsXG4gIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgc2l6ZU1iOiBudW1iZXJcbikge1xuICBtZXNzYWdlU2VydmljZS5lcnJvcihcbiAgICAnaWdvLmdlby5kcm9wR2VvRmlsZS50b29MYXJnZS50ZXh0JyxcbiAgICAnaWdvLmdlby5kcm9wR2VvRmlsZS50b29MYXJnZS50aXRsZScsXG4gICAgdW5kZWZpbmVkLFxuICAgIHtcbiAgICAgIHZhbHVlOiBmaWxlLm5hbWUsXG4gICAgICBzaXplOiBzaXplTWJcbiAgICB9XG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVOb3RoaW5nVG9JbXBvcnRFcnJvcihcbiAgZmlsZTogRmlsZSxcbiAgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlXG4pIHtcbiAgbWVzc2FnZVNlcnZpY2UuZXJyb3IoXG4gICAgJ2lnby5nZW8uZHJvcEdlb0ZpbGUuZW1wdHkudGV4dCcsXG4gICAgJ2lnby5nZW8uZHJvcEdlb0ZpbGUuZW1wdHkudGl0bGUnLFxuICAgIHVuZGVmaW5lZCxcbiAgICB7XG4gICAgICB2YWx1ZTogZmlsZS5uYW1lLFxuICAgICAgbWltZVR5cGU6IGZpbGUudHlwZVxuICAgIH1cbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZVNSU0ltcG9ydEVycm9yKFxuICBmaWxlOiBGaWxlLFxuICBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2Vcbikge1xuICBtZXNzYWdlU2VydmljZS5lcnJvcihcbiAgICAnaWdvLmdlby5kcm9wR2VvRmlsZS5pbnZhbGlkU1JTLnRleHQnLFxuICAgICdpZ28uZ2VvLmRyb3BHZW9GaWxlLmludmFsaWRTUlMudGl0bGUnLFxuICAgIHVuZGVmaW5lZCxcbiAgICB7XG4gICAgICB2YWx1ZTogZmlsZS5uYW1lLFxuICAgICAgbWltZVR5cGU6IGZpbGUudHlwZVxuICAgIH1cbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZU9ncmVTZXJ2ZXJJbXBvcnRFcnJvcihcbiAgZmlsZTogRmlsZSxcbiAgZXJyb3I6IEVycm9yLFxuICBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2Vcbikge1xuICBtZXNzYWdlU2VydmljZS5lcnJvcihcbiAgICAnaWdvLmdlby5kcm9wR2VvRmlsZS5vZ3JlU2VydmVyLnRleHQnLFxuICAgICdpZ28uZ2VvLmRyb3BHZW9GaWxlLm9ncmVTZXJ2ZXIudGl0bGUnXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWxlRXh0ZW5zaW9uKGZpbGU6IEZpbGUpOiBzdHJpbmcge1xuICByZXR1cm4gZmlsZS5uYW1lLnNwbGl0KCcuJykucG9wKCkudG9Mb3dlckNhc2UoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXB1dGVMYXllclRpdGxlRnJvbUZpbGUoZmlsZTogRmlsZSk6IHN0cmluZyB7XG4gIHJldHVybiBmaWxlLm5hbWUuc3Vic3RyKDAsIGZpbGUubmFtZS5sYXN0SW5kZXhPZignLicpKTtcbn1cbiJdfQ==
@@ -1,11 +0,0 @@
1
- export * from './drop-geo-file.directive';
2
- export * from './export.errors';
3
- export * from './export.interface';
4
- export * from './export.service';
5
- export * from './export.type';
6
- export * from './export.utils';
7
- export * from './import.errors';
8
- export * from './import.interface';
9
- export * from './import.service';
10
- export * from './import.utils';
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9pbXBvcnQtZXhwb3J0L3NoYXJlZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZHJvcC1nZW8tZmlsZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9leHBvcnQuZXJyb3JzJztcbmV4cG9ydCAqIGZyb20gJy4vZXhwb3J0LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2V4cG9ydC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZXhwb3J0LnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9leHBvcnQudXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9pbXBvcnQuZXJyb3JzJztcbmV4cG9ydCAqIGZyb20gJy4vaW1wb3J0LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ltcG9ydC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaW1wb3J0LnV0aWxzJztcbiJdfQ==
@@ -1,16 +0,0 @@
1
- export * from './layer-group';
2
- export * from './layer-item';
3
- export * from './layer-legend-item';
4
- export * from './layer-legend-list';
5
- export * from './layer-legend';
6
- export * from './layer-list-tool';
7
- export * from './layer-list';
8
- export * from './layer-search';
9
- export * from './layer-unavailable';
10
- export * from './layer-viewer-bottom-actions';
11
- export * from './layer-viewer';
12
- export * from './layer-visibility-button';
13
- export * from './shared';
14
- export * from './track-feature-button';
15
- export * from './utils';
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9sYXllci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9sYXllci1ncm91cCc7XG5leHBvcnQgKiBmcm9tICcuL2xheWVyLWl0ZW0nO1xuZXhwb3J0ICogZnJvbSAnLi9sYXllci1sZWdlbmQtaXRlbSc7XG5leHBvcnQgKiBmcm9tICcuL2xheWVyLWxlZ2VuZC1saXN0JztcbmV4cG9ydCAqIGZyb20gJy4vbGF5ZXItbGVnZW5kJztcbmV4cG9ydCAqIGZyb20gJy4vbGF5ZXItbGlzdC10b29sJztcbmV4cG9ydCAqIGZyb20gJy4vbGF5ZXItbGlzdCc7XG5leHBvcnQgKiBmcm9tICcuL2xheWVyLXNlYXJjaCc7XG5leHBvcnQgKiBmcm9tICcuL2xheWVyLXVuYXZhaWxhYmxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGF5ZXItdmlld2VyLWJvdHRvbS1hY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vbGF5ZXItdmlld2VyJztcbmV4cG9ydCAqIGZyb20gJy4vbGF5ZXItdmlzaWJpbGl0eS1idXR0b24nO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQnO1xuZXhwb3J0ICogZnJvbSAnLi90cmFjay1mZWF0dXJlLWJ1dHRvbic7XG5leHBvcnQgKiBmcm9tICcuL3V0aWxzJztcbiJdfQ==
@@ -1,2 +0,0 @@
1
- export * from './layer-group.component';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9sYXllci9sYXllci1ncm91cC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9sYXllci1ncm91cC5jb21wb25lbnQnO1xuIl19