@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,645 +1,645 @@
1
- import { Component, Input } from '@angular/core';
2
- import { BehaviorSubject, of } from 'rxjs';
3
- import { OgcFilterWriter } from '../../filter/shared/ogc-filter';
4
- import { OgcFilterOperator } from '../../filter/shared/ogc-filter.enum';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "../../wkt/shared/wkt.service";
7
- function OgcFilterFormComponent_mat_form_field_13_mat_option_10_Template(rf, ctx) { if (rf & 1) {
8
- i0.ɵɵelementStart(0, "mat-option", 23);
9
- i0.ɵɵtext(1);
10
- i0.ɵɵelementEnd();
11
- } if (rf & 2) {
12
- const field_r12 = ctx.$implicit;
13
- i0.ɵɵproperty("value", field_r12.alias)("id", field_r12.name)("matTooltip", field_r12.alias);
14
- i0.ɵɵadvance(1);
15
- i0.ɵɵtextInterpolate1(" ", field_r12.alias, " ");
16
- } }
17
- function OgcFilterFormComponent_mat_form_field_13_button_12_Template(rf, ctx) { if (rf & 1) {
18
- const _r14 = i0.ɵɵgetCurrentView();
19
- i0.ɵɵelementStart(0, "button", 24);
20
- i0.ɵɵlistener("click", function OgcFilterFormComponent_mat_form_field_13_button_12_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r14); const ctx_r13 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r13.clearSelectedField()); });
21
- i0.ɵɵelement(1, "mat-icon", 25);
22
- i0.ɵɵelementEnd();
23
- } if (rf & 2) {
24
- const ctx_r11 = i0.ɵɵnextContext(2);
25
- i0.ɵɵproperty("disabled", !ctx_r11.currentFilter.active);
26
- } }
27
- function OgcFilterFormComponent_mat_form_field_13_Template(rf, ctx) { if (rf & 1) {
28
- const _r16 = i0.ɵɵgetCurrentView();
29
- i0.ɵɵelementStart(0, "mat-form-field", 17);
30
- i0.ɵɵlistener("mouseenter", function OgcFilterFormComponent_mat_form_field_13_Template_mat_form_field_mouseenter_0_listener() { i0.ɵɵrestoreView(_r16); const ctx_r15 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r15.inputClearable = "selectField"); })("mouseleave", function OgcFilterFormComponent_mat_form_field_13_Template_mat_form_field_mouseleave_0_listener() { i0.ɵɵrestoreView(_r16); const ctx_r17 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r17.inputClearable = undefined); });
31
- i0.ɵɵelementStart(1, "input", 18);
32
- i0.ɵɵlistener("input", function OgcFilterFormComponent_mat_form_field_13_Template_input_input_1_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r18 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r18.updateFieldsList($event.target.value)); });
33
- i0.ɵɵpipe(2, "translate");
34
- i0.ɵɵpipe(3, "async");
35
- i0.ɵɵpipe(4, "async");
36
- i0.ɵɵpipe(5, "async");
37
- i0.ɵɵpipe(6, "async");
38
- i0.ɵɵpipe(7, "translate");
39
- i0.ɵɵelementEnd();
40
- i0.ɵɵelementStart(8, "mat-autocomplete", 19, 20);
41
- i0.ɵɵlistener("optionSelected", function OgcFilterFormComponent_mat_form_field_13_Template_mat_autocomplete_optionSelected_8_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r19 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r19.changeField($event.option.id)); });
42
- i0.ɵɵtemplate(10, OgcFilterFormComponent_mat_form_field_13_mat_option_10_Template, 2, 4, "mat-option", 21);
43
- i0.ɵɵpipe(11, "async");
44
- i0.ɵɵelementEnd();
45
- i0.ɵɵtemplate(12, OgcFilterFormComponent_mat_form_field_13_button_12_Template, 2, 1, "button", 22);
46
- i0.ɵɵelementEnd();
47
- } if (rf & 2) {
48
- const _r9 = i0.ɵɵreference(9);
49
- const ctx_r0 = i0.ɵɵnextContext();
50
- i0.ɵɵproperty("floatLabel", ctx_r0.floatLabel);
51
- i0.ɵɵadvance(1);
52
- i0.ɵɵproperty("placeholder", i0.ɵɵpipeBind1(2, 8, "igo.geo.sourceFields.selectField"))("disabled", !ctx_r0.currentFilter.active)("matAutocomplete", _r9)("value", i0.ɵɵpipeBind1(3, 10, ctx_r0.selectedField$) ? i0.ɵɵpipeBind1(4, 12, ctx_r0.selectedField$).alias : "")("matTooltip", i0.ɵɵpipeBind1(5, 14, ctx_r0.selectedField$) ? i0.ɵɵpipeBind1(6, 16, ctx_r0.selectedField$).alias : i0.ɵɵpipeBind1(7, 18, "igo.geo.sourceFields.selectField"));
53
- i0.ɵɵadvance(9);
54
- i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(11, 20, ctx_r0.filteredFields$));
55
- i0.ɵɵadvance(2);
56
- i0.ɵɵproperty("ngIf", ctx_r0.currentFilter.propertyName && ctx_r0.inputClearable === "selectField" && ctx_r0.currentFilter.active);
57
- } }
58
- function OgcFilterFormComponent_mat_option_24_Template(rf, ctx) { if (rf & 1) {
59
- i0.ɵɵelementStart(0, "mat-option", 3);
60
- i0.ɵɵpipe(1, "translate");
61
- i0.ɵɵtext(2);
62
- i0.ɵɵpipe(3, "translate");
63
- i0.ɵɵelementEnd();
64
- } if (rf & 2) {
65
- const operator_r20 = ctx.$implicit;
66
- i0.ɵɵproperty("value", operator_r20.key)("matTooltip", i0.ɵɵpipeBind1(1, 3, "igo.geo.operators.tooltip." + operator_r20.key));
67
- i0.ɵɵadvance(2);
68
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 5, "igo.geo.operators." + operator_r20.key), " ");
69
- } }
70
- function OgcFilterFormComponent_mat_form_field_27_mat_option_2_Template(rf, ctx) { if (rf & 1) {
71
- i0.ɵɵelementStart(0, "mat-option", 29);
72
- i0.ɵɵtext(1);
73
- i0.ɵɵpipe(2, "translate");
74
- i0.ɵɵelementEnd();
75
- } if (rf & 2) {
76
- const igoSpatialSelector_r22 = ctx.$implicit;
77
- i0.ɵɵproperty("value", igoSpatialSelector_r22.type);
78
- i0.ɵɵadvance(1);
79
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, "igo.geo.spatialSelector." + igoSpatialSelector_r22.type), " ");
80
- } }
81
- function OgcFilterFormComponent_mat_form_field_27_Template(rf, ctx) { if (rf & 1) {
82
- const _r24 = i0.ɵɵgetCurrentView();
83
- i0.ɵɵelementStart(0, "mat-form-field", 26)(1, "mat-select", 27);
84
- i0.ɵɵlistener("selectionChange", function OgcFilterFormComponent_mat_form_field_27_Template_mat_select_selectionChange_1_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r23 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r23.changeSpatialSelector($event.value)); });
85
- i0.ɵɵtemplate(2, OgcFilterFormComponent_mat_form_field_27_mat_option_2_Template, 3, 4, "mat-option", 28);
86
- i0.ɵɵelementEnd()();
87
- } if (rf & 2) {
88
- const ctx_r2 = i0.ɵɵnextContext();
89
- i0.ɵɵadvance(1);
90
- i0.ɵɵproperty("disabled", !ctx_r2.currentFilter.active)("value", ctx_r2.currentFilter.igoSpatialSelector);
91
- i0.ɵɵadvance(1);
92
- i0.ɵɵproperty("ngForOf", ctx_r2.igoSpatialSelectors);
93
- } }
94
- function OgcFilterFormComponent_mat_form_field_29_mat_option_5_Template(rf, ctx) { if (rf & 1) {
95
- i0.ɵɵelementStart(0, "mat-option", 33);
96
- i0.ɵɵtext(1);
97
- i0.ɵɵelementEnd();
98
- } if (rf & 2) {
99
- const value_r28 = ctx.$implicit;
100
- i0.ɵɵproperty("value", value_r28)("matTooltip", value_r28);
101
- i0.ɵɵadvance(1);
102
- i0.ɵɵtextInterpolate1(" ", value_r28, " ");
103
- } }
104
- function OgcFilterFormComponent_mat_form_field_29_button_7_Template(rf, ctx) { if (rf & 1) {
105
- const _r30 = i0.ɵɵgetCurrentView();
106
- i0.ɵɵelementStart(0, "button", 24);
107
- i0.ɵɵlistener("click", function OgcFilterFormComponent_mat_form_field_29_button_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r30); const ctx_r29 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r29.clearProperty()); });
108
- i0.ɵɵelement(1, "mat-icon", 25);
109
- i0.ɵɵelementEnd();
110
- } if (rf & 2) {
111
- const ctx_r27 = i0.ɵɵnextContext(2);
112
- i0.ɵɵproperty("disabled", !ctx_r27.currentFilter.active);
113
- } }
114
- function OgcFilterFormComponent_mat_form_field_29_Template(rf, ctx) { if (rf & 1) {
115
- const _r32 = i0.ɵɵgetCurrentView();
116
- i0.ɵɵelementStart(0, "mat-form-field", 30);
117
- i0.ɵɵlistener("mouseenter", function OgcFilterFormComponent_mat_form_field_29_Template_mat_form_field_mouseenter_0_listener() { i0.ɵɵrestoreView(_r32); const ctx_r31 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r31.inputClearable = "selectProperty"); })("mouseleave", function OgcFilterFormComponent_mat_form_field_29_Template_mat_form_field_mouseleave_0_listener() { i0.ɵɵrestoreView(_r32); const ctx_r33 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r33.inputClearable = undefined); });
118
- i0.ɵɵelementStart(1, "input", 18);
119
- i0.ɵɵlistener("input", function OgcFilterFormComponent_mat_form_field_29_Template_input_input_1_listener($event) { i0.ɵɵrestoreView(_r32); const ctx_r34 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r34.updateValuesList($event.target.value)); });
120
- i0.ɵɵpipe(2, "translate");
121
- i0.ɵɵelementEnd();
122
- i0.ɵɵelementStart(3, "mat-autocomplete", 19, 31);
123
- i0.ɵɵlistener("optionSelected", function OgcFilterFormComponent_mat_form_field_29_Template_mat_autocomplete_optionSelected_3_listener($event) { i0.ɵɵrestoreView(_r32); const ctx_r35 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r35.changeProperty($event.option.value)); });
124
- i0.ɵɵtemplate(5, OgcFilterFormComponent_mat_form_field_29_mat_option_5_Template, 2, 3, "mat-option", 32);
125
- i0.ɵɵpipe(6, "async");
126
- i0.ɵɵelementEnd();
127
- i0.ɵɵtemplate(7, OgcFilterFormComponent_mat_form_field_29_button_7_Template, 2, 1, "button", 22);
128
- i0.ɵɵelementEnd();
129
- } if (rf & 2) {
130
- const _r25 = i0.ɵɵreference(4);
131
- const ctx_r3 = i0.ɵɵnextContext();
132
- i0.ɵɵproperty("floatLabel", ctx_r3.floatLabel);
133
- i0.ɵɵadvance(1);
134
- i0.ɵɵproperty("placeholder", i0.ɵɵpipeBind1(2, 8, "igo.geo.filter.placeholder"))("disabled", !ctx_r3.currentFilter.active)("matAutocomplete", _r25)("value", ctx_r3.detectProperty() === "expression" ? ctx_r3.currentFilter.expression : ctx_r3.currentFilter.pattern)("matTooltip", ctx_r3.detectProperty() === "expression" ? ctx_r3.currentFilter.expression || "" : ctx_r3.currentFilter.pattern || "");
135
- i0.ɵɵadvance(4);
136
- i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(6, 10, ctx_r3.filteredValues$));
137
- i0.ɵɵadvance(2);
138
- i0.ɵɵproperty("ngIf", ctx_r3.isClearable() && ctx_r3.inputClearable === "selectProperty" && ctx_r3.currentFilter.active);
139
- } }
140
- function OgcFilterFormComponent_mat_form_field_34_button_3_Template(rf, ctx) { if (rf & 1) {
141
- const _r38 = i0.ɵɵgetCurrentView();
142
- i0.ɵɵelementStart(0, "button", 24);
143
- i0.ɵɵlistener("click", function OgcFilterFormComponent_mat_form_field_34_button_3_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r38); const ctx_r37 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r37.currentFilter.igoSNRC = ""); });
144
- i0.ɵɵelement(1, "mat-icon", 25);
145
- i0.ɵɵelementEnd();
146
- } if (rf & 2) {
147
- const ctx_r36 = i0.ɵɵnextContext(2);
148
- i0.ɵɵproperty("disabled", !ctx_r36.currentFilter.active && ctx_r36.inputClearable === "selectSNRC" && ctx_r36.currentFilter.active);
149
- } }
150
- function OgcFilterFormComponent_mat_form_field_34_Template(rf, ctx) { if (rf & 1) {
151
- const _r40 = i0.ɵɵgetCurrentView();
152
- i0.ɵɵelementStart(0, "mat-form-field", 34);
153
- i0.ɵɵlistener("mouseenter", function OgcFilterFormComponent_mat_form_field_34_Template_mat_form_field_mouseenter_0_listener() { i0.ɵɵrestoreView(_r40); const ctx_r39 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r39.inputClearable = "selectSNRC"); })("mouseleave", function OgcFilterFormComponent_mat_form_field_34_Template_mat_form_field_mouseleave_0_listener() { i0.ɵɵrestoreView(_r40); const ctx_r41 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r41.inputClearable = undefined); });
154
- i0.ɵɵelementStart(1, "input", 35);
155
- i0.ɵɵlistener("input", function OgcFilterFormComponent_mat_form_field_34_Template_input_input_1_listener($event) { i0.ɵɵrestoreView(_r40); const ctx_r42 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r42.changeSNRC($event.target.value)); });
156
- i0.ɵɵpipe(2, "translate");
157
- i0.ɵɵelementEnd();
158
- i0.ɵɵtemplate(3, OgcFilterFormComponent_mat_form_field_34_button_3_Template, 2, 1, "button", 22);
159
- i0.ɵɵelementEnd();
160
- } if (rf & 2) {
161
- const ctx_r4 = i0.ɵɵnextContext();
162
- i0.ɵɵproperty("floatLabel", ctx_r4.floatLabel);
163
- i0.ɵɵadvance(1);
164
- i0.ɵɵproperty("placeholder", i0.ɵɵpipeBind1(2, 5, "igo.geo.filter.placeholderSnrc"))("value", ctx_r4.currentFilter.igoSNRC)("matTooltip", ctx_r4.currentFilter.igoSNRC ? ctx_r4.currentFilter.igoSNRC : "");
165
- i0.ɵɵadvance(2);
166
- i0.ɵɵproperty("ngIf", ctx_r4.currentFilter.igoSNRC);
167
- } }
168
- function OgcFilterFormComponent_ng_container_36_button_1_Template(rf, ctx) { if (rf & 1) {
169
- const _r45 = i0.ɵɵgetCurrentView();
170
- i0.ɵɵelementStart(0, "button", 37);
171
- i0.ɵɵlistener("click", function OgcFilterFormComponent_ng_container_36_button_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r45); const ctx_r44 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r44.changeMapExtentGeometry()); });
172
- i0.ɵɵpipe(1, "translate");
173
- i0.ɵɵelement(2, "mat-icon", 38);
174
- i0.ɵɵelementEnd();
175
- } if (rf & 2) {
176
- const ctx_r43 = i0.ɵɵnextContext(2);
177
- i0.ɵɵproperty("disabled", !ctx_r43.currentFilter.active)("disabled", !ctx_r43.currentFilter.active)("matTooltip", i0.ɵɵpipeBind1(1, 3, "igo.geo.spatialSelector.btnSetExtent"));
178
- } }
179
- function OgcFilterFormComponent_ng_container_36_Template(rf, ctx) { if (rf & 1) {
180
- i0.ɵɵelementContainerStart(0);
181
- i0.ɵɵtemplate(1, OgcFilterFormComponent_ng_container_36_button_1_Template, 3, 5, "button", 36);
182
- i0.ɵɵelementContainerEnd();
183
- } if (rf & 2) {
184
- const ctx_r5 = i0.ɵɵnextContext();
185
- i0.ɵɵadvance(1);
186
- i0.ɵɵproperty("ngIf", ctx_r5.currentFilter.igoSpatialSelector === "fixedExtent");
187
- } }
188
- function OgcFilterFormComponent_mat_form_field_39_mat_option_5_Template(rf, ctx) { if (rf & 1) {
189
- i0.ɵɵelementStart(0, "mat-option", 33);
190
- i0.ɵɵtext(1);
191
- i0.ɵɵelementEnd();
192
- } if (rf & 2) {
193
- const value_r49 = ctx.$implicit;
194
- i0.ɵɵproperty("value", value_r49)("matTooltip", value_r49);
195
- i0.ɵɵadvance(1);
196
- i0.ɵɵtextInterpolate1(" ", value_r49, " ");
197
- } }
198
- function OgcFilterFormComponent_mat_form_field_39_button_7_Template(rf, ctx) { if (rf & 1) {
199
- const _r51 = i0.ɵɵgetCurrentView();
200
- i0.ɵɵelementStart(0, "button", 24);
201
- i0.ɵɵlistener("click", function OgcFilterFormComponent_mat_form_field_39_button_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r51); const ctx_r50 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r50.clearProperty(1)); });
202
- i0.ɵɵelement(1, "mat-icon", 25);
203
- i0.ɵɵelementEnd();
204
- } if (rf & 2) {
205
- const ctx_r48 = i0.ɵɵnextContext(2);
206
- i0.ɵɵproperty("disabled", !ctx_r48.currentFilter.active);
207
- } }
208
- function OgcFilterFormComponent_mat_form_field_39_Template(rf, ctx) { if (rf & 1) {
209
- const _r53 = i0.ɵɵgetCurrentView();
210
- i0.ɵɵelementStart(0, "mat-form-field", 39);
211
- i0.ɵɵlistener("mouseenter", function OgcFilterFormComponent_mat_form_field_39_Template_mat_form_field_mouseenter_0_listener() { i0.ɵɵrestoreView(_r53); const ctx_r52 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r52.inputClearable = "selectProperty1"); })("mouseleave", function OgcFilterFormComponent_mat_form_field_39_Template_mat_form_field_mouseleave_0_listener() { i0.ɵɵrestoreView(_r53); const ctx_r54 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r54.inputClearable = undefined); });
212
- i0.ɵɵelementStart(1, "input", 40);
213
- i0.ɵɵlistener("input", function OgcFilterFormComponent_mat_form_field_39_Template_input_input_1_listener($event) { i0.ɵɵrestoreView(_r53); const ctx_r55 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r55.updateValuesList($event.target.value, 1)); });
214
- i0.ɵɵpipe(2, "translate");
215
- i0.ɵɵelementEnd();
216
- i0.ɵɵelementStart(3, "mat-autocomplete", 19, 41);
217
- i0.ɵɵlistener("optionSelected", function OgcFilterFormComponent_mat_form_field_39_Template_mat_autocomplete_optionSelected_3_listener($event) { i0.ɵɵrestoreView(_r53); const ctx_r56 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r56.changeNumericProperty($event.option.value, 1)); });
218
- i0.ɵɵtemplate(5, OgcFilterFormComponent_mat_form_field_39_mat_option_5_Template, 2, 3, "mat-option", 32);
219
- i0.ɵɵpipe(6, "async");
220
- i0.ɵɵelementEnd();
221
- i0.ɵɵtemplate(7, OgcFilterFormComponent_mat_form_field_39_button_7_Template, 2, 1, "button", 22);
222
- i0.ɵɵelementEnd();
223
- } if (rf & 2) {
224
- const _r46 = i0.ɵɵreference(4);
225
- const ctx_r6 = i0.ɵɵnextContext();
226
- i0.ɵɵproperty("floatLabel", ctx_r6.floatLabel);
227
- i0.ɵɵadvance(1);
228
- i0.ɵɵproperty("placeholder", i0.ɵɵpipeBind1(2, 7, "igo.geo.filter.placeholder"))("disabled", !ctx_r6.currentFilter.active)("matAutocomplete", _r46)("value", ctx_r6.detectProperty(1) === "lowerBoundary" ? ctx_r6.currentFilter.lowerBoundary : ctx_r6.currentFilter.begin);
229
- i0.ɵɵadvance(4);
230
- i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(6, 9, ctx_r6.filteredValues$));
231
- i0.ɵɵadvance(2);
232
- i0.ɵɵproperty("ngIf", ctx_r6.isClearable(1) && ctx_r6.inputClearable === "selectProperty1" && ctx_r6.currentFilter.active);
233
- } }
234
- function OgcFilterFormComponent_mat_form_field_40_mat_option_5_Template(rf, ctx) { if (rf & 1) {
235
- i0.ɵɵelementStart(0, "mat-option", 33);
236
- i0.ɵɵtext(1);
237
- i0.ɵɵelementEnd();
238
- } if (rf & 2) {
239
- const value_r60 = ctx.$implicit;
240
- i0.ɵɵproperty("value", value_r60)("matTooltip", value_r60);
241
- i0.ɵɵadvance(1);
242
- i0.ɵɵtextInterpolate1(" ", value_r60, " ");
243
- } }
244
- function OgcFilterFormComponent_mat_form_field_40_button_7_Template(rf, ctx) { if (rf & 1) {
245
- const _r62 = i0.ɵɵgetCurrentView();
246
- i0.ɵɵelementStart(0, "button", 24);
247
- i0.ɵɵlistener("click", function OgcFilterFormComponent_mat_form_field_40_button_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r62); const ctx_r61 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r61.clearProperty(2)); });
248
- i0.ɵɵelement(1, "mat-icon", 25);
249
- i0.ɵɵelementEnd();
250
- } if (rf & 2) {
251
- const ctx_r59 = i0.ɵɵnextContext(2);
252
- i0.ɵɵproperty("disabled", !ctx_r59.currentFilter.active);
253
- } }
254
- function OgcFilterFormComponent_mat_form_field_40_Template(rf, ctx) { if (rf & 1) {
255
- const _r64 = i0.ɵɵgetCurrentView();
256
- i0.ɵɵelementStart(0, "mat-form-field", 39);
257
- i0.ɵɵlistener("mouseenter", function OgcFilterFormComponent_mat_form_field_40_Template_mat_form_field_mouseenter_0_listener() { i0.ɵɵrestoreView(_r64); const ctx_r63 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r63.inputClearable = "selectProperty2"); })("mouseleave", function OgcFilterFormComponent_mat_form_field_40_Template_mat_form_field_mouseleave_0_listener() { i0.ɵɵrestoreView(_r64); const ctx_r65 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r65.inputClearable = undefined); });
258
- i0.ɵɵelementStart(1, "input", 40);
259
- i0.ɵɵlistener("input", function OgcFilterFormComponent_mat_form_field_40_Template_input_input_1_listener($event) { i0.ɵɵrestoreView(_r64); const ctx_r66 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r66.updateValuesList($event.target.value, 2)); });
260
- i0.ɵɵpipe(2, "translate");
261
- i0.ɵɵelementEnd();
262
- i0.ɵɵelementStart(3, "mat-autocomplete", 19, 42);
263
- i0.ɵɵlistener("optionSelected", function OgcFilterFormComponent_mat_form_field_40_Template_mat_autocomplete_optionSelected_3_listener($event) { i0.ɵɵrestoreView(_r64); const ctx_r67 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r67.changeNumericProperty($event.option.value, 2)); });
264
- i0.ɵɵtemplate(5, OgcFilterFormComponent_mat_form_field_40_mat_option_5_Template, 2, 3, "mat-option", 32);
265
- i0.ɵɵpipe(6, "async");
266
- i0.ɵɵelementEnd();
267
- i0.ɵɵtemplate(7, OgcFilterFormComponent_mat_form_field_40_button_7_Template, 2, 1, "button", 22);
268
- i0.ɵɵelementEnd();
269
- } if (rf & 2) {
270
- const _r57 = i0.ɵɵreference(4);
271
- const ctx_r7 = i0.ɵɵnextContext();
272
- i0.ɵɵproperty("floatLabel", ctx_r7.floatLabel);
273
- i0.ɵɵadvance(1);
274
- i0.ɵɵproperty("placeholder", i0.ɵɵpipeBind1(2, 7, "igo.geo.filter.placeholder"))("disabled", !ctx_r7.currentFilter.active)("matAutocomplete", _r57)("value", ctx_r7.detectProperty(2) === "upperBoundary" ? ctx_r7.currentFilter.upperBoundary : ctx_r7.currentFilter.end);
275
- i0.ɵɵadvance(4);
276
- i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(6, 9, ctx_r7.filteredValues$));
277
- i0.ɵɵadvance(2);
278
- i0.ɵɵproperty("ngIf", ctx_r7.isClearable(2) && ctx_r7.inputClearable === "selectProperty2" && ctx_r7.currentFilter.active);
279
- } }
280
- function OgcFilterFormComponent_igo_ogc_filter_time_41_Template(rf, ctx) { if (rf & 1) {
281
- const _r69 = i0.ɵɵgetCurrentView();
282
- i0.ɵɵelementStart(0, "igo-ogc-filter-time", 43);
283
- i0.ɵɵlistener("datasourceChange", function OgcFilterFormComponent_igo_ogc_filter_time_41_Template_igo_ogc_filter_time_datasourceChange_0_listener($event) { i0.ɵɵrestoreView(_r69); const ctx_r68 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r68.datasource = $event); })("currentFilterChange", function OgcFilterFormComponent_igo_ogc_filter_time_41_Template_igo_ogc_filter_time_currentFilterChange_0_listener($event) { i0.ɵɵrestoreView(_r69); const ctx_r70 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r70.currentFilter = $event); })("changeProperty", function OgcFilterFormComponent_igo_ogc_filter_time_41_Template_igo_ogc_filter_time_changeProperty_0_listener($event) { i0.ɵɵrestoreView(_r69); const ctx_r71 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r71.changeProperty($event.value, $event.pos)); });
284
- i0.ɵɵelementEnd();
285
- } if (rf & 2) {
286
- const ctx_r8 = i0.ɵɵnextContext();
287
- i0.ɵɵproperty("datasource", ctx_r8.datasource)("currentFilter", ctx_r8.currentFilter);
288
- } }
289
- const _c0 = function (a0, a1) { return { "logical": a0, "logicalHidden": a1 }; };
290
- const _c1 = function (a0, a1) { return { "operator": a0, "dualInput": a1 }; };
291
- const _c2 = function () { return ["expression", "pattern"]; };
292
- const _c3 = function () { return ["lowerBoundary", "begin"]; };
293
- const _c4 = function () { return ["upperBoundary", "end"]; };
294
- export class OgcFilterFormComponent {
295
- constructor(wktService) {
296
- this.wktService = wktService;
297
- this.ogcFilterOperator = OgcFilterOperator;
298
- this.ogcFilterOperators$ = new BehaviorSubject(undefined);
299
- this.value = '';
300
- this.selectedField$ = new BehaviorSubject(undefined);
301
- this.fields$ = new BehaviorSubject([]);
302
- this.color = 'primary';
303
- this.currentFilterIsSpatial$ = new BehaviorSubject(false);
304
- this.defaultStepMillisecond = 6000;
305
- this._snrc = '';
306
- this.floatLabel = 'never';
307
- // TODO: Filter permitted operator based on wfscapabilities
308
- // Need to work on regex on XML capabilities because
309
- // comaparison operator's name varies between WFS servers...
310
- // Ex: IsNull vs PropertyIsNull vs IsNil ...
311
- this.allOgcFilterOperators = new OgcFilterWriter().operators;
312
- this.ogcFilterOperators$.next(this.allOgcFilterOperators);
313
- this.igoSpatialSelectors = [
314
- {
315
- type: 'fixedExtent'
316
- },
317
- {
318
- type: 'snrc'
319
- }
320
- ];
321
- // TODO: selectFeature & drawFeature
322
- }
323
- set snrc(value) {
324
- const checkSNRC50k = /^\d{2}[a-l][0,1][0-9]$/gi;
325
- const checkSNRC250k = /^\d{2}[a-p]$/gi;
326
- const checkSNRC1m = /^\d{2}$/gi;
327
- if (checkSNRC1m.test(value) ||
328
- checkSNRC250k.test(value) ||
329
- checkSNRC50k.test(value)) {
330
- this._snrc = value;
331
- this.currentFilter.igoSNRC = value;
332
- }
333
- }
334
- get snrc() {
335
- return this._snrc;
336
- }
337
- get activeFilters() {
338
- return this.datasource.options.ogcFilters.interfaceOgcFilters.filter((f) => f.active === true);
339
- }
340
- get allowedOperators() {
341
- return new OgcFilterWriter().computeAllowedOperators(this.fields$.value, this.currentFilter.propertyName, this.datasource.options.ogcFilters.allowedOperatorsType);
342
- }
343
- ngOnInit() {
344
- if (this.datasource.options.sourceFields) {
345
- const sFields = this.datasource.options.sourceFields.filter((sf) => sf.excludeFromOgcFilters === undefined || !sf.excludeFromOgcFilters);
346
- sFields.map((sfs) => {
347
- if (sfs.values) {
348
- sfs.values.sort();
349
- }
350
- });
351
- this.fields$.next(sFields);
352
- }
353
- this.updateFieldsList();
354
- this.selectedField$.next(this.fields$.value.find((f) => f.name === this.currentFilter.propertyName));
355
- this.updateValuesList();
356
- this.selectedField$.subscribe((f) => {
357
- this.ogcFilterOperators$.next(this.allowedOperators);
358
- if (Object.keys(this.allowedOperators).indexOf(this.currentFilter.operator) === -1) {
359
- this.currentFilter.operator = Object.keys(this.allowedOperators)[0];
360
- this.currentFilter.operator = Object.keys(this.allowedOperators)[0];
361
- }
362
- this.updateValuesList();
363
- });
364
- this.currentFilterIsSpatial();
365
- }
366
- updateFieldsList(value) {
367
- this.filteredFields$ =
368
- value && value.length > 0 ? of(this._filterFields(value)) : this.fields$;
369
- if (this.fields$.value.find((f) => f.name === value)) {
370
- this.changeField(value);
371
- }
372
- }
373
- updateValuesList(value, pos) {
374
- this.filteredValues$ =
375
- value && value.length > 0
376
- ? of(this._filterValues(value))
377
- : this.selectedField$.value
378
- ? of(this.selectedField$.value.values)
379
- : of([]);
380
- if (value && value.length >= 1) {
381
- this.changeProperty(value, pos);
382
- }
383
- }
384
- _filterFields(value) {
385
- const keywordRegex = new RegExp(value.normalize('NFD').replace(/[\u0300-\u036f]/g, ''), 'gi');
386
- return this.fields$.value.filter((val) => keywordRegex.test(val.alias.normalize('NFD').replace(/[\u0300-\u036f]/g, '')));
387
- }
388
- _filterValues(value) {
389
- const keywordRegex = new RegExp(value
390
- .toString()
391
- .normalize('NFD')
392
- .replace(/[\u0300-\u036f]/g, ''), 'gi');
393
- return this.selectedField$.value.values.filter((val) => val && keywordRegex.test(val
394
- .toString()
395
- .normalize('NFD')
396
- .replace(/[\u0300-\u036f]/g, '')));
397
- }
398
- clearSelectedField() {
399
- this.currentFilter.propertyName = '';
400
- this.selectedField$.next(undefined);
401
- this.clearProperty();
402
- }
403
- isClearable(pos) {
404
- const detectedProperty = this.detectProperty(pos);
405
- if (detectedProperty) {
406
- return this.currentFilter[detectedProperty];
407
- }
408
- }
409
- clearProperty(pos) {
410
- // this.autoCompleteInputValues.closePanel();
411
- const detectedProperty = this.detectProperty(pos);
412
- if (detectedProperty) {
413
- return (this.currentFilter[detectedProperty] = '');
414
- }
415
- }
416
- toggleFilterState(event) {
417
- this.datasource.options.ogcFilters.interfaceOgcFilters.find((f) => f.filterid === this.currentFilter.filterid).active = event.checked;
418
- this.refreshFilters();
419
- }
420
- deleteFilter() {
421
- const ogcFilters = this.datasource.options.ogcFilters;
422
- ogcFilters.interfaceOgcFilters = ogcFilters.interfaceOgcFilters.filter((f) => f.filterid !== this.currentFilter.filterid);
423
- this.refreshFilters();
424
- }
425
- changeLogical(logical) {
426
- this.currentFilter.parentLogical = logical;
427
- this.refreshFilters();
428
- }
429
- changeOperator(operator) {
430
- this.currentFilter.operator = operator;
431
- this.currentFilterIsSpatial();
432
- if (this.currentFilterIsSpatial$.value &&
433
- this.currentFilter.wkt_geometry.length === 0) {
434
- this.changeSpatialSelector(this.currentFilter.igoSpatialSelector);
435
- }
436
- else {
437
- this.refreshFilters();
438
- }
439
- }
440
- changeField(field) {
441
- this.currentFilter.propertyName = field;
442
- this.selectedField$.next(this.fields$.value.find((f) => f.name === this.currentFilter.propertyName));
443
- this.refreshFilters();
444
- }
445
- // Issue with mapserver 7.2 and Postgis layers. Fixed in 7.4
446
- // Due to this issue, the checkbox is hide.
447
- changeCaseSensitive(matchCase) {
448
- this.currentFilter.matchCase = matchCase.checked;
449
- this.refreshFilters();
450
- }
451
- changeProperty(value, pos, refreshFilter = true) {
452
- const detectedProperty = this.detectProperty(pos);
453
- if (detectedProperty) {
454
- this.datasource.options.ogcFilters.interfaceOgcFilters.find((f) => f.filterid === this.currentFilter.filterid)[detectedProperty] = value;
455
- if (refreshFilter) {
456
- this.refreshFilters();
457
- }
458
- }
459
- }
460
- changeNumericProperty(value, pos) {
461
- this.changeProperty(parseFloat(value), pos);
462
- }
463
- changeSpatialSelector(value) {
464
- this.currentFilter.igoSpatialSelector = value;
465
- if (value === 'fixedExtent') {
466
- this.changeMapExtentGeometry(false);
467
- }
468
- this.currentFilterIsSpatial();
469
- this.refreshFilters();
470
- }
471
- changeSNRC(value) {
472
- this.snrc = value;
473
- this.changeSNRCGeometry();
474
- }
475
- changeSNRCGeometry() {
476
- const interfaceOgcFilter = this.datasource.options.ogcFilters.interfaceOgcFilters.find((f) => f.filterid === this.currentFilter.filterid);
477
- if (!interfaceOgcFilter) {
478
- return;
479
- }
480
- if (this.snrc && this.currentFilter.igoSpatialSelector === 'snrc') {
481
- this.currentFilter.wkt_geometry = this.wktService.snrcToWkt(this.snrc, this.map.projection).wktPoly;
482
- }
483
- this.refreshFilters();
484
- }
485
- changeMapExtentGeometry(refresh = true) {
486
- const interfaceOgcFilter = this.datasource.options.ogcFilters.interfaceOgcFilters.find((f) => f.filterid === this.currentFilter.filterid);
487
- if (!interfaceOgcFilter) {
488
- return;
489
- }
490
- if (this.currentFilter.igoSpatialSelector === 'fixedExtent') {
491
- this.currentFilter.wkt_geometry = this.wktService.extentToWkt(this.map.projection, this.map.viewController.getExtent(), this.map.projection).wktPoly;
492
- }
493
- if (refresh) {
494
- this.refreshFilters();
495
- }
496
- }
497
- detectProperty(pos) {
498
- switch (this.currentFilter.operator) {
499
- case OgcFilterOperator.PropertyIsNotEqualTo:
500
- case OgcFilterOperator.PropertyIsEqualTo:
501
- case OgcFilterOperator.PropertyIsGreaterThan:
502
- case OgcFilterOperator.PropertyIsGreaterThanOrEqualTo:
503
- case OgcFilterOperator.PropertyIsLessThan:
504
- case OgcFilterOperator.PropertyIsLessThanOrEqualTo:
505
- return 'expression';
506
- case OgcFilterOperator.PropertyIsLike:
507
- return 'pattern';
508
- case OgcFilterOperator.PropertyIsBetween:
509
- return pos && pos === 1
510
- ? 'lowerBoundary'
511
- : pos && pos === 2
512
- ? 'upperBoundary'
513
- : undefined;
514
- case OgcFilterOperator.During:
515
- return pos && pos === 1
516
- ? 'begin'
517
- : pos && pos === 2
518
- ? 'end'
519
- : undefined;
520
- default:
521
- return;
522
- }
523
- }
524
- currentFilterIsSpatial() {
525
- let isSpatial = false;
526
- if (this.currentFilter) {
527
- isSpatial =
528
- [
529
- OgcFilterOperator.Contains,
530
- OgcFilterOperator.Intersects,
531
- OgcFilterOperator.Within
532
- ].indexOf(this.currentFilter.operator) !== -1;
533
- }
534
- this.currentFilterIsSpatial$.next(isSpatial);
535
- }
536
- isTemporalOperator() {
537
- return (this.currentFilter.operator.toLowerCase() ===
538
- this.ogcFilterOperator.During.toLowerCase());
539
- }
540
- }
541
- OgcFilterFormComponent.ɵfac = function OgcFilterFormComponent_Factory(t) { return new (t || OgcFilterFormComponent)(i0.ɵɵdirectiveInject(i1.WktService)); };
542
- OgcFilterFormComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: OgcFilterFormComponent, selectors: [["igo-ogc-filter-form"]], inputs: { refreshFilters: "refreshFilters", datasource: "datasource", map: "map", currentFilter: "currentFilter", floatLabel: "floatLabel" }, decls: 42, vars: 76, consts: [["tooltip-position", "below", "matTooltipShowDelay", "500", 3, "matTooltip", "checked", "click", "change"], [3, "ngClass"], ["tooltip-position", "above", "matTooltipShowDelay", "500", 3, "disabled", "value", "matTooltip", "selectionChange"], ["tooltip-position", "above", "matTooltipShowDelay", "500", 3, "value", "matTooltip"], ["class", "field", 3, "floatLabel", "mouseenter", "mouseleave", 4, "ngIf"], [3, "ngClass", "floatLabel"], ["tooltip-position", "below", "matTooltipShowDelay", "500", 3, "matTooltip", "disabled", "value", "selectionChange"], ["tooltip-position", "above", "matTooltipShowDelay", "500", 3, "value", "matTooltip", 4, "ngFor", "ngForOf"], ["class", "spatialSelector", 4, "ngIf"], ["class", "singleInput", 3, "floatLabel", "mouseenter", "mouseleave", 4, "ngIf"], [1, "igo-layer-button-group"], ["mat-icon-button", "", "collapsibleButton", "", "tooltip-position", "below", "matTooltipShowDelay", "500", "color", "warn", 3, "matTooltip", "click"], ["svgIcon", "delete"], ["class", "snrc", 3, "floatLabel", "mouseenter", "mouseleave", 4, "ngIf"], [4, "ngIf"], ["class", "dualInput", 3, "floatLabel", "mouseenter", "mouseleave", 4, "ngIf"], [3, "datasource", "currentFilter", "datasourceChange", "currentFilterChange", "changeProperty", 4, "ngIf"], [1, "field", 3, "floatLabel", "mouseenter", "mouseleave"], ["matInput", "", "tooltip-position", "above", "matTooltipShowDelay", "500", 3, "placeholder", "disabled", "matAutocomplete", "value", "matTooltip", "input"], [3, "optionSelected"], ["autoCompleteField", "matAutocomplete"], ["matTooltipShowDelay", "500", 3, "value", "id", "matTooltip", 4, "ngFor", "ngForOf"], ["mat-button", "", "matSuffix", "", "mat-icon-button", "", "aria-label", "Clear", 3, "disabled", "click", 4, "ngIf"], ["matTooltipShowDelay", "500", 3, "value", "id", "matTooltip"], ["mat-button", "", "matSuffix", "", "mat-icon-button", "", "aria-label", "Clear", 3, "disabled", "click"], ["svgIcon", "close"], [1, "spatialSelector"], [3, "disabled", "value", "selectionChange"], [3, "value", 4, "ngFor", "ngForOf"], [3, "value"], [1, "singleInput", 3, "floatLabel", "mouseenter", "mouseleave"], ["autoCompleteValues", "matAutocomplete"], ["matTooltipShowDelay", "500", 3, "value", "matTooltip", 4, "ngFor", "ngForOf"], ["matTooltipShowDelay", "500", 3, "value", "matTooltip"], [1, "snrc", 3, "floatLabel", "mouseenter", "mouseleave"], ["matInput", "", "tooltip-position", "above", "matTooltipShowDelay", "500", 3, "placeholder", "value", "matTooltip", "input"], ["mat-button", "", "matSuffix", "", "mat-icon-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "disabled", "matTooltip", "click", 4, "ngIf"], ["mat-button", "", "matSuffix", "", "mat-icon-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "disabled", "matTooltip", "click"], ["svgIcon", "arrow-expand-all"], [1, "dualInput", 3, "floatLabel", "mouseenter", "mouseleave"], ["matInput", "", "type", "number", 3, "placeholder", "disabled", "matAutocomplete", "value", "input"], ["autoDualValueOperator1", "matAutocomplete"], ["autoDualValueOperator2", "matAutocomplete"], [3, "datasource", "currentFilter", "datasourceChange", "currentFilterChange", "changeProperty"]], template: function OgcFilterFormComponent_Template(rf, ctx) { if (rf & 1) {
543
- i0.ɵɵelementStart(0, "mat-checkbox", 0);
544
- i0.ɵɵlistener("click", function OgcFilterFormComponent_Template_mat_checkbox_click_0_listener($event) { return $event.stopPropagation(); })("change", function OgcFilterFormComponent_Template_mat_checkbox_change_0_listener($event) { return ctx.toggleFilterState($event); });
545
- i0.ɵɵpipe(1, "translate");
546
- i0.ɵɵelementEnd();
547
- i0.ɵɵelementStart(2, "mat-form-field", 1)(3, "mat-select", 2);
548
- i0.ɵɵlistener("selectionChange", function OgcFilterFormComponent_Template_mat_select_selectionChange_3_listener($event) { return ctx.changeLogical($event.value); });
549
- i0.ɵɵpipe(4, "translate");
550
- i0.ɵɵelementStart(5, "mat-option", 3);
551
- i0.ɵɵpipe(6, "translate");
552
- i0.ɵɵtext(7);
553
- i0.ɵɵpipe(8, "translate");
554
- i0.ɵɵelementEnd();
555
- i0.ɵɵelementStart(9, "mat-option", 3);
556
- i0.ɵɵpipe(10, "translate");
557
- i0.ɵɵtext(11);
558
- i0.ɵɵpipe(12, "translate");
559
- i0.ɵɵelementEnd()()();
560
- i0.ɵɵtemplate(13, OgcFilterFormComponent_mat_form_field_13_Template, 13, 22, "mat-form-field", 4);
561
- i0.ɵɵpipe(14, "async");
562
- i0.ɵɵpipe(15, "async");
563
- i0.ɵɵpipe(16, "async");
564
- i0.ɵɵpipe(17, "async");
565
- i0.ɵɵelementStart(18, "mat-form-field", 5);
566
- i0.ɵɵpipe(19, "async");
567
- i0.ɵɵpipe(20, "async");
568
- i0.ɵɵelementStart(21, "mat-select", 6);
569
- i0.ɵɵlistener("selectionChange", function OgcFilterFormComponent_Template_mat_select_selectionChange_21_listener($event) { return ctx.changeOperator($event.value); });
570
- i0.ɵɵpipe(22, "translate");
571
- i0.ɵɵpipe(23, "translate");
572
- i0.ɵɵtemplate(24, OgcFilterFormComponent_mat_option_24_Template, 4, 7, "mat-option", 7);
573
- i0.ɵɵpipe(25, "keyvalue");
574
- i0.ɵɵpipe(26, "async");
575
- i0.ɵɵelementEnd()();
576
- i0.ɵɵtemplate(27, OgcFilterFormComponent_mat_form_field_27_Template, 3, 3, "mat-form-field", 8);
577
- i0.ɵɵpipe(28, "async");
578
- i0.ɵɵtemplate(29, OgcFilterFormComponent_mat_form_field_29_Template, 8, 12, "mat-form-field", 9);
579
- i0.ɵɵelementStart(30, "div", 10)(31, "button", 11);
580
- i0.ɵɵlistener("click", function OgcFilterFormComponent_Template_button_click_31_listener() { return ctx.deleteFilter(); });
581
- i0.ɵɵpipe(32, "translate");
582
- i0.ɵɵelement(33, "mat-icon", 12);
583
- i0.ɵɵelementEnd()();
584
- i0.ɵɵtemplate(34, OgcFilterFormComponent_mat_form_field_34_Template, 4, 7, "mat-form-field", 13);
585
- i0.ɵɵpipe(35, "async");
586
- i0.ɵɵtemplate(36, OgcFilterFormComponent_ng_container_36_Template, 2, 1, "ng-container", 14);
587
- i0.ɵɵpipe(37, "async");
588
- i0.ɵɵelement(38, "br");
589
- i0.ɵɵtemplate(39, OgcFilterFormComponent_mat_form_field_39_Template, 8, 11, "mat-form-field", 15);
590
- i0.ɵɵtemplate(40, OgcFilterFormComponent_mat_form_field_40_Template, 8, 11, "mat-form-field", 15);
591
- i0.ɵɵtemplate(41, OgcFilterFormComponent_igo_ogc_filter_time_41_Template, 1, 2, "igo-ogc-filter-time", 16);
592
- } if (rf & 2) {
593
- i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(1, 27, "igo.geo.filter.toggleFilterState"))("checked", ctx.currentFilter.active);
594
- i0.ɵɵadvance(2);
595
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(67, _c0, ctx.activeFilters.indexOf(ctx.currentFilter) !== 0 && ctx.currentFilter.active === true, ctx.activeFilters.indexOf(ctx.currentFilter) === 0 || ctx.currentFilter.active !== true));
596
- i0.ɵɵadvance(1);
597
- i0.ɵɵproperty("disabled", !ctx.currentFilter.active)("value", ctx.currentFilter.parentLogical)("matTooltip", ctx.currentFilter.parentLogical ? i0.ɵɵpipeBind1(4, 29, "igo.geo.operators.tooltip." + ctx.currentFilter.parentLogical) : "");
598
- i0.ɵɵadvance(2);
599
- i0.ɵɵproperty("value", ctx.ogcFilterOperator.And)("matTooltip", i0.ɵɵpipeBind1(6, 31, "igo.geo.operators.tooltip.And"));
600
- i0.ɵɵadvance(2);
601
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(8, 33, "igo.geo.operators.And"), " ");
602
- i0.ɵɵadvance(2);
603
- i0.ɵɵproperty("value", ctx.ogcFilterOperator.Or)("matTooltip", i0.ɵɵpipeBind1(10, 35, "igo.geo.operators.tooltip.Or"));
604
- i0.ɵɵadvance(2);
605
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(12, 37, "igo.geo.operators.Or"), " ");
606
- i0.ɵɵadvance(2);
607
- i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(14, 39, ctx.currentFilterIsSpatial$) === false && i0.ɵɵpipeBind1(15, 41, ctx.fields$) && i0.ɵɵpipeBind1(16, 43, ctx.fields$).length > 0 && i0.ɵɵpipeBind1(17, 45, ctx.fields$)[0].name !== "");
608
- i0.ɵɵadvance(5);
609
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(70, _c1, i0.ɵɵpipeBind1(19, 47, ctx.currentFilterIsSpatial$) === false, i0.ɵɵpipeBind1(20, 49, ctx.currentFilterIsSpatial$)))("floatLabel", ctx.floatLabel);
610
- i0.ɵɵadvance(3);
611
- i0.ɵɵproperty("matTooltip", ctx.currentFilter.operator ? i0.ɵɵpipeBind1(22, 51, "igo.geo.operators.tooltip." + ctx.currentFilter.operator) : i0.ɵɵpipeBind1(23, 53, "igo.geo.filter.selectOperator"))("disabled", !ctx.currentFilter.active)("value", ctx.currentFilter.operator);
612
- i0.ɵɵadvance(3);
613
- i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(25, 55, i0.ɵɵpipeBind1(26, 57, ctx.ogcFilterOperators$)));
614
- i0.ɵɵadvance(3);
615
- i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(28, 59, ctx.currentFilterIsSpatial$));
616
- i0.ɵɵadvance(2);
617
- i0.ɵɵproperty("ngIf", i0.ɵɵpureFunction0(73, _c2).indexOf(ctx.detectProperty()) !== -1);
618
- i0.ɵɵadvance(2);
619
- i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(32, 61, "igo.geo.filter.removeFilter"));
620
- i0.ɵɵadvance(3);
621
- i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(35, 63, ctx.currentFilterIsSpatial$) && ctx.currentFilter.igoSpatialSelector === "snrc");
622
- i0.ɵɵadvance(2);
623
- i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(37, 65, ctx.currentFilterIsSpatial$) && ctx.currentFilter.igoSpatialSelector === "fixedExtent");
624
- i0.ɵɵadvance(3);
625
- i0.ɵɵproperty("ngIf", !ctx.isTemporalOperator() && i0.ɵɵpureFunction0(74, _c3).indexOf(ctx.detectProperty(1)) !== -1);
626
- i0.ɵɵadvance(1);
627
- i0.ɵɵproperty("ngIf", !ctx.isTemporalOperator() && i0.ɵɵpureFunction0(75, _c4).indexOf(ctx.detectProperty(2)) !== -1);
628
- i0.ɵɵadvance(1);
629
- i0.ɵɵproperty("ngIf", ctx.isTemporalOperator());
630
- } }, styles: ["[_nghost-%COMP%]{width:100%;padding:5px 10px} .mat-form-field .mat-icon svg{width:1em;height:1em;color:#d3d3d3}.mat-form-field[_ngcontent-%COMP%]{width:100%}.mat-select-arrow[_ngcontent-%COMP%]{visibility:hidden}.mat-slide-toggle[_ngcontent-%COMP%]{margin-top:10px}.logical[_ngcontent-%COMP%]{flex-flow:column nowrap;width:10%;max-width:45px;margin-left:5px}.logicalHidden[_ngcontent-%COMP%]{flex-flow:column nowrap;width:10%;visibility:hidden;max-width:45px;margin-left:5px} .logical .mat-select-arrow{visibility:hidden} .logicalHidden .mat-select-arrow{visibility:hidden}.field[_ngcontent-%COMP%]{width:20%} .field .mat-select-arrow{visibility:hidden}.operator[_ngcontent-%COMP%]{width:12%;margin-left:10px;text-align:center} .operator .mat-select-arrow{visibility:hidden}.spatialSelector[_ngcontent-%COMP%]{width:15%;margin-left:5px} .spatialSelector .mat-select-arrow{visibility:hidden}.singleInput[_ngcontent-%COMP%]{width:30%;margin-left:5px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.singleInput[_ngcontent-%COMP%]{width:27%}}.snrc[_ngcontent-%COMP%]{width:20%;margin-left:5px} .singleInput .mat-select-arrow{visibility:hidden}.dualInput[_ngcontent-%COMP%]{width:20%;margin-left:5px} .dualInput .mat-select-arrow{visibility:hidden}.igo-layer-button-group[_ngcontent-%COMP%]{display:flex;float:right;padding-top:5px}.container[_ngcontent-%COMP%]{display:flex}"] });
631
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(OgcFilterFormComponent, [{
632
- type: Component,
633
- args: [{ selector: 'igo-ogc-filter-form', template: "<mat-checkbox\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.filter.toggleFilterState' | translate\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleFilterState($event)\"\n [checked]=\"currentFilter.active\">\n</mat-checkbox>\n\n<mat-form-field\n [ngClass]=\"{'logical': activeFilters.indexOf(currentFilter) !== 0 && currentFilter.active===true, 'logicalHidden': activeFilters.indexOf(currentFilter) === 0 || currentFilter.active!==true}\">\n <mat-select\n [disabled]=\"!currentFilter.active\"\n [value]=\"currentFilter.parentLogical\"\n tooltip-position=\"above\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"currentFilter.parentLogical ? (('igo.geo.operators.tooltip.'+ currentFilter.parentLogical) | translate) : ''\"\n (selectionChange)=\"changeLogical($event.value)\">\n <mat-option\n [value]=ogcFilterOperator.And\n tooltip-position=\"above\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.operators.tooltip.And' | translate\">\n {{'igo.geo.operators.And' | translate}}\n </mat-option>\n <mat-option\n [value]=ogcFilterOperator.Or\n tooltip-position=\"above\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.operators.tooltip.Or' | translate\">\n {{'igo.geo.operators.Or' | translate}}\n </mat-option>\n </mat-select>\n</mat-form-field>\n\n<mat-form-field\n class=\"field\"\n *ngIf=\"(currentFilterIsSpatial$ | async)===false && (fields$ | async) && (fields$| async).length > 0 && (fields$| async)[0].name !== ''\"\n (mouseenter)=\"inputClearable = 'selectField'\"\n (mouseleave)=\"inputClearable = undefined\"\n [floatLabel]=\"floatLabel\">\n <input\n matInput\n [placeholder]=\"'igo.geo.sourceFields.selectField' | translate\"\n [disabled]=\"!currentFilter.active\"\n [matAutocomplete]=\"autoCompleteField\"\n [value]=\"(selectedField$ | async) ? (selectedField$ | async).alias : ''\"\n tooltip-position=\"above\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"(selectedField$ | async) ? (selectedField$ | async).alias : ('igo.geo.sourceFields.selectField' | translate)\"\n (input)=\"updateFieldsList($event.target.value)\">\n <mat-autocomplete #autoCompleteField=\"matAutocomplete\"\n (optionSelected)='changeField($event.option.id)'>\n <mat-option\n *ngFor=\"let field of filteredFields$ | async\"\n matTooltipShowDelay=\"500\"\n [value]=\"field.alias\"\n [id]=\"field.name\"\n [matTooltip]=\"field.alias\">\n {{field.alias}}\n </mat-option>\n </mat-autocomplete>\n <button mat-button\n *ngIf=\"currentFilter.propertyName && inputClearable === 'selectField' && currentFilter.active\"\n matSuffix\n mat-icon-button\n aria-label=\"Clear\"\n [disabled]=\"!currentFilter.active\"\n (click)=\"clearSelectedField()\">\n <mat-icon svgIcon=\"close\"></mat-icon>\n </button>\n</mat-form-field>\n\n\n<mat-form-field\n [ngClass]=\"{'operator': (currentFilterIsSpatial$ | async)===false , 'dualInput': (currentFilterIsSpatial$ | async)}\"\n [floatLabel]=\"floatLabel\">\n <mat-select\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"currentFilter.operator ? (('igo.geo.operators.tooltip.'+ currentFilter.operator) | translate) : ('igo.geo.filter.selectOperator' | translate)\"\n [disabled]=\"!currentFilter.active\"\n [value]=\"currentFilter.operator\"\n (selectionChange)=\"changeOperator($event.value)\">\n <mat-option\n *ngFor=\"let operator of (ogcFilterOperators$ | async) | keyvalue\"\n tooltip-position=\"above\"\n matTooltipShowDelay=\"500\"\n [value]=\"operator.key\"\n [matTooltip]=\"('igo.geo.operators.tooltip.'+ operator.key) | translate\">\n {{('igo.geo.operators.'+ operator.key) | translate}}\n </mat-option>\n </mat-select>\n</mat-form-field>\n\n<mat-form-field\nclass=\"spatialSelector\"\n*ngIf=\"currentFilterIsSpatial$ | async\">\n <mat-select\n [disabled]=\"!currentFilter.active\"\n [value]=\"currentFilter.igoSpatialSelector\"\n (selectionChange)=\"changeSpatialSelector($event.value)\">\n <mat-option\n *ngFor=\"let igoSpatialSelector of igoSpatialSelectors\"\n [value]=\"igoSpatialSelector.type\">\n {{('igo.geo.spatialSelector.'+ igoSpatialSelector.type) | translate}}\n </mat-option>\n </mat-select>\n</mat-form-field>\n\n<mat-form-field\nclass=\"singleInput\"\n*ngIf=\"['expression','pattern'].indexOf(detectProperty()) !== -1\"\n(mouseenter)=\"inputClearable = 'selectProperty'\"\n(mouseleave)=\"inputClearable = undefined\"\n[floatLabel]=\"floatLabel\">\n <input\n matInput\n [placeholder]=\"'igo.geo.filter.placeholder' | translate\"\n [disabled]=\"!currentFilter.active\"\n [matAutocomplete]=\"autoCompleteValues\"\n [value]=\"detectProperty() === 'expression' ? currentFilter.expression : currentFilter.pattern\"\n tooltip-position=\"above\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"detectProperty() === 'expression' ? currentFilter.expression || '' : currentFilter.pattern || ''\"\n (input)=\"updateValuesList($event.target.value)\">\n <mat-autocomplete #autoCompleteValues=\"matAutocomplete\"\n (optionSelected)=\"changeProperty($event.option.value)\">\n <mat-option\n *ngFor=\"let value of filteredValues$ | async\"\n matTooltipShowDelay=\"500\"\n [value]=\"value\"\n [matTooltip]=\"value\">\n {{value}}\n </mat-option>\n </mat-autocomplete>\n <button mat-button\n *ngIf=\"isClearable() && inputClearable === 'selectProperty' && currentFilter.active\"\n matSuffix\n mat-icon-button\n aria-label=\"Clear\"\n [disabled]=\"!currentFilter.active\"\n (click)=\"clearProperty()\">\n <mat-icon svgIcon=\"close\"></mat-icon>\n </button>\n</mat-form-field>\n\n<div class=\"igo-layer-button-group\">\n <button\n mat-icon-button\n collapsibleButton\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.filter.removeFilter' | translate\"\n color=\"warn\"\n (click)=\"deleteFilter()\">\n <mat-icon svgIcon=\"delete\"></mat-icon>\n </button>\n</div>\n\n<mat-form-field\nclass=\"snrc\"\n*ngIf=\"(currentFilterIsSpatial$ | async) && currentFilter.igoSpatialSelector === 'snrc'\"\n(mouseenter)=\"inputClearable = 'selectSNRC'\"\n(mouseleave)=\"inputClearable = undefined\"\n[floatLabel]=\"floatLabel\">\n <input\n matInput\n [placeholder]=\"'igo.geo.filter.placeholderSnrc' | translate\"\n [value]=\"currentFilter.igoSNRC\"\n tooltip-position=\"above\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"currentFilter.igoSNRC ? currentFilter.igoSNRC : ''\"\n (input)=\"changeSNRC($event.target.value)\">\n <button\n mat-button\n *ngIf=\"currentFilter.igoSNRC\"\n matSuffix\n mat-icon-button\n aria-label=\"Clear\"\n [disabled]=\"!currentFilter.active && inputClearable === 'selectSNRC' && currentFilter.active\"\n (click)=\"currentFilter.igoSNRC=''\">\n <mat-icon svgIcon=\"close\"></mat-icon>\n </button>\n </mat-form-field>\n\n <ng-container *ngIf=\"(currentFilterIsSpatial$ | async) && currentFilter.igoSpatialSelector === 'fixedExtent'\">\n <button\n mat-button\n [disabled]=\"!currentFilter.active\"\n *ngIf=\"currentFilter.igoSpatialSelector === 'fixedExtent'\"\n matSuffix\n mat-icon-button\n [disabled]=\"!currentFilter.active\"\n (click)=\"changeMapExtentGeometry()\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.spatialSelector.btnSetExtent' | translate\">\n <mat-icon svgIcon=\"arrow-expand-all\"></mat-icon>\n </button>\n</ng-container>\n\n<br/>\n\n<mat-form-field\nclass=\"dualInput\"\n*ngIf=\"!isTemporalOperator() && ['lowerBoundary','begin'].indexOf(detectProperty(1)) !== -1\"\n(mouseenter)=\"inputClearable = 'selectProperty1'\"\n(mouseleave)=\"inputClearable = undefined\"\n[floatLabel]=\"floatLabel\">\n <input\n matInput\n [placeholder]=\"'igo.geo.filter.placeholder' | translate\"\n [disabled]=\"!currentFilter.active\"\n [matAutocomplete]=\"autoDualValueOperator1\"\n type=\"number\"\n [value]=\"detectProperty(1) === 'lowerBoundary' ? currentFilter.lowerBoundary : currentFilter.begin\"\n (input)=\"updateValuesList($event.target.value,1)\">\n <mat-autocomplete #autoDualValueOperator1=\"matAutocomplete\"\n (optionSelected)=\"changeNumericProperty($event.option.value,1)\">\n <mat-option\n *ngFor=\"let value of filteredValues$ | async\"\n matTooltipShowDelay=\"500\"\n [value]=\"value\"\n [matTooltip]=\"value\">\n {{value}}\n </mat-option>\n </mat-autocomplete>\n <button mat-button\n *ngIf=\"isClearable(1) && inputClearable === 'selectProperty1' && currentFilter.active\"\n matSuffix\n mat-icon-button\n aria-label=\"Clear\"\n [disabled]=\"!currentFilter.active\"\n (click)=\"clearProperty(1)\">\n <mat-icon svgIcon=\"close\"></mat-icon>\n </button>\n</mat-form-field>\n\n<mat-form-field\n class=\"dualInput\"\n *ngIf=\"!isTemporalOperator() && ['upperBoundary','end'].indexOf(detectProperty(2)) !== -1\"\n (mouseenter)=\"inputClearable = 'selectProperty2'\"\n (mouseleave)=\"inputClearable = undefined\"\n [floatLabel]=\"floatLabel\">\n <input\n matInput\n [placeholder]=\"'igo.geo.filter.placeholder' | translate\"\n [disabled]=\"!currentFilter.active\"\n [matAutocomplete]=\"autoDualValueOperator2\"\n type=\"number\"\n [value]=\"detectProperty(2) === 'upperBoundary' ? currentFilter.upperBoundary : currentFilter.end\"\n (input)=\"updateValuesList($event.target.value,2)\">\n <mat-autocomplete #autoDualValueOperator2=\"matAutocomplete\"\n (optionSelected)=\"changeNumericProperty($event.option.value,2)\">\n <mat-option\n *ngFor=\"let value of filteredValues$ | async\"\n matTooltipShowDelay=\"500\"\n [value]=\"value\"\n [matTooltip]=\"value\">\n {{value}}\n </mat-option>\n </mat-autocomplete>\n <button mat-button\n *ngIf=\"isClearable(2) && inputClearable === 'selectProperty2' && currentFilter.active\"\n matSuffix\n mat-icon-button\n aria-label=\"Clear\"\n [disabled]=\"!currentFilter.active\"\n (click)=\"clearProperty(2)\">\n <mat-icon svgIcon=\"close\"></mat-icon>\n </button>\n</mat-form-field>\n\n<igo-ogc-filter-time *ngIf=\"isTemporalOperator()\"\n [(datasource)]=\"datasource\"\n [(currentFilter)]=\"currentFilter\"\n (changeProperty)=\"changeProperty($event.value, $event.pos)\">\n</igo-ogc-filter-time>\n\n<!--\nTODO C'EST PERTINENT je crois\n<mat-form-field class=\"field\" *ngIf=\"!(currentFilterIsSpatial$ | async) && (fields$| async) && (fields$| async).length === 1 && (fields$| async)[0].name === ''\">\n<input [disabled]=\"!currentFilter.active\" matInput #fieldPerUser (keyup)=\"changeProperty(currentFilter,'propertyName',fieldPerUser.value)\"\n (blur)=\"changeProperty(currentFilter,'propertyName',fieldPerUser.value)\" [(ngModel)]=\"currentFilter.propertyName\">\n<button mat-button *ngIf=\"currentFilter.propertyName\" matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"currentFilter.propertyName=''\">\n <mat-icon svgIcon=\"close\"></mat-icon>\n</button>\n</mat-form-field>\n\n\n\n<mat-checkbox labelPosition='before' (change)=\"changeCaseSensitive($event)\" [(ngModel)]=\"currentFilter.matchCase\">\n {{('igo.geo.operators.caseSensitive') | translate}}\n</mat-checkbox>\n\n</mat-list-item> -->\n", styles: [":host{width:100%;padding:5px 10px}::ng-deep .mat-form-field .mat-icon svg{width:1em;height:1em;color:#d3d3d3}.mat-form-field{width:100%}.mat-select-arrow{visibility:hidden}.mat-slide-toggle{margin-top:10px}.logical{flex-flow:column nowrap;width:10%;max-width:45px;margin-left:5px}.logicalHidden{flex-flow:column nowrap;width:10%;visibility:hidden;max-width:45px;margin-left:5px}::ng-deep .logical .mat-select-arrow{visibility:hidden}::ng-deep .logicalHidden .mat-select-arrow{visibility:hidden}.field{width:20%}::ng-deep .field .mat-select-arrow{visibility:hidden}.operator{width:12%;margin-left:10px;text-align:center}::ng-deep .operator .mat-select-arrow{visibility:hidden}.spatialSelector{width:15%;margin-left:5px}::ng-deep .spatialSelector .mat-select-arrow{visibility:hidden}.singleInput{width:30%;margin-left:5px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.singleInput{width:27%}}.snrc{width:20%;margin-left:5px}::ng-deep .singleInput .mat-select-arrow{visibility:hidden}.dualInput{width:20%;margin-left:5px}::ng-deep .dualInput .mat-select-arrow{visibility:hidden}.igo-layer-button-group{display:flex;float:right;padding-top:5px}.container{display:flex}\n"] }]
634
- }], function () { return [{ type: i1.WktService }]; }, { refreshFilters: [{
635
- type: Input
636
- }], datasource: [{
637
- type: Input
638
- }], map: [{
639
- type: Input
640
- }], currentFilter: [{
641
- type: Input
642
- }], floatLabel: [{
643
- type: Input
644
- }] }); })();
1
+ import { Component, Input } from '@angular/core';
2
+ import { BehaviorSubject, of } from 'rxjs';
3
+ import { OgcFilterWriter } from '../../filter/shared/ogc-filter';
4
+ import { OgcFilterOperator } from '../../filter/shared/ogc-filter.enum';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../../wkt/shared/wkt.service";
7
+ function OgcFilterFormComponent_mat_form_field_13_mat_option_10_Template(rf, ctx) { if (rf & 1) {
8
+ i0.ɵɵelementStart(0, "mat-option", 23);
9
+ i0.ɵɵtext(1);
10
+ i0.ɵɵelementEnd();
11
+ } if (rf & 2) {
12
+ const field_r12 = ctx.$implicit;
13
+ i0.ɵɵproperty("value", field_r12.alias)("id", field_r12.name)("matTooltip", field_r12.alias);
14
+ i0.ɵɵadvance(1);
15
+ i0.ɵɵtextInterpolate1(" ", field_r12.alias, " ");
16
+ } }
17
+ function OgcFilterFormComponent_mat_form_field_13_button_12_Template(rf, ctx) { if (rf & 1) {
18
+ const _r14 = i0.ɵɵgetCurrentView();
19
+ i0.ɵɵelementStart(0, "button", 24);
20
+ i0.ɵɵlistener("click", function OgcFilterFormComponent_mat_form_field_13_button_12_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r14); const ctx_r13 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r13.clearSelectedField()); });
21
+ i0.ɵɵelement(1, "mat-icon", 25);
22
+ i0.ɵɵelementEnd();
23
+ } if (rf & 2) {
24
+ const ctx_r11 = i0.ɵɵnextContext(2);
25
+ i0.ɵɵproperty("disabled", !ctx_r11.currentFilter.active);
26
+ } }
27
+ function OgcFilterFormComponent_mat_form_field_13_Template(rf, ctx) { if (rf & 1) {
28
+ const _r16 = i0.ɵɵgetCurrentView();
29
+ i0.ɵɵelementStart(0, "mat-form-field", 17);
30
+ i0.ɵɵlistener("mouseenter", function OgcFilterFormComponent_mat_form_field_13_Template_mat_form_field_mouseenter_0_listener() { i0.ɵɵrestoreView(_r16); const ctx_r15 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r15.inputClearable = "selectField"); })("mouseleave", function OgcFilterFormComponent_mat_form_field_13_Template_mat_form_field_mouseleave_0_listener() { i0.ɵɵrestoreView(_r16); const ctx_r17 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r17.inputClearable = undefined); });
31
+ i0.ɵɵelementStart(1, "input", 18);
32
+ i0.ɵɵlistener("input", function OgcFilterFormComponent_mat_form_field_13_Template_input_input_1_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r18 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r18.updateFieldsList($event.target.value)); });
33
+ i0.ɵɵpipe(2, "translate");
34
+ i0.ɵɵpipe(3, "async");
35
+ i0.ɵɵpipe(4, "async");
36
+ i0.ɵɵpipe(5, "async");
37
+ i0.ɵɵpipe(6, "async");
38
+ i0.ɵɵpipe(7, "translate");
39
+ i0.ɵɵelementEnd();
40
+ i0.ɵɵelementStart(8, "mat-autocomplete", 19, 20);
41
+ i0.ɵɵlistener("optionSelected", function OgcFilterFormComponent_mat_form_field_13_Template_mat_autocomplete_optionSelected_8_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r19 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r19.changeField($event.option.id)); });
42
+ i0.ɵɵtemplate(10, OgcFilterFormComponent_mat_form_field_13_mat_option_10_Template, 2, 4, "mat-option", 21);
43
+ i0.ɵɵpipe(11, "async");
44
+ i0.ɵɵelementEnd();
45
+ i0.ɵɵtemplate(12, OgcFilterFormComponent_mat_form_field_13_button_12_Template, 2, 1, "button", 22);
46
+ i0.ɵɵelementEnd();
47
+ } if (rf & 2) {
48
+ const _r9 = i0.ɵɵreference(9);
49
+ const ctx_r0 = i0.ɵɵnextContext();
50
+ i0.ɵɵproperty("floatLabel", ctx_r0.floatLabel);
51
+ i0.ɵɵadvance(1);
52
+ i0.ɵɵproperty("placeholder", i0.ɵɵpipeBind1(2, 8, "igo.geo.sourceFields.selectField"))("disabled", !ctx_r0.currentFilter.active)("matAutocomplete", _r9)("value", i0.ɵɵpipeBind1(3, 10, ctx_r0.selectedField$) ? i0.ɵɵpipeBind1(4, 12, ctx_r0.selectedField$).alias : "")("matTooltip", i0.ɵɵpipeBind1(5, 14, ctx_r0.selectedField$) ? i0.ɵɵpipeBind1(6, 16, ctx_r0.selectedField$).alias : i0.ɵɵpipeBind1(7, 18, "igo.geo.sourceFields.selectField"));
53
+ i0.ɵɵadvance(9);
54
+ i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(11, 20, ctx_r0.filteredFields$));
55
+ i0.ɵɵadvance(2);
56
+ i0.ɵɵproperty("ngIf", ctx_r0.currentFilter.propertyName && ctx_r0.inputClearable === "selectField" && ctx_r0.currentFilter.active);
57
+ } }
58
+ function OgcFilterFormComponent_mat_option_24_Template(rf, ctx) { if (rf & 1) {
59
+ i0.ɵɵelementStart(0, "mat-option", 3);
60
+ i0.ɵɵpipe(1, "translate");
61
+ i0.ɵɵtext(2);
62
+ i0.ɵɵpipe(3, "translate");
63
+ i0.ɵɵelementEnd();
64
+ } if (rf & 2) {
65
+ const operator_r20 = ctx.$implicit;
66
+ i0.ɵɵproperty("value", operator_r20.key)("matTooltip", i0.ɵɵpipeBind1(1, 3, "igo.geo.operators.tooltip." + operator_r20.key));
67
+ i0.ɵɵadvance(2);
68
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 5, "igo.geo.operators." + operator_r20.key), " ");
69
+ } }
70
+ function OgcFilterFormComponent_mat_form_field_27_mat_option_2_Template(rf, ctx) { if (rf & 1) {
71
+ i0.ɵɵelementStart(0, "mat-option", 29);
72
+ i0.ɵɵtext(1);
73
+ i0.ɵɵpipe(2, "translate");
74
+ i0.ɵɵelementEnd();
75
+ } if (rf & 2) {
76
+ const igoSpatialSelector_r22 = ctx.$implicit;
77
+ i0.ɵɵproperty("value", igoSpatialSelector_r22.type);
78
+ i0.ɵɵadvance(1);
79
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, "igo.geo.spatialSelector." + igoSpatialSelector_r22.type), " ");
80
+ } }
81
+ function OgcFilterFormComponent_mat_form_field_27_Template(rf, ctx) { if (rf & 1) {
82
+ const _r24 = i0.ɵɵgetCurrentView();
83
+ i0.ɵɵelementStart(0, "mat-form-field", 26)(1, "mat-select", 27);
84
+ i0.ɵɵlistener("selectionChange", function OgcFilterFormComponent_mat_form_field_27_Template_mat_select_selectionChange_1_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r23 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r23.changeSpatialSelector($event.value)); });
85
+ i0.ɵɵtemplate(2, OgcFilterFormComponent_mat_form_field_27_mat_option_2_Template, 3, 4, "mat-option", 28);
86
+ i0.ɵɵelementEnd()();
87
+ } if (rf & 2) {
88
+ const ctx_r2 = i0.ɵɵnextContext();
89
+ i0.ɵɵadvance(1);
90
+ i0.ɵɵproperty("disabled", !ctx_r2.currentFilter.active)("value", ctx_r2.currentFilter.igoSpatialSelector);
91
+ i0.ɵɵadvance(1);
92
+ i0.ɵɵproperty("ngForOf", ctx_r2.igoSpatialSelectors);
93
+ } }
94
+ function OgcFilterFormComponent_mat_form_field_29_mat_option_5_Template(rf, ctx) { if (rf & 1) {
95
+ i0.ɵɵelementStart(0, "mat-option", 33);
96
+ i0.ɵɵtext(1);
97
+ i0.ɵɵelementEnd();
98
+ } if (rf & 2) {
99
+ const value_r28 = ctx.$implicit;
100
+ i0.ɵɵproperty("value", value_r28)("matTooltip", value_r28);
101
+ i0.ɵɵadvance(1);
102
+ i0.ɵɵtextInterpolate1(" ", value_r28, " ");
103
+ } }
104
+ function OgcFilterFormComponent_mat_form_field_29_button_7_Template(rf, ctx) { if (rf & 1) {
105
+ const _r30 = i0.ɵɵgetCurrentView();
106
+ i0.ɵɵelementStart(0, "button", 24);
107
+ i0.ɵɵlistener("click", function OgcFilterFormComponent_mat_form_field_29_button_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r30); const ctx_r29 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r29.clearProperty()); });
108
+ i0.ɵɵelement(1, "mat-icon", 25);
109
+ i0.ɵɵelementEnd();
110
+ } if (rf & 2) {
111
+ const ctx_r27 = i0.ɵɵnextContext(2);
112
+ i0.ɵɵproperty("disabled", !ctx_r27.currentFilter.active);
113
+ } }
114
+ function OgcFilterFormComponent_mat_form_field_29_Template(rf, ctx) { if (rf & 1) {
115
+ const _r32 = i0.ɵɵgetCurrentView();
116
+ i0.ɵɵelementStart(0, "mat-form-field", 30);
117
+ i0.ɵɵlistener("mouseenter", function OgcFilterFormComponent_mat_form_field_29_Template_mat_form_field_mouseenter_0_listener() { i0.ɵɵrestoreView(_r32); const ctx_r31 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r31.inputClearable = "selectProperty"); })("mouseleave", function OgcFilterFormComponent_mat_form_field_29_Template_mat_form_field_mouseleave_0_listener() { i0.ɵɵrestoreView(_r32); const ctx_r33 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r33.inputClearable = undefined); });
118
+ i0.ɵɵelementStart(1, "input", 18);
119
+ i0.ɵɵlistener("input", function OgcFilterFormComponent_mat_form_field_29_Template_input_input_1_listener($event) { i0.ɵɵrestoreView(_r32); const ctx_r34 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r34.updateValuesList($event.target.value)); });
120
+ i0.ɵɵpipe(2, "translate");
121
+ i0.ɵɵelementEnd();
122
+ i0.ɵɵelementStart(3, "mat-autocomplete", 19, 31);
123
+ i0.ɵɵlistener("optionSelected", function OgcFilterFormComponent_mat_form_field_29_Template_mat_autocomplete_optionSelected_3_listener($event) { i0.ɵɵrestoreView(_r32); const ctx_r35 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r35.changeProperty($event.option.value)); });
124
+ i0.ɵɵtemplate(5, OgcFilterFormComponent_mat_form_field_29_mat_option_5_Template, 2, 3, "mat-option", 32);
125
+ i0.ɵɵpipe(6, "async");
126
+ i0.ɵɵelementEnd();
127
+ i0.ɵɵtemplate(7, OgcFilterFormComponent_mat_form_field_29_button_7_Template, 2, 1, "button", 22);
128
+ i0.ɵɵelementEnd();
129
+ } if (rf & 2) {
130
+ const _r25 = i0.ɵɵreference(4);
131
+ const ctx_r3 = i0.ɵɵnextContext();
132
+ i0.ɵɵproperty("floatLabel", ctx_r3.floatLabel);
133
+ i0.ɵɵadvance(1);
134
+ i0.ɵɵproperty("placeholder", i0.ɵɵpipeBind1(2, 8, "igo.geo.filter.placeholder"))("disabled", !ctx_r3.currentFilter.active)("matAutocomplete", _r25)("value", ctx_r3.detectProperty() === "expression" ? ctx_r3.currentFilter.expression : ctx_r3.currentFilter.pattern)("matTooltip", ctx_r3.detectProperty() === "expression" ? ctx_r3.currentFilter.expression || "" : ctx_r3.currentFilter.pattern || "");
135
+ i0.ɵɵadvance(4);
136
+ i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(6, 10, ctx_r3.filteredValues$));
137
+ i0.ɵɵadvance(2);
138
+ i0.ɵɵproperty("ngIf", ctx_r3.isClearable() && ctx_r3.inputClearable === "selectProperty" && ctx_r3.currentFilter.active);
139
+ } }
140
+ function OgcFilterFormComponent_mat_form_field_34_button_3_Template(rf, ctx) { if (rf & 1) {
141
+ const _r38 = i0.ɵɵgetCurrentView();
142
+ i0.ɵɵelementStart(0, "button", 24);
143
+ i0.ɵɵlistener("click", function OgcFilterFormComponent_mat_form_field_34_button_3_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r38); const ctx_r37 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r37.currentFilter.igoSNRC = ""); });
144
+ i0.ɵɵelement(1, "mat-icon", 25);
145
+ i0.ɵɵelementEnd();
146
+ } if (rf & 2) {
147
+ const ctx_r36 = i0.ɵɵnextContext(2);
148
+ i0.ɵɵproperty("disabled", !ctx_r36.currentFilter.active && ctx_r36.inputClearable === "selectSNRC" && ctx_r36.currentFilter.active);
149
+ } }
150
+ function OgcFilterFormComponent_mat_form_field_34_Template(rf, ctx) { if (rf & 1) {
151
+ const _r40 = i0.ɵɵgetCurrentView();
152
+ i0.ɵɵelementStart(0, "mat-form-field", 34);
153
+ i0.ɵɵlistener("mouseenter", function OgcFilterFormComponent_mat_form_field_34_Template_mat_form_field_mouseenter_0_listener() { i0.ɵɵrestoreView(_r40); const ctx_r39 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r39.inputClearable = "selectSNRC"); })("mouseleave", function OgcFilterFormComponent_mat_form_field_34_Template_mat_form_field_mouseleave_0_listener() { i0.ɵɵrestoreView(_r40); const ctx_r41 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r41.inputClearable = undefined); });
154
+ i0.ɵɵelementStart(1, "input", 35);
155
+ i0.ɵɵlistener("input", function OgcFilterFormComponent_mat_form_field_34_Template_input_input_1_listener($event) { i0.ɵɵrestoreView(_r40); const ctx_r42 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r42.changeSNRC($event.target.value)); });
156
+ i0.ɵɵpipe(2, "translate");
157
+ i0.ɵɵelementEnd();
158
+ i0.ɵɵtemplate(3, OgcFilterFormComponent_mat_form_field_34_button_3_Template, 2, 1, "button", 22);
159
+ i0.ɵɵelementEnd();
160
+ } if (rf & 2) {
161
+ const ctx_r4 = i0.ɵɵnextContext();
162
+ i0.ɵɵproperty("floatLabel", ctx_r4.floatLabel);
163
+ i0.ɵɵadvance(1);
164
+ i0.ɵɵproperty("placeholder", i0.ɵɵpipeBind1(2, 5, "igo.geo.filter.placeholderSnrc"))("value", ctx_r4.currentFilter.igoSNRC)("matTooltip", ctx_r4.currentFilter.igoSNRC ? ctx_r4.currentFilter.igoSNRC : "");
165
+ i0.ɵɵadvance(2);
166
+ i0.ɵɵproperty("ngIf", ctx_r4.currentFilter.igoSNRC);
167
+ } }
168
+ function OgcFilterFormComponent_ng_container_36_button_1_Template(rf, ctx) { if (rf & 1) {
169
+ const _r45 = i0.ɵɵgetCurrentView();
170
+ i0.ɵɵelementStart(0, "button", 37);
171
+ i0.ɵɵlistener("click", function OgcFilterFormComponent_ng_container_36_button_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r45); const ctx_r44 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r44.changeMapExtentGeometry()); });
172
+ i0.ɵɵpipe(1, "translate");
173
+ i0.ɵɵelement(2, "mat-icon", 38);
174
+ i0.ɵɵelementEnd();
175
+ } if (rf & 2) {
176
+ const ctx_r43 = i0.ɵɵnextContext(2);
177
+ i0.ɵɵproperty("disabled", !ctx_r43.currentFilter.active)("disabled", !ctx_r43.currentFilter.active)("matTooltip", i0.ɵɵpipeBind1(1, 3, "igo.geo.spatialSelector.btnSetExtent"));
178
+ } }
179
+ function OgcFilterFormComponent_ng_container_36_Template(rf, ctx) { if (rf & 1) {
180
+ i0.ɵɵelementContainerStart(0);
181
+ i0.ɵɵtemplate(1, OgcFilterFormComponent_ng_container_36_button_1_Template, 3, 5, "button", 36);
182
+ i0.ɵɵelementContainerEnd();
183
+ } if (rf & 2) {
184
+ const ctx_r5 = i0.ɵɵnextContext();
185
+ i0.ɵɵadvance(1);
186
+ i0.ɵɵproperty("ngIf", ctx_r5.currentFilter.igoSpatialSelector === "fixedExtent");
187
+ } }
188
+ function OgcFilterFormComponent_mat_form_field_39_mat_option_5_Template(rf, ctx) { if (rf & 1) {
189
+ i0.ɵɵelementStart(0, "mat-option", 33);
190
+ i0.ɵɵtext(1);
191
+ i0.ɵɵelementEnd();
192
+ } if (rf & 2) {
193
+ const value_r49 = ctx.$implicit;
194
+ i0.ɵɵproperty("value", value_r49)("matTooltip", value_r49);
195
+ i0.ɵɵadvance(1);
196
+ i0.ɵɵtextInterpolate1(" ", value_r49, " ");
197
+ } }
198
+ function OgcFilterFormComponent_mat_form_field_39_button_7_Template(rf, ctx) { if (rf & 1) {
199
+ const _r51 = i0.ɵɵgetCurrentView();
200
+ i0.ɵɵelementStart(0, "button", 24);
201
+ i0.ɵɵlistener("click", function OgcFilterFormComponent_mat_form_field_39_button_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r51); const ctx_r50 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r50.clearProperty(1)); });
202
+ i0.ɵɵelement(1, "mat-icon", 25);
203
+ i0.ɵɵelementEnd();
204
+ } if (rf & 2) {
205
+ const ctx_r48 = i0.ɵɵnextContext(2);
206
+ i0.ɵɵproperty("disabled", !ctx_r48.currentFilter.active);
207
+ } }
208
+ function OgcFilterFormComponent_mat_form_field_39_Template(rf, ctx) { if (rf & 1) {
209
+ const _r53 = i0.ɵɵgetCurrentView();
210
+ i0.ɵɵelementStart(0, "mat-form-field", 39);
211
+ i0.ɵɵlistener("mouseenter", function OgcFilterFormComponent_mat_form_field_39_Template_mat_form_field_mouseenter_0_listener() { i0.ɵɵrestoreView(_r53); const ctx_r52 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r52.inputClearable = "selectProperty1"); })("mouseleave", function OgcFilterFormComponent_mat_form_field_39_Template_mat_form_field_mouseleave_0_listener() { i0.ɵɵrestoreView(_r53); const ctx_r54 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r54.inputClearable = undefined); });
212
+ i0.ɵɵelementStart(1, "input", 40);
213
+ i0.ɵɵlistener("input", function OgcFilterFormComponent_mat_form_field_39_Template_input_input_1_listener($event) { i0.ɵɵrestoreView(_r53); const ctx_r55 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r55.updateValuesList($event.target.value, 1)); });
214
+ i0.ɵɵpipe(2, "translate");
215
+ i0.ɵɵelementEnd();
216
+ i0.ɵɵelementStart(3, "mat-autocomplete", 19, 41);
217
+ i0.ɵɵlistener("optionSelected", function OgcFilterFormComponent_mat_form_field_39_Template_mat_autocomplete_optionSelected_3_listener($event) { i0.ɵɵrestoreView(_r53); const ctx_r56 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r56.changeNumericProperty($event.option.value, 1)); });
218
+ i0.ɵɵtemplate(5, OgcFilterFormComponent_mat_form_field_39_mat_option_5_Template, 2, 3, "mat-option", 32);
219
+ i0.ɵɵpipe(6, "async");
220
+ i0.ɵɵelementEnd();
221
+ i0.ɵɵtemplate(7, OgcFilterFormComponent_mat_form_field_39_button_7_Template, 2, 1, "button", 22);
222
+ i0.ɵɵelementEnd();
223
+ } if (rf & 2) {
224
+ const _r46 = i0.ɵɵreference(4);
225
+ const ctx_r6 = i0.ɵɵnextContext();
226
+ i0.ɵɵproperty("floatLabel", ctx_r6.floatLabel);
227
+ i0.ɵɵadvance(1);
228
+ i0.ɵɵproperty("placeholder", i0.ɵɵpipeBind1(2, 7, "igo.geo.filter.placeholder"))("disabled", !ctx_r6.currentFilter.active)("matAutocomplete", _r46)("value", ctx_r6.detectProperty(1) === "lowerBoundary" ? ctx_r6.currentFilter.lowerBoundary : ctx_r6.currentFilter.begin);
229
+ i0.ɵɵadvance(4);
230
+ i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(6, 9, ctx_r6.filteredValues$));
231
+ i0.ɵɵadvance(2);
232
+ i0.ɵɵproperty("ngIf", ctx_r6.isClearable(1) && ctx_r6.inputClearable === "selectProperty1" && ctx_r6.currentFilter.active);
233
+ } }
234
+ function OgcFilterFormComponent_mat_form_field_40_mat_option_5_Template(rf, ctx) { if (rf & 1) {
235
+ i0.ɵɵelementStart(0, "mat-option", 33);
236
+ i0.ɵɵtext(1);
237
+ i0.ɵɵelementEnd();
238
+ } if (rf & 2) {
239
+ const value_r60 = ctx.$implicit;
240
+ i0.ɵɵproperty("value", value_r60)("matTooltip", value_r60);
241
+ i0.ɵɵadvance(1);
242
+ i0.ɵɵtextInterpolate1(" ", value_r60, " ");
243
+ } }
244
+ function OgcFilterFormComponent_mat_form_field_40_button_7_Template(rf, ctx) { if (rf & 1) {
245
+ const _r62 = i0.ɵɵgetCurrentView();
246
+ i0.ɵɵelementStart(0, "button", 24);
247
+ i0.ɵɵlistener("click", function OgcFilterFormComponent_mat_form_field_40_button_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r62); const ctx_r61 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r61.clearProperty(2)); });
248
+ i0.ɵɵelement(1, "mat-icon", 25);
249
+ i0.ɵɵelementEnd();
250
+ } if (rf & 2) {
251
+ const ctx_r59 = i0.ɵɵnextContext(2);
252
+ i0.ɵɵproperty("disabled", !ctx_r59.currentFilter.active);
253
+ } }
254
+ function OgcFilterFormComponent_mat_form_field_40_Template(rf, ctx) { if (rf & 1) {
255
+ const _r64 = i0.ɵɵgetCurrentView();
256
+ i0.ɵɵelementStart(0, "mat-form-field", 39);
257
+ i0.ɵɵlistener("mouseenter", function OgcFilterFormComponent_mat_form_field_40_Template_mat_form_field_mouseenter_0_listener() { i0.ɵɵrestoreView(_r64); const ctx_r63 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r63.inputClearable = "selectProperty2"); })("mouseleave", function OgcFilterFormComponent_mat_form_field_40_Template_mat_form_field_mouseleave_0_listener() { i0.ɵɵrestoreView(_r64); const ctx_r65 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r65.inputClearable = undefined); });
258
+ i0.ɵɵelementStart(1, "input", 40);
259
+ i0.ɵɵlistener("input", function OgcFilterFormComponent_mat_form_field_40_Template_input_input_1_listener($event) { i0.ɵɵrestoreView(_r64); const ctx_r66 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r66.updateValuesList($event.target.value, 2)); });
260
+ i0.ɵɵpipe(2, "translate");
261
+ i0.ɵɵelementEnd();
262
+ i0.ɵɵelementStart(3, "mat-autocomplete", 19, 42);
263
+ i0.ɵɵlistener("optionSelected", function OgcFilterFormComponent_mat_form_field_40_Template_mat_autocomplete_optionSelected_3_listener($event) { i0.ɵɵrestoreView(_r64); const ctx_r67 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r67.changeNumericProperty($event.option.value, 2)); });
264
+ i0.ɵɵtemplate(5, OgcFilterFormComponent_mat_form_field_40_mat_option_5_Template, 2, 3, "mat-option", 32);
265
+ i0.ɵɵpipe(6, "async");
266
+ i0.ɵɵelementEnd();
267
+ i0.ɵɵtemplate(7, OgcFilterFormComponent_mat_form_field_40_button_7_Template, 2, 1, "button", 22);
268
+ i0.ɵɵelementEnd();
269
+ } if (rf & 2) {
270
+ const _r57 = i0.ɵɵreference(4);
271
+ const ctx_r7 = i0.ɵɵnextContext();
272
+ i0.ɵɵproperty("floatLabel", ctx_r7.floatLabel);
273
+ i0.ɵɵadvance(1);
274
+ i0.ɵɵproperty("placeholder", i0.ɵɵpipeBind1(2, 7, "igo.geo.filter.placeholder"))("disabled", !ctx_r7.currentFilter.active)("matAutocomplete", _r57)("value", ctx_r7.detectProperty(2) === "upperBoundary" ? ctx_r7.currentFilter.upperBoundary : ctx_r7.currentFilter.end);
275
+ i0.ɵɵadvance(4);
276
+ i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(6, 9, ctx_r7.filteredValues$));
277
+ i0.ɵɵadvance(2);
278
+ i0.ɵɵproperty("ngIf", ctx_r7.isClearable(2) && ctx_r7.inputClearable === "selectProperty2" && ctx_r7.currentFilter.active);
279
+ } }
280
+ function OgcFilterFormComponent_igo_ogc_filter_time_41_Template(rf, ctx) { if (rf & 1) {
281
+ const _r69 = i0.ɵɵgetCurrentView();
282
+ i0.ɵɵelementStart(0, "igo-ogc-filter-time", 43);
283
+ i0.ɵɵlistener("datasourceChange", function OgcFilterFormComponent_igo_ogc_filter_time_41_Template_igo_ogc_filter_time_datasourceChange_0_listener($event) { i0.ɵɵrestoreView(_r69); const ctx_r68 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r68.datasource = $event); })("currentFilterChange", function OgcFilterFormComponent_igo_ogc_filter_time_41_Template_igo_ogc_filter_time_currentFilterChange_0_listener($event) { i0.ɵɵrestoreView(_r69); const ctx_r70 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r70.currentFilter = $event); })("changeProperty", function OgcFilterFormComponent_igo_ogc_filter_time_41_Template_igo_ogc_filter_time_changeProperty_0_listener($event) { i0.ɵɵrestoreView(_r69); const ctx_r71 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r71.changeProperty($event.value, $event.pos)); });
284
+ i0.ɵɵelementEnd();
285
+ } if (rf & 2) {
286
+ const ctx_r8 = i0.ɵɵnextContext();
287
+ i0.ɵɵproperty("datasource", ctx_r8.datasource)("currentFilter", ctx_r8.currentFilter);
288
+ } }
289
+ const _c0 = function (a0, a1) { return { "logical": a0, "logicalHidden": a1 }; };
290
+ const _c1 = function (a0, a1) { return { "operator": a0, "dualInput": a1 }; };
291
+ const _c2 = function () { return ["expression", "pattern"]; };
292
+ const _c3 = function () { return ["lowerBoundary", "begin"]; };
293
+ const _c4 = function () { return ["upperBoundary", "end"]; };
294
+ export class OgcFilterFormComponent {
295
+ constructor(wktService) {
296
+ this.wktService = wktService;
297
+ this.ogcFilterOperator = OgcFilterOperator;
298
+ this.ogcFilterOperators$ = new BehaviorSubject(undefined);
299
+ this.value = '';
300
+ this.selectedField$ = new BehaviorSubject(undefined);
301
+ this.fields$ = new BehaviorSubject([]);
302
+ this.color = 'primary';
303
+ this.currentFilterIsSpatial$ = new BehaviorSubject(false);
304
+ this.defaultStepMillisecond = 6000;
305
+ this._snrc = '';
306
+ this.floatLabel = 'never';
307
+ // TODO: Filter permitted operator based on wfscapabilities
308
+ // Need to work on regex on XML capabilities because
309
+ // comaparison operator's name varies between WFS servers...
310
+ // Ex: IsNull vs PropertyIsNull vs IsNil ...
311
+ this.allOgcFilterOperators = new OgcFilterWriter().operators;
312
+ this.ogcFilterOperators$.next(this.allOgcFilterOperators);
313
+ this.igoSpatialSelectors = [
314
+ {
315
+ type: 'fixedExtent'
316
+ },
317
+ {
318
+ type: 'snrc'
319
+ }
320
+ ];
321
+ // TODO: selectFeature & drawFeature
322
+ }
323
+ set snrc(value) {
324
+ const checkSNRC50k = /^\d{2}[a-l][0,1][0-9]$/gi;
325
+ const checkSNRC250k = /^\d{2}[a-p]$/gi;
326
+ const checkSNRC1m = /^\d{2}$/gi;
327
+ if (checkSNRC1m.test(value) ||
328
+ checkSNRC250k.test(value) ||
329
+ checkSNRC50k.test(value)) {
330
+ this._snrc = value;
331
+ this.currentFilter.igoSNRC = value;
332
+ }
333
+ }
334
+ get snrc() {
335
+ return this._snrc;
336
+ }
337
+ get activeFilters() {
338
+ return this.datasource.options.ogcFilters.interfaceOgcFilters.filter((f) => f.active === true);
339
+ }
340
+ get allowedOperators() {
341
+ return new OgcFilterWriter().computeAllowedOperators(this.fields$.value, this.currentFilter.propertyName, this.datasource.options.ogcFilters.allowedOperatorsType);
342
+ }
343
+ ngOnInit() {
344
+ if (this.datasource.options.sourceFields) {
345
+ const sFields = this.datasource.options.sourceFields.filter((sf) => sf.excludeFromOgcFilters === undefined || !sf.excludeFromOgcFilters);
346
+ sFields.map((sfs) => {
347
+ if (sfs.values) {
348
+ sfs.values.sort();
349
+ }
350
+ });
351
+ this.fields$.next(sFields);
352
+ }
353
+ this.updateFieldsList();
354
+ this.selectedField$.next(this.fields$.value.find((f) => f.name === this.currentFilter.propertyName));
355
+ this.updateValuesList();
356
+ this.selectedField$.subscribe((f) => {
357
+ this.ogcFilterOperators$.next(this.allowedOperators);
358
+ if (Object.keys(this.allowedOperators).indexOf(this.currentFilter.operator) === -1) {
359
+ this.currentFilter.operator = Object.keys(this.allowedOperators)[0];
360
+ this.currentFilter.operator = Object.keys(this.allowedOperators)[0];
361
+ }
362
+ this.updateValuesList();
363
+ });
364
+ this.currentFilterIsSpatial();
365
+ }
366
+ updateFieldsList(value) {
367
+ this.filteredFields$ =
368
+ value && value.length > 0 ? of(this._filterFields(value)) : this.fields$;
369
+ if (this.fields$.value.find((f) => f.name === value)) {
370
+ this.changeField(value);
371
+ }
372
+ }
373
+ updateValuesList(value, pos) {
374
+ this.filteredValues$ =
375
+ value && value.length > 0
376
+ ? of(this._filterValues(value))
377
+ : this.selectedField$.value
378
+ ? of(this.selectedField$.value.values)
379
+ : of([]);
380
+ if (value && value.length >= 1) {
381
+ this.changeProperty(value, pos);
382
+ }
383
+ }
384
+ _filterFields(value) {
385
+ const keywordRegex = new RegExp(value.normalize('NFD').replace(/[\u0300-\u036f]/g, ''), 'gi');
386
+ return this.fields$.value.filter((val) => keywordRegex.test(val.alias.normalize('NFD').replace(/[\u0300-\u036f]/g, '')));
387
+ }
388
+ _filterValues(value) {
389
+ const keywordRegex = new RegExp(value
390
+ .toString()
391
+ .normalize('NFD')
392
+ .replace(/[\u0300-\u036f]/g, ''), 'gi');
393
+ return this.selectedField$.value.values.filter((val) => val && keywordRegex.test(val
394
+ .toString()
395
+ .normalize('NFD')
396
+ .replace(/[\u0300-\u036f]/g, '')));
397
+ }
398
+ clearSelectedField() {
399
+ this.currentFilter.propertyName = '';
400
+ this.selectedField$.next(undefined);
401
+ this.clearProperty();
402
+ }
403
+ isClearable(pos) {
404
+ const detectedProperty = this.detectProperty(pos);
405
+ if (detectedProperty) {
406
+ return this.currentFilter[detectedProperty];
407
+ }
408
+ }
409
+ clearProperty(pos) {
410
+ // this.autoCompleteInputValues.closePanel();
411
+ const detectedProperty = this.detectProperty(pos);
412
+ if (detectedProperty) {
413
+ return (this.currentFilter[detectedProperty] = '');
414
+ }
415
+ }
416
+ toggleFilterState(event) {
417
+ this.datasource.options.ogcFilters.interfaceOgcFilters.find((f) => f.filterid === this.currentFilter.filterid).active = event.checked;
418
+ this.refreshFilters();
419
+ }
420
+ deleteFilter() {
421
+ const ogcFilters = this.datasource.options.ogcFilters;
422
+ ogcFilters.interfaceOgcFilters = ogcFilters.interfaceOgcFilters.filter((f) => f.filterid !== this.currentFilter.filterid);
423
+ this.refreshFilters();
424
+ }
425
+ changeLogical(logical) {
426
+ this.currentFilter.parentLogical = logical;
427
+ this.refreshFilters();
428
+ }
429
+ changeOperator(operator) {
430
+ this.currentFilter.operator = operator;
431
+ this.currentFilterIsSpatial();
432
+ if (this.currentFilterIsSpatial$.value &&
433
+ this.currentFilter.wkt_geometry.length === 0) {
434
+ this.changeSpatialSelector(this.currentFilter.igoSpatialSelector);
435
+ }
436
+ else {
437
+ this.refreshFilters();
438
+ }
439
+ }
440
+ changeField(field) {
441
+ this.currentFilter.propertyName = field;
442
+ this.selectedField$.next(this.fields$.value.find((f) => f.name === this.currentFilter.propertyName));
443
+ this.refreshFilters();
444
+ }
445
+ // Issue with mapserver 7.2 and Postgis layers. Fixed in 7.4
446
+ // Due to this issue, the checkbox is hide.
447
+ changeCaseSensitive(matchCase) {
448
+ this.currentFilter.matchCase = matchCase.checked;
449
+ this.refreshFilters();
450
+ }
451
+ changeProperty(value, pos, refreshFilter = true) {
452
+ const detectedProperty = this.detectProperty(pos);
453
+ if (detectedProperty) {
454
+ this.datasource.options.ogcFilters.interfaceOgcFilters.find((f) => f.filterid === this.currentFilter.filterid)[detectedProperty] = value;
455
+ if (refreshFilter) {
456
+ this.refreshFilters();
457
+ }
458
+ }
459
+ }
460
+ changeNumericProperty(value, pos) {
461
+ this.changeProperty(parseFloat(value), pos);
462
+ }
463
+ changeSpatialSelector(value) {
464
+ this.currentFilter.igoSpatialSelector = value;
465
+ if (value === 'fixedExtent') {
466
+ this.changeMapExtentGeometry(false);
467
+ }
468
+ this.currentFilterIsSpatial();
469
+ this.refreshFilters();
470
+ }
471
+ changeSNRC(value) {
472
+ this.snrc = value;
473
+ this.changeSNRCGeometry();
474
+ }
475
+ changeSNRCGeometry() {
476
+ const interfaceOgcFilter = this.datasource.options.ogcFilters.interfaceOgcFilters.find((f) => f.filterid === this.currentFilter.filterid);
477
+ if (!interfaceOgcFilter) {
478
+ return;
479
+ }
480
+ if (this.snrc && this.currentFilter.igoSpatialSelector === 'snrc') {
481
+ this.currentFilter.wkt_geometry = this.wktService.snrcToWkt(this.snrc, this.map.projection).wktPoly;
482
+ }
483
+ this.refreshFilters();
484
+ }
485
+ changeMapExtentGeometry(refresh = true) {
486
+ const interfaceOgcFilter = this.datasource.options.ogcFilters.interfaceOgcFilters.find((f) => f.filterid === this.currentFilter.filterid);
487
+ if (!interfaceOgcFilter) {
488
+ return;
489
+ }
490
+ if (this.currentFilter.igoSpatialSelector === 'fixedExtent') {
491
+ this.currentFilter.wkt_geometry = this.wktService.extentToWkt(this.map.projection, this.map.viewController.getExtent(), this.map.projection).wktPoly;
492
+ }
493
+ if (refresh) {
494
+ this.refreshFilters();
495
+ }
496
+ }
497
+ detectProperty(pos) {
498
+ switch (this.currentFilter.operator) {
499
+ case OgcFilterOperator.PropertyIsNotEqualTo:
500
+ case OgcFilterOperator.PropertyIsEqualTo:
501
+ case OgcFilterOperator.PropertyIsGreaterThan:
502
+ case OgcFilterOperator.PropertyIsGreaterThanOrEqualTo:
503
+ case OgcFilterOperator.PropertyIsLessThan:
504
+ case OgcFilterOperator.PropertyIsLessThanOrEqualTo:
505
+ return 'expression';
506
+ case OgcFilterOperator.PropertyIsLike:
507
+ return 'pattern';
508
+ case OgcFilterOperator.PropertyIsBetween:
509
+ return pos && pos === 1
510
+ ? 'lowerBoundary'
511
+ : pos && pos === 2
512
+ ? 'upperBoundary'
513
+ : undefined;
514
+ case OgcFilterOperator.During:
515
+ return pos && pos === 1
516
+ ? 'begin'
517
+ : pos && pos === 2
518
+ ? 'end'
519
+ : undefined;
520
+ default:
521
+ return;
522
+ }
523
+ }
524
+ currentFilterIsSpatial() {
525
+ let isSpatial = false;
526
+ if (this.currentFilter) {
527
+ isSpatial =
528
+ [
529
+ OgcFilterOperator.Contains,
530
+ OgcFilterOperator.Intersects,
531
+ OgcFilterOperator.Within
532
+ ].indexOf(this.currentFilter.operator) !== -1;
533
+ }
534
+ this.currentFilterIsSpatial$.next(isSpatial);
535
+ }
536
+ isTemporalOperator() {
537
+ return (this.currentFilter.operator.toLowerCase() ===
538
+ this.ogcFilterOperator.During.toLowerCase());
539
+ }
540
+ }
541
+ OgcFilterFormComponent.ɵfac = function OgcFilterFormComponent_Factory(t) { return new (t || OgcFilterFormComponent)(i0.ɵɵdirectiveInject(i1.WktService)); };
542
+ OgcFilterFormComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: OgcFilterFormComponent, selectors: [["igo-ogc-filter-form"]], inputs: { refreshFilters: "refreshFilters", datasource: "datasource", map: "map", currentFilter: "currentFilter", floatLabel: "floatLabel" }, decls: 42, vars: 76, consts: [["tooltip-position", "below", "matTooltipShowDelay", "500", 3, "matTooltip", "checked", "click", "change"], [3, "ngClass"], ["tooltip-position", "above", "matTooltipShowDelay", "500", 3, "disabled", "value", "matTooltip", "selectionChange"], ["tooltip-position", "above", "matTooltipShowDelay", "500", 3, "value", "matTooltip"], ["class", "field", 3, "floatLabel", "mouseenter", "mouseleave", 4, "ngIf"], [3, "ngClass", "floatLabel"], ["tooltip-position", "below", "matTooltipShowDelay", "500", 3, "matTooltip", "disabled", "value", "selectionChange"], ["tooltip-position", "above", "matTooltipShowDelay", "500", 3, "value", "matTooltip", 4, "ngFor", "ngForOf"], ["class", "spatialSelector", 4, "ngIf"], ["class", "singleInput", 3, "floatLabel", "mouseenter", "mouseleave", 4, "ngIf"], [1, "igo-layer-button-group"], ["mat-icon-button", "", "collapsibleButton", "", "tooltip-position", "below", "matTooltipShowDelay", "500", "color", "warn", 3, "matTooltip", "click"], ["svgIcon", "delete"], ["class", "snrc", 3, "floatLabel", "mouseenter", "mouseleave", 4, "ngIf"], [4, "ngIf"], ["class", "dualInput", 3, "floatLabel", "mouseenter", "mouseleave", 4, "ngIf"], [3, "datasource", "currentFilter", "datasourceChange", "currentFilterChange", "changeProperty", 4, "ngIf"], [1, "field", 3, "floatLabel", "mouseenter", "mouseleave"], ["matInput", "", "tooltip-position", "above", "matTooltipShowDelay", "500", 3, "placeholder", "disabled", "matAutocomplete", "value", "matTooltip", "input"], [3, "optionSelected"], ["autoCompleteField", "matAutocomplete"], ["matTooltipShowDelay", "500", 3, "value", "id", "matTooltip", 4, "ngFor", "ngForOf"], ["mat-button", "", "matSuffix", "", "mat-icon-button", "", "aria-label", "Clear", 3, "disabled", "click", 4, "ngIf"], ["matTooltipShowDelay", "500", 3, "value", "id", "matTooltip"], ["mat-button", "", "matSuffix", "", "mat-icon-button", "", "aria-label", "Clear", 3, "disabled", "click"], ["svgIcon", "close"], [1, "spatialSelector"], [3, "disabled", "value", "selectionChange"], [3, "value", 4, "ngFor", "ngForOf"], [3, "value"], [1, "singleInput", 3, "floatLabel", "mouseenter", "mouseleave"], ["autoCompleteValues", "matAutocomplete"], ["matTooltipShowDelay", "500", 3, "value", "matTooltip", 4, "ngFor", "ngForOf"], ["matTooltipShowDelay", "500", 3, "value", "matTooltip"], [1, "snrc", 3, "floatLabel", "mouseenter", "mouseleave"], ["matInput", "", "tooltip-position", "above", "matTooltipShowDelay", "500", 3, "placeholder", "value", "matTooltip", "input"], ["mat-button", "", "matSuffix", "", "mat-icon-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "disabled", "matTooltip", "click", 4, "ngIf"], ["mat-button", "", "matSuffix", "", "mat-icon-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "disabled", "matTooltip", "click"], ["svgIcon", "arrow-expand-all"], [1, "dualInput", 3, "floatLabel", "mouseenter", "mouseleave"], ["matInput", "", "type", "number", 3, "placeholder", "disabled", "matAutocomplete", "value", "input"], ["autoDualValueOperator1", "matAutocomplete"], ["autoDualValueOperator2", "matAutocomplete"], [3, "datasource", "currentFilter", "datasourceChange", "currentFilterChange", "changeProperty"]], template: function OgcFilterFormComponent_Template(rf, ctx) { if (rf & 1) {
543
+ i0.ɵɵelementStart(0, "mat-checkbox", 0);
544
+ i0.ɵɵlistener("click", function OgcFilterFormComponent_Template_mat_checkbox_click_0_listener($event) { return $event.stopPropagation(); })("change", function OgcFilterFormComponent_Template_mat_checkbox_change_0_listener($event) { return ctx.toggleFilterState($event); });
545
+ i0.ɵɵpipe(1, "translate");
546
+ i0.ɵɵelementEnd();
547
+ i0.ɵɵelementStart(2, "mat-form-field", 1)(3, "mat-select", 2);
548
+ i0.ɵɵlistener("selectionChange", function OgcFilterFormComponent_Template_mat_select_selectionChange_3_listener($event) { return ctx.changeLogical($event.value); });
549
+ i0.ɵɵpipe(4, "translate");
550
+ i0.ɵɵelementStart(5, "mat-option", 3);
551
+ i0.ɵɵpipe(6, "translate");
552
+ i0.ɵɵtext(7);
553
+ i0.ɵɵpipe(8, "translate");
554
+ i0.ɵɵelementEnd();
555
+ i0.ɵɵelementStart(9, "mat-option", 3);
556
+ i0.ɵɵpipe(10, "translate");
557
+ i0.ɵɵtext(11);
558
+ i0.ɵɵpipe(12, "translate");
559
+ i0.ɵɵelementEnd()()();
560
+ i0.ɵɵtemplate(13, OgcFilterFormComponent_mat_form_field_13_Template, 13, 22, "mat-form-field", 4);
561
+ i0.ɵɵpipe(14, "async");
562
+ i0.ɵɵpipe(15, "async");
563
+ i0.ɵɵpipe(16, "async");
564
+ i0.ɵɵpipe(17, "async");
565
+ i0.ɵɵelementStart(18, "mat-form-field", 5);
566
+ i0.ɵɵpipe(19, "async");
567
+ i0.ɵɵpipe(20, "async");
568
+ i0.ɵɵelementStart(21, "mat-select", 6);
569
+ i0.ɵɵlistener("selectionChange", function OgcFilterFormComponent_Template_mat_select_selectionChange_21_listener($event) { return ctx.changeOperator($event.value); });
570
+ i0.ɵɵpipe(22, "translate");
571
+ i0.ɵɵpipe(23, "translate");
572
+ i0.ɵɵtemplate(24, OgcFilterFormComponent_mat_option_24_Template, 4, 7, "mat-option", 7);
573
+ i0.ɵɵpipe(25, "keyvalue");
574
+ i0.ɵɵpipe(26, "async");
575
+ i0.ɵɵelementEnd()();
576
+ i0.ɵɵtemplate(27, OgcFilterFormComponent_mat_form_field_27_Template, 3, 3, "mat-form-field", 8);
577
+ i0.ɵɵpipe(28, "async");
578
+ i0.ɵɵtemplate(29, OgcFilterFormComponent_mat_form_field_29_Template, 8, 12, "mat-form-field", 9);
579
+ i0.ɵɵelementStart(30, "div", 10)(31, "button", 11);
580
+ i0.ɵɵlistener("click", function OgcFilterFormComponent_Template_button_click_31_listener() { return ctx.deleteFilter(); });
581
+ i0.ɵɵpipe(32, "translate");
582
+ i0.ɵɵelement(33, "mat-icon", 12);
583
+ i0.ɵɵelementEnd()();
584
+ i0.ɵɵtemplate(34, OgcFilterFormComponent_mat_form_field_34_Template, 4, 7, "mat-form-field", 13);
585
+ i0.ɵɵpipe(35, "async");
586
+ i0.ɵɵtemplate(36, OgcFilterFormComponent_ng_container_36_Template, 2, 1, "ng-container", 14);
587
+ i0.ɵɵpipe(37, "async");
588
+ i0.ɵɵelement(38, "br");
589
+ i0.ɵɵtemplate(39, OgcFilterFormComponent_mat_form_field_39_Template, 8, 11, "mat-form-field", 15);
590
+ i0.ɵɵtemplate(40, OgcFilterFormComponent_mat_form_field_40_Template, 8, 11, "mat-form-field", 15);
591
+ i0.ɵɵtemplate(41, OgcFilterFormComponent_igo_ogc_filter_time_41_Template, 1, 2, "igo-ogc-filter-time", 16);
592
+ } if (rf & 2) {
593
+ i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(1, 27, "igo.geo.filter.toggleFilterState"))("checked", ctx.currentFilter.active);
594
+ i0.ɵɵadvance(2);
595
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(67, _c0, ctx.activeFilters.indexOf(ctx.currentFilter) !== 0 && ctx.currentFilter.active === true, ctx.activeFilters.indexOf(ctx.currentFilter) === 0 || ctx.currentFilter.active !== true));
596
+ i0.ɵɵadvance(1);
597
+ i0.ɵɵproperty("disabled", !ctx.currentFilter.active)("value", ctx.currentFilter.parentLogical)("matTooltip", ctx.currentFilter.parentLogical ? i0.ɵɵpipeBind1(4, 29, "igo.geo.operators.tooltip." + ctx.currentFilter.parentLogical) : "");
598
+ i0.ɵɵadvance(2);
599
+ i0.ɵɵproperty("value", ctx.ogcFilterOperator.And)("matTooltip", i0.ɵɵpipeBind1(6, 31, "igo.geo.operators.tooltip.And"));
600
+ i0.ɵɵadvance(2);
601
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(8, 33, "igo.geo.operators.And"), " ");
602
+ i0.ɵɵadvance(2);
603
+ i0.ɵɵproperty("value", ctx.ogcFilterOperator.Or)("matTooltip", i0.ɵɵpipeBind1(10, 35, "igo.geo.operators.tooltip.Or"));
604
+ i0.ɵɵadvance(2);
605
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(12, 37, "igo.geo.operators.Or"), " ");
606
+ i0.ɵɵadvance(2);
607
+ i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(14, 39, ctx.currentFilterIsSpatial$) === false && i0.ɵɵpipeBind1(15, 41, ctx.fields$) && i0.ɵɵpipeBind1(16, 43, ctx.fields$).length > 0 && i0.ɵɵpipeBind1(17, 45, ctx.fields$)[0].name !== "");
608
+ i0.ɵɵadvance(5);
609
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(70, _c1, i0.ɵɵpipeBind1(19, 47, ctx.currentFilterIsSpatial$) === false, i0.ɵɵpipeBind1(20, 49, ctx.currentFilterIsSpatial$)))("floatLabel", ctx.floatLabel);
610
+ i0.ɵɵadvance(3);
611
+ i0.ɵɵproperty("matTooltip", ctx.currentFilter.operator ? i0.ɵɵpipeBind1(22, 51, "igo.geo.operators.tooltip." + ctx.currentFilter.operator) : i0.ɵɵpipeBind1(23, 53, "igo.geo.filter.selectOperator"))("disabled", !ctx.currentFilter.active)("value", ctx.currentFilter.operator);
612
+ i0.ɵɵadvance(3);
613
+ i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(25, 55, i0.ɵɵpipeBind1(26, 57, ctx.ogcFilterOperators$)));
614
+ i0.ɵɵadvance(3);
615
+ i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(28, 59, ctx.currentFilterIsSpatial$));
616
+ i0.ɵɵadvance(2);
617
+ i0.ɵɵproperty("ngIf", i0.ɵɵpureFunction0(73, _c2).indexOf(ctx.detectProperty()) !== -1);
618
+ i0.ɵɵadvance(2);
619
+ i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(32, 61, "igo.geo.filter.removeFilter"));
620
+ i0.ɵɵadvance(3);
621
+ i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(35, 63, ctx.currentFilterIsSpatial$) && ctx.currentFilter.igoSpatialSelector === "snrc");
622
+ i0.ɵɵadvance(2);
623
+ i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(37, 65, ctx.currentFilterIsSpatial$) && ctx.currentFilter.igoSpatialSelector === "fixedExtent");
624
+ i0.ɵɵadvance(3);
625
+ i0.ɵɵproperty("ngIf", !ctx.isTemporalOperator() && i0.ɵɵpureFunction0(74, _c3).indexOf(ctx.detectProperty(1)) !== -1);
626
+ i0.ɵɵadvance(1);
627
+ i0.ɵɵproperty("ngIf", !ctx.isTemporalOperator() && i0.ɵɵpureFunction0(75, _c4).indexOf(ctx.detectProperty(2)) !== -1);
628
+ i0.ɵɵadvance(1);
629
+ i0.ɵɵproperty("ngIf", ctx.isTemporalOperator());
630
+ } }, styles: ["[_nghost-%COMP%]{width:100%;padding:5px 10px} .mat-form-field .mat-icon svg{width:1em;height:1em;color:#d3d3d3}.mat-form-field[_ngcontent-%COMP%]{width:100%}.mat-select-arrow[_ngcontent-%COMP%]{visibility:hidden}.mat-slide-toggle[_ngcontent-%COMP%]{margin-top:10px}.logical[_ngcontent-%COMP%]{flex-flow:column nowrap;width:10%;max-width:45px;margin-left:5px}.logicalHidden[_ngcontent-%COMP%]{flex-flow:column nowrap;width:10%;visibility:hidden;max-width:45px;margin-left:5px} .logical .mat-select-arrow{visibility:hidden} .logicalHidden .mat-select-arrow{visibility:hidden}.field[_ngcontent-%COMP%]{width:20%} .field .mat-select-arrow{visibility:hidden}.operator[_ngcontent-%COMP%]{width:12%;margin-left:10px;text-align:center} .operator .mat-select-arrow{visibility:hidden}.spatialSelector[_ngcontent-%COMP%]{width:15%;margin-left:5px} .spatialSelector .mat-select-arrow{visibility:hidden}.singleInput[_ngcontent-%COMP%]{width:30%;margin-left:5px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.singleInput[_ngcontent-%COMP%]{width:27%}}.snrc[_ngcontent-%COMP%]{width:20%;margin-left:5px} .singleInput .mat-select-arrow{visibility:hidden}.dualInput[_ngcontent-%COMP%]{width:20%;margin-left:5px} .dualInput .mat-select-arrow{visibility:hidden}.igo-layer-button-group[_ngcontent-%COMP%]{display:flex;float:right;padding-top:5px}.container[_ngcontent-%COMP%]{display:flex}"] });
631
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(OgcFilterFormComponent, [{
632
+ type: Component,
633
+ args: [{ selector: 'igo-ogc-filter-form', template: "<mat-checkbox\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.filter.toggleFilterState' | translate\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleFilterState($event)\"\n [checked]=\"currentFilter.active\">\n</mat-checkbox>\n\n<mat-form-field\n [ngClass]=\"{'logical': activeFilters.indexOf(currentFilter) !== 0 && currentFilter.active===true, 'logicalHidden': activeFilters.indexOf(currentFilter) === 0 || currentFilter.active!==true}\">\n <mat-select\n [disabled]=\"!currentFilter.active\"\n [value]=\"currentFilter.parentLogical\"\n tooltip-position=\"above\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"currentFilter.parentLogical ? (('igo.geo.operators.tooltip.'+ currentFilter.parentLogical) | translate) : ''\"\n (selectionChange)=\"changeLogical($event.value)\">\n <mat-option\n [value]=ogcFilterOperator.And\n tooltip-position=\"above\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.operators.tooltip.And' | translate\">\n {{'igo.geo.operators.And' | translate}}\n </mat-option>\n <mat-option\n [value]=ogcFilterOperator.Or\n tooltip-position=\"above\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.operators.tooltip.Or' | translate\">\n {{'igo.geo.operators.Or' | translate}}\n </mat-option>\n </mat-select>\n</mat-form-field>\n\n<mat-form-field\n class=\"field\"\n *ngIf=\"(currentFilterIsSpatial$ | async)===false && (fields$ | async) && (fields$| async).length > 0 && (fields$| async)[0].name !== ''\"\n (mouseenter)=\"inputClearable = 'selectField'\"\n (mouseleave)=\"inputClearable = undefined\"\n [floatLabel]=\"floatLabel\">\n <input\n matInput\n [placeholder]=\"'igo.geo.sourceFields.selectField' | translate\"\n [disabled]=\"!currentFilter.active\"\n [matAutocomplete]=\"autoCompleteField\"\n [value]=\"(selectedField$ | async) ? (selectedField$ | async).alias : ''\"\n tooltip-position=\"above\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"(selectedField$ | async) ? (selectedField$ | async).alias : ('igo.geo.sourceFields.selectField' | translate)\"\n (input)=\"updateFieldsList($event.target.value)\">\n <mat-autocomplete #autoCompleteField=\"matAutocomplete\"\n (optionSelected)='changeField($event.option.id)'>\n <mat-option\n *ngFor=\"let field of filteredFields$ | async\"\n matTooltipShowDelay=\"500\"\n [value]=\"field.alias\"\n [id]=\"field.name\"\n [matTooltip]=\"field.alias\">\n {{field.alias}}\n </mat-option>\n </mat-autocomplete>\n <button mat-button\n *ngIf=\"currentFilter.propertyName && inputClearable === 'selectField' && currentFilter.active\"\n matSuffix\n mat-icon-button\n aria-label=\"Clear\"\n [disabled]=\"!currentFilter.active\"\n (click)=\"clearSelectedField()\">\n <mat-icon svgIcon=\"close\"></mat-icon>\n </button>\n</mat-form-field>\n\n\n<mat-form-field\n [ngClass]=\"{'operator': (currentFilterIsSpatial$ | async)===false , 'dualInput': (currentFilterIsSpatial$ | async)}\"\n [floatLabel]=\"floatLabel\">\n <mat-select\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"currentFilter.operator ? (('igo.geo.operators.tooltip.'+ currentFilter.operator) | translate) : ('igo.geo.filter.selectOperator' | translate)\"\n [disabled]=\"!currentFilter.active\"\n [value]=\"currentFilter.operator\"\n (selectionChange)=\"changeOperator($event.value)\">\n <mat-option\n *ngFor=\"let operator of (ogcFilterOperators$ | async) | keyvalue\"\n tooltip-position=\"above\"\n matTooltipShowDelay=\"500\"\n [value]=\"operator.key\"\n [matTooltip]=\"('igo.geo.operators.tooltip.'+ operator.key) | translate\">\n {{('igo.geo.operators.'+ operator.key) | translate}}\n </mat-option>\n </mat-select>\n</mat-form-field>\n\n<mat-form-field\nclass=\"spatialSelector\"\n*ngIf=\"currentFilterIsSpatial$ | async\">\n <mat-select\n [disabled]=\"!currentFilter.active\"\n [value]=\"currentFilter.igoSpatialSelector\"\n (selectionChange)=\"changeSpatialSelector($event.value)\">\n <mat-option\n *ngFor=\"let igoSpatialSelector of igoSpatialSelectors\"\n [value]=\"igoSpatialSelector.type\">\n {{('igo.geo.spatialSelector.'+ igoSpatialSelector.type) | translate}}\n </mat-option>\n </mat-select>\n</mat-form-field>\n\n<mat-form-field\nclass=\"singleInput\"\n*ngIf=\"['expression','pattern'].indexOf(detectProperty()) !== -1\"\n(mouseenter)=\"inputClearable = 'selectProperty'\"\n(mouseleave)=\"inputClearable = undefined\"\n[floatLabel]=\"floatLabel\">\n <input\n matInput\n [placeholder]=\"'igo.geo.filter.placeholder' | translate\"\n [disabled]=\"!currentFilter.active\"\n [matAutocomplete]=\"autoCompleteValues\"\n [value]=\"detectProperty() === 'expression' ? currentFilter.expression : currentFilter.pattern\"\n tooltip-position=\"above\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"detectProperty() === 'expression' ? currentFilter.expression || '' : currentFilter.pattern || ''\"\n (input)=\"updateValuesList($event.target.value)\">\n <mat-autocomplete #autoCompleteValues=\"matAutocomplete\"\n (optionSelected)=\"changeProperty($event.option.value)\">\n <mat-option\n *ngFor=\"let value of filteredValues$ | async\"\n matTooltipShowDelay=\"500\"\n [value]=\"value\"\n [matTooltip]=\"value\">\n {{value}}\n </mat-option>\n </mat-autocomplete>\n <button mat-button\n *ngIf=\"isClearable() && inputClearable === 'selectProperty' && currentFilter.active\"\n matSuffix\n mat-icon-button\n aria-label=\"Clear\"\n [disabled]=\"!currentFilter.active\"\n (click)=\"clearProperty()\">\n <mat-icon svgIcon=\"close\"></mat-icon>\n </button>\n</mat-form-field>\n\n<div class=\"igo-layer-button-group\">\n <button\n mat-icon-button\n collapsibleButton\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.filter.removeFilter' | translate\"\n color=\"warn\"\n (click)=\"deleteFilter()\">\n <mat-icon svgIcon=\"delete\"></mat-icon>\n </button>\n</div>\n\n<mat-form-field\nclass=\"snrc\"\n*ngIf=\"(currentFilterIsSpatial$ | async) && currentFilter.igoSpatialSelector === 'snrc'\"\n(mouseenter)=\"inputClearable = 'selectSNRC'\"\n(mouseleave)=\"inputClearable = undefined\"\n[floatLabel]=\"floatLabel\">\n <input\n matInput\n [placeholder]=\"'igo.geo.filter.placeholderSnrc' | translate\"\n [value]=\"currentFilter.igoSNRC\"\n tooltip-position=\"above\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"currentFilter.igoSNRC ? currentFilter.igoSNRC : ''\"\n (input)=\"changeSNRC($event.target.value)\">\n <button\n mat-button\n *ngIf=\"currentFilter.igoSNRC\"\n matSuffix\n mat-icon-button\n aria-label=\"Clear\"\n [disabled]=\"!currentFilter.active && inputClearable === 'selectSNRC' && currentFilter.active\"\n (click)=\"currentFilter.igoSNRC=''\">\n <mat-icon svgIcon=\"close\"></mat-icon>\n </button>\n </mat-form-field>\n\n <ng-container *ngIf=\"(currentFilterIsSpatial$ | async) && currentFilter.igoSpatialSelector === 'fixedExtent'\">\n <button\n mat-button\n [disabled]=\"!currentFilter.active\"\n *ngIf=\"currentFilter.igoSpatialSelector === 'fixedExtent'\"\n matSuffix\n mat-icon-button\n [disabled]=\"!currentFilter.active\"\n (click)=\"changeMapExtentGeometry()\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.spatialSelector.btnSetExtent' | translate\">\n <mat-icon svgIcon=\"arrow-expand-all\"></mat-icon>\n </button>\n</ng-container>\n\n<br/>\n\n<mat-form-field\nclass=\"dualInput\"\n*ngIf=\"!isTemporalOperator() && ['lowerBoundary','begin'].indexOf(detectProperty(1)) !== -1\"\n(mouseenter)=\"inputClearable = 'selectProperty1'\"\n(mouseleave)=\"inputClearable = undefined\"\n[floatLabel]=\"floatLabel\">\n <input\n matInput\n [placeholder]=\"'igo.geo.filter.placeholder' | translate\"\n [disabled]=\"!currentFilter.active\"\n [matAutocomplete]=\"autoDualValueOperator1\"\n type=\"number\"\n [value]=\"detectProperty(1) === 'lowerBoundary' ? currentFilter.lowerBoundary : currentFilter.begin\"\n (input)=\"updateValuesList($event.target.value,1)\">\n <mat-autocomplete #autoDualValueOperator1=\"matAutocomplete\"\n (optionSelected)=\"changeNumericProperty($event.option.value,1)\">\n <mat-option\n *ngFor=\"let value of filteredValues$ | async\"\n matTooltipShowDelay=\"500\"\n [value]=\"value\"\n [matTooltip]=\"value\">\n {{value}}\n </mat-option>\n </mat-autocomplete>\n <button mat-button\n *ngIf=\"isClearable(1) && inputClearable === 'selectProperty1' && currentFilter.active\"\n matSuffix\n mat-icon-button\n aria-label=\"Clear\"\n [disabled]=\"!currentFilter.active\"\n (click)=\"clearProperty(1)\">\n <mat-icon svgIcon=\"close\"></mat-icon>\n </button>\n</mat-form-field>\n\n<mat-form-field\n class=\"dualInput\"\n *ngIf=\"!isTemporalOperator() && ['upperBoundary','end'].indexOf(detectProperty(2)) !== -1\"\n (mouseenter)=\"inputClearable = 'selectProperty2'\"\n (mouseleave)=\"inputClearable = undefined\"\n [floatLabel]=\"floatLabel\">\n <input\n matInput\n [placeholder]=\"'igo.geo.filter.placeholder' | translate\"\n [disabled]=\"!currentFilter.active\"\n [matAutocomplete]=\"autoDualValueOperator2\"\n type=\"number\"\n [value]=\"detectProperty(2) === 'upperBoundary' ? currentFilter.upperBoundary : currentFilter.end\"\n (input)=\"updateValuesList($event.target.value,2)\">\n <mat-autocomplete #autoDualValueOperator2=\"matAutocomplete\"\n (optionSelected)=\"changeNumericProperty($event.option.value,2)\">\n <mat-option\n *ngFor=\"let value of filteredValues$ | async\"\n matTooltipShowDelay=\"500\"\n [value]=\"value\"\n [matTooltip]=\"value\">\n {{value}}\n </mat-option>\n </mat-autocomplete>\n <button mat-button\n *ngIf=\"isClearable(2) && inputClearable === 'selectProperty2' && currentFilter.active\"\n matSuffix\n mat-icon-button\n aria-label=\"Clear\"\n [disabled]=\"!currentFilter.active\"\n (click)=\"clearProperty(2)\">\n <mat-icon svgIcon=\"close\"></mat-icon>\n </button>\n</mat-form-field>\n\n<igo-ogc-filter-time *ngIf=\"isTemporalOperator()\"\n [(datasource)]=\"datasource\"\n [(currentFilter)]=\"currentFilter\"\n (changeProperty)=\"changeProperty($event.value, $event.pos)\">\n</igo-ogc-filter-time>\n\n<!--\nTODO C'EST PERTINENT je crois\n<mat-form-field class=\"field\" *ngIf=\"!(currentFilterIsSpatial$ | async) && (fields$| async) && (fields$| async).length === 1 && (fields$| async)[0].name === ''\">\n<input [disabled]=\"!currentFilter.active\" matInput #fieldPerUser (keyup)=\"changeProperty(currentFilter,'propertyName',fieldPerUser.value)\"\n (blur)=\"changeProperty(currentFilter,'propertyName',fieldPerUser.value)\" [(ngModel)]=\"currentFilter.propertyName\">\n<button mat-button *ngIf=\"currentFilter.propertyName\" matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"currentFilter.propertyName=''\">\n <mat-icon svgIcon=\"close\"></mat-icon>\n</button>\n</mat-form-field>\n\n\n\n<mat-checkbox labelPosition='before' (change)=\"changeCaseSensitive($event)\" [(ngModel)]=\"currentFilter.matchCase\">\n {{('igo.geo.operators.caseSensitive') | translate}}\n</mat-checkbox>\n\n</mat-list-item> -->\n", styles: [":host{width:100%;padding:5px 10px}::ng-deep .mat-form-field .mat-icon svg{width:1em;height:1em;color:#d3d3d3}.mat-form-field{width:100%}.mat-select-arrow{visibility:hidden}.mat-slide-toggle{margin-top:10px}.logical{flex-flow:column nowrap;width:10%;max-width:45px;margin-left:5px}.logicalHidden{flex-flow:column nowrap;width:10%;visibility:hidden;max-width:45px;margin-left:5px}::ng-deep .logical .mat-select-arrow{visibility:hidden}::ng-deep .logicalHidden .mat-select-arrow{visibility:hidden}.field{width:20%}::ng-deep .field .mat-select-arrow{visibility:hidden}.operator{width:12%;margin-left:10px;text-align:center}::ng-deep .operator .mat-select-arrow{visibility:hidden}.spatialSelector{width:15%;margin-left:5px}::ng-deep .spatialSelector .mat-select-arrow{visibility:hidden}.singleInput{width:30%;margin-left:5px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){.singleInput{width:27%}}.snrc{width:20%;margin-left:5px}::ng-deep .singleInput .mat-select-arrow{visibility:hidden}.dualInput{width:20%;margin-left:5px}::ng-deep .dualInput .mat-select-arrow{visibility:hidden}.igo-layer-button-group{display:flex;float:right;padding-top:5px}.container{display:flex}\n"] }]
634
+ }], function () { return [{ type: i1.WktService }]; }, { refreshFilters: [{
635
+ type: Input
636
+ }], datasource: [{
637
+ type: Input
638
+ }], map: [{
639
+ type: Input
640
+ }], currentFilter: [{
641
+ type: Input
642
+ }], floatLabel: [{
643
+ type: Input
644
+ }] }); })();
645
645
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2djLWZpbHRlci1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci9vZ2MtZmlsdGVyLWZvcm0vb2djLWZpbHRlci1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci9vZ2MtZmlsdGVyLWZvcm0vb2djLWZpbHRlci1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBRSxlQUFlLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBTXZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUlqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7OztJQ3lDcEUsc0NBSzZCO0lBQzNCLFlBQ0Y7SUFBQSxpQkFBYTs7O0lBSlgsdUNBQXFCLHNCQUFBLCtCQUFBO0lBR3JCLGVBQ0Y7SUFERSxnREFDRjs7OztJQUVGLGtDQU1pQztJQUEvQiw0TEFBUyxlQUFBLDRCQUFvQixDQUFBLElBQUM7SUFDMUIsK0JBQXFDO0lBQzNDLGlCQUFTOzs7SUFIUCx3REFBa0M7Ozs7SUFoQ3RDLDBDQUs0QjtJQUYxQiwyT0FBK0IsYUFBYSxLQUFDLDhOQUNkLFNBQVMsS0FESztJQUc3QyxpQ0FTZ0Q7SUFBaEQsc0xBQVMsZUFBQSw2Q0FBcUMsQ0FBQSxJQUFDOzs7Ozs7O0lBVC9DLGlCQVNnRDtJQUNoRCxnREFDaUQ7SUFBakQsbU5BQWtCLGVBQUEscUNBQTZCLENBQUEsSUFBQztJQUM5QywwR0FPYTs7SUFDZixpQkFBbUI7SUFDbkIsa0dBUVM7SUFDWCxpQkFBaUI7Ozs7SUEvQmYsOENBQXlCO0lBR3pCLGVBQThE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LEtBQUs7WUFFRyxVQUFVO2tCQUFsQixLQUFLO1lBRUcsR0FBRztrQkFBWCxLQUFLO1lBRUcsYUFBYTtrQkFBckIsS0FBSztZQXNCRyxVQUFVO2tCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGbG9hdExhYmVsVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICBPZ2NGaWx0ZXJhYmxlRGF0YVNvdXJjZSxcbiAgT2djRmlsdGVyc09wdGlvbnNcbn0gZnJvbSAnLi4vLi4vZmlsdGVyL3NoYXJlZC9vZ2MtZmlsdGVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBPZ2NGaWx0ZXJXcml0ZXIgfSBmcm9tICcuLi8uLi9maWx0ZXIvc2hhcmVkL29nYy1maWx0ZXInO1xuaW1wb3J0IHsgV2t0U2VydmljZSB9IGZyb20gJy4uLy4uL3drdC9zaGFyZWQvd2t0LnNlcnZpY2UnO1xuaW1wb3J0IHsgSWdvTWFwIH0gZnJvbSAnLi4vLi4vbWFwJztcbmltcG9ydCB7IFNvdXJjZUZpZWxkc09wdGlvbnNQYXJhbXMgfSBmcm9tICcuLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9kYXRhc291cmNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBPZ2NGaWx0ZXJPcGVyYXRvciB9IGZyb20gJy4uLy4uL2ZpbHRlci9zaGFyZWQvb2djLWZpbHRlci5lbnVtJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWdvLW9nYy1maWx0ZXItZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9vZ2MtZmlsdGVyLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vZ2MtZmlsdGVyLWZvcm0uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBPZ2NGaWx0ZXJGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgb2djRmlsdGVyT3BlcmF0b3IgPSBPZ2NGaWx0ZXJPcGVyYXRvcjtcbiAgZmlsdGVyZWRWYWx1ZXMkOiBPYnNlcnZhYmxlPHN0cmluZ1tdPjtcbiAgZmlsdGVyZWRGaWVsZHMkOiBPYnNlcnZhYmxlPFNvdXJjZUZpZWxkc09wdGlvbnNQYXJhbXNbXT47XG4gIHB1YmxpYyBhbGxPZ2NGaWx0ZXJPcGVyYXRvcnM7XG4gIHB1YmxpYyBvZ2NGaWx0ZXJPcGVyYXRvcnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDx7IFtrZXk6IHN0cmluZ106IGFueSB9PihcbiAgICB1bmRlZmluZWRcbiAgKTtcbiAgcHVibGljIGlnb1NwYXRpYWxTZWxlY3RvcnM7XG4gIHB1YmxpYyB2YWx1ZSA9ICcnO1xuICBwdWJsaWMgaW5wdXRPcGVyYXRvcjtcbiAgcHVibGljIHNlbGVjdGVkRmllbGQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTb3VyY2VGaWVsZHNPcHRpb25zUGFyYW1zPihcbiAgICB1bmRlZmluZWRcbiAgKTtcbiAgcHVibGljIGZpZWxkcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNvdXJjZUZpZWxkc09wdGlvbnNQYXJhbXNbXT4oW10pO1xuICBwdWJsaWMgY29sb3IgPSAncHJpbWFyeSc7XG4gIHB1YmxpYyBkaXNhYmxlZDtcbiAgcHVibGljIGN1cnJlbnRGaWx0ZXJJc1NwYXRpYWwkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHB1YmxpYyBkZWZhdWx0U3RlcE1pbGxpc2Vjb25kID0gNjAwMDtcbiAgcHVibGljIGlucHV0Q2xlYXJhYmxlOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgcmVmcmVzaEZpbHRlcnM6ICgpID0+IHZvaWQ7XG5cbiAgQElucHV0KCkgZGF0YXNvdXJjZTogT2djRmlsdGVyYWJsZURhdGFTb3VyY2U7XG5cbiAgQElucHV0KCkgbWFwOiBJZ29NYXA7XG5cbiAgQElucHV0KCkgY3VycmVudEZpbHRlcjogYW55O1xuXG4gIHNldCBzbnJjKHZhbHVlOiBhbnkpIHtcbiAgICBjb25zdCBjaGVja1NOUkM1MGsgPSAvXlxcZHsyfVthLWxdWzAsMV1bMC05XSQvZ2k7XG4gICAgY29uc3QgY2hlY2tTTlJDMjUwayA9IC9eXFxkezJ9W2EtcF0kL2dpO1xuICAgIGNvbnN0IGNoZWNrU05SQzFtID0gL15cXGR7Mn0kL2dpO1xuICAgIGlmIChcbiAgICAgIGNoZWNrU05SQzFtLnRlc3QodmFsdWUpIHx8XG4gICAgICBjaGVja1NOUkMyNTBrLnRlc3QodmFsdWUpIHx8XG4gICAgICBjaGVja1NOUkM1MGsudGVzdCh2YWx1ZSlcbiAgICApIHtcbiAgICAgIHRoaXMuX3NucmMgPSB2YWx1ZTtcbiAgICAgIHRoaXMuY3VycmVudEZpbHRlci5pZ29TTlJDID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHNucmMoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5fc25yYztcbiAgfVxuXG4gIHByaXZhdGUgX3NucmMgPSAnJztcblxuICBASW5wdXQoKSBmbG9hdExhYmVsOiBGbG9hdExhYmVsVHlwZSA9ICduZXZlcic7XG5cbiAgZ2V0IGFjdGl2ZUZpbHRlcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnMuaW50ZXJmYWNlT2djRmlsdGVycy5maWx0ZXIoXG4gICAgICAoZikgPT4gZi5hY3RpdmUgPT09IHRydWVcbiAgICApO1xuICB9XG5cbiAgZ2V0IGFsbG93ZWRPcGVyYXRvcnMoKSB7XG4gICAgcmV0dXJuIG5ldyBPZ2NGaWx0ZXJXcml0ZXIoKS5jb21wdXRlQWxsb3dlZE9wZXJhdG9ycyhcbiAgICAgIHRoaXMuZmllbGRzJC52YWx1ZSxcbiAgICAgIHRoaXMuY3VycmVudEZpbHRlci5wcm9wZXJ0eU5hbWUsXG4gICAgICB0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLmFsbG93ZWRPcGVyYXRvcnNUeXBlXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgd2t0U2VydmljZTogV2t0U2VydmljZSkge1xuICAgIC8vIFRPRE86IEZpbHRlciBwZXJtaXR0ZWQgb3BlcmF0b3IgYmFzZWQgb24gd2ZzY2FwYWJpbGl0aWVzXG4gICAgLy8gTmVlZCB0byB3b3JrIG9uIHJlZ2V4IG9uIFhNTCBjYXBhYmlsaXRpZXMgYmVjYXVzZVxuICAgIC8vIGNvbWFwYXJpc29uIG9wZXJhdG9yJ3MgbmFtZSB2YXJpZXMgYmV0d2VlbiBXRlMgc2VydmVycy4uLlxuICAgIC8vIEV4OiBJc051bGwgdnMgUHJvcGVydHlJc051bGwgdnMgSXNOaWwgLi4uXG4gICAgdGhpcy5hbGxPZ2NGaWx0ZXJPcGVyYXRvcnMgPSBuZXcgT2djRmlsdGVyV3JpdGVyKCkub3BlcmF0b3JzO1xuICAgIHRoaXMub2djRmlsdGVyT3BlcmF0b3JzJC5uZXh0KHRoaXMuYWxsT2djRmlsdGVyT3BlcmF0b3JzKTtcbiAgICB0aGlzLmlnb1NwYXRpYWxTZWxlY3RvcnMgPSBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdmaXhlZEV4dGVudCdcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdzbnJjJ1xuICAgICAgfVxuICAgIF07XG4gICAgLy8gVE9ETzogc2VsZWN0RmVhdHVyZSAmIGRyYXdGZWF0dXJlXG4gIH1cblxuICBuZ09uSW5pdCgpIHtcblxuICAgIGlmICggdGhpcy5kYXRhc291cmNlLm9wdGlvbnMuc291cmNlRmllbGRzKSB7XG4gICAgICBjb25zdCBzRmllbGRzID0gdGhpcy5kYXRhc291cmNlLm9wdGlvbnMuc291cmNlRmllbGRzLmZpbHRlcihcbiAgICAgICAgKHNmKSA9PlxuICAgICAgICAgIHNmLmV4Y2x1ZGVGcm9tT2djRmlsdGVycyA9PT0gdW5kZWZpbmVkIHx8ICFzZi5leGNsdWRlRnJvbU9nY0ZpbHRlcnNcbiAgICAgICk7XG4gICAgICBzRmllbGRzLm1hcCgoc2ZzKSA9PiB7XG4gICAgICAgIGlmIChzZnMudmFsdWVzKSB7XG4gICAgICAgICAgc2ZzLnZhbHVlcy5zb3J0KCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5maWVsZHMkLm5leHQoc0ZpZWxkcyk7XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVGaWVsZHNMaXN0KCk7XG4gICAgdGhpcy5zZWxlY3RlZEZpZWxkJC5uZXh0KFxuICAgICAgdGhpcy5maWVsZHMkLnZhbHVlLmZpbmQoKGYpID0+IGYubmFtZSA9PT0gdGhpcy5jdXJyZW50RmlsdGVyLnByb3BlcnR5TmFtZSlcbiAgICApO1xuICAgIHRoaXMudXBkYXRlVmFsdWVzTGlzdCgpO1xuICAgIHRoaXMuc2VsZWN0ZWRGaWVsZCQuc3Vic2NyaWJlKChmKSA9PiB7XG4gICAgICB0aGlzLm9nY0ZpbHRlck9wZXJhdG9ycyQubmV4dCh0aGlzLmFsbG93ZWRPcGVyYXRvcnMpO1xuICAgICAgaWYgKFxuICAgICAgICBPYmplY3Qua2V5cyh0aGlzLmFsbG93ZWRPcGVyYXRvcnMpLmluZGV4T2YoXG4gICAgICAgICAgdGhpcy5jdXJyZW50RmlsdGVyLm9wZXJhdG9yXG4gICAgICAgICkgPT09IC0xXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5jdXJyZW50RmlsdGVyLm9wZXJhdG9yID0gT2JqZWN0LmtleXModGhpcy5hbGxvd2VkT3BlcmF0b3JzKVswXTtcbiAgICAgICAgdGhpcy5jdXJyZW50RmlsdGVyLm9wZXJhdG9yID0gT2JqZWN0LmtleXModGhpcy5hbGxvd2VkT3BlcmF0b3JzKVswXTtcbiAgICAgIH1cbiAgICAgIHRoaXMudXBkYXRlVmFsdWVzTGlzdCgpO1xuICAgIH0pO1xuICAgIHRoaXMuY3VycmVudEZpbHRlcklzU3BhdGlhbCgpO1xuICB9XG5cbiAgdXBkYXRlRmllbGRzTGlzdCh2YWx1ZT86IHN0cmluZykge1xuICAgIHRoaXMuZmlsdGVyZWRGaWVsZHMkID1cbiAgICAgIHZhbHVlICYmIHZhbHVlLmxlbmd0aCA+IDAgPyBvZih0aGlzLl9maWx0ZXJGaWVsZHModmFsdWUpKSA6IHRoaXMuZmllbGRzJDtcbiAgICBpZiAodGhpcy5maWVsZHMkLnZhbHVlLmZpbmQoKGYpID0+IGYubmFtZSA9PT0gdmFsdWUpKSB7XG4gICAgICB0aGlzLmNoYW5nZUZpZWxkKHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVWYWx1ZXNMaXN0KHZhbHVlPzogc3RyaW5nLCBwb3M/OiBudW1iZXIpIHtcbiAgICB0aGlzLmZpbHRlcmVkVmFsdWVzJCA9XG4gICAgICB2YWx1ZSAmJiB2YWx1ZS5sZW5ndGggPiAwXG4gICAgICAgID8gb2YodGhpcy5fZmlsdGVyVmFsdWVzKHZhbHVlKSlcbiAgICAgICAgOiB0aGlzLnNlbGVjdGVkRmllbGQkLnZhbHVlXG4gICAgICAgID8gb2YodGhpcy5zZWxlY3RlZEZpZWxkJC52YWx1ZS52YWx1ZXMpXG4gICAgICAgIDogb2YoW10pO1xuICAgIGlmICh2YWx1ZSAmJiB2YWx1ZS5sZW5ndGggPj0gMSkge1xuICAgICAgdGhpcy5jaGFuZ2VQcm9wZXJ0eSh2YWx1ZSwgcG9zKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9maWx0ZXJGaWVsZHModmFsdWU6IHN0cmluZyk6IFNvdXJjZUZpZWxkc09wdGlvbnNQYXJhbXNbXSB7XG4gICAgY29uc3Qga2V5d29yZFJlZ2V4ID0gbmV3IFJlZ0V4cChcbiAgICAgIHZhbHVlLm5vcm1hbGl6ZSgnTkZEJykucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgJycpLFxuICAgICAgJ2dpJ1xuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuZmllbGRzJC52YWx1ZS5maWx0ZXIoKHZhbCkgPT5cbiAgICAgIGtleXdvcmRSZWdleC50ZXN0KFxuICAgICAgICB2YWwuYWxpYXMubm9ybWFsaXplKCdORkQnKS5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCAnJylcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfZmlsdGVyVmFsdWVzKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgY29uc3Qga2V5d29yZFJlZ2V4ID0gbmV3IFJlZ0V4cChcbiAgICAgIHZhbHVlXG4gICAgICAgIC50b1N0cmluZygpXG4gICAgICAgIC5ub3JtYWxpemUoJ05GRCcpXG4gICAgICAgIC5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCAnJyksXG4gICAgICAnZ2knXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEZpZWxkJC52YWx1ZS52YWx1ZXMuZmlsdGVyKCh2YWwpID0+XG4gICAgICB2YWwgJiYga2V5d29yZFJlZ2V4LnRlc3QoXG4gICAgICAgIHZhbFxuICAgICAgICAgIC50b1N0cmluZygpXG4gICAgICAgICAgLm5vcm1hbGl6ZSgnTkZEJylcbiAgICAgICAgICAucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgJycpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIGNsZWFyU2VsZWN0ZWRGaWVsZCgpIHtcbiAgICB0aGlzLmN1cnJlbnRGaWx0ZXIucHJvcGVydHlOYW1lID0gJyc7XG4gICAgdGhpcy5zZWxlY3RlZEZpZWxkJC5uZXh0KHVuZGVmaW5lZCk7XG4gICAgdGhpcy5jbGVhclByb3BlcnR5KCk7XG4gIH1cblxuICBpc0NsZWFyYWJsZShwb3M/OiBudW1iZXIpIHtcbiAgICBjb25zdCBkZXRlY3RlZFByb3BlcnR5ID0gdGhpcy5kZXRlY3RQcm9wZXJ0eShwb3MpO1xuICAgIGlmIChkZXRlY3RlZFByb3BlcnR5KSB7XG4gICAgICByZXR1cm4gdGhpcy5jdXJyZW50RmlsdGVyW2RldGVjdGVkUHJvcGVydHldO1xuICAgIH1cbiAgfVxuICBjbGVhclByb3BlcnR5KHBvcz86IG51bWJlcikge1xuICAgIC8vIHRoaXMuYXV0b0NvbXBsZXRlSW5wdXRWYWx1ZXMuY2xvc2VQYW5lbCgpO1xuICAgIGNvbnN0IGRldGVjdGVkUHJvcGVydHkgPSB0aGlzLmRldGVjdFByb3BlcnR5KHBvcyk7XG4gICAgaWYgKGRldGVjdGVkUHJvcGVydHkpIHtcbiAgICAgIHJldHVybiAodGhpcy5jdXJyZW50RmlsdGVyW2RldGVjdGVkUHJvcGVydHldID0gJycpO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZUZpbHRlclN0YXRlKGV2ZW50KSB7XG4gICAgdGhpcy5kYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycy5pbnRlcmZhY2VPZ2NGaWx0ZXJzLmZpbmQoXG4gICAgICAoZikgPT4gZi5maWx0ZXJpZCA9PT0gdGhpcy5jdXJyZW50RmlsdGVyLmZpbHRlcmlkXG4gICAgKS5hY3RpdmUgPSBldmVudC5jaGVja2VkO1xuICAgIHRoaXMucmVmcmVzaEZpbHRlcnMoKTtcbiAgfVxuXG4gIGRlbGV0ZUZpbHRlcigpIHtcbiAgICBjb25zdCBvZ2NGaWx0ZXJzOiBPZ2NGaWx0ZXJzT3B0aW9ucyA9IHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnM7XG4gICAgb2djRmlsdGVycy5pbnRlcmZhY2VPZ2NGaWx0ZXJzID0gb2djRmlsdGVycy5pbnRlcmZhY2VPZ2NGaWx0ZXJzLmZpbHRlcihcbiAgICAgIChmKSA9PiBmLmZpbHRlcmlkICE9PSB0aGlzLmN1cnJlbnRGaWx0ZXIuZmlsdGVyaWRcbiAgICApO1xuICAgIHRoaXMucmVmcmVzaEZpbHRlcnMoKTtcbiAgfVxuXG4gIGNoYW5nZUxvZ2ljYWwobG9naWNhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5jdXJyZW50RmlsdGVyLnBhcmVudExvZ2ljYWwgPSBsb2dpY2FsO1xuICAgIHRoaXMucmVmcmVzaEZpbHRlcnMoKTtcbiAgfVxuXG4gIGNoYW5nZU9wZXJhdG9yKG9wZXJhdG9yOiBzdHJpbmcpIHtcbiAgICB0aGlzLmN1cnJlbnRGaWx0ZXIub3BlcmF0b3IgPSBvcGVyYXRvcjtcbiAgICB0aGlzLmN1cnJlbnRGaWx0ZXJJc1NwYXRpYWwoKTtcblxuICAgIGlmIChcbiAgICAgIHRoaXMuY3VycmVudEZpbHRlcklzU3BhdGlhbCQudmFsdWUgJiZcbiAgICAgIHRoaXMuY3VycmVudEZpbHRlci53a3RfZ2VvbWV0cnkubGVuZ3RoID09PSAwXG4gICAgKSB7XG4gICAgICB0aGlzLmNoYW5nZVNwYXRpYWxTZWxlY3Rvcih0aGlzLmN1cnJlbnRGaWx0ZXIuaWdvU3BhdGlhbFNlbGVjdG9yKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZWZyZXNoRmlsdGVycygpO1xuICAgIH1cbiAgfVxuXG4gIGNoYW5nZUZpZWxkKGZpZWxkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmN1cnJlbnRGaWx0ZXIucHJvcGVydHlOYW1lID0gZmllbGQ7XG4gICAgdGhpcy5zZWxlY3RlZEZpZWxkJC5uZXh0KFxuICAgICAgdGhpcy5maWVsZHMkLnZhbHVlLmZpbmQoKGYpID0+IGYubmFtZSA9PT0gdGhpcy5jdXJyZW50RmlsdGVyLnByb3BlcnR5TmFtZSlcbiAgICApO1xuICAgIHRoaXMucmVmcmVzaEZpbHRlcnMoKTtcbiAgfVxuXG4gIC8vIElzc3VlIHdpdGggbWFwc2VydmVyIDcuMiBhbmQgUG9zdGdpcyBsYXllcnMuIEZpeGVkIGluIDcuNFxuICAvLyBEdWUgdG8gdGhpcyBpc3N1ZSwgdGhlIGNoZWNrYm94IGlzIGhpZGUuXG4gIGNoYW5nZUNhc2VTZW5zaXRpdmUobWF0Y2hDYXNlKSB7XG4gICAgdGhpcy5jdXJyZW50RmlsdGVyLm1hdGNoQ2FzZSA9IG1hdGNoQ2FzZS5jaGVja2VkO1xuICAgIHRoaXMucmVmcmVzaEZpbHRlcnMoKTtcbiAgfVxuXG4gIGNoYW5nZVByb3BlcnR5KHZhbHVlOiBhbnksIHBvcz86IG51bWJlciwgcmVmcmVzaEZpbHRlciA9IHRydWUpIHtcbiAgICBjb25zdCBkZXRlY3RlZFByb3BlcnR5ID0gdGhpcy5kZXRlY3RQcm9wZXJ0eShwb3MpO1xuICAgIGlmIChkZXRlY3RlZFByb3BlcnR5KSB7XG4gICAgICB0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLmludGVyZmFjZU9nY0ZpbHRlcnMuZmluZChcbiAgICAgICAgKGYpID0+IGYuZmlsdGVyaWQgPT09IHRoaXMuY3VycmVudEZpbHRlci5maWx0ZXJpZFxuICAgICAgKVtkZXRlY3RlZFByb3BlcnR5XSA9IHZhbHVlO1xuXG4gICAgICBpZiAoIHJlZnJlc2hGaWx0ZXIgKSB7XG4gICAgICAgIHRoaXMucmVmcmVzaEZpbHRlcnMoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjaGFuZ2VOdW1lcmljUHJvcGVydHkodmFsdWUsIHBvczogbnVtYmVyKSB7XG4gICAgdGhpcy5jaGFuZ2VQcm9wZXJ0eShwYXJzZUZsb2F0KHZhbHVlKSwgcG9zKTtcbiAgfVxuXG4gIGNoYW5nZVNwYXRpYWxTZWxlY3Rvcih2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5jdXJyZW50RmlsdGVyLmlnb1NwYXRpYWxTZWxlY3RvciA9IHZhbHVlO1xuXG4gICAgaWYgKHZhbHVlID09PSAnZml4ZWRFeHRlbnQnKSB7XG4gICAgICB0aGlzLmNoYW5nZU1hcEV4dGVudEdlb21ldHJ5KGZhbHNlKTtcbiAgICB9XG4gICAgdGhpcy5jdXJyZW50RmlsdGVySXNTcGF0aWFsKCk7XG4gICAgdGhpcy5yZWZyZXNoRmlsdGVycygpO1xuICB9XG5cbiAgY2hhbmdlU05SQyh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5zbnJjID0gdmFsdWU7XG4gICAgdGhpcy5jaGFuZ2VTTlJDR2VvbWV0cnkoKTtcbiAgfVxuXG4gIGNoYW5nZVNOUkNHZW9tZXRyeSgpIHtcbiAgICBjb25zdCBpbnRlcmZhY2VPZ2NGaWx0ZXIgPSB0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLmludGVyZmFjZU9nY0ZpbHRlcnMuZmluZChcbiAgICAgIChmKSA9PiBmLmZpbHRlcmlkID09PSB0aGlzLmN1cnJlbnRGaWx0ZXIuZmlsdGVyaWRcbiAgICApO1xuICAgIGlmICghaW50ZXJmYWNlT2djRmlsdGVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc25yYyAmJiB0aGlzLmN1cnJlbnRGaWx0ZXIuaWdvU3BhdGlhbFNlbGVjdG9yID09PSAnc25yYycpIHtcbiAgICAgIHRoaXMuY3VycmVudEZpbHRlci53a3RfZ2VvbWV0cnkgPSB0aGlzLndrdFNlcnZpY2Uuc25yY1RvV2t0KFxuICAgICAgICB0aGlzLnNucmMsXG4gICAgICAgIHRoaXMubWFwLnByb2plY3Rpb25cbiAgICAgICkud2t0UG9seTtcbiAgICB9XG4gICAgdGhpcy5yZWZyZXNoRmlsdGVycygpO1xuICB9XG5cbiAgY2hhbmdlTWFwRXh0ZW50R2VvbWV0cnkocmVmcmVzaDogYm9vbGVhbiA9IHRydWUpIHtcbiAgICBjb25zdCBpbnRlcmZhY2VPZ2NGaWx0ZXIgPSB0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLmludGVyZmFjZU9nY0ZpbHRlcnMuZmluZChcbiAgICAgIChmKSA9PiBmLmZpbHRlcmlkID09PSB0aGlzLmN1cnJlbnRGaWx0ZXIuZmlsdGVyaWRcbiAgICApO1xuICAgIGlmICghaW50ZXJmYWNlT2djRmlsdGVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY3VycmVudEZpbHRlci5pZ29TcGF0aWFsU2VsZWN0b3IgPT09ICdmaXhlZEV4dGVudCcpIHtcbiAgICAgIHRoaXMuY3VycmVudEZpbHRlci53a3RfZ2VvbWV0cnkgPSB0aGlzLndrdFNlcnZpY2UuZXh0ZW50VG9Xa3QoXG4gICAgICAgIHRoaXMubWFwLnByb2plY3Rpb24sXG4gICAgICAgIHRoaXMubWFwLnZpZXdDb250cm9sbGVyLmdldEV4dGVudCgpLFxuICAgICAgICB0aGlzLm1hcC5wcm9qZWN0aW9uXG4gICAgICApLndrdFBvbHk7XG4gICAgfVxuICAgIGlmIChyZWZyZXNoKSB7XG4gICAgICB0aGlzLnJlZnJlc2hGaWx0ZXJzKCk7XG4gICAgfVxuICB9XG5cbiAgZGV0ZWN0UHJvcGVydHkocG9zPzogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKHRoaXMuY3VycmVudEZpbHRlci5vcGVyYXRvcikge1xuICAgICAgY2FzZSBPZ2NGaWx0ZXJPcGVyYXRvci5Qcm9wZXJ0eUlzTm90RXF1YWxUbzpcbiAgICAgIGNhc2UgT2djRmlsdGVyT3BlcmF0b3IuUHJvcGVydHlJc0VxdWFsVG86XG4gICAgICBjYXNlIE9nY0ZpbHRlck9wZXJhdG9yLlByb3BlcnR5SXNHcmVhdGVyVGhhbjpcbiAgICAgIGNhc2UgT2djRmlsdGVyT3BlcmF0b3IuUHJvcGVydHlJc0dyZWF0ZXJUaGFuT3JFcXVhbFRvOlxuICAgICAgY2FzZSBPZ2NGaWx0ZXJPcGVyYXRvci5Qcm9wZXJ0eUlzTGVzc1RoYW46XG4gICAgICBjYXNlIE9nY0ZpbHRlck9wZXJhdG9yLlByb3BlcnR5SXNMZXNzVGhhbk9yRXF1YWxUbzpcbiAgICAgICAgcmV0dXJuICdleHByZXNzaW9uJztcbiAgICAgIGNhc2UgT2djRmlsdGVyT3BlcmF0b3IuUHJvcGVydHlJc0xpa2U6XG4gICAgICAgIHJldHVybiAncGF0dGVybic7XG4gICAgICBjYXNlIE9nY0ZpbHRlck9wZXJhdG9yLlByb3BlcnR5SXNCZXR3ZWVuOlxuICAgICAgICByZXR1cm4gcG9zICYmIHBvcyA9PT0gMVxuICAgICAgICAgID8gJ2xvd2VyQm91bmRhcnknXG4gICAgICAgICAgOiBwb3MgJiYgcG9zID09PSAyXG4gICAgICAgICAgPyAndXBwZXJCb3VuZGFyeSdcbiAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgIGNhc2UgT2djRmlsdGVyT3BlcmF0b3IuRHVyaW5nOlxuICAgICAgICByZXR1cm4gcG9zICYmIHBvcyA9PT0gMVxuICAgICAgICAgID8gJ2JlZ2luJ1xuICAgICAgICAgIDogcG9zICYmIHBvcyA9PT0gMlxuICAgICAgICAgID8gJ2VuZCdcbiAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGN1cnJlbnRGaWx0ZXJJc1NwYXRpYWwoKSB7XG4gICAgbGV0IGlzU3BhdGlhbCA9IGZhbHNlO1xuICAgIGlmICh0aGlzLmN1cnJlbnRGaWx0ZXIpIHtcbiAgICAgIGlzU3BhdGlhbCA9XG4gICAgICAgIFtcbiAgICAgICAgICBPZ2NGaWx0ZXJPcGVyYXRvci5Db250YWlucyxcbiAgICAgICAgICBPZ2NGaWx0ZXJPcGVyYXRvci5JbnRlcnNlY3RzLFxuICAgICAgICAgIE9nY0ZpbHRlck9wZXJhdG9yLldpdGhpblxuICAgICAgICBdLmluZGV4T2YodGhpcy5jdXJyZW50RmlsdGVyLm9wZXJhdG9yKSAhPT0gLTE7XG4gICAgfVxuICAgIHRoaXMuY3VycmVudEZpbHRlcklzU3BhdGlhbCQubmV4dChpc1NwYXRpYWwpO1xuICB9XG5cbiAgaXNUZW1wb3JhbE9wZXJhdG9yKCkge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmN1cnJlbnRGaWx0ZXIub3BlcmF0b3IudG9Mb3dlckNhc2UoKSA9PT1cbiAgICAgIHRoaXMub2djRmlsdGVyT3BlcmF0b3IuRHVyaW5nLnRvTG93ZXJDYXNlKClcbiAgICApO1xuICB9XG59XG4iLCI8bWF0LWNoZWNrYm94XG4gIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXG4gIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5maWx0ZXIudG9nZ2xlRmlsdGVyU3RhdGUnIHwgdHJhbnNsYXRlXCJcbiAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gIChjaGFuZ2UpPVwidG9nZ2xlRmlsdGVyU3RhdGUoJGV2ZW50KVwiXG4gIFtjaGVja2VkXT1cImN1cnJlbnRGaWx0ZXIuYWN0aXZlXCI+XG48L21hdC1jaGVja2JveD5cblxuPG1hdC1mb3JtLWZpZWxkXG4gIFtuZ0NsYXNzXT1cInsnbG9naWNhbCc6IGFjdGl2ZUZpbHRlcnMuaW5kZXhPZihjdXJyZW50RmlsdGVyKSAhPT0gMCAmJiBjdXJyZW50RmlsdGVyLmFjdGl2ZT09PXRydWUsICdsb2dpY2FsSGlkZGVuJzogYWN0aXZlRmlsdGVycy5pbmRleE9mKGN1cnJlbnRGaWx0ZXIpID09PSAwIHx8IGN1cnJlbnRGaWx0ZXIuYWN0aXZlIT09dHJ1ZX1cIj5cbiAgPG1hdC1zZWxlY3RcbiAgICBbZGlzYWJsZWRdPVwiIWN1cnJlbnRGaWx0ZXIuYWN0aXZlXCJcbiAgICBbdmFsdWVdPVwiY3VycmVudEZpbHRlci5wYXJlbnRMb2dpY2FsXCJcbiAgICB0b29sdGlwLXBvc2l0aW9uPVwiYWJvdmVcIlxuICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICAgIFttYXRUb29sdGlwXT1cImN1cnJlbnRGaWx0ZXIucGFyZW50TG9naWNhbCA/ICgoJ2lnby5nZW8ub3BlcmF0b3JzLnRvb2x0aXAuJysgY3VycmVudEZpbHRlci5wYXJlbnRMb2dpY2FsKSB8IHRyYW5zbGF0ZSkgOiAnJ1wiXG4gICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJjaGFuZ2VMb2dpY2FsKCRldmVudC52YWx1ZSlcIj5cbiAgICAgIDxtYXQtb3B0aW9uXG4gICAgICAgIFt2YWx1ZV09b2djRmlsdGVyT3BlcmF0b3IuQW5kXG4gICAgICAgIHRvb2x0aXAtcG9zaXRpb249XCJhYm92ZVwiXG4gICAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICAgICAgICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5vcGVyYXRvcnMudG9vbHRpcC5BbmQnIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgICAge3snaWdvLmdlby5vcGVyYXRvcnMuQW5kJyB8IHRyYW5zbGF0ZX19XG4gICAgICA8L21hdC1vcHRpb24+XG4gICAgICA8bWF0LW9wdGlvblxuICAgICAgICBbdmFsdWVdPW9nY0ZpbHRlck9wZXJhdG9yLk9yXG4gICAgICAgIHRvb2x0aXAtcG9zaXRpb249XCJhYm92ZVwiXG4gICAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICAgICAgICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5vcGVyYXRvcnMudG9vbHRpcC5PcicgfCB0cmFuc2xhdGVcIj5cbiAgICAgICAgICB7eydpZ28uZ2VvLm9wZXJhdG9ycy5PcicgfCB0cmFuc2xhdGV9fVxuICAgICAgPC9tYXQtb3B0aW9uPlxuICA8L21hdC1zZWxlY3Q+XG48L21hdC1mb3JtLWZpZWxkPlxuXG48bWF0LWZvcm0tZmllbGRcbiAgY2xhc3M9XCJmaWVsZFwiXG4gICpuZ0lmPVwiKGN1cnJlbnRGaWx0ZXJJc1NwYXRpYWwkIHwgYXN5bmMpPT09ZmFsc2UgJiYgKGZpZWxkcyQgfCBhc3luYykgJiYgKGZpZWxkcyR8IGFzeW5jKS5sZW5ndGggPiAwICYmIChmaWVsZHMkfCBhc3luYylbMF0ubmFtZSAhPT0gJydcIlxuICAobW91c2VlbnRlcik9XCJpbnB1dENsZWFyYWJsZSA9ICdzZWxlY3RGaWVsZCdcIlxuICAobW91c2VsZWF2ZSk9XCJpbnB1dENsZWFyYWJsZSA9IHVuZGVmaW5lZFwiXG4gIFtmbG9hdExhYmVsXT1cImZsb2F0TGFiZWxcIj5cbiAgPGlucHV0XG4gIG1hdElucHV0XG4gIFtwbGFjZWhvbGRlcl09XCInaWdvLmdlby5zb3VyY2VGaWVsZHMuc2VsZWN0RmllbGQnIHwgdHJhbnNsYXRlXCJcbiAgW2Rpc2FibGVkXT1cIiFjdXJyZW50RmlsdGVyLmFjdGl2ZVwiXG4gIFttYXRBdXRvY29tcGxldGVdPVwiYXV0b0NvbXBsZXRlRmllbGRcIlxuICBbdmFsdWVdPVwiKHNlbGVjdGVkRmllbGQkIHwgYXN5bmMpID8gKHNlbGVjdGVkRmllbGQkIHwgYXN5bmMpLmFsaWFzIDogJydcIlxuICB0b29sdGlwLXBvc2l0aW9uPVwiYWJvdmVcIlxuICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgW21hdFRvb2x0aXBdPVwiKHNlbGVjdGVkRmllbGQkIHwgYXN5bmMpID8gKHNlbGVjdGVkRmllbGQkIHwgYXN5bmMpLmFsaWFzIDogKCdpZ28uZ2VvLnNvdXJjZUZpZWxkcy5zZWxlY3RGaWVsZCcgfCB0cmFuc2xhdGUpXCJcbiAgKGlucHV0KT1cInVwZGF0ZUZpZWxkc0xpc3QoJGV2ZW50LnRhcmdldC52YWx1ZSlcIj5cbiAgPG1hdC1hdXRvY29tcGxldGUgI2F1dG9Db21wbGV0ZUZpZWxkPVwibWF0QXV0b2NvbXBsZXRlXCJcbiAgKG9wdGlvblNlbGVjdGVkKT0nY2hhbmdlRmllbGQoJGV2ZW50Lm9wdGlvbi5pZCknPlxuICAgIDxtYXQtb3B0aW9uXG4gICAgICAqbmdGb3I9XCJsZXQgZmllbGQgb2YgZmlsdGVyZWRGaWVsZHMkIHwgYXN5bmNcIlxuICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgICBbdmFsdWVdPVwiZmllbGQuYWxpYXNcIlxuICAgICAgW2lkXT1cImZpZWxkLm5hbWVcIlxuICAgICAgW21hdFRvb2x0aXBdPVwiZmllbGQuYWxpYXNcIj5cbiAgICAgIHt7ZmllbGQuYWxpYXN9fVxuICAgIDwvbWF0LW9wdGlvbj5cbiAgPC9tYXQtYXV0b2NvbXBsZXRlPlxuICA8YnV0dG9uIG1hdC1idXR0b25cbiAgICAqbmdJZj1cImN1cnJlbnRGaWx0ZXIucHJvcGVydHlOYW1lICYmIGlucHV0Q2xlYXJhYmxlID09PSAnc2VsZWN0RmllbGQnICYmIGN1cnJlbnRGaWx0ZXIuYWN0aXZlXCJcbiAgICBtYXRTdWZmaXhcbiAgICBtYXQtaWNvbi1idXR0b25cbiAgICBhcmlhLWxhYmVsPVwiQ2xlYXJcIlxuICAgIFtkaXNhYmxlZF09XCIhY3VycmVudEZpbHRlci5hY3RpdmVcIlxuICAgIChjbGljayk9XCJjbGVhclNlbGVjdGVkRmllbGQoKVwiPlxuICAgICAgICA8bWF0LWljb24gc3ZnSWNvbj1cImNsb3NlXCI+PC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG48L21hdC1mb3JtLWZpZWxkPlxuXG5cbjxtYXQtZm9ybS1maWVsZFxuICBbbmdDbGFzc109XCJ7J29wZXJhdG9yJzogKGN1cnJlbnRGaWx0ZXJJc1NwYXRpYWwkIHwgYXN5bmMpPT09ZmFsc2UgLCAnZHVhbElucHV0JzogKGN1cnJlbnRGaWx0ZXJJc1NwYXRpYWwkIHwgYXN5bmMpfVwiXG4gIFtmbG9hdExhYmVsXT1cImZsb2F0TGFiZWxcIj5cbiAgPG1hdC1zZWxlY3RcbiAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxuICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICAgIFttYXRUb29sdGlwXT1cImN1cnJlbnRGaWx0ZXIub3BlcmF0b3IgPyAoKCdpZ28uZ2VvLm9wZXJhdG9ycy50b29sdGlwLicrIGN1cnJlbnRGaWx0ZXIub3BlcmF0b3IpIHwgdHJhbnNsYXRlKSA6ICgnaWdvLmdlby5maWx0ZXIuc2VsZWN0T3BlcmF0b3InIHwgdHJhbnNsYXRlKVwiXG4gICAgW2Rpc2FibGVkXT1cIiFjdXJyZW50RmlsdGVyLmFjdGl2ZVwiXG4gICAgW3ZhbHVlXT1cImN1cnJlbnRGaWx0ZXIub3BlcmF0b3JcIlxuICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiY2hhbmdlT3BlcmF0b3IoJGV2ZW50LnZhbHVlKVwiPlxuICAgICAgPG1hdC1vcHRpb25cbiAgICAgICAgKm5nRm9yPVwibGV0IG9wZXJhdG9yIG9mIChvZ2NGaWx0ZXJPcGVyYXRvcnMkIHwgYXN5bmMpIHwga2V5dmFsdWVcIlxuICAgICAgICB0b29sdGlwLXBvc2l0aW9uPVwiYWJvdmVcIlxuICAgICAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAgICAgW3ZhbHVlXT1cIm9wZXJhdG9yLmtleVwiXG4gICAgICAgIFttYXRUb29sdGlwXT1cIignaWdvLmdlby5vcGVyYXRvcnMudG9vbHRpcC4nKyBvcGVyYXRvci5rZXkpIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgICAge3soJ2lnby5nZW8ub3BlcmF0b3JzLicrIG9wZXJhdG9yLmtleSkgfCB0cmFuc2xhdGV9fVxuICAgICAgPC9tYXQtb3B0aW9uPlxuICA8L21hdC1zZWxlY3Q+XG48L21hdC1mb3JtLWZpZWxkPlxuXG48bWF0LWZvcm0tZmllbGRcbmNsYXNzPVwic3BhdGlhbFNlbGVjdG9yXCJcbipuZ0lmPVwiY3VycmVudEZpbHRlcklzU3BhdGlhbCQgfCBhc3luY1wiPlxuICA8bWF0LXNlbGVjdFxuICAgIFtkaXNhYmxlZF09XCIhY3VycmVudEZpbHRlci5hY3RpdmVcIlxuICAgIFt2YWx1ZV09XCJjdXJyZW50RmlsdGVyLmlnb1NwYXRpYWxTZWxlY3RvclwiXG4gICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJjaGFuZ2VTcGF0aWFsU2VsZWN0b3IoJGV2ZW50LnZhbHVlKVwiPlxuICAgICAgPG1hdC1vcHRpb25cbiAgICAgICAgKm5nRm9yPVwibGV0IGlnb1NwYXRpYWxTZWxlY3RvciBvZiBpZ29TcGF0aWFsU2VsZWN0b3JzXCJcbiAgICAgICAgW3ZhbHVlXT1cImlnb1NwYXRpYWxTZWxlY3Rvci50eXBlXCI+XG4gICAgICAgICAge3soJ2lnby5nZW8uc3BhdGlhbFNlbGVjdG9yLicrIGlnb1NwYXRpYWxTZWxlY3Rvci50eXBlKSB8IHRyYW5zbGF0ZX19XG4gICAgICA8L21hdC1vcHRpb24+XG4gIDwvbWF0LXNlbGVjdD5cbjwvbWF0LWZvcm0tZmllbGQ+XG5cbjxtYXQtZm9ybS1maWVsZFxuY2xhc3M9XCJzaW5nbGVJbnB1dFwiXG4qbmdJZj1cIlsnZXhwcmVzc2lvbicsJ3BhdHRlcm4nXS5pbmRleE9mKGRldGVjdFByb3BlcnR5KCkpICE9PSAtMVwiXG4obW91c2VlbnRlcik9XCJpbnB1dENsZWFyYWJsZSA9ICdzZWxlY3RQcm9wZXJ0eSdcIlxuKG1vdXNlbGVhdmUpPVwiaW5wdXRDbGVhcmFibGUgPSB1bmRlZmluZWRcIlxuW2Zsb2F0TGFiZWxdPVwiZmxvYXRMYWJlbFwiPlxuICA8aW5wdXRcbiAgICBtYXRJbnB1dFxuICAgIFtwbGFjZWhvbGRlcl09XCInaWdvLmdlby5maWx0ZXIucGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlXCJcbiAgICBbZGlzYWJsZWRdPVwiIWN1cnJlbnRGaWx0ZXIuYWN0aXZlXCJcbiAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9Db21wbGV0ZVZhbHVlc1wiXG4gICAgW3ZhbHVlXT1cImRldGVjdFByb3BlcnR5KCkgPT09ICdleHByZXNzaW9uJyA/IGN1cnJlbnRGaWx0ZXIuZXhwcmVzc2lvbiA6IGN1cnJlbnRGaWx0ZXIucGF0dGVyblwiXG4gICAgdG9vbHRpcC1wb3NpdGlvbj1cImFib3ZlXCJcbiAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICBbbWF0VG9vbHRpcF09XCJkZXRlY3RQcm9wZXJ0eSgpID09PSAnZXhwcmVzc2lvbicgPyBjdXJyZW50RmlsdGVyLmV4cHJlc3Npb24gfHwgJycgOiBjdXJyZW50RmlsdGVyLnBhdHRlcm4gfHwgJydcIlxuICAgIChpbnB1dCk9XCJ1cGRhdGVWYWx1ZXNMaXN0KCRldmVudC50YXJnZXQudmFsdWUpXCI+XG4gIDxtYXQtYXV0b2NvbXBsZXRlICNhdXRvQ29tcGxldGVWYWx1ZXM9XCJtYXRBdXRvY29tcGxldGVcIlxuICAgIChvcHRpb25TZWxlY3RlZCk9XCJjaGFuZ2VQcm9wZXJ0eSgkZXZlbnQub3B0aW9uLnZhbHVlKVwiPlxuICAgIDxtYXQtb3B0aW9uXG4gICAgICAqbmdGb3I9XCJsZXQgdmFsdWUgb2YgZmlsdGVyZWRWYWx1ZXMkIHwgYXN5bmNcIlxuICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgICAgW21hdFRvb2x0aXBdPVwidmFsdWVcIj5cbiAgICAgIHt7dmFsdWV9fVxuICAgIDwvbWF0LW9wdGlvbj5cbiAgPC9tYXQtYXV0b2NvbXBsZXRlPlxuICA8YnV0dG9uIG1hdC1idXR0b25cbiAgICAqbmdJZj1cImlzQ2xlYXJhYmxlKCkgJiYgaW5wdXRDbGVhcmFibGUgPT09ICdzZWxlY3RQcm9wZXJ0eScgJiYgY3VycmVudEZpbHRlci5hY3RpdmVcIlxuICAgIG1hdFN1ZmZpeFxuICAgIG1hdC1pY29uLWJ1dHRvblxuICAgIGFyaWEtbGFiZWw9XCJDbGVhclwiXG4gICAgW2Rpc2FibGVkXT1cIiFjdXJyZW50RmlsdGVyLmFjdGl2ZVwiXG4gICAgKGNsaWNrKT1cImNsZWFyUHJvcGVydHkoKVwiPlxuICAgICAgICA8bWF0LWljb24gc3ZnSWNvbj1cImNsb3NlXCI+PC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG48L21hdC1mb3JtLWZpZWxkPlxuXG48ZGl2IGNsYXNzPVwiaWdvLWxheWVyLWJ1dHRvbi1ncm91cFwiPlxuICA8YnV0dG9uXG4gICAgbWF0LWljb24tYnV0dG9uXG4gICAgY29sbGFwc2libGVCdXR0b25cbiAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxuICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLmZpbHRlci5yZW1vdmVGaWx0ZXInIHwgdHJhbnNsYXRlXCJcbiAgICBjb2xvcj1cIndhcm5cIlxuICAgIChjbGljayk9XCJkZWxldGVGaWx0ZXIoKVwiPlxuICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiZGVsZXRlXCI+PC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG48L2Rpdj5cblxuPG1hdC1mb3JtLWZpZWxkXG5jbGFzcz1cInNucmNcIlxuKm5nSWY9XCIoY3VycmVudEZpbHRlcklzU3BhdGlhbCQgfCBhc3luYykgJiYgY3VycmVudEZpbHRlci5pZ29TcGF0aWFsU2VsZWN0b3IgPT09ICdzbnJjJ1wiXG4obW91c2VlbnRlcik9XCJpbnB1dENsZWFyYWJsZSA9ICdzZWxlY3RTTlJDJ1wiXG4obW91c2VsZWF2ZSk9XCJpbnB1dENsZWFyYWJsZSA9IHVuZGVmaW5lZFwiXG5bZmxvYXRMYWJlbF09XCJmbG9hdExhYmVsXCI+XG4gIDxpbnB1dFxuICAgIG1hdElucHV0XG4gICAgW3BsYWNlaG9sZGVyXT1cIidpZ28uZ2VvLmZpbHRlci5wbGFjZWhvbGRlclNucmMnIHwgdHJhbnNsYXRlXCJcbiAgICBbdmFsdWVdPVwiY3VycmVudEZpbHRlci5pZ29TTlJDXCJcbiAgICB0b29sdGlwLXBvc2l0aW9uPVwiYWJvdmVcIlxuICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICAgIFttYXRUb29sdGlwXT1cImN1cnJlbnRGaWx0ZXIuaWdvU05SQyA/IGN1cnJlbnRGaWx0ZXIuaWdvU05SQyA6ICcnXCJcbiAgICAoaW5wdXQpPVwiY2hhbmdlU05SQygkZXZlbnQudGFyZ2V0LnZhbHVlKVwiPlxuICA8YnV0dG9uXG4gICAgbWF0LWJ1dHRvblxuICAgICpuZ0lmPVwiY3VycmVudEZpbHRlci5pZ29TTlJDXCJcbiAgICBtYXRTdWZmaXhcbiAgICBtYXQtaWNvbi1idXR0b25cbiAgICBhcmlhLWxhYmVsPVwiQ2xlYXJcIlxuICAgIFtkaXNhYmxlZF09XCIhY3VycmVudEZpbHRlci5hY3RpdmUgJiYgaW5wdXRDbGVhcmFibGUgPT09ICdzZWxlY3RTTlJDJyAmJiBjdXJyZW50RmlsdGVyLmFjdGl2ZVwiXG4gICAgKGNsaWNrKT1cImN1cnJlbnRGaWx0ZXIuaWdvU05SQz0nJ1wiPlxuICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJjbG9zZVwiPjwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIoY3VycmVudEZpbHRlcklzU3BhdGlhbCQgfCBhc3luYykgJiYgY3VycmVudEZpbHRlci5pZ29TcGF0aWFsU2VsZWN0b3IgPT09ICdmaXhlZEV4dGVudCdcIj5cbiAgICA8YnV0dG9uXG4gICAgbWF0LWJ1dHRvblxuICAgIFtkaXNhYmxlZF09XCIhY3VycmVudEZpbHRlci5hY3RpdmVcIlxuICAgICpuZ0lmPVwiY3VycmVudEZpbHRlci5pZ29TcGF0aWFsU2VsZWN0b3IgPT09ICdmaXhlZEV4dGVudCdcIlxuICAgIG1hdFN1ZmZpeFxuICAgIG1hdC1pY29uLWJ1dHRvblxuICAgIFtkaXNhYmxlZF09XCIhY3VycmVudEZpbHRlci5hY3RpdmVcIlxuICAgIChjbGljayk9XCJjaGFuZ2VNYXBFeHRlbnRHZW9tZXRyeSgpXCJcbiAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxuICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLnNwYXRpYWxTZWxlY3Rvci5idG5TZXRFeHRlbnQnIHwgdHJhbnNsYXRlXCI+XG4gICAgICA8bWF0LWljb24gc3ZnSWNvbj1cImFycm93LWV4cGFuZC1hbGxcIj48L21hdC1pY29uPlxuICA8L2J1dHRvbj5cbjwvbmctY29udGFpbmVyPlxuXG48YnIvPlxuXG48bWF0LWZvcm0tZmllbGRcbmNsYXNzPVwiZHVhbElucHV0XCJcbipuZ0lmPVwiIWlzVGVtcG9yYWxPcGVyYXRvcigpICYmIFsnbG93ZXJCb3VuZGFyeScsJ2JlZ2luJ10uaW5kZXhPZihkZXRlY3RQcm9wZXJ0eSgxKSkgIT09IC0xXCJcbihtb3VzZWVudGVyKT1cImlucHV0Q2xlYXJhYmxlID0gJ3NlbGVjdFByb3BlcnR5MSdcIlxuKG1vdXNlbGVhdmUpPVwiaW5wdXRDbGVhcmFibGUgPSB1bmRlZmluZWRcIlxuW2Zsb2F0TGFiZWxdPVwiZmxvYXRMYWJlbFwiPlxuICAgIDxpbnB1dFxuICAgICAgbWF0SW5wdXRcbiAgICAgIFtwbGFjZWhvbGRlcl09XCInaWdvLmdlby5maWx0ZXIucGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlXCJcbiAgICAgIFtkaXNhYmxlZF09XCIhY3VycmVudEZpbHRlci5hY3RpdmVcIlxuICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvRHVhbFZhbHVlT3BlcmF0b3IxXCJcbiAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgW3ZhbHVlXT1cImRldGVjdFByb3BlcnR5KDEpID09PSAnbG93ZXJCb3VuZGFyeScgPyBjdXJyZW50RmlsdGVyLmxvd2VyQm91bmRhcnkgOiBjdXJyZW50RmlsdGVyLmJlZ2luXCJcbiAgICAgIChpbnB1dCk9XCJ1cGRhdGVWYWx1ZXNMaXN0KCRldmVudC50YXJnZXQudmFsdWUsMSlcIj5cbiAgICA8bWF0LWF1dG9jb21wbGV0ZSAjYXV0b0R1YWxWYWx1ZU9wZXJhdG9yMT1cIm1hdEF1dG9jb21wbGV0ZVwiXG4gICAgICAob3B0aW9uU2VsZWN0ZWQpPVwiY2hhbmdlTnVtZXJpY1Byb3BlcnR5KCRldmVudC5vcHRpb24udmFsdWUsMSlcIj5cbiAgICAgIDxtYXQtb3B0aW9uXG4gICAgICAgICpuZ0Zvcj1cImxldCB2YWx1ZSBvZiBmaWx0ZXJlZFZhbHVlcyQgfCBhc3luY1wiXG4gICAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICAgICAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgICAgICBbbWF0VG9vbHRpcF09XCJ2YWx1ZVwiPlxuICAgICAgICB7e3ZhbHVlfX1cbiAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICA8L21hdC1hdXRvY29tcGxldGU+XG4gICAgPGJ1dHRvbiBtYXQtYnV0dG9uXG4gICAgICAqbmdJZj1cImlzQ2xlYXJhYmxlKDEpICYmIGlucHV0Q2xlYXJhYmxlID09PSAnc2VsZWN0UHJvcGVydHkxJyAmJiBjdXJyZW50RmlsdGVyLmFjdGl2ZVwiXG4gICAgICBtYXRTdWZmaXhcbiAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgYXJpYS1sYWJlbD1cIkNsZWFyXCJcbiAgICBbZGlzYWJsZWRdPVwiIWN1cnJlbnRGaWx0ZXIuYWN0aXZlXCJcbiAgICAgIChjbGljayk9XCJjbGVhclByb3BlcnR5KDEpXCI+XG4gICAgICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJjbG9zZVwiPjwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG48L21hdC1mb3JtLWZpZWxkPlxuXG48bWF0LWZvcm0tZmllbGRcbiAgY2xhc3M9XCJkdWFsSW5wdXRcIlxuICAqbmdJZj1cIiFpc1RlbXBvcmFsT3BlcmF0b3IoKSAmJiBbJ3VwcGVyQm91bmRhcnknLCdlbmQnXS5pbmRleE9mKGRldGVjdFByb3BlcnR5KDIpKSAhPT0gLTFcIlxuICAobW91c2VlbnRlcik9XCJpbnB1dENsZWFyYWJsZSA9ICdzZWxlY3RQcm9wZXJ0eTInXCJcbiAgKG1vdXNlbGVhdmUpPVwiaW5wdXRDbGVhcmFibGUgPSB1bmRlZmluZWRcIlxuICBbZmxvYXRMYWJlbF09XCJmbG9hdExhYmVsXCI+XG4gICAgPGlucHV0XG4gICAgICBtYXRJbnB1dFxuICAgICAgW3BsYWNlaG9sZGVyXT1cIidpZ28uZ2VvLmZpbHRlci5wbGFjZWhvbGRlcicgfCB0cmFuc2xhdGVcIlxuICAgICAgW2Rpc2FibGVkXT1cIiFjdXJyZW50RmlsdGVyLmFjdGl2ZVwiXG4gICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9EdWFsVmFsdWVPcGVyYXRvcjJcIlxuICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICBbdmFsdWVdPVwiZGV0ZWN0UHJvcGVydHkoMikgPT09ICd1cHBlckJvdW5kYXJ5JyA/IGN1cnJlbnRGaWx0ZXIudXBwZXJCb3VuZGFyeSA6IGN1cnJlbnRGaWx0ZXIuZW5kXCJcbiAgICAgIChpbnB1dCk9XCJ1cGRhdGVWYWx1ZXNMaXN0KCRldmVudC50YXJnZXQudmFsdWUsMilcIj5cbiAgICA8bWF0LWF1dG9jb21wbGV0ZSAjYXV0b0R1YWxWYWx1ZU9wZXJhdG9yMj1cIm1hdEF1dG9jb21wbGV0ZVwiXG4gICAgICAob3B0aW9uU2VsZWN0ZWQpPVwiY2hhbmdlTnVtZXJpY1Byb3BlcnR5KCRldmVudC5vcHRpb24udmFsdWUsMilcIj5cbiAgICAgIDxtYXQtb3B0aW9uXG4gICAgICAgICpuZ0Zvcj1cImxldCB2YWx1ZSBvZiBmaWx0ZXJlZFZhbHVlcyQgfCBhc3luY1wiXG4gICAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICAgICAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgICAgICBbbWF0VG9vbHRpcF09XCJ2YWx1ZVwiPlxuICAgICAgICB7e3ZhbHVlfX1cbiAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICA8L21hdC1hdXRvY29tcGxldGU+XG4gICAgPGJ1dHRvbiBtYXQtYnV0dG9uXG4gICAgICAqbmdJZj1cImlzQ2xlYXJhYmxlKDIpICYmIGlucHV0Q2xlYXJhYmxlID09PSAnc2VsZWN0UHJvcGVydHkyJyAmJiBjdXJyZW50RmlsdGVyLmFjdGl2ZVwiXG4gICAgICBtYXRTdWZmaXhcbiAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgYXJpYS1sYWJlbD1cIkNsZWFyXCJcbiAgICAgIFtkaXNhYmxlZF09XCIhY3VycmVudEZpbHRlci5hY3RpdmVcIlxuICAgICAgKGNsaWNrKT1cImNsZWFyUHJvcGVydHkoMilcIj5cbiAgICAgICAgICA8bWF0LWljb24gc3ZnSWNvbj1cImNsb3NlXCI+PC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbjwvbWF0LWZvcm0tZmllbGQ+XG5cbjxpZ28tb2djLWZpbHRlci10aW1lICpuZ0lmPVwiaXNUZW1wb3JhbE9wZXJhdG9yKClcIlxuICBbKGRhdGFzb3VyY2UpXT1cImRhdGFzb3VyY2VcIlxuICBbKGN1cnJlbnRGaWx0ZXIpXT1cImN1cnJlbnRGaWx0ZXJcIlxuICAoY2hhbmdlUHJvcGVydHkpPVwiY2hhbmdlUHJvcGVydHkoJGV2ZW50LnZhbHVlLCAkZXZlbnQucG9zKVwiPlxuPC9pZ28tb2djLWZpbHRlci10aW1lPlxuXG48IS0tXG5UT0RPIEMnRVNUIFBFUlRJTkVOVCBqZSBjcm9pc1xuPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cIiEoY3VycmVudEZpbHRlcklzU3BhdGlhbCQgfCBhc3luYykgJiYgKGZpZWxkcyR8IGFzeW5jKSAmJiAoZmllbGRzJHwgYXN5bmMpLmxlbmd0aCA9PT0gMSAmJiAgKGZpZWxkcyR8IGFzeW5jKVswXS5uYW1lID09PSAnJ1wiPlxuPGlucHV0IFtkaXNhYmxlZF09XCIhY3VycmVudEZpbHRlci5hY3RpdmVcIiBtYXRJbnB1dCAjZmllbGRQZXJVc2VyIChrZXl1cCk9XCJjaGFuZ2VQcm9wZXJ0eShjdXJyZW50RmlsdGVyLCdwcm9wZXJ0eU5hbWUnLGZpZWxkUGVyVXNlci52YWx1ZSlcIlxuICAoYmx1cik9XCJjaGFuZ2VQcm9wZXJ0eShjdXJyZW50RmlsdGVyLCdwcm9wZXJ0eU5hbWUnLGZpZWxkUGVyVXNlci52YWx1ZSlcIiBbKG5nTW9kZWwpXT1cImN1cnJlbnRGaWx0ZXIucHJvcGVydHlOYW1lXCI+XG48YnV0dG9uIG1hdC1idXR0b24gKm5nSWY9XCJjdXJyZW50RmlsdGVyLnByb3BlcnR5TmFtZVwiIG1hdFN1ZmZpeCBtYXQtaWNvbi1idXR0b24gYXJpYS1sYWJlbD1cIkNsZWFyXCIgKGNsaWNrKT1cImN1cnJlbnRGaWx0ZXIucHJvcGVydHlOYW1lPScnXCI+XG4gIDxtYXQtaWNvbiBzdmdJY29uPVwiY2xvc2VcIj48L21hdC1pY29uPlxuPC9idXR0b24+XG48L21hdC1mb3JtLWZpZWxkPlxuXG5cblxuPG1hdC1jaGVja2JveCBsYWJlbFBvc2l0aW9uPSdiZWZvcmUnIChjaGFuZ2UpPVwiY2hhbmdlQ2FzZVNlbnNpdGl2ZSgkZXZlbnQpXCIgWyhuZ01vZGVsKV09XCJjdXJyZW50RmlsdGVyLm1hdGNoQ2FzZVwiPlxuICB7eygnaWdvLmdlby5vcGVyYXRvcnMuY2FzZVNlbnNpdGl2ZScpIHwgdHJhbnNsYXRlfX1cbjwvbWF0LWNoZWNrYm94PlxuXG48L21hdC1saXN0LWl0ZW0+IC0tPlxuIl19