@igo2/geo 1.14.2 → 1.14.3

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 (871) hide show
  1. package/esm2020/igo2-geo.mjs +4 -4
  2. package/esm2020/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +300 -300
  3. package/esm2020/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +305 -305
  4. package/esm2020/lib/catalog/catalog-browser/catalog-browser.component.mjs +246 -246
  5. package/esm2020/lib/catalog/catalog-browser/catalog-browser.module.mjs +79 -79
  6. package/esm2020/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +208 -208
  7. package/esm2020/lib/catalog/catalog-library/catalog-library-item.component.mjs +78 -78
  8. package/esm2020/lib/catalog/catalog-library/catalog-library.component.mjs +216 -216
  9. package/esm2020/lib/catalog/catalog-library/catalog-library.module.mjs +94 -94
  10. package/esm2020/lib/catalog/catalog.module.mjs +52 -52
  11. package/esm2020/lib/catalog/index.mjs +4 -4
  12. package/esm2020/lib/catalog/shared/catalog.abstract.mjs +94 -94
  13. package/esm2020/lib/catalog/shared/catalog.enum.mjs +15 -15
  14. package/esm2020/lib/catalog/shared/catalog.interface.mjs +1 -1
  15. package/esm2020/lib/catalog/shared/catalog.service.mjs +605 -605
  16. package/esm2020/lib/catalog/shared/index.mjs +4 -4
  17. package/esm2020/lib/datasource/datasource.module.mjs +21 -21
  18. package/esm2020/lib/datasource/index.mjs +2 -2
  19. package/esm2020/lib/datasource/shared/capabilities.service.mjs +430 -430
  20. package/esm2020/lib/datasource/shared/datasource.service.mjs +235 -235
  21. package/esm2020/lib/datasource/shared/datasources/any-datasource.interface.mjs +1 -1
  22. package/esm2020/lib/datasource/shared/datasources/any-datasource.mjs +1 -1
  23. package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.interface.mjs +1 -1
  24. package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +144 -144
  25. package/esm2020/lib/datasource/shared/datasources/carto-datasource.interface.mjs +1 -1
  26. package/esm2020/lib/datasource/shared/datasources/carto-datasource.mjs +108 -108
  27. package/esm2020/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +1 -1
  28. package/esm2020/lib/datasource/shared/datasources/cluster-datasource.mjs +14 -14
  29. package/esm2020/lib/datasource/shared/datasources/data.service.mjs +2 -2
  30. package/esm2020/lib/datasource/shared/datasources/datasource.interface.mjs +1 -1
  31. package/esm2020/lib/datasource/shared/datasources/datasource.mjs +28 -28
  32. package/esm2020/lib/datasource/shared/datasources/feature-datasource.interface.mjs +1 -1
  33. package/esm2020/lib/datasource/shared/datasources/feature-datasource.mjs +42 -42
  34. package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.mjs +1 -1
  35. package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +56 -56
  36. package/esm2020/lib/datasource/shared/datasources/index.mjs +35 -35
  37. package/esm2020/lib/datasource/shared/datasources/mvt-datasource.interface.mjs +1 -1
  38. package/esm2020/lib/datasource/shared/datasources/mvt-datasource.mjs +27 -27
  39. package/esm2020/lib/datasource/shared/datasources/osm-datasource.interface.mjs +1 -1
  40. package/esm2020/lib/datasource/shared/datasources/osm-datasource.mjs +11 -11
  41. package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.mjs +1 -1
  42. package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +48 -48
  43. package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.interface.mjs +1 -1
  44. package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.mjs +14 -14
  45. package/esm2020/lib/datasource/shared/datasources/websocket-datasource.interface.mjs +1 -1
  46. package/esm2020/lib/datasource/shared/datasources/websocket-datasource.mjs +53 -53
  47. package/esm2020/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +1 -1
  48. package/esm2020/lib/datasource/shared/datasources/wfs-datasource.mjs +71 -71
  49. package/esm2020/lib/datasource/shared/datasources/wfs.service.mjs +151 -151
  50. package/esm2020/lib/datasource/shared/datasources/wms-datasource.interface.mjs +1 -1
  51. package/esm2020/lib/datasource/shared/datasources/wms-datasource.mjs +205 -205
  52. package/esm2020/lib/datasource/shared/datasources/wms-wfs.utils.mjs +206 -206
  53. package/esm2020/lib/datasource/shared/datasources/wmts-datasource.interface.mjs +1 -1
  54. package/esm2020/lib/datasource/shared/datasources/wmts-datasource.mjs +15 -15
  55. package/esm2020/lib/datasource/shared/datasources/xyz-datasource.interface.mjs +1 -1
  56. package/esm2020/lib/datasource/shared/datasources/xyz-datasource.mjs +8 -8
  57. package/esm2020/lib/datasource/shared/index.mjs +4 -4
  58. package/esm2020/lib/datasource/shared/options/index.mjs +4 -4
  59. package/esm2020/lib/datasource/shared/options/options-api.interface.mjs +1 -1
  60. package/esm2020/lib/datasource/shared/options/options-api.providers.mjs +14 -14
  61. package/esm2020/lib/datasource/shared/options/options-api.service.mjs +80 -80
  62. package/esm2020/lib/datasource/shared/options/options.service.mjs +2 -2
  63. package/esm2020/lib/datasource/utils/esri-style-generator.mjs +356 -356
  64. package/esm2020/lib/datasource/utils/index.mjs +2 -2
  65. package/esm2020/lib/datasource/utils/tilegrid.mjs +19 -19
  66. package/esm2020/lib/directions/directions-buttons/directions-buttons.component.mjs +223 -223
  67. package/esm2020/lib/directions/directions-buttons/index.mjs +1 -1
  68. package/esm2020/lib/directions/directions-inputs/directions-inputs.component.mjs +289 -289
  69. package/esm2020/lib/directions/directions-inputs/index.mjs +1 -1
  70. package/esm2020/lib/directions/directions-results/directions-results.component.mjs +195 -195
  71. package/esm2020/lib/directions/directions-results/index.mjs +1 -1
  72. package/esm2020/lib/directions/directions-sources/directions-source.interface.mjs +1 -1
  73. package/esm2020/lib/directions/directions-sources/directions-source.mjs +2 -2
  74. package/esm2020/lib/directions/directions-sources/directions-source.provider.mjs +15 -15
  75. package/esm2020/lib/directions/directions-sources/index.mjs +4 -4
  76. package/esm2020/lib/directions/directions-sources/osrm-directions-source.mjs +98 -98
  77. package/esm2020/lib/directions/directions.component.mjs +310 -310
  78. package/esm2020/lib/directions/directions.module.mjs +101 -101
  79. package/esm2020/lib/directions/index.mjs +6 -6
  80. package/esm2020/lib/directions/shared/directions-source.service.mjs +16 -16
  81. package/esm2020/lib/directions/shared/directions.enum.mjs +27 -27
  82. package/esm2020/lib/directions/shared/directions.interface.mjs +1 -1
  83. package/esm2020/lib/directions/shared/directions.service.mjs +28 -28
  84. package/esm2020/lib/directions/shared/directions.utils.mjs +508 -508
  85. package/esm2020/lib/directions/shared/index.mjs +5 -5
  86. package/esm2020/lib/directions/shared/store.mjs +23 -23
  87. package/esm2020/lib/download/download-button/download-button.component.mjs +60 -60
  88. package/esm2020/lib/download/download-button/index.mjs +1 -1
  89. package/esm2020/lib/download/download.module.mjs +41 -41
  90. package/esm2020/lib/download/index.mjs +2 -2
  91. package/esm2020/lib/download/shared/download.interface.mjs +1 -1
  92. package/esm2020/lib/download/shared/download.service.mjs +64 -64
  93. package/esm2020/lib/download/shared/index.mjs +2 -2
  94. package/esm2020/lib/draw/draw/draw-layer-popup.component.mjs +54 -54
  95. package/esm2020/lib/draw/draw/draw-popup.component.mjs +590 -590
  96. package/esm2020/lib/draw/draw/draw-shorcuts.component.mjs +47 -47
  97. package/esm2020/lib/draw/draw/draw.component.mjs +1298 -1298
  98. package/esm2020/lib/draw/draw/draw.module.mjs +112 -112
  99. package/esm2020/lib/draw/drawingTool.module.mjs +19 -19
  100. package/esm2020/lib/draw/index.mjs +2 -2
  101. package/esm2020/lib/draw/shared/draw-icon.service.mjs +26 -26
  102. package/esm2020/lib/draw/shared/draw-style.service.mjs +189 -189
  103. package/esm2020/lib/draw/shared/draw.enum.mjs +36 -36
  104. package/esm2020/lib/draw/shared/draw.interface.mjs +1 -1
  105. package/esm2020/lib/draw/shared/draw.utils.mjs +121 -121
  106. package/esm2020/lib/draw/shared/index.mjs +5 -5
  107. package/esm2020/lib/feature/feature-details/feature-details.component.mjs +404 -404
  108. package/esm2020/lib/feature/feature-details/feature-details.directive.mjs +53 -53
  109. package/esm2020/lib/feature/feature-details/feature-details.module.mjs +47 -47
  110. package/esm2020/lib/feature/feature-form/feature-form.component.mjs +111 -111
  111. package/esm2020/lib/feature/feature-form/feature-form.module.mjs +33 -33
  112. package/esm2020/lib/feature/feature.module.mjs +27 -27
  113. package/esm2020/lib/feature/index.mjs +3 -3
  114. package/esm2020/lib/feature/shared/feature.enums.mjs +8 -8
  115. package/esm2020/lib/feature/shared/feature.interfaces.mjs +1 -1
  116. package/esm2020/lib/feature/shared/feature.utils.mjs +346 -346
  117. package/esm2020/lib/feature/shared/index.mjs +6 -6
  118. package/esm2020/lib/feature/shared/store.mjs +123 -123
  119. package/esm2020/lib/feature/shared/strategies/in-map-extent.mjs +112 -112
  120. package/esm2020/lib/feature/shared/strategies/in-map-resolution.mjs +93 -93
  121. package/esm2020/lib/feature/shared/strategies/index.mjs +5 -5
  122. package/esm2020/lib/feature/shared/strategies/loading-layer.mjs +103 -103
  123. package/esm2020/lib/feature/shared/strategies/loading.mjs +132 -132
  124. package/esm2020/lib/feature/shared/strategies/selection.mjs +369 -369
  125. package/esm2020/lib/feature/shared/strategies.utils.mjs +36 -36
  126. package/esm2020/lib/filter/filter.module.mjs +288 -288
  127. package/esm2020/lib/filter/index.mjs +15 -15
  128. package/esm2020/lib/filter/ogc-filter-button/index.mjs +1 -1
  129. package/esm2020/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +139 -139
  130. package/esm2020/lib/filter/ogc-filter-form/index.mjs +1 -1
  131. package/esm2020/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +644 -644
  132. package/esm2020/lib/filter/ogc-filter-selection/index.mjs +1 -1
  133. package/esm2020/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +1301 -1301
  134. package/esm2020/lib/filter/ogc-filter-time/index.mjs +2 -2
  135. package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +176 -176
  136. package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +897 -897
  137. package/esm2020/lib/filter/ogc-filterable-form/index.mjs +1 -1
  138. package/esm2020/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +58 -58
  139. package/esm2020/lib/filter/ogc-filterable-item/index.mjs +1 -1
  140. package/esm2020/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +306 -306
  141. package/esm2020/lib/filter/ogc-filterable-list/index.mjs +2 -2
  142. package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +30 -30
  143. package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +43 -43
  144. package/esm2020/lib/filter/shared/filterable-datasource.pipe.mjs +54 -54
  145. package/esm2020/lib/filter/shared/index.mjs +11 -11
  146. package/esm2020/lib/filter/shared/ogc-filter-time.service.mjs +71 -71
  147. package/esm2020/lib/filter/shared/ogc-filter.enum.mjs +29 -29
  148. package/esm2020/lib/filter/shared/ogc-filter.interface.mjs +1 -1
  149. package/esm2020/lib/filter/shared/ogc-filter.mjs +691 -691
  150. package/esm2020/lib/filter/shared/ogc-filter.service.mjs +45 -45
  151. package/esm2020/lib/filter/shared/spatial-filter.enum.mjs +22 -22
  152. package/esm2020/lib/filter/shared/spatial-filter.interface.mjs +1 -1
  153. package/esm2020/lib/filter/shared/spatial-filter.service.mjs +268 -268
  154. package/esm2020/lib/filter/shared/time-filter.enum.mjs +12 -12
  155. package/esm2020/lib/filter/shared/time-filter.interface.mjs +1 -1
  156. package/esm2020/lib/filter/shared/time-filter.service.mjs +106 -106
  157. package/esm2020/lib/filter/spatial-filter/spatial-filter-item/index.mjs +1 -1
  158. package/esm2020/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +1088 -1088
  159. package/esm2020/lib/filter/spatial-filter/spatial-filter-list/index.mjs +1 -1
  160. package/esm2020/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +207 -207
  161. package/esm2020/lib/filter/spatial-filter/spatial-filter-type/index.mjs +1 -1
  162. package/esm2020/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +143 -143
  163. package/esm2020/lib/filter/time-filter-button/index.mjs +1 -1
  164. package/esm2020/lib/filter/time-filter-button/time-filter-button.component.mjs +77 -77
  165. package/esm2020/lib/filter/time-filter-form/index.mjs +1 -1
  166. package/esm2020/lib/filter/time-filter-form/time-filter-form.component.mjs +733 -733
  167. package/esm2020/lib/filter/time-filter-item/index.mjs +1 -1
  168. package/esm2020/lib/filter/time-filter-item/time-filter-item.component.mjs +118 -118
  169. package/esm2020/lib/filter/time-filter-list/index.mjs +2 -2
  170. package/esm2020/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +30 -30
  171. package/esm2020/lib/filter/time-filter-list/time-filter-list.component.mjs +38 -38
  172. package/esm2020/lib/geo.module.mjs +101 -101
  173. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +520 -520
  174. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +188 -188
  175. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +63 -63
  176. package/esm2020/lib/geometry/geometry.module.mjs +26 -26
  177. package/esm2020/lib/geometry/index.mjs +3 -3
  178. package/esm2020/lib/geometry/shared/controls/draw.mjs +313 -313
  179. package/esm2020/lib/geometry/shared/controls/index.mjs +3 -3
  180. package/esm2020/lib/geometry/shared/controls/modify.mjs +520 -520
  181. package/esm2020/lib/geometry/shared/controls/slice.mjs +176 -176
  182. package/esm2020/lib/geometry/shared/geometry.errors.mjs +25 -25
  183. package/esm2020/lib/geometry/shared/geometry.interfaces.mjs +1 -1
  184. package/esm2020/lib/geometry/shared/geometry.utils.mjs +121 -121
  185. package/esm2020/lib/geometry/shared/index.mjs +4 -4
  186. package/esm2020/lib/import-export/export-button/export-button.component.mjs +63 -63
  187. package/esm2020/lib/import-export/export-button/index.mjs +1 -1
  188. package/esm2020/lib/import-export/import-export/import-export.component.mjs +1219 -1219
  189. package/esm2020/lib/import-export/import-export/index.mjs +1 -1
  190. package/esm2020/lib/import-export/import-export.module.mjs +95 -95
  191. package/esm2020/lib/import-export/index.mjs +4 -4
  192. package/esm2020/lib/import-export/shared/drop-geo-file.directive.mjs +134 -134
  193. package/esm2020/lib/import-export/shared/export.errors.mjs +14 -14
  194. package/esm2020/lib/import-export/shared/export.interface.mjs +1 -1
  195. package/esm2020/lib/import-export/shared/export.service.mjs +194 -194
  196. package/esm2020/lib/import-export/shared/export.type.mjs +3 -3
  197. package/esm2020/lib/import-export/shared/export.utils.mjs +54 -54
  198. package/esm2020/lib/import-export/shared/import.errors.mjs +38 -38
  199. package/esm2020/lib/import-export/shared/import.interface.mjs +1 -1
  200. package/esm2020/lib/import-export/shared/import.service.mjs +214 -214
  201. package/esm2020/lib/import-export/shared/import.utils.mjs +234 -234
  202. package/esm2020/lib/import-export/shared/index.mjs +10 -10
  203. package/esm2020/lib/import-export/style-list/index.mjs +4 -4
  204. package/esm2020/lib/import-export/style-list/style-list.interface.mjs +1 -1
  205. package/esm2020/lib/import-export/style-list/style-list.module.mjs +22 -22
  206. package/esm2020/lib/import-export/style-list/style-list.provider.mjs +20 -20
  207. package/esm2020/lib/import-export/style-list/style-list.service.mjs +50 -50
  208. package/esm2020/lib/layer/index.mjs +10 -10
  209. package/esm2020/lib/layer/layer-item/index.mjs +1 -1
  210. package/esm2020/lib/layer/layer-item/layer-item.component.mjs +299 -299
  211. package/esm2020/lib/layer/layer-legend/index.mjs +1 -1
  212. package/esm2020/lib/layer/layer-legend/layer-legend.component.mjs +387 -387
  213. package/esm2020/lib/layer/layer-legend-item/index.mjs +1 -1
  214. package/esm2020/lib/layer/layer-legend-item/layer-legend-item.component.mjs +83 -83
  215. package/esm2020/lib/layer/layer-legend-list/index.mjs +2 -2
  216. package/esm2020/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +47 -47
  217. package/esm2020/lib/layer/layer-legend-list/layer-legend-list.component.mjs +194 -194
  218. package/esm2020/lib/layer/layer-list/index.mjs +3 -3
  219. package/esm2020/lib/layer/layer-list/layer-list-binding.directive.mjs +58 -58
  220. package/esm2020/lib/layer/layer-list/layer-list.component.mjs +1008 -1008
  221. package/esm2020/lib/layer/layer-list/layer-list.enum.mjs +18 -18
  222. package/esm2020/lib/layer/layer-list-tool/index.mjs +4 -4
  223. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.component.mjs +164 -164
  224. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.enum.mjs +6 -6
  225. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.interface.mjs +1 -1
  226. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.service.mjs +21 -21
  227. package/esm2020/lib/layer/layer.module.mjs +184 -184
  228. package/esm2020/lib/layer/shared/clusterParam.mjs +1 -1
  229. package/esm2020/lib/layer/shared/index.mjs +6 -6
  230. package/esm2020/lib/layer/shared/layer.enums.mjs +1 -1
  231. package/esm2020/lib/layer/shared/layer.service.mjs +185 -185
  232. package/esm2020/lib/layer/shared/layers/any-layer.interface.mjs +1 -1
  233. package/esm2020/lib/layer/shared/layers/any-layer.mjs +1 -1
  234. package/esm2020/lib/layer/shared/layers/image-layer.interface.mjs +1 -1
  235. package/esm2020/lib/layer/shared/layers/image-layer.mjs +67 -67
  236. package/esm2020/lib/layer/shared/layers/index.mjs +12 -12
  237. package/esm2020/lib/layer/shared/layers/layer.interface.mjs +17 -17
  238. package/esm2020/lib/layer/shared/layers/layer.mjs +163 -163
  239. package/esm2020/lib/layer/shared/layers/tile-layer.interface.mjs +1 -1
  240. package/esm2020/lib/layer/shared/layers/tile-layer.mjs +46 -46
  241. package/esm2020/lib/layer/shared/layers/vector-layer.interface.mjs +1 -1
  242. package/esm2020/lib/layer/shared/layers/vector-layer.mjs +377 -377
  243. package/esm2020/lib/layer/shared/layers/vectortile-layer.interface.mjs +1 -1
  244. package/esm2020/lib/layer/shared/layers/vectortile-layer.mjs +103 -103
  245. package/esm2020/lib/layer/shared/style.service.mjs +355 -355
  246. package/esm2020/lib/layer/shared/vector-style.interface.mjs +1 -1
  247. package/esm2020/lib/layer/style-modal/index.mjs +1 -1
  248. package/esm2020/lib/layer/style-modal/style-modal.component.mjs +287 -287
  249. package/esm2020/lib/layer/track-feature-button/index.mjs +1 -1
  250. package/esm2020/lib/layer/track-feature-button/track-feature-button.component.mjs +58 -58
  251. package/esm2020/lib/layer/utils/image-watcher.mjs +61 -61
  252. package/esm2020/lib/layer/utils/index.mjs +5 -5
  253. package/esm2020/lib/layer/utils/layer.utils.mjs +9 -9
  254. package/esm2020/lib/layer/utils/outputLegend.mjs +26 -26
  255. package/esm2020/lib/layer/utils/tile-watcher.mjs +49 -49
  256. package/esm2020/lib/layer/utils/vector-watcher.mjs +47 -47
  257. package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.animation.mjs +19 -19
  258. package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +96 -96
  259. package/esm2020/lib/map/baselayers-switcher/index.mjs +2 -2
  260. package/esm2020/lib/map/baselayers-switcher/mini-basemap.component.mjs +141 -142
  261. package/esm2020/lib/map/geolocate-button/geolocate-button.component.mjs +78 -78
  262. package/esm2020/lib/map/geolocate-button/index.mjs +1 -1
  263. package/esm2020/lib/map/home-extent-button/home-extent-button.component.mjs +62 -62
  264. package/esm2020/lib/map/home-extent-button/index.mjs +1 -1
  265. package/esm2020/lib/map/index.mjs +13 -13
  266. package/esm2020/lib/map/info-section/index.mjs +1 -1
  267. package/esm2020/lib/map/info-section/info-section.component.mjs +29 -29
  268. package/esm2020/lib/map/map-browser/index.mjs +1 -1
  269. package/esm2020/lib/map/map-browser/map-browser.component.mjs +65 -65
  270. package/esm2020/lib/map/map-center/index.mjs +1 -1
  271. package/esm2020/lib/map/map-center/map-center.component.mjs +49 -49
  272. package/esm2020/lib/map/map.module.mjs +126 -126
  273. package/esm2020/lib/map/menu-button/index.mjs +1 -1
  274. package/esm2020/lib/map/menu-button/menu-button.component.mjs +61 -61
  275. package/esm2020/lib/map/offline-button/index.mjs +1 -1
  276. package/esm2020/lib/map/offline-button/offline-button.component.mjs +75 -75
  277. package/esm2020/lib/map/rotation-button/index.mjs +1 -1
  278. package/esm2020/lib/map/rotation-button/rotation-button.component.mjs +69 -69
  279. package/esm2020/lib/map/shared/controllers/controller.mjs +41 -41
  280. package/esm2020/lib/map/shared/controllers/geolocation.mjs +307 -307
  281. package/esm2020/lib/map/shared/controllers/index.mjs +3 -3
  282. package/esm2020/lib/map/shared/controllers/view.mjs +350 -350
  283. package/esm2020/lib/map/shared/hover-feature.directive.mjs +502 -502
  284. package/esm2020/lib/map/shared/index.mjs +13 -13
  285. package/esm2020/lib/map/shared/linkedLayers.utils.mjs +237 -237
  286. package/esm2020/lib/map/shared/map-pointer-position.directive.mjs +106 -106
  287. package/esm2020/lib/map/shared/map.enums.mjs +5 -5
  288. package/esm2020/lib/map/shared/map.interface.mjs +1 -1
  289. package/esm2020/lib/map/shared/map.mjs +406 -406
  290. package/esm2020/lib/map/shared/map.service.mjs +28 -28
  291. package/esm2020/lib/map/shared/map.utils.mjs +462 -462
  292. package/esm2020/lib/map/shared/mapOffline.directive.mjs +162 -162
  293. package/esm2020/lib/map/shared/projection.interfaces.mjs +1 -1
  294. package/esm2020/lib/map/shared/projection.service.mjs +64 -64
  295. package/esm2020/lib/map/shared/projection.utils.mjs +63 -63
  296. package/esm2020/lib/map/swipe-control/index.mjs +1 -1
  297. package/esm2020/lib/map/swipe-control/swipe-control.component.mjs +192 -192
  298. package/esm2020/lib/map/utils/layer-watcher.mjs +78 -78
  299. package/esm2020/lib/map/wake-lock-button/index.mjs +1 -1
  300. package/esm2020/lib/map/wake-lock-button/wake-lock-button.component.mjs +113 -113
  301. package/esm2020/lib/map/zoom-button/index.mjs +1 -1
  302. package/esm2020/lib/map/zoom-button/zoom-button.component.mjs +39 -39
  303. package/esm2020/lib/measure/index.mjs +3 -3
  304. package/esm2020/lib/measure/measure.module.mjs +19 -19
  305. package/esm2020/lib/measure/measurer/measure-format.pipe.mjs +36 -36
  306. package/esm2020/lib/measure/measurer/measurer-dialog.component.mjs +179 -179
  307. package/esm2020/lib/measure/measurer/measurer-item.component.mjs +139 -139
  308. package/esm2020/lib/measure/measurer/measurer.component.mjs +1041 -1041
  309. package/esm2020/lib/measure/measurer/measurer.module.mjs +93 -93
  310. package/esm2020/lib/measure/shared/index.mjs +3 -3
  311. package/esm2020/lib/measure/shared/measure.enum.mjs +36 -36
  312. package/esm2020/lib/measure/shared/measure.interfaces.mjs +1 -1
  313. package/esm2020/lib/measure/shared/measure.utils.mjs +488 -488
  314. package/esm2020/lib/metadata/index.mjs +2 -2
  315. package/esm2020/lib/metadata/metadata-button/index.mjs +1 -1
  316. package/esm2020/lib/metadata/metadata-button/metadata-button.component.mjs +133 -133
  317. package/esm2020/lib/metadata/metadata.module.mjs +54 -54
  318. package/esm2020/lib/metadata/shared/index.mjs +2 -2
  319. package/esm2020/lib/metadata/shared/metadata.interface.mjs +1 -1
  320. package/esm2020/lib/metadata/shared/metadata.service.mjs +18 -18
  321. package/esm2020/lib/offline/geoDB/configFileToGeoDB.service.mjs +104 -104
  322. package/esm2020/lib/offline/geoDB/geoDB.enums.mjs +5 -5
  323. package/esm2020/lib/offline/geoDB/geoDB.interface.mjs +1 -1
  324. package/esm2020/lib/offline/geoDB/geoDB.service.mjs +166 -166
  325. package/esm2020/lib/offline/geoDB/index.mjs +4 -4
  326. package/esm2020/lib/offline/index.mjs +2 -2
  327. package/esm2020/lib/offline/shared/geo-network.service.mjs +65 -65
  328. package/esm2020/lib/offline/shared/index.mjs +1 -1
  329. package/esm2020/lib/overlay/index.mjs +1 -1
  330. package/esm2020/lib/overlay/overlay.module.mjs +22 -22
  331. package/esm2020/lib/overlay/shared/index.mjs +6 -6
  332. package/esm2020/lib/overlay/shared/overlay-marker-style.utils.mjs +68 -68
  333. package/esm2020/lib/overlay/shared/overlay.directive.mjs +32 -32
  334. package/esm2020/lib/overlay/shared/overlay.enum.mjs +7 -7
  335. package/esm2020/lib/overlay/shared/overlay.mjs +129 -129
  336. package/esm2020/lib/overlay/shared/overlay.service.mjs +26 -26
  337. package/esm2020/lib/overlay/shared/overlay.utils.mjs +102 -102
  338. package/esm2020/lib/print/index.mjs +3 -3
  339. package/esm2020/lib/print/print/print.component.mjs +125 -125
  340. package/esm2020/lib/print/print-form/index.mjs +1 -1
  341. package/esm2020/lib/print/print-form/print-form.component.mjs +427 -427
  342. package/esm2020/lib/print/print.module.mjs +64 -64
  343. package/esm2020/lib/print/shared/geopdf.mjs +57 -57
  344. package/esm2020/lib/print/shared/index.mjs +4 -4
  345. package/esm2020/lib/print/shared/print.interface.mjs +1 -1
  346. package/esm2020/lib/print/shared/print.service.mjs +933 -933
  347. package/esm2020/lib/print/shared/print.type.mjs +29 -29
  348. package/esm2020/lib/query/index.mjs +1 -1
  349. package/esm2020/lib/query/query.module.mjs +28 -28
  350. package/esm2020/lib/query/shared/index.mjs +6 -6
  351. package/esm2020/lib/query/shared/query-search-source.mjs +34 -34
  352. package/esm2020/lib/query/shared/query-search-source.providers.mjs +21 -21
  353. package/esm2020/lib/query/shared/query.directive.mjs +260 -260
  354. package/esm2020/lib/query/shared/query.enums.mjs +29 -29
  355. package/esm2020/lib/query/shared/query.interfaces.mjs +1 -1
  356. package/esm2020/lib/query/shared/query.service.mjs +732 -732
  357. package/esm2020/lib/query/shared/query.utils.mjs +36 -36
  358. package/esm2020/lib/search/index.mjs +11 -11
  359. package/esm2020/lib/search/search-bar/search-bar.component.mjs +511 -511
  360. package/esm2020/lib/search/search-bar/search-bar.module.mjs +74 -74
  361. package/esm2020/lib/search/search-bar/search-url-param.directive.mjs +34 -34
  362. package/esm2020/lib/search/search-results/save-feature-dialog.component.mjs +117 -117
  363. package/esm2020/lib/search/search-results/search-results-add-button.component.mjs +370 -370
  364. package/esm2020/lib/search/search-results/search-results-item.component.mjs +123 -123
  365. package/esm2020/lib/search/search-results/search-results.component.mjs +339 -339
  366. package/esm2020/lib/search/search-results/search-results.module.mjs +103 -103
  367. package/esm2020/lib/search/search-selector/search-selector.component.mjs +122 -122
  368. package/esm2020/lib/search/search-selector/search-selector.module.mjs +55 -55
  369. package/esm2020/lib/search/search-settings/search-settings.component.mjs +441 -441
  370. package/esm2020/lib/search/search-settings/search-settings.module.mjs +59 -59
  371. package/esm2020/lib/search/search.module.mjs +66 -66
  372. package/esm2020/lib/search/shared/index.mjs +8 -8
  373. package/esm2020/lib/search/shared/search-pointer-summary.directive.mjs +321 -321
  374. package/esm2020/lib/search/shared/search-source-service.providers.mjs +19 -19
  375. package/esm2020/lib/search/shared/search-source.service.mjs +46 -46
  376. package/esm2020/lib/search/shared/search.enums.mjs +3 -3
  377. package/esm2020/lib/search/shared/search.interfaces.mjs +1 -1
  378. package/esm2020/lib/search/shared/search.service.mjs +120 -120
  379. package/esm2020/lib/search/shared/search.utils.mjs +90 -90
  380. package/esm2020/lib/search/shared/sources/coordinates.interfaces.mjs +1 -1
  381. package/esm2020/lib/search/shared/sources/coordinates.mjs +152 -152
  382. package/esm2020/lib/search/shared/sources/coordinates.providers.mjs +39 -39
  383. package/esm2020/lib/search/shared/sources/icherche.interfaces.mjs +1 -1
  384. package/esm2020/lib/search/shared/sources/icherche.mjs +766 -766
  385. package/esm2020/lib/search/shared/sources/icherche.providers.mjs +65 -65
  386. package/esm2020/lib/search/shared/sources/ilayer.interfaces.mjs +1 -1
  387. package/esm2020/lib/search/shared/sources/ilayer.mjs +319 -319
  388. package/esm2020/lib/search/shared/sources/ilayer.providers.mjs +39 -39
  389. package/esm2020/lib/search/shared/sources/index.mjs +17 -17
  390. package/esm2020/lib/search/shared/sources/nominatim.interfaces.mjs +1 -1
  391. package/esm2020/lib/search/shared/sources/nominatim.mjs +251 -251
  392. package/esm2020/lib/search/shared/sources/nominatim.providers.mjs +22 -22
  393. package/esm2020/lib/search/shared/sources/source.interfaces.mjs +1 -1
  394. package/esm2020/lib/search/shared/sources/source.mjs +178 -178
  395. package/esm2020/lib/search/shared/sources/storedqueries.interfaces.mjs +1 -1
  396. package/esm2020/lib/search/shared/sources/storedqueries.mjs +424 -424
  397. package/esm2020/lib/search/shared/sources/storedqueries.providers.mjs +40 -40
  398. package/esm2020/lib/toast/index.mjs +1 -1
  399. package/esm2020/lib/toast/toast.component.mjs +112 -112
  400. package/esm2020/lib/toast/toast.module.mjs +44 -44
  401. package/esm2020/lib/utils/commonVectorStyle.interface.mjs +1 -1
  402. package/esm2020/lib/utils/commonVectorStyle.mjs +74 -74
  403. package/esm2020/lib/utils/googleLinks.mjs +12 -12
  404. package/esm2020/lib/utils/id-generator.mjs +109 -109
  405. package/esm2020/lib/utils/index.mjs +5 -5
  406. package/esm2020/lib/utils/osmLinks.mjs +9 -9
  407. package/esm2020/lib/wkt/index.mjs +1 -1
  408. package/esm2020/lib/wkt/shared/index.mjs +1 -1
  409. package/esm2020/lib/wkt/shared/wkt.service.mjs +224 -224
  410. package/esm2020/lib/wkt/wkt.module.mjs +21 -21
  411. package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +47 -47
  412. package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +35 -35
  413. package/esm2020/lib/workspace/confirmation-popup/index.mjs +2 -2
  414. package/esm2020/lib/workspace/index.mjs +7 -7
  415. package/esm2020/lib/workspace/shared/edition-workspace.mjs +279 -279
  416. package/esm2020/lib/workspace/shared/edition-workspace.service.mjs +656 -656
  417. package/esm2020/lib/workspace/shared/feature-workspace.mjs +34 -34
  418. package/esm2020/lib/workspace/shared/feature-workspace.service.mjs +149 -149
  419. package/esm2020/lib/workspace/shared/index.mjs +7 -7
  420. package/esm2020/lib/workspace/shared/wfs-workspace.mjs +34 -34
  421. package/esm2020/lib/workspace/shared/wfs-workspace.service.mjs +149 -149
  422. package/esm2020/lib/workspace/shared/wms-workspace.service.mjs +259 -259
  423. package/esm2020/lib/workspace/shared/workspace.utils.mjs +23 -23
  424. package/esm2020/lib/workspace/widgets/index.mjs +3 -3
  425. package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +46 -46
  426. package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +35 -35
  427. package/esm2020/lib/workspace/widgets/widgets.mjs +14 -14
  428. package/esm2020/lib/workspace/workspace-selector/workspace-selector.directive.mjs +132 -132
  429. package/esm2020/lib/workspace/workspace-selector/workspace-selector.module.mjs +27 -27
  430. package/esm2020/lib/workspace/workspace-updator/workspace-updator.directive.mjs +112 -112
  431. package/esm2020/lib/workspace/workspace-updator/workspace-updator.module.mjs +27 -27
  432. package/esm2020/lib/workspace/workspace.module.mjs +61 -61
  433. package/esm2020/public_api.mjs +54 -54
  434. package/fesm2015/igo2-geo.mjs +44986 -44986
  435. package/fesm2015/igo2-geo.mjs.map +1 -1
  436. package/fesm2020/igo2-geo.mjs +43029 -43030
  437. package/fesm2020/igo2-geo.mjs.map +1 -1
  438. package/index.d.ts +5 -5
  439. package/lib/catalog/catalog-browser/catalog-browser-group.component.d.ts +126 -126
  440. package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +80 -80
  441. package/lib/catalog/catalog-browser/catalog-browser.component.d.ts +105 -105
  442. package/lib/catalog/catalog-browser/catalog-browser.module.d.ts +22 -22
  443. package/lib/catalog/catalog-library/add-catalog-dialog.component.d.ts +45 -45
  444. package/lib/catalog/catalog-library/catalog-library-item.component.d.ts +25 -25
  445. package/lib/catalog/catalog-library/catalog-library.component.d.ts +65 -65
  446. package/lib/catalog/catalog-library/catalog-library.module.d.ts +26 -26
  447. package/lib/catalog/catalog.module.d.ts +14 -14
  448. package/lib/catalog/index.d.ts +4 -4
  449. package/lib/catalog/shared/catalog.abstract.d.ts +50 -50
  450. package/lib/catalog/shared/catalog.enum.d.ts +14 -14
  451. package/lib/catalog/shared/catalog.interface.d.ts +66 -66
  452. package/lib/catalog/shared/catalog.service.d.ts +36 -36
  453. package/lib/catalog/shared/index.d.ts +4 -4
  454. package/lib/datasource/datasource.module.d.ts +8 -8
  455. package/lib/datasource/index.d.ts +2 -2
  456. package/lib/datasource/shared/capabilities.service.d.ts +37 -37
  457. package/lib/datasource/shared/datasource.service.d.ts +37 -37
  458. package/lib/datasource/shared/datasources/any-datasource.d.ts +16 -16
  459. package/lib/datasource/shared/datasources/any-datasource.interface.d.ts +15 -15
  460. package/lib/datasource/shared/datasources/arcgisrest-datasource.d.ts +14 -14
  461. package/lib/datasource/shared/datasources/arcgisrest-datasource.interface.d.ts +14 -14
  462. package/lib/datasource/shared/datasources/carto-datasource.d.ts +15 -15
  463. package/lib/datasource/shared/datasources/carto-datasource.interface.d.ts +13 -13
  464. package/lib/datasource/shared/datasources/cluster-datasource.d.ts +10 -10
  465. package/lib/datasource/shared/datasources/cluster-datasource.interface.d.ts +11 -11
  466. package/lib/datasource/shared/datasources/data.service.d.ts +3 -3
  467. package/lib/datasource/shared/datasources/datasource.d.ts +20 -20
  468. package/lib/datasource/shared/datasources/datasource.interface.d.ts +100 -100
  469. package/lib/datasource/shared/datasources/feature-datasource.d.ts +12 -12
  470. package/lib/datasource/shared/datasources/feature-datasource.interface.d.ts +18 -18
  471. package/lib/datasource/shared/datasources/imagearcgisrest-datasource.d.ts +15 -15
  472. package/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.d.ts +15 -15
  473. package/lib/datasource/shared/datasources/index.d.ts +35 -35
  474. package/lib/datasource/shared/datasources/mvt-datasource.d.ts +10 -10
  475. package/lib/datasource/shared/datasources/mvt-datasource.interface.d.ts +13 -13
  476. package/lib/datasource/shared/datasources/osm-datasource.d.ts +9 -9
  477. package/lib/datasource/shared/datasources/osm-datasource.interface.d.ts +7 -7
  478. package/lib/datasource/shared/datasources/tilearcgisrest-datasource.d.ts +15 -15
  479. package/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.d.ts +14 -14
  480. package/lib/datasource/shared/datasources/tiledebug-datasource.d.ts +9 -9
  481. package/lib/datasource/shared/datasources/tiledebug-datasource.interface.d.ts +9 -9
  482. package/lib/datasource/shared/datasources/websocket-datasource.d.ts +15 -15
  483. package/lib/datasource/shared/datasources/websocket-datasource.interface.d.ts +7 -7
  484. package/lib/datasource/shared/datasources/wfs-datasource.d.ts +20 -20
  485. package/lib/datasource/shared/datasources/wfs-datasource.interface.d.ts +20 -20
  486. package/lib/datasource/shared/datasources/wfs.service.d.ts +17 -17
  487. package/lib/datasource/shared/datasources/wms-datasource.d.ts +31 -31
  488. package/lib/datasource/shared/datasources/wms-datasource.interface.d.ts +32 -32
  489. package/lib/datasource/shared/datasources/wms-wfs.utils.d.ts +41 -41
  490. package/lib/datasource/shared/datasources/wmts-datasource.d.ts +10 -10
  491. package/lib/datasource/shared/datasources/wmts-datasource.interface.d.ts +13 -13
  492. package/lib/datasource/shared/datasources/xyz-datasource.d.ts +9 -9
  493. package/lib/datasource/shared/datasources/xyz-datasource.interface.d.ts +11 -11
  494. package/lib/datasource/shared/index.d.ts +4 -4
  495. package/lib/datasource/shared/options/index.d.ts +4 -4
  496. package/lib/datasource/shared/options/options-api.interface.d.ts +4 -4
  497. package/lib/datasource/shared/options/options-api.providers.d.ts +10 -10
  498. package/lib/datasource/shared/options/options-api.service.d.ts +16 -16
  499. package/lib/datasource/shared/options/options.service.d.ts +6 -6
  500. package/lib/datasource/utils/esri-style-generator.d.ts +21 -21
  501. package/lib/datasource/utils/index.d.ts +2 -2
  502. package/lib/datasource/utils/tilegrid.d.ts +2 -2
  503. package/lib/directions/directions-buttons/directions-buttons.component.d.ts +30 -30
  504. package/lib/directions/directions-buttons/index.d.ts +1 -1
  505. package/lib/directions/directions-inputs/directions-inputs.component.d.ts +45 -45
  506. package/lib/directions/directions-inputs/index.d.ts +1 -1
  507. package/lib/directions/directions-results/directions-results.component.d.ts +30 -30
  508. package/lib/directions/directions-results/index.d.ts +1 -1
  509. package/lib/directions/directions-sources/directions-source.d.ts +7 -7
  510. package/lib/directions/directions-sources/directions-source.interface.d.ts +11 -11
  511. package/lib/directions/directions-sources/directions-source.provider.d.ts +11 -11
  512. package/lib/directions/directions-sources/index.d.ts +4 -4
  513. package/lib/directions/directions-sources/osrm-directions-source.d.ts +23 -23
  514. package/lib/directions/directions.component.d.ts +56 -56
  515. package/lib/directions/directions.module.d.ts +26 -26
  516. package/lib/directions/index.d.ts +6 -6
  517. package/lib/directions/shared/directions-source.service.d.ts +11 -11
  518. package/lib/directions/shared/directions.enum.d.ts +22 -22
  519. package/lib/directions/shared/directions.interface.d.ts +126 -126
  520. package/lib/directions/shared/directions.service.d.ts +13 -13
  521. package/lib/directions/shared/directions.utils.d.ts +42 -42
  522. package/lib/directions/shared/index.d.ts +5 -5
  523. package/lib/directions/shared/store.d.ts +18 -18
  524. package/lib/download/download-button/download-button.component.d.ts +18 -18
  525. package/lib/download/download-button/index.d.ts +1 -1
  526. package/lib/download/download.module.d.ts +14 -14
  527. package/lib/download/index.d.ts +2 -2
  528. package/lib/download/shared/download.interface.d.ts +10 -10
  529. package/lib/download/shared/download.service.d.ts +11 -11
  530. package/lib/download/shared/index.d.ts +2 -2
  531. package/lib/draw/draw/draw-layer-popup.component.d.ts +14 -14
  532. package/lib/draw/draw/draw-popup.component.d.ts +63 -63
  533. package/lib/draw/draw/draw-shorcuts.component.d.ts +5 -5
  534. package/lib/draw/draw/draw.component.d.ts +239 -239
  535. package/lib/draw/draw/draw.module.d.ts +34 -34
  536. package/lib/draw/drawingTool.module.d.ts +7 -7
  537. package/lib/draw/index.d.ts +2 -2
  538. package/lib/draw/shared/draw-icon.service.d.ts +12 -12
  539. package/lib/draw/shared/draw-style.service.d.ts +36 -36
  540. package/lib/draw/shared/draw.enum.d.ts +32 -32
  541. package/lib/draw/shared/draw.interface.d.ts +40 -40
  542. package/lib/draw/shared/draw.utils.d.ts +35 -35
  543. package/lib/draw/shared/index.d.ts +5 -5
  544. package/lib/feature/feature-details/feature-details.component.d.ts +60 -60
  545. package/lib/feature/feature-details/feature-details.directive.d.ts +19 -19
  546. package/lib/feature/feature-details/feature-details.module.d.ts +15 -15
  547. package/lib/feature/feature-form/feature-form.component.d.ts +50 -50
  548. package/lib/feature/feature-form/feature-form.module.d.ts +12 -12
  549. package/lib/feature/feature.module.d.ts +9 -9
  550. package/lib/feature/index.d.ts +3 -3
  551. package/lib/feature/shared/feature.enums.d.ts +7 -7
  552. package/lib/feature/shared/feature.interfaces.d.ts +74 -74
  553. package/lib/feature/shared/feature.utils.d.ts +104 -104
  554. package/lib/feature/shared/index.d.ts +6 -6
  555. package/lib/feature/shared/store.d.ts +71 -71
  556. package/lib/feature/shared/strategies/in-map-extent.d.ts +52 -52
  557. package/lib/feature/shared/strategies/in-map-resolution.d.ts +52 -52
  558. package/lib/feature/shared/strategies/index.d.ts +5 -5
  559. package/lib/feature/shared/strategies/loading-layer.d.ts +59 -59
  560. package/lib/feature/shared/strategies/loading.d.ts +75 -75
  561. package/lib/feature/shared/strategies/selection.d.ts +176 -176
  562. package/lib/feature/shared/strategies.utils.d.ts +17 -17
  563. package/lib/filter/filter.module.d.ts +53 -53
  564. package/lib/filter/index.d.ts +15 -15
  565. package/lib/filter/ogc-filter-button/index.d.ts +1 -1
  566. package/lib/filter/ogc-filter-button/ogc-filter-button.component.d.ts +20 -20
  567. package/lib/filter/ogc-filter-form/index.d.ts +1 -1
  568. package/lib/filter/ogc-filter-form/ogc-filter-form.component.d.ts +65 -65
  569. package/lib/filter/ogc-filter-selection/index.d.ts +1 -1
  570. package/lib/filter/ogc-filter-selection/ogc-filter-selection.component.d.ts +93 -93
  571. package/lib/filter/ogc-filter-time/index.d.ts +2 -2
  572. package/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.d.ts +39 -39
  573. package/lib/filter/ogc-filter-time/ogc-filter-time.component.d.ts +86 -86
  574. package/lib/filter/ogc-filterable-form/index.d.ts +1 -1
  575. package/lib/filter/ogc-filterable-form/ogc-filterable-form.component.d.ts +15 -15
  576. package/lib/filter/ogc-filterable-item/index.d.ts +1 -1
  577. package/lib/filter/ogc-filterable-item/ogc-filterable-item.component.d.ts +41 -41
  578. package/lib/filter/ogc-filterable-list/index.d.ts +2 -2
  579. package/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.d.ts +14 -14
  580. package/lib/filter/ogc-filterable-list/ogc-filterable-list.component.d.ts +10 -10
  581. package/lib/filter/shared/filterable-datasource.pipe.d.ts +10 -10
  582. package/lib/filter/shared/index.d.ts +11 -11
  583. package/lib/filter/shared/ogc-filter-time.service.d.ts +19 -19
  584. package/lib/filter/shared/ogc-filter.d.ts +29 -29
  585. package/lib/filter/shared/ogc-filter.enum.d.ts +27 -27
  586. package/lib/filter/shared/ogc-filter.interface.d.ts +200 -200
  587. package/lib/filter/shared/ogc-filter.service.d.ts +11 -11
  588. package/lib/filter/shared/spatial-filter.enum.d.ts +19 -19
  589. package/lib/filter/shared/spatial-filter.interface.d.ts +10 -10
  590. package/lib/filter/shared/spatial-filter.service.d.ts +37 -37
  591. package/lib/filter/shared/time-filter.enum.d.ts +10 -10
  592. package/lib/filter/shared/time-filter.interface.d.ts +29 -29
  593. package/lib/filter/shared/time-filter.service.d.ts +11 -11
  594. package/lib/filter/spatial-filter/spatial-filter-item/index.d.ts +1 -1
  595. package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +166 -166
  596. package/lib/filter/spatial-filter/spatial-filter-list/index.d.ts +1 -1
  597. package/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.d.ts +58 -58
  598. package/lib/filter/spatial-filter/spatial-filter-type/index.d.ts +1 -1
  599. package/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.d.ts +45 -45
  600. package/lib/filter/time-filter-button/index.d.ts +1 -1
  601. package/lib/filter/time-filter-button/time-filter-button.component.d.ts +20 -20
  602. package/lib/filter/time-filter-form/index.d.ts +1 -1
  603. package/lib/filter/time-filter-form/time-filter-form.component.d.ts +77 -77
  604. package/lib/filter/time-filter-item/index.d.ts +1 -1
  605. package/lib/filter/time-filter-item/time-filter-item.component.d.ts +28 -28
  606. package/lib/filter/time-filter-list/index.d.ts +2 -2
  607. package/lib/filter/time-filter-list/time-filter-list-binding.directive.d.ts +14 -14
  608. package/lib/filter/time-filter-list/time-filter-list.component.d.ts +12 -12
  609. package/lib/geo.module.d.ts +28 -28
  610. package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +206 -206
  611. package/lib/geometry/geometry-form-field/geometry-form-field.component.d.ts +88 -88
  612. package/lib/geometry/geometry-form-field/geometry-form-field.module.d.ts +19 -19
  613. package/lib/geometry/geometry.module.d.ts +8 -8
  614. package/lib/geometry/index.d.ts +3 -3
  615. package/lib/geometry/shared/controls/draw.d.ts +150 -150
  616. package/lib/geometry/shared/controls/index.d.ts +3 -3
  617. package/lib/geometry/shared/controls/modify.d.ts +228 -228
  618. package/lib/geometry/shared/controls/slice.d.ts +99 -99
  619. package/lib/geometry/shared/geometry.errors.d.ts +11 -11
  620. package/lib/geometry/shared/geometry.interfaces.d.ts +13 -13
  621. package/lib/geometry/shared/geometry.utils.d.ts +45 -45
  622. package/lib/geometry/shared/index.d.ts +4 -4
  623. package/lib/import-export/export-button/export-button.component.d.ts +16 -16
  624. package/lib/import-export/export-button/index.d.ts +1 -1
  625. package/lib/import-export/import-export/import-export.component.d.ts +104 -104
  626. package/lib/import-export/import-export/index.d.ts +1 -1
  627. package/lib/import-export/import-export.module.d.ts +26 -26
  628. package/lib/import-export/index.d.ts +4 -4
  629. package/lib/import-export/shared/drop-geo-file.directive.d.ts +36 -36
  630. package/lib/import-export/shared/export.errors.d.ts +8 -8
  631. package/lib/import-export/shared/export.interface.d.ts +11 -11
  632. package/lib/import-export/shared/export.service.d.ts +30 -30
  633. package/lib/import-export/shared/export.type.d.ts +16 -16
  634. package/lib/import-export/shared/export.utils.d.ts +19 -19
  635. package/lib/import-export/shared/import.errors.d.ts +20 -20
  636. package/lib/import-export/shared/import.interface.d.ts +8 -8
  637. package/lib/import-export/shared/import.service.d.ts +31 -31
  638. package/lib/import-export/shared/import.utils.d.ts +18 -18
  639. package/lib/import-export/shared/index.d.ts +10 -10
  640. package/lib/import-export/style-list/index.d.ts +4 -4
  641. package/lib/import-export/style-list/style-list.interface.d.ts +6 -6
  642. package/lib/import-export/style-list/style-list.module.d.ts +8 -8
  643. package/lib/import-export/style-list/style-list.provider.d.ts +15 -15
  644. package/lib/import-export/style-list/style-list.service.d.ts +18 -18
  645. package/lib/layer/index.d.ts +10 -10
  646. package/lib/layer/layer-item/index.d.ts +1 -1
  647. package/lib/layer/layer-item/layer-item.component.d.ts +62 -62
  648. package/lib/layer/layer-legend/index.d.ts +1 -1
  649. package/lib/layer/layer-legend/layer-legend.component.d.ts +90 -90
  650. package/lib/layer/layer-legend-item/index.d.ts +1 -1
  651. package/lib/layer/layer-legend-item/layer-legend-item.component.d.ts +22 -22
  652. package/lib/layer/layer-legend-list/index.d.ts +2 -2
  653. package/lib/layer/layer-legend-list/layer-legend-list-binding.directive.d.ts +16 -16
  654. package/lib/layer/layer-legend-list/layer-legend-list.component.d.ts +31 -31
  655. package/lib/layer/layer-list/index.d.ts +3 -3
  656. package/lib/layer/layer-list/layer-list-binding.directive.d.ts +19 -19
  657. package/lib/layer/layer-list/layer-list.component.d.ts +127 -127
  658. package/lib/layer/layer-list/layer-list.enum.d.ts +15 -15
  659. package/lib/layer/layer-list-tool/index.d.ts +4 -4
  660. package/lib/layer/layer-list-tool/layer-list-tool.component.d.ts +32 -32
  661. package/lib/layer/layer-list-tool/layer-list-tool.enum.d.ts +5 -5
  662. package/lib/layer/layer-list-tool/layer-list-tool.interface.d.ts +8 -8
  663. package/lib/layer/layer-list-tool/layer-list-tool.service.d.ts +14 -14
  664. package/lib/layer/layer.module.d.ts +36 -36
  665. package/lib/layer/shared/clusterParam.d.ts +13 -13
  666. package/lib/layer/shared/index.d.ts +6 -6
  667. package/lib/layer/shared/layer.enums.d.ts +1 -1
  668. package/lib/layer/shared/layer.service.d.ts +30 -30
  669. package/lib/layer/shared/layers/any-layer.d.ts +6 -6
  670. package/lib/layer/shared/layers/any-layer.interface.d.ts +6 -6
  671. package/lib/layer/shared/layers/image-layer.d.ts +22 -22
  672. package/lib/layer/shared/layers/image-layer.interface.d.ts +19 -19
  673. package/lib/layer/shared/layers/index.d.ts +12 -12
  674. package/lib/layer/shared/layers/layer.d.ts +62 -62
  675. package/lib/layer/shared/layers/layer.interface.d.ts +109 -107
  676. package/lib/layer/shared/layers/tile-layer.d.ts +31 -31
  677. package/lib/layer/shared/layers/tile-layer.interface.d.ts +20 -20
  678. package/lib/layer/shared/layers/vector-layer.d.ts +78 -78
  679. package/lib/layer/shared/layers/vector-layer.interface.d.ts +41 -41
  680. package/lib/layer/shared/layers/vectortile-layer.d.ts +28 -28
  681. package/lib/layer/shared/layers/vectortile-layer.interface.d.ts +18 -18
  682. package/lib/layer/shared/style.service.d.ts +57 -57
  683. package/lib/layer/shared/vector-style.interface.d.ts +38 -38
  684. package/lib/layer/style-modal/index.d.ts +1 -1
  685. package/lib/layer/style-modal/style-modal.component.d.ts +42 -42
  686. package/lib/layer/track-feature-button/index.d.ts +1 -1
  687. package/lib/layer/track-feature-button/track-feature-button.component.d.ts +15 -15
  688. package/lib/layer/utils/image-watcher.d.ts +17 -17
  689. package/lib/layer/utils/index.d.ts +5 -5
  690. package/lib/layer/utils/layer.utils.d.ts +2 -2
  691. package/lib/layer/utils/outputLegend.d.ts +7 -7
  692. package/lib/layer/utils/tile-watcher.d.ts +14 -14
  693. package/lib/layer/utils/vector-watcher.d.ts +13 -13
  694. package/lib/map/baselayers-switcher/baselayers-switcher.animation.d.ts +2 -2
  695. package/lib/map/baselayers-switcher/baselayers-switcher.component.d.ts +21 -21
  696. package/lib/map/baselayers-switcher/index.d.ts +2 -2
  697. package/lib/map/baselayers-switcher/mini-basemap.component.d.ts +29 -29
  698. package/lib/map/geolocate-button/geolocate-button.component.d.ts +22 -22
  699. package/lib/map/geolocate-button/index.d.ts +1 -1
  700. package/lib/map/home-extent-button/home-extent-button.component.d.ts +20 -20
  701. package/lib/map/home-extent-button/index.d.ts +1 -1
  702. package/lib/map/index.d.ts +13 -13
  703. package/lib/map/info-section/index.d.ts +1 -1
  704. package/lib/map/info-section/info-section.component.d.ts +7 -7
  705. package/lib/map/map-browser/index.d.ts +1 -1
  706. package/lib/map/map-browser/map-browser.component.d.ts +25 -25
  707. package/lib/map/map-center/index.d.ts +1 -1
  708. package/lib/map/map-center/map-center.component.d.ts +31 -31
  709. package/lib/map/map.module.d.ts +28 -28
  710. package/lib/map/menu-button/index.d.ts +1 -1
  711. package/lib/map/menu-button/menu-button.component.d.ts +17 -17
  712. package/lib/map/offline-button/index.d.ts +1 -1
  713. package/lib/map/offline-button/offline-button.component.d.ts +23 -23
  714. package/lib/map/rotation-button/index.d.ts +1 -1
  715. package/lib/map/rotation-button/rotation-button.component.d.ts +17 -17
  716. package/lib/map/shared/controllers/controller.d.ts +29 -29
  717. package/lib/map/shared/controllers/geolocation.d.ts +112 -112
  718. package/lib/map/shared/controllers/index.d.ts +3 -3
  719. package/lib/map/shared/controllers/view.d.ts +200 -200
  720. package/lib/map/shared/hover-feature.directive.d.ts +132 -132
  721. package/lib/map/shared/index.d.ts +13 -13
  722. package/lib/map/shared/linkedLayers.utils.d.ts +17 -17
  723. package/lib/map/shared/map-pointer-position.directive.d.ts +71 -71
  724. package/lib/map/shared/map.d.ts +135 -135
  725. package/lib/map/shared/map.enums.d.ts +4 -4
  726. package/lib/map/shared/map.interface.d.ts +57 -57
  727. package/lib/map/shared/map.service.d.ts +19 -19
  728. package/lib/map/shared/map.utils.d.ts +90 -90
  729. package/lib/map/shared/mapOffline.directive.d.ts +21 -21
  730. package/lib/map/shared/projection.interfaces.d.ts +29 -29
  731. package/lib/map/shared/projection.service.d.ts +19 -19
  732. package/lib/map/shared/projection.utils.d.ts +19 -19
  733. package/lib/map/swipe-control/index.d.ts +1 -1
  734. package/lib/map/swipe-control/swipe-control.component.d.ts +97 -97
  735. package/lib/map/utils/layer-watcher.d.ts +20 -20
  736. package/lib/map/wake-lock-button/index.d.ts +1 -1
  737. package/lib/map/wake-lock-button/wake-lock-button.component.d.ts +30 -30
  738. package/lib/map/zoom-button/index.d.ts +1 -1
  739. package/lib/map/zoom-button/zoom-button.component.d.ts +12 -12
  740. package/lib/measure/index.d.ts +3 -3
  741. package/lib/measure/measure.module.d.ts +7 -7
  742. package/lib/measure/measurer/measure-format.pipe.d.ts +15 -15
  743. package/lib/measure/measurer/measurer-dialog.component.d.ts +14 -14
  744. package/lib/measure/measurer/measurer-item.component.d.ts +66 -66
  745. package/lib/measure/measurer/measurer.component.d.ts +405 -405
  746. package/lib/measure/measurer/measurer.module.d.ts +25 -25
  747. package/lib/measure/shared/index.d.ts +3 -3
  748. package/lib/measure/shared/measure.enum.d.ts +33 -33
  749. package/lib/measure/shared/measure.interfaces.d.ts +21 -21
  750. package/lib/measure/shared/measure.utils.d.ts +180 -180
  751. package/lib/metadata/index.d.ts +2 -2
  752. package/lib/metadata/metadata-button/index.d.ts +1 -1
  753. package/lib/metadata/metadata-button/metadata-button.component.d.ts +26 -26
  754. package/lib/metadata/metadata.module.d.ts +15 -15
  755. package/lib/metadata/shared/index.d.ts +2 -2
  756. package/lib/metadata/shared/metadata.interface.d.ts +13 -13
  757. package/lib/metadata/shared/metadata.service.d.ts +8 -8
  758. package/lib/offline/geoDB/configFileToGeoDB.service.d.ts +14 -14
  759. package/lib/offline/geoDB/geoDB.enums.d.ts +4 -4
  760. package/lib/offline/geoDB/geoDB.interface.d.ts +19 -19
  761. package/lib/offline/geoDB/geoDB.service.d.ts +37 -37
  762. package/lib/offline/geoDB/index.d.ts +4 -4
  763. package/lib/offline/index.d.ts +2 -2
  764. package/lib/offline/shared/geo-network.service.d.ts +28 -28
  765. package/lib/offline/shared/index.d.ts +1 -1
  766. package/lib/overlay/index.d.ts +1 -1
  767. package/lib/overlay/overlay.module.d.ts +9 -9
  768. package/lib/overlay/shared/index.d.ts +6 -6
  769. package/lib/overlay/shared/overlay-marker-style.utils.d.ts +11 -11
  770. package/lib/overlay/shared/overlay.d.ts +81 -81
  771. package/lib/overlay/shared/overlay.directive.d.ts +18 -18
  772. package/lib/overlay/shared/overlay.enum.d.ts +6 -6
  773. package/lib/overlay/shared/overlay.service.d.ts +14 -14
  774. package/lib/overlay/shared/overlay.utils.d.ts +17 -17
  775. package/lib/print/index.d.ts +3 -3
  776. package/lib/print/print/print.component.d.ts +35 -35
  777. package/lib/print/print-form/index.d.ts +1 -1
  778. package/lib/print/print-form/print-form.component.d.ts +97 -97
  779. package/lib/print/print.module.d.ts +19 -19
  780. package/lib/print/shared/geopdf.d.ts +1 -1
  781. package/lib/print/shared/index.d.ts +4 -4
  782. package/lib/print/shared/print.interface.d.ts +22 -22
  783. package/lib/print/shared/print.service.d.ts +168 -168
  784. package/lib/print/shared/print.type.d.ts +45 -45
  785. package/lib/query/index.d.ts +1 -1
  786. package/lib/query/query.module.d.ts +11 -11
  787. package/lib/query/shared/index.d.ts +6 -6
  788. package/lib/query/shared/query-search-source.d.ts +17 -17
  789. package/lib/query/shared/query-search-source.providers.d.ts +17 -17
  790. package/lib/query/shared/query.directive.d.ts +105 -105
  791. package/lib/query/shared/query.enums.d.ts +26 -26
  792. package/lib/query/shared/query.interfaces.d.ts +35 -35
  793. package/lib/query/shared/query.service.d.ts +56 -56
  794. package/lib/query/shared/query.utils.d.ts +27 -27
  795. package/lib/search/index.d.ts +11 -11
  796. package/lib/search/search-bar/search-bar.component.d.ts +230 -230
  797. package/lib/search/search-bar/search-bar.module.d.ts +23 -23
  798. package/lib/search/search-bar/search-url-param.directive.d.ts +13 -13
  799. package/lib/search/search-results/save-feature-dialog.component.d.ts +32 -32
  800. package/lib/search/search-results/search-results-add-button.component.d.ts +76 -76
  801. package/lib/search/search-results/search-results-item.component.d.ts +47 -47
  802. package/lib/search/search-results/search-results.component.d.ts +161 -161
  803. package/lib/search/search-results/search-results.module.d.ts +28 -28
  804. package/lib/search/search-selector/search-selector.component.d.ts +58 -58
  805. package/lib/search/search-selector/search-selector.module.d.ts +19 -19
  806. package/lib/search/search-settings/search-settings.component.d.ts +102 -102
  807. package/lib/search/search-settings/search-settings.module.d.ts +20 -20
  808. package/lib/search/search.module.d.ts +14 -14
  809. package/lib/search/shared/index.d.ts +8 -8
  810. package/lib/search/shared/search-pointer-summary.directive.d.ts +133 -133
  811. package/lib/search/shared/search-source-service.providers.d.ts +15 -15
  812. package/lib/search/shared/search-source.service.d.ts +32 -32
  813. package/lib/search/shared/search.enums.d.ts +1 -1
  814. package/lib/search/shared/search.interfaces.d.ts +29 -29
  815. package/lib/search/shared/search.service.d.ts +53 -53
  816. package/lib/search/shared/search.utils.d.ts +39 -39
  817. package/lib/search/shared/sources/coordinates.d.ts +40 -40
  818. package/lib/search/shared/sources/coordinates.interfaces.d.ts +12 -12
  819. package/lib/search/shared/sources/coordinates.providers.d.ts +31 -31
  820. package/lib/search/shared/sources/icherche.d.ts +96 -96
  821. package/lib/search/shared/sources/icherche.interfaces.d.ts +30 -30
  822. package/lib/search/shared/sources/icherche.providers.d.ts +46 -46
  823. package/lib/search/shared/sources/ilayer.d.ts +55 -55
  824. package/lib/search/shared/sources/ilayer.interfaces.d.ts +47 -47
  825. package/lib/search/shared/sources/ilayer.providers.d.ts +31 -31
  826. package/lib/search/shared/sources/index.d.ts +17 -17
  827. package/lib/search/shared/sources/nominatim.d.ts +45 -45
  828. package/lib/search/shared/sources/nominatim.interfaces.d.ts +10 -10
  829. package/lib/search/shared/sources/nominatim.providers.d.ts +18 -18
  830. package/lib/search/shared/sources/source.d.ts +108 -108
  831. package/lib/search/shared/sources/source.interfaces.d.ts +47 -47
  832. package/lib/search/shared/sources/storedqueries.d.ts +73 -73
  833. package/lib/search/shared/sources/storedqueries.interfaces.d.ts +42 -42
  834. package/lib/search/shared/sources/storedqueries.providers.d.ts +32 -32
  835. package/lib/toast/index.d.ts +1 -1
  836. package/lib/toast/toast.component.d.ts +33 -33
  837. package/lib/toast/toast.module.d.ts +14 -14
  838. package/lib/utils/commonVectorStyle.d.ts +14 -14
  839. package/lib/utils/commonVectorStyle.interface.d.ts +16 -16
  840. package/lib/utils/googleLinks.d.ts +5 -5
  841. package/lib/utils/id-generator.d.ts +54 -54
  842. package/lib/utils/index.d.ts +5 -5
  843. package/lib/utils/osmLinks.d.ts +4 -4
  844. package/lib/wkt/index.d.ts +1 -1
  845. package/lib/wkt/shared/index.d.ts +1 -1
  846. package/lib/wkt/shared/wkt.service.d.ts +19 -19
  847. package/lib/wkt/wkt.module.d.ts +8 -8
  848. package/lib/workspace/confirmation-popup/confirmation-popup.component.d.ts +23 -23
  849. package/lib/workspace/confirmation-popup/confirmation-popup.module.d.ts +14 -14
  850. package/lib/workspace/confirmation-popup/index.d.ts +2 -2
  851. package/lib/workspace/index.d.ts +7 -7
  852. package/lib/workspace/shared/edition-workspace.d.ts +82 -82
  853. package/lib/workspace/shared/edition-workspace.service.d.ts +52 -52
  854. package/lib/workspace/shared/feature-workspace.d.ts +18 -18
  855. package/lib/workspace/shared/feature-workspace.service.d.ts +19 -19
  856. package/lib/workspace/shared/index.d.ts +7 -7
  857. package/lib/workspace/shared/wfs-workspace.d.ts +18 -18
  858. package/lib/workspace/shared/wfs-workspace.service.d.ts +19 -19
  859. package/lib/workspace/shared/wms-workspace.service.d.ts +22 -22
  860. package/lib/workspace/shared/workspace.utils.d.ts +10 -10
  861. package/lib/workspace/widgets/index.d.ts +3 -3
  862. package/lib/workspace/widgets/ogc-filter/ogc-filter.component.d.ts +29 -29
  863. package/lib/workspace/widgets/ogc-filter/ogc-filter.module.d.ts +14 -14
  864. package/lib/workspace/widgets/widgets.d.ts +9 -9
  865. package/lib/workspace/workspace-selector/workspace-selector.directive.d.ts +32 -32
  866. package/lib/workspace/workspace-selector/workspace-selector.module.d.ts +11 -11
  867. package/lib/workspace/workspace-updator/workspace-updator.directive.d.ts +26 -26
  868. package/lib/workspace/workspace-updator/workspace-updator.module.d.ts +11 -11
  869. package/lib/workspace/workspace.module.d.ts +14 -14
  870. package/package.json +4 -4
  871. package/public_api.d.ts +51 -51
