@igo2/geo 1.11.1 → 1.13.0-alpha.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 (989) hide show
  1. package/assets/icons/cross_black_18px.svg +88 -88
  2. package/assets/icons/place_blue_36px.svg +55 -55
  3. package/assets/icons/place_green_36px.svg +55 -55
  4. package/assets/icons/place_red_36px.svg +55 -55
  5. package/assets/icons/place_yellow_36px.svg +55 -55
  6. package/{esm2015/igo2-geo.js → esm2020/igo2-geo.mjs} +0 -0
  7. package/esm2020/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +299 -0
  8. package/esm2020/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +268 -0
  9. package/esm2020/lib/catalog/catalog-browser/catalog-browser.component.mjs +244 -0
  10. package/esm2020/lib/catalog/catalog-browser/catalog-browser.module.mjs +80 -0
  11. package/esm2020/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +209 -0
  12. package/esm2020/lib/catalog/catalog-library/catalog-library-item.component.mjs +79 -0
  13. package/esm2020/lib/catalog/catalog-library/catalog-library.component.mjs +217 -0
  14. package/esm2020/lib/catalog/catalog-library/catalog-library.module.mjs +95 -0
  15. package/esm2020/lib/catalog/catalog.module.mjs +53 -0
  16. package/esm2020/lib/catalog/index.mjs +5 -0
  17. package/esm2020/lib/catalog/shared/catalog.abstract.mjs +95 -0
  18. package/esm2020/lib/catalog/shared/catalog.enum.mjs +16 -0
  19. package/esm2020/lib/catalog/shared/catalog.interface.mjs +2 -0
  20. package/esm2020/lib/catalog/shared/catalog.service.mjs +606 -0
  21. package/esm2020/lib/catalog/shared/index.mjs +5 -0
  22. package/esm2020/lib/datasource/datasource.module.mjs +22 -0
  23. package/esm2020/lib/datasource/index.mjs +3 -0
  24. package/esm2020/lib/datasource/shared/capabilities.service.mjs +426 -0
  25. package/esm2020/lib/datasource/shared/datasource.service.mjs +236 -0
  26. package/esm2020/lib/datasource/shared/datasources/any-datasource.interface.mjs +2 -0
  27. package/esm2020/lib/datasource/shared/datasources/any-datasource.mjs +2 -0
  28. package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.interface.mjs +2 -0
  29. package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +145 -0
  30. package/esm2020/lib/datasource/shared/datasources/carto-datasource.interface.mjs +2 -0
  31. package/esm2020/lib/datasource/shared/datasources/carto-datasource.mjs +109 -0
  32. package/esm2020/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +2 -0
  33. package/esm2020/lib/datasource/shared/datasources/cluster-datasource.mjs +15 -0
  34. package/esm2020/lib/datasource/shared/datasources/data.service.mjs +3 -0
  35. package/esm2020/lib/datasource/shared/datasources/datasource.interface.mjs +2 -0
  36. package/esm2020/lib/datasource/shared/datasources/datasource.mjs +29 -0
  37. package/esm2020/lib/datasource/shared/datasources/feature-datasource.interface.mjs +2 -0
  38. package/esm2020/lib/datasource/shared/datasources/feature-datasource.mjs +43 -0
  39. package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.mjs +2 -0
  40. package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +57 -0
  41. package/esm2020/lib/datasource/shared/datasources/index.mjs +36 -0
  42. package/esm2020/lib/datasource/shared/datasources/mvt-datasource.interface.mjs +2 -0
  43. package/esm2020/lib/datasource/shared/datasources/mvt-datasource.mjs +28 -0
  44. package/esm2020/lib/datasource/shared/datasources/osm-datasource.interface.mjs +2 -0
  45. package/esm2020/lib/datasource/shared/datasources/osm-datasource.mjs +12 -0
  46. package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.mjs +2 -0
  47. package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +49 -0
  48. package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.interface.mjs +2 -0
  49. package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.mjs +15 -0
  50. package/esm2020/lib/datasource/shared/datasources/websocket-datasource.interface.mjs +2 -0
  51. package/esm2020/lib/datasource/shared/datasources/websocket-datasource.mjs +54 -0
  52. package/esm2020/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +2 -0
  53. package/esm2020/lib/datasource/shared/datasources/wfs-datasource.mjs +74 -0
  54. package/esm2020/lib/datasource/shared/datasources/wfs.service.mjs +152 -0
  55. package/esm2020/lib/datasource/shared/datasources/wms-datasource.interface.mjs +2 -0
  56. package/esm2020/lib/datasource/shared/datasources/wms-datasource.mjs +205 -0
  57. package/esm2020/lib/datasource/shared/datasources/wms-wfs.utils.mjs +207 -0
  58. package/esm2020/lib/datasource/shared/datasources/wmts-datasource.interface.mjs +2 -0
  59. package/esm2020/lib/datasource/shared/datasources/wmts-datasource.mjs +16 -0
  60. package/esm2020/lib/datasource/shared/datasources/xyz-datasource.interface.mjs +2 -0
  61. package/esm2020/lib/datasource/shared/datasources/xyz-datasource.mjs +9 -0
  62. package/esm2020/lib/datasource/shared/index.mjs +5 -0
  63. package/esm2020/lib/datasource/shared/options/index.mjs +5 -0
  64. package/esm2020/lib/datasource/shared/options/options-api.interface.mjs +2 -0
  65. package/esm2020/lib/datasource/shared/options/options-api.providers.mjs +15 -0
  66. package/esm2020/lib/datasource/shared/options/options-api.service.mjs +81 -0
  67. package/esm2020/lib/datasource/shared/options/options.service.mjs +3 -0
  68. package/esm2020/lib/datasource/utils/esri-style-generator.mjs +357 -0
  69. package/esm2020/lib/datasource/utils/index.mjs +3 -0
  70. package/esm2020/lib/datasource/utils/tilegrid.mjs +20 -0
  71. package/esm2020/lib/directions/directions-buttons/directions-buttons.component.mjs +224 -0
  72. package/esm2020/lib/directions/directions-buttons/index.mjs +2 -0
  73. package/esm2020/lib/directions/directions-inputs/directions-inputs.component.mjs +290 -0
  74. package/esm2020/lib/directions/directions-inputs/index.mjs +2 -0
  75. package/esm2020/lib/directions/directions-results/directions-results.component.mjs +196 -0
  76. package/esm2020/lib/directions/directions-results/index.mjs +2 -0
  77. package/esm2020/lib/directions/directions-sources/directions-source.interface.mjs +2 -0
  78. package/esm2020/lib/directions/directions-sources/directions-source.mjs +3 -0
  79. package/esm2020/lib/directions/directions-sources/directions-source.provider.mjs +16 -0
  80. package/esm2020/lib/directions/directions-sources/index.mjs +5 -0
  81. package/esm2020/lib/directions/directions-sources/osrm-directions-source.mjs +99 -0
  82. package/esm2020/lib/directions/directions.component.mjs +311 -0
  83. package/esm2020/lib/directions/directions.module.mjs +102 -0
  84. package/esm2020/lib/directions/index.mjs +7 -0
  85. package/esm2020/lib/directions/shared/directions-source.service.mjs +17 -0
  86. package/esm2020/lib/directions/shared/directions.enum.mjs +28 -0
  87. package/esm2020/lib/directions/shared/directions.interface.mjs +2 -0
  88. package/esm2020/lib/directions/shared/directions.service.mjs +29 -0
  89. package/esm2020/lib/directions/shared/directions.utils.mjs +510 -0
  90. package/esm2020/lib/directions/shared/index.mjs +6 -0
  91. package/esm2020/lib/directions/shared/store.mjs +24 -0
  92. package/esm2020/lib/download/download-button/download-button.component.mjs +61 -0
  93. package/esm2020/lib/download/download-button/index.mjs +2 -0
  94. package/esm2020/lib/download/download.module.mjs +42 -0
  95. package/esm2020/lib/download/index.mjs +3 -0
  96. package/esm2020/lib/download/shared/download.interface.mjs +2 -0
  97. package/esm2020/lib/download/shared/download.service.mjs +65 -0
  98. package/esm2020/lib/download/shared/index.mjs +3 -0
  99. package/esm2020/lib/draw/draw/draw-popup.component.mjs +61 -0
  100. package/esm2020/lib/draw/draw/draw-shorcuts.component.mjs +48 -0
  101. package/esm2020/lib/draw/draw/draw.component.mjs +714 -0
  102. package/esm2020/lib/draw/draw/draw.module.mjs +100 -0
  103. package/esm2020/lib/draw/drawingTool.module.mjs +20 -0
  104. package/esm2020/lib/draw/index.mjs +3 -0
  105. package/esm2020/lib/draw/shared/draw-icon.service.mjs +27 -0
  106. package/esm2020/lib/draw/shared/draw-style.service.mjs +173 -0
  107. package/esm2020/lib/draw/shared/draw.enum.mjs +24 -0
  108. package/esm2020/lib/draw/shared/draw.interface.mjs +2 -0
  109. package/esm2020/lib/draw/shared/draw.utils.mjs +104 -0
  110. package/esm2020/lib/draw/shared/index.mjs +6 -0
  111. package/esm2020/lib/feature/feature-details/feature-details.component.mjs +377 -0
  112. package/esm2020/lib/feature/feature-details/feature-details.directive.mjs +54 -0
  113. package/esm2020/lib/feature/feature-details/feature-details.module.mjs +48 -0
  114. package/esm2020/lib/feature/feature-form/feature-form.component.mjs +112 -0
  115. package/esm2020/lib/feature/feature-form/feature-form.module.mjs +34 -0
  116. package/esm2020/lib/feature/feature.module.mjs +28 -0
  117. package/esm2020/lib/feature/index.mjs +4 -0
  118. package/esm2020/lib/feature/shared/feature.enums.mjs +9 -0
  119. package/esm2020/lib/feature/shared/feature.interfaces.mjs +2 -0
  120. package/esm2020/lib/feature/shared/feature.utils.mjs +348 -0
  121. package/esm2020/lib/feature/shared/index.mjs +7 -0
  122. package/esm2020/lib/feature/shared/store.mjs +112 -0
  123. package/esm2020/lib/feature/shared/strategies/in-map-extent.mjs +113 -0
  124. package/esm2020/lib/feature/shared/strategies/in-map-resolution.mjs +94 -0
  125. package/esm2020/lib/feature/shared/strategies/index.mjs +6 -0
  126. package/esm2020/lib/feature/shared/strategies/loading-layer.mjs +104 -0
  127. package/esm2020/lib/feature/shared/strategies/loading.mjs +133 -0
  128. package/esm2020/lib/feature/shared/strategies/selection.mjs +370 -0
  129. package/esm2020/lib/feature/shared/strategies.utils.mjs +37 -0
  130. package/esm2020/lib/filter/filter.module.mjs +289 -0
  131. package/esm2020/lib/filter/index.mjs +16 -0
  132. package/esm2020/lib/filter/ogc-filter-button/index.mjs +2 -0
  133. package/esm2020/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +140 -0
  134. package/esm2020/lib/filter/ogc-filter-form/index.mjs +2 -0
  135. package/esm2020/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +645 -0
  136. package/esm2020/lib/filter/ogc-filter-selection/index.mjs +2 -0
  137. package/esm2020/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +1302 -0
  138. package/esm2020/lib/filter/ogc-filter-time/index.mjs +3 -0
  139. package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +177 -0
  140. package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +871 -0
  141. package/esm2020/lib/filter/ogc-filterable-form/index.mjs +2 -0
  142. package/esm2020/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +59 -0
  143. package/esm2020/lib/filter/ogc-filterable-item/index.mjs +2 -0
  144. package/esm2020/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +302 -0
  145. package/esm2020/lib/filter/ogc-filterable-list/index.mjs +3 -0
  146. package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +31 -0
  147. package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +31 -0
  148. package/esm2020/lib/filter/shared/filterable-datasource.pipe.mjs +55 -0
  149. package/esm2020/lib/filter/shared/index.mjs +12 -0
  150. package/esm2020/lib/filter/shared/ogc-filter-time.service.mjs +72 -0
  151. package/esm2020/lib/filter/shared/ogc-filter.enum.mjs +30 -0
  152. package/esm2020/lib/filter/shared/ogc-filter.interface.mjs +2 -0
  153. package/esm2020/lib/filter/shared/ogc-filter.mjs +692 -0
  154. package/esm2020/lib/filter/shared/ogc-filter.service.mjs +46 -0
  155. package/esm2020/lib/filter/shared/spatial-filter.enum.mjs +23 -0
  156. package/esm2020/lib/filter/shared/spatial-filter.interface.mjs +2 -0
  157. package/esm2020/lib/filter/shared/spatial-filter.service.mjs +269 -0
  158. package/esm2020/lib/filter/shared/time-filter.enum.mjs +13 -0
  159. package/esm2020/lib/filter/shared/time-filter.interface.mjs +2 -0
  160. package/esm2020/lib/filter/shared/time-filter.service.mjs +107 -0
  161. package/esm2020/lib/filter/spatial-filter/spatial-filter-item/index.mjs +2 -0
  162. package/esm2020/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +1076 -0
  163. package/esm2020/lib/filter/spatial-filter/spatial-filter-list/index.mjs +2 -0
  164. package/esm2020/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +208 -0
  165. package/esm2020/lib/filter/spatial-filter/spatial-filter-type/index.mjs +2 -0
  166. package/esm2020/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +144 -0
  167. package/esm2020/lib/filter/time-filter-button/index.mjs +2 -0
  168. package/esm2020/lib/filter/time-filter-button/time-filter-button.component.mjs +78 -0
  169. package/esm2020/lib/filter/time-filter-form/index.mjs +2 -0
  170. package/esm2020/lib/filter/time-filter-form/time-filter-form.component.mjs +734 -0
  171. package/esm2020/lib/filter/time-filter-item/index.mjs +2 -0
  172. package/esm2020/lib/filter/time-filter-item/time-filter-item.component.mjs +119 -0
  173. package/esm2020/lib/filter/time-filter-list/index.mjs +3 -0
  174. package/esm2020/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +31 -0
  175. package/esm2020/lib/filter/time-filter-list/time-filter-list.component.mjs +39 -0
  176. package/esm2020/lib/geo.module.mjs +102 -0
  177. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +511 -0
  178. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +189 -0
  179. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +64 -0
  180. package/esm2020/lib/geometry/geometry.module.mjs +27 -0
  181. package/esm2020/lib/geometry/index.mjs +4 -0
  182. package/esm2020/lib/geometry/shared/controls/draw.mjs +271 -0
  183. package/esm2020/lib/geometry/shared/controls/index.mjs +4 -0
  184. package/esm2020/lib/geometry/shared/controls/modify.mjs +521 -0
  185. package/esm2020/lib/geometry/shared/controls/slice.mjs +177 -0
  186. package/esm2020/lib/geometry/shared/geometry.errors.mjs +26 -0
  187. package/esm2020/lib/geometry/shared/geometry.interfaces.mjs +2 -0
  188. package/esm2020/lib/geometry/shared/geometry.utils.mjs +122 -0
  189. package/esm2020/lib/geometry/shared/index.mjs +5 -0
  190. package/esm2020/lib/import-export/export-button/export-button.component.mjs +64 -0
  191. package/esm2020/lib/import-export/export-button/index.mjs +2 -0
  192. package/esm2020/lib/import-export/import-export/import-export.component.mjs +1190 -0
  193. package/esm2020/lib/import-export/import-export/index.mjs +2 -0
  194. package/esm2020/lib/import-export/import-export.module.mjs +93 -0
  195. package/esm2020/lib/import-export/index.mjs +5 -0
  196. package/esm2020/lib/import-export/shared/drop-geo-file.directive.mjs +135 -0
  197. package/esm2020/lib/import-export/shared/export.errors.mjs +15 -0
  198. package/esm2020/lib/import-export/shared/export.interface.mjs +2 -0
  199. package/esm2020/lib/import-export/shared/export.service.mjs +195 -0
  200. package/esm2020/lib/import-export/shared/export.type.mjs +4 -0
  201. package/esm2020/lib/import-export/shared/export.utils.mjs +55 -0
  202. package/esm2020/lib/import-export/shared/import.errors.mjs +39 -0
  203. package/esm2020/lib/import-export/shared/import.interface.mjs +2 -0
  204. package/esm2020/lib/import-export/shared/import.service.mjs +195 -0
  205. package/esm2020/lib/import-export/shared/import.utils.mjs +234 -0
  206. package/esm2020/lib/import-export/shared/index.mjs +11 -0
  207. package/esm2020/lib/import-export/style-list/index.mjs +5 -0
  208. package/esm2020/lib/import-export/style-list/style-list.interface.mjs +2 -0
  209. package/esm2020/lib/import-export/style-list/style-list.module.mjs +23 -0
  210. package/esm2020/lib/import-export/style-list/style-list.provider.mjs +21 -0
  211. package/esm2020/lib/import-export/style-list/style-list.service.mjs +51 -0
  212. package/esm2020/lib/layer/index.mjs +10 -0
  213. package/esm2020/lib/layer/layer-item/index.mjs +2 -0
  214. package/esm2020/lib/layer/layer-item/layer-item.component.mjs +300 -0
  215. package/esm2020/lib/layer/layer-legend/index.mjs +2 -0
  216. package/esm2020/lib/layer/layer-legend/layer-legend.component.mjs +382 -0
  217. package/esm2020/lib/layer/layer-legend-item/index.mjs +2 -0
  218. package/esm2020/lib/layer/layer-legend-item/layer-legend-item.component.mjs +84 -0
  219. package/esm2020/lib/layer/layer-legend-list/index.mjs +3 -0
  220. package/esm2020/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +48 -0
  221. package/esm2020/lib/layer/layer-legend-list/layer-legend-list.component.mjs +195 -0
  222. package/esm2020/lib/layer/layer-list/index.mjs +4 -0
  223. package/esm2020/lib/layer/layer-list/layer-list-binding.directive.mjs +59 -0
  224. package/esm2020/lib/layer/layer-list/layer-list.component.mjs +1024 -0
  225. package/esm2020/lib/layer/layer-list/layer-list.enum.mjs +19 -0
  226. package/esm2020/lib/layer/layer-list-tool/index.mjs +5 -0
  227. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.component.mjs +165 -0
  228. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.enum.mjs +7 -0
  229. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.interface.mjs +2 -0
  230. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.service.mjs +22 -0
  231. package/esm2020/lib/layer/layer.module.mjs +173 -0
  232. package/esm2020/lib/layer/shared/clusterParam.mjs +2 -0
  233. package/esm2020/lib/layer/shared/index.mjs +7 -0
  234. package/esm2020/lib/layer/shared/layer.enums.mjs +2 -0
  235. package/esm2020/lib/layer/shared/layer.service.mjs +186 -0
  236. package/esm2020/lib/layer/shared/layers/any-layer.interface.mjs +2 -0
  237. package/esm2020/lib/layer/shared/layers/any-layer.mjs +2 -0
  238. package/esm2020/lib/layer/shared/layers/image-layer.interface.mjs +2 -0
  239. package/esm2020/lib/layer/shared/layers/image-layer.mjs +68 -0
  240. package/esm2020/lib/layer/shared/layers/index.mjs +13 -0
  241. package/esm2020/lib/layer/shared/layers/layer.interface.mjs +17 -0
  242. package/esm2020/lib/layer/shared/layers/layer.mjs +170 -0
  243. package/esm2020/lib/layer/shared/layers/tile-layer.interface.mjs +2 -0
  244. package/esm2020/lib/layer/shared/layers/tile-layer.mjs +47 -0
  245. package/esm2020/lib/layer/shared/layers/vector-layer.interface.mjs +2 -0
  246. package/esm2020/lib/layer/shared/layers/vector-layer.mjs +376 -0
  247. package/esm2020/lib/layer/shared/layers/vectortile-layer.interface.mjs +2 -0
  248. package/esm2020/lib/layer/shared/layers/vectortile-layer.mjs +104 -0
  249. package/esm2020/lib/layer/shared/style.service.mjs +356 -0
  250. package/esm2020/lib/layer/shared/vector-style.interface.mjs +2 -0
  251. package/esm2020/lib/layer/track-feature-button/index.mjs +2 -0
  252. package/esm2020/lib/layer/track-feature-button/track-feature-button.component.mjs +59 -0
  253. package/esm2020/lib/layer/utils/image-watcher.mjs +62 -0
  254. package/esm2020/lib/layer/utils/index.mjs +7 -0
  255. package/esm2020/lib/layer/utils/layer.utils.mjs +10 -0
  256. package/esm2020/lib/layer/utils/layerSync-watcher.mjs +242 -0
  257. package/esm2020/lib/layer/utils/outputLegend.mjs +27 -0
  258. package/esm2020/lib/layer/utils/tile-watcher.mjs +50 -0
  259. package/esm2020/lib/layer/utils/vector-watcher.mjs +48 -0
  260. package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.animation.mjs +20 -0
  261. package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +97 -0
  262. package/esm2020/lib/map/baselayers-switcher/index.mjs +3 -0
  263. package/esm2020/lib/map/baselayers-switcher/mini-basemap.component.mjs +133 -0
  264. package/esm2020/lib/map/geolocate-button/geolocate-button.component.mjs +76 -0
  265. package/esm2020/lib/map/geolocate-button/index.mjs +2 -0
  266. package/esm2020/lib/map/home-extent-button/home-extent-button.component.mjs +63 -0
  267. package/{esm2015/lib/map/home-extent-button/index.js → esm2020/lib/map/home-extent-button/index.mjs} +0 -0
  268. package/esm2020/lib/map/index.mjs +14 -0
  269. package/esm2020/lib/map/info-section/index.mjs +2 -0
  270. package/esm2020/lib/map/info-section/info-section.component.mjs +30 -0
  271. package/esm2020/lib/map/map-browser/index.mjs +2 -0
  272. package/esm2020/lib/map/map-browser/map-browser.component.mjs +66 -0
  273. package/esm2020/lib/map/map-center/index.mjs +2 -0
  274. package/esm2020/lib/map/map-center/map-center.component.mjs +50 -0
  275. package/esm2020/lib/map/map.module.mjs +127 -0
  276. package/esm2020/lib/map/menu-button/index.mjs +2 -0
  277. package/esm2020/lib/map/menu-button/menu-button.component.mjs +62 -0
  278. package/esm2020/lib/map/offline-button/index.mjs +2 -0
  279. package/esm2020/lib/map/offline-button/offline-button.component.mjs +76 -0
  280. package/esm2020/lib/map/rotation-button/index.mjs +2 -0
  281. package/esm2020/lib/map/rotation-button/rotation-button.component.mjs +91 -0
  282. package/esm2020/lib/map/shared/controllers/controller.mjs +42 -0
  283. package/esm2020/lib/map/shared/controllers/geolocation.mjs +308 -0
  284. package/esm2020/lib/map/shared/controllers/index.mjs +4 -0
  285. package/esm2020/lib/map/shared/controllers/view.mjs +342 -0
  286. package/esm2020/lib/map/shared/hover-feature.directive.mjs +506 -0
  287. package/esm2020/lib/map/shared/index.mjs +13 -0
  288. package/esm2020/lib/map/shared/map-pointer-position.directive.mjs +107 -0
  289. package/esm2020/lib/map/shared/map.enums.mjs +6 -0
  290. package/esm2020/lib/map/shared/map.interface.mjs +2 -0
  291. package/esm2020/lib/map/shared/map.mjs +417 -0
  292. package/esm2020/lib/map/shared/map.service.mjs +29 -0
  293. package/esm2020/lib/map/shared/map.utils.mjs +459 -0
  294. package/esm2020/lib/map/shared/mapOffline.directive.mjs +163 -0
  295. package/esm2020/lib/map/shared/projection.interfaces.mjs +2 -0
  296. package/esm2020/lib/map/shared/projection.service.mjs +65 -0
  297. package/esm2020/lib/map/shared/projection.utils.mjs +64 -0
  298. package/esm2020/lib/map/swipe-control/index.mjs +2 -0
  299. package/esm2020/lib/map/swipe-control/swipe-control.component.mjs +193 -0
  300. package/esm2020/lib/map/utils/layer-watcher.mjs +58 -0
  301. package/esm2020/lib/map/wake-lock-button/index.mjs +2 -0
  302. package/esm2020/lib/map/wake-lock-button/wake-lock-button.component.mjs +114 -0
  303. package/esm2020/lib/map/zoom-button/index.mjs +2 -0
  304. package/esm2020/lib/map/zoom-button/zoom-button.component.mjs +40 -0
  305. package/esm2020/lib/measure/index.mjs +4 -0
  306. package/esm2020/lib/measure/measure.module.mjs +20 -0
  307. package/esm2020/lib/measure/measurer/measure-format.pipe.mjs +37 -0
  308. package/esm2020/lib/measure/measurer/measurer-dialog.component.mjs +180 -0
  309. package/esm2020/lib/measure/measurer/measurer-item.component.mjs +140 -0
  310. package/esm2020/lib/measure/measurer/measurer.component.mjs +1042 -0
  311. package/esm2020/lib/measure/measurer/measurer.module.mjs +94 -0
  312. package/esm2020/lib/measure/shared/index.mjs +4 -0
  313. package/esm2020/lib/measure/shared/measure.enum.mjs +37 -0
  314. package/esm2020/lib/measure/shared/measure.interfaces.mjs +2 -0
  315. package/esm2020/lib/measure/shared/measure.utils.mjs +489 -0
  316. package/esm2020/lib/metadata/index.mjs +3 -0
  317. package/esm2020/lib/metadata/metadata-button/index.mjs +2 -0
  318. package/esm2020/lib/metadata/metadata-button/metadata-button.component.mjs +134 -0
  319. package/esm2020/lib/metadata/metadata.module.mjs +55 -0
  320. package/esm2020/lib/metadata/shared/index.mjs +3 -0
  321. package/esm2020/lib/metadata/shared/metadata.interface.mjs +2 -0
  322. package/esm2020/lib/metadata/shared/metadata.service.mjs +19 -0
  323. package/esm2020/lib/offline/geoDB/geoDB.enums.mjs +6 -0
  324. package/esm2020/lib/offline/geoDB/geoDB.interface.mjs +2 -0
  325. package/esm2020/lib/offline/geoDB/geoDB.service.mjs +161 -0
  326. package/esm2020/lib/offline/geoDB/index.mjs +4 -0
  327. package/esm2020/lib/offline/index.mjs +3 -0
  328. package/esm2020/lib/offline/shared/geo-network.service.mjs +66 -0
  329. package/esm2020/lib/offline/shared/index.mjs +2 -0
  330. package/esm2020/lib/overlay/index.mjs +2 -0
  331. package/esm2020/lib/overlay/overlay.module.mjs +23 -0
  332. package/esm2020/lib/overlay/shared/index.mjs +7 -0
  333. package/esm2020/lib/overlay/shared/overlay-marker-style.utils.mjs +69 -0
  334. package/esm2020/lib/overlay/shared/overlay.directive.mjs +33 -0
  335. package/esm2020/lib/overlay/shared/overlay.enum.mjs +8 -0
  336. package/esm2020/lib/overlay/shared/overlay.mjs +130 -0
  337. package/esm2020/lib/overlay/shared/overlay.service.mjs +27 -0
  338. package/esm2020/lib/overlay/shared/overlay.utils.mjs +103 -0
  339. package/esm2020/lib/print/index.mjs +4 -0
  340. package/esm2020/lib/print/print/print.component.mjs +123 -0
  341. package/esm2020/lib/print/print-form/index.mjs +2 -0
  342. package/esm2020/lib/print/print-form/print-form.component.mjs +405 -0
  343. package/esm2020/lib/print/print.module.mjs +65 -0
  344. package/esm2020/lib/print/shared/index.mjs +4 -0
  345. package/esm2020/lib/print/shared/print.interface.mjs +2 -0
  346. package/esm2020/lib/print/shared/print.service.mjs +807 -0
  347. package/esm2020/lib/print/shared/print.type.mjs +30 -0
  348. package/esm2020/lib/query/index.mjs +2 -0
  349. package/esm2020/lib/query/query.module.mjs +29 -0
  350. package/esm2020/lib/query/shared/index.mjs +7 -0
  351. package/esm2020/lib/query/shared/query-search-source.mjs +35 -0
  352. package/esm2020/lib/query/shared/query-search-source.providers.mjs +22 -0
  353. package/esm2020/lib/query/shared/query.directive.mjs +261 -0
  354. package/esm2020/lib/query/shared/query.enums.mjs +30 -0
  355. package/esm2020/lib/query/shared/query.interfaces.mjs +2 -0
  356. package/esm2020/lib/query/shared/query.service.mjs +613 -0
  357. package/esm2020/lib/query/shared/query.utils.mjs +37 -0
  358. package/esm2020/lib/search/index.mjs +12 -0
  359. package/esm2020/lib/search/search-bar/search-bar.component.mjs +489 -0
  360. package/esm2020/lib/search/search-bar/search-bar.module.mjs +75 -0
  361. package/esm2020/lib/search/search-bar/search-url-param.directive.mjs +35 -0
  362. package/esm2020/lib/search/search-results/search-results-add-button.component.mjs +193 -0
  363. package/esm2020/lib/search/search-results/search-results-item.component.mjs +124 -0
  364. package/esm2020/lib/search/search-results/search-results.component.mjs +331 -0
  365. package/esm2020/lib/search/search-results/search-results.module.mjs +77 -0
  366. package/esm2020/lib/search/search-selector/search-selector.component.mjs +123 -0
  367. package/esm2020/lib/search/search-selector/search-selector.module.mjs +56 -0
  368. package/esm2020/lib/search/search-settings/search-settings.component.mjs +418 -0
  369. package/esm2020/lib/search/search-settings/search-settings.module.mjs +60 -0
  370. package/esm2020/lib/search/search.module.mjs +67 -0
  371. package/esm2020/lib/search/shared/index.mjs +9 -0
  372. package/esm2020/lib/search/shared/search-pointer-summary.directive.mjs +322 -0
  373. package/esm2020/lib/search/shared/search-source-service.providers.mjs +20 -0
  374. package/esm2020/lib/search/shared/search-source.service.mjs +47 -0
  375. package/esm2020/lib/search/shared/search.enums.mjs +4 -0
  376. package/esm2020/lib/search/shared/search.interfaces.mjs +2 -0
  377. package/esm2020/lib/search/shared/search.service.mjs +118 -0
  378. package/esm2020/lib/search/shared/search.utils.mjs +78 -0
  379. package/esm2020/lib/search/shared/sources/cadastre.mjs +126 -0
  380. package/esm2020/lib/search/shared/sources/cadastre.providers.mjs +23 -0
  381. package/esm2020/lib/search/shared/sources/coordinates.interfaces.mjs +2 -0
  382. package/esm2020/lib/search/shared/sources/coordinates.mjs +147 -0
  383. package/esm2020/lib/search/shared/sources/coordinates.providers.mjs +40 -0
  384. package/esm2020/lib/search/shared/sources/icherche.interfaces.mjs +2 -0
  385. package/esm2020/lib/search/shared/sources/icherche.mjs +755 -0
  386. package/esm2020/lib/search/shared/sources/icherche.providers.mjs +66 -0
  387. package/esm2020/lib/search/shared/sources/ilayer.interfaces.mjs +2 -0
  388. package/esm2020/lib/search/shared/sources/ilayer.mjs +320 -0
  389. package/esm2020/lib/search/shared/sources/ilayer.providers.mjs +40 -0
  390. package/esm2020/lib/search/shared/sources/index.mjs +20 -0
  391. package/esm2020/lib/search/shared/sources/nominatim.interfaces.mjs +2 -0
  392. package/esm2020/lib/search/shared/sources/nominatim.mjs +253 -0
  393. package/esm2020/lib/search/shared/sources/nominatim.providers.mjs +23 -0
  394. package/esm2020/lib/search/shared/sources/source.interfaces.mjs +2 -0
  395. package/esm2020/lib/search/shared/sources/source.mjs +179 -0
  396. package/esm2020/lib/search/shared/sources/storedqueries.interfaces.mjs +2 -0
  397. package/esm2020/lib/search/shared/sources/storedqueries.mjs +425 -0
  398. package/esm2020/lib/search/shared/sources/storedqueries.providers.mjs +41 -0
  399. package/esm2020/lib/toast/index.mjs +2 -0
  400. package/esm2020/lib/toast/toast.component.mjs +113 -0
  401. package/esm2020/lib/toast/toast.module.mjs +45 -0
  402. package/esm2020/lib/utils/commonVectorStyle.interface.mjs +2 -0
  403. package/esm2020/lib/utils/commonVectorStyle.mjs +75 -0
  404. package/esm2020/lib/utils/googleLinks.mjs +13 -0
  405. package/esm2020/lib/utils/id-generator.mjs +110 -0
  406. package/esm2020/lib/utils/index.mjs +6 -0
  407. package/esm2020/lib/utils/osmLinks.mjs +10 -0
  408. package/esm2020/lib/wkt/index.mjs +2 -0
  409. package/esm2020/lib/wkt/shared/index.mjs +2 -0
  410. package/esm2020/lib/wkt/shared/wkt.service.mjs +239 -0
  411. package/esm2020/lib/wkt/wkt.module.mjs +22 -0
  412. package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +48 -0
  413. package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +36 -0
  414. package/esm2020/lib/workspace/confirmation-popup/index.mjs +3 -0
  415. package/esm2020/lib/workspace/index.mjs +8 -0
  416. package/esm2020/lib/workspace/shared/edition-workspace.mjs +278 -0
  417. package/esm2020/lib/workspace/shared/edition-workspace.service.mjs +642 -0
  418. package/esm2020/lib/workspace/shared/feature-workspace.mjs +35 -0
  419. package/esm2020/lib/workspace/shared/feature-workspace.service.mjs +150 -0
  420. package/esm2020/lib/workspace/shared/index.mjs +8 -0
  421. package/esm2020/lib/workspace/shared/wfs-workspace.mjs +35 -0
  422. package/esm2020/lib/workspace/shared/wfs-workspace.service.mjs +150 -0
  423. package/esm2020/lib/workspace/shared/wms-workspace.service.mjs +261 -0
  424. package/esm2020/lib/workspace/shared/workspace.utils.mjs +24 -0
  425. package/esm2020/lib/workspace/widgets/index.mjs +4 -0
  426. package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +47 -0
  427. package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +36 -0
  428. package/esm2020/lib/workspace/widgets/widgets.mjs +15 -0
  429. package/esm2020/lib/workspace/workspace-selector/workspace-selector.directive.mjs +133 -0
  430. package/esm2020/lib/workspace/workspace-selector/workspace-selector.module.mjs +28 -0
  431. package/esm2020/lib/workspace/workspace-updator/workspace-updator.directive.mjs +113 -0
  432. package/esm2020/lib/workspace/workspace-updator/workspace-updator.module.mjs +28 -0
  433. package/esm2020/lib/workspace/workspace.module.mjs +62 -0
  434. package/esm2020/public_api.mjs +55 -0
  435. package/fesm2015/igo2-geo.mjs +42904 -0
  436. package/fesm2015/igo2-geo.mjs.map +1 -0
  437. package/fesm2020/igo2-geo.mjs +41183 -0
  438. package/fesm2020/igo2-geo.mjs.map +1 -0
  439. package/{igo2-geo.d.ts → index.d.ts} +0 -0
  440. package/lib/catalog/catalog-browser/catalog-browser-group.component.d.ts +1 -1
  441. package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +1 -1
  442. package/lib/catalog/catalog-browser/catalog-browser.component.d.ts +1 -1
  443. package/lib/catalog/catalog-library/add-catalog-dialog.component.d.ts +4 -4
  444. package/lib/catalog/catalog-library/catalog-library-item.component.d.ts +1 -1
  445. package/lib/catalog/catalog-library/catalog-library.component.d.ts +1 -1
  446. package/lib/catalog/shared/catalog.interface.d.ts +9 -1
  447. package/lib/catalog/shared/catalog.service.d.ts +1 -0
  448. package/lib/datasource/shared/datasources/datasource.interface.d.ts +7 -1
  449. package/lib/directions/directions-buttons/directions-buttons.component.d.ts +1 -1
  450. package/lib/directions/directions-inputs/directions-inputs.component.d.ts +1 -1
  451. package/lib/directions/directions-results/directions-results.component.d.ts +1 -1
  452. package/lib/directions/directions.component.d.ts +1 -1
  453. package/lib/download/download-button/download-button.component.d.ts +1 -1
  454. package/lib/draw/draw/draw-popup.component.d.ts +4 -2
  455. package/lib/draw/draw/draw-shorcuts.component.d.ts +1 -1
  456. package/lib/draw/draw/draw.component.d.ts +22 -5
  457. package/lib/draw/shared/draw-style.service.d.ts +6 -0
  458. package/lib/draw/shared/draw.enum.d.ts +15 -0
  459. package/lib/feature/feature-details/feature-details.component.d.ts +13 -3
  460. package/lib/feature/feature-details/feature-details.directive.d.ts +3 -14
  461. package/lib/feature/feature-form/feature-form.component.d.ts +1 -1
  462. package/lib/feature/shared/feature.interfaces.d.ts +2 -2
  463. package/lib/filter/filter.module.d.ts +1 -1
  464. package/lib/filter/ogc-filter-button/ogc-filter-button.component.d.ts +1 -1
  465. package/lib/filter/ogc-filter-form/ogc-filter-form.component.d.ts +1 -1
  466. package/lib/filter/ogc-filter-selection/ogc-filter-selection.component.d.ts +33 -15
  467. package/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.d.ts +1 -1
  468. package/lib/filter/ogc-filter-time/ogc-filter-time.component.d.ts +6 -6
  469. package/lib/filter/ogc-filterable-form/ogc-filterable-form.component.d.ts +1 -1
  470. package/lib/filter/ogc-filterable-item/ogc-filterable-item.component.d.ts +1 -1
  471. package/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.d.ts +1 -1
  472. package/lib/filter/ogc-filterable-list/ogc-filterable-list.component.d.ts +1 -1
  473. package/lib/filter/shared/filterable-datasource.pipe.d.ts +1 -1
  474. package/lib/filter/shared/ogc-filter.interface.d.ts +19 -2
  475. package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +5 -5
  476. package/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.d.ts +4 -4
  477. package/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.d.ts +3 -3
  478. package/lib/filter/time-filter-button/time-filter-button.component.d.ts +1 -1
  479. package/lib/filter/time-filter-form/time-filter-form.component.d.ts +1 -1
  480. package/lib/filter/time-filter-item/time-filter-item.component.d.ts +1 -1
  481. package/lib/filter/time-filter-list/time-filter-list-binding.directive.d.ts +1 -1
  482. package/lib/filter/time-filter-list/time-filter-list.component.d.ts +1 -1
  483. package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +1 -1
  484. package/lib/geometry/geometry-form-field/geometry-form-field.component.d.ts +3 -3
  485. package/lib/import-export/export-button/export-button.component.d.ts +1 -1
  486. package/lib/import-export/import-export/import-export.component.d.ts +5 -5
  487. package/lib/import-export/shared/drop-geo-file.directive.d.ts +1 -1
  488. package/lib/import-export/shared/import.utils.d.ts +1 -1
  489. package/lib/layer/layer-item/layer-item.component.d.ts +2 -1
  490. package/lib/layer/layer-legend/layer-legend.component.d.ts +4 -3
  491. package/lib/layer/layer-legend-item/layer-legend-item.component.d.ts +1 -1
  492. package/lib/layer/layer-legend-list/layer-legend-list-binding.directive.d.ts +1 -1
  493. package/lib/layer/layer-legend-list/layer-legend-list.component.d.ts +1 -1
  494. package/lib/layer/layer-list/layer-list-binding.directive.d.ts +1 -1
  495. package/lib/layer/layer-list/layer-list.component.d.ts +1 -1
  496. package/lib/layer/layer-list-tool/layer-list-tool.component.d.ts +1 -1
  497. package/lib/layer/shared/layer.service.d.ts +6 -3
  498. package/lib/layer/shared/layers/layer.interface.d.ts +1 -0
  499. package/lib/layer/shared/layers/vector-layer.d.ts +5 -1
  500. package/lib/layer/shared/style.service.d.ts +38 -3
  501. package/lib/layer/shared/vector-style.interface.d.ts +11 -0
  502. package/lib/layer/track-feature-button/track-feature-button.component.d.ts +1 -1
  503. package/lib/map/baselayers-switcher/baselayers-switcher.component.d.ts +1 -1
  504. package/lib/map/baselayers-switcher/mini-basemap.component.d.ts +1 -1
  505. package/lib/map/geolocate-button/geolocate-button.component.d.ts +9 -2
  506. package/lib/map/home-extent-button/home-extent-button.component.d.ts +1 -1
  507. package/lib/map/index.d.ts +1 -0
  508. package/lib/map/info-section/info-section.component.d.ts +1 -1
  509. package/lib/map/map-browser/map-browser.component.d.ts +1 -1
  510. package/lib/map/map-center/map-center.component.d.ts +1 -1
  511. package/lib/map/map.module.d.ts +13 -12
  512. package/lib/map/menu-button/menu-button.component.d.ts +1 -1
  513. package/lib/map/offline-button/offline-button.component.d.ts +1 -1
  514. package/lib/map/rotation-button/rotation-button.component.d.ts +1 -1
  515. package/lib/map/shared/controllers/geolocation.d.ts +112 -0
  516. package/lib/map/shared/controllers/index.d.ts +1 -0
  517. package/lib/map/shared/controllers/view.d.ts +7 -0
  518. package/lib/map/shared/hover-feature.directive.d.ts +2 -2
  519. package/lib/map/shared/map-pointer-position.directive.d.ts +1 -1
  520. package/lib/map/shared/map.d.ts +7 -19
  521. package/lib/map/shared/map.interface.d.ts +0 -1
  522. package/lib/map/shared/mapOffline.directive.d.ts +1 -1
  523. package/lib/map/swipe-control/swipe-control.component.d.ts +1 -1
  524. package/lib/map/wake-lock-button/index.d.ts +1 -0
  525. package/lib/map/wake-lock-button/wake-lock-button.component.d.ts +30 -0
  526. package/lib/map/zoom-button/zoom-button.component.d.ts +1 -1
  527. package/lib/measure/measurer/measure-format.pipe.d.ts +1 -1
  528. package/lib/measure/measurer/measurer-dialog.component.d.ts +1 -1
  529. package/lib/measure/measurer/measurer-item.component.d.ts +1 -1
  530. package/lib/measure/measurer/measurer.component.d.ts +1 -1
  531. package/lib/metadata/metadata-button/metadata-button.component.d.ts +2 -2
  532. package/lib/offline/geoDB/geoDB.enums.d.ts +4 -0
  533. package/lib/offline/geoDB/geoDB.interface.d.ts +9 -0
  534. package/lib/offline/geoDB/geoDB.service.d.ts +35 -0
  535. package/lib/offline/geoDB/index.d.ts +3 -0
  536. package/lib/offline/index.d.ts +2 -0
  537. package/lib/offline/shared/geo-network.service.d.ts +28 -0
  538. package/lib/offline/shared/index.d.ts +1 -0
  539. package/lib/overlay/shared/overlay.directive.d.ts +1 -1
  540. package/lib/print/print/print.component.d.ts +1 -1
  541. package/lib/print/print-form/print-form.component.d.ts +17 -17
  542. package/lib/print/shared/print.service.d.ts +9 -3
  543. package/lib/query/query.module.d.ts +2 -1
  544. package/lib/query/shared/query.directive.d.ts +1 -1
  545. package/lib/query/shared/query.service.d.ts +7 -1
  546. package/lib/search/search-bar/search-bar.component.d.ts +1 -1
  547. package/lib/search/search-bar/search-url-param.directive.d.ts +1 -1
  548. package/lib/search/search-results/search-results-add-button.component.d.ts +1 -1
  549. package/lib/search/search-results/search-results-item.component.d.ts +1 -1
  550. package/lib/search/search-results/search-results.component.d.ts +1 -1
  551. package/lib/search/search-selector/search-selector.component.d.ts +1 -1
  552. package/lib/search/search-settings/search-settings.component.d.ts +1 -1
  553. package/lib/search/shared/search-pointer-summary.directive.d.ts +1 -1
  554. package/lib/toast/toast.component.d.ts +1 -1
  555. package/lib/wkt/shared/wkt.service.d.ts +1 -1
  556. package/lib/workspace/confirmation-popup/confirmation-popup.component.d.ts +1 -1
  557. package/lib/workspace/shared/edition-workspace.d.ts +2 -1
  558. package/lib/workspace/shared/edition-workspace.service.d.ts +5 -2
  559. package/lib/workspace/shared/feature-workspace.service.d.ts +3 -2
  560. package/lib/workspace/shared/wfs-workspace.service.d.ts +3 -2
  561. package/lib/workspace/shared/wms-workspace.service.d.ts +5 -2
  562. package/lib/workspace/widgets/ogc-filter/ogc-filter.component.d.ts +1 -1
  563. package/lib/workspace/workspace-selector/workspace-selector.directive.d.ts +1 -1
  564. package/lib/workspace/workspace-updator/workspace-updator.directive.d.ts +1 -1
  565. package/ngcc.config.js +3 -3
  566. package/package.json +35 -20
  567. package/public_api.d.ts +1 -0
  568. package/style/geo.theming.scss +12 -12
  569. package/bundles/igo2-geo.umd.js +0 -45805
  570. package/bundles/igo2-geo.umd.js.map +0 -1
  571. package/esm2015/lib/catalog/catalog-browser/catalog-browser-group.component.js +0 -305
  572. package/esm2015/lib/catalog/catalog-browser/catalog-browser-layer.component.js +0 -274
  573. package/esm2015/lib/catalog/catalog-browser/catalog-browser.component.js +0 -248
  574. package/esm2015/lib/catalog/catalog-browser/catalog-browser.module.js +0 -82
  575. package/esm2015/lib/catalog/catalog-library/add-catalog-dialog.component.js +0 -235
  576. package/esm2015/lib/catalog/catalog-library/catalog-library-item.component.js +0 -85
  577. package/esm2015/lib/catalog/catalog-library/catalog-library.component.js +0 -224
  578. package/esm2015/lib/catalog/catalog-library/catalog-library.module.js +0 -97
  579. package/esm2015/lib/catalog/catalog.module.js +0 -55
  580. package/esm2015/lib/catalog/index.js +0 -5
  581. package/esm2015/lib/catalog/shared/catalog.abstract.js +0 -95
  582. package/esm2015/lib/catalog/shared/catalog.enum.js +0 -16
  583. package/esm2015/lib/catalog/shared/catalog.interface.js +0 -2
  584. package/esm2015/lib/catalog/shared/catalog.service.js +0 -535
  585. package/esm2015/lib/catalog/shared/index.js +0 -5
  586. package/esm2015/lib/datasource/datasource.module.js +0 -22
  587. package/esm2015/lib/datasource/index.js +0 -3
  588. package/esm2015/lib/datasource/shared/capabilities.service.js +0 -427
  589. package/esm2015/lib/datasource/shared/datasource.service.js +0 -236
  590. package/esm2015/lib/datasource/shared/datasources/any-datasource.interface.js +0 -2
  591. package/esm2015/lib/datasource/shared/datasources/any-datasource.js +0 -2
  592. package/esm2015/lib/datasource/shared/datasources/arcgisrest-datasource.interface.js +0 -2
  593. package/esm2015/lib/datasource/shared/datasources/arcgisrest-datasource.js +0 -145
  594. package/esm2015/lib/datasource/shared/datasources/carto-datasource.interface.js +0 -2
  595. package/esm2015/lib/datasource/shared/datasources/carto-datasource.js +0 -109
  596. package/esm2015/lib/datasource/shared/datasources/cluster-datasource.interface.js +0 -2
  597. package/esm2015/lib/datasource/shared/datasources/cluster-datasource.js +0 -15
  598. package/esm2015/lib/datasource/shared/datasources/data.service.js +0 -3
  599. package/esm2015/lib/datasource/shared/datasources/datasource.interface.js +0 -2
  600. package/esm2015/lib/datasource/shared/datasources/datasource.js +0 -29
  601. package/esm2015/lib/datasource/shared/datasources/feature-datasource.interface.js +0 -2
  602. package/esm2015/lib/datasource/shared/datasources/feature-datasource.js +0 -43
  603. package/esm2015/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.js +0 -2
  604. package/esm2015/lib/datasource/shared/datasources/imagearcgisrest-datasource.js +0 -57
  605. package/esm2015/lib/datasource/shared/datasources/index.js +0 -36
  606. package/esm2015/lib/datasource/shared/datasources/mvt-datasource.interface.js +0 -2
  607. package/esm2015/lib/datasource/shared/datasources/mvt-datasource.js +0 -28
  608. package/esm2015/lib/datasource/shared/datasources/osm-datasource.interface.js +0 -2
  609. package/esm2015/lib/datasource/shared/datasources/osm-datasource.js +0 -12
  610. package/esm2015/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.js +0 -2
  611. package/esm2015/lib/datasource/shared/datasources/tilearcgisrest-datasource.js +0 -49
  612. package/esm2015/lib/datasource/shared/datasources/tiledebug-datasource.interface.js +0 -2
  613. package/esm2015/lib/datasource/shared/datasources/tiledebug-datasource.js +0 -15
  614. package/esm2015/lib/datasource/shared/datasources/websocket-datasource.interface.js +0 -2
  615. package/esm2015/lib/datasource/shared/datasources/websocket-datasource.js +0 -54
  616. package/esm2015/lib/datasource/shared/datasources/wfs-datasource.interface.js +0 -2
  617. package/esm2015/lib/datasource/shared/datasources/wfs-datasource.js +0 -71
  618. package/esm2015/lib/datasource/shared/datasources/wfs.service.js +0 -153
  619. package/esm2015/lib/datasource/shared/datasources/wms-datasource.interface.js +0 -2
  620. package/esm2015/lib/datasource/shared/datasources/wms-datasource.js +0 -202
  621. package/esm2015/lib/datasource/shared/datasources/wms-wfs.utils.js +0 -207
  622. package/esm2015/lib/datasource/shared/datasources/wmts-datasource.interface.js +0 -2
  623. package/esm2015/lib/datasource/shared/datasources/wmts-datasource.js +0 -16
  624. package/esm2015/lib/datasource/shared/datasources/xyz-datasource.interface.js +0 -2
  625. package/esm2015/lib/datasource/shared/datasources/xyz-datasource.js +0 -9
  626. package/esm2015/lib/datasource/shared/index.js +0 -5
  627. package/esm2015/lib/datasource/shared/options/index.js +0 -5
  628. package/esm2015/lib/datasource/shared/options/options-api.interface.js +0 -2
  629. package/esm2015/lib/datasource/shared/options/options-api.providers.js +0 -15
  630. package/esm2015/lib/datasource/shared/options/options-api.service.js +0 -81
  631. package/esm2015/lib/datasource/shared/options/options.service.js +0 -3
  632. package/esm2015/lib/datasource/utils/esri-style-generator.js +0 -357
  633. package/esm2015/lib/datasource/utils/index.js +0 -3
  634. package/esm2015/lib/datasource/utils/tilegrid.js +0 -20
  635. package/esm2015/lib/directions/directions-buttons/directions-buttons.component.js +0 -229
  636. package/esm2015/lib/directions/directions-buttons/index.js +0 -2
  637. package/esm2015/lib/directions/directions-inputs/directions-inputs.component.js +0 -300
  638. package/esm2015/lib/directions/directions-inputs/index.js +0 -2
  639. package/esm2015/lib/directions/directions-results/directions-results.component.js +0 -204
  640. package/esm2015/lib/directions/directions-results/index.js +0 -2
  641. package/esm2015/lib/directions/directions-sources/directions-source.interface.js +0 -2
  642. package/esm2015/lib/directions/directions-sources/directions-source.js +0 -3
  643. package/esm2015/lib/directions/directions-sources/directions-source.provider.js +0 -16
  644. package/esm2015/lib/directions/directions-sources/index.js +0 -5
  645. package/esm2015/lib/directions/directions-sources/osrm-directions-source.js +0 -99
  646. package/esm2015/lib/directions/directions.component.js +0 -316
  647. package/esm2015/lib/directions/directions.module.js +0 -104
  648. package/esm2015/lib/directions/index.js +0 -7
  649. package/esm2015/lib/directions/shared/directions-source.service.js +0 -17
  650. package/esm2015/lib/directions/shared/directions.enum.js +0 -28
  651. package/esm2015/lib/directions/shared/directions.interface.js +0 -2
  652. package/esm2015/lib/directions/shared/directions.service.js +0 -29
  653. package/esm2015/lib/directions/shared/directions.utils.js +0 -510
  654. package/esm2015/lib/directions/shared/index.js +0 -6
  655. package/esm2015/lib/directions/shared/store.js +0 -24
  656. package/esm2015/lib/download/download-button/download-button.component.js +0 -66
  657. package/esm2015/lib/download/download-button/index.js +0 -2
  658. package/esm2015/lib/download/download.module.js +0 -44
  659. package/esm2015/lib/download/index.js +0 -3
  660. package/esm2015/lib/download/shared/download.interface.js +0 -2
  661. package/esm2015/lib/download/shared/download.service.js +0 -65
  662. package/esm2015/lib/download/shared/index.js +0 -3
  663. package/esm2015/lib/draw/draw/draw-popup.component.js +0 -63
  664. package/esm2015/lib/draw/draw/draw-shorcuts.component.js +0 -64
  665. package/esm2015/lib/draw/draw/draw.component.js +0 -637
  666. package/esm2015/lib/draw/draw/draw.module.js +0 -102
  667. package/esm2015/lib/draw/drawingTool.module.js +0 -20
  668. package/esm2015/lib/draw/index.js +0 -3
  669. package/esm2015/lib/draw/shared/draw-icon.service.js +0 -27
  670. package/esm2015/lib/draw/shared/draw-style.service.js +0 -154
  671. package/esm2015/lib/draw/shared/draw.enum.js +0 -8
  672. package/esm2015/lib/draw/shared/draw.interface.js +0 -2
  673. package/esm2015/lib/draw/shared/draw.utils.js +0 -104
  674. package/esm2015/lib/draw/shared/index.js +0 -6
  675. package/esm2015/lib/feature/feature-details/feature-details.component.js +0 -317
  676. package/esm2015/lib/feature/feature-details/feature-details.directive.js +0 -109
  677. package/esm2015/lib/feature/feature-details/feature-details.module.js +0 -50
  678. package/esm2015/lib/feature/feature-form/feature-form.component.js +0 -117
  679. package/esm2015/lib/feature/feature-form/feature-form.module.js +0 -36
  680. package/esm2015/lib/feature/feature.module.js +0 -30
  681. package/esm2015/lib/feature/index.js +0 -4
  682. package/esm2015/lib/feature/shared/feature.enums.js +0 -9
  683. package/esm2015/lib/feature/shared/feature.interfaces.js +0 -2
  684. package/esm2015/lib/feature/shared/feature.utils.js +0 -348
  685. package/esm2015/lib/feature/shared/index.js +0 -7
  686. package/esm2015/lib/feature/shared/store.js +0 -112
  687. package/esm2015/lib/feature/shared/strategies/in-map-extent.js +0 -114
  688. package/esm2015/lib/feature/shared/strategies/in-map-resolution.js +0 -94
  689. package/esm2015/lib/feature/shared/strategies/index.js +0 -6
  690. package/esm2015/lib/feature/shared/strategies/loading-layer.js +0 -104
  691. package/esm2015/lib/feature/shared/strategies/loading.js +0 -133
  692. package/esm2015/lib/feature/shared/strategies/selection.js +0 -370
  693. package/esm2015/lib/feature/shared/strategies.utils.js +0 -37
  694. package/esm2015/lib/filter/filter.module.js +0 -287
  695. package/esm2015/lib/filter/index.js +0 -16
  696. package/esm2015/lib/filter/ogc-filter-button/index.js +0 -2
  697. package/esm2015/lib/filter/ogc-filter-button/ogc-filter-button.component.js +0 -136
  698. package/esm2015/lib/filter/ogc-filter-form/index.js +0 -2
  699. package/esm2015/lib/filter/ogc-filter-form/ogc-filter-form.component.js +0 -657
  700. package/esm2015/lib/filter/ogc-filter-selection/index.js +0 -2
  701. package/esm2015/lib/filter/ogc-filter-selection/ogc-filter-selection.component.js +0 -993
  702. package/esm2015/lib/filter/ogc-filter-time/index.js +0 -3
  703. package/esm2015/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.js +0 -185
  704. package/esm2015/lib/filter/ogc-filter-time/ogc-filter-time.component.js +0 -898
  705. package/esm2015/lib/filter/ogc-filterable-form/index.js +0 -2
  706. package/esm2015/lib/filter/ogc-filterable-form/ogc-filterable-form.component.js +0 -62
  707. package/esm2015/lib/filter/ogc-filterable-item/index.js +0 -2
  708. package/esm2015/lib/filter/ogc-filterable-item/ogc-filterable-item.component.js +0 -306
  709. package/esm2015/lib/filter/ogc-filterable-list/index.js +0 -3
  710. package/esm2015/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.js +0 -31
  711. package/esm2015/lib/filter/ogc-filterable-list/ogc-filterable-list.component.js +0 -35
  712. package/esm2015/lib/filter/shared/filterable-datasource.pipe.js +0 -54
  713. package/esm2015/lib/filter/shared/index.js +0 -12
  714. package/esm2015/lib/filter/shared/ogc-filter-time.service.js +0 -73
  715. package/esm2015/lib/filter/shared/ogc-filter.enum.js +0 -30
  716. package/esm2015/lib/filter/shared/ogc-filter.interface.js +0 -2
  717. package/esm2015/lib/filter/shared/ogc-filter.js +0 -682
  718. package/esm2015/lib/filter/shared/ogc-filter.service.js +0 -46
  719. package/esm2015/lib/filter/shared/spatial-filter.enum.js +0 -23
  720. package/esm2015/lib/filter/shared/spatial-filter.interface.js +0 -2
  721. package/esm2015/lib/filter/shared/spatial-filter.service.js +0 -269
  722. package/esm2015/lib/filter/shared/time-filter.enum.js +0 -13
  723. package/esm2015/lib/filter/shared/time-filter.interface.js +0 -2
  724. package/esm2015/lib/filter/shared/time-filter.service.js +0 -107
  725. package/esm2015/lib/filter/spatial-filter/spatial-filter-item/index.js +0 -2
  726. package/esm2015/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.js +0 -1108
  727. package/esm2015/lib/filter/spatial-filter/spatial-filter-list/index.js +0 -2
  728. package/esm2015/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.js +0 -224
  729. package/esm2015/lib/filter/spatial-filter/spatial-filter-type/index.js +0 -2
  730. package/esm2015/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.js +0 -157
  731. package/esm2015/lib/filter/time-filter-button/index.js +0 -2
  732. package/esm2015/lib/filter/time-filter-button/time-filter-button.component.js +0 -83
  733. package/esm2015/lib/filter/time-filter-form/index.js +0 -2
  734. package/esm2015/lib/filter/time-filter-form/time-filter-form.component.js +0 -772
  735. package/esm2015/lib/filter/time-filter-item/index.js +0 -2
  736. package/esm2015/lib/filter/time-filter-item/time-filter-item.component.js +0 -126
  737. package/esm2015/lib/filter/time-filter-list/index.js +0 -3
  738. package/esm2015/lib/filter/time-filter-list/time-filter-list-binding.directive.js +0 -31
  739. package/esm2015/lib/filter/time-filter-list/time-filter-list.component.js +0 -43
  740. package/esm2015/lib/geo.module.js +0 -102
  741. package/esm2015/lib/geometry/geometry-form-field/geometry-form-field-input.component.js +0 -515
  742. package/esm2015/lib/geometry/geometry-form-field/geometry-form-field.component.js +0 -199
  743. package/esm2015/lib/geometry/geometry-form-field/geometry-form-field.module.js +0 -66
  744. package/esm2015/lib/geometry/geometry.module.js +0 -29
  745. package/esm2015/lib/geometry/index.js +0 -4
  746. package/esm2015/lib/geometry/shared/controls/draw.js +0 -271
  747. package/esm2015/lib/geometry/shared/controls/index.js +0 -4
  748. package/esm2015/lib/geometry/shared/controls/modify.js +0 -521
  749. package/esm2015/lib/geometry/shared/controls/slice.js +0 -177
  750. package/esm2015/lib/geometry/shared/geometry.errors.js +0 -26
  751. package/esm2015/lib/geometry/shared/geometry.interfaces.js +0 -2
  752. package/esm2015/lib/geometry/shared/geometry.utils.js +0 -122
  753. package/esm2015/lib/geometry/shared/index.js +0 -5
  754. package/esm2015/lib/import-export/export-button/export-button.component.js +0 -70
  755. package/esm2015/lib/import-export/export-button/index.js +0 -2
  756. package/esm2015/lib/import-export/import-export/import-export.component.js +0 -1238
  757. package/esm2015/lib/import-export/import-export/index.js +0 -2
  758. package/esm2015/lib/import-export/import-export.module.js +0 -95
  759. package/esm2015/lib/import-export/index.js +0 -5
  760. package/esm2015/lib/import-export/shared/drop-geo-file.directive.js +0 -136
  761. package/esm2015/lib/import-export/shared/export.errors.js +0 -15
  762. package/esm2015/lib/import-export/shared/export.interface.js +0 -2
  763. package/esm2015/lib/import-export/shared/export.service.js +0 -187
  764. package/esm2015/lib/import-export/shared/export.type.js +0 -4
  765. package/esm2015/lib/import-export/shared/export.utils.js +0 -55
  766. package/esm2015/lib/import-export/shared/import.errors.js +0 -39
  767. package/esm2015/lib/import-export/shared/import.interface.js +0 -2
  768. package/esm2015/lib/import-export/shared/import.service.js +0 -195
  769. package/esm2015/lib/import-export/shared/import.utils.js +0 -207
  770. package/esm2015/lib/import-export/shared/index.js +0 -11
  771. package/esm2015/lib/import-export/style-list/index.js +0 -5
  772. package/esm2015/lib/import-export/style-list/style-list.interface.js +0 -2
  773. package/esm2015/lib/import-export/style-list/style-list.module.js +0 -23
  774. package/esm2015/lib/import-export/style-list/style-list.provider.js +0 -21
  775. package/esm2015/lib/import-export/style-list/style-list.service.js +0 -51
  776. package/esm2015/lib/layer/index.js +0 -10
  777. package/esm2015/lib/layer/layer-item/index.js +0 -2
  778. package/esm2015/lib/layer/layer-item/layer-item.component.js +0 -298
  779. package/esm2015/lib/layer/layer-legend/index.js +0 -2
  780. package/esm2015/lib/layer/layer-legend/layer-legend.component.js +0 -394
  781. package/esm2015/lib/layer/layer-legend-item/index.js +0 -2
  782. package/esm2015/lib/layer/layer-legend-item/layer-legend-item.component.js +0 -91
  783. package/esm2015/lib/layer/layer-legend-list/index.js +0 -3
  784. package/esm2015/lib/layer/layer-legend-list/layer-legend-list-binding.directive.js +0 -48
  785. package/esm2015/lib/layer/layer-legend-list/layer-legend-list.component.js +0 -200
  786. package/esm2015/lib/layer/layer-list/index.js +0 -4
  787. package/esm2015/lib/layer/layer-list/layer-list-binding.directive.js +0 -59
  788. package/esm2015/lib/layer/layer-list/layer-list.component.js +0 -1043
  789. package/esm2015/lib/layer/layer-list/layer-list.enum.js +0 -19
  790. package/esm2015/lib/layer/layer-list-tool/index.js +0 -5
  791. package/esm2015/lib/layer/layer-list-tool/layer-list-tool.component.js +0 -176
  792. package/esm2015/lib/layer/layer-list-tool/layer-list-tool.enum.js +0 -7
  793. package/esm2015/lib/layer/layer-list-tool/layer-list-tool.interface.js +0 -2
  794. package/esm2015/lib/layer/layer-list-tool/layer-list-tool.service.js +0 -22
  795. package/esm2015/lib/layer/layer.module.js +0 -174
  796. package/esm2015/lib/layer/shared/clusterParam.js +0 -2
  797. package/esm2015/lib/layer/shared/index.js +0 -7
  798. package/esm2015/lib/layer/shared/layer.enums.js +0 -2
  799. package/esm2015/lib/layer/shared/layer.service.js +0 -162
  800. package/esm2015/lib/layer/shared/layers/any-layer.interface.js +0 -2
  801. package/esm2015/lib/layer/shared/layers/any-layer.js +0 -2
  802. package/esm2015/lib/layer/shared/layers/image-layer.interface.js +0 -2
  803. package/esm2015/lib/layer/shared/layers/image-layer.js +0 -68
  804. package/esm2015/lib/layer/shared/layers/index.js +0 -13
  805. package/esm2015/lib/layer/shared/layers/layer.interface.js +0 -17
  806. package/esm2015/lib/layer/shared/layers/layer.js +0 -169
  807. package/esm2015/lib/layer/shared/layers/tile-layer.interface.js +0 -2
  808. package/esm2015/lib/layer/shared/layers/tile-layer.js +0 -47
  809. package/esm2015/lib/layer/shared/layers/vector-layer.interface.js +0 -2
  810. package/esm2015/lib/layer/shared/layers/vector-layer.js +0 -325
  811. package/esm2015/lib/layer/shared/layers/vectortile-layer.interface.js +0 -2
  812. package/esm2015/lib/layer/shared/layers/vectortile-layer.js +0 -104
  813. package/esm2015/lib/layer/shared/style.service.js +0 -289
  814. package/esm2015/lib/layer/shared/vector-style.interface.js +0 -2
  815. package/esm2015/lib/layer/track-feature-button/index.js +0 -2
  816. package/esm2015/lib/layer/track-feature-button/track-feature-button.component.js +0 -64
  817. package/esm2015/lib/layer/utils/image-watcher.js +0 -62
  818. package/esm2015/lib/layer/utils/index.js +0 -7
  819. package/esm2015/lib/layer/utils/layer.utils.js +0 -11
  820. package/esm2015/lib/layer/utils/layerSync-watcher.js +0 -249
  821. package/esm2015/lib/layer/utils/outputLegend.js +0 -25
  822. package/esm2015/lib/layer/utils/tile-watcher.js +0 -50
  823. package/esm2015/lib/layer/utils/vector-watcher.js +0 -48
  824. package/esm2015/lib/map/baselayers-switcher/baselayers-switcher.animation.js +0 -20
  825. package/esm2015/lib/map/baselayers-switcher/baselayers-switcher.component.js +0 -105
  826. package/esm2015/lib/map/baselayers-switcher/index.js +0 -3
  827. package/esm2015/lib/map/baselayers-switcher/mini-basemap.component.js +0 -137
  828. package/esm2015/lib/map/geolocate-button/geolocate-button.component.js +0 -47
  829. package/esm2015/lib/map/geolocate-button/index.js +0 -2
  830. package/esm2015/lib/map/home-extent-button/home-extent-button.component.js +0 -69
  831. package/esm2015/lib/map/index.js +0 -13
  832. package/esm2015/lib/map/info-section/index.js +0 -2
  833. package/esm2015/lib/map/info-section/info-section.component.js +0 -36
  834. package/esm2015/lib/map/map-browser/index.js +0 -2
  835. package/esm2015/lib/map/map-browser/map-browser.component.js +0 -70
  836. package/esm2015/lib/map/map-center/index.js +0 -2
  837. package/esm2015/lib/map/map-center/map-center.component.js +0 -55
  838. package/esm2015/lib/map/map.module.js +0 -124
  839. package/esm2015/lib/map/menu-button/index.js +0 -2
  840. package/esm2015/lib/map/menu-button/menu-button.component.js +0 -66
  841. package/esm2015/lib/map/offline-button/index.js +0 -2
  842. package/esm2015/lib/map/offline-button/offline-button.component.js +0 -84
  843. package/esm2015/lib/map/rotation-button/index.js +0 -2
  844. package/esm2015/lib/map/rotation-button/rotation-button.component.js +0 -97
  845. package/esm2015/lib/map/shared/controllers/controller.js +0 -42
  846. package/esm2015/lib/map/shared/controllers/index.js +0 -3
  847. package/esm2015/lib/map/shared/controllers/view.js +0 -326
  848. package/esm2015/lib/map/shared/hover-feature.directive.js +0 -508
  849. package/esm2015/lib/map/shared/index.js +0 -13
  850. package/esm2015/lib/map/shared/map-pointer-position.directive.js +0 -107
  851. package/esm2015/lib/map/shared/map.enums.js +0 -6
  852. package/esm2015/lib/map/shared/map.interface.js +0 -2
  853. package/esm2015/lib/map/shared/map.js +0 -538
  854. package/esm2015/lib/map/shared/map.service.js +0 -29
  855. package/esm2015/lib/map/shared/map.utils.js +0 -459
  856. package/esm2015/lib/map/shared/mapOffline.directive.js +0 -163
  857. package/esm2015/lib/map/shared/projection.interfaces.js +0 -2
  858. package/esm2015/lib/map/shared/projection.service.js +0 -65
  859. package/esm2015/lib/map/shared/projection.utils.js +0 -64
  860. package/esm2015/lib/map/swipe-control/index.js +0 -2
  861. package/esm2015/lib/map/swipe-control/swipe-control.component.js +0 -199
  862. package/esm2015/lib/map/utils/layer-watcher.js +0 -58
  863. package/esm2015/lib/map/zoom-button/index.js +0 -2
  864. package/esm2015/lib/map/zoom-button/zoom-button.component.js +0 -46
  865. package/esm2015/lib/measure/index.js +0 -4
  866. package/esm2015/lib/measure/measure.module.js +0 -20
  867. package/esm2015/lib/measure/measurer/measure-format.pipe.js +0 -37
  868. package/esm2015/lib/measure/measurer/measurer-dialog.component.js +0 -220
  869. package/esm2015/lib/measure/measurer/measurer-item.component.js +0 -148
  870. package/esm2015/lib/measure/measurer/measurer.component.js +0 -1053
  871. package/esm2015/lib/measure/measurer/measurer.module.js +0 -96
  872. package/esm2015/lib/measure/shared/index.js +0 -4
  873. package/esm2015/lib/measure/shared/measure.enum.js +0 -37
  874. package/esm2015/lib/measure/shared/measure.interfaces.js +0 -2
  875. package/esm2015/lib/measure/shared/measure.utils.js +0 -489
  876. package/esm2015/lib/metadata/index.js +0 -3
  877. package/esm2015/lib/metadata/metadata-button/index.js +0 -2
  878. package/esm2015/lib/metadata/metadata-button/metadata-button.component.js +0 -135
  879. package/esm2015/lib/metadata/metadata.module.js +0 -57
  880. package/esm2015/lib/metadata/shared/index.js +0 -3
  881. package/esm2015/lib/metadata/shared/metadata.interface.js +0 -2
  882. package/esm2015/lib/metadata/shared/metadata.service.js +0 -19
  883. package/esm2015/lib/overlay/index.js +0 -2
  884. package/esm2015/lib/overlay/overlay.module.js +0 -23
  885. package/esm2015/lib/overlay/shared/index.js +0 -7
  886. package/esm2015/lib/overlay/shared/overlay-marker-style.utils.js +0 -69
  887. package/esm2015/lib/overlay/shared/overlay.directive.js +0 -33
  888. package/esm2015/lib/overlay/shared/overlay.enum.js +0 -8
  889. package/esm2015/lib/overlay/shared/overlay.js +0 -130
  890. package/esm2015/lib/overlay/shared/overlay.service.js +0 -27
  891. package/esm2015/lib/overlay/shared/overlay.utils.js +0 -103
  892. package/esm2015/lib/print/index.js +0 -4
  893. package/esm2015/lib/print/print/print.component.js +0 -126
  894. package/esm2015/lib/print/print-form/index.js +0 -2
  895. package/esm2015/lib/print/print-form/print-form.component.js +0 -447
  896. package/esm2015/lib/print/print.module.js +0 -67
  897. package/esm2015/lib/print/shared/index.js +0 -4
  898. package/esm2015/lib/print/shared/print.interface.js +0 -2
  899. package/esm2015/lib/print/shared/print.service.js +0 -814
  900. package/esm2015/lib/print/shared/print.type.js +0 -30
  901. package/esm2015/lib/query/index.js +0 -2
  902. package/esm2015/lib/query/query.module.js +0 -28
  903. package/esm2015/lib/query/shared/index.js +0 -7
  904. package/esm2015/lib/query/shared/query-search-source.js +0 -35
  905. package/esm2015/lib/query/shared/query-search-source.providers.js +0 -22
  906. package/esm2015/lib/query/shared/query.directive.js +0 -261
  907. package/esm2015/lib/query/shared/query.enums.js +0 -30
  908. package/esm2015/lib/query/shared/query.interfaces.js +0 -2
  909. package/esm2015/lib/query/shared/query.service.js +0 -592
  910. package/esm2015/lib/query/shared/query.utils.js +0 -37
  911. package/esm2015/lib/search/index.js +0 -12
  912. package/esm2015/lib/search/search-bar/search-bar.component.js +0 -496
  913. package/esm2015/lib/search/search-bar/search-bar.module.js +0 -77
  914. package/esm2015/lib/search/search-bar/search-url-param.directive.js +0 -35
  915. package/esm2015/lib/search/search-results/search-results-add-button.component.js +0 -198
  916. package/esm2015/lib/search/search-results/search-results-item.component.js +0 -129
  917. package/esm2015/lib/search/search-results/search-results.component.js +0 -337
  918. package/esm2015/lib/search/search-results/search-results.module.js +0 -79
  919. package/esm2015/lib/search/search-selector/search-selector.component.js +0 -132
  920. package/esm2015/lib/search/search-selector/search-selector.module.js +0 -58
  921. package/esm2015/lib/search/search-settings/search-settings.component.js +0 -435
  922. package/esm2015/lib/search/search-settings/search-settings.module.js +0 -62
  923. package/esm2015/lib/search/search.module.js +0 -69
  924. package/esm2015/lib/search/shared/index.js +0 -9
  925. package/esm2015/lib/search/shared/search-pointer-summary.directive.js +0 -322
  926. package/esm2015/lib/search/shared/search-source-service.providers.js +0 -20
  927. package/esm2015/lib/search/shared/search-source.service.js +0 -47
  928. package/esm2015/lib/search/shared/search.enums.js +0 -4
  929. package/esm2015/lib/search/shared/search.interfaces.js +0 -2
  930. package/esm2015/lib/search/shared/search.service.js +0 -118
  931. package/esm2015/lib/search/shared/search.utils.js +0 -78
  932. package/esm2015/lib/search/shared/sources/cadastre.js +0 -126
  933. package/esm2015/lib/search/shared/sources/cadastre.providers.js +0 -23
  934. package/esm2015/lib/search/shared/sources/coordinates.interfaces.js +0 -2
  935. package/esm2015/lib/search/shared/sources/coordinates.js +0 -147
  936. package/esm2015/lib/search/shared/sources/coordinates.providers.js +0 -40
  937. package/esm2015/lib/search/shared/sources/icherche.interfaces.js +0 -2
  938. package/esm2015/lib/search/shared/sources/icherche.js +0 -756
  939. package/esm2015/lib/search/shared/sources/icherche.providers.js +0 -66
  940. package/esm2015/lib/search/shared/sources/ilayer.interfaces.js +0 -2
  941. package/esm2015/lib/search/shared/sources/ilayer.js +0 -320
  942. package/esm2015/lib/search/shared/sources/ilayer.providers.js +0 -40
  943. package/esm2015/lib/search/shared/sources/index.js +0 -20
  944. package/esm2015/lib/search/shared/sources/nominatim.interfaces.js +0 -2
  945. package/esm2015/lib/search/shared/sources/nominatim.js +0 -253
  946. package/esm2015/lib/search/shared/sources/nominatim.providers.js +0 -23
  947. package/esm2015/lib/search/shared/sources/source.interfaces.js +0 -2
  948. package/esm2015/lib/search/shared/sources/source.js +0 -179
  949. package/esm2015/lib/search/shared/sources/storedqueries.interfaces.js +0 -2
  950. package/esm2015/lib/search/shared/sources/storedqueries.js +0 -425
  951. package/esm2015/lib/search/shared/sources/storedqueries.providers.js +0 -41
  952. package/esm2015/lib/toast/index.js +0 -2
  953. package/esm2015/lib/toast/toast.component.js +0 -119
  954. package/esm2015/lib/toast/toast.module.js +0 -47
  955. package/esm2015/lib/utils/commonVectorStyle.interface.js +0 -2
  956. package/esm2015/lib/utils/commonVectorStyle.js +0 -75
  957. package/esm2015/lib/utils/googleLinks.js +0 -13
  958. package/esm2015/lib/utils/id-generator.js +0 -110
  959. package/esm2015/lib/utils/index.js +0 -6
  960. package/esm2015/lib/utils/osmLinks.js +0 -10
  961. package/esm2015/lib/wkt/index.js +0 -2
  962. package/esm2015/lib/wkt/shared/index.js +0 -2
  963. package/esm2015/lib/wkt/shared/wkt.service.js +0 -239
  964. package/esm2015/lib/wkt/wkt.module.js +0 -22
  965. package/esm2015/lib/workspace/confirmation-popup/confirmation-popup.component.js +0 -56
  966. package/esm2015/lib/workspace/confirmation-popup/confirmation-popup.module.js +0 -38
  967. package/esm2015/lib/workspace/confirmation-popup/index.js +0 -3
  968. package/esm2015/lib/workspace/index.js +0 -8
  969. package/esm2015/lib/workspace/shared/edition-workspace.js +0 -271
  970. package/esm2015/lib/workspace/shared/edition-workspace.service.js +0 -619
  971. package/esm2015/lib/workspace/shared/feature-workspace.js +0 -37
  972. package/esm2015/lib/workspace/shared/feature-workspace.service.js +0 -146
  973. package/esm2015/lib/workspace/shared/index.js +0 -8
  974. package/esm2015/lib/workspace/shared/wfs-workspace.js +0 -37
  975. package/esm2015/lib/workspace/shared/wfs-workspace.service.js +0 -146
  976. package/esm2015/lib/workspace/shared/wms-workspace.service.js +0 -239
  977. package/esm2015/lib/workspace/shared/workspace.utils.js +0 -24
  978. package/esm2015/lib/workspace/widgets/index.js +0 -4
  979. package/esm2015/lib/workspace/widgets/ogc-filter/ogc-filter.component.js +0 -52
  980. package/esm2015/lib/workspace/widgets/ogc-filter/ogc-filter.module.js +0 -38
  981. package/esm2015/lib/workspace/widgets/widgets.js +0 -15
  982. package/esm2015/lib/workspace/workspace-selector/workspace-selector.directive.js +0 -135
  983. package/esm2015/lib/workspace/workspace-selector/workspace-selector.module.js +0 -30
  984. package/esm2015/lib/workspace/workspace-updator/workspace-updator.directive.js +0 -116
  985. package/esm2015/lib/workspace/workspace-updator/workspace-updator.module.js +0 -30
  986. package/esm2015/lib/workspace/workspace.module.js +0 -64
  987. package/esm2015/public_api.js +0 -54
  988. package/fesm2015/igo2-geo.js +0 -40591
  989. package/fesm2015/igo2-geo.js.map +0 -1
