@igo2/geo 18.0.0-next.9 → 18.0.1-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (607) hide show
  1. package/fesm2022/igo2-geo.mjs +23016 -22107
  2. package/fesm2022/igo2-geo.mjs.map +1 -1
  3. package/lib/datasource/shared/capabilities.service.d.ts +7 -2
  4. package/lib/datasource/shared/datasources/wfs-datasource.interface.d.ts +2 -2
  5. package/lib/datasource/shared/datasources/wms-datasource.interface.d.ts +5 -5
  6. package/lib/directions/directions-buttons/directions-buttons.component.d.ts +57 -20
  7. package/lib/directions/directions-inputs/directions-inputs.component.d.ts +115 -13
  8. package/lib/directions/directions-results/directions-results.component.d.ts +50 -16
  9. package/lib/directions/directions-sources/directions-source.d.ts +2 -2
  10. package/lib/directions/directions-sources/osrm-directions-source.d.ts +2 -2
  11. package/lib/directions/directions.component.d.ts +5 -5
  12. package/lib/directions/shared/directions.enum.d.ts +42 -1
  13. package/lib/directions/shared/directions.interface.d.ts +50 -25
  14. package/lib/directions/shared/directions.service.d.ts +46 -8
  15. package/lib/directions/shared/directions.utils.d.ts +102 -23
  16. package/lib/directions/shared/store.d.ts +3 -3
  17. package/lib/download/download-button/download-button.component.d.ts +4 -8
  18. package/lib/download/shared/download.service.d.ts +1 -1
  19. package/lib/draw/draw/draw.component.d.ts +2 -2
  20. package/lib/draw/shared/draw.utils.d.ts +2 -1
  21. package/lib/environment/environment.interface.d.ts +2 -0
  22. package/lib/feature/shared/feature-store.utils.d.ts +1 -1
  23. package/lib/feature/shared/feature.interfaces.d.ts +1 -1
  24. package/lib/feature/shared/store.d.ts +1 -1
  25. package/lib/filter/ogc-filter-button/ogc-filter-button.component.d.ts +1 -1
  26. package/lib/filter/ogc-filterable-item/ogc-filterable-item.component.d.ts +1 -1
  27. package/lib/filter/ogc-filterable-list/ogc-filterable-list.component.d.ts +2 -2
  28. package/lib/filter/shared/filterable-datasource.pipe.d.ts +2 -2
  29. package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +3 -3
  30. package/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.d.ts +3 -5
  31. package/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.d.ts +3 -5
  32. package/lib/filter/time-filter-button/time-filter-button.component.d.ts +1 -1
  33. package/lib/filter/time-filter-form/time-filter-form.component.d.ts +5 -5
  34. package/lib/filter/time-filter-item/time-filter-item.component.d.ts +1 -1
  35. package/lib/filter/time-filter-list/time-filter-list.component.d.ts +2 -7
  36. package/lib/import-export/export-button/export-button.component.d.ts +3 -7
  37. package/lib/import-export/import-export/import-export.component.d.ts +1 -2
  38. package/lib/import-export/shared/export.service.d.ts +2 -2
  39. package/lib/layer/index.d.ts +9 -4
  40. package/lib/layer/layer-group/index.d.ts +1 -0
  41. package/lib/layer/layer-group/layer-group.component.d.ts +30 -0
  42. package/lib/layer/layer-item/layer-item.component.d.ts +19 -42
  43. package/lib/layer/layer-legend/layer-legend.component.d.ts +2 -5
  44. package/lib/layer/layer-legend-list/layer-legend-list.component.d.ts +6 -7
  45. package/lib/layer/layer-list/index.d.ts +0 -2
  46. package/lib/layer/layer-list/layer-list.component.d.ts +51 -128
  47. package/lib/layer/layer-list-tool/index.d.ts +0 -1
  48. package/lib/layer/layer-list-tool/layer-list-tool.component.d.ts +19 -26
  49. package/lib/layer/layer-list-tool/layer-list-tool.interface.d.ts +5 -1
  50. package/lib/layer/layer-list-tool/layer-list-tool.service.d.ts +9 -8
  51. package/lib/layer/layer-search/index.d.ts +1 -0
  52. package/lib/layer/layer-search/layer-search.component.d.ts +16 -0
  53. package/lib/layer/layer-unavailable/index.d.ts +2 -0
  54. package/lib/layer/layer-unavailable/layer-unavailable-list/layer-unavailable-list.component.d.ts +10 -0
  55. package/lib/layer/layer-unavailable/layer-unavailable.component.d.ts +11 -0
  56. package/lib/layer/layer-viewer/index.d.ts +2 -0
  57. package/lib/layer/layer-viewer/layer-viewer.component.d.ts +52 -0
  58. package/lib/layer/layer-viewer/layer-viewer.interface.d.ts +22 -0
  59. package/lib/layer/layer-viewer-bottom-actions/index.d.ts +1 -0
  60. package/lib/layer/layer-viewer-bottom-actions/layer-viewer-bottom-actions.component.d.ts +44 -0
  61. package/lib/layer/layer-visibility-button/index.d.ts +1 -0
  62. package/lib/layer/layer-visibility-button/layer-visibility-button.component.d.ts +22 -0
  63. package/lib/layer/layer.module.d.ts +18 -6
  64. package/lib/layer/shared/index.d.ts +1 -0
  65. package/lib/layer/shared/layer-controller.d.ts +81 -0
  66. package/lib/layer/shared/layer-selection.d.ts +14 -0
  67. package/lib/layer/shared/layer.service.d.ts +9 -5
  68. package/lib/layer/shared/layers/any-layer.d.ts +3 -6
  69. package/lib/layer/shared/layers/any-layer.interface.d.ts +8 -6
  70. package/lib/layer/shared/layers/image-layer.d.ts +5 -2
  71. package/lib/layer/shared/layers/image-layer.interface.d.ts +1 -4
  72. package/lib/layer/shared/layers/index.d.ts +5 -0
  73. package/lib/layer/shared/layers/layer-base.d.ts +75 -0
  74. package/lib/layer/shared/layers/layer-group.d.ts +32 -0
  75. package/lib/layer/shared/layers/layer-group.interface.d.ts +8 -0
  76. package/lib/layer/shared/layers/layer.d.ts +27 -45
  77. package/lib/layer/shared/layers/layer.interface.d.ts +23 -41
  78. package/lib/layer/shared/layers/linked/index.d.ts +3 -0
  79. package/lib/layer/shared/layers/linked/linked-layer.d.ts +35 -0
  80. package/lib/layer/shared/layers/linked/linked-layer.interface.d.ts +32 -0
  81. package/lib/layer/shared/layers/linked/linked-layer.utils.d.ts +9 -0
  82. package/lib/layer/shared/layers/tile-layer.d.ts +5 -2
  83. package/lib/layer/shared/layers/vector-layer.d.ts +7 -3
  84. package/lib/layer/shared/layers/vectortile-layer.d.ts +5 -2
  85. package/lib/layer/utils/layer.utils.d.ts +12 -2
  86. package/lib/layer/utils/outputLegend.d.ts +2 -2
  87. package/lib/map/shared/controllers/geolocation.interface.d.ts +2 -1
  88. package/lib/map/shared/hover-feature.directive.d.ts +0 -1
  89. package/lib/map/shared/linkedLayers.utils.d.ts +13 -17
  90. package/lib/map/shared/map.abstract.d.ts +12 -29
  91. package/lib/map/shared/map.d.ts +10 -85
  92. package/lib/map/shared/map.service.d.ts +1 -1
  93. package/lib/map/shared/map.utils.d.ts +5 -3
  94. package/lib/map/utils/index.d.ts +1 -0
  95. package/lib/map/utils/layer-watcher.d.ts +18 -8
  96. package/lib/measure/measurer/measurer.component.d.ts +0 -8
  97. package/lib/metadata/metadata-button/metadata-button.component.d.ts +3 -7
  98. package/lib/offline/geoDB/geoDB.service.d.ts +1 -1
  99. package/lib/offline/layerDB/layerDB.service.d.ts +1 -1
  100. package/lib/offline/offline.provider.d.ts +1 -1
  101. package/lib/query/shared/query.service.d.ts +1 -1
  102. package/lib/query/shared/query.utils.d.ts +2 -1
  103. package/lib/search/search-results/search-results-add-button.component.d.ts +1 -1
  104. package/lib/search/shared/search-pointer-summary.directive.d.ts +0 -1
  105. package/lib/search/shared/sources/workspace.interfaces.d.ts +1 -1
  106. package/lib/style/style-list/style-list.provider.d.ts +1 -8
  107. package/lib/style/style-list/style-list.service.d.ts +1 -1
  108. package/lib/workspace/widgets/ogc-filter/ogc-filter.component.d.ts +1 -1
  109. package/locale/en.geo.json +104 -89
  110. package/locale/fr.geo.json +103 -89
  111. package/package.json +15 -17
  112. package/src/geo-theme.scss +1 -1
  113. package/src/lib/directions/directions-inputs/directions-inputs.theming.scss +21 -0
  114. package/src/lib/directions/directions.theming.scss +2 -0
  115. package/src/lib/layer/layer-group/layer-group.theme.scss +28 -0
  116. package/src/lib/layer/layer-item/layer-item.theme.scss +4 -9
  117. package/src/lib/layer/layer-legend/layer-legend.theme.scss +30 -0
  118. package/src/lib/layer/layer-list/layer-list.theme.scss +51 -0
  119. package/src/lib/layer/layer-unavailable/layer-unavailable.theme.scss +19 -0
  120. package/src/lib/layer/layer-viewer/_layer-viewer.theme.scss +16 -0
  121. package/src/lib/layer/layer-visibility-button/layer-visibility-button.theme.scss +27 -0
  122. package/src/lib/layer/layer.theming.scss +14 -3
  123. package/src/lib/map/menu-button/menu-button.theming.scss +3 -3
  124. package/src/style/style.scss +1 -1
  125. package/esm2022/igo2-geo.mjs +0 -5
  126. package/esm2022/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +0 -234
  127. package/esm2022/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +0 -274
  128. package/esm2022/lib/catalog/catalog-browser/catalog-browser.component.mjs +0 -243
  129. package/esm2022/lib/catalog/catalog-browser/catalog-browser.module.mjs +0 -19
  130. package/esm2022/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +0 -136
  131. package/esm2022/lib/catalog/catalog-library/catalog-library-item.component.mjs +0 -60
  132. package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +0 -232
  133. package/esm2022/lib/catalog/catalog-library/catalog-library.module.mjs +0 -24
  134. package/esm2022/lib/catalog/catalog-library/index.mjs +0 -4
  135. package/esm2022/lib/catalog/catalog.module.mjs +0 -26
  136. package/esm2022/lib/catalog/index.mjs +0 -6
  137. package/esm2022/lib/catalog/shared/catalog.abstract.mjs +0 -32
  138. package/esm2022/lib/catalog/shared/catalog.enum.mjs +0 -16
  139. package/esm2022/lib/catalog/shared/catalog.interface.mjs +0 -2
  140. package/esm2022/lib/catalog/shared/catalog.service.mjs +0 -706
  141. package/esm2022/lib/catalog/shared/catalogs.mjs +0 -75
  142. package/esm2022/lib/catalog/shared/index.mjs +0 -5
  143. package/esm2022/lib/datasource/index.mjs +0 -3
  144. package/esm2022/lib/datasource/shared/capabilities.interface.mjs +0 -17
  145. package/esm2022/lib/datasource/shared/capabilities.service.mjs +0 -441
  146. package/esm2022/lib/datasource/shared/datasource.service.mjs +0 -258
  147. package/esm2022/lib/datasource/shared/datasources/any-datasource.interface.mjs +0 -2
  148. package/esm2022/lib/datasource/shared/datasources/any-datasource.mjs +0 -2
  149. package/esm2022/lib/datasource/shared/datasources/arcgisrest-datasource.interface.mjs +0 -2
  150. package/esm2022/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +0 -222
  151. package/esm2022/lib/datasource/shared/datasources/carto-datasource.interface.mjs +0 -2
  152. package/esm2022/lib/datasource/shared/datasources/carto-datasource.mjs +0 -118
  153. package/esm2022/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +0 -2
  154. package/esm2022/lib/datasource/shared/datasources/cluster-datasource.mjs +0 -24
  155. package/esm2022/lib/datasource/shared/datasources/data.service.mjs +0 -3
  156. package/esm2022/lib/datasource/shared/datasources/datasource.interface.mjs +0 -2
  157. package/esm2022/lib/datasource/shared/datasources/datasource.mjs +0 -40
  158. package/esm2022/lib/datasource/shared/datasources/feature-datasource.interface.mjs +0 -2
  159. package/esm2022/lib/datasource/shared/datasources/feature-datasource.mjs +0 -52
  160. package/esm2022/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.mjs +0 -2
  161. package/esm2022/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +0 -70
  162. package/esm2022/lib/datasource/shared/datasources/index.mjs +0 -36
  163. package/esm2022/lib/datasource/shared/datasources/mvt-datasource.interface.mjs +0 -2
  164. package/esm2022/lib/datasource/shared/datasources/mvt-datasource.mjs +0 -33
  165. package/esm2022/lib/datasource/shared/datasources/osm-datasource.interface.mjs +0 -2
  166. package/esm2022/lib/datasource/shared/datasources/osm-datasource.mjs +0 -14
  167. package/esm2022/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.mjs +0 -2
  168. package/esm2022/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +0 -60
  169. package/esm2022/lib/datasource/shared/datasources/tiledebug-datasource.interface.mjs +0 -2
  170. package/esm2022/lib/datasource/shared/datasources/tiledebug-datasource.mjs +0 -17
  171. package/esm2022/lib/datasource/shared/datasources/websocket-datasource.interface.mjs +0 -2
  172. package/esm2022/lib/datasource/shared/datasources/websocket-datasource.mjs +0 -56
  173. package/esm2022/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +0 -2
  174. package/esm2022/lib/datasource/shared/datasources/wfs-datasource.mjs +0 -137
  175. package/esm2022/lib/datasource/shared/datasources/wfs.service.mjs +0 -170
  176. package/esm2022/lib/datasource/shared/datasources/wms-datasource.interface.mjs +0 -2
  177. package/esm2022/lib/datasource/shared/datasources/wms-datasource.mjs +0 -227
  178. package/esm2022/lib/datasource/shared/datasources/wms-wfs.utils.mjs +0 -224
  179. package/esm2022/lib/datasource/shared/datasources/wmts-datasource.interface.mjs +0 -2
  180. package/esm2022/lib/datasource/shared/datasources/wmts-datasource.mjs +0 -18
  181. package/esm2022/lib/datasource/shared/datasources/xyz-datasource.interface.mjs +0 -2
  182. package/esm2022/lib/datasource/shared/datasources/xyz-datasource.mjs +0 -11
  183. package/esm2022/lib/datasource/shared/index.mjs +0 -6
  184. package/esm2022/lib/datasource/shared/options/index.mjs +0 -5
  185. package/esm2022/lib/datasource/shared/options/options-api.interface.mjs +0 -2
  186. package/esm2022/lib/datasource/shared/options/options-api.providers.mjs +0 -15
  187. package/esm2022/lib/datasource/shared/options/options-api.service.mjs +0 -85
  188. package/esm2022/lib/datasource/shared/options/options.service.mjs +0 -3
  189. package/esm2022/lib/datasource/utils/index.mjs +0 -2
  190. package/esm2022/lib/datasource/utils/tilegrid.mjs +0 -20
  191. package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +0 -197
  192. package/esm2022/lib/directions/directions-buttons/index.mjs +0 -2
  193. package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +0 -218
  194. package/esm2022/lib/directions/directions-inputs/index.mjs +0 -2
  195. package/esm2022/lib/directions/directions-results/directions-results.component.mjs +0 -143
  196. package/esm2022/lib/directions/directions-results/index.mjs +0 -2
  197. package/esm2022/lib/directions/directions-sources/directions-source.interface.mjs +0 -5
  198. package/esm2022/lib/directions/directions-sources/directions-source.mjs +0 -3
  199. package/esm2022/lib/directions/directions-sources/directions-source.provider.mjs +0 -23
  200. package/esm2022/lib/directions/directions-sources/index.mjs +0 -5
  201. package/esm2022/lib/directions/directions-sources/osrm-directions-source.mjs +0 -159
  202. package/esm2022/lib/directions/directions.component.mjs +0 -413
  203. package/esm2022/lib/directions/directions.module.mjs +0 -46
  204. package/esm2022/lib/directions/directions.provider.mjs +0 -16
  205. package/esm2022/lib/directions/index.mjs +0 -8
  206. package/esm2022/lib/directions/shared/directions-source.service.mjs +0 -18
  207. package/esm2022/lib/directions/shared/directions.enum.mjs +0 -28
  208. package/esm2022/lib/directions/shared/directions.interface.mjs +0 -2
  209. package/esm2022/lib/directions/shared/directions.service.mjs +0 -213
  210. package/esm2022/lib/directions/shared/directions.utils.mjs +0 -559
  211. package/esm2022/lib/directions/shared/index.mjs +0 -6
  212. package/esm2022/lib/directions/shared/store.mjs +0 -21
  213. package/esm2022/lib/download/download-button/download-button.component.mjs +0 -60
  214. package/esm2022/lib/download/download-button/index.mjs +0 -2
  215. package/esm2022/lib/download/download.module.mjs +0 -24
  216. package/esm2022/lib/download/index.mjs +0 -3
  217. package/esm2022/lib/download/shared/download.interface.mjs +0 -2
  218. package/esm2022/lib/download/shared/download.service.mjs +0 -67
  219. package/esm2022/lib/download/shared/index.mjs +0 -3
  220. package/esm2022/lib/draw/draw/draw-layer-popup.component.mjs +0 -42
  221. package/esm2022/lib/draw/draw/draw-popup.component.mjs +0 -421
  222. package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +0 -28
  223. package/esm2022/lib/draw/draw/draw.component.mjs +0 -1143
  224. package/esm2022/lib/draw/draw/draw.module.mjs +0 -19
  225. package/esm2022/lib/draw/drawingTool.module.mjs +0 -18
  226. package/esm2022/lib/draw/index.mjs +0 -3
  227. package/esm2022/lib/draw/shared/draw-icon.service.mjs +0 -30
  228. package/esm2022/lib/draw/shared/draw.enum.mjs +0 -21
  229. package/esm2022/lib/draw/shared/draw.interface.mjs +0 -2
  230. package/esm2022/lib/draw/shared/draw.utils.mjs +0 -125
  231. package/esm2022/lib/draw/shared/index.mjs +0 -5
  232. package/esm2022/lib/environment/environment.interface.mjs +0 -2
  233. package/esm2022/lib/environment/index.mjs +0 -2
  234. package/esm2022/lib/feature/feature-details/feature-details.component.mjs +0 -306
  235. package/esm2022/lib/feature/feature-details/feature-details.directive.mjs +0 -56
  236. package/esm2022/lib/feature/feature-details/feature-details.module.mjs +0 -26
  237. package/esm2022/lib/feature/feature-details/index.mjs +0 -4
  238. package/esm2022/lib/feature/feature-form/feature-form.component.mjs +0 -101
  239. package/esm2022/lib/feature/feature-form/feature-form.module.mjs +0 -19
  240. package/esm2022/lib/feature/feature.module.mjs +0 -26
  241. package/esm2022/lib/feature/index.mjs +0 -5
  242. package/esm2022/lib/feature/shared/feature-store.utils.mjs +0 -27
  243. package/esm2022/lib/feature/shared/feature.enums.mjs +0 -9
  244. package/esm2022/lib/feature/shared/feature.interfaces.mjs +0 -2
  245. package/esm2022/lib/feature/shared/feature.utils.mjs +0 -332
  246. package/esm2022/lib/feature/shared/index.mjs +0 -8
  247. package/esm2022/lib/feature/shared/store.mjs +0 -143
  248. package/esm2022/lib/feature/shared/strategies/geo-properties.mjs +0 -216
  249. package/esm2022/lib/feature/shared/strategies/in-map-extent.mjs +0 -116
  250. package/esm2022/lib/feature/shared/strategies/in-map-resolution.mjs +0 -99
  251. package/esm2022/lib/feature/shared/strategies/index.mjs +0 -8
  252. package/esm2022/lib/feature/shared/strategies/loading-layer.mjs +0 -103
  253. package/esm2022/lib/feature/shared/strategies/loading.mjs +0 -136
  254. package/esm2022/lib/feature/shared/strategies/search.mjs +0 -158
  255. package/esm2022/lib/feature/shared/strategies/selection.mjs +0 -384
  256. package/esm2022/lib/feature/shared/strategies.utils.mjs +0 -37
  257. package/esm2022/lib/filter/filter.module.mjs +0 -131
  258. package/esm2022/lib/filter/index.mjs +0 -17
  259. package/esm2022/lib/filter/ogc-filter-button/index.mjs +0 -2
  260. package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +0 -141
  261. package/esm2022/lib/filter/ogc-filter-form/index.mjs +0 -2
  262. package/esm2022/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +0 -325
  263. package/esm2022/lib/filter/ogc-filter-selection/index.mjs +0 -2
  264. package/esm2022/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +0 -787
  265. package/esm2022/lib/filter/ogc-filter-time/index.mjs +0 -3
  266. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +0 -201
  267. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +0 -665
  268. package/esm2022/lib/filter/ogc-filterable-form/index.mjs +0 -2
  269. package/esm2022/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +0 -66
  270. package/esm2022/lib/filter/ogc-filterable-item/index.mjs +0 -2
  271. package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +0 -244
  272. package/esm2022/lib/filter/ogc-filterable-list/index.mjs +0 -3
  273. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +0 -37
  274. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +0 -32
  275. package/esm2022/lib/filter/shared/filterable-datasource.pipe.mjs +0 -56
  276. package/esm2022/lib/filter/shared/index.mjs +0 -12
  277. package/esm2022/lib/filter/shared/ogc-filter-time.service.mjs +0 -72
  278. package/esm2022/lib/filter/shared/ogc-filter.enum.mjs +0 -30
  279. package/esm2022/lib/filter/shared/ogc-filter.interface.mjs +0 -2
  280. package/esm2022/lib/filter/shared/ogc-filter.mjs +0 -756
  281. package/esm2022/lib/filter/shared/ogc-filter.service.mjs +0 -47
  282. package/esm2022/lib/filter/shared/spatial-filter.enum.mjs +0 -23
  283. package/esm2022/lib/filter/shared/spatial-filter.interface.mjs +0 -2
  284. package/esm2022/lib/filter/shared/spatial-filter.service.mjs +0 -282
  285. package/esm2022/lib/filter/shared/time-filter.enum.mjs +0 -13
  286. package/esm2022/lib/filter/shared/time-filter.interface.mjs +0 -2
  287. package/esm2022/lib/filter/shared/time-filter.service.mjs +0 -107
  288. package/esm2022/lib/filter/spatial-filter/spatial-filter-item/index.mjs +0 -2
  289. package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +0 -875
  290. package/esm2022/lib/filter/spatial-filter/spatial-filter-list/index.mjs +0 -2
  291. package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +0 -197
  292. package/esm2022/lib/filter/spatial-filter/spatial-filter-type/index.mjs +0 -2
  293. package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +0 -126
  294. package/esm2022/lib/filter/time-filter-button/index.mjs +0 -2
  295. package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +0 -70
  296. package/esm2022/lib/filter/time-filter-form/index.mjs +0 -2
  297. package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +0 -534
  298. package/esm2022/lib/filter/time-filter-item/index.mjs +0 -2
  299. package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +0 -90
  300. package/esm2022/lib/filter/time-filter-list/index.mjs +0 -3
  301. package/esm2022/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +0 -37
  302. package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +0 -35
  303. package/esm2022/lib/geo.module.mjs +0 -63
  304. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +0 -559
  305. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +0 -170
  306. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +0 -24
  307. package/esm2022/lib/geometry/geometry-form-field/index.mjs +0 -4
  308. package/esm2022/lib/geometry/geometry.module.mjs +0 -18
  309. package/esm2022/lib/geometry/index.mjs +0 -3
  310. package/esm2022/lib/geometry/shared/controls/draw.mjs +0 -340
  311. package/esm2022/lib/geometry/shared/controls/index.mjs +0 -4
  312. package/esm2022/lib/geometry/shared/controls/modify.mjs +0 -538
  313. package/esm2022/lib/geometry/shared/controls/slice.mjs +0 -190
  314. package/esm2022/lib/geometry/shared/geometry.errors.mjs +0 -24
  315. package/esm2022/lib/geometry/shared/geometry.interfaces.mjs +0 -2
  316. package/esm2022/lib/geometry/shared/geometry.utils.mjs +0 -113
  317. package/esm2022/lib/geometry/shared/index.mjs +0 -5
  318. package/esm2022/lib/import-export/export-button/export-button.component.mjs +0 -62
  319. package/esm2022/lib/import-export/export-button/index.mjs +0 -2
  320. package/esm2022/lib/import-export/import-export/import-export.component.mjs +0 -865
  321. package/esm2022/lib/import-export/import-export/index.mjs +0 -2
  322. package/esm2022/lib/import-export/import-export.module.mjs +0 -31
  323. package/esm2022/lib/import-export/index.mjs +0 -5
  324. package/esm2022/lib/import-export/shared/drop-geo-file.directive.mjs +0 -114
  325. package/esm2022/lib/import-export/shared/export.errors.mjs +0 -15
  326. package/esm2022/lib/import-export/shared/export.interface.mjs +0 -2
  327. package/esm2022/lib/import-export/shared/export.service.mjs +0 -375
  328. package/esm2022/lib/import-export/shared/export.type.mjs +0 -13
  329. package/esm2022/lib/import-export/shared/export.utils.mjs +0 -51
  330. package/esm2022/lib/import-export/shared/import.errors.mjs +0 -39
  331. package/esm2022/lib/import-export/shared/import.interface.mjs +0 -2
  332. package/esm2022/lib/import-export/shared/import.service.mjs +0 -221
  333. package/esm2022/lib/import-export/shared/import.utils.mjs +0 -203
  334. package/esm2022/lib/import-export/shared/index.mjs +0 -11
  335. package/esm2022/lib/layer/index.mjs +0 -11
  336. package/esm2022/lib/layer/layer-item/index.mjs +0 -2
  337. package/esm2022/lib/layer/layer-item/layer-item.component.mjs +0 -281
  338. package/esm2022/lib/layer/layer-legend/index.mjs +0 -2
  339. package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +0 -290
  340. package/esm2022/lib/layer/layer-legend-item/index.mjs +0 -2
  341. package/esm2022/lib/layer/layer-legend-item/layer-legend-item.component.mjs +0 -85
  342. package/esm2022/lib/layer/layer-legend-list/index.mjs +0 -3
  343. package/esm2022/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +0 -55
  344. package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +0 -111
  345. package/esm2022/lib/layer/layer-list/index.mjs +0 -4
  346. package/esm2022/lib/layer/layer-list/layer-list-binding.directive.mjs +0 -70
  347. package/esm2022/lib/layer/layer-list/layer-list.component.mjs +0 -841
  348. package/esm2022/lib/layer/layer-list/layer-list.enum.mjs +0 -19
  349. package/esm2022/lib/layer/layer-list-tool/index.mjs +0 -5
  350. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +0 -125
  351. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.enum.mjs +0 -7
  352. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.interface.mjs +0 -2
  353. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.service.mjs +0 -21
  354. package/esm2022/lib/layer/layer.module.mjs +0 -89
  355. package/esm2022/lib/layer/shared/clusterParam.mjs +0 -2
  356. package/esm2022/lib/layer/shared/index.mjs +0 -5
  357. package/esm2022/lib/layer/shared/layer.enums.mjs +0 -2
  358. package/esm2022/lib/layer/shared/layer.service.mjs +0 -300
  359. package/esm2022/lib/layer/shared/layers/any-layer.interface.mjs +0 -2
  360. package/esm2022/lib/layer/shared/layers/any-layer.mjs +0 -2
  361. package/esm2022/lib/layer/shared/layers/image-layer.interface.mjs +0 -2
  362. package/esm2022/lib/layer/shared/layers/image-layer.mjs +0 -70
  363. package/esm2022/lib/layer/shared/layers/index.mjs +0 -13
  364. package/esm2022/lib/layer/shared/layers/layer.interface.mjs +0 -17
  365. package/esm2022/lib/layer/shared/layers/layer.mjs +0 -187
  366. package/esm2022/lib/layer/shared/layers/legend.interface.mjs +0 -2
  367. package/esm2022/lib/layer/shared/layers/tile-layer.interface.mjs +0 -2
  368. package/esm2022/lib/layer/shared/layers/tile-layer.mjs +0 -50
  369. package/esm2022/lib/layer/shared/layers/vector-layer.interface.mjs +0 -2
  370. package/esm2022/lib/layer/shared/layers/vector-layer.mjs +0 -570
  371. package/esm2022/lib/layer/shared/layers/vectortile-layer.interface.mjs +0 -2
  372. package/esm2022/lib/layer/shared/layers/vectortile-layer.mjs +0 -107
  373. package/esm2022/lib/layer/track-feature-button/index.mjs +0 -2
  374. package/esm2022/lib/layer/track-feature-button/track-feature-button.component.mjs +0 -54
  375. package/esm2022/lib/layer/utils/image-watcher.mjs +0 -62
  376. package/esm2022/lib/layer/utils/index.mjs +0 -6
  377. package/esm2022/lib/layer/utils/layer.utils.mjs +0 -11
  378. package/esm2022/lib/layer/utils/outputLegend.mjs +0 -28
  379. package/esm2022/lib/layer/utils/tile-watcher.mjs +0 -52
  380. package/esm2022/lib/layer/utils/vector-watcher.mjs +0 -50
  381. package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.animation.mjs +0 -20
  382. package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +0 -87
  383. package/esm2022/lib/map/baselayers-switcher/index.mjs +0 -3
  384. package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +0 -120
  385. package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +0 -78
  386. package/esm2022/lib/map/geolocate-button/index.mjs +0 -2
  387. package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +0 -73
  388. package/esm2022/lib/map/home-extent-button/home-extent-button.interface.mjs +0 -2
  389. package/esm2022/lib/map/home-extent-button/index.mjs +0 -3
  390. package/esm2022/lib/map/index.mjs +0 -14
  391. package/esm2022/lib/map/info-section/index.mjs +0 -2
  392. package/esm2022/lib/map/info-section/info-section.component.mjs +0 -15
  393. package/esm2022/lib/map/map-browser/index.mjs +0 -2
  394. package/esm2022/lib/map/map-browser/map-browser.component.mjs +0 -67
  395. package/esm2022/lib/map/map-center/index.mjs +0 -2
  396. package/esm2022/lib/map/map-center/map-center.component.mjs +0 -57
  397. package/esm2022/lib/map/map.module.mjs +0 -89
  398. package/esm2022/lib/map/menu-button/index.mjs +0 -2
  399. package/esm2022/lib/map/menu-button/menu-button.component.mjs +0 -57
  400. package/esm2022/lib/map/offline-button/index.mjs +0 -2
  401. package/esm2022/lib/map/offline-button/offline-button.component.mjs +0 -53
  402. package/esm2022/lib/map/rotation-button/index.mjs +0 -2
  403. package/esm2022/lib/map/rotation-button/rotation-button.component.mjs +0 -58
  404. package/esm2022/lib/map/shared/controllers/controller.mjs +0 -44
  405. package/esm2022/lib/map/shared/controllers/geolocation.interface.mjs +0 -8
  406. package/esm2022/lib/map/shared/controllers/geolocation.mjs +0 -431
  407. package/esm2022/lib/map/shared/controllers/index.mjs +0 -5
  408. package/esm2022/lib/map/shared/controllers/view.mjs +0 -361
  409. package/esm2022/lib/map/shared/hover-feature.directive.mjs +0 -489
  410. package/esm2022/lib/map/shared/index.mjs +0 -15
  411. package/esm2022/lib/map/shared/linkedLayers.utils.mjs +0 -248
  412. package/esm2022/lib/map/shared/map-pointer-position.directive.mjs +0 -122
  413. package/esm2022/lib/map/shared/map.abstract.mjs +0 -23
  414. package/esm2022/lib/map/shared/map.enums.mjs +0 -6
  415. package/esm2022/lib/map/shared/map.interface.mjs +0 -2
  416. package/esm2022/lib/map/shared/map.mjs +0 -437
  417. package/esm2022/lib/map/shared/map.service.mjs +0 -29
  418. package/esm2022/lib/map/shared/map.utils.mjs +0 -455
  419. package/esm2022/lib/map/shared/mapOffline.directive.mjs +0 -110
  420. package/esm2022/lib/map/shared/projection.interfaces.mjs +0 -2
  421. package/esm2022/lib/map/shared/projection.service.mjs +0 -67
  422. package/esm2022/lib/map/shared/projection.utils.mjs +0 -122
  423. package/esm2022/lib/map/swipe-control/index.mjs +0 -2
  424. package/esm2022/lib/map/swipe-control/swipe-control.component.mjs +0 -213
  425. package/esm2022/lib/map/utils/layer-watcher.mjs +0 -80
  426. package/esm2022/lib/map/wake-lock-button/index.mjs +0 -2
  427. package/esm2022/lib/map/wake-lock-button/wake-lock-button.component.mjs +0 -103
  428. package/esm2022/lib/map/zoom-button/index.mjs +0 -2
  429. package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +0 -35
  430. package/esm2022/lib/measure/index.mjs +0 -3
  431. package/esm2022/lib/measure/measure.module.mjs +0 -20
  432. package/esm2022/lib/measure/measurer/index.mjs +0 -6
  433. package/esm2022/lib/measure/measurer/measure-format.pipe.mjs +0 -40
  434. package/esm2022/lib/measure/measurer/measurer-dialog.component.mjs +0 -38
  435. package/esm2022/lib/measure/measurer/measurer-item.component.mjs +0 -143
  436. package/esm2022/lib/measure/measurer/measurer.component.mjs +0 -966
  437. package/esm2022/lib/measure/measurer/measurer.module.mjs +0 -20
  438. package/esm2022/lib/measure/shared/index.mjs +0 -4
  439. package/esm2022/lib/measure/shared/measure.enum.mjs +0 -37
  440. package/esm2022/lib/measure/shared/measure.interfaces.mjs +0 -2
  441. package/esm2022/lib/measure/shared/measure.utils.mjs +0 -497
  442. package/esm2022/lib/metadata/index.mjs +0 -4
  443. package/esm2022/lib/metadata/metadata-button/index.mjs +0 -2
  444. package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +0 -108
  445. package/esm2022/lib/metadata/metadata.module.mjs +0 -29
  446. package/esm2022/lib/metadata/shared/index.mjs +0 -3
  447. package/esm2022/lib/metadata/shared/metadata.interface.mjs +0 -2
  448. package/esm2022/lib/metadata/shared/metadata.service.mjs +0 -18
  449. package/esm2022/lib/offline/geoDB/configFileToGeoDB.service.mjs +0 -130
  450. package/esm2022/lib/offline/geoDB/geoDB.enums.mjs +0 -6
  451. package/esm2022/lib/offline/geoDB/geoDB.interface.mjs +0 -2
  452. package/esm2022/lib/offline/geoDB/geoDB.service.mjs +0 -172
  453. package/esm2022/lib/offline/geoDB/index.mjs +0 -5
  454. package/esm2022/lib/offline/index.mjs +0 -6
  455. package/esm2022/lib/offline/layerDB/index.mjs +0 -3
  456. package/esm2022/lib/offline/layerDB/layerDB.interface.mjs +0 -2
  457. package/esm2022/lib/offline/layerDB/layerDB.service.mjs +0 -83
  458. package/esm2022/lib/offline/offline.interface.mjs +0 -2
  459. package/esm2022/lib/offline/offline.provider.mjs +0 -51
  460. package/esm2022/lib/offline/shared/geo-network.service.mjs +0 -79
  461. package/esm2022/lib/offline/shared/index.mjs +0 -2
  462. package/esm2022/lib/overlay/index.mjs +0 -2
  463. package/esm2022/lib/overlay/shared/index.mjs +0 -4
  464. package/esm2022/lib/overlay/shared/overlay.enum.mjs +0 -8
  465. package/esm2022/lib/overlay/shared/overlay.mjs +0 -139
  466. package/esm2022/lib/overlay/shared/overlay.utils.mjs +0 -17
  467. package/esm2022/lib/print/index.mjs +0 -4
  468. package/esm2022/lib/print/print/print.component.mjs +0 -116
  469. package/esm2022/lib/print/print-form/index.mjs +0 -2
  470. package/esm2022/lib/print/print-form/print-form.component.mjs +0 -320
  471. package/esm2022/lib/print/print.module.mjs +0 -20
  472. package/esm2022/lib/print/shared/geopdf.mjs +0 -68
  473. package/esm2022/lib/print/shared/index.mjs +0 -5
  474. package/esm2022/lib/print/shared/print.interface.mjs +0 -2
  475. package/esm2022/lib/print/shared/print.service.mjs +0 -1136
  476. package/esm2022/lib/print/shared/print.type.mjs +0 -30
  477. package/esm2022/lib/query/index.mjs +0 -2
  478. package/esm2022/lib/query/query.module.mjs +0 -27
  479. package/esm2022/lib/query/shared/index.mjs +0 -8
  480. package/esm2022/lib/query/shared/query-search-source.mjs +0 -35
  481. package/esm2022/lib/query/shared/query-search-source.providers.mjs +0 -22
  482. package/esm2022/lib/query/shared/query.directive.mjs +0 -286
  483. package/esm2022/lib/query/shared/query.enums.mjs +0 -32
  484. package/esm2022/lib/query/shared/query.interfaces.mjs +0 -2
  485. package/esm2022/lib/query/shared/query.service.mjs +0 -753
  486. package/esm2022/lib/query/shared/query.utils.mjs +0 -41
  487. package/esm2022/lib/search/index.mjs +0 -10
  488. package/esm2022/lib/search/search-bar/search-bar.component.mjs +0 -483
  489. package/esm2022/lib/search/search-bar/search-bar.module.mjs +0 -19
  490. package/esm2022/lib/search/search-results/index.mjs +0 -5
  491. package/esm2022/lib/search/search-results/save-feature-dialog.component.mjs +0 -101
  492. package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +0 -427
  493. package/esm2022/lib/search/search-results/search-results-item.component.mjs +0 -119
  494. package/esm2022/lib/search/search-results/search-results.component.mjs +0 -297
  495. package/esm2022/lib/search/search-results/search-results.directive.mjs +0 -7
  496. package/esm2022/lib/search/search-results/search-results.module.mjs +0 -20
  497. package/esm2022/lib/search/search-selector/search-selector.component.mjs +0 -118
  498. package/esm2022/lib/search/search-selector/search-selector.module.mjs +0 -19
  499. package/esm2022/lib/search/search-settings/search-settings.component.mjs +0 -264
  500. package/esm2022/lib/search/search-settings/search-settings.module.mjs +0 -19
  501. package/esm2022/lib/search/search.module.mjs +0 -77
  502. package/esm2022/lib/search/shared/index.mjs +0 -10
  503. package/esm2022/lib/search/shared/search-pointer-summary.directive.mjs +0 -337
  504. package/esm2022/lib/search/shared/search-source-service.providers.mjs +0 -20
  505. package/esm2022/lib/search/shared/search-source.service.mjs +0 -56
  506. package/esm2022/lib/search/shared/search.enums.mjs +0 -4
  507. package/esm2022/lib/search/shared/search.interfaces.mjs +0 -2
  508. package/esm2022/lib/search/shared/search.provider.mjs +0 -20
  509. package/esm2022/lib/search/shared/search.service.mjs +0 -149
  510. package/esm2022/lib/search/shared/search.utils.mjs +0 -92
  511. package/esm2022/lib/search/shared/sources/cadastre.mjs +0 -142
  512. package/esm2022/lib/search/shared/sources/cadastre.providers.mjs +0 -32
  513. package/esm2022/lib/search/shared/sources/coordinates.interfaces.mjs +0 -2
  514. package/esm2022/lib/search/shared/sources/coordinates.mjs +0 -168
  515. package/esm2022/lib/search/shared/sources/coordinates.providers.mjs +0 -52
  516. package/esm2022/lib/search/shared/sources/icherche-icons.mjs +0 -32
  517. package/esm2022/lib/search/shared/sources/icherche.interfaces.mjs +0 -2
  518. package/esm2022/lib/search/shared/sources/icherche.mjs +0 -816
  519. package/esm2022/lib/search/shared/sources/icherche.providers.mjs +0 -87
  520. package/esm2022/lib/search/shared/sources/ilayer.interfaces.mjs +0 -2
  521. package/esm2022/lib/search/shared/sources/ilayer.mjs +0 -339
  522. package/esm2022/lib/search/shared/sources/ilayer.providers.mjs +0 -58
  523. package/esm2022/lib/search/shared/sources/index.mjs +0 -23
  524. package/esm2022/lib/search/shared/sources/nominatim.interfaces.mjs +0 -2
  525. package/esm2022/lib/search/shared/sources/nominatim.mjs +0 -263
  526. package/esm2022/lib/search/shared/sources/nominatim.providers.mjs +0 -31
  527. package/esm2022/lib/search/shared/sources/source.interfaces.mjs +0 -13
  528. package/esm2022/lib/search/shared/sources/source.mjs +0 -221
  529. package/esm2022/lib/search/shared/sources/storedqueries.interfaces.mjs +0 -2
  530. package/esm2022/lib/search/shared/sources/storedqueries.mjs +0 -454
  531. package/esm2022/lib/search/shared/sources/storedqueries.providers.mjs +0 -56
  532. package/esm2022/lib/search/shared/sources/workspace.interfaces.mjs +0 -2
  533. package/esm2022/lib/search/shared/sources/workspace.mjs +0 -192
  534. package/esm2022/lib/search/shared/sources/workspace.providers.mjs +0 -31
  535. package/esm2022/lib/style/index.mjs +0 -5
  536. package/esm2022/lib/style/shared/datasource/esri-style-generator.mjs +0 -360
  537. package/esm2022/lib/style/shared/datasource/index.mjs +0 -2
  538. package/esm2022/lib/style/shared/feature/feature-style.mjs +0 -162
  539. package/esm2022/lib/style/shared/feature/index.mjs +0 -2
  540. package/esm2022/lib/style/shared/font.enum.mjs +0 -17
  541. package/esm2022/lib/style/shared/index.mjs +0 -5
  542. package/esm2022/lib/style/shared/overlay/index.mjs +0 -3
  543. package/esm2022/lib/style/shared/overlay/overlay-marker-style.utils.mjs +0 -39
  544. package/esm2022/lib/style/shared/overlay/overlay-style.utils.mjs +0 -88
  545. package/esm2022/lib/style/shared/vector/commonVectorStyle.mjs +0 -78
  546. package/esm2022/lib/style/shared/vector/conversion.utils.mjs +0 -27
  547. package/esm2022/lib/style/shared/vector/index.mjs +0 -4
  548. package/esm2022/lib/style/shared/vector/vector-style.interface.mjs +0 -2
  549. package/esm2022/lib/style/style-list/index.mjs +0 -5
  550. package/esm2022/lib/style/style-list/style-list.interface.mjs +0 -2
  551. package/esm2022/lib/style/style-list/style-list.module.mjs +0 -23
  552. package/esm2022/lib/style/style-list/style-list.provider.mjs +0 -21
  553. package/esm2022/lib/style/style-list/style-list.service.mjs +0 -52
  554. package/esm2022/lib/style/style-modal/drawing/index.mjs +0 -2
  555. package/esm2022/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +0 -193
  556. package/esm2022/lib/style/style-modal/index.mjs +0 -5
  557. package/esm2022/lib/style/style-modal/layer/index.mjs +0 -2
  558. package/esm2022/lib/style/style-modal/layer/style-modal-layer.component.mjs +0 -142
  559. package/esm2022/lib/style/style-modal/layer-button/index.mjs +0 -2
  560. package/esm2022/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +0 -44
  561. package/esm2022/lib/style/style-modal/shared/index.mjs +0 -2
  562. package/esm2022/lib/style/style-modal/shared/style-modal.interface.mjs +0 -2
  563. package/esm2022/lib/style/style-service/draw-style.service.mjs +0 -255
  564. package/esm2022/lib/style/style-service/index.mjs +0 -3
  565. package/esm2022/lib/style/style-service/style.service.mjs +0 -393
  566. package/esm2022/lib/style/style.module.mjs +0 -46
  567. package/esm2022/lib/toast/index.mjs +0 -2
  568. package/esm2022/lib/toast/toast.component.mjs +0 -99
  569. package/esm2022/lib/toast/toast.module.mjs +0 -24
  570. package/esm2022/lib/utils/googleLinks.mjs +0 -13
  571. package/esm2022/lib/utils/id-generator.mjs +0 -112
  572. package/esm2022/lib/utils/index.mjs +0 -5
  573. package/esm2022/lib/utils/osmLinks.mjs +0 -9
  574. package/esm2022/lib/utils/propertyTypeDetector/index.mjs +0 -3
  575. package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.interface.mjs +0 -2
  576. package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.service.mjs +0 -64
  577. package/esm2022/lib/wkt/index.mjs +0 -2
  578. package/esm2022/lib/wkt/shared/index.mjs +0 -2
  579. package/esm2022/lib/wkt/shared/wkt.service.mjs +0 -235
  580. package/esm2022/lib/wkt/wkt.module.mjs +0 -25
  581. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +0 -36
  582. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +0 -19
  583. package/esm2022/lib/workspace/confirmation-popup/index.mjs +0 -3
  584. package/esm2022/lib/workspace/index.mjs +0 -8
  585. package/esm2022/lib/workspace/shared/edition-workspace.mjs +0 -299
  586. package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +0 -718
  587. package/esm2022/lib/workspace/shared/feature-workspace.mjs +0 -41
  588. package/esm2022/lib/workspace/shared/feature-workspace.service.mjs +0 -113
  589. package/esm2022/lib/workspace/shared/index.mjs +0 -8
  590. package/esm2022/lib/workspace/shared/wfs-workspace.mjs +0 -41
  591. package/esm2022/lib/workspace/shared/wfs-workspace.service.mjs +0 -106
  592. package/esm2022/lib/workspace/shared/wms-workspace.service.mjs +0 -230
  593. package/esm2022/lib/workspace/shared/workspace.utils.mjs +0 -185
  594. package/esm2022/lib/workspace/widgets/index.mjs +0 -4
  595. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +0 -48
  596. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +0 -19
  597. package/esm2022/lib/workspace/widgets/widgets.mjs +0 -15
  598. package/esm2022/lib/workspace/workspace-selector/workspace-selector.directive.mjs +0 -168
  599. package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +0 -19
  600. package/esm2022/lib/workspace/workspace-updator/workspace-updator.directive.mjs +0 -136
  601. package/esm2022/lib/workspace/workspace-updator/workspace-updator.module.mjs +0 -19
  602. package/esm2022/lib/workspace/workspace.module.mjs +0 -32
  603. package/esm2022/public_api.mjs +0 -56
  604. package/lib/layer/layer-list/layer-list-binding.directive.d.ts +0 -19
  605. package/lib/layer/layer-list/layer-list.enum.d.ts +0 -15
  606. package/lib/layer/layer-list-tool/layer-list-tool.enum.d.ts +0 -5
  607. package/src/lib/layer/layer-legend/layer-legend.theming.scss +0 -10