@@ -1,307 +1,307 @@
1
- import { Component, Input } from '@angular/core';
2
- import { OgcFilterOperator } from '../../filter/shared/ogc-filter.enum';
3
- import { OgcFilterWriter } from '../shared/ogc-filter';
4
- import { BehaviorSubject } from 'rxjs';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "../shared/ogc-filter.service";
7
- function OgcFilterableItemComponent_mat_icon_2_Template(rf, ctx) { if (rf & 1) {
8
- const _r8 = i0.ɵɵgetCurrentView();
9
- i0.ɵɵelementStart(0, "mat-icon", 9);
10
- i0.ɵɵlistener("click", function OgcFilterableItemComponent_mat_icon_2_Template_mat_icon_click_0_listener() { i0.ɵɵrestoreView(_r8); const ctx_r7 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r7.toggleFiltersCollapsed()); });
11
- i0.ɵɵelementEnd();
12
- } if (rf & 2) {
13
- const ctx_r0 = i0.ɵɵnextContext();
14
- const _r4 = i0.ɵɵreference(7);
15
- i0.ɵɵproperty("target", _r4)("collapsed", ctx_r0.filtersCollapsed);
16
- } }
17
- const _c0 = function (a0) { return { "cursor": a0 }; };
18
- function OgcFilterableItemComponent_h4_3_Template(rf, ctx) { if (rf & 1) {
19
- const _r10 = i0.ɵɵgetCurrentView();
20
- i0.ɵɵelementStart(0, "h4", 10);
21
- i0.ɵɵlistener("click", function OgcFilterableItemComponent_h4_3_Template_h4_click_0_listener() { i0.ɵɵrestoreView(_r10); const ctx_r9 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r9.toggleLegendOnClick()); });
22
- i0.ɵɵtext(1);
23
- i0.ɵɵelementEnd();
24
- } if (rf & 2) {
25
- const ctx_r1 = i0.ɵɵnextContext();
26
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(3, _c0, ctx_r1.filtersCollapsed ? "default" : "pointer"))("matTooltip", ctx_r1.layer.title);
27
- i0.ɵɵadvance(1);
28
- i0.ɵɵtextInterpolate(ctx_r1.layer.title);
29
- } }
30
- function OgcFilterableItemComponent_button_4_Template(rf, ctx) { if (rf & 1) {
31
- const _r12 = i0.ɵɵgetCurrentView();
32
- i0.ɵɵelementStart(0, "button", 11);
33
- i0.ɵɵlistener("click", function OgcFilterableItemComponent_button_4_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r11 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r11.addFilterToSequence()); });
34
- i0.ɵɵpipe(1, "translate");
35
- i0.ɵɵelement(2, "mat-icon", 12);
36
- i0.ɵɵelementEnd();
37
- } if (rf & 2) {
38
- const ctx_r2 = i0.ɵɵnextContext();
39
- i0.ɵɵproperty("disabled", ctx_r2.addFilterDisabled())("matTooltip", i0.ɵɵpipeBind1(1, 3, "igo.geo.filter.addFilter"))("color", ctx_r2.color);
40
- } }
41
- const _c1 = function (a0) { return { disabled: a0 }; };
42
- function OgcFilterableItemComponent_button_5_Template(rf, ctx) { if (rf & 1) {
43
- const _r14 = i0.ɵɵgetCurrentView();
44
- i0.ɵɵelementStart(0, "button", 13);
45
- i0.ɵɵlistener("click", function OgcFilterableItemComponent_button_5_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r14); const ctx_r13 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r13.layer.visible = !ctx_r13.layer.visible); });
46
- i0.ɵɵpipe(1, "translate");
47
- i0.ɵɵpipe(2, "translate");
48
- i0.ɵɵelement(3, "mat-icon", 14);
49
- i0.ɵɵpipe(4, "async");
50
- i0.ɵɵelementEnd();
51
- } if (rf & 2) {
52
- const ctx_r3 = i0.ɵɵnextContext();
53
- i0.ɵɵproperty("color", ctx_r3.layer.visible ? "primary" : "default")("matTooltip", ctx_r3.layer.visible ? i0.ɵɵpipeBind1(1, 4, "igo.geo.layer.hideLayer") : i0.ɵɵpipeBind1(2, 6, "igo.geo.layer.showLayer"));
54
- i0.ɵɵadvance(3);
55
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(10, _c1, i0.ɵɵpipeBind1(4, 8, ctx_r3.inResolutionRange$) === false))("svgIcon", ctx_r3.layer.visible ? "eye" : "eye-off");
56
- } }
57
- function OgcFilterableItemComponent_div_8_igo_layer_legend_2_Template(rf, ctx) { if (rf & 1) {
58
- i0.ɵɵelement(0, "igo-layer-legend", 18);
59
- } if (rf & 2) {
60
- const ctx_r16 = i0.ɵɵnextContext(2);
61
- i0.ɵɵproperty("layer", ctx_r16.layer);
62
- } }
63
- function OgcFilterableItemComponent_div_8_Template(rf, ctx) { if (rf & 1) {
64
- i0.ɵɵelementStart(0, "div", 15, 16);
65
- i0.ɵɵtemplate(2, OgcFilterableItemComponent_div_8_igo_layer_legend_2_Template, 1, 1, "igo-layer-legend", 17);
66
- i0.ɵɵpipe(3, "async");
67
- i0.ɵɵelementEnd();
68
- } if (rf & 2) {
69
- const ctx_r5 = i0.ɵɵnextContext();
70
- i0.ɵɵadvance(2);
71
- i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(3, 1, ctx_r5.showLegend$));
72
- } }
73
- function OgcFilterableItemComponent_section_10_Template(rf, ctx) { if (rf & 1) {
74
- const _r18 = i0.ɵɵgetCurrentView();
75
- i0.ɵɵelementStart(0, "section", 19);
76
- i0.ɵɵelement(1, "mat-divider");
77
- i0.ɵɵelementStart(2, "mat-checkbox", 20);
78
- i0.ɵɵlistener("change", function OgcFilterableItemComponent_section_10_Template_mat_checkbox_change_2_listener($event) { i0.ɵɵrestoreView(_r18); const ctx_r17 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r17.changeOgcFilterType($event)); })("ngModelChange", function OgcFilterableItemComponent_section_10_Template_mat_checkbox_ngModelChange_2_listener($event) { i0.ɵɵrestoreView(_r18); const ctx_r19 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r19.datasource.options.ogcFilters.advancedOgcFilters = $event); });
79
- i0.ɵɵtext(3);
80
- i0.ɵɵpipe(4, "translate");
81
- i0.ɵɵelementEnd()();
82
- } if (rf & 2) {
83
- const ctx_r6 = i0.ɵɵnextContext();
84
- i0.ɵɵadvance(2);
85
- i0.ɵɵproperty("ngModel", ctx_r6.datasource.options.ogcFilters.advancedOgcFilters);
86
- i0.ɵɵadvance(1);
87
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(4, 2, "igo.geo.filter.advancedOgcFilters"), " ");
88
- } }
89
- const _c2 = function (a0) { return { "separate-item": a0 }; };
90
- export class OgcFilterableItemComponent {
91
- constructor(ogcFilterService) {
92
- this.ogcFilterService = ogcFilterService;
93
- this.color = 'primary';
94
- this.defaultLogicalParent = OgcFilterOperator.And;
95
- this.hasActiveSpatialFilter = false;
96
- this.filtersAreEditable = true;
97
- this.filtersCollapsed = true;
98
- this.hasSelector = false;
99
- this.showLegend$ = new BehaviorSubject(false);
100
- this.inResolutionRange$ = new BehaviorSubject(true);
101
- this.header = true;
102
- this.ogcFilterWriter = new OgcFilterWriter();
103
- }
104
- get refreshFunc() {
105
- return this.refreshFilters.bind(this);
106
- }
107
- get datasource() {
108
- return this.layer.dataSource;
109
- }
110
- ngOnInit() {
111
- if (this.layer.visible) {
112
- this.filtersCollapsed = false;
113
- }
114
- const ogcFilters = this.datasource.options.ogcFilters;
115
- if ((ogcFilters.pushButtons && ogcFilters.pushButtons.bundles.length > 0) ||
116
- (ogcFilters.checkboxes && ogcFilters.checkboxes.bundles.length > 0) ||
117
- (ogcFilters.radioButtons && ogcFilters.radioButtons.bundles.length > 0) ||
118
- (ogcFilters.select && ogcFilters.select.bundles.length > 0) ||
119
- (ogcFilters.autocomplete && ogcFilters.autocomplete.bundles.length > 0)) {
120
- if (ogcFilters.advancedOgcFilters === undefined) {
121
- ogcFilters.advancedOgcFilters = false;
122
- }
123
- this.hasSelector = true;
124
- }
125
- switch (this.datasource.options.type) {
126
- case 'wms':
127
- this.ogcFilterService.setOgcWMSFiltersOptions(this.datasource);
128
- break;
129
- case 'wfs':
130
- this.ogcFilterService.setOgcWFSFiltersOptions(this.datasource);
131
- break;
132
- default:
133
- break;
134
- }
135
- if (ogcFilters) {
136
- if (ogcFilters.interfaceOgcFilters) {
137
- this.lastRunOgcFilter = JSON.parse(JSON.stringify(ogcFilters.interfaceOgcFilters));
138
- if (ogcFilters.interfaceOgcFilters.filter(f => f.wkt_geometry).length >= 1) {
139
- this.hasActiveSpatialFilter = true;
140
- }
141
- }
142
- this.filtersAreEditable = ogcFilters.editable
143
- ? ogcFilters.editable
144
- : false;
145
- }
146
- const resolution$ = this.layer.map.viewController.resolution$;
147
- this.resolution$$ = resolution$.subscribe(() => {
148
- this.inResolutionRange$.next(this.layer.isInResolutionsRange);
149
- });
150
- }
151
- ngOnDestroy() {
152
- this.resolution$$.unsubscribe();
153
- }
154
- addFilterToSequence() {
155
- this.filtersCollapsed = false;
156
- const interfaceOgcFilters = this.datasource
157
- .options.ogcFilters.interfaceOgcFilters;
158
- const arr = interfaceOgcFilters || [];
159
- const lastLevel = arr.length === 0 ? 0 : arr[arr.length - 1].level;
160
- let firstFieldName = '';
161
- const includedFields = this.datasource.options.sourceFields.filter(f => !f.excludeFromOgcFilters);
162
- if (includedFields.length > 0) {
163
- firstFieldName =
164
- includedFields[0].name === undefined ? '' : includedFields[0].name;
165
- }
166
- let fieldNameGeometry;
167
- const datasourceOptions = this.datasource
168
- .options;
169
- if (datasourceOptions.fieldNameGeometry) {
170
- fieldNameGeometry = datasourceOptions.fieldNameGeometry;
171
- }
172
- else if (this.datasource.options.paramsWFS &&
173
- this.datasource.options.paramsWFS.fieldNameGeometry) {
174
- fieldNameGeometry = this.datasource.options.paramsWFS
175
- .fieldNameGeometry;
176
- }
177
- const allowedOperators = this.ogcFilterWriter.computeAllowedOperators(this.datasource.options.sourceFields, firstFieldName, this.datasource.options.ogcFilters.allowedOperatorsType);
178
- const firstOperatorName = Object.keys(allowedOperators)[0];
179
- arr.push(this.ogcFilterWriter.addInterfaceFilter({
180
- propertyName: firstFieldName,
181
- operator: firstOperatorName,
182
- active: true,
183
- igoSpatialSelector: 'fixedExtent',
184
- srsName: this.map.projection,
185
- }, fieldNameGeometry, lastLevel, this.defaultLogicalParent));
186
- this.datasource.options.ogcFilters.interfaceOgcFilters = arr;
187
- }
188
- refreshFilters(force) {
189
- if (force === true) {
190
- this.lastRunOgcFilter = undefined;
191
- }
192
- const ogcFilters = this.datasource.options.ogcFilters;
193
- const activeFilters = ogcFilters.interfaceOgcFilters ?
194
- ogcFilters.interfaceOgcFilters.filter(f => f.active === true) : [];
195
- if (activeFilters.length === 0) {
196
- ogcFilters.filters = undefined;
197
- ogcFilters.filtered = false;
198
- }
199
- if (activeFilters.length > 1) {
200
- activeFilters[0].parentLogical = activeFilters[1].parentLogical;
201
- }
202
- if (activeFilters.filter(af => ['Contains', 'Intersects', 'Within'].indexOf(af.operator) !== -1).length === 0) {
203
- this.hasActiveSpatialFilter = false;
204
- }
205
- else {
206
- this.hasActiveSpatialFilter = true;
207
- }
208
- if (!(JSON.stringify(this.lastRunOgcFilter) === JSON.stringify(activeFilters))) {
209
- if (this.layer.dataSource.options.type === 'wfs') {
210
- const ogcDataSource = this.layer.dataSource;
211
- const ogcLayer = ogcDataSource.options.ogcFilters;
212
- ogcLayer.filters = this.ogcFilterWriter.rebuiltIgoOgcFilterObjectFromSequence(activeFilters);
213
- this.layer.dataSource.ol.refresh();
214
- }
215
- else if (this.layer.dataSource.options.type === 'wms' &&
216
- ogcFilters.enabled) {
217
- let rebuildFilter = '';
218
- if (activeFilters.length >= 1) {
219
- const ogcDataSource = this.layer.dataSource;
220
- const ogcLayer = ogcDataSource.options.ogcFilters;
221
- ogcLayer.filters = this.ogcFilterWriter.rebuiltIgoOgcFilterObjectFromSequence(activeFilters);
222
- rebuildFilter = this.ogcFilterWriter.buildFilter(ogcLayer.filters, undefined, undefined, this.layer.dataSource.options.fieldNameGeometry, ogcDataSource.options);
223
- }
224
- this.ogcFilterService.filterByOgc(this.datasource, rebuildFilter);
225
- this.datasource.options.ogcFilters.filtered =
226
- activeFilters.length === 0 ? false : true;
227
- }
228
- this.lastRunOgcFilter = JSON.parse(JSON.stringify(activeFilters));
229
- }
230
- else {
231
- // identical filter. Nothing triggered
232
- }
233
- this.layer.dataSource.setOgcFilters(ogcFilters, true);
234
- }
235
- setVisible() {
236
- this.layer.visible = true;
237
- }
238
- isAdvancedOgcFilters() {
239
- return this.datasource.options.ogcFilters.advancedOgcFilters;
240
- }
241
- addFilterDisabled() {
242
- return (!this.datasource.options.sourceFields ||
243
- this.datasource.options.sourceFields.length === 0);
244
- }
245
- changeOgcFiltersAdvancedOgcFilters(value) {
246
- this.datasource.options.ogcFilters.advancedOgcFilters = value;
247
- }
248
- changeOgcFilterType(isAdvancedOgcFilters) {
249
- this.changeOgcFiltersAdvancedOgcFilters(isAdvancedOgcFilters.checked);
250
- if (isAdvancedOgcFilters.checked) {
251
- this.refreshFilters(true);
252
- }
253
- }
254
- toggleLegend(collapsed) {
255
- this.layer.legendCollapsed = collapsed;
256
- this.showLegend$.next(!collapsed);
257
- }
258
- toggleLegendOnClick() {
259
- if (!this.filtersCollapsed) {
260
- this.toggleLegend(this.showLegend$.value);
261
- }
262
- }
263
- toggleFiltersCollapsed() {
264
- this.filtersCollapsed = !this.filtersCollapsed;
265
- }
266
- }
267
- OgcFilterableItemComponent.ɵfac = function OgcFilterableItemComponent_Factory(t) { return new (t || OgcFilterableItemComponent)(i0.ɵɵdirectiveInject(i1.OGCFilterService)); };
268
- OgcFilterableItemComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: OgcFilterableItemComponent, selectors: [["igo-ogc-filterable-item"]], inputs: { layer: "layer", map: "map", header: "header" }, decls: 11, vars: 12, consts: [[3, "ngClass"], ["class", "igo-chevron", "mat-list-avatar", "", "igoCollapse", "", "svgIcon", "chevron-up", 3, "target", "collapsed", "click", 4, "ngIf"], ["matLine", "", "matTooltipShowDelay", "500", 3, "ngStyle", "matTooltip", "click", 4, "ngIf"], ["mat-icon-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "disabled", "matTooltip", "color", "click", 4, "ngIf"], ["mat-icon-button", "", "collapsibleButton", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "color", "matTooltip", "click", 4, "ngIf"], ["ogcFilters", ""], ["class", "igo-layer-legend-container", 4, "ngIf"], [3, "datasource", "map", "refreshFilters"], ["class", "mat-typography advancedOgcFilters", 4, "ngIf"], ["mat-list-avatar", "", "igoCollapse", "", "svgIcon", "chevron-up", 1, "igo-chevron", 3, "target", "collapsed", "click"], ["matLine", "", "matTooltipShowDelay", "500", 3, "ngStyle", "matTooltip", "click"], ["mat-icon-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "disabled", "matTooltip", "color", "click"], ["svgIcon", "plus"], ["mat-icon-button", "", "collapsibleButton", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "color", "matTooltip", "click"], [3, "ngClass", "svgIcon"], [1, "igo-layer-legend-container"], ["legend", ""], [3, "layer", 4, "ngIf"], [3, "layer"], [1, "mat-typography", "advancedOgcFilters"], ["labelPosition", "before", 3, "ngModel", "change", "ngModelChange"]], template: function OgcFilterableItemComponent_Template(rf, ctx) { if (rf & 1) {
269
- i0.ɵɵelementStart(0, "div", 0)(1, "mat-list-item");
270
- i0.ɵɵtemplate(2, OgcFilterableItemComponent_mat_icon_2_Template, 1, 2, "mat-icon", 1);
271
- i0.ɵɵtemplate(3, OgcFilterableItemComponent_h4_3_Template, 2, 5, "h4", 2);
272
- i0.ɵɵtemplate(4, OgcFilterableItemComponent_button_4_Template, 3, 5, "button", 3);
273
- i0.ɵɵtemplate(5, OgcFilterableItemComponent_button_5_Template, 5, 12, "button", 4);
274
- i0.ɵɵelementEnd();
275
- i0.ɵɵelementStart(6, "div", null, 5);
276
- i0.ɵɵtemplate(8, OgcFilterableItemComponent_div_8_Template, 4, 3, "div", 6);
277
- i0.ɵɵelement(9, "igo-ogc-filterable-form", 7);
278
- i0.ɵɵtemplate(10, OgcFilterableItemComponent_section_10_Template, 5, 4, "section", 8);
279
- i0.ɵɵelementEnd()();
280
- } if (rf & 2) {
281
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(10, _c2, ctx.header === true));
282
- i0.ɵɵadvance(2);
283
- i0.ɵɵproperty("ngIf", ctx.header);
284
- i0.ɵɵadvance(1);
285
- i0.ɵɵproperty("ngIf", ctx.header);
286
- i0.ɵɵadvance(1);
287
- i0.ɵɵproperty("ngIf", ctx.isAdvancedOgcFilters() && ctx.filtersAreEditable);
288
- i0.ɵɵadvance(1);
289
- i0.ɵɵproperty("ngIf", ctx.header);
290
- i0.ɵɵadvance(3);
291
- i0.ɵɵproperty("ngIf", ctx.header);
292
- i0.ɵɵadvance(1);
293
- i0.ɵɵproperty("datasource", ctx.datasource)("map", ctx.map)("refreshFilters", ctx.refreshFunc);
294
- i0.ɵɵadvance(1);
295
- i0.ɵɵproperty("ngIf", ctx.hasSelector && ctx.filtersAreEditable);
296
- } }, styles: ["[_nghost-%COMP%]{overflow:hidden}.advancedOgcFilters[_ngcontent-%COMP%]{text-align:center;width:100%;display:inline-block}.mat-list-item[_ngcontent-%COMP%]{height:auto}.igo-layer-legend-container[_ngcontent-%COMP%]{padding-left:1.125em;width:calc(100% - 18px)}mat-icon.disabled[_ngcontent-%COMP%]{color:#00000061}.separate-item[_ngcontent-%COMP%]{border-bottom:4px solid darkgrey}"] });
297
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(OgcFilterableItemComponent, [{
298
- type: Component,
299
- args: [{ selector: 'igo-ogc-filterable-item', template: "<div [ngClass]=\"{'separate-item' : header === true}\" >\n <mat-list-item>\n <mat-icon\n *ngIf=\"header\"\n class=\"igo-chevron\"\n mat-list-avatar\n igoCollapse [target]=\"ogcFilters\"\n [collapsed]=\"filtersCollapsed\"\n (click)=\"toggleFiltersCollapsed()\"\n svgIcon=\"chevron-up\">\n </mat-icon>\n <h4 (click)=\"toggleLegendOnClick()\" *ngIf=\"header\" [ngStyle]=\"{'cursor': filtersCollapsed ? 'default' : 'pointer'}\" matLine [matTooltip]=\"layer.title\" matTooltipShowDelay=\"500\">{{layer.title}}</h4>\n <button *ngIf=\"isAdvancedOgcFilters() && filtersAreEditable\" [disabled]=\"addFilterDisabled()\" mat-icon-button tooltip-position=\"below\" matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.filter.addFilter' | translate\" [color]=\"color\" (click)=\"addFilterToSequence()\">\n <mat-icon svgIcon=\"plus\"></mat-icon>\n </button>\n <button *ngIf=\"header\"\n mat-icon-button\n [color]=\"layer.visible ? 'primary' : 'default'\"\n collapsibleButton\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"layer.visible ?\n ('igo.geo.layer.hideLayer' | translate) :\n ('igo.geo.layer.showLayer' | translate)\"\n (click)=\"layer.visible = !layer.visible\">\n <mat-icon\n [ngClass]=\"{disabled: (inResolutionRange$ | async)===false}\"\n [svgIcon]=\"layer.visible ? 'eye' : 'eye-off'\">\n </mat-icon>\n </button>\n </mat-list-item>\n\n <div #ogcFilters>\n <div *ngIf=\"header\" #legend class=\"igo-layer-legend-container\">\n <igo-layer-legend *ngIf=\"showLegend$ | async\" [layer]=\"layer\">\n </igo-layer-legend>\n </div>\n <igo-ogc-filterable-form [datasource]=\"datasource\" [map]=\"map\" [refreshFilters]=\"refreshFunc\">\n </igo-ogc-filterable-form>\n\n <section *ngIf=\"hasSelector && filtersAreEditable\" class=\"mat-typography advancedOgcFilters\">\n <mat-divider></mat-divider>\n <mat-checkbox labelPosition='before' (change)=\"changeOgcFilterType($event)\"\n [(ngModel)]=\"datasource.options.ogcFilters.advancedOgcFilters\">\n {{'igo.geo.filter.advancedOgcFilters' | translate}}\n </mat-checkbox>\n </section>\n </div>\n</div>", styles: [":host{overflow:hidden}.advancedOgcFilters{text-align:center;width:100%;display:inline-block}.mat-list-item{height:auto}.igo-layer-legend-container{padding-left:1.125em;width:calc(100% - 18px)}mat-icon.disabled{color:#00000061}.separate-item{border-bottom:4px solid darkgrey}\n"] }]
300
- }], function () { return [{ type: i1.OGCFilterService }]; }, { layer: [{
301
- type: Input
302
- }], map: [{
303
- type: Input
304
- }], header: [{
305
- type: Input
306
- }] }); })();
1
+ import { Component, Input } from '@angular/core';
2
+ import { OgcFilterOperator } from '../../filter/shared/ogc-filter.enum';
3
+ import { OgcFilterWriter } from '../shared/ogc-filter';
4
+ import { BehaviorSubject } from 'rxjs';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../shared/ogc-filter.service";
7
+ function OgcFilterableItemComponent_mat_icon_2_Template(rf, ctx) { if (rf & 1) {
8
+ const _r8 = i0.ɵɵgetCurrentView();
9
+ i0.ɵɵelementStart(0, "mat-icon", 9);
10
+ i0.ɵɵlistener("click", function OgcFilterableItemComponent_mat_icon_2_Template_mat_icon_click_0_listener() { i0.ɵɵrestoreView(_r8); const ctx_r7 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r7.toggleFiltersCollapsed()); });
11
+ i0.ɵɵelementEnd();
12
+ } if (rf & 2) {
13
+ const ctx_r0 = i0.ɵɵnextContext();
14
+ const _r4 = i0.ɵɵreference(7);
15
+ i0.ɵɵproperty("target", _r4)("collapsed", ctx_r0.filtersCollapsed);
16
+ } }
17
+ const _c0 = function (a0) { return { "cursor": a0 }; };
18
+ function OgcFilterableItemComponent_h4_3_Template(rf, ctx) { if (rf & 1) {
19
+ const _r10 = i0.ɵɵgetCurrentView();
20
+ i0.ɵɵelementStart(0, "h4", 10);
21
+ i0.ɵɵlistener("click", function OgcFilterableItemComponent_h4_3_Template_h4_click_0_listener() { i0.ɵɵrestoreView(_r10); const ctx_r9 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r9.toggleLegendOnClick()); });
22
+ i0.ɵɵtext(1);
23
+ i0.ɵɵelementEnd();
24
+ } if (rf & 2) {
25
+ const ctx_r1 = i0.ɵɵnextContext();
26
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(3, _c0, ctx_r1.filtersCollapsed ? "default" : "pointer"))("matTooltip", ctx_r1.layer.title);
27
+ i0.ɵɵadvance(1);
28
+ i0.ɵɵtextInterpolate(ctx_r1.layer.title);
29
+ } }
30
+ function OgcFilterableItemComponent_button_4_Template(rf, ctx) { if (rf & 1) {
31
+ const _r12 = i0.ɵɵgetCurrentView();
32
+ i0.ɵɵelementStart(0, "button", 11);
33
+ i0.ɵɵlistener("click", function OgcFilterableItemComponent_button_4_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r11 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r11.addFilterToSequence()); });
34
+ i0.ɵɵpipe(1, "translate");
35
+ i0.ɵɵelement(2, "mat-icon", 12);
36
+ i0.ɵɵelementEnd();
37
+ } if (rf & 2) {
38
+ const ctx_r2 = i0.ɵɵnextContext();
39
+ i0.ɵɵproperty("disabled", ctx_r2.addFilterDisabled())("matTooltip", i0.ɵɵpipeBind1(1, 3, "igo.geo.filter.addFilter"))("color", ctx_r2.color);
40
+ } }
41
+ const _c1 = function (a0) { return { disabled: a0 }; };
42
+ function OgcFilterableItemComponent_button_5_Template(rf, ctx) { if (rf & 1) {
43
+ const _r14 = i0.ɵɵgetCurrentView();
44
+ i0.ɵɵelementStart(0, "button", 13);
45
+ i0.ɵɵlistener("click", function OgcFilterableItemComponent_button_5_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r14); const ctx_r13 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r13.layer.visible = !ctx_r13.layer.visible); });
46
+ i0.ɵɵpipe(1, "translate");
47
+ i0.ɵɵpipe(2, "translate");
48
+ i0.ɵɵelement(3, "mat-icon", 14);
49
+ i0.ɵɵpipe(4, "async");
50
+ i0.ɵɵelementEnd();
51
+ } if (rf & 2) {
52
+ const ctx_r3 = i0.ɵɵnextContext();
53
+ i0.ɵɵproperty("color", ctx_r3.layer.visible ? "primary" : "default")("matTooltip", ctx_r3.layer.visible ? i0.ɵɵpipeBind1(1, 4, "igo.geo.layer.hideLayer") : i0.ɵɵpipeBind1(2, 6, "igo.geo.layer.showLayer"));
54
+ i0.ɵɵadvance(3);
55
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(10, _c1, i0.ɵɵpipeBind1(4, 8, ctx_r3.inResolutionRange$) === false))("svgIcon", ctx_r3.layer.visible ? "eye" : "eye-off");
56
+ } }
57
+ function OgcFilterableItemComponent_div_8_igo_layer_legend_2_Template(rf, ctx) { if (rf & 1) {
58
+ i0.ɵɵelement(0, "igo-layer-legend", 18);
59
+ } if (rf & 2) {
60
+ const ctx_r16 = i0.ɵɵnextContext(2);
61
+ i0.ɵɵproperty("layer", ctx_r16.layer);
62
+ } }
63
+ function OgcFilterableItemComponent_div_8_Template(rf, ctx) { if (rf & 1) {
64
+ i0.ɵɵelementStart(0, "div", 15, 16);
65
+ i0.ɵɵtemplate(2, OgcFilterableItemComponent_div_8_igo_layer_legend_2_Template, 1, 1, "igo-layer-legend", 17);
66
+ i0.ɵɵpipe(3, "async");
67
+ i0.ɵɵelementEnd();
68
+ } if (rf & 2) {
69
+ const ctx_r5 = i0.ɵɵnextContext();
70
+ i0.ɵɵadvance(2);
71
+ i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(3, 1, ctx_r5.showLegend$));
72
+ } }
73
+ function OgcFilterableItemComponent_section_10_Template(rf, ctx) { if (rf & 1) {
74
+ const _r18 = i0.ɵɵgetCurrentView();
75
+ i0.ɵɵelementStart(0, "section", 19);
76
+ i0.ɵɵelement(1, "mat-divider");
77
+ i0.ɵɵelementStart(2, "mat-checkbox", 20);
78
+ i0.ɵɵlistener("change", function OgcFilterableItemComponent_section_10_Template_mat_checkbox_change_2_listener($event) { i0.ɵɵrestoreView(_r18); const ctx_r17 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r17.changeOgcFilterType($event)); })("ngModelChange", function OgcFilterableItemComponent_section_10_Template_mat_checkbox_ngModelChange_2_listener($event) { i0.ɵɵrestoreView(_r18); const ctx_r19 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r19.datasource.options.ogcFilters.advancedOgcFilters = $event); });
79
+ i0.ɵɵtext(3);
80
+ i0.ɵɵpipe(4, "translate");
81
+ i0.ɵɵelementEnd()();
82
+ } if (rf & 2) {
83
+ const ctx_r6 = i0.ɵɵnextContext();
84
+ i0.ɵɵadvance(2);
85
+ i0.ɵɵproperty("ngModel", ctx_r6.datasource.options.ogcFilters.advancedOgcFilters);
86
+ i0.ɵɵadvance(1);
87
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(4, 2, "igo.geo.filter.advancedOgcFilters"), " ");
88
+ } }
89
+ const _c2 = function (a0) { return { "separate-item": a0 }; };
90
+ export class OgcFilterableItemComponent {
91
+ constructor(ogcFilterService) {
92
+ this.ogcFilterService = ogcFilterService;
93
+ this.color = 'primary';
94
+ this.defaultLogicalParent = OgcFilterOperator.And;
95
+ this.hasActiveSpatialFilter = false;
96
+ this.filtersAreEditable = true;
97
+ this.filtersCollapsed = true;
98
+ this.hasSelector = false;
99
+ this.showLegend$ = new BehaviorSubject(false);
100
+ this.inResolutionRange$ = new BehaviorSubject(true);
101
+ this.header = true;
102
+ this.ogcFilterWriter = new OgcFilterWriter();
103
+ }
104
+ get refreshFunc() {
105
+ return this.refreshFilters.bind(this);
106
+ }
107
+ get datasource() {
108
+ return this.layer.dataSource;
109
+ }
110
+ ngOnInit() {
111
+ if (this.layer.visible) {
112
+ this.filtersCollapsed = false;
113
+ }
114
+ const ogcFilters = this.datasource.options.ogcFilters;
115
+ if ((ogcFilters.pushButtons && ogcFilters.pushButtons.bundles.length > 0) ||
116
+ (ogcFilters.checkboxes && ogcFilters.checkboxes.bundles.length > 0) ||
117
+ (ogcFilters.radioButtons && ogcFilters.radioButtons.bundles.length > 0) ||
118
+ (ogcFilters.select && ogcFilters.select.bundles.length > 0) ||
119
+ (ogcFilters.autocomplete && ogcFilters.autocomplete.bundles.length > 0)) {
120
+ if (ogcFilters.advancedOgcFilters === undefined) {
121
+ ogcFilters.advancedOgcFilters = false;
122
+ }
123
+ this.hasSelector = true;
124
+ }
125
+ switch (this.datasource.options.type) {
126
+ case 'wms':
127
+ this.ogcFilterService.setOgcWMSFiltersOptions(this.datasource);
128
+ break;
129
+ case 'wfs':
130
+ this.ogcFilterService.setOgcWFSFiltersOptions(this.datasource);
131
+ break;
132
+ default:
133
+ break;
134
+ }
135
+ if (ogcFilters) {
136
+ if (ogcFilters.interfaceOgcFilters) {
137
+ this.lastRunOgcFilter = JSON.parse(JSON.stringify(ogcFilters.interfaceOgcFilters));
138
+ if (ogcFilters.interfaceOgcFilters.filter(f => f.wkt_geometry).length >= 1) {
139
+ this.hasActiveSpatialFilter = true;
140
+ }
141
+ }
142
+ this.filtersAreEditable = ogcFilters.editable
143
+ ? ogcFilters.editable
144
+ : false;
145
+ }
146
+ const resolution$ = this.layer.map.viewController.resolution$;
147
+ this.resolution$$ = resolution$.subscribe(() => {
148
+ this.inResolutionRange$.next(this.layer.isInResolutionsRange);
149
+ });
150
+ }
151
+ ngOnDestroy() {
152
+ this.resolution$$.unsubscribe();
153
+ }
154
+ addFilterToSequence() {
155
+ this.filtersCollapsed = false;
156
+ const interfaceOgcFilters = this.datasource
157
+ .options.ogcFilters.interfaceOgcFilters;
158
+ const arr = interfaceOgcFilters || [];
159
+ const lastLevel = arr.length === 0 ? 0 : arr[arr.length - 1].level;
160
+ let firstFieldName = '';
161
+ const includedFields = this.datasource.options.sourceFields.filter(f => !f.excludeFromOgcFilters);
162
+ if (includedFields.length > 0) {
163
+ firstFieldName =
164
+ includedFields[0].name === undefined ? '' : includedFields[0].name;
165
+ }
166
+ let fieldNameGeometry;
167
+ const datasourceOptions = this.datasource
168
+ .options;
169
+ if (datasourceOptions.fieldNameGeometry) {
170
+ fieldNameGeometry = datasourceOptions.fieldNameGeometry;
171
+ }
172
+ else if (this.datasource.options.paramsWFS &&
173
+ this.datasource.options.paramsWFS.fieldNameGeometry) {
174
+ fieldNameGeometry = this.datasource.options.paramsWFS
175
+ .fieldNameGeometry;
176
+ }
177
+ const allowedOperators = this.ogcFilterWriter.computeAllowedOperators(this.datasource.options.sourceFields, firstFieldName, this.datasource.options.ogcFilters.allowedOperatorsType);
178
+ const firstOperatorName = Object.keys(allowedOperators)[0];
179
+ arr.push(this.ogcFilterWriter.addInterfaceFilter({
180
+ propertyName: firstFieldName,
181
+ operator: firstOperatorName,
182
+ active: true,
183
+ igoSpatialSelector: 'fixedExtent',
184
+ srsName: this.map.projection,
185
+ }, fieldNameGeometry, lastLevel, this.defaultLogicalParent));
186
+ this.datasource.options.ogcFilters.interfaceOgcFilters = arr;
187
+ }
188
+ refreshFilters(force) {
189
+ if (force === true) {
190
+ this.lastRunOgcFilter = undefined;
191
+ }
192
+ const ogcFilters = this.datasource.options.ogcFilters;
193
+ const activeFilters = ogcFilters.interfaceOgcFilters ?
194
+ ogcFilters.interfaceOgcFilters.filter(f => f.active === true) : [];
195
+ if (activeFilters.length === 0) {
196
+ ogcFilters.filters = undefined;
197
+ ogcFilters.filtered = false;
198
+ }
199
+ if (activeFilters.length > 1) {
200
+ activeFilters[0].parentLogical = activeFilters[1].parentLogical;
201
+ }
202
+ if (activeFilters.filter(af => ['Contains', 'Intersects', 'Within'].indexOf(af.operator) !== -1).length === 0) {
203
+ this.hasActiveSpatialFilter = false;
204
+ }
205
+ else {
206
+ this.hasActiveSpatialFilter = true;
207
+ }
208
+ if (!(JSON.stringify(this.lastRunOgcFilter) === JSON.stringify(activeFilters))) {
209
+ if (this.layer.dataSource.options.type === 'wfs') {
210
+ const ogcDataSource = this.layer.dataSource;
211
+ const ogcLayer = ogcDataSource.options.ogcFilters;
212
+ ogcLayer.filters = this.ogcFilterWriter.rebuiltIgoOgcFilterObjectFromSequence(activeFilters);
213
+ this.layer.dataSource.ol.refresh();
214
+ }
215
+ else if (this.layer.dataSource.options.type === 'wms' &&
216
+ ogcFilters.enabled) {
217
+ let rebuildFilter = '';
218
+ if (activeFilters.length >= 1) {
219
+ const ogcDataSource = this.layer.dataSource;
220
+ const ogcLayer = ogcDataSource.options.ogcFilters;
221
+ ogcLayer.filters = this.ogcFilterWriter.rebuiltIgoOgcFilterObjectFromSequence(activeFilters);
222
+ rebuildFilter = this.ogcFilterWriter.buildFilter(ogcLayer.filters, undefined, undefined, this.layer.dataSource.options.fieldNameGeometry, ogcDataSource.options);
223
+ }
224
+ this.ogcFilterService.filterByOgc(this.datasource, rebuildFilter);
225
+ this.datasource.options.ogcFilters.filtered =
226
+ activeFilters.length === 0 ? false : true;
227
+ }
228
+ this.lastRunOgcFilter = JSON.parse(JSON.stringify(activeFilters));
229
+ }
230
+ else {
231
+ // identical filter. Nothing triggered
232
+ }
233
+ this.layer.dataSource.setOgcFilters(ogcFilters, true);
234
+ }
235
+ setVisible() {
236
+ this.layer.visible = true;
237
+ }
238
+ isAdvancedOgcFilters() {
239
+ return this.datasource.options.ogcFilters.advancedOgcFilters;
240
+ }
241
+ addFilterDisabled() {
242
+ return (!this.datasource.options.sourceFields ||
243
+ this.datasource.options.sourceFields.length === 0);
244
+ }
245
+ changeOgcFiltersAdvancedOgcFilters(value) {
246
+ this.datasource.options.ogcFilters.advancedOgcFilters = value;
247
+ }
248
+ changeOgcFilterType(isAdvancedOgcFilters) {
249
+ this.changeOgcFiltersAdvancedOgcFilters(isAdvancedOgcFilters.checked);
250
+ if (isAdvancedOgcFilters.checked) {
251
+ this.refreshFilters(true);
252
+ }
253
+ }
254
+ toggleLegend(collapsed) {
255
+ this.layer.legendCollapsed = collapsed;
256
+ this.showLegend$.next(!collapsed);
257
+ }
258
+ toggleLegendOnClick() {
259
+ if (!this.filtersCollapsed) {
260
+ this.toggleLegend(this.showLegend$.value);
261
+ }
262
+ }
263
+ toggleFiltersCollapsed() {
264
+ this.filtersCollapsed = !this.filtersCollapsed;
265
+ }
266
+ }
267
+ OgcFilterableItemComponent.ɵfac = function OgcFilterableItemComponent_Factory(t) { return new (t || OgcFilterableItemComponent)(i0.ɵɵdirectiveInject(i1.OGCFilterService)); };
268
+ OgcFilterableItemComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: OgcFilterableItemComponent, selectors: [["igo-ogc-filterable-item"]], inputs: { layer: "layer", map: "map", header: "header" }, decls: 11, vars: 12, consts: [[3, "ngClass"], ["class", "igo-chevron", "mat-list-avatar", "", "igoCollapse", "", "svgIcon", "chevron-up", 3, "target", "collapsed", "click", 4, "ngIf"], ["matLine", "", "matTooltipShowDelay", "500", 3, "ngStyle", "matTooltip", "click", 4, "ngIf"], ["mat-icon-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "disabled", "matTooltip", "color", "click", 4, "ngIf"], ["mat-icon-button", "", "collapsibleButton", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "color", "matTooltip", "click", 4, "ngIf"], ["ogcFilters", ""], ["class", "igo-layer-legend-container", 4, "ngIf"], [3, "datasource", "map", "refreshFilters"], ["class", "mat-typography advancedOgcFilters", 4, "ngIf"], ["mat-list-avatar", "", "igoCollapse", "", "svgIcon", "chevron-up", 1, "igo-chevron", 3, "target", "collapsed", "click"], ["matLine", "", "matTooltipShowDelay", "500", 3, "ngStyle", "matTooltip", "click"], ["mat-icon-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "disabled", "matTooltip", "color", "click"], ["svgIcon", "plus"], ["mat-icon-button", "", "collapsibleButton", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "color", "matTooltip", "click"], [3, "ngClass", "svgIcon"], [1, "igo-layer-legend-container"], ["legend", ""], [3, "layer", 4, "ngIf"], [3, "layer"], [1, "mat-typography", "advancedOgcFilters"], ["labelPosition", "before", 3, "ngModel", "change", "ngModelChange"]], template: function OgcFilterableItemComponent_Template(rf, ctx) { if (rf & 1) {
269
+ i0.ɵɵelementStart(0, "div", 0)(1, "mat-list-item");
270
+ i0.ɵɵtemplate(2, OgcFilterableItemComponent_mat_icon_2_Template, 1, 2, "mat-icon", 1);
271
+ i0.ɵɵtemplate(3, OgcFilterableItemComponent_h4_3_Template, 2, 5, "h4", 2);
272
+ i0.ɵɵtemplate(4, OgcFilterableItemComponent_button_4_Template, 3, 5, "button", 3);
273
+ i0.ɵɵtemplate(5, OgcFilterableItemComponent_button_5_Template, 5, 12, "button", 4);
274
+ i0.ɵɵelementEnd();
275
+ i0.ɵɵelementStart(6, "div", null, 5);
276
+ i0.ɵɵtemplate(8, OgcFilterableItemComponent_div_8_Template, 4, 3, "div", 6);
277
+ i0.ɵɵelement(9, "igo-ogc-filterable-form", 7);
278
+ i0.ɵɵtemplate(10, OgcFilterableItemComponent_section_10_Template, 5, 4, "section", 8);
279
+ i0.ɵɵelementEnd()();
280
+ } if (rf & 2) {
281
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(10, _c2, ctx.header === true));
282
+ i0.ɵɵadvance(2);
283
+ i0.ɵɵproperty("ngIf", ctx.header);
284
+ i0.ɵɵadvance(1);
285
+ i0.ɵɵproperty("ngIf", ctx.header);
286
+ i0.ɵɵadvance(1);
287
+ i0.ɵɵproperty("ngIf", ctx.isAdvancedOgcFilters() && ctx.filtersAreEditable);
288
+ i0.ɵɵadvance(1);
289
+ i0.ɵɵproperty("ngIf", ctx.header);
290
+ i0.ɵɵadvance(3);
291
+ i0.ɵɵproperty("ngIf", ctx.header);
292
+ i0.ɵɵadvance(1);
293
+ i0.ɵɵproperty("datasource", ctx.datasource)("map", ctx.map)("refreshFilters", ctx.refreshFunc);
294
+ i0.ɵɵadvance(1);
295
+ i0.ɵɵproperty("ngIf", ctx.hasSelector && ctx.filtersAreEditable);
296
+ } }, styles: ["[_nghost-%COMP%]{overflow:hidden}.advancedOgcFilters[_ngcontent-%COMP%]{text-align:center;width:100%;display:inline-block}.mat-list-item[_ngcontent-%COMP%]{height:auto}.igo-layer-legend-container[_ngcontent-%COMP%]{padding-left:1.125em;width:calc(100% - 18px)}mat-icon.disabled[_ngcontent-%COMP%]{color:#00000061}.separate-item[_ngcontent-%COMP%]{border-bottom:4px solid darkgrey}"] });
297
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(OgcFilterableItemComponent, [{
298
+ type: Component,
299
+ args: [{ selector: 'igo-ogc-filterable-item', template: "<div [ngClass]=\"{'separate-item' : header === true}\" >\n <mat-list-item>\n <mat-icon\n *ngIf=\"header\"\n class=\"igo-chevron\"\n mat-list-avatar\n igoCollapse [target]=\"ogcFilters\"\n [collapsed]=\"filtersCollapsed\"\n (click)=\"toggleFiltersCollapsed()\"\n svgIcon=\"chevron-up\">\n </mat-icon>\n <h4 (click)=\"toggleLegendOnClick()\" *ngIf=\"header\" [ngStyle]=\"{'cursor': filtersCollapsed ? 'default' : 'pointer'}\" matLine [matTooltip]=\"layer.title\" matTooltipShowDelay=\"500\">{{layer.title}}</h4>\n <button *ngIf=\"isAdvancedOgcFilters() && filtersAreEditable\" [disabled]=\"addFilterDisabled()\" mat-icon-button tooltip-position=\"below\" matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.filter.addFilter' | translate\" [color]=\"color\" (click)=\"addFilterToSequence()\">\n <mat-icon svgIcon=\"plus\"></mat-icon>\n </button>\n <button *ngIf=\"header\"\n mat-icon-button\n [color]=\"layer.visible ? 'primary' : 'default'\"\n collapsibleButton\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"layer.visible ?\n ('igo.geo.layer.hideLayer' | translate) :\n ('igo.geo.layer.showLayer' | translate)\"\n (click)=\"layer.visible = !layer.visible\">\n <mat-icon\n [ngClass]=\"{disabled: (inResolutionRange$ | async)===false}\"\n [svgIcon]=\"layer.visible ? 'eye' : 'eye-off'\">\n </mat-icon>\n </button>\n </mat-list-item>\n\n <div #ogcFilters>\n <div *ngIf=\"header\" #legend class=\"igo-layer-legend-container\">\n <igo-layer-legend *ngIf=\"showLegend$ | async\" [layer]=\"layer\">\n </igo-layer-legend>\n </div>\n <igo-ogc-filterable-form [datasource]=\"datasource\" [map]=\"map\" [refreshFilters]=\"refreshFunc\">\n </igo-ogc-filterable-form>\n\n <section *ngIf=\"hasSelector && filtersAreEditable\" class=\"mat-typography advancedOgcFilters\">\n <mat-divider></mat-divider>\n <mat-checkbox labelPosition='before' (change)=\"changeOgcFilterType($event)\"\n [(ngModel)]=\"datasource.options.ogcFilters.advancedOgcFilters\">\n {{'igo.geo.filter.advancedOgcFilters' | translate}}\n </mat-checkbox>\n </section>\n </div>\n</div>", styles: [":host{overflow:hidden}.advancedOgcFilters{text-align:center;width:100%;display:inline-block}.mat-list-item{height:auto}.igo-layer-legend-container{padding-left:1.125em;width:calc(100% - 18px)}mat-icon.disabled{color:#00000061}.separate-item{border-bottom:4px solid darkgrey}\n"] }]
300
+ }], function () { return [{ type: i1.OGCFilterService }]; }, { layer: [{
301
+ type: Input
302
+ }], map: [{
303
+ type: Input
304
+ }], header: [{
305
+ type: Input
306
+ }] }); })();
307
307
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2djLWZpbHRlcmFibGUtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9maWx0ZXIvb2djLWZpbHRlcmFibGUtaXRlbS9vZ2MtZmlsdGVyYWJsZS1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci9vZ2MtZmlsdGVyYWJsZS1pdGVtL29nYy1maWx0ZXJhYmxlLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBS3BFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBU3hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLE1BQU0sQ0FBQzs7Ozs7SUNiakQsbUNBT3VCO0lBRHJCLDhLQUFTLGVBQUEsK0JBQXdCLENBQUEsSUFBQztJQUVwQyxpQkFBVzs7OztJQUpHLDRCQUFxQixzQ0FBQTs7Ozs7SUFLbkMsOEJBQWlMO0lBQTdLLG1LQUFTLGVBQUEsNEJBQXFCLENBQUEsSUFBQztJQUE4SSxZQUFlO0lBQUEsaUJBQUs7OztJQUFsSixxR0FBZ0Usa0NBQUE7SUFBOEQsZUFBZTtJQUFmLHdDQUFlOzs7O0lBQzlMLGtDQUN3RztJQUFoQyw0S0FBUyxlQUFBLDZCQUFxQixDQUFBLElBQUM7O0lBQ3JHLCtCQUFvQztJQUN0QyxpQkFBUzs7O0lBSG9ELHFEQUFnQyxnRUFBQSx1QkFBQTs7Ozs7SUFJN0Ysa0NBUzJDO0lBQXpDLDRLQUFTLDhEQUE4QixJQUFDOzs7SUFDeEMsK0JBR1c7O0lBQ2IsaUJBQVM7OztJQVpQLG9FQUErQyx3SUFBQTtJQVM3QyxlQUE0RDtJQUE1RCxn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QUE7UUFFbEQscUZBUVc7UUFDWCx5RUFBcU07UUFDbk0saUZBR1M7UUFDVCxrRkFjUztRQUNiLGlCQUFnQjtRQUVoQixvQ0FBaUI7UUFDYiwyRUFHTTtRQUNSLDZDQUMwQjtRQUUxQixxRkFNVTtRQUNaLGlCQUFNLEVBQUE7O1FBaERILDBFQUErQztRQUc3QyxlQUFZO1FBQVosaUNBQVk7UUFRc0IsZUFBWTtRQUFaLGlDQUFZO1FBQ3RDLGVBQWtEO1FBQWxELDJFQUFrRDtRQUlsRCxlQUFZO1FBQVosaUNBQVk7UUFrQmYsZUFBWTtRQUFaLGlDQUFZO1FBSUssZUFBeUI7UUFBekIsMkNBQXlCLGdCQUFBLG1DQUFBO1FBR3hDLGVBQXVDO1FBQXZDLGdFQUF1Qzs7dUZEbkJ4QywwQkFBMEI7Y0FMdEMsU0FBUzsyQkFDRSx5QkFBeUI7bUVBaUIxQixLQUFLO2tCQUFiLEtBQUs7WUFFRyxHQUFHO2tCQUFYLEtBQUs7WUFFRyxNQUFNO2tCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBMYXllciB9IGZyb20gJy4uLy4uL2xheWVyL3NoYXJlZC9sYXllcnMvbGF5ZXInO1xuaW1wb3J0IHsgV01TRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL3dtcy1kYXRhc291cmNlJztcbmltcG9ydCB7IFdGU0RhdGFTb3VyY2VPcHRpb25zUGFyYW1zIH0gZnJvbSAnLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvd2ZzLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IE9nY0ZpbHRlck9wZXJhdG9yIH0gZnJvbSAnLi4vLi4vZmlsdGVyL3NoYXJlZC9vZ2MtZmlsdGVyLmVudW0nO1xuXG5pbXBvcnQge1xuICBPZ2NGaWx0ZXJhYmxlRGF0YVNvdXJjZSxcbiAgT2djRmlsdGVyc09wdGlvbnMsXG4gIE9nY0ludGVyZmFjZUZpbHRlck9wdGlvbnNcbn0gZnJvbSAnLi4vc2hhcmVkL29nYy1maWx0ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IE9HQ0ZpbHRlclNlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQvb2djLWZpbHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IElnb01hcCB9IGZyb20gJy4uLy4uL21hcCc7XG5pbXBvcnQgeyBPZ2NGaWx0ZXJXcml0ZXIgfSBmcm9tICcuLi9zaGFyZWQvb2djLWZpbHRlcic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZ28tb2djLWZpbHRlcmFibGUtaXRlbScsXG4gIHRlbXBsYXRlVXJsOiAnLi9vZ2MtZmlsdGVyYWJsZS1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vb2djLWZpbHRlcmFibGUtaXRlbS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIE9nY0ZpbHRlcmFibGVJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwdWJsaWMgY29sb3IgPSAncHJpbWFyeSc7XG4gIHByaXZhdGUgbGFzdFJ1bk9nY0ZpbHRlcjtcbiAgcHJpdmF0ZSBkZWZhdWx0TG9naWNhbFBhcmVudCA9IE9nY0ZpbHRlck9wZXJhdG9yLkFuZDtcbiAgcHVibGljIGhhc0FjdGl2ZVNwYXRpYWxGaWx0ZXIgPSBmYWxzZTtcbiAgcHVibGljIGZpbHRlcnNBcmVFZGl0YWJsZSA9IHRydWU7XG4gIHB1YmxpYyBmaWx0ZXJzQ29sbGFwc2VkID0gdHJ1ZTtcbiAgcHVibGljIGhhc1NlbGVjdG9yOiBib29sZWFuID0gZmFsc2U7XG4gIHNob3dMZWdlbmQkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgaW5SZXNvbHV0aW9uUmFuZ2UkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRydWUpO1xuICBwcml2YXRlIHJlc29sdXRpb24kJDogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIG9nY0ZpbHRlcldyaXRlcjtcblxuICBASW5wdXQoKSBsYXllcjogTGF5ZXI7XG5cbiAgQElucHV0KCkgbWFwOiBJZ29NYXA7XG5cbiAgQElucHV0KCkgaGVhZGVyOiBib29sZWFuID0gdHJ1ZTtcblxuICBnZXQgcmVmcmVzaEZ1bmMoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVmcmVzaEZpbHRlcnMuYmluZCh0aGlzKTtcbiAgfVxuXG4gIGdldCBkYXRhc291cmNlKCk6IE9nY0ZpbHRlcmFibGVEYXRhU291cmNlIHtcbiAgICByZXR1cm4gdGhpcy5sYXllci5kYXRhU291cmNlIGFzIE9nY0ZpbHRlcmFibGVEYXRhU291cmNlO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBvZ2NGaWx0ZXJTZXJ2aWNlOiBPR0NGaWx0ZXJTZXJ2aWNlKSB7XG4gICAgdGhpcy5vZ2NGaWx0ZXJXcml0ZXIgPSBuZXcgT2djRmlsdGVyV3JpdGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5sYXllci52aXNpYmxlKSB7XG4gICAgICB0aGlzLmZpbHRlcnNDb2xsYXBzZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBvZ2NGaWx0ZXJzID0gdGhpcy5kYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycztcbiAgICBpZiAoXG4gICAgICAob2djRmlsdGVycy5wdXNoQnV0dG9ucyAmJiBvZ2NGaWx0ZXJzLnB1c2hCdXR0b25zLmJ1bmRsZXMubGVuZ3RoID4gMCkgfHxcbiAgICAgIChvZ2NGaWx0ZXJzLmNoZWNrYm94ZXMgJiYgb2djRmlsdGVycy5jaGVja2JveGVzLmJ1bmRsZXMubGVuZ3RoID4gMCkgfHxcbiAgICAgIChvZ2NGaWx0ZXJzLnJhZGlvQnV0dG9ucyAmJiBvZ2NGaWx0ZXJzLnJhZGlvQnV0dG9ucy5idW5kbGVzLmxlbmd0aCA+IDApIHx8XG4gICAgICAob2djRmlsdGVycy5zZWxlY3QgJiYgb2djRmlsdGVycy5zZWxlY3QuYnVuZGxlcy5sZW5ndGggPiAwKSB8fFxuICAgICAgKG9nY0ZpbHRlcnMuYXV0b2NvbXBsZXRlICYmIG9nY0ZpbHRlcnMuYXV0b2NvbXBsZXRlLmJ1bmRsZXMubGVuZ3RoID4gMCkpIHtcbiAgICAgIGlmIChvZ2NGaWx0ZXJzLmFkdmFuY2VkT2djRmlsdGVycyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIG9nY0ZpbHRlcnMuYWR2YW5jZWRPZ2NGaWx0ZXJzID0gZmFsc2U7XG4gICAgICB9XG4gICAgICB0aGlzLmhhc1NlbGVjdG9yID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLnR5cGUpIHtcbiAgICAgIGNhc2UgJ3dtcyc6XG4gICAgICAgIHRoaXMub2djRmlsdGVyU2VydmljZS5zZXRPZ2NXTVNGaWx0ZXJzT3B0aW9ucyh0aGlzLmRhdGFzb3VyY2UpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3dmcyc6XG4gICAgICAgIHRoaXMub2djRmlsdGVyU2VydmljZS5zZXRPZ2NXRlNGaWx0ZXJzT3B0aW9ucyh0aGlzLmRhdGFzb3VyY2UpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGlmIChvZ2NGaWx0ZXJzKSB7XG4gICAgICBpZiAob2djRmlsdGVycy5pbnRlcmZhY2VPZ2NGaWx0ZXJzKSB7XG4gICAgICAgIHRoaXMubGFzdFJ1bk9nY0ZpbHRlciA9IEpTT04ucGFyc2UoXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkob2djRmlsdGVycy5pbnRlcmZhY2VPZ2NGaWx0ZXJzKVxuICAgICAgICApO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgb2djRmlsdGVycy5pbnRlcmZhY2VPZ2NGaWx0ZXJzLmZpbHRlcihmID0+IGYud2t0X2dlb21ldHJ5KS5sZW5ndGggPj0gMVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLmhhc0FjdGl2ZVNwYXRpYWxGaWx0ZXIgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZmlsdGVyc0FyZUVkaXRhYmxlID0gb2djRmlsdGVycy5lZGl0YWJsZVxuICAgICAgICA/IG9nY0ZpbHRlcnMuZWRpdGFibGVcbiAgICAgICAgOiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCByZXNvbHV0aW9uJCA9IHRoaXMubGF5ZXIubWFwLnZpZXdDb250cm9sbGVyLnJlc29sdXRpb24kO1xuICAgIHRoaXMucmVzb2x1dGlvbiQkID0gcmVzb2x1dGlvbiQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuaW5SZXNvbHV0aW9uUmFuZ2UkLm5leHQodGhpcy5sYXllci5pc0luUmVzb2x1dGlvbnNSYW5nZSk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlc29sdXRpb24kJC51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgYWRkRmlsdGVyVG9TZXF1ZW5jZSgpIHtcbiAgICB0aGlzLmZpbHRlcnNDb2xsYXBzZWQgPSBmYWxzZTtcbiAgICBjb25zdCBpbnRlcmZhY2VPZ2NGaWx0ZXJzOiBPZ2NJbnRlcmZhY2VGaWx0ZXJPcHRpb25zW10gPSB0aGlzLmRhdGFzb3VyY2VcbiAgICAgIC5vcHRpb25zLm9nY0ZpbHRlcnMuaW50ZXJmYWNlT2djRmlsdGVycztcbiAgICBjb25zdCBhcnIgPSBpbnRlcmZhY2VPZ2NGaWx0ZXJzIHx8IFtdO1xuICAgIGNvbnN0IGxhc3RMZXZlbCA9IGFyci5sZW5ndGggPT09IDAgPyAwIDogYXJyW2Fyci5sZW5ndGggLSAxXS5sZXZlbDtcbiAgICBsZXQgZmlyc3RGaWVsZE5hbWUgPSAnJztcbiAgICBjb25zdCBpbmNsdWRlZEZpZWxkcyA9IHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLnNvdXJjZUZpZWxkcy5maWx0ZXIoZiA9PiAhZi5leGNsdWRlRnJvbU9nY0ZpbHRlcnMpO1xuICAgIGlmIChpbmNsdWRlZEZpZWxkcy5sZW5ndGggPiAwKSB7XG4gICAgICBmaXJzdEZpZWxkTmFtZSA9XG4gICAgICAgIGluY2x1ZGVkRmllbGRzWzBdLm5hbWUgPT09IHVuZGVmaW5lZCA/ICcnIDogaW5jbHVkZWRGaWVsZHNbMF0ubmFtZTtcbiAgICB9XG4gICAgbGV0IGZpZWxkTmFtZUdlb21ldHJ5O1xuICAgIGNvbnN0IGRhdGFzb3VyY2VPcHRpb25zID0gdGhpcy5kYXRhc291cmNlXG4gICAgICAub3B0aW9ucyBhcyBXRlNEYXRhU291cmNlT3B0aW9uc1BhcmFtcztcbiAgICBpZiAoZGF0YXNvdXJjZU9wdGlvbnMuZmllbGROYW1lR2VvbWV0cnkpIHtcbiAgICAgIGZpZWxkTmFtZUdlb21ldHJ5ID0gZGF0YXNvdXJjZU9wdGlvbnMuZmllbGROYW1lR2VvbWV0cnk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgICh0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucyBhcyBhbnkpLnBhcmFtc1dGUyAmJlxuICAgICAgKHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zIGFzIGFueSkucGFyYW1zV0ZTLmZpZWxkTmFtZUdlb21ldHJ5XG4gICAgKSB7XG4gICAgICBmaWVsZE5hbWVHZW9tZXRyeSA9ICh0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucyBhcyBhbnkpLnBhcmFtc1dGU1xuICAgICAgICAuZmllbGROYW1lR2VvbWV0cnk7XG4gICAgfVxuICAgIGNvbnN0IGFsbG93ZWRPcGVyYXRvcnMgPSB0aGlzLm9nY0ZpbHRlcldyaXRlci5jb21wdXRlQWxsb3dlZE9wZXJhdG9ycyhcbiAgICAgIHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLnNvdXJjZUZpZWxkcyxcbiAgICAgIGZpcnN0RmllbGROYW1lLFxuICAgICAgdGhpcy5kYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycy5hbGxvd2VkT3BlcmF0b3JzVHlwZSk7XG4gICAgY29uc3QgZmlyc3RPcGVyYXRvck5hbWUgPSBPYmplY3Qua2V5cyhhbGxvd2VkT3BlcmF0b3JzKVswXTtcblxuICAgIGFyci5wdXNoKFxuICAgICAgdGhpcy5vZ2NGaWx0ZXJXcml0ZXIuYWRkSW50ZXJmYWNlRmlsdGVyKFxuICAgICAgICB7XG4gICAgICAgICAgcHJvcGVydHlOYW1lOiBmaXJzdEZpZWxkTmFtZSxcbiAgICAgICAgICBvcGVyYXRvcjogZmlyc3RPcGVyYXRvck5hbWUsXG4gICAgICAgICAgYWN0aXZlOiB0cnVlLFxuICAgICAgICAgIGlnb1NwYXRpYWxTZWxlY3RvcjogJ2ZpeGVkRXh0ZW50JyxcbiAgICAgICAgICBzcnNOYW1lOiB0aGlzLm1hcC5wcm9qZWN0aW9uLFxuICAgICAgICB9IGFzIE9nY0ludGVyZmFjZUZpbHRlck9wdGlvbnMsXG4gICAgICAgIGZpZWxkTmFtZUdlb21ldHJ5LFxuICAgICAgICBsYXN0TGV2ZWwsXG4gICAgICAgIHRoaXMuZGVmYXVsdExvZ2ljYWxQYXJlbnRcbiAgICAgIClcbiAgICApO1xuICAgIHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnMuaW50ZXJmYWNlT2djRmlsdGVycyA9IGFycjtcbiAgfVxuXG4gIHJlZnJlc2hGaWx0ZXJzKGZvcmNlPzogYm9vbGVhbikge1xuICAgIGlmIChmb3JjZSA9PT0gdHJ1ZSkge1xuICAgICAgdGhpcy5sYXN0UnVuT2djRmlsdGVyID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBjb25zdCBvZ2NGaWx0ZXJzOiBPZ2NGaWx0ZXJzT3B0aW9ucyA9IHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnM7XG4gICAgY29uc3QgYWN0aXZlRmlsdGVycyA9IG9nY0ZpbHRlcnMuaW50ZXJmYWNlT2djRmlsdGVycyA/XG4gICAgICBvZ2NGaWx0ZXJzLmludGVyZmFjZU9nY0ZpbHRlcnMuZmlsdGVyKGYgPT4gZi5hY3RpdmUgPT09IHRydWUpIDogW107XG4gICAgaWYgKGFjdGl2ZUZpbHRlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICBvZ2NGaWx0ZXJzLmZpbHRlcnMgPSB1bmRlZmluZWQ7XG4gICAgICBvZ2NGaWx0ZXJzLmZpbHRlcmVkID0gZmFsc2U7XG4gICAgfVxuICAgIGlmIChhY3RpdmVGaWx0ZXJzLmxlbmd0aCA+IDEpIHtcbiAgICAgIGFjdGl2ZUZpbHRlcnNbMF0ucGFyZW50TG9naWNhbCA9IGFjdGl2ZUZpbHRlcnNbMV0ucGFyZW50TG9naWNhbDtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgYWN0aXZlRmlsdGVycy5maWx0ZXIoXG4gICAgICAgIGFmID0+IFsnQ29udGFpbnMnLCAnSW50ZXJzZWN0cycsICdXaXRoaW4nXS5pbmRleE9mKGFmLm9wZXJhdG9yKSAhPT0gLTFcbiAgICAgICkubGVuZ3RoID09PSAwXG4gICAgKSB7XG4gICAgICB0aGlzLmhhc0FjdGl2ZVNwYXRpYWxGaWx0ZXIgPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oYXNBY3RpdmVTcGF0aWFsRmlsdGVyID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICAhKEpTT04uc3RyaW5naWZ5KHRoaXMubGFzdFJ1bk9nY0ZpbHRlcikgPT09IEpTT04uc3RyaW5naWZ5KGFjdGl2ZUZpbHRlcnMpKVxuICAgICkge1xuICAgICAgaWYgKHRoaXMubGF5ZXIuZGF0YVNvdXJjZS5vcHRpb25zLnR5cGUgPT09ICd3ZnMnKSB7XG4gICAgICAgIGNvbnN0IG9nY0RhdGFTb3VyY2U6IGFueSA9IHRoaXMubGF5ZXIuZGF0YVNvdXJjZTtcbiAgICAgICAgY29uc3Qgb2djTGF5ZXI6IE9nY0ZpbHRlcnNPcHRpb25zID0gb2djRGF0YVNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnM7XG4gICAgICAgIG9nY0xheWVyLmZpbHRlcnMgPSB0aGlzLm9nY0ZpbHRlcldyaXRlci5yZWJ1aWx0SWdvT2djRmlsdGVyT2JqZWN0RnJvbVNlcXVlbmNlKFxuICAgICAgICAgIGFjdGl2ZUZpbHRlcnNcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5sYXllci5kYXRhU291cmNlLm9sLnJlZnJlc2goKTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIHRoaXMubGF5ZXIuZGF0YVNvdXJjZS5vcHRpb25zLnR5cGUgPT09ICd3bXMnICYmXG4gICAgICAgIG9nY0ZpbHRlcnMuZW5hYmxlZFxuICAgICAgKSB7XG4gICAgICAgIGxldCByZWJ1aWxkRmlsdGVyID0gJyc7XG4gICAgICAgIGlmIChhY3RpdmVGaWx0ZXJzLmxlbmd0aCA+PSAxKSB7XG4gICAgICAgICAgY29uc3Qgb2djRGF0YVNvdXJjZTogYW55ID0gdGhpcy5sYXllci5kYXRhU291cmNlO1xuICAgICAgICAgIGNvbnN0IG9nY0xheWVyOiBPZ2NGaWx0ZXJzT3B0aW9ucyA9IG9nY0RhdGFTb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzO1xuICAgICAgICAgIG9nY0xheWVyLmZpbHRlcnMgPSB0aGlzLm9nY0ZpbHRlcldyaXRlci5yZWJ1aWx0SWdvT2djRmlsdGVyT2JqZWN0RnJvbVNlcXVlbmNlKFxuICAgICAgICAgICAgYWN0aXZlRmlsdGVyc1xuICAgICAgICAgICk7XG4gICAgICAgICAgcmVidWlsZEZpbHRlciA9IHRoaXMub2djRmlsdGVyV3JpdGVyLmJ1aWxkRmlsdGVyKFxuICAgICAgICAgICAgb2djTGF5ZXIuZmlsdGVycyxcbiAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgICh0aGlzLmxheWVyLmRhdGFTb3VyY2Uub3B0aW9ucyBhcyBhbnkpLmZpZWxkTmFtZUdlb21ldHJ5LFxuICAgICAgICAgICAgb2djRGF0YVNvdXJjZS5vcHRpb25zXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9nY0ZpbHRlclNlcnZpY2UuZmlsdGVyQnlPZ2MoXG4gICAgICAgICAgdGhpcy5kYXRhc291cmNlIGFzIFdNU0RhdGFTb3VyY2UsXG4gICAgICAgICAgcmVidWlsZEZpbHRlclxuICAgICAgICApO1xuICAgICAgICB0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLmZpbHRlcmVkID1cbiAgICAgICAgICBhY3RpdmVGaWx0ZXJzLmxlbmd0aCA9PT0gMCA/IGZhbHNlIDogdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5sYXN0UnVuT2djRmlsdGVyID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShhY3RpdmVGaWx0ZXJzKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGlkZW50aWNhbCBmaWx0ZXIuIE5vdGhpbmcgdHJpZ2dlcmVkXG4gICAgfVxuICAgICh0aGlzLmxheWVyLmRhdGFTb3VyY2UgYXMgT2djRmlsdGVyYWJsZURhdGFTb3VyY2UpLnNldE9nY0ZpbHRlcnMob2djRmlsdGVycywgdHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgc2V0VmlzaWJsZSgpIHtcbiAgICB0aGlzLmxheWVyLnZpc2libGUgPSB0cnVlO1xuICB9XG5cbiAgcHVibGljIGlzQWR2YW5jZWRPZ2NGaWx0ZXJzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLmFkdmFuY2VkT2djRmlsdGVycztcbiAgfVxuXG4gIHB1YmxpYyBhZGRGaWx0ZXJEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgIXRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLnNvdXJjZUZpZWxkcyB8fFxuICAgICAgdGhpcy5kYXRhc291cmNlLm9wdGlvbnMuc291cmNlRmllbGRzLmxlbmd0aCA9PT0gMFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNoYW5nZU9nY0ZpbHRlcnNBZHZhbmNlZE9nY0ZpbHRlcnModmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLmFkdmFuY2VkT2djRmlsdGVycyA9IHZhbHVlO1xuICB9XG5cbiAgY2hhbmdlT2djRmlsdGVyVHlwZShpc0FkdmFuY2VkT2djRmlsdGVycykge1xuICAgIHRoaXMuY2hhbmdlT2djRmlsdGVyc0FkdmFuY2VkT2djRmlsdGVycyhpc0FkdmFuY2VkT2djRmlsdGVycy5jaGVja2VkKTtcbiAgICBpZiAoaXNBZHZhbmNlZE9nY0ZpbHRlcnMuY2hlY2tlZCkge1xuICAgICAgdGhpcy5yZWZyZXNoRmlsdGVycyh0cnVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHRvZ2dsZUxlZ2VuZChjb2xsYXBzZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmxheWVyLmxlZ2VuZENvbGxhcHNlZCA9IGNvbGxhcHNlZDtcbiAgICB0aGlzLnNob3dMZWdlbmQkLm5leHQoIWNvbGxhcHNlZCk7XG4gIH1cblxuICB0b2dnbGVMZWdlbmRPbkNsaWNrKCkge1xuICAgIGlmICghdGhpcy5maWx0ZXJzQ29sbGFwc2VkKSB7XG4gICAgICB0aGlzLnRvZ2dsZUxlZ2VuZCh0aGlzLnNob3dMZWdlbmQkLnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGVGaWx0ZXJzQ29sbGFwc2VkKCkge1xuICAgIHRoaXMuZmlsdGVyc0NvbGxhcHNlZCA9ICF0aGlzLmZpbHRlcnNDb2xsYXBzZWQ7XG4gIH1cbn1cbiIsIjxkaXYgW25nQ2xhc3NdPVwieydzZXBhcmF0ZS1pdGVtJyA6IGhlYWRlciA9PT0gdHJ1ZX1cIiA+XG4gIDxtYXQtbGlzdC1pdGVtPlxuICAgIDxtYXQtaWNvblxuICAgICAgKm5nSWY9XCJoZWFkZXJcIlxuICAgICAgY2xhc3M9XCJpZ28tY2hldnJvblwiXG4gICAgICBtYXQtbGlzdC1hdmF0YXJcbiAgICAgIGlnb0NvbGxhcHNlIFt0YXJnZXRdPVwib2djRmlsdGVyc1wiXG4gICAgICBbY29sbGFwc2VkXT1cImZpbHRlcnNDb2xsYXBzZWRcIlxuICAgICAgKGNsaWNrKT1cInRvZ2dsZUZpbHRlcnNDb2xsYXBzZWQoKVwiXG4gICAgICBzdmdJY29uPVwiY2hldnJvbi11cFwiPlxuICAgIDwvbWF0LWljb24+XG4gICAgPGg0IChjbGljayk9XCJ0b2dnbGVMZWdlbmRPbkNsaWNrKClcIiAqbmdJZj1cImhlYWRlclwiIFtuZ1N0eWxlXT1cInsnY3Vyc29yJzogZmlsdGVyc0NvbGxhcHNlZCA/ICdkZWZhdWx0JyA6ICdwb2ludGVyJ31cIiBtYXRMaW5lIFttYXRUb29sdGlwXT1cImxheWVyLnRpdGxlXCIgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiPnt7bGF5ZXIudGl0bGV9fTwvaDQ+XG4gICAgICA8YnV0dG9uICpuZ0lmPVwiaXNBZHZhbmNlZE9nY0ZpbHRlcnMoKSAmJiBmaWx0ZXJzQXJlRWRpdGFibGVcIiBbZGlzYWJsZWRdPVwiYWRkRmlsdGVyRGlzYWJsZWQoKVwiIG1hdC1pY29uLWJ1dHRvbiB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIiBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAgICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uZmlsdGVyLmFkZEZpbHRlcicgfCB0cmFuc2xhdGVcIiBbY29sb3JdPVwiY29sb3JcIiAoY2xpY2spPVwiYWRkRmlsdGVyVG9TZXF1ZW5jZSgpXCI+XG4gICAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwicGx1c1wiPjwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gKm5nSWY9XCJoZWFkZXJcIlxuICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgW2NvbG9yXT1cImxheWVyLnZpc2libGUgPyAncHJpbWFyeScgOiAnZGVmYXVsdCdcIlxuICAgICAgICBjb2xsYXBzaWJsZUJ1dHRvblxuICAgICAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxuICAgICAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAgICAgW21hdFRvb2x0aXBdPVwibGF5ZXIudmlzaWJsZSA/XG4gICAgICAgICAgICAgICAgICAgICAgKCdpZ28uZ2VvLmxheWVyLmhpZGVMYXllcicgfCB0cmFuc2xhdGUpIDpcbiAgICAgICAgICAgICAgICAgICAgICAoJ2lnby5nZW8ubGF5ZXIuc2hvd0xheWVyJyB8IHRyYW5zbGF0ZSlcIlxuICAgICAgICAoY2xpY2spPVwibGF5ZXIudmlzaWJsZSA9ICFsYXllci52aXNpYmxlXCI+XG4gICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgIFtuZ0NsYXNzXT1cIntkaXNhYmxlZDogKGluUmVzb2x1dGlvblJhbmdlJCB8IGFzeW5jKT09PWZhbHNlfVwiXG4gICAgICAgICAgW3N2Z0ljb25dPVwibGF5ZXIudmlzaWJsZSA/ICdleWUnIDogJ2V5ZS1vZmYnXCI+XG4gICAgICAgIDwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgPC9tYXQtbGlzdC1pdGVtPlxuXG4gIDxkaXYgI29nY0ZpbHRlcnM+XG4gICAgICA8ZGl2ICpuZ0lmPVwiaGVhZGVyXCIgI2xlZ2VuZCBjbGFzcz1cImlnby1sYXllci1sZWdlbmQtY29udGFpbmVyXCI+XG4gICAgICAgIDxpZ28tbGF5ZXItbGVnZW5kICpuZ0lmPVwic2hvd0xlZ2VuZCQgfCBhc3luY1wiIFtsYXllcl09XCJsYXllclwiPlxuICAgICAgICA8L2lnby1sYXllci1sZWdlbmQ+XG4gICAgICA8L2Rpdj5cbiAgICA8aWdvLW9nYy1maWx0ZXJhYmxlLWZvcm0gW2RhdGFzb3VyY2VdPVwiZGF0YXNvdXJjZVwiIFttYXBdPVwibWFwXCIgW3JlZnJlc2hGaWx0ZXJzXT1cInJlZnJlc2hGdW5jXCI+XG4gICAgPC9pZ28tb2djLWZpbHRlcmFibGUtZm9ybT5cblxuICAgIDxzZWN0aW9uICpuZ0lmPVwiaGFzU2VsZWN0b3IgJiYgZmlsdGVyc0FyZUVkaXRhYmxlXCIgY2xhc3M9XCJtYXQtdHlwb2dyYXBoeSBhZHZhbmNlZE9nY0ZpbHRlcnNcIj5cbiAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgPG1hdC1jaGVja2JveCBsYWJlbFBvc2l0aW9uPSdiZWZvcmUnIChjaGFuZ2UpPVwiY2hhbmdlT2djRmlsdGVyVHlwZSgkZXZlbnQpXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJkYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycy5hZHZhbmNlZE9nY0ZpbHRlcnNcIj5cbiAgICAgICAge3snaWdvLmdlby5maWx0ZXIuYWR2YW5jZWRPZ2NGaWx0ZXJzJyB8IHRyYW5zbGF0ZX19XG4gICAgICA8L21hdC1jaGVja2JveD5cbiAgICA8L3NlY3Rpb24+XG4gIDwvZGl2PlxuPC9kaXY+Il19