@@ -0,0 +1,236 @@
1
+ import { Injectable, Optional } from '@angular/core';
2
+ import { forkJoin, of, Observable, BehaviorSubject } from 'rxjs';
3
+ import { map, catchError } from 'rxjs/operators';
4
+ import { OSMDataSource, FeatureDataSource, XYZDataSource, TileDebugDataSource, WFSDataSource, WMTSDataSource, WMSDataSource, CartoDataSource, ArcGISRestDataSource, ImageArcGISRestDataSource, TileArcGISRestDataSource, WebSocketDataSource, MVTDataSource, ClusterDataSource } from './datasources';
5
+ import { ObjectUtils } from '@igo2/utils';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "./capabilities.service";
8
+ import * as i2 from "./options/options.service";
9
+ import * as i3 from "./datasources/wfs.service";
10
+ import * as i4 from "@igo2/core";
11
+ import * as i5 from "../../map/shared/projection.service";
12
+ import * as i6 from "@igo2/auth";
13
+ export class DataSourceService {
14
+ constructor(capabilitiesService, optionsService, wfsDataSourceService, languageService, messageService, projectionService, authInterceptor) {
15
+ this.capabilitiesService = capabilitiesService;
16
+ this.optionsService = optionsService;
17
+ this.wfsDataSourceService = wfsDataSourceService;
18
+ this.languageService = languageService;
19
+ this.messageService = messageService;
20
+ this.projectionService = projectionService;
21
+ this.authInterceptor = authInterceptor;
22
+ this.datasources$ = new BehaviorSubject([]);
23
+ }
24
+ createAsyncDataSource(context, detailedContextUri) {
25
+ if (!context.type) {
26
+ console.error(context);
27
+ throw new Error('Datasource needs a type');
28
+ }
29
+ let dataSource;
30
+ switch (context.type.toLowerCase()) {
31
+ case 'osm':
32
+ dataSource = this.createOSMDataSource(context);
33
+ break;
34
+ case 'vector':
35
+ dataSource = this.createFeatureDataSource(context);
36
+ break;
37
+ case 'wfs':
38
+ dataSource = this.createWFSDataSource(context);
39
+ break;
40
+ case 'wms':
41
+ const wmsContext = context;
42
+ ObjectUtils.removeDuplicateCaseInsensitive(wmsContext.params);
43
+ dataSource = this.createWMSDataSource(wmsContext, detailedContextUri);
44
+ break;
45
+ case 'wmts':
46
+ dataSource = this.createWMTSDataSource(context);
47
+ break;
48
+ case 'xyz':
49
+ dataSource = this.createXYZDataSource(context);
50
+ break;
51
+ case 'tiledebug':
52
+ dataSource = this.createTileDebugDataSource(context);
53
+ break;
54
+ case 'carto':
55
+ dataSource = this.createCartoDataSource(context);
56
+ break;
57
+ case 'arcgisrest':
58
+ dataSource = this.createArcGISRestDataSource(context, detailedContextUri);
59
+ break;
60
+ case 'imagearcgisrest':
61
+ dataSource = this.createArcGISRestImageDataSource(context, detailedContextUri);
62
+ break;
63
+ case 'websocket':
64
+ dataSource = this.createWebSocketDataSource(context);
65
+ break;
66
+ case 'mvt':
67
+ dataSource = this.createMVTDataSource(context);
68
+ break;
69
+ case 'tilearcgisrest':
70
+ dataSource = this.createTileArcGISRestDataSource(context, detailedContextUri);
71
+ break;
72
+ case 'cluster':
73
+ dataSource = this.createClusterDataSource(context);
74
+ break;
75
+ default:
76
+ console.error(context);
77
+ throw new Error('Invalid datasource type');
78
+ }
79
+ this.datasources$.next(this.datasources$.value.concat([dataSource]));
80
+ return dataSource;
81
+ }
82
+ createOSMDataSource(context) {
83
+ return new Observable(d => d.next(new OSMDataSource(context)));
84
+ }
85
+ createFeatureDataSource(context) {
86
+ return new Observable(d => d.next(new FeatureDataSource(context)));
87
+ }
88
+ createWebSocketDataSource(context) {
89
+ return new Observable(d => d.next(new WebSocketDataSource(context)));
90
+ }
91
+ createWFSDataSource(context) {
92
+ return new Observable(d => d.next(new WFSDataSource(context, this.wfsDataSourceService, this.authInterceptor)));
93
+ }
94
+ createWMSDataSource(context, detailedContextUri) {
95
+ const observables = [];
96
+ if (context.optionsFromCapabilities) {
97
+ observables.push(this.capabilitiesService.getWMSOptions(context).pipe(catchError(e => {
98
+ const title = this.languageService.translate.instant('igo.geo.dataSource.unavailableTitle');
99
+ const message = this.languageService.translate.instant('igo.geo.dataSource.unavailable', { value: context.params.LAYERS });
100
+ this.messageService.error(message, title);
101
+ throw e;
102
+ })));
103
+ }
104
+ if (this.optionsService && context.optionsFromApi === true) {
105
+ observables.push(this.optionsService.getWMSOptions(context, detailedContextUri).pipe(catchError(e => {
106
+ e.error.toDisplay = true;
107
+ e.error.title = this.languageService.translate.instant('igo.geo.dataSource.unavailableTitle');
108
+ e.error.message = this.languageService.translate.instant('igo.geo.dataSource.optionsApiUnavailable');
109
+ return of({});
110
+ })));
111
+ }
112
+ observables.push(of(context));
113
+ return forkJoin(observables).pipe(map((options) => {
114
+ const optionsMerged = options.reduce((a, b) => ObjectUtils.mergeDeep(a, b));
115
+ return new WMSDataSource(optionsMerged, this.wfsDataSourceService);
116
+ }), catchError(() => {
117
+ return of(undefined);
118
+ }));
119
+ }
120
+ createWMTSDataSource(context) {
121
+ if (context.optionsFromCapabilities) {
122
+ return this.capabilitiesService.getWMTSOptions(context).pipe(map((options) => {
123
+ return options ? new WMTSDataSource(options) : undefined;
124
+ }), catchError(() => {
125
+ const title = this.languageService.translate.instant('igo.geo.dataSource.unavailableTitle');
126
+ const message = this.languageService.translate.instant('igo.geo.dataSource.unavailable', { value: context.layer });
127
+ this.messageService.error(message, title);
128
+ return of(undefined);
129
+ }));
130
+ }
131
+ return new Observable(d => d.next(new WMTSDataSource(context)));
132
+ }
133
+ createXYZDataSource(context) {
134
+ return new Observable(d => d.next(new XYZDataSource(context)));
135
+ }
136
+ createTileDebugDataSource(context) {
137
+ return new Observable(d => d.next(new TileDebugDataSource(context)));
138
+ }
139
+ createCartoDataSource(context) {
140
+ if (context.mapId) {
141
+ return this.capabilitiesService
142
+ .getCartoOptions(context)
143
+ .pipe(map((options) => new CartoDataSource(options)));
144
+ }
145
+ return new Observable(d => d.next(new CartoDataSource(context)));
146
+ }
147
+ createArcGISRestDataSource(context, detailedContextUri) {
148
+ const observables = [];
149
+ observables.push(this.capabilitiesService.getArcgisOptions(context).pipe(catchError(e => {
150
+ const title = this.languageService.translate.instant('igo.geo.dataSource.unavailableTitle');
151
+ const message = this.languageService.translate.instant('igo.geo.dataSource.unavailable', { value: context.layer });
152
+ this.messageService.error(message, title);
153
+ throw e;
154
+ })));
155
+ if (this.optionsService && context.optionsFromApi === true) {
156
+ observables.push(this.optionsService.getArcgisRestOptions(context, detailedContextUri).pipe(catchError(e => {
157
+ e.error.toDisplay = true;
158
+ e.error.title = this.languageService.translate.instant('igo.geo.dataSource.unavailableTitle');
159
+ e.error.message = this.languageService.translate.instant('igo.geo.dataSource.optionsApiUnavailable');
160
+ return of({});
161
+ })));
162
+ }
163
+ observables.push(of(context));
164
+ return forkJoin(observables).pipe(map((options) => {
165
+ const optionsMerged = options.reduce((a, b) => ObjectUtils.mergeDeep(a, b));
166
+ return new ArcGISRestDataSource(optionsMerged);
167
+ }), catchError(() => {
168
+ return of(undefined);
169
+ }));
170
+ }
171
+ createArcGISRestImageDataSource(context, detailedContextUri) {
172
+ const observables = [];
173
+ observables.push(this.capabilitiesService.getImageArcgisOptions(context).pipe(catchError(e => {
174
+ const title = this.languageService.translate.instant('igo.geo.dataSource.unavailableTitle');
175
+ const message = this.languageService.translate.instant('igo.geo.dataSource.unavailable', { value: context.params.LAYERS });
176
+ this.messageService.error(message, title);
177
+ throw e;
178
+ })));
179
+ if (this.optionsService && context.optionsFromApi === true) {
180
+ observables.push(this.optionsService.getArcgisRestOptions(context, detailedContextUri).pipe(catchError(e => {
181
+ e.error.toDisplay = true;
182
+ e.error.title = this.languageService.translate.instant('igo.geo.dataSource.unavailableTitle');
183
+ e.error.message = this.languageService.translate.instant('igo.geo.dataSource.optionsApiUnavailable');
184
+ return of({});
185
+ })));
186
+ }
187
+ observables.push(of(context));
188
+ return forkJoin(observables).pipe(map((options) => {
189
+ const optionsMerged = options.reduce((a, b) => ObjectUtils.mergeDeep(a, b));
190
+ return new ImageArcGISRestDataSource(optionsMerged);
191
+ }), catchError(() => {
192
+ return of(undefined);
193
+ }));
194
+ }
195
+ createTileArcGISRestDataSource(context, detailedContextUri) {
196
+ const observables = [];
197
+ observables.push(this.capabilitiesService.getImageArcgisOptions(context).pipe(catchError(e => {
198
+ const title = this.languageService.translate.instant('igo.geo.dataSource.unavailableTitle');
199
+ const message = this.languageService.translate.instant('igo.geo.dataSource.unavailable', { value: context.params.LAYERS });
200
+ this.messageService.error(message, title);
201
+ throw e;
202
+ })));
203
+ if (this.optionsService && context.optionsFromApi === true) {
204
+ observables.push(this.optionsService.getArcgisRestOptions(context, detailedContextUri).pipe(catchError(e => {
205
+ e.error.toDisplay = true;
206
+ e.error.title = this.languageService.translate.instant('igo.geo.dataSource.unavailableTitle');
207
+ e.error.message = this.languageService.translate.instant('igo.geo.dataSource.optionsApiUnavailable');
208
+ return of({});
209
+ })));
210
+ }
211
+ observables.push(of(context));
212
+ return forkJoin(observables).pipe(map((options) => {
213
+ const optionsMerged = options.reduce((a, b) => ObjectUtils.mergeDeep(a, b));
214
+ return new TileArcGISRestDataSource(optionsMerged);
215
+ }), catchError(() => {
216
+ return of(undefined);
217
+ }));
218
+ }
219
+ createMVTDataSource(context) {
220
+ return new Observable(d => d.next(new MVTDataSource(context)));
221
+ }
222
+ createClusterDataSource(context) {
223
+ return new Observable(d => d.next(new ClusterDataSource(context)));
224
+ }
225
+ }
226
+ DataSourceService.ɵfac = function DataSourceService_Factory(t) { return new (t || DataSourceService)(i0.ɵɵinject(i1.CapabilitiesService), i0.ɵɵinject(i2.OptionsService, 8), i0.ɵɵinject(i3.WFSService), i0.ɵɵinject(i4.LanguageService), i0.ɵɵinject(i4.MessageService), i0.ɵɵinject(i5.ProjectionService), i0.ɵɵinject(i6.AuthInterceptor)); };
227
+ DataSourceService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: DataSourceService, factory: DataSourceService.ɵfac, providedIn: 'root' });
228
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DataSourceService, [{
229
+ type: Injectable,
230
+ args: [{
231
+ providedIn: 'root'
232
+ }]
233
+ }], function () { return [{ type: i1.CapabilitiesService }, { type: i2.OptionsService, decorators: [{
234
+ type: Optional
235
+ }] }, { type: i3.WFSService }, { type: i4.LanguageService }, { type: i4.MessageService }, { type: i5.ProjectionService }, { type: i6.AuthInterceptor }]; }, null); })();
236
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNvdXJjZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakUsT0FBTyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUtqRCxPQUFPLEVBRUwsYUFBYSxFQUViLGlCQUFpQixFQUVqQixhQUFhLEVBRWIsbUJBQW1CLEVBRW5CLGFBQWEsRUFFYixjQUFjLEVBRWQsYUFBYSxFQUViLGVBQWUsRUFFZixvQkFBb0IsRUFFcEIseUJBQXlCLEVBRXpCLHdCQUF3QixFQUV4QixtQkFBbUIsRUFFbkIsYUFBYSxFQUViLGlCQUFpQixFQUVsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7Ozs7OztBQVExQyxNQUFNLE9BQU8saUJBQWlCO0lBRzVCLFlBQ1UsbUJBQXdDLEVBQzVCLGNBQThCLEVBQzFDLG9CQUFnQyxFQUNoQyxlQUFnQyxFQUNoQyxjQUE4QixFQUM5QixpQkFBb0MsRUFDcEMsZUFBaUM7UUFOakMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUM1QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDMUMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFZO1FBQ2hDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxvQkFBZSxHQUFm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U0FDSDtRQUNELFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDOUIsT0FBTyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUMvQixHQUFHLENBQUMsQ0FBQyxPQUFtQyxFQUFFLEVBQUU7WUFDMUMsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUM1QyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FDNUIsQ0FBQztZQUNGLE9BQU8sSUFBSSx3QkFBd0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNyRCxDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFTyxtQkFBbUIsQ0FDekIsT0FBNkI7UUFFN0IsT0FBTyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFTyx1QkFBdUIsQ0FDN0IsT0FBaUM7UUFFakMsT0FBTyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckUsQ0FBQzs7a0ZBMVhVLGlCQUFpQjt1RUFBakIsaUJBQWlCLFdBQWpCLGlCQUFpQixtQkFGaEIsTUFBTTt1RkFFUCxpQkFBaUI7Y0FIN0IsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COztzQkFNSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZm9ya0pvaW4sIG9mLCBPYnNlcnZhYmxlLCBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwLCBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgQ2FwYWJpbGl0aWVzU2VydmljZSB9IGZyb20gJy4vY2FwYWJpbGl0aWVzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBPcHRpb25zU2VydmljZSB9IGZyb20gJy4vb3B0aW9ucy9vcHRpb25zLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBXRlNTZXJ2aWNlIH0gZnJvbSAnLi9kYXRhc291cmNlcy93ZnMuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgRGF0YVNvdXJjZSxcclxuICBPU01EYXRhU291cmNlLFxyXG4gIE9TTURhdGFTb3VyY2VPcHRpb25zLFxyXG4gIEZlYXR1cmVEYXRhU291cmNlLFxyXG4gIEZlYXR1cmVEYXRhU291cmNlT3B0aW9ucyxcclxuICBYWVpEYXRhU291cmNlLFxyXG4gIFhZWkRhdGFTb3VyY2VPcHRpb25zLFxyXG4gIFRpbGVEZWJ1Z0RhdGFTb3VyY2UsXHJcbiAgVGlsZURlYnVnRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgV0ZTRGF0YVNvdXJjZSxcclxuICBXRlNEYXRhU291cmNlT3B0aW9ucyxcclxuICBXTVRTRGF0YVNvdXJjZSxcclxuICBXTVRTRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgV01TRGF0YVNvdXJjZSxcclxuICBXTVNEYXRhU291cmNlT3B0aW9ucyxcclxuICBDYXJ0b0RhdGFTb3VyY2UsXHJcbiAgQ2FydG9EYXRhU291cmNlT3B0aW9ucyxcclxuICBBcmNHSVNSZXN0RGF0YVNvdXJjZSxcclxuICBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgSW1hZ2VBcmNHSVNSZXN0RGF0YVNvdXJjZSxcclxuICBBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlT3B0aW9ucyxcclxuICBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2UsXHJcbiAgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucyxcclxuICBXZWJTb2NrZXREYXRhU291cmNlLFxyXG4gIEFueURhdGFTb3VyY2VPcHRpb25zLFxyXG4gIE1WVERhdGFTb3VyY2UsXHJcbiAgTVZURGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgQ2x1c3RlckRhdGFTb3VyY2UsXHJcbiAgQ2x1c3RlckRhdGFTb3VyY2VPcHRpb25zXHJcbn0gZnJvbSAnLi9kYXRhc291cmNlcyc7XHJcbmltcG9ydCB7IE9iamVjdFV0aWxzIH0gZnJvbSAnQGlnbzIvdXRpbHMnO1xyXG5pbXBvcnQgeyBMYW5ndWFnZVNlcnZpY2UsIE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcbmltcG9ydCB7IFByb2plY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vbWFwL3NoYXJlZC9wcm9qZWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBdXRoSW50ZXJjZXB0b3IgfSBmcm9tICdAaWdvMi9hdXRoJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGFTb3VyY2VTZXJ2aWNlIHtcclxuICBwdWJsaWMgZGF0YXNvdXJjZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEYXRhU291cmNlW10+KFtdKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNhcGFiaWxpdGllc1NlcnZpY2U6IENhcGFiaWxpdGllc1NlcnZpY2UsXHJcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIG9wdGlvbnNTZXJ2aWNlOiBPcHRpb25zU2VydmljZSxcclxuICAgIHByaXZhdGUgd2ZzRGF0YVNvdXJjZVNlcnZpY2U6IFdGU1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHByb2plY3Rpb25TZXJ2aWNlOiBQcm9qZWN0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgYXV0aEludGVyY2VwdG9yPzogQXV0aEludGVyY2VwdG9yXHJcbiAgKSB7fVxyXG5cclxuICBjcmVhdGVBc3luY0RhdGFTb3VyY2UoY29udGV4dDogQW55RGF0YVNvdXJjZU9wdGlvbnMsIGRldGFpbGVkQ29udGV4dFVyaT86IHN0cmluZyk6IE9ic2VydmFibGU8RGF0YVNvdXJjZT4ge1xyXG4gICAgaWYgKCFjb250ZXh0LnR5cGUpIHtcclxuICAgICAgY29uc29sZS5lcnJvcihjb250ZXh0KTtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdEYXRhc291cmNlIG5lZWRzIGEgdHlwZScpO1xyXG4gICAgfVxyXG4gICAgbGV0IGRhdGFTb3VyY2U7XHJcbiAgICBzd2l0Y2ggKGNvbnRleHQudHlwZS50b0xvd2VyQ2FzZSgpKSB7XHJcbiAgICAgIGNhc2UgJ29zbSc6XHJcbiAgICAgICAgZGF0YVNvdXJjZSA9IHRoaXMuY3JlYXRlT1NNRGF0YVNvdXJjZShjb250ZXh0IGFzIE9TTURhdGFTb3VyY2VPcHRpb25zKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAndmVjdG9yJzpcclxuICAgICAgICBkYXRhU291cmNlID0gdGhpcy5jcmVhdGVGZWF0dXJlRGF0YVNvdXJjZShcclxuICAgICAgICAgIGNvbnRleHQgYXMgRmVhdHVyZURhdGFTb3VyY2VPcHRpb25zXHJcbiAgICAgICAgKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnd2ZzJzpcclxuICAgICAgICBkYXRhU291cmNlID0gdGhpcy5jcmVhdGVXRlNEYXRhU291cmNlKGNvbnRleHQgYXMgV0ZTRGF0YVNvdXJjZU9wdGlvbnMpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd3bXMnOlxyXG4gICAgICAgIGNvbnN0IHdtc0NvbnRleHQgPSBjb250ZXh0IGFzIFdNU0RhdGFTb3VyY2VPcHRpb25zO1xyXG4gICAgICAgIE9iamVjdFV0aWxzLnJlbW92ZUR1cGxpY2F0ZUNhc2VJbnNlbnNpdGl2ZSh3bXNDb250ZXh0LnBhcmFtcyk7XHJcbiAgICAgICAgZGF0YVNvdXJjZSA9IHRoaXMuY3JlYXRlV01TRGF0YVNvdXJjZSh3bXNDb250ZXh0LCBkZXRhaWxlZENvbnRleHRVcmkpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd3bXRzJzpcclxuICAgICAgICBkYXRhU291cmNlID0gdGhpcy5jcmVhdGVXTVRTRGF0YVNvdXJjZShcclxuICAgICAgICAgIGNvbnRleHQgYXMgV01UU0RhdGFTb3VyY2VPcHRpb25zXHJcbiAgICAgICAgKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAneHl6JzpcclxuICAgICAgICBkYXRhU291cmNlID0gdGhpcy5jcmVhdGVYWVpEYXRhU291cmNlKGNvbnRleHQgYXMgWFlaRGF0YVNvdXJjZU9wdGlvbnMpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd0aWxlZGVidWcnOlxyXG4gICAgICAgIGRhdGFTb3VyY2UgPSB0aGlzLmNyZWF0ZVRpbGVEZWJ1Z0RhdGFTb3VyY2UoY29udGV4dCBhcyBUaWxlRGVidWdEYXRhU291cmNlKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnY2FydG8nOlxyXG4gICAgICAgIGRhdGFTb3VyY2UgPSB0aGlzLmNyZWF0ZUNhcnRvRGF0YVNvdXJjZShcclxuICAgICAgICAgIGNvbnRleHQgYXMgQ2FydG9EYXRhU291cmNlT3B0aW9uc1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2FyY2dpc3Jlc3QnOlxyXG4gICAgICAgIGRhdGFTb3VyY2UgPSB0aGlzLmNyZWF0ZUFyY0dJU1Jlc3REYXRhU291cmNlKFxyXG4gICAgICAgICAgY29udGV4dCBhcyBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMsIGRldGFpbGVkQ29udGV4dFVyaVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2ltYWdlYXJjZ2lzcmVzdCc6XHJcbiAgICAgICAgZGF0YVNvdXJjZSA9IHRoaXMuY3JlYXRlQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZShcclxuICAgICAgICAgIGNvbnRleHQgYXMgQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZU9wdGlvbnMsIGRldGFpbGVkQ29udGV4dFVyaVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3dlYnNvY2tldCc6XHJcbiAgICAgICAgZGF0YVNvdXJjZSA9IHRoaXMuY3JlYXRlV2ViU29ja2V0RGF0YVNvdXJjZShcclxuICAgICAgICAgIGNvbnRleHQgYXMgRmVhdHVyZURhdGFTb3VyY2VPcHRpb25zXHJcbiAgICAgICAgKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnbXZ0JzpcclxuICAgICAgICBkYXRhU291cmNlID0gdGhpcy5jcmVhdGVNVlREYXRhU291cmNlKGNvbnRleHQgYXMgTVZURGF0YVNvdXJjZU9wdGlvbnMpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd0aWxlYXJjZ2lzcmVzdCc6XHJcbiAgICAgICAgZGF0YVNvdXJjZSA9IHRoaXMuY3JlYXRlVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlKFxyXG4gICAgICAgICAgY29udGV4dCBhcyBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zLCBkZXRhaWxlZENvbnRleHRVcmlcclxuICAgICAgICApO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdjbHVzdGVyJzpcclxuICAgICAgICBkYXRhU291cmNlID0gdGhpcy5jcmVhdGVDbHVzdGVyRGF0YVNvdXJjZShcclxuICAgICAgICAgIGNvbnRleHQgYXMgQ2x1c3RlckRhdGFTb3VyY2VPcHRpb25zXHJcbiAgICAgICAgKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBjb25zb2xlLmVycm9yKGNvbnRleHQpO1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBkYXRhc291cmNlIHR5cGUnKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRhdGFzb3VyY2VzJC5uZXh0KHRoaXMuZGF0YXNvdXJjZXMkLnZhbHVlLmNvbmNhdChbZGF0YVNvdXJjZV0pKTtcclxuXHJcbiAgICByZXR1cm4gZGF0YVNvdXJjZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlT1NNRGF0YVNvdXJjZShcclxuICAgIGNvbnRleHQ6IE9TTURhdGFTb3VyY2VPcHRpb25zXHJcbiAgKTogT2JzZXJ2YWJsZTxPU01EYXRhU291cmNlPiB7XHJcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoZCA9PiBkLm5leHQobmV3IE9TTURhdGFTb3VyY2UoY29udGV4dCkpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlRmVhdHVyZURhdGFTb3VyY2UoXHJcbiAgICBjb250ZXh0OiBGZWF0dXJlRGF0YVNvdXJjZU9wdGlvbnNcclxuICApOiBPYnNlcnZhYmxlPEZlYXR1cmVEYXRhU291cmNlPiB7XHJcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoZCA9PiBkLm5leHQobmV3IEZlYXR1cmVEYXRhU291cmNlKGNvbnRleHQpKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZVdlYlNvY2tldERhdGFTb3VyY2UoXHJcbiAgICBjb250ZXh0OiBGZWF0dXJlRGF0YVNvdXJjZU9wdGlvbnNcclxuICApOiBPYnNlcnZhYmxlPFdlYlNvY2tldERhdGFTb3VyY2U+IHtcclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShkID0+IGQubmV4dChuZXcgV2ViU29ja2V0RGF0YVNvdXJjZShjb250ZXh0KSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVXRlNEYXRhU291cmNlKFxyXG4gICAgY29udGV4dDogV0ZTRGF0YVNvdXJjZU9wdGlvbnNcclxuICApOiBPYnNlcnZhYmxlPFdGU0RhdGFTb3VyY2U+IHtcclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShkID0+XHJcbiAgICAgIGQubmV4dChuZXcgV0ZTRGF0YVNvdXJjZShjb250ZXh0LCB0aGlzLndmc0RhdGFTb3VyY2VTZXJ2aWNlLCB0aGlzLmF1dGhJbnRlcmNlcHRvcikpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVXTVNEYXRhU291cmNlKGNvbnRleHQ6IFdNU0RhdGFTb3VyY2VPcHRpb25zLCBkZXRhaWxlZENvbnRleHRVcmk/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3Qgb2JzZXJ2YWJsZXMgPSBbXTtcclxuICAgIGlmIChjb250ZXh0Lm9wdGlvbnNGcm9tQ2FwYWJpbGl0aWVzKSB7XHJcbiAgICAgIG9ic2VydmFibGVzLnB1c2goXHJcbiAgICAgICAgdGhpcy5jYXBhYmlsaXRpZXNTZXJ2aWNlLmdldFdNU09wdGlvbnMoY29udGV4dCkucGlwZShcclxuICAgICAgICAgIGNhdGNoRXJyb3IoZSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRpdGxlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZVRpdGxlJ1xyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZScsXHJcbiAgICAgICAgICAgICAgeyB2YWx1ZTogY29udGV4dC5wYXJhbXMuTEFZRVJTIH1cclxuICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuZXJyb3IobWVzc2FnZSwgdGl0bGUpO1xyXG4gICAgICAgICAgICB0aHJvdyBlO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9uc1NlcnZpY2UgJiYgY29udGV4dC5vcHRpb25zRnJvbUFwaSA9PT0gdHJ1ZSkge1xyXG4gICAgICBvYnNlcnZhYmxlcy5wdXNoKFxyXG4gICAgICAgIHRoaXMub3B0aW9uc1NlcnZpY2UuZ2V0V01TT3B0aW9ucyhjb250ZXh0LCBkZXRhaWxlZENvbnRleHRVcmkpLnBpcGUoXHJcbiAgICAgICAgICBjYXRjaEVycm9yKGUgPT4ge1xyXG4gICAgICAgICAgICBlLmVycm9yLnRvRGlzcGxheSA9IHRydWU7XHJcbiAgICAgICAgICAgIGUuZXJyb3IudGl0bGUgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcclxuICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLnVuYXZhaWxhYmxlVGl0bGUnXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGUuZXJyb3IubWVzc2FnZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICAgICAgICdpZ28uZ2VvLmRhdGFTb3VyY2Uub3B0aW9uc0FwaVVuYXZhaWxhYmxlJ1xyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICByZXR1cm4gb2Yoe30pO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgb2JzZXJ2YWJsZXMucHVzaChvZihjb250ZXh0KSk7XHJcblxyXG4gICAgcmV0dXJuIGZvcmtKb2luKG9ic2VydmFibGVzKS5waXBlKFxyXG4gICAgICBtYXAoKG9wdGlvbnM6IFdNU0RhdGFTb3VyY2VPcHRpb25zW10pID0+IHtcclxuICAgICAgICBjb25zdCBvcHRpb25zTWVyZ2VkID0gb3B0aW9ucy5yZWR1Y2UoKGEsIGIpID0+XHJcbiAgICAgICAgICBPYmplY3RVdGlscy5tZXJnZURlZXAoYSwgYilcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiBuZXcgV01TRGF0YVNvdXJjZShvcHRpb25zTWVyZ2VkLCB0aGlzLndmc0RhdGFTb3VyY2VTZXJ2aWNlKTtcclxuICAgICAgfSksXHJcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlV01UU0RhdGFTb3VyY2UoXHJcbiAgICBjb250ZXh0OiBXTVRTRGF0YVNvdXJjZU9wdGlvbnNcclxuICApOiBPYnNlcnZhYmxlPFdNVFNEYXRhU291cmNlPiB7XHJcbiAgICBpZiAoY29udGV4dC5vcHRpb25zRnJvbUNhcGFiaWxpdGllcykge1xyXG4gICAgICByZXR1cm4gdGhpcy5jYXBhYmlsaXRpZXNTZXJ2aWNlLmdldFdNVFNPcHRpb25zKGNvbnRleHQpLnBpcGUoXHJcbiAgICAgICAgbWFwKChvcHRpb25zOiBXTVRTRGF0YVNvdXJjZU9wdGlvbnMpID0+IHtcclxuICAgICAgICAgIHJldHVybiBvcHRpb25zID8gbmV3IFdNVFNEYXRhU291cmNlKG9wdGlvbnMpIDogdW5kZWZpbmVkO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgdGl0bGUgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcclxuICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZVRpdGxlJ1xyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcclxuICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZScsXHJcbiAgICAgICAgICAgIHsgdmFsdWU6IGNvbnRleHQubGF5ZXIgfVxyXG4gICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmVycm9yKG1lc3NhZ2UsIHRpdGxlKTtcclxuICAgICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKGQgPT4gZC5uZXh0KG5ldyBXTVRTRGF0YVNvdXJjZShjb250ZXh0KSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVYWVpEYXRhU291cmNlKFxyXG4gICAgY29udGV4dDogWFlaRGF0YVNvdXJjZU9wdGlvbnNcclxuICApOiBPYnNlcnZhYmxlPFhZWkRhdGFTb3VyY2U+IHtcclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShkID0+IGQubmV4dChuZXcgWFlaRGF0YVNvdXJjZShjb250ZXh0KSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVUaWxlRGVidWdEYXRhU291cmNlKFxyXG4gICAgY29udGV4dDogVGlsZURlYnVnRGF0YVNvdXJjZU9wdGlvbnNcclxuICApOiBPYnNlcnZhYmxlPFRpbGVEZWJ1Z0RhdGFTb3VyY2U+IHtcclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShkID0+IGQubmV4dChuZXcgVGlsZURlYnVnRGF0YVNvdXJjZShjb250ZXh0KSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVDYXJ0b0RhdGFTb3VyY2UoXHJcbiAgICBjb250ZXh0OiBDYXJ0b0RhdGFTb3VyY2VPcHRpb25zXHJcbiAgKTogT2JzZXJ2YWJsZTxDYXJ0b0RhdGFTb3VyY2U+IHtcclxuICAgIGlmIChjb250ZXh0Lm1hcElkKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNhcGFiaWxpdGllc1NlcnZpY2VcclxuICAgICAgICAuZ2V0Q2FydG9PcHRpb25zKGNvbnRleHQpXHJcbiAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICBtYXAoKG9wdGlvbnM6IENhcnRvRGF0YVNvdXJjZU9wdGlvbnMpID0+IG5ldyBDYXJ0b0RhdGFTb3VyY2Uob3B0aW9ucykpXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShkID0+IGQubmV4dChuZXcgQ2FydG9EYXRhU291cmNlKGNvbnRleHQpKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZUFyY0dJU1Jlc3REYXRhU291cmNlKFxyXG4gICAgY29udGV4dDogQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zLFxyXG4gICAgZGV0YWlsZWRDb250ZXh0VXJpPzogc3RyaW5nXHJcbiAgKTogT2JzZXJ2YWJsZTxBcmNHSVNSZXN0RGF0YVNvdXJjZT4ge1xyXG4gICAgY29uc3Qgb2JzZXJ2YWJsZXMgPSBbXTtcclxuICAgIG9ic2VydmFibGVzLnB1c2godGhpcy5jYXBhYmlsaXRpZXNTZXJ2aWNlLmdldEFyY2dpc09wdGlvbnMoY29udGV4dCkucGlwZShcclxuICAgICAgY2F0Y2hFcnJvcihlID0+IHtcclxuICAgICAgICBjb25zdCB0aXRsZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZVRpdGxlJ1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZScsXHJcbiAgICAgICAgICB7IHZhbHVlOiBjb250ZXh0LmxheWVyIH1cclxuICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmVycm9yKG1lc3NhZ2UsIHRpdGxlKTtcclxuICAgICAgICB0aHJvdyBlO1xyXG4gICAgICB9KVxyXG4gICAgKSk7XHJcbiAgICBpZiAodGhpcy5vcHRpb25zU2VydmljZSAmJiBjb250ZXh0Lm9wdGlvbnNGcm9tQXBpID09PSB0cnVlKSB7XHJcbiAgICAgIG9ic2VydmFibGVzLnB1c2goXHJcbiAgICAgICAgdGhpcy5vcHRpb25zU2VydmljZS5nZXRBcmNnaXNSZXN0T3B0aW9ucyhjb250ZXh0LCBkZXRhaWxlZENvbnRleHRVcmkpLnBpcGUoXHJcbiAgICAgICAgICBjYXRjaEVycm9yKGUgPT4ge1xyXG4gICAgICAgICAgICBlLmVycm9yLnRvRGlzcGxheSA9IHRydWU7XHJcbiAgICAgICAgICAgIGUuZXJyb3IudGl0bGUgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcclxuICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLnVuYXZhaWxhYmxlVGl0bGUnXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGUuZXJyb3IubWVzc2FnZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICAgICAgICdpZ28uZ2VvLmRhdGFTb3VyY2Uub3B0aW9uc0FwaVVuYXZhaWxhYmxlJ1xyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICByZXR1cm4gb2Yoe30pO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBvYnNlcnZhYmxlcy5wdXNoKG9mKGNvbnRleHQpKTtcclxuICAgIHJldHVybiBmb3JrSm9pbihvYnNlcnZhYmxlcykucGlwZShcclxuICAgICAgbWFwKChvcHRpb25zOiBBcmNHSVNSZXN0RGF0YVNvdXJjZVtdKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgb3B0aW9uc01lcmdlZCA9IG9wdGlvbnMucmVkdWNlKChhLCBiKSA9PlxyXG4gICAgICAgICAgT2JqZWN0VXRpbHMubWVyZ2VEZWVwKGEsIGIpXHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gbmV3IEFyY0dJU1Jlc3REYXRhU291cmNlKG9wdGlvbnNNZXJnZWQpO1xyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlKFxyXG4gICAgY29udGV4dDogQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgICBkZXRhaWxlZENvbnRleHRVcmk/OiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zPiB7XHJcbiAgICBjb25zdCBvYnNlcnZhYmxlcyA9IFtdO1xyXG5cclxuICAgIG9ic2VydmFibGVzLnB1c2godGhpcy5jYXBhYmlsaXRpZXNTZXJ2aWNlLmdldEltYWdlQXJjZ2lzT3B0aW9ucyhjb250ZXh0KS5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKGUgPT4ge1xyXG4gICAgICAgIGNvbnN0IHRpdGxlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLnVuYXZhaWxhYmxlVGl0bGUnXHJcbiAgICAgICAgKTtcclxuICAgICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLnVuYXZhaWxhYmxlJyxcclxuICAgICAgICAgIHsgdmFsdWU6IGNvbnRleHQucGFyYW1zLkxBWUVSUyB9XHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5lcnJvcihtZXNzYWdlLCB0aXRsZSk7XHJcbiAgICAgICAgdGhyb3cgZTtcclxuICAgICAgfSlcclxuICAgICkpO1xyXG4gICAgaWYgKHRoaXMub3B0aW9uc1NlcnZpY2UgJiYgY29udGV4dC5vcHRpb25zRnJvbUFwaSA9PT0gdHJ1ZSkge1xyXG4gICAgICBvYnNlcnZhYmxlcy5wdXNoKFxyXG4gICAgICAgIHRoaXMub3B0aW9uc1NlcnZpY2UuZ2V0QXJjZ2lzUmVzdE9wdGlvbnMoY29udGV4dCwgZGV0YWlsZWRDb250ZXh0VXJpKS5waXBlKFxyXG4gICAgICAgICAgY2F0Y2hFcnJvcihlID0+IHtcclxuICAgICAgICAgICAgZS5lcnJvci50b0Rpc3BsYXkgPSB0cnVlO1xyXG4gICAgICAgICAgICBlLmVycm9yLnRpdGxlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZVRpdGxlJ1xyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBlLmVycm9yLm1lc3NhZ2UgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcclxuICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLm9wdGlvbnNBcGlVbmF2YWlsYWJsZSdcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgcmV0dXJuIG9mKHt9KTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgb2JzZXJ2YWJsZXMucHVzaChvZihjb250ZXh0KSk7XHJcbiAgICByZXR1cm4gZm9ya0pvaW4ob2JzZXJ2YWJsZXMpLnBpcGUoXHJcbiAgICAgIG1hcCgob3B0aW9uczogSW1hZ2VBcmNHSVNSZXN0RGF0YVNvdXJjZVtdKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgb3B0aW9uc01lcmdlZCA9IG9wdGlvbnMucmVkdWNlKChhLCBiKSA9PlxyXG4gICAgICAgICAgT2JqZWN0VXRpbHMubWVyZ2VEZWVwKGEsIGIpXHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gbmV3IEltYWdlQXJjR0lTUmVzdERhdGFTb3VyY2Uob3B0aW9uc01lcmdlZCk7XHJcbiAgICAgIH0pLFxyXG4gICAgICBjYXRjaEVycm9yKCgpID0+IHtcclxuICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZVRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZShcclxuICAgIGNvbnRleHQ6IFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgICBkZXRhaWxlZENvbnRleHRVcmk/OiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZT4ge1xyXG4gICAgY29uc3Qgb2JzZXJ2YWJsZXMgPSBbXTtcclxuICAgIG9ic2VydmFibGVzLnB1c2godGhpcy5jYXBhYmlsaXRpZXNTZXJ2aWNlLmdldEltYWdlQXJjZ2lzT3B0aW9ucyhjb250ZXh0KS5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKGUgPT4ge1xyXG4gICAgICAgIGNvbnN0IHRpdGxlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLnVuYXZhaWxhYmxlVGl0bGUnXHJcbiAgICAgICAgKTtcclxuICAgICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLnVuYXZhaWxhYmxlJyxcclxuICAgICAgICAgIHsgdmFsdWU6IGNvbnRleHQucGFyYW1zLkxBWUVSUyB9XHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5lcnJvcihtZXNzYWdlLCB0aXRsZSk7XHJcbiAgICAgICAgdGhyb3cgZTtcclxuICAgICAgfSlcclxuICAgICkpO1xyXG4gICAgaWYgKHRoaXMub3B0aW9uc1NlcnZpY2UgJiYgY29udGV4dC5vcHRpb25zRnJvbUFwaSA9PT0gdHJ1ZSkge1xyXG4gICAgICBvYnNlcnZhYmxlcy5wdXNoKFxyXG4gICAgICAgIHRoaXMub3B0aW9uc1NlcnZpY2UuZ2V0QXJjZ2lzUmVzdE9wdGlvbnMoY29udGV4dCwgZGV0YWlsZWRDb250ZXh0VXJpKS5waXBlKFxyXG4gICAgICAgICAgY2F0Y2hFcnJvcihlID0+IHtcclxuICAgICAgICAgICAgZS5lcnJvci50b0Rpc3BsYXkgPSB0cnVlO1xyXG4gICAgICAgICAgICBlLmVycm9yLnRpdGxlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZVRpdGxlJ1xyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBlLmVycm9yLm1lc3NhZ2UgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcclxuICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLm9wdGlvbnNBcGlVbmF2YWlsYWJsZSdcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgcmV0dXJuIG9mKHt9KTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgb2JzZXJ2YWJsZXMucHVzaChvZihjb250ZXh0KSk7XHJcbiAgICByZXR1cm4gZm9ya0pvaW4ob2JzZXJ2YWJsZXMpLnBpcGUoXHJcbiAgICAgIG1hcCgob3B0aW9uczogVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlW10pID0+IHtcclxuICAgICAgICBjb25zdCBvcHRpb25zTWVyZ2VkID0gb3B0aW9ucy5yZWR1Y2UoKGEsIGIpID0+XHJcbiAgICAgICAgICBPYmplY3RVdGlscy5tZXJnZURlZXAoYSwgYilcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiBuZXcgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlKG9wdGlvbnNNZXJnZWQpO1xyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVNVlREYXRhU291cmNlKFxyXG4gICAgY29udGV4dDogTVZURGF0YVNvdXJjZU9wdGlvbnNcclxuICApOiBPYnNlcnZhYmxlPE1WVERhdGFTb3VyY2U+IHtcclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShkID0+IGQubmV4dChuZXcgTVZURGF0YVNvdXJjZShjb250ZXh0KSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVDbHVzdGVyRGF0YVNvdXJjZShcclxuICAgIGNvbnRleHQ6IENsdXN0ZXJEYXRhU291cmNlT3B0aW9uc1xyXG4gICk6IE9ic2VydmFibGU8Q2x1c3RlckRhdGFTb3VyY2U+IHtcclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShkID0+IGQubmV4dChuZXcgQ2x1c3RlckRhdGFTb3VyY2UoY29udGV4dCkpKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW55LWRhdGFzb3VyY2UuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvYW55LWRhdGFzb3VyY2UuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4vZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBPU01EYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4vb3NtLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgWFlaRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuL3h5ei1kYXRhc291cmNlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFdNU0RhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi93bXMtZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBXTVRTRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuL3dtdHMtZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBXRlNEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4vd2ZzLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgRmVhdHVyZURhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi9mZWF0dXJlLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgQ2FydG9EYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4vY2FydG8tZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuL2FyY2dpc3Jlc3QtZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi90aWxlYXJjZ2lzcmVzdC1kYXRhc291cmNlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IE1WVERhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi9tdnQtZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBDbHVzdGVyRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuL2NsdXN0ZXItZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBUaWxlRGVidWdEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4vdGlsZWRlYnVnLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuL2ltYWdlYXJjZ2lzcmVzdC1kYXRhc291cmNlLmludGVyZmFjZSc7XHJcblxyXG5leHBvcnQgdHlwZSBBbnlEYXRhU291cmNlT3B0aW9ucyA9XHJcbiAgfCBEYXRhU291cmNlT3B0aW9uc1xyXG4gIHwgT1NNRGF0YVNvdXJjZU9wdGlvbnNcclxuICB8IEZlYXR1cmVEYXRhU291cmNlT3B0aW9uc1xyXG4gIHwgV0ZTRGF0YVNvdXJjZU9wdGlvbnNcclxuICB8IFhZWkRhdGFTb3VyY2VPcHRpb25zXHJcbiAgfCBUaWxlRGVidWdEYXRhU291cmNlT3B0aW9uc1xyXG4gIHwgV01UU0RhdGFTb3VyY2VPcHRpb25zXHJcbiAgfCBXTVNEYXRhU291cmNlT3B0aW9uc1xyXG4gIHwgQ2FydG9EYXRhU291cmNlT3B0aW9uc1xyXG4gIHwgQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zXHJcbiAgfCBBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlT3B0aW9uc1xyXG4gIHwgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9uc1xyXG4gIHwgTVZURGF0YVNvdXJjZU9wdGlvbnNcclxuICB8IENsdXN0ZXJEYXRhU291cmNlT3B0aW9ucztcclxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW55LWRhdGFzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9hbnktZGF0YXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJy4vZGF0YXNvdXJjZSc7XHJcbmltcG9ydCB7IE9TTURhdGFTb3VyY2UgfSBmcm9tICcuL29zbS1kYXRhc291cmNlJztcclxuaW1wb3J0IHsgWFlaRGF0YVNvdXJjZSB9IGZyb20gJy4veHl6LWRhdGFzb3VyY2UnO1xyXG5pbXBvcnQgeyBXTVNEYXRhU291cmNlIH0gZnJvbSAnLi93bXMtZGF0YXNvdXJjZSc7XHJcbmltcG9ydCB7IFdNVFNEYXRhU291cmNlIH0gZnJvbSAnLi93bXRzLWRhdGFzb3VyY2UnO1xyXG5pbXBvcnQgeyBXRlNEYXRhU291cmNlIH0gZnJvbSAnLi93ZnMtZGF0YXNvdXJjZSc7XHJcbmltcG9ydCB7IEZlYXR1cmVEYXRhU291cmNlIH0gZnJvbSAnLi9mZWF0dXJlLWRhdGFzb3VyY2UnO1xyXG5pbXBvcnQgeyBDYXJ0b0RhdGFTb3VyY2UgfSBmcm9tICcuL2NhcnRvLWRhdGFzb3VyY2UnO1xyXG5pbXBvcnQgeyBBcmNHSVNSZXN0RGF0YVNvdXJjZSB9IGZyb20gJy4vYXJjZ2lzcmVzdC1kYXRhc291cmNlJztcclxuaW1wb3J0IHsgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlIH0gZnJvbSAnLi90aWxlYXJjZ2lzcmVzdC1kYXRhc291cmNlJztcclxuaW1wb3J0IHsgV2ViU29ja2V0RGF0YVNvdXJjZSB9IGZyb20gJy4vd2Vic29ja2V0LWRhdGFzb3VyY2UnO1xyXG5pbXBvcnQgeyBNVlREYXRhU291cmNlIH0gZnJvbSAnLi9tdnQtZGF0YXNvdXJjZSc7XHJcbmltcG9ydCB7IENsdXN0ZXJEYXRhU291cmNlIH0gZnJvbSAnLi9jbHVzdGVyLWRhdGFzb3VyY2UnO1xyXG5pbXBvcnQgeyBUaWxlRGVidWdEYXRhU291cmNlIH0gZnJvbSAnLi90aWxlZGVidWctZGF0YXNvdXJjZSc7XHJcbmltcG9ydCB7IEltYWdlQXJjR0lTUmVzdERhdGFTb3VyY2UgfSBmcm9tICcuL2ltYWdlYXJjZ2lzcmVzdC1kYXRhc291cmNlJztcclxuXHJcbmV4cG9ydCB0eXBlIEFueURhdGFTb3VyY2UgPVxyXG4gIHwgRGF0YVNvdXJjZVxyXG4gIHwgT1NNRGF0YVNvdXJjZVxyXG4gIHwgRmVhdHVyZURhdGFTb3VyY2VcclxuICB8IFdGU0RhdGFTb3VyY2VcclxuICB8IFhZWkRhdGFTb3VyY2VcclxuICB8IFRpbGVEZWJ1Z0RhdGFTb3VyY2VcclxuICB8IFdNVFNEYXRhU291cmNlXHJcbiAgfCBXTVNEYXRhU291cmNlXHJcbiAgfCBDYXJ0b0RhdGFTb3VyY2VcclxuICB8IEFyY0dJU1Jlc3REYXRhU291cmNlXHJcbiAgfCBJbWFnZUFyY0dJU1Jlc3REYXRhU291cmNlXHJcbiAgfCBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2VcclxuICB8IFdlYlNvY2tldERhdGFTb3VyY2VcclxuICB8IE1WVERhdGFTb3VyY2VcclxuICB8IENsdXN0ZXJEYXRhU291cmNlO1xyXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjZ2lzcmVzdC1kYXRhc291cmNlLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL2FyY2dpc3Jlc3QtZGF0YXNvdXJjZS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZlYXR1cmVEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4vZmVhdHVyZS1kYXRhc291cmNlLmludGVyZmFjZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucyBleHRlbmRzIEZlYXR1cmVEYXRhU291cmNlT3B0aW9ucyB7XHJcbiAgLy8gdHlwZT86ICdhcmNnaXNyZXN0J1xyXG4gIGxheWVyOiBzdHJpbmc7XHJcbiAgbGVnZW5kSW5mbz86IGFueTtcclxuICBwYXJhbXM/OiBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnNQYXJhbXM7XHJcbiAgaWRDb2x1bW4/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zUGFyYW1zIHtcclxuICBjdXN0b21QYXJhbXM/OiBzdHJpbmdbXTsgLy8gYW55IEFyY0dJUyBSZXN0IHF1ZXJ5IHBhcmFtZXRlcnMgZm9yIGZlYXR1cmUgc2VydmljZSBsYXllciByZXNvdXJjZVxyXG4gIHN0eWxlPzogYW55O1xyXG4gIHRpbWVmaWx0ZXI/OiBhbnk7XHJcbiAgdGltZUV4dGVudD86IHN0cmluZztcclxuICBhdHRyaWJ1dGlvbnM/OiBzdHJpbmcgfCBzdHJpbmdbXTtcclxufVxyXG4iXX0=
@@ -0,0 +1,145 @@
1
+ import olSourceVector from 'ol/source/Vector';
2
+ import olFormatEsriJSON from 'ol/format/EsriJSON';
3
+ import * as olloadingstrategy from 'ol/loadingstrategy';
4
+ import { DataSource } from './datasource';
5
+ export class ArcGISRestDataSource extends DataSource {
6
+ createOlSource() {
7
+ const esrijsonFormat = new olFormatEsriJSON();
8
+ return new olSourceVector({
9
+ attributions: this.options.params.attributions,
10
+ overlaps: false,
11
+ format: esrijsonFormat,
12
+ url: function (extent, resolution, proj) {
13
+ const baseUrl = this.options.url + '/' + this.options.layer + '/query/';
14
+ const geometry = encodeURIComponent('{"xmin":' +
15
+ extent[0] +
16
+ ',"ymin":' +
17
+ extent[1] +
18
+ ',"xmax":' +
19
+ extent[2] +
20
+ ',"ymax":' +
21
+ extent[3] +
22
+ ',"spatialReference":{"wkid":102100}}');
23
+ const params = [
24
+ 'f=json',
25
+ `geometry=${geometry}`,
26
+ 'geometryType=esriGeometryEnvelope',
27
+ 'inSR=102100',
28
+ 'spatialRel=esriSpatialRelIntersects',
29
+ 'outFields=*',
30
+ 'returnGeometry=true',
31
+ 'outSR=102100'
32
+ ];
33
+ if (this.options.params.time) {
34
+ const time = `time=${this.options.params.time}`;
35
+ params.push(time);
36
+ }
37
+ if (this.options.params.customParams) {
38
+ this.options.params.customParams.forEach(element => {
39
+ params.push(element);
40
+ });
41
+ }
42
+ return `${baseUrl}?${params.join('&')}`;
43
+ }.bind(this),
44
+ strategy: olloadingstrategy.bbox
45
+ });
46
+ }
47
+ getLegend() {
48
+ const legendInfo = this.options.legendInfo;
49
+ const legend = super.getLegend();
50
+ if (legendInfo === undefined || legend.length > 0) {
51
+ return legend;
52
+ }
53
+ if (!legendInfo) {
54
+ return;
55
+ }
56
+ let htmlString = '<table>';
57
+ let src;
58
+ let label;
59
+ let svg;
60
+ if (legendInfo.legend) {
61
+ for (const legendElement of legendInfo.legend) {
62
+ src = this.htmlImgSrc(legendElement.contentType, legendElement.imageData);
63
+ label = legendElement.label ? legendElement.label.replace('<Null>', 'Null') : '';
64
+ htmlString +=
65
+ `<tr><td align='left'><img src="` +
66
+ src +
67
+ `" alt ='' /></td><td class="mat-typography">` +
68
+ label +
69
+ '</td></tr>';
70
+ }
71
+ }
72
+ else if (legendInfo.type === "uniqueValue") {
73
+ for (const legendElement of legendInfo.uniqueValueInfos) {
74
+ label = legendElement.label.replace('<Null>', 'Null');
75
+ if (legendElement.symbol.type === 'esriPMS') {
76
+ src = this.htmlImgSrc(legendElement.symbol.contentType, legendElement.symbol.imageData);
77
+ htmlString +=
78
+ `<tr><td align='left'><img src="` +
79
+ src +
80
+ `" alt ='' /></td><td class="mat-typography">` +
81
+ label +
82
+ '</td></tr>';
83
+ }
84
+ else if (legendElement.symbol.type !== 'esriPMS') {
85
+ svg = this.createSVG(legendElement.symbol);
86
+ htmlString += `<tr><td align='left'>` + svg + `</td><td class="mat-typography">` + label + '</td></tr>';
87
+ }
88
+ }
89
+ }
90
+ else if (legendInfo.type === "simple") {
91
+ label = legendInfo.label ? legendInfo.label.replace('<Null>', 'Null') : '';
92
+ if (legendInfo.symbol.type === 'esriPMS') {
93
+ src = this.htmlImgSrc(legendInfo.symbol.contentType, legendInfo.symbol.imageData);
94
+ htmlString +=
95
+ `<tr><td align='left'><img src="` +
96
+ src +
97
+ `" alt ='' /></td><td class="mat-typography">` +
98
+ label +
99
+ '</td></tr>';
100
+ }
101
+ else if (legendInfo.symbol.type !== 'esriPMS') {
102
+ svg = this.createSVG(legendInfo.symbol);
103
+ htmlString += `<tr><td align='left'>` + svg + `</td><td class="mat-typography">` + label + '</td></tr>';
104
+ }
105
+ }
106
+ htmlString += '</table>';
107
+ return [{ html: htmlString }];
108
+ }
109
+ htmlImgSrc(contentType, imageData) {
110
+ return `data:${contentType};base64,${imageData}`;
111
+ }
112
+ createSVG(symbol) {
113
+ let svg = '';
114
+ const color = symbol.color ? symbol.color : [0, 0, 0, 0];
115
+ if (symbol.type === 'esriSLS') {
116
+ const width = symbol.width ? symbol.width : 0;
117
+ const stroke = `stroke:rgba(` + color[0] + ',' + color[1] + ',' + color[2] + ',' + color[3] + ')';
118
+ const strokeWidth = `stroke-width:` + width;
119
+ if (symbol.style === 'esriSLSSolid') {
120
+ svg = `<svg height="30" width="30"><line x1="0" y1="15" x2="30" y2="15" style="` + stroke + ';' + strokeWidth + `"/></svg>`;
121
+ }
122
+ else if (symbol.style === 'esriSLSDash') {
123
+ const strokeDashArray = `stroke-dasharray="5,5"`;
124
+ svg = `<svg height="30" width="30"><line x1="0" y1="15" x2="30" y2="15" style="` + stroke + ';' + strokeWidth + `" ` + strokeDashArray + `/></svg>`;
125
+ }
126
+ }
127
+ else if (symbol.style === 'esriSMSCircle' || symbol.style === 'esriSFSSolid') {
128
+ const outlineColor = symbol.outline.color;
129
+ const outlineWidth = symbol.outline.width;
130
+ const size = symbol.size;
131
+ const stroke = `stroke:rgba(` + outlineColor[0] + ',' + outlineColor[1] + ',' + outlineColor[2] + ',' + outlineColor[3] + ')';
132
+ const strokeWidth = `stroke-width:` + outlineWidth;
133
+ const fill = `fill:rgba(` + color[0] + ',' + color[1] + ',' + color[2] + ',' + color[3] + ')';
134
+ if (symbol.style === 'esriSMSCircle') {
135
+ svg = `<svg height="30" width="30"><circle cx="15" cy="15" r="` + size / 2 + `" style="` + stroke + ';' + strokeWidth + ';' + fill + `"/></svg>`;
136
+ }
137
+ else {
138
+ svg = `<svg height="30" width="30"><rect x="5" y="5" width="20" height="20" style ="` + stroke + ';' + strokeWidth + ';' + fill + `"/></svg>`;
139
+ }
140
+ }
141
+ return svg;
142
+ }
143
+ onUnwatch() { }
144
+ }
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjZ2lzcmVzdC1kYXRhc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvYXJjZ2lzcmVzdC1kYXRhc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sY0FBYyxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sZ0JBQWdCLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxLQUFLLGlCQUFpQixNQUFNLG9CQUFvQixDQUFDO0FBR3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFJMUMsTUFBTSxPQUFPLG9CQUFxQixTQUFRLFVBQVU7SUFJeEMsY0FBYztRQUN0QixNQUFNLGNBQWMsR0FBRyxJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFDOUMsT0FBTyxJQUFJLGNBQWMsQ0FBQztZQUN4QixZQUFZLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsWUFBWTtZQUM5QyxRQUFRLEVBQUUsS0FBSztZQUNmLE1BQU0sRUFBRSxjQUFjO1lBQ3RCLEdBQUcsRUFBRSxVQUFTLE1BQU0sRUFBRSxVQUFVLEVBQUUsSUFBSTtnQkFDcEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztnQkFDeEUsTUFBTSxRQUFRLEdBQUcsa0JBQWtCLENBQ2pDLFVBQVU7b0JBQ1IsTUFBTSxDQUFDLENBQUMsQ0FBQztvQkFDVCxVQUFVO29CQUNWLE1BQU0sQ0FBQyxDQUFDLENBQUM7b0JBQ1QsVUFBVTtvQkFDVixNQUFNLENBQUMsQ0FBQyxDQUFDO29CQUNULFVBQVU7b0JBQ1YsTUFBTSxDQUFDLENBQUMsQ0FBQztvQkFDVCxzQ0FBc0MsQ0FDekMsQ0FBQztn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ZWN0b3IgZnJvbSAnb2wvc291cmNlL1ZlY3Rvcic7XHJcbmltcG9ydCBvbEZvcm1hdEVzcmlKU09OIGZyb20gJ29sL2Zvcm1hdC9Fc3JpSlNPTic7XHJcbmltcG9ydCAqIGFzIG9sbG9hZGluZ3N0cmF0ZWd5IGZyb20gJ29sL2xvYWRpbmdzdHJhdGVneSc7XHJcbmltcG9ydCB0eXBlIHsgZGVmYXVsdCBhcyBPbEdlb21ldHJ5IH0gZnJvbSAnb2wvZ2VvbS9HZW9tZXRyeSc7XHJcblxyXG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnLi9kYXRhc291cmNlJztcclxuaW1wb3J0IHsgTGVnZW5kIH0gZnJvbSAnLi9kYXRhc291cmNlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4vYXJjZ2lzcmVzdC1kYXRhc291cmNlLmludGVyZmFjZSc7XHJcblxyXG5leHBvcnQgY2xhc3MgQXJjR0lTUmVzdERhdGFTb3VyY2UgZXh0ZW5kcyBEYXRhU291cmNlIHtcclxuICBwdWJsaWMgb2w6IG9sU291cmNlVmVjdG9yPE9sR2VvbWV0cnk+O1xyXG4gIHB1YmxpYyBvcHRpb25zOiBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnM7XHJcblxyXG4gIHByb3RlY3RlZCBjcmVhdGVPbFNvdXJjZSgpOiBvbFNvdXJjZVZlY3RvcjxPbEdlb21ldHJ5PiB7XHJcbiAgICBjb25zdCBlc3JpanNvbkZvcm1hdCA9IG5ldyBvbEZvcm1hdEVzcmlKU09OKCk7XHJcbiAgICByZXR1cm4gbmV3IG9sU291cmNlVmVjdG9yKHtcclxuICAgICAgYXR0cmlidXRpb25zOiB0aGlzLm9wdGlvbnMucGFyYW1zLmF0dHJpYnV0aW9ucyxcclxuICAgICAgb3ZlcmxhcHM6IGZhbHNlLFxyXG4gICAgICBmb3JtYXQ6IGVzcmlqc29uRm9ybWF0LFxyXG4gICAgICB1cmw6IGZ1bmN0aW9uKGV4dGVudCwgcmVzb2x1dGlvbiwgcHJvaikge1xyXG4gICAgICAgIGNvbnN0IGJhc2VVcmwgPSB0aGlzLm9wdGlvbnMudXJsICsgJy8nICsgdGhpcy5vcHRpb25zLmxheWVyICsgJy9xdWVyeS8nO1xyXG4gICAgICAgIGNvbnN0IGdlb21ldHJ5ID0gZW5jb2RlVVJJQ29tcG9uZW50KFxyXG4gICAgICAgICAgJ3tcInhtaW5cIjonICtcclxuICAgICAgICAgICAgZXh0ZW50WzBdICtcclxuICAgICAgICAgICAgJyxcInltaW5cIjonICtcclxuICAgICAgICAgICAgZXh0ZW50WzFdICtcclxuICAgICAgICAgICAgJyxcInhtYXhcIjonICtcclxuICAgICAgICAgICAgZXh0ZW50WzJdICtcclxuICAgICAgICAgICAgJyxcInltYXhcIjonICtcclxuICAgICAgICAgICAgZXh0ZW50WzNdICtcclxuICAgICAgICAgICAgJyxcInNwYXRpYWxSZWZlcmVuY2VcIjp7XCJ3a2lkXCI6MTAyMTAwfX0nXHJcbiAgICAgICAgKTtcclxuICAgICAgICBjb25zdCBwYXJhbXMgPSBbXHJcbiAgICAgICAgICAnZj1qc29uJyxcclxuICAgICAgICAgIGBnZW9tZXRyeT0ke2dlb21ldHJ5fWAsXHJcbiAgICAgICAgICAnZ2VvbWV0cnlUeXBlPWVzcmlHZW9tZXRyeUVudmVsb3BlJyxcclxuICAgICAgICAgICdpblNSPTEwMjEwMCcsXHJcbiAgICAgICAgICAnc3BhdGlhbFJlbD1lc3JpU3BhdGlhbFJlbEludGVyc2VjdHMnLFxyXG4gICAgICAgICAgJ291dEZpZWxkcz0qJyxcclxuICAgICAgICAgICdyZXR1cm5HZW9tZXRyeT10cnVlJyxcclxuICAgICAgICAgICdvdXRTUj0xMDIxMDAnXHJcbiAgICAgICAgXTtcclxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnBhcmFtcy50aW1lKSB7XHJcbiAgICAgICAgICBjb25zdCB0aW1lID0gYHRpbWU9JHt0aGlzLm9wdGlvbnMucGFyYW1zLnRpbWV9YDtcclxuICAgICAgICAgIHBhcmFtcy5wdXNoKHRpbWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnBhcmFtcy5jdXN0b21QYXJhbXMpIHtcclxuICAgICAgICAgIHRoaXMub3B0aW9ucy5wYXJhbXMuY3VzdG9tUGFyYW1zLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgICAgIHBhcmFtcy5wdXNoKGVsZW1lbnQpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBgJHtiYXNlVXJsfT8ke3BhcmFtcy5qb2luKCcmJyl9YDtcclxuICAgICAgfS5iaW5kKHRoaXMpLFxyXG4gICAgICBzdHJhdGVneTogb2xsb2FkaW5nc3RyYXRlZ3kuYmJveFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRMZWdlbmQoKTogTGVnZW5kW10ge1xyXG4gICAgY29uc3QgbGVnZW5kSW5mbyA9IHRoaXMub3B0aW9ucy5sZWdlbmRJbmZvO1xyXG4gICAgY29uc3QgbGVnZW5kID0gc3VwZXIuZ2V0TGVnZW5kKCk7XHJcbiAgICBpZiAobGVnZW5kSW5mbyA9PT0gdW5kZWZpbmVkIHx8IGxlZ2VuZC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHJldHVybiBsZWdlbmQ7XHJcbiAgICB9XHJcbiAgICBpZiAoIWxlZ2VuZEluZm8pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbGV0IGh0bWxTdHJpbmcgPSAnPHRhYmxlPic7XHJcbiAgICBsZXQgc3JjOiBzdHJpbmc7XHJcbiAgICBsZXQgbGFiZWw6IHN0cmluZztcclxuICAgIGxldCBzdmc6IHN0cmluZztcclxuXHJcbiAgICBpZiAobGVnZW5kSW5mby5sZWdlbmQpIHtcclxuICAgICAgZm9yIChjb25zdCBsZWdlbmRFbGVtZW50IG9mIGxlZ2VuZEluZm8ubGVnZW5kKSB7XHJcbiAgICAgICAgc3JjID0gdGhpcy5odG1sSW1nU3JjKGxlZ2VuZEVsZW1lbnQuY29udGVudFR5cGUsIGxlZ2VuZEVsZW1lbnQuaW1hZ2VEYXRhKTtcclxuICAgICAgICBsYWJlbCA9IGxlZ2VuZEVsZW1lbnQubGFiZWwgPyBsZWdlbmRFbGVtZW50LmxhYmVsLnJlcGxhY2UoJzxOdWxsPicsICdOdWxsJykgOiAnJztcclxuICAgICAgICBodG1sU3RyaW5nICs9XHJcbiAgICAgICAgICBgPHRyPjx0ZCBhbGlnbj0nbGVmdCc+PGltZyBzcmM9XCJgICtcclxuICAgICAgICAgIHNyYyArXHJcbiAgICAgICAgICBgXCIgYWx0ID0nJyAvPjwvdGQ+PHRkIGNsYXNzPVwibWF0LXR5cG9ncmFwaHlcIj5gICtcclxuICAgICAgICAgIGxhYmVsICtcclxuICAgICAgICAgICc8L3RkPjwvdHI+JztcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmIChsZWdlbmRJbmZvLnR5cGUgPT09IFwidW5pcXVlVmFsdWVcIikge1xyXG4gICAgICBmb3IgKGNvbnN0IGxlZ2VuZEVsZW1lbnQgb2YgbGVnZW5kSW5mby51bmlxdWVWYWx1ZUluZm9zKSB7XHJcbiAgICAgICAgbGFiZWwgPSBsZWdlbmRFbGVtZW50LmxhYmVsLnJlcGxhY2UoJzxOdWxsPicsICdOdWxsJyk7XHJcbiAgICAgICAgaWYgKGxlZ2VuZEVsZW1lbnQuc3ltYm9sLnR5cGUgPT09ICdlc3JpUE1TJykge1xyXG4gICAgICAgICAgc3JjID0gdGhpcy5odG1sSW1nU3JjKGxlZ2VuZEVsZW1lbnQuc3ltYm9sLmNvbnRlbnRUeXBlLCBsZWdlbmRFbGVtZW50LnN5bWJvbC5pbWFnZURhdGEpO1xyXG4gICAgICAgICAgaHRtbFN0cmluZyArPVxyXG4gICAgICAgICAgICBgPHRyPjx0ZCBhbGlnbj0nbGVmdCc+PGltZyBzcmM9XCJgICtcclxuICAgICAgICAgICAgc3JjICtcclxuICAgICAgICAgICAgYFwiIGFsdCA9JycgLz48L3RkPjx0ZCBjbGFzcz1cIm1hdC10eXBvZ3JhcGh5XCI+YCArXHJcbiAgICAgICAgICAgIGxhYmVsICtcclxuICAgICAgICAgICAgJzwvdGQ+PC90cj4nO1xyXG4gICAgICAgIH0gZWxzZSBpZiAobGVnZW5kRWxlbWVudC5zeW1ib2wudHlwZSAhPT0gJ2VzcmlQTVMnKSB7XHJcbiAgICAgICAgICBzdmcgPSB0aGlzLmNyZWF0ZVNWRyhsZWdlbmRFbGVtZW50LnN5bWJvbCk7XHJcbiAgICAgICAgICBodG1sU3RyaW5nICs9IGA8dHI+PHRkIGFsaWduPSdsZWZ0Jz5gICsgc3ZnICsgYDwvdGQ+PHRkIGNsYXNzPVwibWF0LXR5cG9ncmFwaHlcIj5gICsgbGFiZWwgKyAnPC90ZD48L3RyPic7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKGxlZ2VuZEluZm8udHlwZSA9PT0gXCJzaW1wbGVcIikge1xyXG4gICAgICBsYWJlbCA9IGxlZ2VuZEluZm8ubGFiZWwgPyBsZWdlbmRJbmZvLmxhYmVsLnJlcGxhY2UoJzxOdWxsPicsICdOdWxsJykgOiAnJztcclxuICAgICAgaWYgKGxlZ2VuZEluZm8uc3ltYm9sLnR5cGUgPT09ICdlc3JpUE1TJykge1xyXG4gICAgICAgIHNyYyA9IHRoaXMuaHRtbEltZ1NyYyhsZWdlbmRJbmZvLnN5bWJvbC5jb250ZW50VHlwZSwgbGVnZW5kSW5mby5zeW1ib2wuaW1hZ2VEYXRhKTtcclxuICAgICAgICBodG1sU3RyaW5nICs9XHJcbiAgICAgICAgICBgPHRyPjx0ZCBhbGlnbj0nbGVmdCc+PGltZyBzcmM9XCJgICtcclxuICAgICAgICAgIHNyYyArXHJcbiAgICAgICAgICBgXCIgYWx0ID0nJyAvPjwvdGQ+PHRkIGNsYXNzPVwibWF0LXR5cG9ncmFwaHlcIj5gICtcclxuICAgICAgICAgIGxhYmVsICtcclxuICAgICAgICAgICc8L3RkPjwvdHI+JztcclxuICAgICAgfSBlbHNlIGlmIChsZWdlbmRJbmZvLnN5bWJvbC50eXBlICE9PSAnZXNyaVBNUycpIHtcclxuICAgICAgICBzdmcgPSB0aGlzLmNyZWF0ZVNWRyhsZWdlbmRJbmZvLnN5bWJvbCk7XHJcbiAgICAgICAgaHRtbFN0cmluZyArPSBgPHRyPjx0ZCBhbGlnbj0nbGVmdCc+YCArIHN2ZyArIGA8L3RkPjx0ZCBjbGFzcz1cIm1hdC10eXBvZ3JhcGh5XCI+YCArIGxhYmVsICsgJzwvdGQ+PC90cj4nO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBodG1sU3RyaW5nICs9ICc8L3RhYmxlPic7XHJcbiAgICByZXR1cm4gW3sgaHRtbDogaHRtbFN0cmluZyB9XTtcclxuICB9XHJcblxyXG4gIGh0bWxJbWdTcmMoY29udGVudFR5cGU6IHN0cmluZywgaW1hZ2VEYXRhOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGBkYXRhOiR7Y29udGVudFR5cGV9O2Jhc2U2NCwke2ltYWdlRGF0YX1gO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlU1ZHKHN5bWJvbCk6IHN0cmluZyB7XHJcbiAgICBsZXQgc3ZnOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgICBjb25zdCBjb2xvcjogQXJyYXk8bnVtYmVyPiA9IHN5bWJvbC5jb2xvciA/IHN5bWJvbC5jb2xvciA6IFswLCAwLCAwLCAwXTtcclxuXHJcbiAgICBpZiAoc3ltYm9sLnR5cGUgPT09ICdlc3JpU0xTJykge1xyXG4gICAgICBjb25zdCB3aWR0aDogbnVtYmVyID0gc3ltYm9sLndpZHRoID8gc3ltYm9sLndpZHRoIDogMDtcclxuXHJcbiAgICAgIGNvbnN0IHN0cm9rZTogc3RyaW5nID0gYHN0cm9rZTpyZ2JhKGAgKyBjb2xvclswXSArICcsJyArIGNvbG9yWzFdICsgJywnICsgY29sb3JbMl0gKyAnLCcgKyBjb2xvclszXSArICcpJztcclxuICAgICAgY29uc3Qgc3Ryb2tlV2lkdGg6IHN0cmluZyA9IGBzdHJva2Utd2lkdGg6YCArIHdpZHRoO1xyXG5cclxuICAgICAgaWYgKHN5bWJvbC5zdHlsZSA9PT0gJ2VzcmlTTFNTb2xpZCcpIHtcclxuICAgICAgICBzdmcgPSBgPHN2ZyBoZWlnaHQ9XCIzMFwiIHdpZHRoPVwiMzBcIj48bGluZSB4MT1cIjBcIiB5MT1cIjE1XCIgeDI9XCIzMFwiIHkyPVwiMTVcIiBzdHlsZT1cImAgKyBzdHJva2UgKyAnOycgKyBzdHJva2VXaWR0aCArIGBcIi8+PC9zdmc+YDtcclxuICAgICAgfSBlbHNlIGlmIChzeW1ib2wuc3R5bGUgPT09ICdlc3JpU0xTRGFzaCcpIHtcclxuICAgICAgICBjb25zdCBzdHJva2VEYXNoQXJyYXk6IHN0cmluZyA9IGBzdHJva2UtZGFzaGFycmF5PVwiNSw1XCJgO1xyXG4gICAgICAgIHN2ZyA9IGA8c3ZnIGhlaWdodD1cIjMwXCIgd2lkdGg9XCIzMFwiPjxsaW5lIHgxPVwiMFwiIHkxPVwiMTVcIiB4Mj1cIjMwXCIgeTI9XCIxNVwiIHN0eWxlPVwiYCArIHN0cm9rZSArICc7JyArIHN0cm9rZVdpZHRoICsgYFwiIGArIHN0cm9rZURhc2hBcnJheSArIGAvPjwvc3ZnPmA7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAoc3ltYm9sLnN0eWxlID09PSAnZXNyaVNNU0NpcmNsZScgfHwgc3ltYm9sLnN0eWxlID09PSAnZXNyaVNGU1NvbGlkJykge1xyXG4gICAgICBjb25zdCBvdXRsaW5lQ29sb3IgPSBzeW1ib2wub3V0bGluZS5jb2xvcjtcclxuICAgICAgY29uc3Qgb3V0bGluZVdpZHRoID0gc3ltYm9sLm91dGxpbmUud2lkdGg7XHJcbiAgICAgIGNvbnN0IHNpemUgPSBzeW1ib2wuc2l6ZTtcclxuXHJcbiAgICAgIGNvbnN0IHN0cm9rZSA9IGBzdHJva2U6cmdiYShgICsgb3V0bGluZUNvbG9yWzBdICsgJywnICsgb3V0bGluZUNvbG9yWzFdICsgJywnICsgb3V0bGluZUNvbG9yWzJdICsgJywnICsgb3V0bGluZUNvbG9yWzNdICsgJyknO1xyXG4gICAgICBjb25zdCBzdHJva2VXaWR0aCA9IGBzdHJva2Utd2lkdGg6YCArIG91dGxpbmVXaWR0aDtcclxuICAgICAgY29uc3QgZmlsbCA9IGBmaWxsOnJnYmEoYCArIGNvbG9yWzBdICsgJywnICsgY29sb3JbMV0gKyAnLCcgKyBjb2xvclsyXSArICcsJyArIGNvbG9yWzNdICsgJyknO1xyXG5cclxuICAgICAgaWYgKHN5bWJvbC5zdHlsZSA9PT0gJ2VzcmlTTVNDaXJjbGUnKSB7XHJcbiAgICAgICAgc3ZnID0gYDxzdmcgaGVpZ2h0PVwiMzBcIiB3aWR0aD1cIjMwXCI+PGNpcmNsZSBjeD1cIjE1XCIgY3k9XCIxNVwiIHI9XCJgICsgc2l6ZS8yICsgYFwiIHN0eWxlPVwiYCArIHN0cm9rZSArICc7JyArIHN0cm9rZVdpZHRoICsgJzsnICsgZmlsbCArIGBcIi8+PC9zdmc+YDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBzdmcgPSBgPHN2ZyBoZWlnaHQ9XCIzMFwiIHdpZHRoPVwiMzBcIj48cmVjdCB4PVwiNVwiIHk9XCI1XCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgc3R5bGUgPVwiYCArIHN0cm9rZSArICc7JyArIHN0cm9rZVdpZHRoICsgJzsnICsgZmlsbCArIGBcIi8+PC9zdmc+YDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN2ZztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblVud2F0Y2goKSB7fVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydG8tZGF0YXNvdXJjZS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9jYXJ0by1kYXRhc291cmNlLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG9sU291cmNlQ2FydG8gZnJvbSAnb2wvc291cmNlL0NhcnRvREInO1xyXG5cclxuaW1wb3J0IHsgRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuL2RhdGFzb3VyY2UuaW50ZXJmYWNlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2FydG9EYXRhU291cmNlT3B0aW9ucyBleHRlbmRzIERhdGFTb3VyY2VPcHRpb25zIHtcclxuICAvLyB0eXBlPzogJ2NhcnRvJztcclxuICBhY2NvdW50OiBzdHJpbmc7XHJcbiAgbWFwSWQ/OiBzdHJpbmc7IC8vIEZldGNoIHRoZSBjb25maWcgb2YgYSBwdWJsaWMgbWFwIGZyb20gdGhlIENhcnRvIEFQSSB1c2luZyB0aGUgbWFwSWQuXHJcblxyXG4gIHBhcmFtcz86IGFueTtcclxuICBxdWVyeVByZWNpc2lvbj86IHN0cmluZztcclxuICBjcm9zc09yaWdpbj86IHN0cmluZztcclxuICBwcm9qZWN0aW9uPzogc3RyaW5nO1xyXG4gIGNvbmZpZz86IGFueTtcclxuICBtYXA/OiBzdHJpbmc7XHJcblxyXG4gIG9sPzogb2xTb3VyY2VDYXJ0bztcclxufVxyXG4iXX0=