@igo2/geo 18.0.1-next.2 → 18.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (512) hide show
  1. package/esm2022/igo2-geo.mjs +5 -0
  2. package/esm2022/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +234 -0
  3. package/esm2022/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +272 -0
  4. package/esm2022/lib/catalog/catalog-browser/catalog-browser.component.mjs +246 -0
  5. package/esm2022/lib/catalog/catalog-browser/catalog-browser.module.mjs +19 -0
  6. package/esm2022/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +136 -0
  7. package/esm2022/lib/catalog/catalog-library/catalog-library-item.component.mjs +60 -0
  8. package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +232 -0
  9. package/esm2022/lib/catalog/catalog-library/catalog-library.module.mjs +24 -0
  10. package/esm2022/lib/catalog/catalog-library/index.mjs +4 -0
  11. package/esm2022/lib/catalog/catalog.module.mjs +26 -0
  12. package/esm2022/lib/catalog/index.mjs +6 -0
  13. package/esm2022/lib/catalog/shared/catalog.abstract.mjs +32 -0
  14. package/esm2022/lib/catalog/shared/catalog.enum.mjs +16 -0
  15. package/esm2022/lib/catalog/shared/catalog.interface.mjs +2 -0
  16. package/esm2022/lib/catalog/shared/catalog.service.mjs +706 -0
  17. package/esm2022/lib/catalog/shared/catalogs.mjs +75 -0
  18. package/esm2022/lib/catalog/shared/index.mjs +5 -0
  19. package/esm2022/lib/datasource/index.mjs +3 -0
  20. package/esm2022/lib/datasource/shared/capabilities.interface.mjs +17 -0
  21. package/esm2022/lib/datasource/shared/capabilities.service.mjs +441 -0
  22. package/esm2022/lib/datasource/shared/datasource.service.mjs +258 -0
  23. package/esm2022/lib/datasource/shared/datasources/any-datasource.interface.mjs +2 -0
  24. package/esm2022/lib/datasource/shared/datasources/any-datasource.mjs +2 -0
  25. package/esm2022/lib/datasource/shared/datasources/arcgisrest-datasource.interface.mjs +2 -0
  26. package/esm2022/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +222 -0
  27. package/esm2022/lib/datasource/shared/datasources/carto-datasource.interface.mjs +2 -0
  28. package/esm2022/lib/datasource/shared/datasources/carto-datasource.mjs +118 -0
  29. package/esm2022/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +2 -0
  30. package/esm2022/lib/datasource/shared/datasources/cluster-datasource.mjs +24 -0
  31. package/esm2022/lib/datasource/shared/datasources/data.service.mjs +3 -0
  32. package/esm2022/lib/datasource/shared/datasources/datasource.interface.mjs +2 -0
  33. package/esm2022/lib/datasource/shared/datasources/datasource.mjs +42 -0
  34. package/esm2022/lib/datasource/shared/datasources/feature-datasource.interface.mjs +2 -0
  35. package/esm2022/lib/datasource/shared/datasources/feature-datasource.mjs +52 -0
  36. package/esm2022/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.mjs +2 -0
  37. package/esm2022/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +70 -0
  38. package/esm2022/lib/datasource/shared/datasources/index.mjs +36 -0
  39. package/esm2022/lib/datasource/shared/datasources/mvt-datasource.interface.mjs +2 -0
  40. package/esm2022/lib/datasource/shared/datasources/mvt-datasource.mjs +33 -0
  41. package/esm2022/lib/datasource/shared/datasources/osm-datasource.interface.mjs +2 -0
  42. package/esm2022/lib/datasource/shared/datasources/osm-datasource.mjs +14 -0
  43. package/esm2022/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.mjs +2 -0
  44. package/esm2022/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +60 -0
  45. package/esm2022/lib/datasource/shared/datasources/tiledebug-datasource.interface.mjs +2 -0
  46. package/esm2022/lib/datasource/shared/datasources/tiledebug-datasource.mjs +17 -0
  47. package/esm2022/lib/datasource/shared/datasources/websocket-datasource.interface.mjs +2 -0
  48. package/esm2022/lib/datasource/shared/datasources/websocket-datasource.mjs +56 -0
  49. package/esm2022/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +2 -0
  50. package/esm2022/lib/datasource/shared/datasources/wfs-datasource.mjs +137 -0
  51. package/esm2022/lib/datasource/shared/datasources/wfs.service.mjs +170 -0
  52. package/esm2022/lib/datasource/shared/datasources/wms-datasource.interface.mjs +2 -0
  53. package/esm2022/lib/datasource/shared/datasources/wms-datasource.mjs +227 -0
  54. package/esm2022/lib/datasource/shared/datasources/wms-wfs.utils.mjs +224 -0
  55. package/esm2022/lib/datasource/shared/datasources/wmts-datasource.interface.mjs +2 -0
  56. package/esm2022/lib/datasource/shared/datasources/wmts-datasource.mjs +18 -0
  57. package/esm2022/lib/datasource/shared/datasources/xyz-datasource.interface.mjs +2 -0
  58. package/esm2022/lib/datasource/shared/datasources/xyz-datasource.mjs +11 -0
  59. package/esm2022/lib/datasource/shared/index.mjs +6 -0
  60. package/esm2022/lib/datasource/shared/options/index.mjs +5 -0
  61. package/esm2022/lib/datasource/shared/options/options-api.interface.mjs +2 -0
  62. package/esm2022/lib/datasource/shared/options/options-api.providers.mjs +15 -0
  63. package/esm2022/lib/datasource/shared/options/options-api.service.mjs +85 -0
  64. package/esm2022/lib/datasource/shared/options/options.service.mjs +3 -0
  65. package/esm2022/lib/datasource/utils/index.mjs +2 -0
  66. package/esm2022/lib/datasource/utils/tilegrid.mjs +20 -0
  67. package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +246 -0
  68. package/esm2022/lib/directions/directions-buttons/index.mjs +2 -0
  69. package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +312 -0
  70. package/esm2022/lib/directions/directions-inputs/index.mjs +2 -0
  71. package/esm2022/lib/directions/directions-results/directions-results.component.mjs +192 -0
  72. package/esm2022/lib/directions/directions-results/index.mjs +2 -0
  73. package/esm2022/lib/directions/directions-sources/directions-source.interface.mjs +5 -0
  74. package/esm2022/lib/directions/directions-sources/directions-source.mjs +3 -0
  75. package/esm2022/lib/directions/directions-sources/directions-source.provider.mjs +23 -0
  76. package/esm2022/lib/directions/directions-sources/index.mjs +5 -0
  77. package/esm2022/lib/directions/directions-sources/osrm-directions-source.mjs +159 -0
  78. package/esm2022/lib/directions/directions.component.mjs +437 -0
  79. package/esm2022/lib/directions/directions.module.mjs +46 -0
  80. package/esm2022/lib/directions/directions.provider.mjs +16 -0
  81. package/esm2022/lib/directions/index.mjs +8 -0
  82. package/esm2022/lib/directions/shared/directions-source.service.mjs +18 -0
  83. package/esm2022/lib/directions/shared/directions.enum.mjs +72 -0
  84. package/esm2022/lib/directions/shared/directions.interface.mjs +2 -0
  85. package/esm2022/lib/directions/shared/directions.service.mjs +239 -0
  86. package/esm2022/lib/directions/shared/directions.utils.mjs +522 -0
  87. package/esm2022/lib/directions/shared/index.mjs +6 -0
  88. package/esm2022/lib/directions/shared/store.mjs +21 -0
  89. package/esm2022/lib/download/download-button/download-button.component.mjs +48 -0
  90. package/esm2022/lib/download/download-button/index.mjs +2 -0
  91. package/esm2022/lib/download/download.module.mjs +24 -0
  92. package/esm2022/lib/download/index.mjs +3 -0
  93. package/esm2022/lib/download/shared/download.interface.mjs +2 -0
  94. package/esm2022/lib/download/shared/download.service.mjs +67 -0
  95. package/esm2022/lib/download/shared/index.mjs +3 -0
  96. package/esm2022/lib/draw/draw/draw-layer-popup.component.mjs +42 -0
  97. package/esm2022/lib/draw/draw/draw-popup.component.mjs +421 -0
  98. package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +28 -0
  99. package/esm2022/lib/draw/draw/draw.component.mjs +1136 -0
  100. package/esm2022/lib/draw/draw/draw.module.mjs +19 -0
  101. package/esm2022/lib/draw/drawingTool.module.mjs +18 -0
  102. package/esm2022/lib/draw/index.mjs +3 -0
  103. package/esm2022/lib/draw/shared/draw-icon.service.mjs +30 -0
  104. package/esm2022/lib/draw/shared/draw.enum.mjs +21 -0
  105. package/esm2022/lib/draw/shared/draw.interface.mjs +2 -0
  106. package/esm2022/lib/draw/shared/draw.utils.mjs +125 -0
  107. package/esm2022/lib/draw/shared/index.mjs +5 -0
  108. package/esm2022/lib/environment/environment.interface.mjs +2 -0
  109. package/esm2022/lib/environment/index.mjs +2 -0
  110. package/esm2022/lib/feature/feature-details/feature-details.component.mjs +306 -0
  111. package/esm2022/lib/feature/feature-details/feature-details.directive.mjs +56 -0
  112. package/esm2022/lib/feature/feature-details/feature-details.module.mjs +26 -0
  113. package/esm2022/lib/feature/feature-details/index.mjs +4 -0
  114. package/esm2022/lib/feature/feature-form/feature-form.component.mjs +101 -0
  115. package/esm2022/lib/feature/feature-form/feature-form.module.mjs +19 -0
  116. package/esm2022/lib/feature/feature.module.mjs +26 -0
  117. package/esm2022/lib/feature/index.mjs +5 -0
  118. package/esm2022/lib/feature/shared/feature-store.utils.mjs +28 -0
  119. package/esm2022/lib/feature/shared/feature.enums.mjs +9 -0
  120. package/esm2022/lib/feature/shared/feature.interfaces.mjs +2 -0
  121. package/esm2022/lib/feature/shared/feature.utils.mjs +332 -0
  122. package/esm2022/lib/feature/shared/index.mjs +8 -0
  123. package/esm2022/lib/feature/shared/store.mjs +143 -0
  124. package/esm2022/lib/feature/shared/strategies/geo-properties.mjs +216 -0
  125. package/esm2022/lib/feature/shared/strategies/in-map-extent.mjs +119 -0
  126. package/esm2022/lib/feature/shared/strategies/in-map-resolution.mjs +99 -0
  127. package/esm2022/lib/feature/shared/strategies/index.mjs +8 -0
  128. package/esm2022/lib/feature/shared/strategies/loading-layer.mjs +103 -0
  129. package/esm2022/lib/feature/shared/strategies/loading.mjs +136 -0
  130. package/esm2022/lib/feature/shared/strategies/search.mjs +158 -0
  131. package/esm2022/lib/feature/shared/strategies/selection.mjs +385 -0
  132. package/esm2022/lib/feature/shared/strategies.utils.mjs +37 -0
  133. package/esm2022/lib/filter/filter.module.mjs +131 -0
  134. package/esm2022/lib/filter/index.mjs +17 -0
  135. package/esm2022/lib/filter/ogc-filter-button/index.mjs +2 -0
  136. package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +141 -0
  137. package/esm2022/lib/filter/ogc-filter-form/index.mjs +2 -0
  138. package/esm2022/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +325 -0
  139. package/esm2022/lib/filter/ogc-filter-selection/index.mjs +2 -0
  140. package/esm2022/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +787 -0
  141. package/esm2022/lib/filter/ogc-filter-time/index.mjs +3 -0
  142. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +201 -0
  143. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +665 -0
  144. package/esm2022/lib/filter/ogc-filterable-form/index.mjs +2 -0
  145. package/esm2022/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +66 -0
  146. package/esm2022/lib/filter/ogc-filterable-item/index.mjs +2 -0
  147. package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +244 -0
  148. package/esm2022/lib/filter/ogc-filterable-list/index.mjs +3 -0
  149. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +39 -0
  150. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +32 -0
  151. package/esm2022/lib/filter/shared/filterable-datasource.pipe.mjs +63 -0
  152. package/esm2022/lib/filter/shared/index.mjs +12 -0
  153. package/esm2022/lib/filter/shared/ogc-filter-time.service.mjs +72 -0
  154. package/esm2022/lib/filter/shared/ogc-filter.enum.mjs +30 -0
  155. package/esm2022/lib/filter/shared/ogc-filter.interface.mjs +2 -0
  156. package/esm2022/lib/filter/shared/ogc-filter.mjs +756 -0
  157. package/esm2022/lib/filter/shared/ogc-filter.service.mjs +47 -0
  158. package/esm2022/lib/filter/shared/spatial-filter.enum.mjs +23 -0
  159. package/esm2022/lib/filter/shared/spatial-filter.interface.mjs +2 -0
  160. package/esm2022/lib/filter/shared/spatial-filter.service.mjs +282 -0
  161. package/esm2022/lib/filter/shared/time-filter.enum.mjs +13 -0
  162. package/esm2022/lib/filter/shared/time-filter.interface.mjs +2 -0
  163. package/esm2022/lib/filter/shared/time-filter.service.mjs +107 -0
  164. package/esm2022/lib/filter/spatial-filter/spatial-filter-item/index.mjs +2 -0
  165. package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +875 -0
  166. package/esm2022/lib/filter/spatial-filter/spatial-filter-list/index.mjs +2 -0
  167. package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +191 -0
  168. package/esm2022/lib/filter/spatial-filter/spatial-filter-type/index.mjs +2 -0
  169. package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +120 -0
  170. package/esm2022/lib/filter/time-filter-button/index.mjs +2 -0
  171. package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +70 -0
  172. package/esm2022/lib/filter/time-filter-form/index.mjs +2 -0
  173. package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +537 -0
  174. package/esm2022/lib/filter/time-filter-item/index.mjs +2 -0
  175. package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +90 -0
  176. package/esm2022/lib/filter/time-filter-list/index.mjs +3 -0
  177. package/esm2022/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +39 -0
  178. package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +24 -0
  179. package/esm2022/lib/geo.module.mjs +63 -0
  180. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +559 -0
  181. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +170 -0
  182. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +24 -0
  183. package/esm2022/lib/geometry/geometry-form-field/index.mjs +4 -0
  184. package/esm2022/lib/geometry/geometry.module.mjs +18 -0
  185. package/esm2022/lib/geometry/index.mjs +3 -0
  186. package/esm2022/lib/geometry/shared/controls/draw.mjs +340 -0
  187. package/esm2022/lib/geometry/shared/controls/index.mjs +4 -0
  188. package/esm2022/lib/geometry/shared/controls/modify.mjs +538 -0
  189. package/esm2022/lib/geometry/shared/controls/slice.mjs +190 -0
  190. package/esm2022/lib/geometry/shared/geometry.errors.mjs +24 -0
  191. package/esm2022/lib/geometry/shared/geometry.interfaces.mjs +2 -0
  192. package/esm2022/lib/geometry/shared/geometry.utils.mjs +113 -0
  193. package/esm2022/lib/geometry/shared/index.mjs +5 -0
  194. package/esm2022/lib/import-export/export-button/export-button.component.mjs +49 -0
  195. package/esm2022/lib/import-export/export-button/index.mjs +2 -0
  196. package/esm2022/lib/import-export/import-export/import-export.component.mjs +876 -0
  197. package/esm2022/lib/import-export/import-export/index.mjs +2 -0
  198. package/esm2022/lib/import-export/import-export.module.mjs +31 -0
  199. package/esm2022/lib/import-export/index.mjs +5 -0
  200. package/esm2022/lib/import-export/shared/drop-geo-file.directive.mjs +114 -0
  201. package/esm2022/lib/import-export/shared/export.errors.mjs +15 -0
  202. package/esm2022/lib/import-export/shared/export.interface.mjs +2 -0
  203. package/esm2022/lib/import-export/shared/export.service.mjs +378 -0
  204. package/esm2022/lib/import-export/shared/export.type.mjs +13 -0
  205. package/esm2022/lib/import-export/shared/export.utils.mjs +51 -0
  206. package/esm2022/lib/import-export/shared/import.errors.mjs +39 -0
  207. package/esm2022/lib/import-export/shared/import.interface.mjs +2 -0
  208. package/esm2022/lib/import-export/shared/import.service.mjs +221 -0
  209. package/esm2022/lib/import-export/shared/import.utils.mjs +203 -0
  210. package/esm2022/lib/import-export/shared/index.mjs +11 -0
  211. package/esm2022/lib/layer/index.mjs +16 -0
  212. package/esm2022/lib/layer/layer-group/index.mjs +2 -0
  213. package/esm2022/lib/layer/layer-group/layer-group.component.mjs +103 -0
  214. package/esm2022/lib/layer/layer-item/index.mjs +2 -0
  215. package/esm2022/lib/layer/layer-item/layer-item.component.mjs +196 -0
  216. package/esm2022/lib/layer/layer-legend/index.mjs +2 -0
  217. package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +287 -0
  218. package/esm2022/lib/layer/layer-legend-item/index.mjs +2 -0
  219. package/esm2022/lib/layer/layer-legend-item/layer-legend-item.component.mjs +85 -0
  220. package/esm2022/lib/layer/layer-legend-list/index.mjs +3 -0
  221. package/esm2022/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +54 -0
  222. package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +104 -0
  223. package/esm2022/lib/layer/layer-list/index.mjs +2 -0
  224. package/esm2022/lib/layer/layer-list/layer-list.component.mjs +232 -0
  225. package/esm2022/lib/layer/layer-list-tool/index.mjs +4 -0
  226. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +92 -0
  227. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.interface.mjs +7 -0
  228. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.service.mjs +61 -0
  229. package/esm2022/lib/layer/layer-search/index.mjs +2 -0
  230. package/esm2022/lib/layer/layer-search/layer-search.component.mjs +65 -0
  231. package/esm2022/lib/layer/layer-unavailable/index.mjs +3 -0
  232. package/esm2022/lib/layer/layer-unavailable/layer-unavailable-list/layer-unavailable-list.component.mjs +26 -0
  233. package/esm2022/lib/layer/layer-unavailable/layer-unavailable.component.mjs +35 -0
  234. package/esm2022/lib/layer/layer-viewer/index.mjs +3 -0
  235. package/esm2022/lib/layer/layer-viewer/layer-viewer.component.mjs +226 -0
  236. package/esm2022/lib/layer/layer-viewer/layer-viewer.interface.mjs +2 -0
  237. package/esm2022/lib/layer/layer-viewer-bottom-actions/index.mjs +2 -0
  238. package/esm2022/lib/layer/layer-viewer-bottom-actions/layer-viewer-bottom-actions.component.mjs +207 -0
  239. package/esm2022/lib/layer/layer-visibility-button/index.mjs +2 -0
  240. package/esm2022/lib/layer/layer-visibility-button/layer-visibility-button.component.mjs +83 -0
  241. package/esm2022/lib/layer/layer.module.mjs +107 -0
  242. package/esm2022/lib/layer/shared/clusterParam.mjs +2 -0
  243. package/esm2022/lib/layer/shared/index.mjs +6 -0
  244. package/esm2022/lib/layer/shared/layer-controller.mjs +316 -0
  245. package/esm2022/lib/layer/shared/layer-selection.mjs +38 -0
  246. package/esm2022/lib/layer/shared/layer.enums.mjs +2 -0
  247. package/esm2022/lib/layer/shared/layer.service.mjs +315 -0
  248. package/esm2022/lib/layer/shared/layers/any-layer.interface.mjs +2 -0
  249. package/esm2022/lib/layer/shared/layers/any-layer.mjs +2 -0
  250. package/esm2022/lib/layer/shared/layers/image-layer.interface.mjs +2 -0
  251. package/esm2022/lib/layer/shared/layers/image-layer.mjs +75 -0
  252. package/esm2022/lib/layer/shared/layers/index.mjs +18 -0
  253. package/esm2022/lib/layer/shared/layers/layer-base.mjs +199 -0
  254. package/esm2022/lib/layer/shared/layers/layer-group.interface.mjs +2 -0
  255. package/esm2022/lib/layer/shared/layers/layer-group.mjs +120 -0
  256. package/esm2022/lib/layer/shared/layers/layer.interface.mjs +7 -0
  257. package/esm2022/lib/layer/shared/layers/layer.mjs +178 -0
  258. package/esm2022/lib/layer/shared/layers/legend.interface.mjs +2 -0
  259. package/esm2022/lib/layer/shared/layers/linked/index.mjs +4 -0
  260. package/esm2022/lib/layer/shared/layers/linked/linked-layer.interface.mjs +12 -0
  261. package/esm2022/lib/layer/shared/layers/linked/linked-layer.mjs +242 -0
  262. package/esm2022/lib/layer/shared/layers/linked/linked-layer.utils.mjs +70 -0
  263. package/esm2022/lib/layer/shared/layers/tile-layer.interface.mjs +2 -0
  264. package/esm2022/lib/layer/shared/layers/tile-layer.mjs +55 -0
  265. package/esm2022/lib/layer/shared/layers/vector-layer.interface.mjs +2 -0
  266. package/esm2022/lib/layer/shared/layers/vector-layer.mjs +576 -0
  267. package/esm2022/lib/layer/shared/layers/vectortile-layer.interface.mjs +2 -0
  268. package/esm2022/lib/layer/shared/layers/vectortile-layer.mjs +112 -0
  269. package/esm2022/lib/layer/track-feature-button/index.mjs +2 -0
  270. package/esm2022/lib/layer/track-feature-button/track-feature-button.component.mjs +54 -0
  271. package/esm2022/lib/layer/utils/image-watcher.mjs +62 -0
  272. package/esm2022/lib/layer/utils/index.mjs +6 -0
  273. package/esm2022/lib/layer/utils/layer.utils.mjs +57 -0
  274. package/esm2022/lib/layer/utils/outputLegend.mjs +32 -0
  275. package/esm2022/lib/layer/utils/tile-watcher.mjs +52 -0
  276. package/esm2022/lib/layer/utils/vector-watcher.mjs +50 -0
  277. package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.animation.mjs +20 -0
  278. package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +87 -0
  279. package/esm2022/lib/map/baselayers-switcher/index.mjs +3 -0
  280. package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +122 -0
  281. package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +78 -0
  282. package/esm2022/lib/map/geolocate-button/index.mjs +2 -0
  283. package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +73 -0
  284. package/esm2022/lib/map/home-extent-button/home-extent-button.interface.mjs +2 -0
  285. package/esm2022/lib/map/home-extent-button/index.mjs +3 -0
  286. package/esm2022/lib/map/index.mjs +14 -0
  287. package/esm2022/lib/map/info-section/index.mjs +2 -0
  288. package/esm2022/lib/map/info-section/info-section.component.mjs +15 -0
  289. package/esm2022/lib/map/map-browser/index.mjs +2 -0
  290. package/esm2022/lib/map/map-browser/map-browser.component.mjs +67 -0
  291. package/esm2022/lib/map/map-center/index.mjs +2 -0
  292. package/esm2022/lib/map/map-center/map-center.component.mjs +56 -0
  293. package/esm2022/lib/map/map.module.mjs +89 -0
  294. package/esm2022/lib/map/menu-button/index.mjs +2 -0
  295. package/esm2022/lib/map/menu-button/menu-button.component.mjs +57 -0
  296. package/esm2022/lib/map/offline-button/index.mjs +2 -0
  297. package/esm2022/lib/map/offline-button/offline-button.component.mjs +53 -0
  298. package/esm2022/lib/map/rotation-button/index.mjs +2 -0
  299. package/esm2022/lib/map/rotation-button/rotation-button.component.mjs +58 -0
  300. package/esm2022/lib/map/shared/controllers/controller.mjs +44 -0
  301. package/esm2022/lib/map/shared/controllers/geolocation.interface.mjs +8 -0
  302. package/esm2022/lib/map/shared/controllers/geolocation.mjs +431 -0
  303. package/esm2022/lib/map/shared/controllers/index.mjs +5 -0
  304. package/esm2022/lib/map/shared/controllers/view.mjs +361 -0
  305. package/esm2022/lib/map/shared/hover-feature.directive.mjs +481 -0
  306. package/esm2022/lib/map/shared/index.mjs +15 -0
  307. package/esm2022/lib/map/shared/linkedLayers.utils.mjs +238 -0
  308. package/esm2022/lib/map/shared/map-pointer-position.directive.mjs +122 -0
  309. package/esm2022/lib/map/shared/map.abstract.mjs +24 -0
  310. package/esm2022/lib/map/shared/map.enums.mjs +6 -0
  311. package/esm2022/lib/map/shared/map.interface.mjs +2 -0
  312. package/esm2022/lib/map/shared/map.mjs +201 -0
  313. package/esm2022/lib/map/shared/map.service.mjs +29 -0
  314. package/esm2022/lib/map/shared/map.utils.mjs +455 -0
  315. package/esm2022/lib/map/shared/mapOffline.directive.mjs +114 -0
  316. package/esm2022/lib/map/shared/projection.interfaces.mjs +2 -0
  317. package/esm2022/lib/map/shared/projection.service.mjs +67 -0
  318. package/esm2022/lib/map/shared/projection.utils.mjs +122 -0
  319. package/esm2022/lib/map/swipe-control/index.mjs +2 -0
  320. package/esm2022/lib/map/swipe-control/swipe-control.component.mjs +211 -0
  321. package/esm2022/lib/map/utils/index.mjs +2 -0
  322. package/esm2022/lib/map/utils/layer-watcher.mjs +112 -0
  323. package/esm2022/lib/map/wake-lock-button/index.mjs +2 -0
  324. package/esm2022/lib/map/wake-lock-button/wake-lock-button.component.mjs +103 -0
  325. package/esm2022/lib/map/zoom-button/index.mjs +2 -0
  326. package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +35 -0
  327. package/esm2022/lib/measure/index.mjs +3 -0
  328. package/esm2022/lib/measure/measure.module.mjs +20 -0
  329. package/esm2022/lib/measure/measurer/index.mjs +6 -0
  330. package/esm2022/lib/measure/measurer/measure-format.pipe.mjs +40 -0
  331. package/esm2022/lib/measure/measurer/measurer-dialog.component.mjs +38 -0
  332. package/esm2022/lib/measure/measurer/measurer-item.component.mjs +143 -0
  333. package/esm2022/lib/measure/measurer/measurer.component.mjs +948 -0
  334. package/esm2022/lib/measure/measurer/measurer.module.mjs +20 -0
  335. package/esm2022/lib/measure/shared/index.mjs +4 -0
  336. package/esm2022/lib/measure/shared/measure.enum.mjs +37 -0
  337. package/esm2022/lib/measure/shared/measure.interfaces.mjs +2 -0
  338. package/esm2022/lib/measure/shared/measure.utils.mjs +497 -0
  339. package/esm2022/lib/metadata/index.mjs +4 -0
  340. package/esm2022/lib/metadata/metadata-button/index.mjs +2 -0
  341. package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +96 -0
  342. package/esm2022/lib/metadata/metadata.module.mjs +29 -0
  343. package/esm2022/lib/metadata/shared/index.mjs +3 -0
  344. package/esm2022/lib/metadata/shared/metadata.interface.mjs +2 -0
  345. package/esm2022/lib/metadata/shared/metadata.service.mjs +18 -0
  346. package/esm2022/lib/offline/geoDB/configFileToGeoDB.service.mjs +130 -0
  347. package/esm2022/lib/offline/geoDB/geoDB.enums.mjs +6 -0
  348. package/esm2022/lib/offline/geoDB/geoDB.interface.mjs +2 -0
  349. package/esm2022/lib/offline/geoDB/geoDB.service.mjs +172 -0
  350. package/esm2022/lib/offline/geoDB/index.mjs +5 -0
  351. package/esm2022/lib/offline/index.mjs +6 -0
  352. package/esm2022/lib/offline/layerDB/index.mjs +3 -0
  353. package/esm2022/lib/offline/layerDB/layerDB.interface.mjs +2 -0
  354. package/esm2022/lib/offline/layerDB/layerDB.service.mjs +83 -0
  355. package/esm2022/lib/offline/offline.interface.mjs +2 -0
  356. package/esm2022/lib/offline/offline.provider.mjs +50 -0
  357. package/esm2022/lib/offline/shared/geo-network.service.mjs +79 -0
  358. package/esm2022/lib/offline/shared/index.mjs +2 -0
  359. package/esm2022/lib/overlay/index.mjs +2 -0
  360. package/esm2022/lib/overlay/shared/index.mjs +4 -0
  361. package/esm2022/lib/overlay/shared/overlay.enum.mjs +8 -0
  362. package/esm2022/lib/overlay/shared/overlay.mjs +139 -0
  363. package/esm2022/lib/overlay/shared/overlay.utils.mjs +17 -0
  364. package/esm2022/lib/print/index.mjs +4 -0
  365. package/esm2022/lib/print/print/print.component.mjs +116 -0
  366. package/esm2022/lib/print/print-form/index.mjs +2 -0
  367. package/esm2022/lib/print/print-form/print-form.component.mjs +320 -0
  368. package/esm2022/lib/print/print.module.mjs +20 -0
  369. package/esm2022/lib/print/shared/geopdf.mjs +68 -0
  370. package/esm2022/lib/print/shared/index.mjs +5 -0
  371. package/esm2022/lib/print/shared/print.interface.mjs +2 -0
  372. package/esm2022/lib/print/shared/print.service.mjs +1136 -0
  373. package/esm2022/lib/print/shared/print.type.mjs +30 -0
  374. package/esm2022/lib/query/index.mjs +2 -0
  375. package/esm2022/lib/query/query.module.mjs +27 -0
  376. package/esm2022/lib/query/shared/index.mjs +8 -0
  377. package/esm2022/lib/query/shared/query-search-source.mjs +35 -0
  378. package/esm2022/lib/query/shared/query-search-source.providers.mjs +22 -0
  379. package/esm2022/lib/query/shared/query.directive.mjs +290 -0
  380. package/esm2022/lib/query/shared/query.enums.mjs +32 -0
  381. package/esm2022/lib/query/shared/query.interfaces.mjs +2 -0
  382. package/esm2022/lib/query/shared/query.service.mjs +753 -0
  383. package/esm2022/lib/query/shared/query.utils.mjs +45 -0
  384. package/esm2022/lib/search/index.mjs +10 -0
  385. package/esm2022/lib/search/search-bar/search-bar.component.mjs +483 -0
  386. package/esm2022/lib/search/search-bar/search-bar.module.mjs +19 -0
  387. package/esm2022/lib/search/search-results/index.mjs +5 -0
  388. package/esm2022/lib/search/search-results/save-feature-dialog.component.mjs +101 -0
  389. package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +433 -0
  390. package/esm2022/lib/search/search-results/search-results-item.component.mjs +119 -0
  391. package/esm2022/lib/search/search-results/search-results.component.mjs +297 -0
  392. package/esm2022/lib/search/search-results/search-results.directive.mjs +7 -0
  393. package/esm2022/lib/search/search-results/search-results.module.mjs +20 -0
  394. package/esm2022/lib/search/search-selector/search-selector.component.mjs +118 -0
  395. package/esm2022/lib/search/search-selector/search-selector.module.mjs +19 -0
  396. package/esm2022/lib/search/search-settings/search-settings.component.mjs +264 -0
  397. package/esm2022/lib/search/search-settings/search-settings.module.mjs +19 -0
  398. package/esm2022/lib/search/search.module.mjs +77 -0
  399. package/esm2022/lib/search/shared/index.mjs +10 -0
  400. package/esm2022/lib/search/shared/search-pointer-summary.directive.mjs +328 -0
  401. package/esm2022/lib/search/shared/search-source-service.providers.mjs +20 -0
  402. package/esm2022/lib/search/shared/search-source.service.mjs +56 -0
  403. package/esm2022/lib/search/shared/search.enums.mjs +4 -0
  404. package/esm2022/lib/search/shared/search.interfaces.mjs +2 -0
  405. package/esm2022/lib/search/shared/search.provider.mjs +20 -0
  406. package/esm2022/lib/search/shared/search.service.mjs +149 -0
  407. package/esm2022/lib/search/shared/search.utils.mjs +92 -0
  408. package/esm2022/lib/search/shared/sources/cadastre.mjs +142 -0
  409. package/esm2022/lib/search/shared/sources/cadastre.providers.mjs +32 -0
  410. package/esm2022/lib/search/shared/sources/coordinates.interfaces.mjs +2 -0
  411. package/esm2022/lib/search/shared/sources/coordinates.mjs +168 -0
  412. package/esm2022/lib/search/shared/sources/coordinates.providers.mjs +52 -0
  413. package/esm2022/lib/search/shared/sources/icherche-icons.mjs +32 -0
  414. package/esm2022/lib/search/shared/sources/icherche.interfaces.mjs +2 -0
  415. package/esm2022/lib/search/shared/sources/icherche.mjs +816 -0
  416. package/esm2022/lib/search/shared/sources/icherche.providers.mjs +87 -0
  417. package/esm2022/lib/search/shared/sources/ilayer.interfaces.mjs +2 -0
  418. package/esm2022/lib/search/shared/sources/ilayer.mjs +339 -0
  419. package/esm2022/lib/search/shared/sources/ilayer.providers.mjs +58 -0
  420. package/esm2022/lib/search/shared/sources/index.mjs +23 -0
  421. package/esm2022/lib/search/shared/sources/nominatim.interfaces.mjs +2 -0
  422. package/esm2022/lib/search/shared/sources/nominatim.mjs +263 -0
  423. package/esm2022/lib/search/shared/sources/nominatim.providers.mjs +31 -0
  424. package/esm2022/lib/search/shared/sources/source.interfaces.mjs +13 -0
  425. package/esm2022/lib/search/shared/sources/source.mjs +221 -0
  426. package/esm2022/lib/search/shared/sources/storedqueries.interfaces.mjs +2 -0
  427. package/esm2022/lib/search/shared/sources/storedqueries.mjs +454 -0
  428. package/esm2022/lib/search/shared/sources/storedqueries.providers.mjs +56 -0
  429. package/esm2022/lib/search/shared/sources/workspace.interfaces.mjs +2 -0
  430. package/esm2022/lib/search/shared/sources/workspace.mjs +192 -0
  431. package/esm2022/lib/search/shared/sources/workspace.providers.mjs +31 -0
  432. package/esm2022/lib/style/index.mjs +5 -0
  433. package/esm2022/lib/style/shared/datasource/esri-style-generator.mjs +360 -0
  434. package/esm2022/lib/style/shared/datasource/index.mjs +2 -0
  435. package/esm2022/lib/style/shared/feature/feature-style.mjs +162 -0
  436. package/esm2022/lib/style/shared/feature/index.mjs +2 -0
  437. package/esm2022/lib/style/shared/font.enum.mjs +17 -0
  438. package/esm2022/lib/style/shared/index.mjs +5 -0
  439. package/esm2022/lib/style/shared/overlay/index.mjs +3 -0
  440. package/esm2022/lib/style/shared/overlay/overlay-marker-style.utils.mjs +39 -0
  441. package/esm2022/lib/style/shared/overlay/overlay-style.utils.mjs +88 -0
  442. package/esm2022/lib/style/shared/vector/commonVectorStyle.mjs +78 -0
  443. package/esm2022/lib/style/shared/vector/conversion.utils.mjs +27 -0
  444. package/esm2022/lib/style/shared/vector/index.mjs +4 -0
  445. package/esm2022/lib/style/shared/vector/vector-style.interface.mjs +2 -0
  446. package/esm2022/lib/style/style-list/index.mjs +5 -0
  447. package/esm2022/lib/style/style-list/style-list.interface.mjs +2 -0
  448. package/esm2022/lib/style/style-list/style-list.module.mjs +23 -0
  449. package/esm2022/lib/style/style-list/style-list.provider.mjs +21 -0
  450. package/esm2022/lib/style/style-list/style-list.service.mjs +52 -0
  451. package/esm2022/lib/style/style-modal/drawing/index.mjs +2 -0
  452. package/esm2022/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +193 -0
  453. package/esm2022/lib/style/style-modal/index.mjs +5 -0
  454. package/esm2022/lib/style/style-modal/layer/index.mjs +2 -0
  455. package/esm2022/lib/style/style-modal/layer/style-modal-layer.component.mjs +142 -0
  456. package/esm2022/lib/style/style-modal/layer-button/index.mjs +2 -0
  457. package/esm2022/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +44 -0
  458. package/esm2022/lib/style/style-modal/shared/index.mjs +2 -0
  459. package/esm2022/lib/style/style-modal/shared/style-modal.interface.mjs +2 -0
  460. package/esm2022/lib/style/style-service/draw-style.service.mjs +255 -0
  461. package/esm2022/lib/style/style-service/index.mjs +3 -0
  462. package/esm2022/lib/style/style-service/style.service.mjs +393 -0
  463. package/esm2022/lib/style/style.module.mjs +46 -0
  464. package/esm2022/lib/toast/index.mjs +2 -0
  465. package/esm2022/lib/toast/toast.component.mjs +99 -0
  466. package/esm2022/lib/toast/toast.module.mjs +24 -0
  467. package/esm2022/lib/utils/googleLinks.mjs +13 -0
  468. package/esm2022/lib/utils/id-generator.mjs +112 -0
  469. package/esm2022/lib/utils/index.mjs +5 -0
  470. package/esm2022/lib/utils/osmLinks.mjs +9 -0
  471. package/esm2022/lib/utils/propertyTypeDetector/index.mjs +3 -0
  472. package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.interface.mjs +2 -0
  473. package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.service.mjs +64 -0
  474. package/esm2022/lib/wkt/index.mjs +2 -0
  475. package/esm2022/lib/wkt/shared/index.mjs +2 -0
  476. package/esm2022/lib/wkt/shared/wkt.service.mjs +235 -0
  477. package/esm2022/lib/wkt/wkt.module.mjs +25 -0
  478. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +36 -0
  479. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +19 -0
  480. package/esm2022/lib/workspace/confirmation-popup/index.mjs +3 -0
  481. package/esm2022/lib/workspace/index.mjs +8 -0
  482. package/esm2022/lib/workspace/shared/edition-workspace.mjs +301 -0
  483. package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +720 -0
  484. package/esm2022/lib/workspace/shared/feature-workspace.mjs +41 -0
  485. package/esm2022/lib/workspace/shared/feature-workspace.service.mjs +113 -0
  486. package/esm2022/lib/workspace/shared/index.mjs +8 -0
  487. package/esm2022/lib/workspace/shared/wfs-workspace.mjs +41 -0
  488. package/esm2022/lib/workspace/shared/wfs-workspace.service.mjs +121 -0
  489. package/esm2022/lib/workspace/shared/wms-workspace.service.mjs +248 -0
  490. package/esm2022/lib/workspace/shared/workspace.utils.mjs +188 -0
  491. package/esm2022/lib/workspace/widgets/index.mjs +4 -0
  492. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +48 -0
  493. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +19 -0
  494. package/esm2022/lib/workspace/widgets/widgets.mjs +15 -0
  495. package/esm2022/lib/workspace/workspace-selector/workspace-selector.directive.mjs +172 -0
  496. package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +19 -0
  497. package/esm2022/lib/workspace/workspace-updator/workspace-updator.directive.mjs +137 -0
  498. package/esm2022/lib/workspace/workspace-updator/workspace-updator.module.mjs +19 -0
  499. package/esm2022/lib/workspace/workspace.module.mjs +32 -0
  500. package/esm2022/public_api.mjs +56 -0
  501. package/fesm2022/igo2-geo.mjs +717 -691
  502. package/fesm2022/igo2-geo.mjs.map +1 -1
  503. package/lib/datasource/shared/datasources/datasource.d.ts +2 -2
  504. package/lib/directions/shared/directions.service.d.ts +0 -1
  505. package/lib/offline/geoDB/geoDB.service.d.ts +1 -1
  506. package/lib/offline/layerDB/layerDB.service.d.ts +1 -1
  507. package/lib/style/style-list/style-list.provider.d.ts +8 -1
  508. package/lib/style/style-list/style-list.service.d.ts +1 -1
  509. package/package.json +16 -14
  510. package/src/lib/layer/layer-list/layer-list.theme.scss +1 -2
  511. package/src/lib/map/menu-button/menu-button.theming.scss +3 -3
  512. package/src/style/style.scss +1 -1