@@ -1,489 +0,0 @@
1
- import { Directive, HostListener, Input, Self } from '@angular/core';
2
- import { EntityStore } from '@igo2/common/entity';
3
- import { MediaService } from '@igo2/core/media';
4
- import { SubjectStatus } from '@igo2/utils';
5
- import OlFeature from 'ol/Feature';
6
- import { unByKey } from 'ol/Observable';
7
- import * as OlGeom from 'ol/geom';
8
- import olLayerVector from 'ol/layer/Vector';
9
- import olLayerVectorTile from 'ol/layer/VectorTile';
10
- import RenderFeature from 'ol/render/Feature';
11
- import olVectorTileSource from 'ol/source/VectorTile';
12
- import { first } from 'rxjs/operators';
13
- import { FeatureDataSource } from '../../datasource/shared/datasources/feature-datasource';
14
- import { tryBindStoreLayer } from '../../feature/shared/feature-store.utils';
15
- import { FeatureMotion } from '../../feature/shared/feature.enums';
16
- import { FeatureStore } from '../../feature/shared/store';
17
- import { VectorLayer } from '../../layer/shared/layers';
18
- import { MapBrowserComponent } from '../../map/map-browser/map-browser.component';
19
- import { hoverFeatureMarkerStyle } from '../../style/shared/feature/feature-style';
20
- import { StyleService } from '../../style/style-service/style.service';
21
- import * as i0 from "@angular/core";
22
- import * as i1 from "../../map/map-browser/map-browser.component";
23
- import * as i2 from "@igo2/core/media";
24
- import * as i3 from "../../style/style-service/style.service";
25
- /**
26
- * This directive makes the mouse coordinate trigger a reverse search on available search sources.
27
- * The search results are placed into a label, on a cross icon, representing the mouse coordinate.
28
- * By default, no search sources. Config in config file must be defined.
29
- * the layer level.
30
- */
31
- export class HoverFeatureDirective {
32
- component;
33
- mediaService;
34
- styleService;
35
- store;
36
- pointerHoverFeatureStore = new EntityStore([]);
37
- lastTimeoutRequest;
38
- store$$;
39
- layers$$;
40
- selectionLayer;
41
- selectionMVT = {};
42
- mvtStyleOptions;
43
- /**
44
- * Listener to the pointer move event
45
- */
46
- pointerMoveListener;
47
- singleClickMapListener;
48
- hoverFeatureId = 'hoverFeatureId';
49
- /**
50
- * The delay where the mouse must be motionless before trigger the reverse search
51
- */
52
- igoHoverFeatureDelay = 1000;
53
- /**
54
- * If the user has enabled or not the directive
55
- */
56
- igoHoverFeatureEnabled = false;
57
- mouseout() {
58
- clearTimeout(this.lastTimeoutRequest);
59
- this.clearLayer();
60
- }
61
- /**
62
- * IGO map
63
- * @internal
64
- */
65
- get map() {
66
- return this.component.map;
67
- }
68
- get mapProjection() {
69
- return this.component.map.projection;
70
- }
71
- constructor(component, mediaService, styleService) {
72
- this.component = component;
73
- this.mediaService = mediaService;
74
- this.styleService = styleService;
75
- }
76
- /**
77
- * Start listening to pointermove and reverse search results.
78
- * @internal
79
- */
80
- ngOnInit() {
81
- this.map.status$
82
- .pipe(first((status) => status === SubjectStatus.Done))
83
- .subscribe(() => {
84
- this.store = new FeatureStore([], { map: this.map });
85
- this.initStore();
86
- this.listenToMapPointerMove();
87
- this.subscribeToPointerStore();
88
- this.listenToMapClick();
89
- });
90
- // To handle context change without using the contextService.
91
- this.layers$$ = this.map.layers$.subscribe((layers) => {
92
- if (this.store && !layers.find((l) => l.id === 'hoverFeatureId')) {
93
- this.initStore();
94
- }
95
- });
96
- }
97
- /**
98
- * Initialize the pointer position store
99
- * @internal
100
- */
101
- initStore() {
102
- const store = this.store;
103
- const layer = new VectorLayer({
104
- isIgoInternalLayer: true,
105
- id: 'hoverFeatureId',
106
- title: 'hoverFeature',
107
- zIndex: 900,
108
- source: new FeatureDataSource(),
109
- showInLayerList: false,
110
- exportable: false,
111
- browsable: false,
112
- style: hoverFeatureMarkerStyle
113
- });
114
- tryBindStoreLayer(store, layer);
115
- this.selectionLayer = new olLayerVectorTile({
116
- map: this.map.ol,
117
- zIndex: 901,
118
- renderMode: 'vector',
119
- declutter: true,
120
- source: new olVectorTileSource({ projection: this.map.projection }),
121
- style: (feature, resolution) => {
122
- if (this.mvtStyleOptions && feature.getId() in this.selectionMVT) {
123
- return this.createHoverStyle(feature, this.mvtStyleOptions, resolution);
124
- }
125
- }
126
- });
127
- }
128
- createHoverStyle(feature, hoverStyle, resolution) {
129
- const localHoverStyle = { ...hoverStyle };
130
- let label = hoverStyle.label ? hoverStyle.label.attribute : undefined;
131
- let hasLabelStyle = hoverStyle.label?.style ? true : false;
132
- if (!feature.get('_isLabel')) {
133
- localHoverStyle.label = undefined;
134
- hasLabelStyle = false;
135
- label = undefined;
136
- }
137
- else {
138
- // clear the style for label....
139
- const size = localHoverStyle.data ? localHoverStyle.data.length : 0;
140
- const radius = [];
141
- const stroke = [];
142
- const width = [];
143
- const fill = [];
144
- for (let i = 0; i < size; i++) {
145
- radius.push(0);
146
- stroke.push('rgba(255, 255, 255, 0)');
147
- width.push(0);
148
- fill.push('rgba(255, 255, 255, 0)');
149
- }
150
- localHoverStyle.radius = radius;
151
- localHoverStyle.stroke = stroke;
152
- localHoverStyle.width = width;
153
- localHoverStyle.fill = fill;
154
- }
155
- if (!hasLabelStyle && label) {
156
- localHoverStyle.label.style = {
157
- textAlign: 'left',
158
- textBaseline: 'top',
159
- font: '12px Calibri,sans-serif',
160
- fill: { color: '#000' },
161
- backgroundFill: { color: 'rgba(255, 255, 255, 0.5)' },
162
- backgroundStroke: { color: 'rgba(200, 200, 200, 0.75)', width: 2 },
163
- stroke: { color: '#fff', width: 3 },
164
- overflow: true,
165
- offsetX: 10,
166
- offsetY: 20,
167
- padding: [2.5, 2.5, 2.5, 2.5]
168
- };
169
- }
170
- return this.styleService.createStyleByAttribute(feature, localHoverStyle, resolution);
171
- }
172
- /**
173
- * Stop listening to pointermove and reverse search results.
174
- * @internal
175
- */
176
- ngOnDestroy() {
177
- this.unlistenToMapPointerMove();
178
- this.unsubscribeToPointerStore();
179
- this.unlistenToMapSingleClick();
180
- this.layers$$?.unsubscribe();
181
- }
182
- /**
183
- * Subscribe to pointermove result store
184
- * @internal
185
- */
186
- subscribeToPointerStore() {
187
- this.store$$ = this.pointerHoverFeatureStore.entities$.subscribe((resultsUnderPointerPosition) => {
188
- this.addFeatureOverlay(resultsUnderPointerPosition);
189
- });
190
- }
191
- /**
192
- * On map pointermove
193
- */
194
- listenToMapPointerMove() {
195
- this.pointerMoveListener = this.map.ol.on('pointermove', (event) => this.onMapEvent(event));
196
- }
197
- /**
198
- * On map singleclick
199
- */
200
- listenToMapClick() {
201
- this.singleClickMapListener = this.map.ol.on('singleclick', () => this.onMapSingleClickEvent());
202
- }
203
- /**
204
- * Unsubscribe to pointer store.
205
- * @internal
206
- */
207
- unsubscribeToPointerStore() {
208
- this.store$$?.unsubscribe();
209
- }
210
- /**
211
- * Stop listening for map pointermove
212
- * @internal
213
- */
214
- unlistenToMapPointerMove() {
215
- unByKey(this.pointerMoveListener);
216
- this.pointerMoveListener = undefined;
217
- }
218
- /**
219
- * Stop listening for map singleclick
220
- * @internal
221
- */
222
- unlistenToMapSingleClick() {
223
- unByKey(this.singleClickMapListener);
224
- this.singleClickMapListener = undefined;
225
- }
226
- /**
227
- * Trigger clear layer on singleclick.
228
- * @param event OL map browser singleclick event
229
- */
230
- onMapSingleClickEvent() {
231
- this.clearLayer();
232
- }
233
- /**
234
- * Trigger hover when the mouse is motionless during the defined delay (pointerMoveDelay).
235
- * @param event OL map browser pointer event
236
- */
237
- onMapEvent(event) {
238
- if (event.dragging ||
239
- !this.igoHoverFeatureEnabled ||
240
- this.mediaService.isTouchScreen()) {
241
- this.clearLayer();
242
- return;
243
- }
244
- if (typeof this.lastTimeoutRequest !== 'undefined') {
245
- // cancel timeout when the mouse moves
246
- clearTimeout(this.lastTimeoutRequest);
247
- }
248
- let maximumZindex = -Infinity;
249
- let topMostOlLayer;
250
- const pixel = this.map.ol.getPixelFromCoordinate(event.coordinate);
251
- this.lastTimeoutRequest = setTimeout(() => {
252
- // retrieve the topmost layer with feature to only apply the hover on this layer.
253
- this.map.ol.forEachFeatureAtPixel(pixel, (mapFeature, layerOL) => {
254
- if (!layerOL) {
255
- return;
256
- }
257
- const igoLayer = this.map.getLayerByOlUId(layerOL.ol_uid);
258
- if (!this.canProcessHover(igoLayer)) {
259
- return;
260
- }
261
- if (igoLayer.zIndex <= maximumZindex) {
262
- return;
263
- }
264
- maximumZindex = igoLayer.zIndex;
265
- topMostOlLayer = layerOL;
266
- }, {
267
- hitTolerance: 10,
268
- layerFilter: (olLayer) => olLayer instanceof olLayerVector ||
269
- olLayer instanceof olLayerVectorTile
270
- });
271
- if (!topMostOlLayer) {
272
- // To clear label
273
- this.clearLayer();
274
- this.pointerHoverFeatureStore.clear();
275
- return;
276
- }
277
- this.map.ol.forEachFeatureAtPixel(pixel, (mapFeature, layerOL) => {
278
- // To avoid flashing feature
279
- if (mapFeature.get('hoverSummary') === undefined &&
280
- mapFeature.getProperties() !==
281
- this.pointerHoverFeatureStore.all()[0]?.getProperties()) {
282
- this.clearLayer();
283
- if (layerOL instanceof olLayerVector) {
284
- const myLayerVector = this.map.getLayerByOlUId(layerOL.ol_uid);
285
- if (!this.canProcessHover(myLayerVector)) {
286
- return;
287
- }
288
- const localOlFeature = this.handleRenderFeature(mapFeature);
289
- this.setLayerStyleFromOptions(myLayerVector, localOlFeature);
290
- const featuresToLoad = [localOlFeature];
291
- localOlFeature.set('_isLabel', false);
292
- const myLabelOlFeature = new OlFeature();
293
- myLabelOlFeature.setProperties(localOlFeature.getProperties());
294
- const labelGeom = localOlFeature.getGeometry().getType() === 'Point'
295
- ? localOlFeature.getGeometry()
296
- : new OlGeom.Point(event.coordinate);
297
- myLabelOlFeature.setGeometry(labelGeom);
298
- myLabelOlFeature.setId(localOlFeature.getId());
299
- myLabelOlFeature.set('_isLabel', true);
300
- this.setLayerStyleFromOptions(myLayerVector, myLabelOlFeature);
301
- featuresToLoad.push(myLabelOlFeature);
302
- this.pointerHoverFeatureStore.load(featuresToLoad);
303
- return true;
304
- }
305
- if (layerOL instanceof olLayerVectorTile) {
306
- const myLayerVectorTile = this.map.getLayerByOlUId(layerOL.ol_uid);
307
- if (!this.canProcessHover(myLayerVectorTile)) {
308
- return;
309
- }
310
- if (myLayerVectorTile?.options?.igoStyle?.styleByAttribute
311
- ?.hoverStyle) {
312
- this.mvtStyleOptions =
313
- myLayerVectorTile.options.igoStyle.styleByAttribute.hoverStyle;
314
- }
315
- else if (myLayerVectorTile?.options?.igoStyle?.hoverStyle) {
316
- this.mvtStyleOptions =
317
- myLayerVectorTile.options.igoStyle.hoverStyle;
318
- }
319
- this.selectionLayer.setSource(layerOL.getSource());
320
- layerOL
321
- .getFeatures(event.pixel)
322
- .then((mvtFeatures) => {
323
- if (!mvtFeatures.length) {
324
- this.selectionMVT = {};
325
- this.selectionLayer.changed();
326
- this.clearLayer();
327
- return;
328
- }
329
- const feature = mvtFeatures[0];
330
- if (!feature) {
331
- this.clearLayer();
332
- return;
333
- }
334
- const localOlFeature = this.handleRenderFeature(feature);
335
- localOlFeature.set('_isLabel', false);
336
- const myLabelOlFeature = new OlFeature();
337
- myLabelOlFeature.setProperties(localOlFeature.getProperties());
338
- const labelGeom = localOlFeature.getGeometry().getType() === 'Point'
339
- ? localOlFeature.getGeometry()
340
- : new OlGeom.Point(event.coordinate);
341
- myLabelOlFeature.setGeometry(labelGeom);
342
- myLabelOlFeature.setId(localOlFeature.getId());
343
- myLabelOlFeature.set('_isLabel', true);
344
- this.setLayerStyleFromOptions(myLayerVectorTile, myLabelOlFeature);
345
- this.pointerHoverFeatureStore.load([myLabelOlFeature]);
346
- this.selectionMVT[feature.getId()] = localOlFeature;
347
- this.selectionLayer.changed();
348
- });
349
- }
350
- }
351
- }, {
352
- hitTolerance: 10,
353
- layerFilter: (olLayer) => olLayer === topMostOlLayer
354
- });
355
- }, this.igoHoverFeatureDelay);
356
- }
357
- canProcessHover(igoLayer) {
358
- if (!igoLayer) {
359
- return false;
360
- }
361
- if (!igoLayer.visible) {
362
- return false;
363
- }
364
- if (!igoLayer.options) {
365
- return false;
366
- }
367
- if (!igoLayer.options.igoStyle?.styleByAttribute &&
368
- !igoLayer.options.igoStyle?.hoverStyle) {
369
- return false;
370
- }
371
- if (igoLayer.options.igoStyle?.styleByAttribute &&
372
- !igoLayer.options.igoStyle?.styleByAttribute.hoverStyle &&
373
- !igoLayer.options.igoStyle?.hoverStyle) {
374
- return false;
375
- }
376
- return true;
377
- }
378
- handleRenderFeature(feature) {
379
- let localFeature;
380
- if (feature instanceof RenderFeature) {
381
- localFeature = new OlFeature({
382
- geometry: this.getGeometry(feature)
383
- });
384
- localFeature.setId(feature.getId());
385
- }
386
- else if (feature instanceof OlFeature) {
387
- localFeature = feature;
388
- }
389
- localFeature.setProperties(feature.getProperties());
390
- return localFeature;
391
- }
392
- /**
393
- * Add a feature to the pointer store
394
- * @param text string
395
- */
396
- addFeatureOverlay(hoverEntity) {
397
- if (hoverEntity.length > 0) {
398
- const result = hoverEntity[0];
399
- this.clearLayer();
400
- const feature = new OlFeature({
401
- geometry: result.getGeometry(),
402
- meta: { id: this.hoverFeatureId },
403
- hoverSummary: this.getHoverSummary(result.getProperties())
404
- });
405
- this.store.setLayerOlFeatures([feature], FeatureMotion.None);
406
- }
407
- }
408
- setLayerStyleFromOptions(igoLayer, feature) {
409
- const resolution = this.store.layer.map.viewController.getResolution();
410
- if (igoLayer?.options?.igoStyle?.styleByAttribute?.hoverStyle) {
411
- this.store.layer.ol.setStyle(this.createHoverStyle(feature, igoLayer.options.igoStyle.styleByAttribute.hoverStyle, resolution));
412
- return;
413
- }
414
- if (igoLayer?.options?.igoStyle?.hoverStyle) {
415
- this.store.layer.ol.setStyle(this.createHoverStyle(feature, igoLayer.options.igoStyle.hoverStyle, resolution));
416
- }
417
- }
418
- getHoverSummary(properties) {
419
- let summary = '';
420
- for (const [key, value] of Object.entries(properties)) {
421
- if (!key.startsWith('_') && key !== 'geometry') {
422
- summary += `${key}: ${value}` + '\n';
423
- }
424
- }
425
- return summary.length >= 2 ? summary.slice(0, -2) : summary;
426
- }
427
- getGeometry(feature) {
428
- let geom;
429
- if (!feature.getOrientedFlatCoordinates) {
430
- geom = feature.getGeometry();
431
- }
432
- else {
433
- const coords = feature.getOrientedFlatCoordinates();
434
- const flatCoords = [];
435
- coords.forEach((c, idx) => {
436
- if (idx % 2 === 0) {
437
- flatCoords.push([
438
- parseFloat(coords[idx]),
439
- parseFloat(coords[idx + 1])
440
- ]);
441
- }
442
- });
443
- // TODO: test MultiX
444
- switch (feature.getType()) {
445
- case 'Point':
446
- geom = new OlGeom.Point(flatCoords);
447
- break;
448
- case 'Polygon':
449
- geom = new OlGeom.Polygon([flatCoords]);
450
- break;
451
- case 'LineString':
452
- geom = new OlGeom.LineString([flatCoords]);
453
- break;
454
- }
455
- }
456
- return geom;
457
- }
458
- /**
459
- * Clear the pointer store features
460
- */
461
- clearLayer() {
462
- this.selectionMVT = {};
463
- if (this.selectionLayer) {
464
- this.selectionLayer.changed();
465
- }
466
- if (this.store) {
467
- this.store.clearLayer();
468
- }
469
- }
470
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HoverFeatureDirective, deps: [{ token: i1.MapBrowserComponent, self: true }, { token: i2.MediaService }, { token: i3.StyleService }], target: i0.ɵɵFactoryTarget.Directive });
471
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: HoverFeatureDirective, isStandalone: true, selector: "[igoHoverFeature]", inputs: { igoHoverFeatureDelay: "igoHoverFeatureDelay", igoHoverFeatureEnabled: "igoHoverFeatureEnabled" }, host: { listeners: { "mouseout": "mouseout()" } }, ngImport: i0 });
472
- }
473
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HoverFeatureDirective, decorators: [{
474
- type: Directive,
475
- args: [{
476
- selector: '[igoHoverFeature]',
477
- standalone: true
478
- }]
479
- }], ctorParameters: () => [{ type: i1.MapBrowserComponent, decorators: [{
480
- type: Self
481
- }] }, { type: i2.MediaService }, { type: i3.StyleService }], propDecorators: { igoHoverFeatureDelay: [{
482
- type: Input
483
- }], igoHoverFeatureEnabled: [{
484
- type: Input
485
- }], mouseout: [{
486
- type: HostListener,
487
- args: ['mouseout']
488
- }] } });
489
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG92ZXItZmVhdHVyZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9tYXAvc2hhcmVkL2hvdmVyLWZlYXR1cmUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxJQUFJLEVBQ0wsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVDLE9BQU8sU0FBUyxNQUFNLFlBQVksQ0FBQztBQUVuQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxNQUFNLE1BQU0sU0FBUyxDQUFDO0FBRWxDLE9BQU8sYUFBYSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8saUJBQWlCLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxhQUFhLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxrQkFBa0IsTUFBTSxzQkFBc0IsQ0FBQztBQUd0RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDM0YsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRW5FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQVMsV0FBVyxFQUFtQixNQUFNLDJCQUEyQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxt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cnQge1xuICBEaXJlY3RpdmUsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBTZWxmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBFbnRpdHlTdG9yZSB9IGZyb20gJ0BpZ28yL2NvbW1vbi9lbnRpdHknO1xuaW1wb3J0IHsgTWVkaWFTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9tZWRpYSc7XG5pbXBvcnQgeyBTdWJqZWN0U3RhdHVzIH0gZnJvbSAnQGlnbzIvdXRpbHMnO1xuXG5pbXBvcnQgT2xGZWF0dXJlIGZyb20gJ29sL0ZlYXR1cmUnO1xuaW1wb3J0IHR5cGUgeyBkZWZhdWx0IGFzIE9sTWFwQnJvd3NlckV2ZW50IH0gZnJvbSAnb2wvTWFwQnJvd3NlckV2ZW50JztcbmltcG9ydCB7IHVuQnlLZXkgfSBmcm9tICdvbC9PYnNlcnZhYmxlJztcbmltcG9ydCAqIGFzIE9sR2VvbSBmcm9tICdvbC9nZW9tJztcbmltcG9ydCB0eXBlIHsgZGVmYXVsdCBhcyBPbEdlb21ldHJ5IH0gZnJvbSAnb2wvZ2VvbS9HZW9tZXRyeSc7XG5pbXBvcnQgb2xMYXllclZlY3RvciBmcm9tICdvbC9sYXllci9WZWN0b3InO1xuaW1wb3J0IG9sTGF5ZXJWZWN0b3JUaWxlIGZyb20gJ29sL2xheWVyL1ZlY3RvclRpbGUnO1xuaW1wb3J0IFJlbmRlckZlYXR1cmUgZnJvbSAnb2wvcmVuZGVyL0ZlYXR1cmUnO1xuaW1wb3J0IG9sVmVjdG9yVGlsZVNvdXJjZSBmcm9tICdvbC9zb3VyY2UvVmVjdG9yVGlsZSc7XG5cbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEZlYXR1cmVEYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvZmVhdHVyZS1kYXRhc291cmNlJztcbmltcG9ydCB7IHRyeUJpbmRTdG9yZUxheWVyIH0gZnJvbSAnLi4vLi4vZmVhdHVyZS9zaGFyZWQvZmVhdHVyZS1zdG9yZS51dGlscyc7XG5pbXBvcnQgeyBGZWF0dXJlTW90aW9uIH0gZnJvbSAnLi4vLi4vZmVhdHVyZS9zaGFyZWQvZmVhdHVyZS5lbnVtcyc7XG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSAnLi4vLi4vZmVhdHVyZS9zaGFyZWQvZmVhdHVyZS5pbnRlcmZhY2VzJztcbmltcG9ydCB7IEZlYXR1cmVTdG9yZSB9IGZyb20gJy4uLy4uL2ZlYXR1cmUvc2hhcmVkL3N0b3JlJztcbmltcG9ydCB7IExheWVyLCBWZWN0b3JMYXllciwgVmVjdG9yVGlsZUxheWVyIH0gZnJvbSAnLi4vLi4vbGF5ZXIvc2hhcmVkL2xheWVycyc7XG5pbXBvcnQgeyBNYXBCcm93c2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbWFwL21hcC1icm93c2VyL21hcC1icm93c2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJZ29NYXAgfSBmcm9tICcuLi8uLi9tYXAvc2hhcmVkL21hcCc7XG5pbXBvcnQgeyBob3ZlckZlYXR1cmVNYXJrZXJTdHlsZSB9IGZyb20gJy4uLy4uL3N0eWxlL3NoYXJlZC9mZWF0dXJlL2ZlYXR1cmUtc3R5bGUnO1xuaW1wb3J0IHsgU3R5bGVCeUF0dHJpYnV0ZSB9IGZyb20gJy4uLy4uL3N0eWxlL3NoYXJlZC92ZWN0b3IvdmVjdG9yLXN0eWxlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTdHlsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zdHlsZS9zdHlsZS1zZXJ2aWNlL3N0eWxlLnNlcnZpY2UnO1xuXG4vKipcbiAqIFRoaXMgZGlyZWN0aXZlIG1ha2VzIHRoZSBtb3VzZSBjb29yZGluYXRlIHRyaWdnZXIgYSByZXZlcnNlIHNlYXJjaCBvbiBhdmFpbGFibGUgc2VhcmNoIHNvdXJjZXMuXG4gKiBUaGUgc2VhcmNoIHJlc3VsdHMgYXJlIHBsYWNlZCBpbnRvIGEgbGFiZWwsIG9uIGEgY3Jvc3MgaWNvbiwgcmVwcmVzZW50aW5nIHRoZSBtb3VzZSBjb29yZGluYXRlLlxuICogQnkgZGVmYXVsdCwgbm8gc2VhcmNoIHNvdXJjZXMuIENvbmZpZyBpbiBjb25maWcgZmlsZSBtdXN0IGJlIGRlZmluZWQuXG4gKiB0aGUgbGF5ZXIgbGV2ZWwuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tpZ29Ib3ZlckZlYXR1cmVdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBIb3ZlckZlYXR1cmVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBzdG9yZTogRmVhdHVyZVN0b3JlPEZlYXR1cmU+O1xuICBwcml2YXRlIHBvaW50ZXJIb3ZlckZlYXR1cmVTdG9yZTogRW50aXR5U3RvcmU8T2xGZWF0dXJlPE9sR2VvbWV0cnk+PiA9XG4gICAgbmV3IEVudGl0eVN0b3JlPE9sRmVhdHVyZTxPbEdlb21ldHJ5Pj4oW10pO1xuICBwcml2YXRlIGxhc3RUaW1lb3V0UmVxdWVzdDtcbiAgcHJpdmF0ZSBzdG9yZSQkOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgbGF5ZXJzJCQ6IFN1YnNjcmlwdGlvbjtcblxuICBwcml2YXRlIHNlbGVjdGlvbkxheWVyOiBvbExheWVyVmVjdG9yVGlsZTtcbiAgcHJpdmF0ZSBzZWxlY3Rpb25NVlQgPSB7fTtcbiAgcHJpdmF0ZSBtdnRTdHlsZU9wdGlvbnM6IFN0eWxlQnlBdHRyaWJ1dGU7XG5cbiAgLyoqXG4gICAqIExpc3RlbmVyIHRvIHRoZSBwb2ludGVyIG1vdmUgZXZlbnRcbiAgICovXG4gIHByaXZhdGUgcG9pbnRlck1vdmVMaXN0ZW5lcjtcblxuICBwcml2YXRlIHNpbmdsZUNsaWNrTWFwTGlzdGVuZXI7XG5cbiAgcHJpdmF0ZSBob3ZlckZlYXR1cmVJZCA9ICdob3ZlckZlYXR1cmVJZCc7XG4gIC8qKlxuICAgKiBUaGUgZGVsYXkgd2hlcmUgdGhlIG1vdXNlIG11c3QgYmUgbW90aW9ubGVzcyBiZWZvcmUgdHJpZ2dlciB0aGUgcmV2ZXJzZSBzZWFyY2hcbiAgICovXG4gIEBJbnB1dCgpIGlnb0hvdmVyRmVhdHVyZURlbGF5ID0gMTAwMDtcblxuICAvKipcbiAgICogSWYgdGhlIHVzZXIgaGFzIGVuYWJsZWQgb3Igbm90IHRoZSBkaXJlY3RpdmVcbiAgICovXG4gIEBJbnB1dCgpIGlnb0hvdmVyRmVhdHVyZUVuYWJsZWQgPSBmYWxzZTtcblxuICBASG9zdExpc3RlbmVyKCdtb3VzZW91dCcpXG4gIG1vdXNlb3V0KCkge1xuICAgIGNsZWFyVGltZW91dCh0aGlzLmxhc3RUaW1lb3V0UmVxdWVzdCk7XG4gICAgdGhpcy5jbGVhckxheWVyKCk7XG4gIH1cblxuICAvKipcbiAgICogSUdPIG1hcFxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGdldCBtYXAoKTogSWdvTWFwIHtcbiAgICByZXR1cm4gdGhpcy5jb21wb25lbnQubWFwO1xuICB9XG5cbiAgZ2V0IG1hcFByb2plY3Rpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKHRoaXMuY29tcG9uZW50Lm1hcCBhcyBJZ29NYXApLnByb2plY3Rpb247XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBAU2VsZigpIHByaXZhdGUgY29tcG9uZW50OiBNYXBCcm93c2VyQ29tcG9uZW50LFxuICAgIHByaXZhdGUgbWVkaWFTZXJ2aWNlOiBNZWRpYVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdHlsZVNlcnZpY2U6IFN0eWxlU2VydmljZVxuICApIHt9XG5cbiAgLyoqXG4gICAqIFN0YXJ0IGxpc3RlbmluZyB0byBwb2ludGVybW92ZSBhbmQgcmV2ZXJzZSBzZWFyY2ggcmVzdWx0cy5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLm1hcC5zdGF0dXMkXG4gICAgICAucGlwZShmaXJzdCgoc3RhdHVzKSA9PiBzdGF0dXMgPT09IFN1YmplY3RTdGF0dXMuRG9uZSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5zdG9yZSA9IG5ldyBGZWF0dXJlU3RvcmU8RmVhdHVyZT4oW10sIHsgbWFwOiB0aGlzLm1hcCB9KTtcbiAgICAgICAgdGhpcy5pbml0U3RvcmUoKTtcbiAgICAgICAgdGhpcy5saXN0ZW5Ub01hcFBvaW50ZXJNb3ZlKCk7XG4gICAgICAgIHRoaXMuc3Vic2NyaWJlVG9Qb2ludGVyU3RvcmUoKTtcbiAgICAgICAgdGhpcy5saXN0ZW5Ub01hcENsaWNrKCk7XG4gICAgICB9KTtcblxuICAgIC8vIFRvIGhhbmRsZSBjb250ZXh0IGNoYW5nZSB3aXRob3V0IHVzaW5nIHRoZSBjb250ZXh0U2VydmljZS5cbiAgICB0aGlzLmxheWVycyQkID0gdGhpcy5tYXAubGF5ZXJzJC5zdWJzY3JpYmUoKGxheWVyczogTGF5ZXJbXSkgPT4ge1xuICAgICAgaWYgKHRoaXMuc3RvcmUgJiYgIWxheWVycy5maW5kKChsKSA9PiBsLmlkID09PSAnaG92ZXJGZWF0dXJlSWQnKSkge1xuICAgICAgICB0aGlzLmluaXRTdG9yZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgdGhlIHBvaW50ZXIgcG9zaXRpb24gc3RvcmVcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcml2YXRlIGluaXRTdG9yZSgpIHtcbiAgICBjb25zdCBzdG9yZSA9IHRoaXMuc3RvcmU7XG5cbiAgICBjb25zdCBsYXllciA9IG5ldyBWZWN0b3JMYXllcih7XG4gICAgICBpc0lnb0ludGVybmFsTGF5ZXI6IHRydWUsXG4gICAgICBpZDogJ2hvdmVyRmVhdHVyZUlkJyxcbiAgICAgIHRpdGxlOiAnaG92ZXJGZWF0dXJlJyxcbiAgICAgIHpJbmRleDogOTAwLFxuICAgICAgc291cmNlOiBuZXcgRmVhdHVyZURhdGFTb3VyY2UoKSxcbiAgICAgIHNob3dJbkxheWVyTGlzdDogZmFsc2UsXG4gICAgICBleHBvcnRhYmxlOiBmYWxzZSxcbiAgICAgIGJyb3dzYWJsZTogZmFsc2UsXG4gICAgICBzdHlsZTogaG92ZXJGZWF0dXJlTWFya2VyU3R5bGVcbiAgICB9KTtcbiAgICB0cnlCaW5kU3RvcmVMYXllcihzdG9yZSwgbGF5ZXIpO1xuXG4gICAgdGhpcy5zZWxlY3Rpb25MYXllciA9IG5ldyBvbExheWVyVmVjdG9yVGlsZSh7XG4gICAgICBtYXA6IHRoaXMubWFwLm9sLFxuICAgICAgekluZGV4OiA5MDEsXG4gICAgICByZW5kZXJNb2RlOiAndmVjdG9yJyxcbiAgICAgIGRlY2x1dHRlcjogdHJ1ZSxcbiAgICAgIHNvdXJjZTogbmV3IG9sVmVjdG9yVGlsZVNvdXJjZSh7IHByb2plY3Rpb246IHRoaXMubWFwLnByb2plY3Rpb24gfSksXG4gICAgICBzdHlsZTogKGZlYXR1cmUsIHJlc29sdXRpb24pID0+IHtcbiAgICAgICAgaWYgKHRoaXMubXZ0U3R5bGVPcHRpb25zICYmIGZlYXR1cmUuZ2V0SWQoKSBpbiB0aGlzLnNlbGVjdGlvbk1WVCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUhvdmVyU3R5bGUoXG4gICAgICAgICAgICBmZWF0dXJlLFxuICAgICAgICAgICAgdGhpcy5tdnRTdHlsZU9wdGlvbnMsXG4gICAgICAgICAgICByZXNvbHV0aW9uXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgY3JlYXRlSG92ZXJTdHlsZShcbiAgICBmZWF0dXJlOiBSZW5kZXJGZWF0dXJlIHwgT2xGZWF0dXJlPE9sR2VvbWV0cnk+LFxuICAgIGhvdmVyU3R5bGU6IFN0eWxlQnlBdHRyaWJ1dGUsXG4gICAgcmVzb2x1dGlvbjogbnVtYmVyXG4gICkge1xuICAgIGNvbnN0IGxvY2FsSG92ZXJTdHlsZSA9IHsgLi4uaG92ZXJTdHlsZSB9O1xuICAgIGxldCBsYWJlbCA9IGhvdmVyU3R5bGUubGFiZWwgPyBob3ZlclN0eWxlLmxhYmVsLmF0dHJpYnV0ZSA6IHVuZGVmaW5lZDtcbiAgICBsZXQgaGFzTGFiZWxTdHlsZSA9IGhvdmVyU3R5bGUubGFiZWw/LnN0eWxlID8gdHJ1ZSA6IGZhbHNlO1xuXG4gICAgaWYgKCFmZWF0dXJlLmdldCgnX2lzTGFiZWwnKSkge1xuICAgICAgbG9jYWxIb3ZlclN0eWxlLmxhYmVsID0gdW5kZWZpbmVkO1xuICAgICAgaGFzTGFiZWxTdHlsZSA9IGZhbHNlO1xuICAgICAgbGFiZWwgPSB1bmRlZmluZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGNsZWFyIHRoZSBzdHlsZSBmb3IgbGFiZWwuLi4uXG4gICAgICBjb25zdCBzaXplID0gbG9jYWxIb3ZlclN0eWxlLmRhdGEgPyBsb2NhbEhvdmVyU3R5bGUuZGF0YS5sZW5ndGggOiAwO1xuICAgICAgY29uc3QgcmFkaXVzID0gW107XG4gICAgICBjb25zdCBzdHJva2UgPSBbXTtcbiAgICAgIGNvbnN0IHdpZHRoID0gW107XG4gICAgICBjb25zdCBmaWxsID0gW107XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNpemU7IGkrKykge1xuICAgICAgICByYWRpdXMucHVzaCgwKTtcbiAgICAgICAgc3Ryb2tlLnB1c2goJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMCknKTtcbiAgICAgICAgd2lkdGgucHVzaCgwKTtcbiAgICAgICAgZmlsbC5wdXNoKCdyZ2JhKDI1NSwgMjU1LCAyNTUsIDApJyk7XG4gICAgICB9XG4gICAgICBsb2NhbEhvdmVyU3R5bGUucmFkaXVzID0gcmFkaXVzO1xuICAgICAgbG9jYWxIb3ZlclN0eWxlLnN0cm9rZSA9IHN0cm9rZTtcbiAgICAgIGxvY2FsSG92ZXJTdHlsZS53aWR0aCA9IHdpZHRoO1xuICAgICAgbG9jYWxIb3ZlclN0eWxlLmZpbGwgPSBmaWxsO1xuICAgIH1cbiAgICBpZiAoIWhhc0xhYmVsU3R5bGUgJiYgbGFiZWwpIHtcbiAgICAgIGxvY2FsSG92ZXJTdHlsZS5sYWJlbC5zdHlsZSA9IHtcbiAgICAgICAgdGV4dEFsaWduOiAnbGVmdCcsXG4gICAgICAgIHRleHRCYXNlbGluZTogJ3RvcCcsXG4gICAgICAgIGZvbnQ6ICcxMnB4IENhbGlicmksc2Fucy1zZXJpZicsXG4gICAgICAgIGZpbGw6IHsgY29sb3I6ICcjMDAwJyB9LFxuICAgICAgICBiYWNrZ3JvdW5kRmlsbDogeyBjb2xvcjogJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMC41KScgfSxcbiAgICAgICAgYmFja2dyb3VuZFN0cm9rZTogeyBjb2xvcjogJ3JnYmEoMjAwLCAyMDAsIDIwMCwgMC43NSknLCB3aWR0aDogMiB9LFxuICAgICAgICBzdHJva2U6IHsgY29sb3I6ICcjZmZmJywgd2lkdGg6IDMgfSxcbiAgICAgICAgb3ZlcmZsb3c6IHRydWUsXG4gICAgICAgIG9mZnNldFg6IDEwLFxuICAgICAgICBvZmZzZXRZOiAyMCxcbiAgICAgICAgcGFkZGluZzogWzIuNSwgMi41LCAyLjUsIDIuNV1cbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnN0eWxlU2VydmljZS5jcmVhdGVTdHlsZUJ5QXR0cmlidXRlKFxuICAgICAgZmVhdHVyZSxcbiAgICAgIGxvY2FsSG92ZXJTdHlsZSxcbiAgICAgIHJlc29sdXRpb25cbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0b3AgbGlzdGVuaW5nIHRvIHBvaW50ZXJtb3ZlIGFuZCByZXZlcnNlIHNlYXJjaCByZXN1bHRzLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMudW5saXN0ZW5Ub01hcFBvaW50ZXJNb3ZlKCk7XG4gICAgdGhpcy51bnN1YnNjcmliZVRvUG9pbnRlclN0b3JlKCk7XG4gICAgdGhpcy51bmxpc3RlblRvTWFwU2luZ2xlQ2xpY2soKTtcbiAgICB0aGlzLmxheWVycyQkPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1YnNjcmliZSB0byBwb2ludGVybW92ZSByZXN1bHQgc3RvcmVcbiAgICogQGludGVybmFsXG4gICAqL1xuICBzdWJzY3JpYmVUb1BvaW50ZXJTdG9yZSgpIHtcbiAgICB0aGlzLnN0b3JlJCQgPSB0aGlzLnBvaW50ZXJIb3ZlckZlYXR1cmVTdG9yZS5lbnRpdGllcyQuc3Vic2NyaWJlKFxuICAgICAgKHJlc3VsdHNVbmRlclBvaW50ZXJQb3NpdGlvbikgPT4ge1xuICAgICAgICB0aGlzLmFkZEZlYXR1cmVPdmVybGF5KHJlc3VsdHNVbmRlclBvaW50ZXJQb3NpdGlvbik7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPbiBtYXAgcG9pbnRlcm1vdmVcbiAgICovXG4gIHByaXZhdGUgbGlzdGVuVG9NYXBQb2ludGVyTW92ZSgpIHtcbiAgICB0aGlzLnBvaW50ZXJNb3ZlTGlzdGVuZXIgPSB0aGlzLm1hcC5vbC5vbihcbiAgICAgICdwb2ludGVybW92ZScsXG4gICAgICAoZXZlbnQ6IE9sTWFwQnJvd3NlckV2ZW50PGFueT4pID0+IHRoaXMub25NYXBFdmVudChldmVudClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIE9uIG1hcCBzaW5nbGVjbGlja1xuICAgKi9cbiAgcHJpdmF0ZSBsaXN0ZW5Ub01hcENsaWNrKCkge1xuICAgIHRoaXMuc2luZ2xlQ2xpY2tNYXBMaXN0ZW5lciA9IHRoaXMubWFwLm9sLm9uKCdzaW5nbGVjbGljaycsICgpID0+XG4gICAgICB0aGlzLm9uTWFwU2luZ2xlQ2xpY2tFdmVudCgpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbnN1YnNjcmliZSB0byBwb2ludGVyIHN0b3JlLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHVuc3Vic2NyaWJlVG9Qb2ludGVyU3RvcmUoKSB7XG4gICAgdGhpcy5zdG9yZSQkPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0b3AgbGlzdGVuaW5nIGZvciBtYXAgcG9pbnRlcm1vdmVcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcml2YXRlIHVubGlzdGVuVG9NYXBQb2ludGVyTW92ZSgpIHtcbiAgICB1bkJ5S2V5KHRoaXMucG9pbnRlck1vdmVMaXN0ZW5lcik7XG4gICAgdGhpcy5wb2ludGVyTW92ZUxpc3RlbmVyID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0b3AgbGlzdGVuaW5nIGZvciBtYXAgc2luZ2xlY2xpY2tcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcml2YXRlIHVubGlzdGVuVG9NYXBTaW5nbGVDbGljaygpIHtcbiAgICB1bkJ5S2V5KHRoaXMuc2luZ2xlQ2xpY2tNYXBMaXN0ZW5lcik7XG4gICAgdGhpcy5zaW5nbGVDbGlja01hcExpc3RlbmVyID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyaWdnZXIgY2xlYXIgbGF5ZXIgb24gc2luZ2xlY2xpY2suXG4gICAqIEBwYXJhbSBldmVudCBPTCBtYXAgYnJvd3NlciBzaW5nbGVjbGljayBldmVudFxuICAgKi9cbiAgcHJpdmF0ZSBvbk1hcFNpbmdsZUNsaWNrRXZlbnQoKSB7XG4gICAgdGhpcy5jbGVhckxheWVyKCk7XG4gIH1cblxuICAvKipcbiAgICogVHJpZ2dlciBob3ZlciB3aGVuIHRoZSBtb3VzZSBpcyBtb3Rpb25sZXNzIGR1cmluZyB0aGUgZGVmaW5lZCBkZWxheSAocG9pbnRlck1vdmVEZWxheSkuXG4gICAqIEBwYXJhbSBldmVudCBPTCBtYXAgYnJvd3NlciBwb2ludGVyIGV2ZW50XG4gICAqL1xuICBwcml2YXRlIG9uTWFwRXZlbnQoZXZlbnQ6IE9sTWFwQnJvd3NlckV2ZW50PGFueT4pIHtcbiAgICBpZiAoXG4gICAgICBldmVudC5kcmFnZ2luZyB8fFxuICAgICAgIXRoaXMuaWdvSG92ZXJGZWF0dXJlRW5hYmxlZCB8fFxuICAgICAgdGhpcy5tZWRpYVNlcnZpY2UuaXNUb3VjaFNjcmVlbigpXG4gICAgKSB7XG4gICAgICB0aGlzLmNsZWFyTGF5ZXIoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB0aGlzLmxhc3RUaW1lb3V0UmVxdWVzdCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIC8vIGNhbmNlbCB0aW1lb3V0IHdoZW4gdGhlIG1vdXNlIG1vdmVzXG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5sYXN0VGltZW91dFJlcXVlc3QpO1xuICAgIH1cbiAgICBsZXQgbWF4aW11bVppbmRleCA9IC1JbmZpbml0eTtcbiAgICBsZXQgdG9wTW9zdE9sTGF5ZXI7XG4gICAgY29uc3QgcGl4ZWwgPSB0aGlzLm1hcC5vbC5nZXRQaXhlbEZyb21Db29yZGluYXRlKGV2ZW50LmNvb3JkaW5hdGUpO1xuICAgIHRoaXMubGFzdFRpbWVvdXRSZXF1ZXN0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvLyByZXRyaWV2ZSB0aGUgdG9wbW9zdCBsYXllciB3aXRoIGZlYXR1cmUgdG8gb25seSBhcHBseSB0aGUgaG92ZXIgb24gdGhpcyBsYXllci5cbiAgICAgIHRoaXMubWFwLm9sLmZvckVhY2hGZWF0dXJlQXRQaXhlbChcbiAgICAgICAgcGl4ZWwsXG4gICAgICAgIChtYXBGZWF0dXJlOiBSZW5kZXJGZWF0dXJlIHwgT2xGZWF0dXJlPE9sR2VvbWV0cnk+LCBsYXllck9MOiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAoIWxheWVyT0wpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgaWdvTGF5ZXIgPSB0aGlzLm1hcC5nZXRMYXllckJ5T2xVSWQoKGxheWVyT0wgYXMgYW55KS5vbF91aWQpO1xuICAgICAgICAgIGlmICghdGhpcy5jYW5Qcm9jZXNzSG92ZXIoaWdvTGF5ZXIgYXMgYW55KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaWdvTGF5ZXIuekluZGV4IDw9IG1heGltdW1aaW5kZXgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgbWF4aW11bVppbmRleCA9IGlnb0xheWVyLnpJbmRleDtcbiAgICAgICAgICB0b3BNb3N0T2xMYXllciA9IGxheWVyT0w7XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBoaXRUb2xlcmFuY2U6IDEwLFxuICAgICAgICAgIGxheWVyRmlsdGVyOiAob2xMYXllcikgPT5cbiAgICAgICAgICAgIG9sTGF5ZXIgaW5zdGFuY2VvZiBvbExheWVyVmVjdG9yIHx8XG4gICAgICAgICAgICBvbExheWVyIGluc3RhbmNlb2Ygb2xMYXllclZlY3RvclRpbGVcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIGlmICghdG9wTW9zdE9sTGF5ZXIpIHtcbiAgICAgICAgLy8gVG8gY2xlYXIgbGFiZWxcbiAgICAgICAgdGhpcy5jbGVhckxheWVyKCk7XG4gICAgICAgIHRoaXMucG9pbnRlckhvdmVyRmVhdHVyZVN0b3JlLmNsZWFyKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5tYXAub2wuZm9yRWFjaEZlYXR1cmVBdFBpeGVsKFxuICAgICAgICBwaXhlbCxcbiAgICAgICAgKG1hcEZlYXR1cmU6IFJlbmRlckZlYXR1cmUgfCBPbEZlYXR1cmU8T2xHZW9tZXRyeT4sIGxheWVyT0w6IGFueSkgPT4ge1xuICAgICAgICAgIC8vIFRvIGF2b2lkIGZsYXNoaW5nIGZlYXR1cmVcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBtYXBGZWF0dXJlLmdldCgnaG92ZXJTdW1tYXJ5JykgPT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgbWFwRmVhdHVyZS5nZXRQcm9wZXJ0aWVzKCkgIT09XG4gICAgICAgICAgICAgIHRoaXMucG9pbnRlckhvdmVyRmVhdHVyZVN0b3JlLmFsbCgpWzBdPy5nZXRQcm9wZXJ0aWVzKClcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJMYXllcigpO1xuICAgICAgICAgICAgaWYgKGxheWVyT0wgaW5zdGFuY2VvZiBvbExheWVyVmVjdG9yKSB7XG4gICAgICAgICAgICAgIGNvbnN0IG15TGF5ZXJWZWN0b3IgPSB0aGlzLm1hcC5nZXRMYXllckJ5T2xVSWQoXG4gICAgICAgICAgICAgICAgKGxheWVyT0wgYXMgYW55KS5vbF91aWRcbiAgICAgICAgICAgICAgKSBhcyBWZWN0b3JMYXllcjtcbiAgICAgICAgICAgICAgaWYgKCF0aGlzLmNhblByb2Nlc3NIb3ZlcihteUxheWVyVmVjdG9yKSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjb25zdCBsb2NhbE9sRmVhdHVyZSA9IHRoaXMuaGFuZGxlUmVuZGVyRmVhdHVyZShtYXBGZWF0dXJlKTtcbiAgICAgICAgICAgICAgdGhpcy5zZXRMYXllclN0eWxlRnJvbU9wdGlvbnMobXlMYXllclZlY3RvciwgbG9jYWxPbEZlYXR1cmUpO1xuICAgICAgICAgICAgICBjb25zdCBmZWF0dXJlc1RvTG9hZCA9IFtsb2NhbE9sRmVhdHVyZV07XG4gICAgICAgICAgICAgIGxvY2FsT2xGZWF0dXJlLnNldCgnX2lzTGFiZWwnLCBmYWxzZSk7XG4gICAgICAgICAgICAgIGNvbnN0IG15TGFiZWxPbEZlYXR1cmUgPSBuZXcgT2xGZWF0dXJlKCk7XG4gICAgICAgICAgICAgIG15TGFiZWxPbEZlYXR1cmUuc2V0UHJvcGVydGllcyhsb2NhbE9sRmVhdHVyZS5nZXRQcm9wZXJ0aWVzKCkpO1xuICAgICAgICAgICAgICBjb25zdCBsYWJlbEdlb20gPVxuICAgICAgICAgICAgICAgIGxvY2FsT2xGZWF0dXJlLmdldEdlb21ldHJ5KCkuZ2V0VHlwZSgpID09PSAnUG9pbnQnXG4gICAgICAgICAgICAgICAgICA/IGxvY2FsT2xGZWF0dXJlLmdldEdlb21ldHJ5KClcbiAgICAgICAgICAgICAgICAgIDogbmV3IE9sR2VvbS5Qb2ludChldmVudC5jb29yZGluYXRlKTtcbiAgICAgICAgICAgICAgbXlMYWJlbE9sRmVhdHVyZS5zZXRHZW9tZXRyeShsYWJlbEdlb20pO1xuICAgICAgICAgICAgICBteUxhYmVsT2xGZWF0dXJlLnNldElkKGxvY2FsT2xGZWF0dXJlLmdldElkKCkpO1xuICAgICAgICAgICAgICBteUxhYmVsT2xGZWF0dXJlLnNldCgnX2lzTGFiZWwnLCB0cnVlKTtcbiAgICAgICAgICAgICAgdGhpcy5zZXRMYXllclN0eWxlRnJvbU9wdGlvbnMobXlMYXllclZlY3RvciwgbXlMYWJlbE9sRmVhdHVyZSk7XG4gICAgICAgICAgICAgIGZlYXR1cmVzVG9Mb2FkLnB1c2gobXlMYWJlbE9sRmVhdHVyZSk7XG4gICAgICAgICAgICAgIHRoaXMucG9pbnRlckhvdmVyRmVhdHVyZVN0b3JlLmxvYWQoZmVhdHVyZXNUb0xvYWQpO1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChsYXllck9MIGluc3RhbmNlb2Ygb2xMYXllclZlY3RvclRpbGUpIHtcbiAgICAgICAgICAgICAgY29uc3QgbXlMYXllclZlY3RvclRpbGUgPSB0aGlzLm1hcC5nZXRMYXllckJ5T2xVSWQoXG4gICAgICAgICAgICAgICAgKGxheWVyT0wgYXMgYW55KS5vbF91aWRcbiAgICAgICAgICAgICAgKSBhcyBWZWN0b3JUaWxlTGF5ZXI7XG4gICAgICAgICAgICAgIGlmICghdGhpcy5jYW5Qcm9jZXNzSG92ZXIobXlMYXllclZlY3RvclRpbGUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBteUxheWVyVmVjdG9yVGlsZT8ub3B0aW9ucz8uaWdvU3R5bGU/LnN0eWxlQnlBdHRyaWJ1dGVcbiAgICAgICAgICAgICAgICAgID8uaG92ZXJTdHlsZVxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICB0aGlzLm12dFN0eWxlT3B0aW9ucyA9XG4gICAgICAgICAgICAgICAgICBteUxheWVyVmVjdG9yVGlsZS5vcHRpb25zLmlnb1N0eWxlLnN0eWxlQnlBdHRyaWJ1dGUuaG92ZXJTdHlsZTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChteUxheWVyVmVjdG9yVGlsZT8ub3B0aW9ucz8uaWdvU3R5bGU/LmhvdmVyU3R5bGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm12dFN0eWxlT3B0aW9ucyA9XG4gICAgICAgICAgICAgICAgICBteUxheWVyVmVjdG9yVGlsZS5vcHRpb25zLmlnb1N0eWxlLmhvdmVyU3R5bGU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25MYXllci5zZXRTb3VyY2UobGF5ZXJPTC5nZXRTb3VyY2UoKSk7XG4gICAgICAgICAgICAgIGxheWVyT0xcbiAgICAgICAgICAgICAgICAuZ2V0RmVhdHVyZXMoZXZlbnQucGl4ZWwpXG4gICAgICAgICAgICAgICAgLnRoZW4oXG4gICAgICAgICAgICAgICAgICAobXZ0RmVhdHVyZXM6IChSZW5kZXJGZWF0dXJlIHwgT2xGZWF0dXJlPE9sR2VvbWV0cnk+KVtdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghbXZ0RmVhdHVyZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25NVlQgPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbkxheWVyLmNoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsZWFyTGF5ZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmVhdHVyZSA9IG12dEZlYXR1cmVzWzBdO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWZlYXR1cmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsZWFyTGF5ZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbG9jYWxPbEZlYXR1cmUgPSB0aGlzLmhhbmRsZVJlbmRlckZlYXR1cmUoZmVhdHVyZSk7XG4gICAgICAgICAgICAgICAgICAgIGxvY2FsT2xGZWF0dXJlLnNldCgnX2lzTGFiZWwnLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG15TGFiZWxPbEZlYXR1cmUgPSBuZXcgT2xGZWF0dXJlKCk7XG4gICAgICAgICAgICAgICAgICAgIG15TGFiZWxPbEZlYXR1cmUuc2V0UHJvcGVydGllcyhcbiAgICAgICAgICAgICAgICAgICAgICBsb2NhbE9sRmVhdHVyZS5nZXRQcm9wZXJ0aWVzKClcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFiZWxHZW9tID1cbiAgICAgICAgICAgICAgICAgICAgICBsb2NhbE9sRmVhdHVyZS5nZXRHZW9tZXRyeSgpLmdldFR5cGUoKSA9PT0gJ1BvaW50J1xuICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbE9sRmVhdHVyZS5nZXRHZW9tZXRyeSgpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IG5ldyBPbEdlb20uUG9pbnQoZXZlbnQuY29vcmRpbmF0ZSk7XG4gICAgICAgICAgICAgICAgICAgIG15TGFiZWxPbEZlYXR1cmUuc2V0R2VvbWV0cnkobGFiZWxHZW9tKTtcbiAgICAgICAgICAgICAgICAgICAgbXlMYWJlbE9sRmVhdHVyZS5zZXRJZChsb2NhbE9sRmVhdHVyZS5nZXRJZCgpKTtcbiAgICAgICAgICAgICAgICAgICAgbXlMYWJlbE9sRmVhdHVyZS5zZXQoJ19pc0xhYmVsJywgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0TGF5ZXJTdHlsZUZyb21PcHRpb25zKFxuICAgICAgICAgICAgICAgICAgICAgIG15TGF5ZXJWZWN0b3JUaWxlLFxuICAgICAgICAgICAgICAgICAgICAgIG15TGFiZWxPbEZlYXR1cmVcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wb2ludGVySG92ZXJGZWF0dXJlU3RvcmUubG9hZChbbXlMYWJlbE9sRmVhdHVyZV0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbk1WVFtmZWF0dXJlLmdldElkKCldID0gbG9jYWxPbEZlYXR1cmU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uTGF5ZXIuY2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaGl0VG9sZXJhbmNlOiAxMCxcbiAgICAgICAgICBsYXllckZpbHRlcjogKG9sTGF5ZXIpID0+IG9sTGF5ZXIgPT09IHRvcE1vc3RPbExheWVyXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSwgdGhpcy5pZ29Ib3ZlckZlYXR1cmVEZWxheSk7XG4gIH1cblxuICBjYW5Qcm9jZXNzSG92ZXIoaWdvTGF5ZXI6IFZlY3RvckxheWVyIHwgVmVjdG9yVGlsZUxheWVyKTogYm9vbGVhbiB7XG4gICAgaWYgKCFpZ29MYXllcikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoIWlnb0xheWVyLnZpc2libGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKCFpZ29MYXllci5vcHRpb25zKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgIWlnb0xheWVyLm9wdGlvbnMuaWdvU3R5bGU/LnN0eWxlQnlBdHRyaWJ1dGUgJiZcbiAgICAgICFpZ29MYXllci5vcHRpb25zLmlnb1N0eWxlPy5ob3ZlclN0eWxlXG4gICAgKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgaWdvTGF5ZXIub3B0aW9ucy5pZ29TdHlsZT8uc3R5bGVCeUF0dHJpYnV0ZSAmJlxuICAgICAgIWlnb0xheWVyLm9wdGlvbnMuaWdvU3R5bGU/LnN0eWxlQnlBdHRyaWJ1dGUuaG92ZXJTdHlsZSAmJlxuICAgICAgIWlnb0xheWVyLm9wdGlvbnMuaWdvU3R5bGU/LmhvdmVyU3R5bGVcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBoYW5kbGVSZW5kZXJGZWF0dXJlKFxuICAgIGZlYXR1cmU6IFJlbmRlckZlYXR1cmUgfCBPbEZlYXR1cmU8T2xHZW9tZXRyeT5cbiAgKTogT2xGZWF0dXJlPE9sR2VvbWV0cnk+IHtcbiAgICBsZXQgbG9jYWxGZWF0dXJlOiBPbEZlYXR1cmU8T2xHZW9tZXRyeT47XG4gICAgaWYgKGZlYXR1cmUgaW5zdGFuY2VvZiBSZW5kZXJGZWF0dXJlKSB7XG4gICAgICBsb2NhbEZlYXR1cmUgPSBuZXcgT2xGZWF0dXJlKHtcbiAgICAgICAgZ2VvbWV0cnk6IHRoaXMuZ2V0R2VvbWV0cnkoZmVhdHVyZSlcbiAgICAgIH0pO1xuICAgICAgbG9jYWxGZWF0dXJlLnNldElkKGZlYXR1cmUuZ2V0SWQoKSk7XG4gICAgfSBlbHNlIGlmIChmZWF0dXJlIGluc3RhbmNlb2YgT2xGZWF0dXJlKSB7XG4gICAgICBsb2NhbEZlYXR1cmUgPSBmZWF0dXJlO1xuICAgIH1cbiAgICBsb2NhbEZlYXR1cmUuc2V0UHJvcGVydGllcyhmZWF0dXJlLmdldFByb3BlcnRpZXMoKSk7XG4gICAgcmV0dXJuIGxvY2FsRmVhdHVyZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBmZWF0dXJlIHRvIHRoZSBwb2ludGVyIHN0b3JlXG4gICAqIEBwYXJhbSB0ZXh0IHN0cmluZ1xuICAgKi9cbiAgcHJpdmF0ZSBhZGRGZWF0dXJlT3ZlcmxheShob3ZlckVudGl0eTogT2xGZWF0dXJlPE9sR2VvbWV0cnk+W10pIHtcbiAgICBpZiAoaG92ZXJFbnRpdHkubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gaG92ZXJFbnRpdHlbMF07XG4gICAgICB0aGlzLmNsZWFyTGF5ZXIoKTtcbiAgICAgIGNvbnN0IGZlYXR1cmUgPSBuZXcgT2xGZWF0dXJlKHtcbiAgICAgICAgZ2VvbWV0cnk6IHJlc3VsdC5nZXRHZW9tZXRyeSgpLFxuICAgICAgICBtZXRhOiB7IGlkOiB0aGlzLmhvdmVyRmVhdHVyZUlkIH0sXG4gICAgICAgIGhvdmVyU3VtbWFyeTogdGhpcy5nZXRIb3ZlclN1bW1hcnkocmVzdWx0LmdldFByb3BlcnRpZXMoKSlcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnN0b3JlLnNldExheWVyT2xGZWF0dXJlcyhbZmVhdHVyZV0sIEZlYXR1cmVNb3Rpb24uTm9uZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRMYXllclN0eWxlRnJvbU9wdGlvbnMoXG4gICAgaWdvTGF5ZXI6IFZlY3RvckxheWVyIHwgVmVjdG9yVGlsZUxheWVyLFxuICAgIGZlYXR1cmU6IE9sRmVhdHVyZTxPbEdlb21ldHJ5PlxuICApIHtcbiAgICBjb25zdCByZXNvbHV0aW9uID0gdGhpcy5zdG9yZS5sYXllci5tYXAudmlld0NvbnRyb2xsZXIuZ2V0UmVzb2x1dGlvbigpO1xuICAgIGlmIChpZ29MYXllcj8ub3B0aW9ucz8uaWdvU3R5bGU/LnN0eWxlQnlBdHRyaWJ1dGU/LmhvdmVyU3R5bGUpIHtcbiAgICAgIHRoaXMuc3RvcmUubGF5ZXIub2wuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuY3JlYXRlSG92ZXJTdHlsZShcbiAgICAgICAgICBmZWF0dXJlLFxuICAgICAgICAgIGlnb0xheWVyLm9wdGlvbnMuaWdvU3R5bGUuc3R5bGVCeUF0dHJpYnV0ZS5ob3ZlclN0eWxlLFxuICAgICAgICAgIHJlc29sdXRpb25cbiAgICAgICAgKVxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGlnb0xheWVyPy5vcHRpb25zPy5pZ29TdHlsZT8uaG92ZXJTdHlsZSkge1xuICAgICAgdGhpcy5zdG9yZS5sYXllci5vbC5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5jcmVhdGVIb3ZlclN0eWxlKFxuICAgICAgICAgIGZlYXR1cmUsXG4gICAgICAgICAgaWdvTGF5ZXIub3B0aW9ucy5pZ29TdHlsZS5ob3ZlclN0eWxlLFxuICAgICAgICAgIHJlc29sdXRpb25cbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEhvdmVyU3VtbWFyeShwcm9wZXJ0aWVzKTogc3RyaW5nIHtcbiAgICBsZXQgc3VtbWFyeSA9ICcnO1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHByb3BlcnRpZXMpKSB7XG4gICAgICBpZiAoIWtleS5zdGFydHNXaXRoKCdfJykgJiYga2V5ICE9PSAnZ2VvbWV0cnknKSB7XG4gICAgICAgIHN1bW1hcnkgKz0gYCR7a2V5fTogJHt2YWx1ZX1gICsgJ1xcbic7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBzdW1tYXJ5Lmxlbmd0aCA+PSAyID8gc3VtbWFyeS5zbGljZSgwLCAtMikgOiBzdW1tYXJ5O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRHZW9tZXRyeShmZWF0dXJlKTogT2xHZW9tLkdlb21ldHJ5IHtcbiAgICBsZXQgZ2VvbTtcbiAgICBpZiAoIWZlYXR1cmUuZ2V0T3JpZW50ZWRGbGF0Q29vcmRpbmF0ZXMpIHtcbiAgICAgIGdlb20gPSBmZWF0dXJlLmdldEdlb21ldHJ5KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGNvb3JkcyA9IGZlYXR1cmUuZ2V0T3JpZW50ZWRGbGF0Q29vcmRpbmF0ZXMoKTtcbiAgICAgIGNvbnN0IGZsYXRDb29yZHMgPSBbXTtcblxuICAgICAgY29vcmRzLmZvckVhY2goKGMsIGlkeCkgPT4ge1xuICAgICAgICBpZiAoaWR4ICUgMiA9PT0gMCkge1xuICAgICAgICAgIGZsYXRDb29yZHMucHVzaChbXG4gICAgICAgICAgICBwYXJzZUZsb2F0KGNvb3Jkc1tpZHhdKSxcbiAgICAgICAgICAgIHBhcnNlRmxvYXQoY29vcmRzW2lkeCArIDFdKVxuICAgICAgICAgIF0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgLy8gVE9ETzogdGVzdCBNdWx0aVhcbiAgICAgIHN3aXRjaCAoZmVhdHVyZS5nZXRUeXBlKCkpIHtcbiAgICAgICAgY2FzZSAnUG9pbnQnOlxuICAgICAgICAgIGdlb20gPSBuZXcgT2xHZW9tLlBvaW50KGZsYXRDb29yZHMpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdQb2x5Z29uJzpcbiAgICAgICAgICBnZW9tID0gbmV3IE9sR2VvbS5Qb2x5Z29uKFtmbGF0Q29vcmRzXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ0xpbmVTdHJpbmcnOlxuICAgICAgICAgIGdlb20gPSBuZXcgT2xHZW9tLkxpbmVTdHJpbmcoW2ZsYXRDb29yZHNdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZ2VvbTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhciB0aGUgcG9pbnRlciBzdG9yZSBmZWF0dXJlc1xuICAgKi9cbiAgcHJpdmF0ZSBjbGVhckxheWVyKCkge1xuICAgIHRoaXMuc2VsZWN0aW9uTVZUID0ge307XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uTGF5ZXIpIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uTGF5ZXIuY2hhbmdlZCgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zdG9yZSkge1xuICAgICAgdGhpcy5zdG9yZS5jbGVhckxheWVyKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,15 +0,0 @@
1
- export * from './map';
2
- export * from './map.abstract';
3
- export * from './map.enums';
4
- export * from './map.interface';
5
- export * from './map.service';
6
- export * from './map.utils';
7
- export * from './mapOffline.directive';
8
- export * from './map-pointer-position.directive';
9
- export * from './hover-feature.directive';
10
- export * from './projection.interfaces';
11
- export * from './projection.service';
12
- export * from './controllers';
13
- export * from './projection.utils';
14
- export * from './linkedLayers.utils';
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9tYXAvc2hhcmVkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsT0FBTyxDQUFDO0FBQ3RCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9tYXAnO1xuZXhwb3J0ICogZnJvbSAnLi9tYXAuYWJzdHJhY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9tYXAuZW51bXMnO1xuZXhwb3J0ICogZnJvbSAnLi9tYXAuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbWFwLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9tYXAudXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9tYXBPZmZsaW5lLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL21hcC1wb2ludGVyLXBvc2l0aW9uLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2hvdmVyLWZlYXR1cmUuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vcHJvamVjdGlvbi5pbnRlcmZhY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vcHJvamVjdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbGxlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm9qZWN0aW9uLnV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vbGlua2VkTGF5ZXJzLnV0aWxzJztcbiJdfQ==