@@ -0,0 +1,20 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { MeasureFormatPipe } from './measure-format.pipe';
3
+ import { MeasurerComponent } from './measurer.component';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * @deprecated import the components directly or the MEASURER_DIRECTIVES for the set
7
+ */
8
+ export class IgoMeasurerModule {
9
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoMeasurerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: IgoMeasurerModule, imports: [MeasureFormatPipe, MeasurerComponent], exports: [MeasureFormatPipe, MeasurerComponent] });
11
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoMeasurerModule, imports: [MeasurerComponent] });
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoMeasurerModule, decorators: [{
14
+ type: NgModule,
15
+ args: [{
16
+ imports: [MeasureFormatPipe, MeasurerComponent],
17
+ exports: [MeasureFormatPipe, MeasurerComponent]
18
+ }]
19
+ }] });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVhc3VyZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbWVhc3VyZS9tZWFzdXJlci9tZWFzdXJlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFFekQ7O0dBRUc7QUFLSCxNQUFNLE9BQU8saUJBQWlCO3dHQUFqQixpQkFBaUI7eUdBQWpCLGlCQUFpQixZQUhsQixpQkFBaUIsRUFBRSxpQkFBaUIsYUFDcEMsaUJBQWlCLEVBQUUsaUJBQWlCO3lHQUVuQyxpQkFBaUIsWUFIQyxpQkFBaUI7OzRGQUduQyxpQkFBaUI7a0JBSjdCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLENBQUM7b0JBQy9DLE9BQU8sRUFBRSxDQUFDLGlCQUFpQixFQUFFLGlCQUFpQixDQUFDO2lCQUNoRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1lYXN1cmVGb3JtYXRQaXBlIH0gZnJvbSAnLi9tZWFzdXJlLWZvcm1hdC5waXBlJztcbmltcG9ydCB7IE1lYXN1cmVyQ29tcG9uZW50IH0gZnJvbSAnLi9tZWFzdXJlci5jb21wb25lbnQnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIGltcG9ydCB0aGUgY29tcG9uZW50cyBkaXJlY3RseSBvciB0aGUgTUVBU1VSRVJfRElSRUNUSVZFUyBmb3IgdGhlIHNldFxuICovXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbTWVhc3VyZUZvcm1hdFBpcGUsIE1lYXN1cmVyQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW01lYXN1cmVGb3JtYXRQaXBlLCBNZWFzdXJlckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgSWdvTWVhc3VyZXJNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export * from './measure.enum';
2
+ export * from './measure.interfaces';
3
+ export * from './measure.utils';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9tZWFzdXJlL3NoYXJlZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbWVhc3VyZS5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbWVhc3VyZS5pbnRlcmZhY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vbWVhc3VyZS51dGlscyc7XG4iXX0=
@@ -0,0 +1,37 @@
1
+ export const MEASURE_UNIT_AUTO = 'auto';
2
+ export var MeasureType;
3
+ (function (MeasureType) {
4
+ MeasureType["Length"] = "length";
5
+ MeasureType["Area"] = "area";
6
+ })(MeasureType || (MeasureType = {}));
7
+ export var MeasureLengthUnit;
8
+ (function (MeasureLengthUnit) {
9
+ MeasureLengthUnit["Meters"] = "meters";
10
+ MeasureLengthUnit["Kilometers"] = "kilometers";
11
+ MeasureLengthUnit["Miles"] = "miles";
12
+ MeasureLengthUnit["Feet"] = "feet";
13
+ })(MeasureLengthUnit || (MeasureLengthUnit = {}));
14
+ export const MeasureLengthUnitAbbreviation = {
15
+ [MeasureLengthUnit.Meters]: 'm',
16
+ [MeasureLengthUnit.Kilometers]: 'km',
17
+ [MeasureLengthUnit.Miles]: 'mi',
18
+ [MeasureLengthUnit.Feet]: 'ft'
19
+ };
20
+ export var MeasureAreaUnit;
21
+ (function (MeasureAreaUnit) {
22
+ MeasureAreaUnit["SquareMeters"] = "squareMeters";
23
+ MeasureAreaUnit["SquareKilometers"] = "squareKilometers";
24
+ MeasureAreaUnit["SquareMiles"] = "squareMiles";
25
+ MeasureAreaUnit["SquareFeet"] = "squareFeet";
26
+ MeasureAreaUnit["Hectares"] = "hectares";
27
+ MeasureAreaUnit["Acres"] = "acres";
28
+ })(MeasureAreaUnit || (MeasureAreaUnit = {}));
29
+ export const MeasureAreaUnitAbbreviation = {
30
+ [MeasureAreaUnit.SquareMeters]: 'm²',
31
+ [MeasureAreaUnit.SquareKilometers]: 'km²',
32
+ [MeasureAreaUnit.SquareMiles]: 'mi²',
33
+ [MeasureAreaUnit.SquareFeet]: 'ft²',
34
+ [MeasureAreaUnit.Hectares]: 'ha',
35
+ [MeasureAreaUnit.Acres]: 'ac'
36
+ };
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVhc3VyZS5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbWVhc3VyZS9zaGFyZWQvbWVhc3VyZS5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQztBQUV4QyxNQUFNLENBQU4sSUFBWSxXQUdYO0FBSEQsV0FBWSxXQUFXO0lBQ3JCLGdDQUFpQixDQUFBO0lBQ2pCLDRCQUFhLENBQUE7QUFDZixDQUFDLEVBSFcsV0FBVyxLQUFYLFdBQVcsUUFHdEI7QUFFRCxNQUFNLENBQU4sSUFBWSxpQkFLWDtBQUxELFdBQVksaUJBQWlCO0lBQzNCLHNDQUFpQixDQUFBO0lBQ2pCLDhDQUF5QixDQUFBO0lBQ3pCLG9DQUFlLENBQUE7SUFDZixrQ0FBYSxDQUFBO0FBQ2YsQ0FBQyxFQUxXLGlCQUFpQixLQUFqQixpQkFBaUIsUUFLNUI7QUFFRCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRztJQUMzQyxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUc7SUFDL0IsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJO0lBQ3BDLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSTtJQUMvQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLElBQUk7Q0FDL0IsQ0FBQztBQUVGLE1BQU0sQ0FBTixJQUFZLGVBT1g7QUFQRCxXQUFZLGVBQWU7SUFDekIsZ0RBQTZCLENBQUE7SUFDN0Isd0RBQXFDLENBQUE7SUFDckMsOENBQTJCLENBQUE7SUFDM0IsNENBQXlCLENBQUE7SUFDekIsd0NBQXFCLENBQUE7SUFDckIsa0NBQWUsQ0FBQTtBQUNqQixDQUFDLEVBUFcsZUFBZSxLQUFmLGVBQWUsUUFPMUI7QUFFRCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRztJQUN6QyxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsRUFBRSxJQUFJO0lBQ3BDLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsS0FBSztJQUN6QyxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsRUFBRSxLQUFLO0lBQ3BDLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUs7SUFDbkMsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLEVBQUUsSUFBSTtJQUNoQyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJO0NBQzlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgTUVBU1VSRV9VTklUX0FVVE8gPSAnYXV0byc7XG5cbmV4cG9ydCBlbnVtIE1lYXN1cmVUeXBlIHtcbiAgTGVuZ3RoID0gJ2xlbmd0aCcsXG4gIEFyZWEgPSAnYXJlYSdcbn1cblxuZXhwb3J0IGVudW0gTWVhc3VyZUxlbmd0aFVuaXQge1xuICBNZXRlcnMgPSAnbWV0ZXJzJyxcbiAgS2lsb21ldGVycyA9ICdraWxvbWV0ZXJzJyxcbiAgTWlsZXMgPSAnbWlsZXMnLFxuICBGZWV0ID0gJ2ZlZXQnXG59XG5cbmV4cG9ydCBjb25zdCBNZWFzdXJlTGVuZ3RoVW5pdEFiYnJldmlhdGlvbiA9IHtcbiAgW01lYXN1cmVMZW5ndGhVbml0Lk1ldGVyc106ICdtJyxcbiAgW01lYXN1cmVMZW5ndGhVbml0LktpbG9tZXRlcnNdOiAna20nLFxuICBbTWVhc3VyZUxlbmd0aFVuaXQuTWlsZXNdOiAnbWknLFxuICBbTWVhc3VyZUxlbmd0aFVuaXQuRmVldF06ICdmdCdcbn07XG5cbmV4cG9ydCBlbnVtIE1lYXN1cmVBcmVhVW5pdCB7XG4gIFNxdWFyZU1ldGVycyA9ICdzcXVhcmVNZXRlcnMnLFxuICBTcXVhcmVLaWxvbWV0ZXJzID0gJ3NxdWFyZUtpbG9tZXRlcnMnLFxuICBTcXVhcmVNaWxlcyA9ICdzcXVhcmVNaWxlcycsXG4gIFNxdWFyZUZlZXQgPSAnc3F1YXJlRmVldCcsXG4gIEhlY3RhcmVzID0gJ2hlY3RhcmVzJyxcbiAgQWNyZXMgPSAnYWNyZXMnXG59XG5cbmV4cG9ydCBjb25zdCBNZWFzdXJlQXJlYVVuaXRBYmJyZXZpYXRpb24gPSB7XG4gIFtNZWFzdXJlQXJlYVVuaXQuU3F1YXJlTWV0ZXJzXTogJ23CsicsXG4gIFtNZWFzdXJlQXJlYVVuaXQuU3F1YXJlS2lsb21ldGVyc106ICdrbcKyJyxcbiAgW01lYXN1cmVBcmVhVW5pdC5TcXVhcmVNaWxlc106ICdtacKyJyxcbiAgW01lYXN1cmVBcmVhVW5pdC5TcXVhcmVGZWV0XTogJ2Z0wrInLFxuICBbTWVhc3VyZUFyZWFVbml0LkhlY3RhcmVzXTogJ2hhJyxcbiAgW01lYXN1cmVBcmVhVW5pdC5BY3Jlc106ICdhYydcbn07XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVhc3VyZS5pbnRlcmZhY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbWVhc3VyZS9zaGFyZWQvbWVhc3VyZS5pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSAnLi4vLi4vZmVhdHVyZS9zaGFyZWQvZmVhdHVyZS5pbnRlcmZhY2VzJztcbmltcG9ydCB7IElnb01hcCB9IGZyb20gJy4uLy4uL21hcC9zaGFyZWQvbWFwJztcblxuZXhwb3J0IGludGVyZmFjZSBNZWFzdXJlIHtcbiAgYXJlYT86IG51bWJlcjtcbiAgbGVuZ3RoPzogbnVtYmVyO1xuICBsZW5ndGhzPzogbnVtYmVyW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVhc3VyZXJEaWFsb2dEYXRhIHtcbiAgYXJlYTogbnVtYmVyO1xuICBsZW5ndGg6IG51bWJlcjtcbiAgcGVyaW1ldGVyOiBudW1iZXI7XG59XG5cbmV4cG9ydCB0eXBlIEZlYXR1cmVXaXRoTWVhc3VyZSA9IEZlYXR1cmU8RmVhdHVyZVdpdGhNZWFzdXJlUHJvcGVydGllcz47XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmVhdHVyZVdpdGhNZWFzdXJlUHJvcGVydGllcyB7XG4gIGlkOiBzdHJpbmc7XG4gIG1lYXN1cmU6IE1lYXN1cmU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmVhdHVyZVN0b3JlTWVhc3VyZVN0cmF0ZWd5T3B0aW9ucyB7XG4gIG1hcDogSWdvTWFwO1xufVxuIl19
@@ -0,0 +1,497 @@
1
+ import OlOverlay from 'ol/Overlay';
2
+ import { getCenter as olGetCenter } from 'ol/extent';
3
+ import OlCircle from 'ol/geom/Circle';
4
+ import OlLineString from 'ol/geom/LineString';
5
+ import OlPoint from 'ol/geom/Point';
6
+ import OlPolygon from 'ol/geom/Polygon';
7
+ import { getArea as olGetArea, getLength as olGetLength } from 'ol/sphere';
8
+ import * as olstyle from 'ol/style';
9
+ import { MeasureAreaUnit, MeasureAreaUnitAbbreviation, MeasureLengthUnit, MeasureLengthUnitAbbreviation } from './measure.enum';
10
+ /**
11
+ * Convert value from meters to kilometers
12
+ * @param value Value in meters
13
+ * @returns Value in kilometers
14
+ */
15
+ export function metersToKilometers(value) {
16
+ return value * 0.001;
17
+ }
18
+ /**
19
+ * Convert value from meters to feet
20
+ * @param value Value in meters
21
+ * @returns Value in feet
22
+ */
23
+ export function metersToFeet(value) {
24
+ return value * 3.2808;
25
+ }
26
+ /**
27
+ * Convert value from meters to miles
28
+ * @param value Value in meters
29
+ * @returns Value in miles
30
+ */
31
+ export function metersToMiles(value) {
32
+ return value * 0.000621;
33
+ }
34
+ /**
35
+ * Convert value from square meters to square kilometers
36
+ * @param value Value in square meters
37
+ * @returns Value in square kilometers
38
+ */
39
+ export function squareMetersToSquareKilometers(value) {
40
+ return value * 0.000001;
41
+ }
42
+ /**
43
+ * Convert value from square meters to square miles
44
+ * @param value Value in square meters
45
+ * @returns Value in square miles
46
+ */
47
+ export function squareMetersToSquareMiles(value) {
48
+ return value * 0.0000003861;
49
+ }
50
+ /**
51
+ * Convert value from square meters to square feet
52
+ * @param value Value in square meters
53
+ * @returns Value in square feet
54
+ */
55
+ export function squareMetersToSquareFeet(value) {
56
+ return value * 10.764;
57
+ }
58
+ /**
59
+ * Convert value from square meters to hectares
60
+ * @param value Value in square meters
61
+ * @returns Value in hectares
62
+ */
63
+ export function squareMetersToHectares(value) {
64
+ return value * 0.0001;
65
+ }
66
+ /**
67
+ * Convert value from square meters to acres
68
+ * @param value Value in square meters
69
+ * @returns Value in acres
70
+ */
71
+ export function squareMetersToAcres(value) {
72
+ return value * 0.00024711;
73
+ }
74
+ /**
75
+ * Convert value from meters to the specified length unit
76
+ * @param value Value in meters
77
+ * @param unit Length unit
78
+ * @returns Value in unit
79
+ */
80
+ export function metersToUnit(value, unit) {
81
+ const conversionMapper = new Map([
82
+ [MeasureLengthUnit.Meters, (val) => val],
83
+ [MeasureLengthUnit.Kilometers, metersToKilometers],
84
+ [MeasureLengthUnit.Miles, metersToMiles],
85
+ [MeasureLengthUnit.Feet, metersToFeet]
86
+ ]);
87
+ const conversion = conversionMapper.get(unit);
88
+ return conversion ? conversion(value) : undefined;
89
+ }
90
+ /**
91
+ * Convert value from square meters to the specified area unit
92
+ * @param value Value in meters
93
+ * @param unit Area unit
94
+ * @returns Value in unit
95
+ */
96
+ export function squareMetersToUnit(value, unit) {
97
+ const conversionMapper = new Map([
98
+ [MeasureAreaUnit.SquareMeters, (val) => val],
99
+ [MeasureAreaUnit.SquareKilometers, squareMetersToSquareKilometers],
100
+ [MeasureAreaUnit.SquareMiles, squareMetersToSquareMiles],
101
+ [MeasureAreaUnit.SquareFeet, squareMetersToSquareFeet],
102
+ [MeasureAreaUnit.Hectares, squareMetersToHectares],
103
+ [MeasureAreaUnit.Acres, squareMetersToAcres]
104
+ ]);
105
+ const conversion = conversionMapper.get(unit);
106
+ return conversion ? conversion(value) : undefined;
107
+ }
108
+ /**
109
+ * This method format a measure to a readable format
110
+ * @param measure Measure
111
+ * @param options Formatting options
112
+ * @returns Formatted measure
113
+ */
114
+ export function formatMeasure(measure, options, languageService) {
115
+ let decimal = options.decimal;
116
+ if (decimal === undefined || decimal < 0) {
117
+ decimal = 1;
118
+ }
119
+ const parts = [];
120
+ if (options.locale !== undefined) {
121
+ parts.push(measure.toLocaleString(options.locale, {
122
+ minimumFractionDigits: decimal,
123
+ maximumFractionDigits: decimal
124
+ }));
125
+ }
126
+ else {
127
+ parts.push(measure.toFixed(decimal).toString());
128
+ }
129
+ if (options.unit !== undefined && options.unitAbbr === true) {
130
+ if (languageService) {
131
+ parts.push(MeasureLengthUnitAbbreviation[options.unit]
132
+ ? languageService.translate.instant('igo.geo.measure.' + MeasureLengthUnitAbbreviation[options.unit])
133
+ : languageService.translate.instant('igo.geo.measure.' + MeasureAreaUnitAbbreviation[options.unit]));
134
+ }
135
+ else {
136
+ parts.push(MeasureLengthUnitAbbreviation[options.unit] ||
137
+ MeasureAreaUnitAbbreviation[options.unit]);
138
+ }
139
+ }
140
+ return parts.filter((p) => p !== undefined).join(' ');
141
+ }
142
+ /**
143
+ * Compute best length measure unit for a given measure in meters
144
+ * @param value Value in meters
145
+ * @returns Measure unit
146
+ */
147
+ export function computeBestLengthUnit(value) {
148
+ let unit = MeasureLengthUnit.Meters;
149
+ let converted = value;
150
+ const possibleUnits = [MeasureLengthUnit.Kilometers];
151
+ while (converted > 1000 && possibleUnits.length > 0) {
152
+ unit = possibleUnits.pop();
153
+ converted = metersToUnit(value, unit);
154
+ }
155
+ return unit;
156
+ }
157
+ /**
158
+ * Compute best length measure unit for a given measure in square meters
159
+ * @param value Value in meters
160
+ * @returns Measure unit
161
+ */
162
+ export function computeBestAreaUnit(value) {
163
+ let unit = MeasureAreaUnit.SquareMeters;
164
+ let converted = value;
165
+ const possibleUnits = [MeasureAreaUnit.SquareKilometers];
166
+ while (converted > 1000000 && possibleUnits.length > 0) {
167
+ unit = possibleUnits.pop();
168
+ converted = squareMetersToUnit(value, unit);
169
+ }
170
+ return unit;
171
+ }
172
+ /**
173
+ * Create a default style for a measure interaction
174
+ * @returns OL style
175
+ */
176
+ export function createMeasureInteractionStyle() {
177
+ return new olstyle.Style({
178
+ stroke: new olstyle.Stroke({
179
+ color: '#ffcc33',
180
+ lineDash: [10, 10],
181
+ width: 2
182
+ }),
183
+ fill: new olstyle.Fill({
184
+ color: 'rgba(255, 255, 255, 0.2)'
185
+ }),
186
+ image: new olstyle.Circle({
187
+ radius: 5,
188
+ stroke: new olstyle.Stroke({
189
+ color: '#ffcc33'
190
+ }),
191
+ fill: new olstyle.Fill({
192
+ color: 'rgba(255, 255, 255, 0.2)'
193
+ })
194
+ })
195
+ });
196
+ }
197
+ /**
198
+ * Create a default style for a measure layer
199
+ * @returns OL style
200
+ */
201
+ export function createMeasureLayerStyle() {
202
+ return new olstyle.Style({
203
+ stroke: new olstyle.Stroke({
204
+ color: '#ffcc33',
205
+ width: 2
206
+ }),
207
+ fill: new olstyle.Fill({
208
+ color: 'rgba(255, 255, 255, 0.2)'
209
+ })
210
+ });
211
+ }
212
+ /**
213
+ * Compute the length in meters of an OL geometry with a given projection
214
+ * @param olGeometry Ol geometry
215
+ * @param projection olGeometry's projection
216
+ * @returns Length in meters
217
+ */
218
+ export function measureOlGeometryLength(olGeometry, projection) {
219
+ if (olGeometry instanceof OlPoint) {
220
+ return undefined;
221
+ }
222
+ if (olGeometry.getFlatCoordinates().length === 0) {
223
+ return undefined;
224
+ }
225
+ return olGetLength(olGeometry, { projection });
226
+ }
227
+ /**
228
+ * Compute the area in square meters of an OL geometry with a given projection
229
+ * @param olGeometry Ol geometry
230
+ * @param projection olGeometry's projection
231
+ * @returns Area in square meters
232
+ */
233
+ export function measureOlGeometryArea(olGeometry, projection) {
234
+ if (olGeometry instanceof OlPoint || olGeometry instanceof OlLineString) {
235
+ return undefined;
236
+ }
237
+ if (olGeometry.getFlatCoordinates().length === 0) {
238
+ return undefined;
239
+ }
240
+ return olGetArea(olGeometry, { projection });
241
+ }
242
+ /**
243
+ * Compute the area (square meters), length (meters) and last length (meters)
244
+ * of an OL geometry with a given projection.
245
+ * @param olGeometry Ol geometry
246
+ * @param projection olGeometry's projection
247
+ * @returns Computed measure
248
+ */
249
+ export function measureOlGeometry(olGeometry, projection) {
250
+ const length = measureOlGeometryLength(olGeometry, projection);
251
+ const area = measureOlGeometryArea(olGeometry, projection);
252
+ const lengths = [];
253
+ const coordinates = olGeometry.getFlatCoordinates();
254
+ const coordinatesLength = coordinates.length;
255
+ for (let i = 0; i <= coordinatesLength - 4; i += 2) {
256
+ const olSegment = new OlLineString([
257
+ [coordinates[i], coordinates[i + 1]],
258
+ [coordinates[i + 2], coordinates[i + 3]]
259
+ ]);
260
+ lengths.push(measureOlGeometryLength(olSegment, projection));
261
+ }
262
+ return {
263
+ area,
264
+ length,
265
+ lengths
266
+ };
267
+ }
268
+ /**
269
+ * Update an OL geometry midpoints and return an array of those points
270
+ * @param olGeometry OL Geometry
271
+ * @returns OL points
272
+ */
273
+ export function updateOlGeometryMidpoints(olGeometry) {
274
+ let olMidpoints;
275
+ if (olGeometry instanceof OlPoint) {
276
+ const olMidpointPoint = new OlPoint(olGeometry.getFlatCoordinates());
277
+ olMidpoints = new Array(1);
278
+ olMidpoints[0] = olMidpointPoint;
279
+ }
280
+ else {
281
+ olMidpoints = getOlGeometryMidpoints(olGeometry);
282
+ // TODO: handle multi geometries
283
+ const coordinates = olGeometry.getFlatCoordinates();
284
+ const midpointsLength = olMidpoints.length;
285
+ for (let i = 0; i < midpointsLength; i++) {
286
+ const j = i * 2;
287
+ const olSegment = new OlLineString([
288
+ [coordinates[j], coordinates[j + 1]],
289
+ [coordinates[j + 2], coordinates[j + 3]]
290
+ ]);
291
+ const midpointCoordinate = olSegment.getCoordinateAt(0.5);
292
+ const olMidpoint = olMidpoints[i];
293
+ if (olMidpoint !== undefined) {
294
+ olMidpoint.setCoordinates(midpointCoordinate);
295
+ }
296
+ else {
297
+ olMidpoints[i] = new OlPoint(midpointCoordinate);
298
+ }
299
+ }
300
+ }
301
+ return olMidpoints;
302
+ }
303
+ /**
304
+ * Clear an OL geometry midpoints and return an array of those points
305
+ * @param olGeometry OL Geometry
306
+ */
307
+ export function clearOlGeometryMidpoints(olGeometry) {
308
+ const olMidpoints = olGeometry.get('_midpoints') || [];
309
+ const midpointsLength = olMidpoints.length;
310
+ for (let i = 0; i < midpointsLength; i++) {
311
+ const olMidpoint = olMidpoints[i];
312
+ if (olMidpoint !== undefined) {
313
+ if (olMidpoint !== undefined) {
314
+ clearOlMidpointTooltip(olMidpoint);
315
+ }
316
+ }
317
+ }
318
+ olGeometry.set('_midpoints', undefined, true);
319
+ return olMidpoints;
320
+ }
321
+ /**
322
+ * Return an array of OL geometry midpoints, if any
323
+ * @param olGeometry OL Geometry
324
+ * @returns OL points
325
+ */
326
+ function getOlGeometryMidpoints(olGeometry) {
327
+ let expectedNumber;
328
+ if (olGeometry instanceof OlCircle) {
329
+ expectedNumber = 0;
330
+ }
331
+ else {
332
+ expectedNumber = Math.max(olGeometry.getFlatCoordinates().length / 2 - 1, 0);
333
+ }
334
+ // TODO: This works but it's quite messy. If time permits,
335
+ // clean this. Maybe a Tooltip class could handle that
336
+ let olMidpoints = olGeometry.get('_midpoints');
337
+ if (olMidpoints === undefined) {
338
+ if (olGeometry instanceof OlPoint) {
339
+ olMidpoints = new Array(1);
340
+ }
341
+ else {
342
+ olMidpoints = new Array(expectedNumber);
343
+ }
344
+ olGeometry.set('_midpoints', olMidpoints, true);
345
+ return olMidpoints;
346
+ }
347
+ if (expectedNumber === 0) {
348
+ return olMidpoints;
349
+ }
350
+ if (expectedNumber === olMidpoints.length) {
351
+ return olMidpoints;
352
+ }
353
+ if (expectedNumber > olMidpoints.length) {
354
+ olMidpoints.push(...new Array(expectedNumber - olMidpoints.length));
355
+ return olMidpoints;
356
+ }
357
+ for (let i = expectedNumber; i < olMidpoints.length; i++) {
358
+ const olMidpoint = olMidpoints[expectedNumber];
359
+ if (olMidpoint !== undefined) {
360
+ clearOlMidpointTooltip(olMidpoint);
361
+ }
362
+ }
363
+ olMidpoints.splice(expectedNumber);
364
+ return olMidpoints;
365
+ }
366
+ /**
367
+ * Remove an OL midpoint's tooltip from the map
368
+ * @param olMidpoint OL Point
369
+ */
370
+ function clearOlMidpointTooltip(olMidpoint) {
371
+ const olTooltip = olMidpoint.get('_tooltip');
372
+ if (olTooltip !== undefined) {
373
+ const olMap = olTooltip.getMap();
374
+ if (olMap !== undefined) {
375
+ olMap.removeOverlay(olTooltip);
376
+ }
377
+ }
378
+ }
379
+ /**
380
+ * Add an OL overlay at each midpoint and return an array of those overlays
381
+ * @param olGeometry OL Geometry
382
+ * @returns OL overlays
383
+ */
384
+ export function updateOlTooltipsAtMidpoints(olGeometry) {
385
+ const olMidpoints = updateOlGeometryMidpoints(olGeometry);
386
+ let typeGeom = '';
387
+ if (olGeometry instanceof OlLineString) {
388
+ typeGeom = 'line-';
389
+ }
390
+ else if (olGeometry instanceof OlPolygon) {
391
+ typeGeom = 'polygone-';
392
+ }
393
+ const olTooltips = olMidpoints.map((olMidpoint) => {
394
+ let olTooltip = olMidpoint.get('_tooltip');
395
+ if (olTooltip === undefined) {
396
+ olTooltip = createOlTooltipAtPoint(olMidpoint, false, typeGeom);
397
+ }
398
+ else {
399
+ olTooltip.setPosition(olMidpoint.getFlatCoordinates());
400
+ }
401
+ return olTooltip;
402
+ });
403
+ return olTooltips;
404
+ }
405
+ /**
406
+ * Return an array of OL overlay at midspoints, if any
407
+ * @param olGeometry OL Geometry
408
+ * @returns OL overlays
409
+ */
410
+ export function getOlTooltipsAtMidpoints(olGeometry) {
411
+ const olMidpoints = getOlGeometryMidpoints(olGeometry);
412
+ return olMidpoints.map((olMidpoint) => {
413
+ return olMidpoint ? olMidpoint.get('_tooltip') : undefined;
414
+ });
415
+ }
416
+ /**
417
+ * Update an OL geometry center and return it
418
+ * @param olGeometry OL Geometry
419
+ * @returns OL point
420
+ */
421
+ export function updateOlGeometryCenter(olGeometry) {
422
+ let olCenter = olGeometry.get('_center');
423
+ const centerCoordinate = olGetCenter(olGeometry.getExtent());
424
+ if (olCenter !== undefined) {
425
+ olCenter.setCoordinates(centerCoordinate);
426
+ }
427
+ else {
428
+ olCenter = new OlPoint(centerCoordinate);
429
+ olGeometry.set('_center', olCenter);
430
+ }
431
+ return olCenter;
432
+ }
433
+ /**
434
+ * Add an OL overlay at the center of a geometry and return that overlay
435
+ * @param olGeometry OL Geometry
436
+ * @returns OL overlay
437
+ */
438
+ export function updateOlTooltipAtCenter(olGeometry) {
439
+ const olCenter = updateOlGeometryCenter(olGeometry);
440
+ let olTooltip = olCenter.get('_tooltip');
441
+ if (olTooltip === undefined) {
442
+ olTooltip = createOlTooltipAtPoint(olCenter, true);
443
+ }
444
+ else {
445
+ olTooltip.setPosition(olCenter.getFlatCoordinates());
446
+ }
447
+ return olTooltip;
448
+ }
449
+ /**
450
+ * Return an array of OL overlay at midspoints, if any
451
+ * @param olGeometry OL Geometry
452
+ * @returns OL overlays
453
+ */
454
+ export function getOlTooltipAtCenter(olGeometry) {
455
+ const olCenter = olGeometry.get('_center');
456
+ return olCenter ? olCenter.get('_tooltip') : undefined;
457
+ }
458
+ /**
459
+ * Get all the tooltips of an OL geometry
460
+ * @param olGeometry OL Geometry
461
+ * @returns OL overlays
462
+ */
463
+ export function getTooltipsOfOlGeometry(olGeometry) {
464
+ const olTooltips = [].concat(getOlTooltipsAtMidpoints(olGeometry) || []);
465
+ const olCenterTooltip = getOlTooltipAtCenter(olGeometry);
466
+ if (olCenterTooltip !== undefined) {
467
+ olTooltips.push(olCenterTooltip);
468
+ }
469
+ return olTooltips;
470
+ }
471
+ /**
472
+ * Create an OL overlay at a point and bind the overlay to the point
473
+ * @param olPoint OL Point
474
+ * @returns OL overlay
475
+ */
476
+ export function createOlTooltipAtPoint(olPoint, center = false, srcGeomType = '') {
477
+ const olTooltip = new OlOverlay({
478
+ element: document.createElement('div'),
479
+ offset: [-30, -10],
480
+ className: (center
481
+ ? [
482
+ 'igo-map-tooltip',
483
+ 'igo-map-tooltip-measure',
484
+ 'igo-map-tooltip-measure-area'
485
+ ]
486
+ : [
487
+ 'igo-map-tooltip',
488
+ 'igo-map-tooltip-measure',
489
+ `igo-map-tooltip-measure-${srcGeomType}segments`
490
+ ]).join(' '),
491
+ stopEvent: false
492
+ });
493
+ olTooltip.setPosition(olPoint.getFlatCoordinates());
494
+ olPoint.set('_tooltip', olTooltip);
495
+ return olTooltip;
496
+ }
497
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVhc3VyZS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL21lYXN1cmUvc2hhcmVkL21lYXN1cmUudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxTQUFTLE1BQU0sWUFBWSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxTQUFTLElBQUksV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JELE9BQU8sUUFBUSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RDLE9BQU8sWUFBWSxNQUFNLG9CQUFvQixDQUFDO0FBQzlDLE9BQU8sT0FBTyxNQUFNLGVBQWUsQ0FBQztBQUNwQyxPQUFPLFNBQVMsTUFBTSxpQkFBaUIsQ0FBQztBQUN4QyxPQUFPLEVBQUUsT0FBTyxJQUFJLFNBQVMsRUFBRSxTQUFTLElBQUksV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzNFLE9BQU8sS0FBSyxPQUFPLE1BQU0sVUFBVSxDQUFDO0FBRXBDLE9BQU8sRUFDTCxlQUFlLEVBQ2YsMkJBQTJCLEVBQzNCLGlCQUFpQixFQUNqQiw2QkFBNkIsRUFDOUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4Qjs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFDLEtBQWE7SUFDOUMsT0FBTyxLQUFLLEdBQUcsS0FBSyxDQUFDO0FBQ3ZCLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxLQUFhO0lBQ3hDLE9BQU8sS0FBSyxHQUFHLE1BQU0sQ0FBQztBQUN4QixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQUMsS0FBYTtJQUN6QyxPQUFPLEtBQUssR0FBRyxRQUFRLENBQUM7QUFDMUIsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsOEJBQThCLENBQUMsS0FBYTtJQUMxRCxPQUFPLEtBQUssR0FBRyxRQUFRLENBQUM7QUFD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LE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ2xCLFNBQVMsRUFBRSxDQUFDLE1BQU07WUFDaEIsQ0FBQyxDQUFDO2dCQUNFLGlCQUFpQjtnQkFDakIseUJBQXlCO2dCQUN6Qiw4QkFBOEI7YUFDL0I7WUFDSCxDQUFDLENBQUM7Z0JBQ0UsaUJBQWlCO2dCQUNqQix5QkFBeUI7Z0JBQ3pCLDJCQUEyQixXQUFXLFVBQVU7YUFDakQsQ0FDSixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDWCxTQUFTLEVBQUUsS0FBSztLQUNqQixDQUFDLENBQUM7SUFDSCxTQUFTLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUM7SUFDcEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFFbkMsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExhbmd1YWdlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUvbGFuZ3VhZ2UnO1xuXG5pbXBvcnQgT2xPdmVybGF5IGZyb20gJ29sL092ZXJsYXknO1xuaW1wb3J0IHsgZ2V0Q2VudGVyIGFzIG9sR2V0Q2VudGVyIH0gZnJvbSAnb2wvZXh0ZW50JztcbmltcG9ydCBPbENpcmNsZSBmcm9tICdvbC9nZW9tL0NpcmNsZSc7XG5pbXBvcnQgT2xMaW5lU3RyaW5nIGZyb20gJ29sL2dlb20vTGluZVN0cmluZyc7XG5pbXBvcnQgT2xQb2ludCBmcm9tICdvbC9nZW9tL1BvaW50JztcbmltcG9ydCBPbFBvbHlnb24gZnJvbSAnb2wvZ2VvbS9Qb2x5Z29uJztcbmltcG9ydCB7IGdldEFyZWEgYXMgb2xHZXRBcmVhLCBnZXRMZW5ndGggYXMgb2xHZXRMZW5ndGggfSBmcm9tICdvbC9zcGhlcmUnO1xuaW1wb3J0ICogYXMgb2xzdHlsZSBmcm9tICdvbC9zdHlsZSc7XG5cbmltcG9ydCB7XG4gIE1lYXN1cmVBcmVhVW5pdCxcbiAgTWVhc3VyZUFyZWFVbml0QWJicmV2aWF0aW9uLFxuICBNZWFzdXJlTGVuZ3RoVW5pdCxcbiAgTWVhc3VyZUxlbmd0aFVuaXRBYmJyZXZpYXRpb25cbn0gZnJvbSAnLi9tZWFzdXJlLmVudW0nO1xuaW1wb3J0IHsgTWVhc3VyZSB9IGZyb20gJy4vbWVhc3VyZS5pbnRlcmZhY2VzJztcblxuLyoqXG4gKiBDb252ZXJ0IHZhbHVlIGZyb20gbWV0ZXJzIHRvIGtpbG9tZXRlcnNcbiAqIEBwYXJhbSB2YWx1ZSBWYWx1ZSBpbiBtZXRlcnNcbiAqIEByZXR1cm5zIFZhbHVlIGluIGtpbG9tZXRlcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1ldGVyc1RvS2lsb21ldGVycyh2YWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgcmV0dXJuIHZhbHVlICogMC4wMDE7XG59XG5cbi8qKlxuICogQ29udmVydCB2YWx1ZSBmcm9tIG1ldGVycyB0byBmZWV0XG4gKiBAcGFyYW0gdmFsdWUgVmFsdWUgaW4gbWV0ZXJzXG4gKiBAcmV0dXJucyBWYWx1ZSBpbiBmZWV0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtZXRlcnNUb0ZlZXQodmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gIHJldHVybiB2YWx1ZSAqIDMuMjgwODtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IHZhbHVlIGZyb20gbWV0ZXJzIHRvIG1pbGVzXG4gKiBAcGFyYW0gdmFsdWUgVmFsdWUgaW4gbWV0ZXJzXG4gKiBAcmV0dXJucyBWYWx1ZSBpbiBtaWxlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gbWV0ZXJzVG9NaWxlcyh2YWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgcmV0dXJuIHZhbHVlICogMC4wMDA2MjE7XG59XG5cbi8qKlxuICogQ29udmVydCB2YWx1ZSBmcm9tIHNxdWFyZSBtZXRlcnMgdG8gc3F1YXJlIGtpbG9tZXRlcnNcbiAqIEBwYXJhbSB2YWx1ZSBWYWx1ZSBpbiBzcXVhcmUgbWV0ZXJzXG4gKiBAcmV0dXJucyBWYWx1ZSBpbiBzcXVhcmUga2lsb21ldGVyc1xuICovXG5leHBvcnQgZnVuY3Rpb24gc3F1YXJlTWV0ZXJzVG9TcXVhcmVLaWxvbWV0ZXJzKHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICByZXR1cm4gdmFsdWUgKiAwLjAwMDAwMTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IHZhbHVlIGZyb20gc3F1YXJlIG1ldGVycyB0byBzcXVhcmUgbWlsZXNcbiAqIEBwYXJhbSB2YWx1ZSBWYWx1ZSBpbiBzcXVhcmUgbWV0ZXJzXG4gKiBAcmV0dXJucyBWYWx1ZSBpbiBzcXVhcmUgbWlsZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNxdWFyZU1ldGVyc1RvU3F1YXJlTWlsZXModmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gIHJldHVybiB2YWx1ZSAqIDAuMDAwMDAwMzg2MTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IHZhbHVlIGZyb20gc3F1YXJlIG1ldGVycyB0byBzcXVhcmUgZmVldFxuICogQHBhcmFtIHZhbHVlIFZhbHVlIGluIHNxdWFyZSBtZXRlcnNcbiAqIEByZXR1cm5zIFZhbHVlIGluIHNxdWFyZSBmZWV0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzcXVhcmVNZXRlcnNUb1NxdWFyZUZlZXQodmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gIHJldHVybiB2YWx1ZSAqIDEwLjc2NDtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IHZhbHVlIGZyb20gc3F1YXJlIG1ldGVycyB0byBoZWN0YXJlc1xuICogQHBhcmFtIHZhbHVlIFZhbHVlIGluIHNxdWFyZSBtZXRlcnNcbiAqIEByZXR1cm5zIFZhbHVlIGluIGhlY3RhcmVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzcXVhcmVNZXRlcnNUb0hlY3RhcmVzKHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICByZXR1cm4gdmFsdWUgKiAwLjAwMDE7XG59XG5cbi8qKlxuICogQ29udmVydCB2YWx1ZSBmcm9tIHNxdWFyZSBtZXRlcnMgdG8gYWNyZXNcbiAqIEBwYXJhbSB2YWx1ZSBWYWx1ZSBpbiBzcXVhcmUgbWV0ZXJzXG4gKiBAcmV0dXJucyBWYWx1ZSBpbiBhY3Jlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gc3F1YXJlTWV0ZXJzVG9BY3Jlcyh2YWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgcmV0dXJuIHZhbHVlICogMC4wMDAyNDcxMTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IHZhbHVlIGZyb20gbWV0ZXJzIHRvIHRoZSBzcGVjaWZpZWQgbGVuZ3RoIHVuaXRcbiAqIEBwYXJhbSB2YWx1ZSBWYWx1ZSBpbiBtZXRlcnNcbiAqIEBwYXJhbSB1bml0IExlbmd0aCB1bml0XG4gKiBAcmV0dXJucyBWYWx1ZSBpbiB1bml0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtZXRlcnNUb1VuaXQoXG4gIHZhbHVlOiBudW1iZXIsXG4gIHVuaXQ6IE1lYXN1cmVMZW5ndGhVbml0XG4pOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICBjb25zdCBjb252ZXJzaW9uTWFwcGVyID0gbmV3IE1hcChbXG4gICAgW01lYXN1cmVMZW5ndGhVbml0Lk1ldGVycywgKHZhbDogbnVtYmVyKSA9PiB2YWxdLFxuICAgIFtNZWFzdXJlTGVuZ3RoVW5pdC5LaWxvbWV0ZXJzLCBtZXRlcnNUb0tpbG9tZXRlcnNdLFxuICAgIFtNZWFzdXJlTGVuZ3RoVW5pdC5NaWxlcywgbWV0ZXJzVG9NaWxlc10sXG4gICAgW01lYXN1cmVMZW5ndGhVbml0LkZlZXQsIG1ldGVyc1RvRmVldF1cbiAgXSk7XG4gIGNvbnN0IGNvbnZlcnNpb24gPSBjb252ZXJzaW9uTWFwcGVyLmdldCh1bml0KTtcblxuICByZXR1cm4gY29udmVyc2lvbiA/IGNvbnZlcnNpb24odmFsdWUpIDogdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIENvbnZlcnQgdmFsdWUgZnJvbSBzcXVhcmUgbWV0ZXJzIHRvIHRoZSBzcGVjaWZpZWQgYXJlYSB1bml0XG4gKiBAcGFyYW0gdmFsdWUgVmFsdWUgaW4gbWV0ZXJzXG4gKiBAcGFyYW0gdW5pdCBBcmVhIHVuaXRcbiAqIEByZXR1cm5zIFZhbHVlIGluIHVuaXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNxdWFyZU1ldGVyc1RvVW5pdChcbiAgdmFsdWU6IG51bWJlcixcbiAgdW5pdDogTWVhc3VyZUFyZWFVbml0XG4pOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICBjb25zdCBjb252ZXJzaW9uTWFwcGVyID0gbmV3IE1hcChbXG4gICAgW01lYXN1cmVBcmVhVW5pdC5TcXVhcmVNZXRlcnMsICh2YWw6IG51bWJlcikgPT4gdmFsXSxcbiAgICBbTWVhc3VyZUFyZWFVbml0LlNxdWFyZUtpbG9tZXRlcnMsIHNxdWFyZU1ldGVyc1RvU3F1YXJlS2lsb21ldGVyc10sXG4gICAgW01lYXN1cmVBcmVhVW5pdC5TcXVhcmVNaWxlcywgc3F1YXJlTWV0ZXJzVG9TcXVhcmVNaWxlc10sXG4gICAgW01lYXN1cmVBcmVhVW5pdC5TcXVhcmVGZWV0LCBzcXVhcmVNZXRlcnNUb1NxdWFyZUZlZXRdLFxuICAgIFtNZWFzdXJlQXJlYVVuaXQuSGVjdGFyZXMsIHNxdWFyZU1ldGVyc1RvSGVjdGFyZXNdLFxuICAgIFtNZWFzdXJlQXJlYVVuaXQuQWNyZXMsIHNxdWFyZU1ldGVyc1RvQWNyZXNdXG4gIF0pO1xuICBjb25zdCBjb252ZXJzaW9uID0gY29udmVyc2lvbk1hcHBlci5nZXQodW5pdCk7XG5cbiAgcmV0dXJuIGNvbnZlcnNpb24gPyBjb252ZXJzaW9uKHZhbHVlKSA6IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBUaGlzIG1ldGhvZCBmb3JtYXQgYSBtZWFzdXJlIHRvIGEgcmVhZGFibGUgZm9ybWF0XG4gKiBAcGFyYW0gbWVhc3VyZSBNZWFzdXJlXG4gKiBAcGFyYW0gb3B0aW9ucyBGb3JtYXR0aW5nIG9wdGlvbnNcbiAqIEByZXR1cm5zIEZvcm1hdHRlZCBtZWFzdXJlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRNZWFzdXJlKFxuICBtZWFzdXJlOiBudW1iZXIsXG4gIG9wdGlvbnM/OiB7XG4gICAgZGVjaW1hbD86IG51bWJlcjtcbiAgICB1bml0PzogTWVhc3VyZUFyZWFVbml0IHwgTWVhc3VyZUxlbmd0aFVuaXQ7XG4gICAgdW5pdEFiYnI/OiBib29sZWFuO1xuICAgIGxvY2FsZT86IHN0cmluZztcbiAgfSxcbiAgbGFuZ3VhZ2VTZXJ2aWNlPzogTGFuZ3VhZ2VTZXJ2aWNlXG4pIHtcbiAgbGV0IGRlY2ltYWwgPSBvcHRpb25zLmRlY2ltYWw7XG4gIGlmIChkZWNpbWFsID09PSB1bmRlZmluZWQgfHwgZGVjaW1hbCA8IDApIHtcbiAgICBkZWNpbWFsID0gMTtcbiAgfVxuXG4gIGNvbnN0IHBhcnRzID0gW107XG4gIGlmIChvcHRpb25zLmxvY2FsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcGFydHMucHVzaChcbiAgICAgIG1lYXN1cmUudG9Mb2NhbGVTdHJpbmcob3B0aW9ucy5sb2NhbGUsIHtcbiAgICAgICAgbWluaW11bUZyYWN0aW9uRGlnaXRzOiBkZWNpbWFsLFxuICAgICAgICBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IGRlY2ltYWxcbiAgICAgIH0pXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICBwYXJ0cy5wdXNoKG1lYXN1cmUudG9GaXhlZChkZWNpbWFsKS50b1N0cmluZygpKTtcbiAgfVxuXG4gIGlmIChvcHRpb25zLnVuaXQgIT09IHVuZGVmaW5lZCAmJiBvcHRpb25zLnVuaXRBYmJyID09PSB0cnVlKSB7XG4gICAgaWYgKGxhbmd1YWdlU2VydmljZSkge1xuICAgICAgcGFydHMucHVzaChcbiAgICAgICAgTWVhc3VyZUxlbmd0aFVuaXRBYmJyZXZpYXRpb25bb3B0aW9ucy51bml0XVxuICAgICAgICAgID8gbGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICAgICAnaWdvLmdlby5tZWFzdXJlLicgKyBNZWFzdXJlTGVuZ3RoVW5pdEFiYnJldmlhdGlvbltvcHRpb25zLnVuaXRdXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBsYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAgICdpZ28uZ2VvLm1lYXN1cmUuJyArIE1lYXN1cmVBcmVhVW5pdEFiYnJldmlhdGlvbltvcHRpb25zLnVuaXRdXG4gICAgICAgICAgICApXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJ0cy5wdXNoKFxuICAgICAgICBNZWFzdXJlTGVuZ3RoVW5pdEFiYnJldmlhdGlvbltvcHRpb25zLnVuaXRdIHx8XG4gICAgICAgICAgTWVhc3VyZUFyZWFVbml0QWJicmV2aWF0aW9uW29wdGlvbnMudW5pdF1cbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHBhcnRzLmZpbHRlcigocCkgPT4gcCAhPT0gdW5kZWZpbmVkKS5qb2luKCcgJyk7XG59XG5cbi8qKlxuICogQ29tcHV0ZSBiZXN0IGxlbmd0aCBtZWFzdXJlIHVuaXQgZm9yIGEgZ2l2ZW4gbWVhc3VyZSBpbiBtZXRlcnNcbiAqIEBwYXJhbSB2YWx1ZSBWYWx1ZSBpbiBtZXRlcnNcbiAqIEByZXR1cm5zIE1lYXN1cmUgdW5pdFxuICovXG5leHBvcnQgZnVuY3Rpb24gY29tcHV0ZUJlc3RMZW5ndGhVbml0KHZhbHVlOiBudW1iZXIpOiBNZWFzdXJlTGVuZ3RoVW5pdCB7XG4gIGxldCB1bml0ID0gTWVhc3VyZUxlbmd0aFVuaXQuTWV0ZXJzO1xuICBsZXQgY29udmVydGVkID0gdmFsdWU7XG4gIGNvbnN0IHBvc3NpYmxlVW5pdHMgPSBbTWVhc3VyZUxlbmd0aFVuaXQuS2lsb21ldGVyc107XG4gIHdoaWxlIChjb252ZXJ0ZWQgPiAxMDAwICYmIHBvc3NpYmxlVW5pdHMubGVuZ3RoID4gMCkge1xuICAgIHVuaXQgPSBwb3NzaWJsZVVuaXRzLnBvcCgpO1xuICAgIGNvbnZlcnRlZCA9IG1ldGVyc1RvVW5pdCh2YWx1ZSwgdW5pdCk7XG4gIH1cbiAgcmV0dXJuIHVuaXQ7XG59XG5cbi8qKlxuICogQ29tcHV0ZSBiZXN0IGxlbmd0aCBtZWFzdXJlIHVuaXQgZm9yIGEgZ2l2ZW4gbWVhc3VyZSBpbiBzcXVhcmUgbWV0ZXJzXG4gKiBAcGFyYW0gdmFsdWUgVmFsdWUgaW4gbWV0ZXJzXG4gKiBAcmV0dXJucyBNZWFzdXJlIHVuaXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbXB1dGVCZXN0QXJlYVVuaXQodmFsdWU6IG51bWJlcik6IE1lYXN1cmVBcmVhVW5pdCB7XG4gIGxldCB1bml0ID0gTWVhc3VyZUFyZWFVbml0LlNxdWFyZU1ldGVycztcbiAgbGV0IGNvbnZlcnRlZCA9IHZhbHVlO1xuICBjb25zdCBwb3NzaWJsZVVuaXRzID0gW01lYXN1cmVBcmVhVW5pdC5TcXVhcmVLaWxvbWV0ZXJzXTtcbiAgd2hpbGUgKGNvbnZlcnRlZCA+IDEwMDAwMDAgJiYgcG9zc2libGVVbml0cy5sZW5ndGggPiAwKSB7XG4gICAgdW5pdCA9IHBvc3NpYmxlVW5pdHMucG9wKCk7XG4gICAgY29udmVydGVkID0gc3F1YXJlTWV0ZXJzVG9Vbml0KHZhbHVlLCB1bml0KTtcbiAgfVxuICByZXR1cm4gdW5pdDtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBkZWZhdWx0IHN0eWxlIGZvciBhIG1lYXN1cmUgaW50ZXJhY3Rpb25cbiAqIEByZXR1cm5zIE9MIHN0eWxlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNZWFzdXJlSW50ZXJhY3Rpb25TdHlsZSgpOiBvbHN0eWxlLlN0eWxlIHtcbiAgcmV0dXJuIG5ldyBvbHN0eWxlLlN0eWxlKHtcbiAgICBzdHJva2U6IG5ldyBvbHN0eWxlLlN0cm9rZSh7XG4gICAgICBjb2xvcjogJyNmZmNjMzMnLFxuICAgICAgbGluZURhc2g6IFsxMCwgMTBdLFxuICAgICAgd2lkdGg6IDJcbiAgICB9KSxcbiAgICBmaWxsOiBuZXcgb2xzdHlsZS5GaWxsKHtcbiAgICAgIGNvbG9yOiAncmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpJ1xuICAgIH0pLFxuICAgIGltYWdlOiBuZXcgb2xzdHlsZS5DaXJjbGUoe1xuICAgICAgcmFkaXVzOiA1LFxuICAgICAgc3Ryb2tlOiBuZXcgb2xzdHlsZS5TdHJva2Uoe1xuICAgICAgICBjb2xvcjogJyNmZmNjMzMnXG4gICAgICB9KSxcbiAgICAgIGZpbGw6IG5ldyBvbHN0eWxlLkZpbGwoe1xuICAgICAgICBjb2xvcjogJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSdcbiAgICAgIH0pXG4gICAgfSlcbiAgfSk7XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgZGVmYXVsdCBzdHlsZSBmb3IgYSBtZWFzdXJlIGxheWVyXG4gKiBAcmV0dXJucyBPTCBzdHlsZVxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTWVhc3VyZUxheWVyU3R5bGUoKTogb2xzdHlsZS5TdHlsZSB7XG4gIHJldHVybiBuZXcgb2xzdHlsZS5TdHlsZSh7XG4gICAgc3Ryb2tlOiBuZXcgb2xzdHlsZS5TdHJva2Uoe1xuICAgICAgY29sb3I6ICcjZmZjYzMzJyxcbiAgICAgIHdpZHRoOiAyXG4gICAgfSksXG4gICAgZmlsbDogbmV3IG9sc3R5bGUuRmlsbCh7XG4gICAgICBjb2xvcjogJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSdcbiAgICB9KVxuICB9KTtcbn1cblxuLyoqXG4gKiBDb21wdXRlIHRoZSBsZW5ndGggaW4gbWV0ZXJzIG9mIGFuIE9MIGdlb21ldHJ5IHdpdGggYSBnaXZlbiBwcm9qZWN0aW9uXG4gKiBAcGFyYW0gb2xHZW9tZXRyeSBPbCBnZW9tZXRyeVxuICogQHBhcmFtIHByb2plY3Rpb24gb2xHZW9tZXRyeSdzIHByb2plY3Rpb25cbiAqIEByZXR1cm5zIExlbmd0aCBpbiBtZXRlcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lYXN1cmVPbEdlb21ldHJ5TGVuZ3RoKFxuICBvbEdlb21ldHJ5OiBPbFBvaW50IHwgT2xMaW5lU3RyaW5nIHwgT2xQb2x5Z29uIHwgT2xDaXJjbGUsXG4gIHByb2plY3Rpb246IHN0cmluZ1xuKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9sR2VvbWV0cnkgaW5zdGFuY2VvZiBPbFBvaW50KSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBpZiAob2xHZW9tZXRyeS5nZXRGbGF0Q29vcmRpbmF0ZXMoKS5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIHJldHVybiBvbEdldExlbmd0aChvbEdlb21ldHJ5LCB7IHByb2plY3Rpb24gfSk7XG59XG5cbi8qKlxuICogQ29tcHV0ZSB0aGUgYXJlYSBpbiBzcXVhcmUgbWV0ZXJzIG9mIGFuIE9MIGdlb21ldHJ5IHdpdGggYSBnaXZlbiBwcm9qZWN0aW9uXG4gKiBAcGFyYW0gb2xHZW9tZXRyeSBPbCBnZW9tZXRyeVxuICogQHBhcmFtIHByb2plY3Rpb24gb2xHZW9tZXRyeSdzIHByb2plY3Rpb25cbiAqIEByZXR1cm5zIEFyZWEgaW4gc3F1YXJlIG1ldGVyc1xuICovXG5leHBvcnQgZnVuY3Rpb24gbWVhc3VyZU9sR2VvbWV0cnlBcmVhKFxuICBvbEdlb21ldHJ5OiBPbFBvaW50IHwgT2xMaW5lU3RyaW5nIHwgT2xQb2x5Z29uIHwgT2xDaXJjbGUsXG4gIHByb2plY3Rpb246IHN0cmluZ1xuKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9sR2VvbWV0cnkgaW5zdGFuY2VvZiBPbFBvaW50IHx8IG9sR2VvbWV0cnkgaW5zdGFuY2VvZiBPbExpbmVTdHJpbmcpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGlmIChvbEdlb21ldHJ5LmdldEZsYXRDb29yZGluYXRlcygpLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgcmV0dXJuIG9sR2V0QXJlYShvbEdlb21ldHJ5LCB7IHByb2plY3Rpb24gfSk7XG59XG5cbi8qKlxuICogQ29tcHV0ZSB0aGUgYXJlYSAoc3F1YXJlIG1ldGVycyksIGxlbmd0aCAobWV0ZXJzKSBhbmQgbGFzdCBsZW5ndGggKG1ldGVycylcbiAqIG9mIGFuIE9MIGdlb21ldHJ5IHdpdGggYSBnaXZlbiBwcm9qZWN0aW9uLlxuICogQHBhcmFtIG9sR2VvbWV0cnkgT2wgZ2VvbWV0cnlcbiAqIEBwYXJhbSBwcm9qZWN0aW9uIG9sR2VvbWV0cnkncyBwcm9qZWN0aW9uXG4gKiBAcmV0dXJucyBDb21wdXRlZCBtZWFzdXJlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtZWFzdXJlT2xHZW9tZXRyeShcbiAgb2xHZW9tZXRyeTogT2xQb2ludCB8IE9sTGluZVN0cmluZyB8IE9sUG9seWdvbiB8IE9sQ2lyY2xlLFxuICBwcm9qZWN0aW9uOiBzdHJpbmdcbik6IE1lYXN1cmUge1xuICBjb25zdCBsZW5ndGggPSBtZWFzdXJlT2xHZW9tZXRyeUxlbmd0aChvbEdlb21ldHJ5LCBwcm9qZWN0aW9uKTtcbiAgY29uc3QgYXJlYSA9IG1lYXN1cmVPbEdlb21ldHJ5QXJlYShvbEdlb21ldHJ5LCBwcm9qZWN0aW9uKTtcblxuICBjb25zdCBsZW5ndGhzID0gW107XG4gIGNvbnN0IGNvb3JkaW5hdGVzID0gb2xHZW9tZXRyeS5nZXRGbGF0Q29vcmRpbmF0ZXMoKTtcbiAgY29uc3QgY29vcmRpbmF0ZXNMZW5ndGggPSBjb29yZGluYXRlcy5sZW5ndGg7XG4gIGZvciAobGV0IGkgPSAwOyBpIDw9IGNvb3JkaW5hdGVzTGVuZ3RoIC0gNDsgaSArPSAyKSB7XG4gICAgY29uc3Qgb2xTZWdtZW50ID0gbmV3IE9sTGluZVN0cmluZyhbXG4gICAgICBbY29vcmRpbmF0ZXNbaV0sIGNvb3JkaW5hdGVzW2kgKyAxXV0sXG4gICAgICBbY29vcmRpbmF0ZXNbaSArIDJdLCBjb29yZGluYXRlc1tpICsgM11dXG4gICAgXSk7XG5cbiAgICBsZW5ndGhzLnB1c2gobWVhc3VyZU9sR2VvbWV0cnlMZW5ndGgob2xTZWdtZW50LCBwcm9qZWN0aW9uKSk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGFyZWEsXG4gICAgbGVuZ3RoLFxuICAgIGxlbmd0aHNcbiAgfTtcbn1cblxuLyoqXG4gKiBVcGRhdGUgYW4gT0wgZ2VvbWV0cnkgbWlkcG9pbnRzIGFuZCByZXR1cm4gYW4gYXJyYXkgb2YgdGhvc2UgcG9pbnRzXG4gKiBAcGFyYW0gb2xHZW9tZXRyeSBPTCBHZW9tZXRyeVxuICogQHJldHVybnMgT0wgcG9pbnRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVPbEdlb21ldHJ5TWlkcG9pbnRzKFxuICBvbEdlb21ldHJ5OiBPbFBvaW50IHwgT2xMaW5lU3RyaW5nIHwgT2xQb2x5Z29uIHwgT2xDaXJjbGVcbik6IE9sUG9pbnRbXSB7XG4gIGxldCBvbE1pZHBvaW50cztcbiAgaWYgKG9sR2VvbWV0cnkgaW5zdGFuY2VvZiBPbFBvaW50KSB7XG4gICAgY29uc3Qgb2xNaWRwb2ludFBvaW50ID0gbmV3IE9sUG9pbnQob2xHZW9tZXRyeS5nZXRGbGF0Q29vcmRpbmF0ZXMoKSk7XG4gICAgb2xNaWRwb2ludHMgPSBuZXcgQXJyYXkoMSk7XG4gICAgb2xNaWRwb2ludHNbMF0gPSBvbE1pZHBvaW50UG9pbnQ7XG4gIH0gZWxzZSB7XG4gICAgb2xNaWRwb2ludHMgPSBnZXRPbEdlb21ldHJ5TWlkcG9pbnRzKG9sR2VvbWV0cnkpO1xuICAgIC8vIFRPRE86IGhhbmRsZSBtdWx0aSBnZW9tZXRyaWVzXG4gICAgY29uc3QgY29vcmRpbmF0ZXMgPSBvbEdlb21ldHJ5LmdldEZsYXRDb29yZGluYXRlcygpO1xuICAgIGNvbnN0IG1pZHBvaW50c0xlbmd0aCA9IG9sTWlkcG9pbnRzLmxlbmd0aDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1pZHBvaW50c0xlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBqID0gaSAqIDI7XG4gICAgICBjb25zdCBvbFNlZ21lbnQgPSBuZXcgT2xMaW5lU3RyaW5nKFtcbiAgICAgICAgW2Nvb3JkaW5hdGVzW2pdLCBjb29yZGluYXRlc1tqICsgMV1dLFxuICAgICAgICBbY29vcmRpbmF0ZXNbaiArIDJdLCBjb29yZGluYXRlc1tqICsgM11dXG4gICAgICBdKTtcblxuICAgICAgY29uc3QgbWlkcG9pbnRDb29yZGluYXRlID0gb2xTZWdtZW50LmdldENvb3JkaW5hdGVBdCgwLjUpO1xuICAgICAgY29uc3Qgb2xNaWRwb2ludCA9IG9sTWlkcG9pbnRzW2ldO1xuICAgICAgaWYgKG9sTWlkcG9pbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBvbE1pZHBvaW50LnNldENvb3JkaW5hdGVzKG1pZHBvaW50Q29vcmRpbmF0ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvbE1pZHBvaW50c1tpXSA9IG5ldyBPbFBvaW50KG1pZHBvaW50Q29vcmRpbmF0ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBvbE1pZHBvaW50cztcbn1cblxuLyoqXG4gKiBDbGVhciBhbiBPTCBnZW9tZXRyeSBtaWRwb2ludHMgYW5kIHJldHVybiBhbiBhcnJheSBvZiB0aG9zZSBwb2ludHNcbiAqIEBwYXJhbSBvbEdlb21ldHJ5IE9MIEdlb21ldHJ5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbGVhck9sR2VvbWV0cnlNaWRwb2ludHMoXG4gIG9sR2VvbWV0cnk6IE9sUG9pbnQgfCBPbExpbmVTdHJpbmcgfCBPbFBvbHlnb24gfCBPbENpcmNsZVxuKSB7XG4gIGNvbnN0IG9sTWlkcG9pbnRzID0gb2xHZW9tZXRyeS5nZXQoJ19taWRwb2ludHMnKSB8fCBbXTtcbiAgY29uc3QgbWlkcG9pbnRzTGVuZ3RoID0gb2xNaWRwb2ludHMubGVuZ3RoO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IG1pZHBvaW50c0xlbmd0aDsgaSsrKSB7XG4gICAgY29uc3Qgb2xNaWRwb2ludCA9IG9sTWlkcG9pbnRzW2ldO1xuICAgIGlmIChvbE1pZHBvaW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmIChvbE1pZHBvaW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY2xlYXJPbE1pZHBvaW50VG9vbHRpcChvbE1pZHBvaW50KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvbEdlb21ldHJ5LnNldCgnX21pZHBvaW50cycsIHVuZGVmaW5lZCwgdHJ1ZSk7XG5cbiAgcmV0dXJuIG9sTWlkcG9pbnRzO1xufVxuXG4vKipcbiAqIFJldHVybiBhbiBhcnJheSBvZiAgT0wgZ2VvbWV0cnkgbWlkcG9pbnRzLCBpZiBhbnlcbiAqIEBwYXJhbSBvbEdlb21ldHJ5IE9MIEdlb21ldHJ5XG4gKiBAcmV0dXJucyBPTCBwb2ludHNcbiAqL1xuZnVuY3Rpb24gZ2V0T2xHZW9tZXRyeU1pZHBvaW50cyhcbiAgb2xHZW9tZXRyeTogT2xQb2ludCB8IE9sTGluZVN0cmluZyB8IE9sUG9seWdvbiB8IE9sQ2lyY2xlXG4pOiBPbFBvaW50W10ge1xuICBsZXQgZXhwZWN0ZWROdW1iZXI7XG4gIGlmIChvbEdlb21ldHJ5IGluc3RhbmNlb2YgT2xDaXJjbGUpIHtcbiAgICBleHBlY3RlZE51bWJlciA9IDA7XG4gIH0gZWxzZSB7XG4gICAgZXhwZWN0ZWROdW1iZXIgPSBNYXRoLm1heChcbiAgICAgIG9sR2VvbWV0cnkuZ2V0RmxhdENvb3JkaW5hdGVzKCkubGVuZ3RoIC8gMiAtIDEsXG4gICAgICAwXG4gICAgKTtcbiAgfVxuICAvLyBUT0RPOiBUaGlzIHdvcmtzIGJ1dCBpdCdzIHF1aXRlIG1lc3N5LiBJZiB0aW1lIHBlcm1pdHMsXG4gIC8vIGNsZWFuIHRoaXMuIE1heWJlIGEgVG9vbHRpcCBjbGFzcyBjb3VsZCBoYW5kbGUgdGhhdFxuICBsZXQgb2xNaWRwb2ludHMgPSBvbEdlb21ldHJ5LmdldCgnX21pZHBvaW50cycpO1xuXG4gIGlmIChvbE1pZHBvaW50cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKG9sR2VvbWV0cnkgaW5zdGFuY2VvZiBPbFBvaW50KSB7XG4gICAgICBvbE1pZHBvaW50cyA9IG5ldyBBcnJheSgxKTtcbiAgICB9IGVsc2Uge1xuICAgICAgb2xNaWRwb2ludHMgPSBuZXcgQXJyYXkoZXhwZWN0ZWROdW1iZXIpO1xuICAgIH1cbiAgICBvbEdlb21ldHJ5LnNldCgnX21pZHBvaW50cycsIG9sTWlkcG9pbnRzLCB0cnVlKTtcbiAgICByZXR1cm4gb2xNaWRwb2ludHM7XG4gIH1cblxuICBpZiAoZXhwZWN0ZWROdW1iZXIgPT09IDApIHtcbiAgICByZXR1cm4gb2xNaWRwb2ludHM7XG4gIH1cblxuICBpZiAoZXhwZWN0ZWROdW1iZXIgPT09IG9sTWlkcG9pbnRzLmxlbmd0aCkge1xuICAgIHJldHVybiBvbE1pZHBvaW50cztcbiAgfVxuXG4gIGlmIChleHBlY3RlZE51bWJlciA+IG9sTWlkcG9pbnRzLmxlbmd0aCkge1xuICAgIG9sTWlkcG9pbnRzLnB1c2goLi4ubmV3IEFycmF5KGV4cGVjdGVkTnVtYmVyIC0gb2xNaWRwb2ludHMubGVuZ3RoKSk7XG4gICAgcmV0dXJuIG9sTWlkcG9pbnRzO1xuICB9XG5cbiAgZm9yIChsZXQgaSA9IGV4cGVjdGVkTnVtYmVyOyBpIDwgb2xNaWRwb2ludHMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBvbE1pZHBvaW50ID0gb2xNaWRwb2ludHNbZXhwZWN0ZWROdW1iZXJdO1xuICAgIGlmIChvbE1pZHBvaW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNsZWFyT2xNaWRwb2ludFRvb2x0aXAob2xNaWRwb2ludCk7XG4gICAgfVxuICB9XG4gIG9sTWlkcG9pbnRzLnNwbGljZShleHBlY3RlZE51bWJlcik7XG5cbiAgcmV0dXJuIG9sTWlkcG9pbnRzO1xufVxuXG4vKipcbiAqIFJlbW92ZSBhbiBPTCBtaWRwb2ludCdzIHRvb2x0aXAgZnJvbSB0aGUgbWFwXG4gKiBAcGFyYW0gb2xNaWRwb2ludCBPTCBQb2ludFxuICovXG5mdW5jdGlvbiBjbGVhck9sTWlkcG9pbnRUb29sdGlwKG9sTWlkcG9pbnQ6IE9sUG9pbnQpIHtcbiAgY29uc3Qgb2xUb29sdGlwID0gb2xNaWRwb2ludC5nZXQoJ190b29sdGlwJyk7XG4gIGlmIChvbFRvb2x0aXAgIT09IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IG9sTWFwID0gb2xUb29sdGlwLmdldE1hcCgpO1xuICAgIGlmIChvbE1hcCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBvbE1hcC5yZW1vdmVPdmVybGF5KG9sVG9vbHRpcCk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQWRkIGFuIE9MIG92ZXJsYXkgYXQgZWFjaCBtaWRwb2ludCBhbmQgcmV0dXJuIGFuIGFycmF5IG9mIHRob3NlIG92ZXJsYXlzXG4gKiBAcGFyYW0gb2xHZW9tZXRyeSBPTCBHZW9tZXRyeVxuICogQHJldHVybnMgT0wgb3ZlcmxheXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZU9sVG9vbHRpcHNBdE1pZHBvaW50cyhcbiAgb2xHZW9tZXRyeTogT2xQb2ludCB8IE9sTGluZVN0cmluZyB8IE9sUG9seWdvbiB8IE9sQ2lyY2xlXG4pOiBPbE92ZXJsYXlbXSB7XG4gIGNvbnN0IG9sTWlkcG9pbnRzID0gdXBkYXRlT2xHZW9tZXRyeU1pZHBvaW50cyhvbEdlb21ldHJ5KTtcbiAgbGV0IHR5cGVHZW9tID0gJyc7XG4gIGlmIChvbEdlb21ldHJ5IGluc3RhbmNlb2YgT2xMaW5lU3RyaW5nKSB7XG4gICAgdHlwZUdlb20gPSAnbGluZS0nO1xuICB9IGVsc2UgaWYgKG9sR2VvbWV0cnkgaW5zdGFuY2VvZiBPbFBvbHlnb24pIHtcbiAgICB0eXBlR2VvbSA9ICdwb2x5Z29uZS0nO1xuICB9XG4gIGNvbnN0IG9sVG9vbHRpcHMgPSBvbE1pZHBvaW50cy5tYXAoKG9sTWlkcG9pbnQ6IE9sUG9pbnQpID0+IHtcbiAgICBsZXQgb2xUb29sdGlwID0gb2xNaWRwb2ludC5nZXQoJ190b29sdGlwJyk7XG4gICAgaWYgKG9sVG9vbHRpcCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBvbFRvb2x0aXAgPSBjcmVhdGVPbFRvb2x0aXBBdFBvaW50KG9sTWlkcG9pbnQsIGZhbHNlLCB0eXBlR2VvbSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG9sVG9vbHRpcC5zZXRQb3NpdGlvbihvbE1pZHBvaW50LmdldEZsYXRDb29yZGluYXRlcygpKTtcbiAgICB9XG4gICAgcmV0dXJuIG9sVG9vbHRpcDtcbiAgfSk7XG4gIHJldHVybiBvbFRvb2x0aXBzO1xufVxuXG4vKipcbiAqIFJldHVybiBhbiBhcnJheSBvZiBPTCBvdmVybGF5IGF0IG1pZHNwb2ludHMsIGlmIGFueVxuICogQHBhcmFtIG9sR2VvbWV0cnkgT0wgR2VvbWV0cnlcbiAqIEByZXR1cm5zIE9MIG92ZXJsYXlzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRPbFRvb2x0aXBzQXRNaWRwb2ludHMoXG4gIG9sR2VvbWV0cnk6IE9sUG9pbnQgfCBPbExpbmVTdHJpbmcgfCBPbFBvbHlnb24gfCBPbENpcmNsZVxuKTogT2xPdmVybGF5W10ge1xuICBjb25zdCBvbE1pZHBvaW50cyA9IGdldE9sR2VvbWV0cnlNaWRwb2ludHMob2xHZW9tZXRyeSk7XG4gIHJldHVybiBvbE1pZHBvaW50cy5tYXAoKG9sTWlkcG9pbnQ6IE9sUG9pbnQpID0+IHtcbiAgICByZXR1cm4gb2xNaWRwb2ludCA/IG9sTWlkcG9pbnQuZ2V0KCdfdG9vbHRpcCcpIDogdW5kZWZpbmVkO1xuICB9KTtcbn1cblxuLyoqXG4gKiBVcGRhdGUgYW4gT0wgZ2VvbWV0cnkgY2VudGVyIGFuZCByZXR1cm4gaXRcbiAqIEBwYXJhbSBvbEdlb21ldHJ5IE9MIEdlb21ldHJ5XG4gKiBAcmV0dXJucyBPTCBwb2ludFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlT2xHZW9tZXRyeUNlbnRlcihcbiAgb2xHZW9tZXRyeTogT2xQb2ludCB8IE9sTGluZVN0cmluZyB8IE9sUG9seWdvbiB8IE9sQ2lyY2xlXG4pOiBPbFBvaW50IHtcbiAgbGV0IG9sQ2VudGVyID0gb2xHZW9tZXRyeS5nZXQoJ19jZW50ZXInKTtcbiAgY29uc3QgY2VudGVyQ29vcmRpbmF0ZSA9IG9sR2V0Q2VudGVyKG9sR2VvbWV0cnkuZ2V0RXh0ZW50KCkpO1xuICBpZiAob2xDZW50ZXIgIT09IHVuZGVmaW5lZCkge1xuICAgIG9sQ2VudGVyLnNldENvb3JkaW5hdGVzKGNlbnRlckNvb3JkaW5hdGUpO1xuICB9IGVsc2Uge1xuICAgIG9sQ2VudGVyID0gbmV3IE9sUG9pbnQoY2VudGVyQ29vcmRpbmF0ZSk7XG4gICAgb2xHZW9tZXRyeS5zZXQoJ19jZW50ZXInLCBvbENlbnRlcik7XG4gIH1cblxuICByZXR1cm4gb2xDZW50ZXI7XG59XG5cbi8qKlxuICogQWRkIGFuIE9MIG92ZXJsYXkgYXQgdGhlIGNlbnRlciBvZiBhIGdlb21ldHJ5IGFuZCByZXR1cm4gdGhhdCBvdmVybGF5XG4gKiBAcGFyYW0gb2xHZW9tZXRyeSBPTCBHZW9tZXRyeVxuICogQHJldHVybnMgT0wgb3ZlcmxheVxuICovXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlT2xUb29sdGlwQXRDZW50ZXIoXG4gIG9sR2VvbWV0cnk6IE9sUG9pbnQgfCBPbExpbmVTdHJpbmcgfCBPbFBvbHlnb24gfCBPbENpcmNsZVxuKTogT2xPdmVybGF5IHtcbiAgY29uc3Qgb2xDZW50ZXIgPSB1cGRhdGVPbEdlb21ldHJ5Q2VudGVyKG9sR2VvbWV0cnkpO1xuICBsZXQgb2xUb29sdGlwID0gb2xDZW50ZXIuZ2V0KCdfdG9vbHRpcCcpO1xuICBpZiAob2xUb29sdGlwID09PSB1bmRlZmluZWQpIHtcbiAgICBvbFRvb2x0aXAgPSBjcmVhdGVPbFRvb2x0aXBBdFBvaW50KG9sQ2VudGVyLCB0cnVlKTtcbiAgfSBlbHNlIHtcbiAgICBvbFRvb2x0aXAuc2V0UG9zaXRpb24ob2xDZW50ZXIuZ2V0RmxhdENvb3JkaW5hdGVzKCkpO1xuICB9XG4gIHJldHVybiBvbFRvb2x0aXA7XG59XG5cbi8qKlxuICogUmV0dXJuIGFuIGFycmF5IG9mIE9MIG92ZXJsYXkgYXQgbWlkc3BvaW50cywgaWYgYW55XG4gKiBAcGFyYW0gb2xHZW9tZXRyeSBPTCBHZW9tZXRyeVxuICogQHJldHVybnMgT0wgb3ZlcmxheXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE9sVG9vbHRpcEF0Q2VudGVyKFxuICBvbEdlb21ldHJ5OiBPbFBvaW50IHwgT2xMaW5lU3RyaW5nIHwgT2xQb2x5Z29uIHwgT2xDaXJjbGVcbik6IE9sT3ZlcmxheSB7XG4gIGNvbnN0IG9sQ2VudGVyID0gb2xHZW9tZXRyeS5nZXQoJ19jZW50ZXInKTtcbiAgcmV0dXJuIG9sQ2VudGVyID8gb2xDZW50ZXIuZ2V0KCdfdG9vbHRpcCcpIDogdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEdldCBhbGwgdGhlIHRvb2x0aXBzIG9mIGFuIE9MIGdlb21ldHJ5XG4gKiBAcGFyYW0gb2xHZW9tZXRyeSBPTCBHZW9tZXRyeVxuICogQHJldHVybnMgT0wgb3ZlcmxheXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRvb2x0aXBzT2ZPbEdlb21ldHJ5KFxuICBvbEdlb21ldHJ5OiBPbFBvaW50IHwgT2xMaW5lU3RyaW5nIHwgT2xQb2x5Z29uIHwgT2xDaXJjbGVcbik6IE9sT3ZlcmxheVtdIHtcbiAgY29uc3Qgb2xUb29sdGlwcyA9IFtdLmNvbmNhdChnZXRPbFRvb2x0aXBzQXRNaWRwb2ludHMob2xHZW9tZXRyeSkgfHwgW10pO1xuICBjb25zdCBvbENlbnRlclRvb2x0aXAgPSBnZXRPbFRvb2x0aXBBdENlbnRlcihvbEdlb21ldHJ5KTtcbiAgaWYgKG9sQ2VudGVyVG9vbHRpcCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgb2xUb29sdGlwcy5wdXNoKG9sQ2VudGVyVG9vbHRpcCk7XG4gIH1cbiAgcmV0dXJuIG9sVG9vbHRpcHM7XG59XG5cbi8qKlxuICogQ3JlYXRlIGFuIE9MIG92ZXJsYXkgYXQgYSBwb2ludCBhbmQgYmluZCB0aGUgb3ZlcmxheSB0byB0aGUgcG9pbnRcbiAqIEBwYXJhbSBvbFBvaW50IE9MIFBvaW50XG4gKiBAcmV0dXJucyBPTCBvdmVybGF5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVPbFRvb2x0aXBBdFBvaW50KFxuICBvbFBvaW50OiBPbFBvaW50LFxuICBjZW50ZXIgPSBmYWxzZSxcbiAgc3JjR2VvbVR5cGUgPSAnJ1xuKTogT2xPdmVybGF5IHtcbiAgY29uc3Qgb2xUb29sdGlwID0gbmV3IE9sT3ZlcmxheSh7XG4gICAgZWxlbWVudDogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JyksXG4gICAgb2Zmc2V0OiBbLTMwLCAtMTBdLFxuICAgIGNsYXNzTmFtZTogKGNlbnRlclxuICAgICAgPyBbXG4gICAgICAgICAgJ2lnby1tYXAtdG9vbHRpcCcsXG4gICAgICAgICAgJ2lnby1tYXAtdG9vbHRpcC1tZWFzdXJlJyxcbiAgICAgICAgICAnaWdvLW1hcC10b29sdGlwLW1lYXN1cmUtYXJlYSdcbiAgICAgICAgXVxuICAgICAgOiBbXG4gICAgICAgICAgJ2lnby1tYXAtdG9vbHRpcCcsXG4gICAgICAgICAgJ2lnby1tYXAtdG9vbHRpcC1tZWFzdXJlJyxcbiAgICAgICAgICBgaWdvLW1hcC10b29sdGlwLW1lYXN1cmUtJHtzcmNHZW9tVHlwZX1zZWdtZW50c2BcbiAgICAgICAgXVxuICAgICkuam9pbignICcpLFxuICAgIHN0b3BFdmVudDogZmFsc2VcbiAgfSk7XG4gIG9sVG9vbHRpcC5zZXRQb3NpdGlvbihvbFBvaW50LmdldEZsYXRDb29yZGluYXRlcygpKTtcbiAgb2xQb2ludC5zZXQoJ190b29sdGlwJywgb2xUb29sdGlwKTtcblxuICByZXR1cm4gb2xUb29sdGlwO1xufVxuIl19
@@ -0,0 +1,4 @@
1
+ export * from './shared';
2
+ export * from './metadata.module';
3
+ export * from './metadata-button';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9tZXRhZGF0YS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NoYXJlZCc7XG5leHBvcnQgKiBmcm9tICcuL21ldGFkYXRhLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL21ldGFkYXRhLWJ1dHRvbic7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './metadata-button.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9tZXRhZGF0YS9tZXRhZGF0YS1idXR0b24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbWV0YWRhdGEtYnV0dG9uLmNvbXBvbmVudCc7XG4iXX0=