@artstesh/maps 7.0.0 → 9.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (407) hide show
  1. package/dist/fesm2022/maps-components-src-map.mjs +87 -87
  2. package/dist/fesm2022/maps-components-src-map.mjs.map +1 -1
  3. package/dist/fesm2022/maps-components.mjs +87 -87
  4. package/dist/fesm2022/maps-components.mjs.map +1 -1
  5. package/dist/index.d.ts +1720 -3
  6. package/dist/src/map/index.d.ts +1720 -3
  7. package/package.json +20 -20
  8. package/dist/esm2022/map/common/destructible.component.mjs +0 -18
  9. package/dist/esm2022/map/common/id.generator.mjs +0 -14
  10. package/dist/esm2022/map/helpers/index.mjs +0 -5
  11. package/dist/esm2022/map/helpers/marker-style.helper.mjs +0 -55
  12. package/dist/esm2022/map/helpers/polygon-style.helper.mjs +0 -54
  13. package/dist/esm2022/map/helpers/stringify-feature.helper.mjs +0 -61
  14. package/dist/esm2022/map/helpers/text-style.helper.mjs +0 -33
  15. package/dist/esm2022/map/map-plate/controls/index.mjs +0 -3
  16. package/dist/esm2022/map/map-plate/controls/map-control-zoom/map-control-zoom.component.mjs +0 -69
  17. package/dist/esm2022/map/map-plate/controls/map-control-zoom/zoom-control.factory.mjs +0 -13
  18. package/dist/esm2022/map/map-plate/controls/map-control-zoom/zoom-control.settings.mjs +0 -116
  19. package/dist/esm2022/map/map-plate/features/index.mjs +0 -3
  20. package/dist/esm2022/map/map-plate/features/markers/markers.component.mjs +0 -52
  21. package/dist/esm2022/map/map-plate/features/polygons/polygons.component.mjs +0 -56
  22. package/dist/esm2022/map/map-plate/layers/cluster-layer/cluster-layer-factory.service.mjs +0 -59
  23. package/dist/esm2022/map/map-plate/layers/cluster-layer/cluster-layer.component.mjs +0 -60
  24. package/dist/esm2022/map/map-plate/layers/cluster-layer/cluster-layer.manager.mjs +0 -38
  25. package/dist/esm2022/map/map-plate/layers/cluster-layer/cluster-layer.settings.mjs +0 -145
  26. package/dist/esm2022/map/map-plate/layers/feature-layer/feature-layer.component.mjs +0 -52
  27. package/dist/esm2022/map/map-plate/layers/feature-layer/feature-layer.factory.mjs +0 -28
  28. package/dist/esm2022/map/map-plate/layers/feature-layer/feature-layer.settings.mjs +0 -139
  29. package/dist/esm2022/map/map-plate/layers/image-layer/image-layer-factory.mjs +0 -26
  30. package/dist/esm2022/map/map-plate/layers/image-layer/image-layer.component.mjs +0 -52
  31. package/dist/esm2022/map/map-plate/layers/image-layer/image-layer.settings.mjs +0 -134
  32. package/dist/esm2022/map/map-plate/layers/index.mjs +0 -12
  33. package/dist/esm2022/map/map-plate/layers/osm-tile-layer/osm-tile-layer.component.mjs +0 -67
  34. package/dist/esm2022/map/map-plate/layers/raster-tile/raster-tile-layer.component.mjs +0 -52
  35. package/dist/esm2022/map/map-plate/layers/raster-tile/raster-tile-layer.factory.mjs +0 -74
  36. package/dist/esm2022/map/map-plate/layers/raster-tile/raster-tile-layer.settings.mjs +0 -165
  37. package/dist/esm2022/map/map-plate/layers/tile-layer/tile-layer.component.mjs +0 -52
  38. package/dist/esm2022/map/map-plate/layers/tile-layer/tile-layer.factory.mjs +0 -68
  39. package/dist/esm2022/map/map-plate/layers/tile-layer/tile-layer.settings.mjs +0 -139
  40. package/dist/esm2022/map/map-plate/map-plate.component.mjs +0 -125
  41. package/dist/esm2022/map/map-plate/map-plate.factory.service.mjs +0 -29
  42. package/dist/esm2022/map/map-plate/tooltips/index.mjs +0 -3
  43. package/dist/esm2022/map/map-plate/tooltips/tooltip/tooltip.component.mjs +0 -84
  44. package/dist/esm2022/map/map-plate/tooltips/tooltip/tooltip.settings.mjs +0 -31
  45. package/dist/esm2022/map/messages/commands/add-control.command.mjs +0 -18
  46. package/dist/esm2022/map/messages/commands/add-image-layer.command.mjs +0 -10
  47. package/dist/esm2022/map/messages/commands/add-layer.command.mjs +0 -10
  48. package/dist/esm2022/map/messages/commands/add-raster-tile-command.mjs +0 -10
  49. package/dist/esm2022/map/messages/commands/add-tile.command.mjs +0 -10
  50. package/dist/esm2022/map/messages/commands/cancel-drawing.command.mjs +0 -8
  51. package/dist/esm2022/map/messages/commands/cancel-feature-modification.command.mjs +0 -8
  52. package/dist/esm2022/map/messages/commands/close-tooltip.command.mjs +0 -18
  53. package/dist/esm2022/map/messages/commands/draw-selection-area.command.mjs +0 -26
  54. package/dist/esm2022/map/messages/commands/fit-to-features.command.mjs +0 -12
  55. package/dist/esm2022/map/messages/commands/fit-to-polygons.command.mjs +0 -22
  56. package/dist/esm2022/map/messages/commands/modify-feature.command.mjs +0 -31
  57. package/dist/esm2022/map/messages/commands/place-layer-features.command.mjs +0 -12
  58. package/dist/esm2022/map/messages/commands/remove-control.command.mjs +0 -23
  59. package/dist/esm2022/map/messages/commands/remove-image-layer.command.mjs +0 -10
  60. package/dist/esm2022/map/messages/commands/remove-layer.command.mjs +0 -10
  61. package/dist/esm2022/map/messages/commands/remove-raster-tile.command.mjs +0 -10
  62. package/dist/esm2022/map/messages/commands/remove-tile.command.mjs +0 -10
  63. package/dist/esm2022/map/messages/commands/set-map-center.command.mjs +0 -23
  64. package/dist/esm2022/map/messages/commands/start-drawing.command.mjs +0 -25
  65. package/dist/esm2022/map/messages/events/drawing-finished.event.mjs +0 -5
  66. package/dist/esm2022/map/messages/events/map-click.event.mjs +0 -27
  67. package/dist/esm2022/map/messages/events/map-feature-hovered.event.mjs +0 -23
  68. package/dist/esm2022/map/messages/events/map-move-end.event.mjs +0 -16
  69. package/dist/esm2022/map/messages/events/map-pointer-move.event.mjs +0 -21
  70. package/dist/esm2022/map/messages/events/map-rendered.event.mjs +0 -18
  71. package/dist/esm2022/map/messages/executors/calculate-area.executor.mjs +0 -17
  72. package/dist/esm2022/map/messages/executors/filter-features-in-area.executor.mjs +0 -20
  73. package/dist/esm2022/map/messages/executors/filter-features-in-point.executor.mjs +0 -28
  74. package/dist/esm2022/map/messages/executors/generate-draw.executor.mjs +0 -14
  75. package/dist/esm2022/map/messages/executors/generate-zoom-control.executor.mjs +0 -10
  76. package/dist/esm2022/map/messages/executors/get-geometry-length.executor.mjs +0 -18
  77. package/dist/esm2022/map/messages/executors/get-map-position.executor.mjs +0 -13
  78. package/dist/esm2022/map/messages/executors/polygon-self-intersection.executor.mjs +0 -10
  79. package/dist/esm2022/map/messages/index.mjs +0 -25
  80. package/dist/esm2022/map/messages/queries/get-features-in-area.query.mjs +0 -22
  81. package/dist/esm2022/map/messages/queries/get-features-in-point.query.mjs +0 -25
  82. package/dist/esm2022/map/messages/queries/get-layer.query.mjs +0 -10
  83. package/dist/esm2022/map/models/drawing-type.enum.mjs +0 -22
  84. package/dist/esm2022/map/models/feature-format.enum.mjs +0 -15
  85. package/dist/esm2022/map/models/i-identified.mjs +0 -2
  86. package/dist/esm2022/map/models/index.mjs +0 -10
  87. package/dist/esm2022/map/models/map-control.mjs +0 -15
  88. package/dist/esm2022/map/models/map-lyrs.enum.mjs +0 -19
  89. package/dist/esm2022/map/models/map-position.model.mjs +0 -2
  90. package/dist/esm2022/map/models/map-settings.mjs +0 -124
  91. package/dist/esm2022/map/models/map.constants.mjs +0 -6
  92. package/dist/esm2022/map/models/marker-model.mjs +0 -29
  93. package/dist/esm2022/map/models/polygon.model.mjs +0 -40
  94. package/dist/esm2022/map/ol-proxy.mjs +0 -6
  95. package/dist/esm2022/map/public-api.mjs +0 -16
  96. package/dist/esm2022/map/services/controls/controls.service.mjs +0 -37
  97. package/dist/esm2022/map/services/drawing/drawing-generation.service.mjs +0 -25
  98. package/dist/esm2022/map/services/drawing/drawing.service.mjs +0 -99
  99. package/dist/esm2022/map/services/drawing/feature-modification.service.mjs +0 -105
  100. package/dist/esm2022/map/services/feature.service.mjs +0 -77
  101. package/dist/esm2022/map/services/map-click.service.mjs +0 -55
  102. package/dist/esm2022/map/services/map-feature.service.mjs +0 -75
  103. package/dist/esm2022/map/services/map-management.service.mjs +0 -143
  104. package/dist/esm2022/map/services/map-postboy.service.mjs +0 -14
  105. package/dist/esm2022/map/services/map-state.service.mjs +0 -48
  106. package/dist/esm2022/map/services/message-registrator.service.mjs +0 -105
  107. package/dist/esm2022/maps-components.mjs +0 -5
  108. package/dist/esm2022/public-api.mjs +0 -5
  109. package/dist/esm2022/src/map/common/destructible.component.mjs +0 -18
  110. package/dist/esm2022/src/map/common/id.generator.mjs +0 -14
  111. package/dist/esm2022/src/map/helpers/index.mjs +0 -5
  112. package/dist/esm2022/src/map/helpers/marker-style.helper.mjs +0 -55
  113. package/dist/esm2022/src/map/helpers/polygon-style.helper.mjs +0 -54
  114. package/dist/esm2022/src/map/helpers/stringify-feature.helper.mjs +0 -61
  115. package/dist/esm2022/src/map/helpers/text-style.helper.mjs +0 -33
  116. package/dist/esm2022/src/map/map-plate/controls/index.mjs +0 -3
  117. package/dist/esm2022/src/map/map-plate/controls/map-control-zoom/map-control-zoom.component.mjs +0 -69
  118. package/dist/esm2022/src/map/map-plate/controls/map-control-zoom/zoom-control.factory.mjs +0 -13
  119. package/dist/esm2022/src/map/map-plate/controls/map-control-zoom/zoom-control.settings.mjs +0 -116
  120. package/dist/esm2022/src/map/map-plate/features/index.mjs +0 -3
  121. package/dist/esm2022/src/map/map-plate/features/markers/markers.component.mjs +0 -52
  122. package/dist/esm2022/src/map/map-plate/features/polygons/polygons.component.mjs +0 -56
  123. package/dist/esm2022/src/map/map-plate/layers/cluster-layer/cluster-layer-factory.service.mjs +0 -59
  124. package/dist/esm2022/src/map/map-plate/layers/cluster-layer/cluster-layer.component.mjs +0 -60
  125. package/dist/esm2022/src/map/map-plate/layers/cluster-layer/cluster-layer.manager.mjs +0 -38
  126. package/dist/esm2022/src/map/map-plate/layers/cluster-layer/cluster-layer.settings.mjs +0 -145
  127. package/dist/esm2022/src/map/map-plate/layers/feature-layer/feature-layer.component.mjs +0 -52
  128. package/dist/esm2022/src/map/map-plate/layers/feature-layer/feature-layer.factory.mjs +0 -28
  129. package/dist/esm2022/src/map/map-plate/layers/feature-layer/feature-layer.settings.mjs +0 -139
  130. package/dist/esm2022/src/map/map-plate/layers/image-layer/image-layer-factory.mjs +0 -26
  131. package/dist/esm2022/src/map/map-plate/layers/image-layer/image-layer.component.mjs +0 -52
  132. package/dist/esm2022/src/map/map-plate/layers/image-layer/image-layer.settings.mjs +0 -134
  133. package/dist/esm2022/src/map/map-plate/layers/index.mjs +0 -12
  134. package/dist/esm2022/src/map/map-plate/layers/osm-tile-layer/osm-tile-layer.component.mjs +0 -67
  135. package/dist/esm2022/src/map/map-plate/layers/raster-tile/raster-tile-layer.component.mjs +0 -52
  136. package/dist/esm2022/src/map/map-plate/layers/raster-tile/raster-tile-layer.factory.mjs +0 -74
  137. package/dist/esm2022/src/map/map-plate/layers/raster-tile/raster-tile-layer.settings.mjs +0 -165
  138. package/dist/esm2022/src/map/map-plate/layers/tile-layer/tile-layer.component.mjs +0 -52
  139. package/dist/esm2022/src/map/map-plate/layers/tile-layer/tile-layer.factory.mjs +0 -68
  140. package/dist/esm2022/src/map/map-plate/layers/tile-layer/tile-layer.settings.mjs +0 -139
  141. package/dist/esm2022/src/map/map-plate/map-plate.component.mjs +0 -125
  142. package/dist/esm2022/src/map/map-plate/map-plate.factory.service.mjs +0 -29
  143. package/dist/esm2022/src/map/map-plate/tooltips/index.mjs +0 -3
  144. package/dist/esm2022/src/map/map-plate/tooltips/tooltip/tooltip.component.mjs +0 -84
  145. package/dist/esm2022/src/map/map-plate/tooltips/tooltip/tooltip.settings.mjs +0 -31
  146. package/dist/esm2022/src/map/maps-components-src-map.mjs +0 -5
  147. package/dist/esm2022/src/map/messages/commands/add-control.command.mjs +0 -18
  148. package/dist/esm2022/src/map/messages/commands/add-image-layer.command.mjs +0 -10
  149. package/dist/esm2022/src/map/messages/commands/add-layer.command.mjs +0 -10
  150. package/dist/esm2022/src/map/messages/commands/add-raster-tile-command.mjs +0 -10
  151. package/dist/esm2022/src/map/messages/commands/add-tile.command.mjs +0 -10
  152. package/dist/esm2022/src/map/messages/commands/cancel-drawing.command.mjs +0 -8
  153. package/dist/esm2022/src/map/messages/commands/cancel-feature-modification.command.mjs +0 -8
  154. package/dist/esm2022/src/map/messages/commands/close-tooltip.command.mjs +0 -18
  155. package/dist/esm2022/src/map/messages/commands/draw-selection-area.command.mjs +0 -26
  156. package/dist/esm2022/src/map/messages/commands/fit-to-features.command.mjs +0 -12
  157. package/dist/esm2022/src/map/messages/commands/fit-to-polygons.command.mjs +0 -22
  158. package/dist/esm2022/src/map/messages/commands/modify-feature.command.mjs +0 -31
  159. package/dist/esm2022/src/map/messages/commands/place-layer-features.command.mjs +0 -12
  160. package/dist/esm2022/src/map/messages/commands/remove-control.command.mjs +0 -23
  161. package/dist/esm2022/src/map/messages/commands/remove-image-layer.command.mjs +0 -10
  162. package/dist/esm2022/src/map/messages/commands/remove-layer.command.mjs +0 -10
  163. package/dist/esm2022/src/map/messages/commands/remove-raster-tile.command.mjs +0 -10
  164. package/dist/esm2022/src/map/messages/commands/remove-tile.command.mjs +0 -10
  165. package/dist/esm2022/src/map/messages/commands/set-map-center.command.mjs +0 -23
  166. package/dist/esm2022/src/map/messages/commands/start-drawing.command.mjs +0 -25
  167. package/dist/esm2022/src/map/messages/events/drawing-finished.event.mjs +0 -5
  168. package/dist/esm2022/src/map/messages/events/map-click.event.mjs +0 -27
  169. package/dist/esm2022/src/map/messages/events/map-feature-hovered.event.mjs +0 -23
  170. package/dist/esm2022/src/map/messages/events/map-move-end.event.mjs +0 -16
  171. package/dist/esm2022/src/map/messages/events/map-pointer-move.event.mjs +0 -21
  172. package/dist/esm2022/src/map/messages/events/map-rendered.event.mjs +0 -18
  173. package/dist/esm2022/src/map/messages/executors/calculate-area.executor.mjs +0 -17
  174. package/dist/esm2022/src/map/messages/executors/filter-features-in-area.executor.mjs +0 -20
  175. package/dist/esm2022/src/map/messages/executors/filter-features-in-point.executor.mjs +0 -28
  176. package/dist/esm2022/src/map/messages/executors/generate-draw.executor.mjs +0 -14
  177. package/dist/esm2022/src/map/messages/executors/generate-zoom-control.executor.mjs +0 -10
  178. package/dist/esm2022/src/map/messages/executors/get-geometry-length.executor.mjs +0 -18
  179. package/dist/esm2022/src/map/messages/executors/get-map-position.executor.mjs +0 -13
  180. package/dist/esm2022/src/map/messages/executors/polygon-self-intersection.executor.mjs +0 -10
  181. package/dist/esm2022/src/map/messages/index.mjs +0 -25
  182. package/dist/esm2022/src/map/messages/queries/get-features-in-area.query.mjs +0 -22
  183. package/dist/esm2022/src/map/messages/queries/get-features-in-point.query.mjs +0 -25
  184. package/dist/esm2022/src/map/messages/queries/get-layer.query.mjs +0 -10
  185. package/dist/esm2022/src/map/models/drawing-type.enum.mjs +0 -22
  186. package/dist/esm2022/src/map/models/feature-format.enum.mjs +0 -15
  187. package/dist/esm2022/src/map/models/i-identified.mjs +0 -2
  188. package/dist/esm2022/src/map/models/index.mjs +0 -10
  189. package/dist/esm2022/src/map/models/map-control.mjs +0 -15
  190. package/dist/esm2022/src/map/models/map-lyrs.enum.mjs +0 -19
  191. package/dist/esm2022/src/map/models/map-position.model.mjs +0 -2
  192. package/dist/esm2022/src/map/models/map-settings.mjs +0 -124
  193. package/dist/esm2022/src/map/models/map.constants.mjs +0 -6
  194. package/dist/esm2022/src/map/models/marker-model.mjs +0 -29
  195. package/dist/esm2022/src/map/models/polygon.model.mjs +0 -40
  196. package/dist/esm2022/src/map/ol-proxy.mjs +0 -6
  197. package/dist/esm2022/src/map/public-api.mjs +0 -16
  198. package/dist/esm2022/src/map/services/controls/controls.service.mjs +0 -37
  199. package/dist/esm2022/src/map/services/drawing/drawing-generation.service.mjs +0 -25
  200. package/dist/esm2022/src/map/services/drawing/drawing.service.mjs +0 -99
  201. package/dist/esm2022/src/map/services/drawing/feature-modification.service.mjs +0 -105
  202. package/dist/esm2022/src/map/services/feature.service.mjs +0 -77
  203. package/dist/esm2022/src/map/services/map-click.service.mjs +0 -55
  204. package/dist/esm2022/src/map/services/map-feature.service.mjs +0 -75
  205. package/dist/esm2022/src/map/services/map-management.service.mjs +0 -143
  206. package/dist/esm2022/src/map/services/map-postboy.service.mjs +0 -14
  207. package/dist/esm2022/src/map/services/map-state.service.mjs +0 -48
  208. package/dist/esm2022/src/map/services/message-registrator.service.mjs +0 -105
  209. package/dist/map/common/destructible.component.d.ts +0 -10
  210. package/dist/map/common/id.generator.d.ts +0 -4
  211. package/dist/map/helpers/index.d.ts +0 -4
  212. package/dist/map/helpers/marker-style.helper.d.ts +0 -33
  213. package/dist/map/helpers/polygon-style.helper.d.ts +0 -26
  214. package/dist/map/helpers/stringify-feature.helper.d.ts +0 -26
  215. package/dist/map/helpers/text-style.helper.d.ts +0 -19
  216. package/dist/map/map-plate/controls/index.d.ts +0 -2
  217. package/dist/map/map-plate/controls/map-control-zoom/map-control-zoom.component.d.ts +0 -36
  218. package/dist/map/map-plate/controls/map-control-zoom/zoom-control.factory.d.ts +0 -5
  219. package/dist/map/map-plate/controls/map-control-zoom/zoom-control.settings.d.ts +0 -85
  220. package/dist/map/map-plate/features/index.d.ts +0 -2
  221. package/dist/map/map-plate/features/markers/markers.component.d.ts +0 -26
  222. package/dist/map/map-plate/features/polygons/polygons.component.d.ts +0 -26
  223. package/dist/map/map-plate/layers/cluster-layer/cluster-layer-factory.service.d.ts +0 -11
  224. package/dist/map/map-plate/layers/cluster-layer/cluster-layer.component.d.ts +0 -29
  225. package/dist/map/map-plate/layers/cluster-layer/cluster-layer.manager.d.ts +0 -13
  226. package/dist/map/map-plate/layers/cluster-layer/cluster-layer.settings.d.ts +0 -100
  227. package/dist/map/map-plate/layers/feature-layer/feature-layer.component.d.ts +0 -22
  228. package/dist/map/map-plate/layers/feature-layer/feature-layer.factory.d.ts +0 -9
  229. package/dist/map/map-plate/layers/feature-layer/feature-layer.settings.d.ts +0 -103
  230. package/dist/map/map-plate/layers/image-layer/image-layer-factory.d.ts +0 -9
  231. package/dist/map/map-plate/layers/image-layer/image-layer.component.d.ts +0 -22
  232. package/dist/map/map-plate/layers/image-layer/image-layer.settings.d.ts +0 -97
  233. package/dist/map/map-plate/layers/index.d.ts +0 -11
  234. package/dist/map/map-plate/layers/osm-tile-layer/osm-tile-layer.component.d.ts +0 -21
  235. package/dist/map/map-plate/layers/raster-tile/raster-tile-layer.component.d.ts +0 -21
  236. package/dist/map/map-plate/layers/raster-tile/raster-tile-layer.factory.d.ts +0 -12
  237. package/dist/map/map-plate/layers/raster-tile/raster-tile-layer.settings.d.ts +0 -119
  238. package/dist/map/map-plate/layers/tile-layer/tile-layer.component.d.ts +0 -21
  239. package/dist/map/map-plate/layers/tile-layer/tile-layer.factory.d.ts +0 -12
  240. package/dist/map/map-plate/layers/tile-layer/tile-layer.settings.d.ts +0 -103
  241. package/dist/map/map-plate/map-plate.component.d.ts +0 -30
  242. package/dist/map/map-plate/map-plate.factory.service.d.ts +0 -8
  243. package/dist/map/map-plate/tooltips/index.d.ts +0 -2
  244. package/dist/map/map-plate/tooltips/tooltip/tooltip.component.d.ts +0 -27
  245. package/dist/map/map-plate/tooltips/tooltip/tooltip.settings.d.ts +0 -11
  246. package/dist/map/messages/commands/add-control.command.d.ts +0 -15
  247. package/dist/map/messages/commands/add-image-layer.command.d.ts +0 -8
  248. package/dist/map/messages/commands/add-layer.command.d.ts +0 -9
  249. package/dist/map/messages/commands/add-raster-tile-command.d.ts +0 -8
  250. package/dist/map/messages/commands/add-tile.command.d.ts +0 -8
  251. package/dist/map/messages/commands/cancel-drawing.command.d.ts +0 -7
  252. package/dist/map/messages/commands/cancel-feature-modification.command.d.ts +0 -7
  253. package/dist/map/messages/commands/close-tooltip.command.d.ts +0 -14
  254. package/dist/map/messages/commands/draw-selection-area.command.d.ts +0 -24
  255. package/dist/map/messages/commands/fit-to-features.command.d.ts +0 -9
  256. package/dist/map/messages/commands/fit-to-polygons.command.d.ts +0 -18
  257. package/dist/map/messages/commands/modify-feature.command.d.ts +0 -25
  258. package/dist/map/messages/commands/place-layer-features.command.d.ts +0 -9
  259. package/dist/map/messages/commands/remove-control.command.d.ts +0 -20
  260. package/dist/map/messages/commands/remove-image-layer.command.d.ts +0 -8
  261. package/dist/map/messages/commands/remove-layer.command.d.ts +0 -7
  262. package/dist/map/messages/commands/remove-raster-tile.command.d.ts +0 -8
  263. package/dist/map/messages/commands/remove-tile.command.d.ts +0 -8
  264. package/dist/map/messages/commands/set-map-center.command.d.ts +0 -17
  265. package/dist/map/messages/commands/start-drawing.command.d.ts +0 -20
  266. package/dist/map/messages/events/drawing-finished.event.d.ts +0 -4
  267. package/dist/map/messages/events/map-click.event.d.ts +0 -32
  268. package/dist/map/messages/events/map-feature-hovered.event.d.ts +0 -19
  269. package/dist/map/messages/events/map-move-end.event.d.ts +0 -13
  270. package/dist/map/messages/events/map-pointer-move.event.d.ts +0 -17
  271. package/dist/map/messages/events/map-rendered.event.d.ts +0 -15
  272. package/dist/map/messages/executors/calculate-area.executor.d.ts +0 -16
  273. package/dist/map/messages/executors/filter-features-in-area.executor.d.ts +0 -17
  274. package/dist/map/messages/executors/filter-features-in-point.executor.d.ts +0 -24
  275. package/dist/map/messages/executors/generate-draw.executor.d.ts +0 -13
  276. package/dist/map/messages/executors/generate-zoom-control.executor.d.ts +0 -8
  277. package/dist/map/messages/executors/get-geometry-length.executor.d.ts +0 -11
  278. package/dist/map/messages/executors/get-map-position.executor.d.ts +0 -11
  279. package/dist/map/messages/executors/polygon-self-intersection.executor.d.ts +0 -7
  280. package/dist/map/messages/index.d.ts +0 -24
  281. package/dist/map/messages/queries/get-features-in-area.query.d.ts +0 -20
  282. package/dist/map/messages/queries/get-features-in-point.query.d.ts +0 -21
  283. package/dist/map/messages/queries/get-layer.query.d.ts +0 -9
  284. package/dist/map/models/drawing-type.enum.d.ts +0 -20
  285. package/dist/map/models/feature-format.enum.d.ts +0 -13
  286. package/dist/map/models/i-identified.d.ts +0 -3
  287. package/dist/map/models/index.d.ts +0 -9
  288. package/dist/map/models/map-control.d.ts +0 -13
  289. package/dist/map/models/map-lyrs.enum.d.ts +0 -10
  290. package/dist/map/models/map-position.model.d.ts +0 -18
  291. package/dist/map/models/map-settings.d.ts +0 -81
  292. package/dist/map/models/map.constants.d.ts +0 -5
  293. package/dist/map/models/marker-model.d.ts +0 -16
  294. package/dist/map/models/polygon.model.d.ts +0 -22
  295. package/dist/map/ol-proxy.d.ts +0 -7
  296. package/dist/map/public-api.d.ts +0 -12
  297. package/dist/map/services/controls/controls.service.d.ts +0 -14
  298. package/dist/map/services/drawing/drawing-generation.service.d.ts +0 -6
  299. package/dist/map/services/drawing/drawing.service.d.ts +0 -19
  300. package/dist/map/services/drawing/feature-modification.service.d.ts +0 -22
  301. package/dist/map/services/feature.service.d.ts +0 -16
  302. package/dist/map/services/map-click.service.d.ts +0 -16
  303. package/dist/map/services/map-feature.service.d.ts +0 -17
  304. package/dist/map/services/map-management.service.d.ts +0 -22
  305. package/dist/map/services/map-postboy.service.d.ts +0 -7
  306. package/dist/map/services/map-state.service.d.ts +0 -15
  307. package/dist/map/services/message-registrator.service.d.ts +0 -18
  308. package/dist/public-api.d.ts +0 -1
  309. package/dist/src/map/common/destructible.component.d.ts +0 -10
  310. package/dist/src/map/common/id.generator.d.ts +0 -4
  311. package/dist/src/map/helpers/index.d.ts +0 -4
  312. package/dist/src/map/helpers/marker-style.helper.d.ts +0 -33
  313. package/dist/src/map/helpers/polygon-style.helper.d.ts +0 -26
  314. package/dist/src/map/helpers/stringify-feature.helper.d.ts +0 -26
  315. package/dist/src/map/helpers/text-style.helper.d.ts +0 -19
  316. package/dist/src/map/map-plate/controls/index.d.ts +0 -2
  317. package/dist/src/map/map-plate/controls/map-control-zoom/map-control-zoom.component.d.ts +0 -36
  318. package/dist/src/map/map-plate/controls/map-control-zoom/zoom-control.factory.d.ts +0 -5
  319. package/dist/src/map/map-plate/controls/map-control-zoom/zoom-control.settings.d.ts +0 -85
  320. package/dist/src/map/map-plate/features/index.d.ts +0 -2
  321. package/dist/src/map/map-plate/features/markers/markers.component.d.ts +0 -26
  322. package/dist/src/map/map-plate/features/polygons/polygons.component.d.ts +0 -26
  323. package/dist/src/map/map-plate/layers/cluster-layer/cluster-layer-factory.service.d.ts +0 -11
  324. package/dist/src/map/map-plate/layers/cluster-layer/cluster-layer.component.d.ts +0 -29
  325. package/dist/src/map/map-plate/layers/cluster-layer/cluster-layer.manager.d.ts +0 -13
  326. package/dist/src/map/map-plate/layers/cluster-layer/cluster-layer.settings.d.ts +0 -100
  327. package/dist/src/map/map-plate/layers/feature-layer/feature-layer.component.d.ts +0 -22
  328. package/dist/src/map/map-plate/layers/feature-layer/feature-layer.factory.d.ts +0 -9
  329. package/dist/src/map/map-plate/layers/feature-layer/feature-layer.settings.d.ts +0 -103
  330. package/dist/src/map/map-plate/layers/image-layer/image-layer-factory.d.ts +0 -9
  331. package/dist/src/map/map-plate/layers/image-layer/image-layer.component.d.ts +0 -22
  332. package/dist/src/map/map-plate/layers/image-layer/image-layer.settings.d.ts +0 -97
  333. package/dist/src/map/map-plate/layers/index.d.ts +0 -11
  334. package/dist/src/map/map-plate/layers/osm-tile-layer/osm-tile-layer.component.d.ts +0 -21
  335. package/dist/src/map/map-plate/layers/raster-tile/raster-tile-layer.component.d.ts +0 -21
  336. package/dist/src/map/map-plate/layers/raster-tile/raster-tile-layer.factory.d.ts +0 -12
  337. package/dist/src/map/map-plate/layers/raster-tile/raster-tile-layer.settings.d.ts +0 -119
  338. package/dist/src/map/map-plate/layers/tile-layer/tile-layer.component.d.ts +0 -21
  339. package/dist/src/map/map-plate/layers/tile-layer/tile-layer.factory.d.ts +0 -12
  340. package/dist/src/map/map-plate/layers/tile-layer/tile-layer.settings.d.ts +0 -103
  341. package/dist/src/map/map-plate/map-plate.component.d.ts +0 -30
  342. package/dist/src/map/map-plate/map-plate.factory.service.d.ts +0 -8
  343. package/dist/src/map/map-plate/tooltips/index.d.ts +0 -2
  344. package/dist/src/map/map-plate/tooltips/tooltip/tooltip.component.d.ts +0 -27
  345. package/dist/src/map/map-plate/tooltips/tooltip/tooltip.settings.d.ts +0 -11
  346. package/dist/src/map/messages/commands/add-control.command.d.ts +0 -15
  347. package/dist/src/map/messages/commands/add-image-layer.command.d.ts +0 -8
  348. package/dist/src/map/messages/commands/add-layer.command.d.ts +0 -9
  349. package/dist/src/map/messages/commands/add-raster-tile-command.d.ts +0 -8
  350. package/dist/src/map/messages/commands/add-tile.command.d.ts +0 -8
  351. package/dist/src/map/messages/commands/cancel-drawing.command.d.ts +0 -7
  352. package/dist/src/map/messages/commands/cancel-feature-modification.command.d.ts +0 -7
  353. package/dist/src/map/messages/commands/close-tooltip.command.d.ts +0 -14
  354. package/dist/src/map/messages/commands/draw-selection-area.command.d.ts +0 -24
  355. package/dist/src/map/messages/commands/fit-to-features.command.d.ts +0 -9
  356. package/dist/src/map/messages/commands/fit-to-polygons.command.d.ts +0 -18
  357. package/dist/src/map/messages/commands/modify-feature.command.d.ts +0 -25
  358. package/dist/src/map/messages/commands/place-layer-features.command.d.ts +0 -9
  359. package/dist/src/map/messages/commands/remove-control.command.d.ts +0 -20
  360. package/dist/src/map/messages/commands/remove-image-layer.command.d.ts +0 -8
  361. package/dist/src/map/messages/commands/remove-layer.command.d.ts +0 -7
  362. package/dist/src/map/messages/commands/remove-raster-tile.command.d.ts +0 -8
  363. package/dist/src/map/messages/commands/remove-tile.command.d.ts +0 -8
  364. package/dist/src/map/messages/commands/set-map-center.command.d.ts +0 -17
  365. package/dist/src/map/messages/commands/start-drawing.command.d.ts +0 -20
  366. package/dist/src/map/messages/events/drawing-finished.event.d.ts +0 -4
  367. package/dist/src/map/messages/events/map-click.event.d.ts +0 -32
  368. package/dist/src/map/messages/events/map-feature-hovered.event.d.ts +0 -19
  369. package/dist/src/map/messages/events/map-move-end.event.d.ts +0 -13
  370. package/dist/src/map/messages/events/map-pointer-move.event.d.ts +0 -17
  371. package/dist/src/map/messages/events/map-rendered.event.d.ts +0 -15
  372. package/dist/src/map/messages/executors/calculate-area.executor.d.ts +0 -16
  373. package/dist/src/map/messages/executors/filter-features-in-area.executor.d.ts +0 -17
  374. package/dist/src/map/messages/executors/filter-features-in-point.executor.d.ts +0 -24
  375. package/dist/src/map/messages/executors/generate-draw.executor.d.ts +0 -13
  376. package/dist/src/map/messages/executors/generate-zoom-control.executor.d.ts +0 -8
  377. package/dist/src/map/messages/executors/get-geometry-length.executor.d.ts +0 -11
  378. package/dist/src/map/messages/executors/get-map-position.executor.d.ts +0 -11
  379. package/dist/src/map/messages/executors/polygon-self-intersection.executor.d.ts +0 -7
  380. package/dist/src/map/messages/index.d.ts +0 -24
  381. package/dist/src/map/messages/queries/get-features-in-area.query.d.ts +0 -20
  382. package/dist/src/map/messages/queries/get-features-in-point.query.d.ts +0 -21
  383. package/dist/src/map/messages/queries/get-layer.query.d.ts +0 -9
  384. package/dist/src/map/models/drawing-type.enum.d.ts +0 -20
  385. package/dist/src/map/models/feature-format.enum.d.ts +0 -13
  386. package/dist/src/map/models/i-identified.d.ts +0 -3
  387. package/dist/src/map/models/index.d.ts +0 -9
  388. package/dist/src/map/models/map-control.d.ts +0 -13
  389. package/dist/src/map/models/map-lyrs.enum.d.ts +0 -10
  390. package/dist/src/map/models/map-position.model.d.ts +0 -18
  391. package/dist/src/map/models/map-settings.d.ts +0 -81
  392. package/dist/src/map/models/map.constants.d.ts +0 -5
  393. package/dist/src/map/models/marker-model.d.ts +0 -16
  394. package/dist/src/map/models/polygon.model.d.ts +0 -22
  395. package/dist/src/map/ol-proxy.d.ts +0 -7
  396. package/dist/src/map/public-api.d.ts +0 -12
  397. package/dist/src/map/services/controls/controls.service.d.ts +0 -14
  398. package/dist/src/map/services/drawing/drawing-generation.service.d.ts +0 -6
  399. package/dist/src/map/services/drawing/drawing.service.d.ts +0 -19
  400. package/dist/src/map/services/drawing/feature-modification.service.d.ts +0 -22
  401. package/dist/src/map/services/feature.service.d.ts +0 -16
  402. package/dist/src/map/services/map-click.service.d.ts +0 -16
  403. package/dist/src/map/services/map-feature.service.d.ts +0 -17
  404. package/dist/src/map/services/map-management.service.d.ts +0 -22
  405. package/dist/src/map/services/map-postboy.service.d.ts +0 -7
  406. package/dist/src/map/services/map-state.service.d.ts +0 -15
  407. package/dist/src/map/services/message-registrator.service.d.ts +0 -18
@@ -1,99 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { StartDrawingCommand } from '../../messages/commands/start-drawing.command';
3
- import { CancelDrawingCommand } from '../../messages/commands/cancel-drawing.command';
4
- import { first } from 'rxjs/operators';
5
- import { DrawingFinishedEvent } from '../../messages/events/drawing-finished.event';
6
- import { MapClickEvent, MapRenderedEvent } from '../../messages';
7
- import { GetLayerQuery } from '../../messages/queries/get-layer.query';
8
- import { MapConstants } from '../../models/map.constants';
9
- import { Vector as Source } from 'ol/source';
10
- import { FeatureOutputFormat, PolygonModel } from '../../models';
11
- import { GeoJSON, WKT } from 'ol/format';
12
- import { DrawSelectionAreaCommand } from '../../messages/commands/draw-selection-area.command';
13
- import { GetFeaturesInAreaQuery } from '../../messages/queries/get-features-in-area.query';
14
- import { GenerateDrawExecutor } from '../../messages/executors/generate-draw.executor';
15
- import { Dictionary } from '@artstesh/collections';
16
- import * as i0 from "@angular/core";
17
- import * as i1 from "../map-postboy.service";
18
- export class DrawingService {
19
- postboy;
20
- drawInteraction;
21
- map;
22
- constructor(postboy) {
23
- this.postboy = postboy;
24
- }
25
- up() {
26
- this.observeDrawing();
27
- this.observeSelectArea();
28
- this.observeMapRender();
29
- }
30
- observeSelectArea() {
31
- this.postboy.sub(DrawSelectionAreaCommand).subscribe((ev) => {
32
- this.postboy.lock(MapClickEvent);
33
- this.postboy.fireCallback(new StartDrawingCommand(ev.type, ev.style), (r) => {
34
- if (!r) {
35
- ev.finish(new Dictionary());
36
- return;
37
- }
38
- const area = PolygonModel.fromGeoJson(1, r).feature.getGeometry();
39
- this.postboy.fireCallback(new GetFeaturesInAreaQuery(area, ev.ignore), (result) => ev.finish(result));
40
- });
41
- });
42
- }
43
- observeDrawing() {
44
- this.postboy.sub(StartDrawingCommand).subscribe((ev) => {
45
- this.draw((l) => {
46
- if (!l || !this.map) {
47
- this.clearInteraction(l);
48
- return;
49
- }
50
- const cancelSub = this.observeCancelation(ev, l);
51
- this.drawInteraction = this.postboy.exec(new GenerateDrawExecutor(l, ev.style, ev.type));
52
- this.map?.addInteraction(this.drawInteraction);
53
- this.drawInteraction.on('drawend', (evt) => {
54
- cancelSub.unsubscribe();
55
- this.onEnd(evt, ev, l);
56
- });
57
- });
58
- });
59
- }
60
- onEnd(evt, command, layer) {
61
- command.finish(command.format === FeatureOutputFormat.GeoJson
62
- ? new GeoJSON().writeFeature(evt.feature)
63
- : command.format === FeatureOutputFormat.WKT
64
- ? new WKT().writeFeature(evt.feature)
65
- : new GeoJSON().writeGeometry(evt.feature.getGeometry()));
66
- this.clearInteraction(layer);
67
- }
68
- observeMapRender() {
69
- this.postboy.sub(MapRenderedEvent).subscribe((m) => {
70
- this.map = m.map;
71
- });
72
- }
73
- draw(action) {
74
- this.postboy.fireCallback(new GetLayerQuery(MapConstants.DrawingLayerId), (l) => action(l));
75
- }
76
- observeCancelation(ev, layer) {
77
- return this.postboy
78
- .sub(CancelDrawingCommand)
79
- .pipe(first())
80
- .subscribe(() => {
81
- ev.finish(null);
82
- this.clearInteraction(layer);
83
- });
84
- }
85
- clearInteraction(layer) {
86
- if (!!this.drawInteraction) {
87
- this.map?.removeInteraction(this.drawInteraction);
88
- layer?.setSource(new Source({}));
89
- }
90
- this.postboy.unlock(MapClickEvent);
91
- setTimeout(() => this.postboy.fire(new DrawingFinishedEvent()), 300);
92
- }
93
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DrawingService, deps: [{ token: i1.MapPostboyService }], target: i0.ɵɵFactoryTarget.Injectable });
94
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DrawingService });
95
- }
96
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DrawingService, decorators: [{
97
- type: Injectable
98
- }], ctorParameters: () => [{ type: i1.MapPostboyService }] });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2luZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwcy1jb21wb25lbnRzL3NyYy9tYXAvc2VydmljZXMvZHJhd2luZy9kcmF3aW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNwRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN0RixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFFcEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHMUQsT0FBTyxFQUFFLE1BQU0sSUFBSSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFN0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUlqRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN6QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUUzRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUN2RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7OztBQUluRCxNQUFNLE9BQU8sY0FBYztJQUlM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Q0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDbEQsS0FBSyxFQUFFLFNBQVMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ25DLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNuQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxvQkFBb0IsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDdkUsQ0FBQzt3R0FsRlUsY0FBYzs0R0FBZCxjQUFjOzs0RkFBZCxjQUFjO2tCQUQxQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSVBvc3Rib3lEZXBlbmRpbmdTZXJ2aWNlIH0gZnJvbSAnQGFydHN0ZXNoL3Bvc3Rib3knO1xuaW1wb3J0IHsgTWFwUG9zdGJveVNlcnZpY2UgfSBmcm9tICcuLi9tYXAtcG9zdGJveS5zZXJ2aWNlJztcbmltcG9ydCB7IFN0YXJ0RHJhd2luZ0NvbW1hbmQgfSBmcm9tICcuLi8uLi9tZXNzYWdlcy9jb21tYW5kcy9zdGFydC1kcmF3aW5nLmNvbW1hbmQnO1xuaW1wb3J0IHsgQ2FuY2VsRHJhd2luZ0NvbW1hbmQgfSBmcm9tICcuLi8uLi9tZXNzYWdlcy9jb21tYW5kcy9jYW5jZWwtZHJhd2luZy5jb21tYW5kJztcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRHJhd2luZ0ZpbmlzaGVkRXZlbnQgfSBmcm9tICcuLi8uLi9tZXNzYWdlcy9ldmVudHMvZHJhd2luZy1maW5pc2hlZC5ldmVudCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1hcENsaWNrRXZlbnQsIE1hcFJlbmRlcmVkRXZlbnQgfSBmcm9tICcuLi8uLi9tZXNzYWdlcyc7XG5pbXBvcnQgeyBHZXRMYXllclF1ZXJ5IH0gZnJvbSAnLi4vLi4vbWVzc2FnZXMvcXVlcmllcy9nZXQtbGF5ZXIucXVlcnknO1xuaW1wb3J0IHsgTWFwQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL21hcC5jb25zdGFudHMnO1xuaW1wb3J0IHsgVmVjdG9yIGFzIExheWVyIH0gZnJvbSAnb2wvbGF5ZXInO1xuaW1wb3J0IFZlY3RvclNvdXJjZSBmcm9tICdvbC9zb3VyY2UvVmVjdG9yJztcbmltcG9ydCB7IFZlY3RvciBhcyBTb3VyY2UgfSBmcm9tICdvbC9zb3VyY2UnO1xuaW1wb3J0IHsgRHJhdyB9IGZyb20gJ29sL2ludGVyYWN0aW9uJztcbmltcG9ydCB7IEZlYXR1cmVPdXRwdXRGb3JtYXQsIFBvbHlnb25Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBNYXAgfSBmcm9tICdvbCc7XG5pbXBvcnQgeyBEcmF3RXZlbnQgfSBmcm9tICdvbC9pbnRlcmFjdGlvbi9EcmF3JztcbmltcG9ydCB7IEdlb21ldHJ5IH0gZnJvbSAnb2wvZ2VvbSc7XG5pbXBvcnQgeyBHZW9KU09OLCBXS1QgfSBmcm9tICdvbC9mb3JtYXQnO1xuaW1wb3J0IHsgRHJhd1NlbGVjdGlvbkFyZWFDb21tYW5kIH0gZnJvbSAnLi4vLi4vbWVzc2FnZXMvY29tbWFuZHMvZHJhdy1zZWxlY3Rpb24tYXJlYS5jb21tYW5kJztcbmltcG9ydCB7IEdldEZlYXR1cmVzSW5BcmVhUXVlcnkgfSBmcm9tICcuLi8uLi9tZXNzYWdlcy9xdWVyaWVzL2dldC1mZWF0dXJlcy1pbi1hcmVhLnF1ZXJ5JztcbmltcG9ydCB7IElJZGVudGlmaWVkIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ktaWRlbnRpZmllZCc7XG5pbXBvcnQgeyBHZW5lcmF0ZURyYXdFeGVjdXRvciB9IGZyb20gJy4uLy4uL21lc3NhZ2VzL2V4ZWN1dG9ycy9nZW5lcmF0ZS1kcmF3LmV4ZWN1dG9yJztcbmltcG9ydCB7IERpY3Rpb25hcnkgfSBmcm9tICdAYXJ0c3Rlc2gvY29sbGVjdGlvbnMnO1xuaW1wb3J0IHtGZWF0dXJlTGlrZX0gZnJvbSBcIm9sL0ZlYXR1cmVcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERyYXdpbmdTZXJ2aWNlIGltcGxlbWVudHMgSVBvc3Rib3lEZXBlbmRpbmdTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBkcmF3SW50ZXJhY3Rpb24/OiBEcmF3O1xuICBwcml2YXRlIG1hcD86IE1hcDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBvc3Rib3k6IE1hcFBvc3Rib3lTZXJ2aWNlKSB7fVxuXG4gIHVwKCk6IHZvaWQge1xuICAgIHRoaXMub2JzZXJ2ZURyYXdpbmcoKTtcbiAgICB0aGlzLm9ic2VydmVTZWxlY3RBcmVhKCk7XG4gICAgdGhpcy5vYnNlcnZlTWFwUmVuZGVyKCk7XG4gIH1cblxuICBwcml2YXRlIG9ic2VydmVTZWxlY3RBcmVhKCkge1xuICAgIHRoaXMucG9zdGJveS5zdWIoRHJhd1NlbGVjdGlvbkFyZWFDb21tYW5kKS5zdWJzY3JpYmUoKGV2KSA9PiB7XG4gICAgICB0aGlzLnBvc3Rib3kubG9jayhNYXBDbGlja0V2ZW50KTtcbiAgICAgIHRoaXMucG9zdGJveS5maXJlQ2FsbGJhY2sobmV3IFN0YXJ0RHJhd2luZ0NvbW1hbmQoZXYudHlwZSwgZXYuc3R5bGUpLCAocikgPT4ge1xuICAgICAgICBpZiAoIXIpIHtcbiAgICAgICAgICBldi5maW5pc2gobmV3IERpY3Rpb25hcnk8SUlkZW50aWZpZWRbXT4oKSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFyZWEgPSBQb2x5Z29uTW9kZWwuZnJvbUdlb0pzb24oMSwgcikuZmVhdHVyZS5nZXRHZW9tZXRyeSgpITtcbiAgICAgICAgdGhpcy5wb3N0Ym95LmZpcmVDYWxsYmFjayhuZXcgR2V0RmVhdHVyZXNJbkFyZWFRdWVyeShhcmVhLCBldi5pZ25vcmUpLCAocmVzdWx0KSA9PiBldi5maW5pc2gocmVzdWx0KSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgb2JzZXJ2ZURyYXdpbmcoKSB7XG4gICAgdGhpcy5wb3N0Ym95LnN1YihTdGFydERyYXdpbmdDb21tYW5kKS5zdWJzY3JpYmUoKGV2KSA9PiB7XG4gICAgICB0aGlzLmRyYXcoKGwpID0+IHtcbiAgICAgICAgaWYgKCFsIHx8ICF0aGlzLm1hcCkge1xuICAgICAgICAgIHRoaXMuY2xlYXJJbnRlcmFjdGlvbihsKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2FuY2VsU3ViID0gdGhpcy5vYnNlcnZlQ2FuY2VsYXRpb24oZXYsIGwpO1xuICAgICAgICB0aGlzLmRyYXdJbnRlcmFjdGlvbiA9IHRoaXMucG9zdGJveS5leGVjKG5ldyBHZW5lcmF0ZURyYXdFeGVjdXRvcihsLCBldi5zdHlsZSwgZXYudHlwZSkpITtcbiAgICAgICAgdGhpcy5tYXA/LmFkZEludGVyYWN0aW9uKHRoaXMuZHJhd0ludGVyYWN0aW9uKTtcbiAgICAgICAgdGhpcy5kcmF3SW50ZXJhY3Rpb24ub24oJ2RyYXdlbmQnLCAoZXZ0OiBEcmF3RXZlbnQpID0+IHtcbiAgICAgICAgICBjYW5jZWxTdWIudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICB0aGlzLm9uRW5kKGV2dCwgZXYsIGwpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkVuZChldnQ6IERyYXdFdmVudCwgY29tbWFuZDogU3RhcnREcmF3aW5nQ29tbWFuZCwgbGF5ZXI6IExheWVyPFNvdXJjZTxGZWF0dXJlTGlrZT4+KTogdm9pZCB7XG4gICAgY29tbWFuZC5maW5pc2goXG4gICAgICBjb21tYW5kLmZvcm1hdCA9PT0gRmVhdHVyZU91dHB1dEZvcm1hdC5HZW9Kc29uXG4gICAgICAgID8gbmV3IEdlb0pTT04oKS53cml0ZUZlYXR1cmUoZXZ0LmZlYXR1cmUpXG4gICAgICAgIDogY29tbWFuZC5mb3JtYXQgPT09IEZlYXR1cmVPdXRwdXRGb3JtYXQuV0tUXG4gICAgICAgID8gbmV3IFdLVCgpLndyaXRlRmVhdHVyZShldnQuZmVhdHVyZSlcbiAgICAgICAgOiBuZXcgR2VvSlNPTigpLndyaXRlR2VvbWV0cnkoZXZ0LmZlYXR1cmUuZ2V0R2VvbWV0cnkoKSEpLFxuICAgICk7XG4gICAgdGhpcy5jbGVhckludGVyYWN0aW9uKGxheWVyKTtcbiAgfVxuXG4gIHByaXZhdGUgb2JzZXJ2ZU1hcFJlbmRlcigpIHtcbiAgICB0aGlzLnBvc3Rib3kuc3ViKE1hcFJlbmRlcmVkRXZlbnQpLnN1YnNjcmliZSgobSkgPT4ge1xuICAgICAgdGhpcy5tYXAgPSBtLm1hcDtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZHJhdyhhY3Rpb246IChsYXllcjogTGF5ZXI8VmVjdG9yU291cmNlPGFueT4+IHwgbnVsbCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMucG9zdGJveS5maXJlQ2FsbGJhY2sobmV3IEdldExheWVyUXVlcnkoTWFwQ29uc3RhbnRzLkRyYXdpbmdMYXllcklkKSwgKGwpID0+IGFjdGlvbihsKSk7XG4gIH1cblxuICBwcml2YXRlIG9ic2VydmVDYW5jZWxhdGlvbihldjogU3RhcnREcmF3aW5nQ29tbWFuZCwgbGF5ZXI6IExheWVyPFZlY3RvclNvdXJjZTxhbnk+PiB8IG51bGwpOiBTdWJzY3JpcHRpb24ge1xuICAgIHJldHVybiB0aGlzLnBvc3Rib3lcbiAgICAgIC5zdWIoQ2FuY2VsRHJhd2luZ0NvbW1hbmQpXG4gICAgICAucGlwZShmaXJzdCgpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGV2LmZpbmlzaChudWxsKTtcbiAgICAgICAgdGhpcy5jbGVhckludGVyYWN0aW9uKGxheWVyKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhckludGVyYWN0aW9uKGxheWVyOiBMYXllcjxTb3VyY2U8RmVhdHVyZUxpa2U+PiB8IG51bGwpOiB2b2lkIHtcbiAgICBpZiAoISF0aGlzLmRyYXdJbnRlcmFjdGlvbikge1xuICAgICAgdGhpcy5tYXA/LnJlbW92ZUludGVyYWN0aW9uKHRoaXMuZHJhd0ludGVyYWN0aW9uKTtcbiAgICAgIGxheWVyPy5zZXRTb3VyY2UobmV3IFNvdXJjZSh7fSkpO1xuICAgIH1cbiAgICB0aGlzLnBvc3Rib3kudW5sb2NrKE1hcENsaWNrRXZlbnQpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5wb3N0Ym95LmZpcmUobmV3IERyYXdpbmdGaW5pc2hlZEV2ZW50KCkpLCAzMDApO1xuICB9XG59XG4iXX0=
@@ -1,105 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { Modify, Translate } from 'ol/interaction';
3
- import { Collection } from 'ol';
4
- import { MapRenderedEvent } from '../../messages';
5
- import { FeatureOutputFormat } from '../../models';
6
- import { GeoJSON, WKT } from 'ol/format';
7
- import { GetLayerQuery } from '../../messages/queries/get-layer.query';
8
- import { MapConstants } from '../../models/map.constants';
9
- import { first } from 'rxjs/operators';
10
- import { CancelFeatureModificationCommand } from '../../messages/commands/cancel-feature-modification.command';
11
- import { ModifyFeatureCommand } from '../../messages/commands/modify-feature.command';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "../map-postboy.service";
14
- export class FeatureModificationService {
15
- postboy;
16
- modify;
17
- translate;
18
- map;
19
- constructor(postboy) {
20
- this.postboy = postboy;
21
- }
22
- up() {
23
- this.observeModification();
24
- this.observeMapRender();
25
- }
26
- observeModification() {
27
- this.postboy.sub(ModifyFeatureCommand).subscribe((ev) => {
28
- this.defineLayer((l) => {
29
- if (!l || !this.map) {
30
- this.clearInteraction(l);
31
- return;
32
- }
33
- this.observeCancelation(ev, l);
34
- this.initFeature(l, ev.model.feature);
35
- this.addModify(ev);
36
- if (ev.draggable)
37
- this.addDragging(ev);
38
- });
39
- });
40
- }
41
- initFeature(layer, feature) {
42
- layer.getSource()?.clear();
43
- layer.getSource()?.addFeature(feature);
44
- }
45
- addModify(command) {
46
- this.modify = new Modify({
47
- features: new Collection([command.model.feature]),
48
- style: command.style,
49
- });
50
- this.modify.on('modifyend', () => {
51
- this.onModified(command);
52
- command.model.feature.changed();
53
- });
54
- this.map?.addInteraction(this.modify);
55
- }
56
- addDragging(command) {
57
- this.translate = new Translate({
58
- features: new Collection([command.model.feature]),
59
- condition: (ev) => {
60
- const clone = command.model.feature.clone();
61
- clone.getGeometry()?.scale(0.999);
62
- return clone.getGeometry().intersectsCoordinate(ev.coordinate);
63
- },
64
- });
65
- this.translate.on('translateend', () => this.onModified(command));
66
- this.map?.addInteraction(this.translate);
67
- }
68
- onModified(command) {
69
- command.next(command.format === FeatureOutputFormat.GeoJson
70
- ? new GeoJSON().writeFeature(command.model.feature)
71
- : command.format === FeatureOutputFormat.WKT
72
- ? new WKT().writeFeature(command.model.feature)
73
- : new GeoJSON().writeGeometry(command.model.feature.getGeometry()));
74
- }
75
- observeMapRender() {
76
- this.postboy.sub(MapRenderedEvent).subscribe((m) => {
77
- this.map = m.map;
78
- });
79
- }
80
- defineLayer(action) {
81
- this.postboy.fireCallback(new GetLayerQuery(MapConstants.DrawingLayerId), (l) => action(l));
82
- }
83
- observeCancelation(ev, layer) {
84
- return this.postboy
85
- .sub(CancelFeatureModificationCommand)
86
- .pipe(first())
87
- .subscribe(() => {
88
- ev.finish(null);
89
- this.clearInteraction(layer);
90
- });
91
- }
92
- clearInteraction(layer) {
93
- layer?.getSource()?.clear();
94
- if (this.modify)
95
- this.map?.removeInteraction(this.modify);
96
- if (this.translate)
97
- this.map?.removeInteraction(this.translate);
98
- }
99
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FeatureModificationService, deps: [{ token: i1.MapPostboyService }], target: i0.ɵɵFactoryTarget.Injectable });
100
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FeatureModificationService });
101
- }
102
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FeatureModificationService, decorators: [{
103
- type: Injectable
104
- }], ctorParameters: () => [{ type: i1.MapPostboyService }] });
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1tb2RpZmljYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hcHMtY29tcG9uZW50cy9zcmMvbWFwL3NlcnZpY2VzL2RyYXdpbmcvZmVhdHVyZS1tb2RpZmljYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBZ0IsTUFBTSxJQUFJLENBQUM7QUFFOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBSW5ELE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFMUQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZDLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBQy9HLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDOzs7QUFJdEYsTUFBTSxPQUFPLDBCQUEwQjtJQUtqQjtJQUpaLE1BQU0sQ0FBVTtJQUNoQixTQUFTLENBQWE7SUFDdEIsR0FBRyxDQUFPO0lBRWxCLFlBQW9CLE9BQTBCO1FBQTFCLFlBQU8sR0FBUCxPQUFPLENBQW1CO0lBQUcsQ0FBQztJQUVsRCxFQUFFO1FBQ0EsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLGdCQUFnQixF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LGdCQUFnQixDQUFDLEtBQXdDO1FBQy9ELEtBQUssRUFBRSxTQUFTLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUM1QixJQUFJLElBQUksQ0FBQyxNQUFNO1lBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDMUQsSUFBSSxJQUFJLENBQUMsU0FBUztZQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7d0dBM0ZVLDBCQUEwQjs0R0FBMUIsMEJBQTBCOzs0RkFBMUIsMEJBQTBCO2tCQUR0QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSVBvc3Rib3lEZXBlbmRpbmdTZXJ2aWNlIH0gZnJvbSAnQGFydHN0ZXNoL3Bvc3Rib3knO1xuaW1wb3J0IHsgTW9kaWZ5LCBUcmFuc2xhdGUgfSBmcm9tICdvbC9pbnRlcmFjdGlvbic7XG5pbXBvcnQgeyBDb2xsZWN0aW9uLCBGZWF0dXJlLCBNYXAgfSBmcm9tICdvbCc7XG5pbXBvcnQgeyBNYXBQb3N0Ym95U2VydmljZSB9IGZyb20gJy4uL21hcC1wb3N0Ym95LnNlcnZpY2UnO1xuaW1wb3J0IHsgTWFwUmVuZGVyZWRFdmVudCB9IGZyb20gJy4uLy4uL21lc3NhZ2VzJztcbmltcG9ydCB7IEZlYXR1cmVPdXRwdXRGb3JtYXQgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgVmVjdG9yIGFzIExheWVyIH0gZnJvbSAnb2wvbGF5ZXInO1xuaW1wb3J0IFZlY3RvclNvdXJjZSBmcm9tICdvbC9zb3VyY2UvVmVjdG9yJztcbmltcG9ydCB7IEdlb21ldHJ5IH0gZnJvbSAnb2wvZ2VvbSc7XG5pbXBvcnQgeyBHZW9KU09OLCBXS1QgfSBmcm9tICdvbC9mb3JtYXQnO1xuaW1wb3J0IHsgR2V0TGF5ZXJRdWVyeSB9IGZyb20gJy4uLy4uL21lc3NhZ2VzL3F1ZXJpZXMvZ2V0LWxheWVyLnF1ZXJ5JztcbmltcG9ydCB7IE1hcENvbnN0YW50cyB9IGZyb20gJy4uLy4uL21vZGVscy9tYXAuY29uc3RhbnRzJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBWZWN0b3IgYXMgU291cmNlIH0gZnJvbSAnb2wvc291cmNlJztcbmltcG9ydCB7IENhbmNlbEZlYXR1cmVNb2RpZmljYXRpb25Db21tYW5kIH0gZnJvbSAnLi4vLi4vbWVzc2FnZXMvY29tbWFuZHMvY2FuY2VsLWZlYXR1cmUtbW9kaWZpY2F0aW9uLmNvbW1hbmQnO1xuaW1wb3J0IHsgTW9kaWZ5RmVhdHVyZUNvbW1hbmQgfSBmcm9tICcuLi8uLi9tZXNzYWdlcy9jb21tYW5kcy9tb2RpZnktZmVhdHVyZS5jb21tYW5kJztcbmltcG9ydCB7RmVhdHVyZUxpa2V9IGZyb20gXCJvbC9GZWF0dXJlXCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGZWF0dXJlTW9kaWZpY2F0aW9uU2VydmljZSBpbXBsZW1lbnRzIElQb3N0Ym95RGVwZW5kaW5nU2VydmljZSB7XG4gIHByaXZhdGUgbW9kaWZ5PzogTW9kaWZ5O1xuICBwcml2YXRlIHRyYW5zbGF0ZT86IFRyYW5zbGF0ZTtcbiAgcHJpdmF0ZSBtYXA/OiBNYXA7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwb3N0Ym95OiBNYXBQb3N0Ym95U2VydmljZSkge31cblxuICB1cCgpOiB2b2lkIHtcbiAgICB0aGlzLm9ic2VydmVNb2RpZmljYXRpb24oKTtcbiAgICB0aGlzLm9ic2VydmVNYXBSZW5kZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgb2JzZXJ2ZU1vZGlmaWNhdGlvbigpIHtcbiAgICB0aGlzLnBvc3Rib3kuc3ViKE1vZGlmeUZlYXR1cmVDb21tYW5kKS5zdWJzY3JpYmUoKGV2KSA9PiB7XG4gICAgICB0aGlzLmRlZmluZUxheWVyKChsKSA9PiB7XG4gICAgICAgIGlmICghbCB8fCAhdGhpcy5tYXApIHtcbiAgICAgICAgICB0aGlzLmNsZWFySW50ZXJhY3Rpb24obCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub2JzZXJ2ZUNhbmNlbGF0aW9uKGV2LCBsKTtcbiAgICAgICAgdGhpcy5pbml0RmVhdHVyZShsLCBldi5tb2RlbC5mZWF0dXJlKTtcbiAgICAgICAgdGhpcy5hZGRNb2RpZnkoZXYpO1xuICAgICAgICBpZiAoZXYuZHJhZ2dhYmxlKSB0aGlzLmFkZERyYWdnaW5nKGV2KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0RmVhdHVyZShsYXllcjogTGF5ZXI8VmVjdG9yU291cmNlPEZlYXR1cmVMaWtlPj4sIGZlYXR1cmU6IEZlYXR1cmU8R2VvbWV0cnk+KTogdm9pZCB7XG4gICAgbGF5ZXIuZ2V0U291cmNlKCk/LmNsZWFyKCk7XG4gICAgbGF5ZXIuZ2V0U291cmNlKCk/LmFkZEZlYXR1cmUoZmVhdHVyZSk7XG4gIH1cblxuICBwcml2YXRlIGFkZE1vZGlmeShjb21tYW5kOiBNb2RpZnlGZWF0dXJlQ29tbWFuZCk6IHZvaWQge1xuICAgIHRoaXMubW9kaWZ5ID0gbmV3IE1vZGlmeSh7XG4gICAgICBmZWF0dXJlczogbmV3IENvbGxlY3Rpb24oW2NvbW1hbmQubW9kZWwuZmVhdHVyZV0pLFxuICAgICAgc3R5bGU6IGNvbW1hbmQuc3R5bGUsXG4gICAgfSk7XG4gICAgdGhpcy5tb2RpZnkub24oJ21vZGlmeWVuZCcsICgpID0+IHtcbiAgICAgIHRoaXMub25Nb2RpZmllZChjb21tYW5kKTtcbiAgICAgIGNvbW1hbmQubW9kZWwuZmVhdHVyZS5jaGFuZ2VkKCk7XG4gICAgfSk7XG4gICAgdGhpcy5tYXA/LmFkZEludGVyYWN0aW9uKHRoaXMubW9kaWZ5KTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkRHJhZ2dpbmcoY29tbWFuZDogTW9kaWZ5RmVhdHVyZUNvbW1hbmQpOiB2b2lkIHtcbiAgICB0aGlzLnRyYW5zbGF0ZSA9IG5ldyBUcmFuc2xhdGUoe1xuICAgICAgZmVhdHVyZXM6IG5ldyBDb2xsZWN0aW9uKFtjb21tYW5kLm1vZGVsLmZlYXR1cmVdKSxcbiAgICAgIGNvbmRpdGlvbjogKGV2KSA9PiB7XG4gICAgICAgIGNvbnN0IGNsb25lID0gY29tbWFuZC5tb2RlbC5mZWF0dXJlLmNsb25lKCk7XG4gICAgICAgIGNsb25lLmdldEdlb21ldHJ5KCk/LnNjYWxlKDAuOTk5KTtcbiAgICAgICAgcmV0dXJuIGNsb25lLmdldEdlb21ldHJ5KCkhLmludGVyc2VjdHNDb29yZGluYXRlKGV2LmNvb3JkaW5hdGUpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgICB0aGlzLnRyYW5zbGF0ZS5vbigndHJhbnNsYXRlZW5kJywgKCkgPT4gdGhpcy5vbk1vZGlmaWVkKGNvbW1hbmQpKTtcbiAgICB0aGlzLm1hcD8uYWRkSW50ZXJhY3Rpb24odGhpcy50cmFuc2xhdGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBvbk1vZGlmaWVkKGNvbW1hbmQ6IE1vZGlmeUZlYXR1cmVDb21tYW5kKTogdm9pZCB7XG4gICAgY29tbWFuZC5uZXh0KFxuICAgICAgY29tbWFuZC5mb3JtYXQgPT09IEZlYXR1cmVPdXRwdXRGb3JtYXQuR2VvSnNvblxuICAgICAgICA/IG5ldyBHZW9KU09OKCkud3JpdGVGZWF0dXJlKGNvbW1hbmQubW9kZWwuZmVhdHVyZSlcbiAgICAgICAgOiBjb21tYW5kLmZvcm1hdCA9PT0gRmVhdHVyZU91dHB1dEZvcm1hdC5XS1RcbiAgICAgICAgPyBuZXcgV0tUKCkud3JpdGVGZWF0dXJlKGNvbW1hbmQubW9kZWwuZmVhdHVyZSlcbiAgICAgICAgOiBuZXcgR2VvSlNPTigpLndyaXRlR2VvbWV0cnkoY29tbWFuZC5tb2RlbC5mZWF0dXJlLmdldEdlb21ldHJ5KCkhKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBvYnNlcnZlTWFwUmVuZGVyKCkge1xuICAgIHRoaXMucG9zdGJveS5zdWIoTWFwUmVuZGVyZWRFdmVudCkuc3Vic2NyaWJlKChtKSA9PiB7XG4gICAgICB0aGlzLm1hcCA9IG0ubWFwO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWZpbmVMYXllcihhY3Rpb246IChsYXllcjogTGF5ZXI8VmVjdG9yU291cmNlPGFueT4+IHwgbnVsbCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMucG9zdGJveS5maXJlQ2FsbGJhY2sobmV3IEdldExheWVyUXVlcnkoTWFwQ29uc3RhbnRzLkRyYXdpbmdMYXllcklkKSwgKGwpID0+IGFjdGlvbihsKSk7XG4gIH1cblxuICBwcml2YXRlIG9ic2VydmVDYW5jZWxhdGlvbihldjogTW9kaWZ5RmVhdHVyZUNvbW1hbmQsIGxheWVyOiBMYXllcjxWZWN0b3JTb3VyY2U8YW55Pj4gfCBudWxsKTogU3Vic2NyaXB0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5wb3N0Ym95XG4gICAgICAuc3ViKENhbmNlbEZlYXR1cmVNb2RpZmljYXRpb25Db21tYW5kKVxuICAgICAgLnBpcGUoZmlyc3QoKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBldi5maW5pc2gobnVsbCk7XG4gICAgICAgIHRoaXMuY2xlYXJJbnRlcmFjdGlvbihsYXllcik7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJJbnRlcmFjdGlvbihsYXllcjogTGF5ZXI8U291cmNlPEZlYXR1cmVMaWtlPj4gfCBudWxsKTogdm9pZCB7XG4gICAgbGF5ZXI/LmdldFNvdXJjZSgpPy5jbGVhcigpO1xuICAgIGlmICh0aGlzLm1vZGlmeSkgdGhpcy5tYXA/LnJlbW92ZUludGVyYWN0aW9uKHRoaXMubW9kaWZ5KTtcbiAgICBpZiAodGhpcy50cmFuc2xhdGUpIHRoaXMubWFwPy5yZW1vdmVJbnRlcmFjdGlvbih0aGlzLnRyYW5zbGF0ZSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,77 +0,0 @@
1
- import { LineString, Point } from 'ol/geom';
2
- import * as Sphere from 'ol/sphere';
3
- export class FeatureService {
4
- constructor() { }
5
- static filterFeaturesInArea(query) {
6
- return query.features.filter((f) => FeatureService.booleanIntersects(query.area, f.getGeometry()));
7
- }
8
- static filterFeaturesInPoint(query) {
9
- return query.features.filter((f) => FeatureService.booleanIntersects(f.getGeometry(), new Point([query.lng, query.lat])));
10
- }
11
- static calculateArea(g) {
12
- if (!g)
13
- return 0;
14
- return Sphere.getArea(g, { projection: 'EPSG:4326' });
15
- }
16
- static polygonSelfIntersects(feature) {
17
- if (feature.getGeometry().getType() !== 'Polygon')
18
- return false;
19
- let intersections = 0;
20
- const segments = FeatureService.getSegmentsFromCoordinates(feature.getGeometry());
21
- for (let i = 0; i < segments.length; i++) {
22
- for (let z = i + 1; z < segments.length; z++) {
23
- if (!intersections && this.segmentIntersection(segments[i].getCoordinates(), segments[z].getCoordinates())) {
24
- intersections++;
25
- }
26
- }
27
- }
28
- return intersections !== 0;
29
- }
30
- static booleanIntersects(g1, g2) {
31
- if (g2.getType() === 'Point')
32
- return g1.intersectsCoordinate(g2.getCoordinates());
33
- if (g2.getType() === 'Circle')
34
- return g1.intersectsCoordinate(g2.getCenter());
35
- if (g2.getType() === 'Polygon')
36
- return g1.intersectsCoordinate(g2.getInteriorPoint().getCoordinates());
37
- return false;
38
- }
39
- static getSegmentsFromCoordinates(geom) {
40
- if (!geom)
41
- return [];
42
- const coords = geom.getCoordinates();
43
- const line = new LineString(coords[0]);
44
- const segments = [];
45
- line.forEachSegment((s1, s2) => {
46
- const l = new LineString([s1, s2]);
47
- l.scale(0.999); // bug of the OL, as I see
48
- segments.push(l);
49
- });
50
- return segments;
51
- }
52
- static segmentIntersection(s1, s2) {
53
- const a = s1[0], b = s1[1], c = s2[0], d = s2[1];
54
- const o1 = this.orientation(a, b, c);
55
- const o2 = this.orientation(a, b, d);
56
- const o3 = this.orientation(c, d, a);
57
- const o4 = this.orientation(c, d, b);
58
- return ((o1 != o2 && o3 != o4) ||
59
- (o1 == 0 && this.onSegment(a, d, b)) ||
60
- (o2 == 0 && this.onSegment(a, d, b)) ||
61
- (o3 == 0 && this.onSegment(d, a, d)) ||
62
- (o4 == 0 && this.onSegment(d, b, d)));
63
- }
64
- static orientation(p, q, r) {
65
- const val = (q[1] - p[1]) * (r[0] - q[0]) - (q[0] - p[0]) * (r[1] - q[1]);
66
- if (val == 0)
67
- return 0; // collinear
68
- return val > 0 ? 1 : 2; // clock or counterclock wise
69
- }
70
- static onSegment(p, q, r) {
71
- return (q[0] <= (p[0] > r[0] ? p[0] : r[0]) &&
72
- q[0] >= (p[0] < r[0] ? p[0] : r[0]) &&
73
- q[1] <= (p[1] > r[1] ? p[1] : r[1]) &&
74
- q[1] >= (p[1] < r[1] ? p[1] : r[1]));
75
- }
76
- }
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwcy1jb21wb25lbnRzL3NyYy9tYXAvc2VydmljZXMvZmVhdHVyZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBd0MsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUdsRixPQUFPLEtBQUssTUFBTSxNQUFNLFdBQVcsQ0FBQztBQUlwQyxNQUFNLE9BQU8sY0FBYztJQUN6QixnQkFBZSxDQUFDO0lBRVQsTUFBTSxDQUFDLG9CQUFvQixDQUFDLEtBQW1DO1FBQ3BFLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdEcsQ0FBQztJQUVNLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxLQUFvQztRQUN0RSxPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDakMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUcsRUFBRSxJQUFJLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FDdEYsQ0FBQztJQUNKLENBQUM7SUFFTSxNQUFNLENBQUMsYUFBYSxDQUFDLENBQXVCO1FBQ2pELElBQUksQ0FBQyxDQUFDO1lBQUUsT0FBTyxDQUFDLENBQUM7UUFDakIsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFTSxNQUFNLENBQUMscUJBQXFC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LENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNyQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDckMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sQ0FDTCxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUN0QixDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDcEMsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNwQyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQ3JDLENBQUM7SUFDSixDQUFDO0lBRU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFXLEVBQUUsQ0FBVyxFQUFFLENBQVc7UUFDOUQsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUUsSUFBSSxHQUFHLElBQUksQ0FBQztZQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsWUFBWTtRQUNwQyxPQUFPLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsNkJBQTZCO0lBQ3ZELENBQUM7SUFFTyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQVcsRUFBRSxDQUFXLEVBQUUsQ0FBVztRQUM1RCxPQUFPLENBQ0wsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDcEMsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENpcmNsZSwgR2VvbWV0cnksIEdlb21ldHJ5Q29sbGVjdGlvbiwgTGluZVN0cmluZywgUG9pbnQgfSBmcm9tICdvbC9nZW9tJztcbmltcG9ydCBQb2x5Z29uLCB7IGZyb21DaXJjbGUgfSBmcm9tICdvbC9nZW9tL1BvbHlnb24nO1xuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gJ29sJztcbmltcG9ydCAqIGFzIFNwaGVyZSBmcm9tICdvbC9zcGhlcmUnO1xuaW1wb3J0IHsgRmlsdGVyRmVhdHVyZXNJbkFyZWFFeGVjdXRvciB9IGZyb20gJy4uL21lc3NhZ2VzL2V4ZWN1dG9ycy9maWx0ZXItZmVhdHVyZXMtaW4tYXJlYS5leGVjdXRvcic7XG5pbXBvcnQgeyBGaWx0ZXJGZWF0dXJlc0luUG9pbnRFeGVjdXRvciB9IGZyb20gJy4uL21lc3NhZ2VzJztcblxuZXhwb3J0IGNsYXNzIEZlYXR1cmVTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHB1YmxpYyBzdGF0aWMgZmlsdGVyRmVhdHVyZXNJbkFyZWEocXVlcnk6IEZpbHRlckZlYXR1cmVzSW5BcmVhRXhlY3V0b3IpOiBGZWF0dXJlPEdlb21ldHJ5PltdIHtcbiAgICByZXR1cm4gcXVlcnkuZmVhdHVyZXMuZmlsdGVyKChmKSA9PiBGZWF0dXJlU2VydmljZS5ib29sZWFuSW50ZXJzZWN0cyhxdWVyeS5hcmVhLCBmLmdldEdlb21ldHJ5KCkhKSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGZpbHRlckZlYXR1cmVzSW5Qb2ludChxdWVyeTogRmlsdGVyRmVhdHVyZXNJblBvaW50RXhlY3V0b3IpOiBGZWF0dXJlPEdlb21ldHJ5PltdIHtcbiAgICByZXR1cm4gcXVlcnkuZmVhdHVyZXMuZmlsdGVyKChmKSA9PlxuICAgICAgRmVhdHVyZVNlcnZpY2UuYm9vbGVhbkludGVyc2VjdHMoZi5nZXRHZW9tZXRyeSgpISwgbmV3IFBvaW50KFtxdWVyeS5sbmcsIHF1ZXJ5LmxhdF0pKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjYWxjdWxhdGVBcmVhKGc6IEdlb21ldHJ5IHwgdW5kZWZpbmVkKTogbnVtYmVyIHtcbiAgICBpZiAoIWcpIHJldHVybiAwO1xuICAgIHJldHVybiBTcGhlcmUuZ2V0QXJlYShnLCB7IHByb2plY3Rpb246ICdFUFNHOjQzMjYnIH0pO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBwb2x5Z29uU2VsZkludGVyc2VjdHMoZmVhdHVyZTogRmVhdHVyZTxHZW9tZXRyeT4pOiBib29sZWFuIHtcbiAgICBpZiAoZmVhdHVyZS5nZXRHZW9tZXRyeSgpIS5nZXRUeXBlKCkgIT09ICdQb2x5Z29uJykgcmV0dXJuIGZhbHNlO1xuICAgIGxldCBpbnRlcnNlY3Rpb25zID0gMDtcbiAgICBjb25zdCBzZWdtZW50cyA9IEZlYXR1cmVTZXJ2aWNlLmdldFNlZ21lbnRzRnJvbUNvb3JkaW5hdGVzKGZlYXR1cmUuZ2V0R2VvbWV0cnkoKSEpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VnbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGZvciAobGV0IHogPSBpICsgMTsgeiA8IHNlZ21lbnRzLmxlbmd0aDsgeisrKSB7XG4gICAgICAgIGlmICghaW50ZXJzZWN0aW9ucyAmJiB0aGlzLnNlZ21lbnRJbnRlcnNlY3Rpb24oc2VnbWVudHNbaV0uZ2V0Q29vcmRpbmF0ZXMoKSwgc2VnbWVudHNbel0uZ2V0Q29vcmRpbmF0ZXMoKSkpIHtcbiAgICAgICAgICBpbnRlcnNlY3Rpb25zKys7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGludGVyc2VjdGlvbnMgIT09IDA7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBib29sZWFuSW50ZXJzZWN0cyhnMTogR2VvbWV0cnksIGcyOiBHZW9tZXRyeSk6IGJvb2xlYW4ge1xuICAgIGlmIChnMi5nZXRUeXBlKCkgPT09ICdQb2ludCcpIHJldHVybiBnMS5pbnRlcnNlY3RzQ29vcmRpbmF0ZSgoZzIgYXMgUG9pbnQpLmdldENvb3JkaW5hdGVzKCkpO1xuICAgIGlmIChnMi5nZXRUeXBlKCkgPT09ICdDaXJjbGUnKSByZXR1cm4gZzEuaW50ZXJzZWN0c0Nvb3JkaW5hdGUoKGcyIGFzIENpcmNsZSkuZ2V0Q2VudGVyKCkpO1xuICAgIGlmIChnMi5nZXRUeXBlKCkgPT09ICdQb2x5Z29uJykgcmV0dXJuIGcxLmludGVyc2VjdHNDb29yZGluYXRlKChnMiBhcyBQb2x5Z29uKS5nZXRJbnRlcmlvclBvaW50KCkuZ2V0Q29vcmRpbmF0ZXMoKSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0U2VnbWVudHNGcm9tQ29vcmRpbmF0ZXMoZ2VvbTogR2VvbWV0cnkpOiBMaW5lU3RyaW5nW10ge1xuICAgIGlmICghZ2VvbSkgcmV0dXJuIFtdO1xuICAgIGNvbnN0IGNvb3JkcyA9IChnZW9tIGFzIGFueSkuZ2V0Q29vcmRpbmF0ZXMoKTtcbiAgICBjb25zdCBsaW5lID0gbmV3IExpbmVTdHJpbmcoY29vcmRzWzBdKTtcbiAgICBjb25zdCBzZWdtZW50czogTGluZVN0cmluZ1tdID0gW107XG4gICAgbGluZS5mb3JFYWNoU2VnbWVudCgoczEsIHMyKSA9PiB7XG4gICAgICBjb25zdCBsID0gbmV3IExpbmVTdHJpbmcoW3MxLCBzMl0pO1xuICAgICAgbC5zY2FsZSgwLjk5OSk7IC8vIGJ1ZyBvZiB0aGUgT0wsIGFzIEkgc2VlXG4gICAgICBzZWdtZW50cy5wdXNoKGwpO1xuICAgIH0pO1xuICAgIHJldHVybiBzZWdtZW50cztcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHNlZ21lbnRJbnRlcnNlY3Rpb24oczE6IG51bWJlcltdW10sIHMyOiBudW1iZXJbXVtdKTogYm9vbGVhbiB7XG4gICAgY29uc3QgYSA9IHMxWzBdLFxuICAgICAgYiA9IHMxWzFdLFxuICAgICAgYyA9IHMyWzBdLFxuICAgICAgZCA9IHMyWzFdO1xuICAgIGNvbnN0IG8xID0gdGhpcy5vcmllbnRhdGlvbihhLCBiLCBjKTtcbiAgICBjb25zdCBvMiA9IHRoaXMub3JpZW50YXRpb24oYSwgYiwgZCk7XG4gICAgY29uc3QgbzMgPSB0aGlzLm9yaWVudGF0aW9uKGMsIGQsIGEpO1xuICAgIGNvbnN0IG80ID0gdGhpcy5vcmllbnRhdGlvbihjLCBkLCBiKTtcbiAgICByZXR1cm4gKFxuICAgICAgKG8xICE9IG8yICYmIG8zICE9IG80KSB8fFxuICAgICAgKG8xID09IDAgJiYgdGhpcy5vblNlZ21lbnQoYSwgZCwgYikpIHx8XG4gICAgICAobzIgPT0gMCAmJiB0aGlzLm9uU2VnbWVudChhLCBkLCBiKSkgfHxcbiAgICAgIChvMyA9PSAwICYmIHRoaXMub25TZWdtZW50KGQsIGEsIGQpKSB8fFxuICAgICAgKG80ID09IDAgJiYgdGhpcy5vblNlZ21lbnQoZCwgYiwgZCkpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIG9yaWVudGF0aW9uKHA6IG51bWJlcltdLCBxOiBudW1iZXJbXSwgcjogbnVtYmVyW10pOiBudW1iZXIge1xuICAgIGNvbnN0IHZhbCA9IChxWzFdIC0gcFsxXSkgKiAoclswXSAtIHFbMF0pIC0gKHFbMF0gLSBwWzBdKSAqIChyWzFdIC0gcVsxXSk7XG4gICAgaWYgKHZhbCA9PSAwKSByZXR1cm4gMDsgLy8gY29sbGluZWFyXG4gICAgcmV0dXJuIHZhbCA+IDAgPyAxIDogMjsgLy8gY2xvY2sgb3IgY291bnRlcmNsb2NrIHdpc2VcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIG9uU2VnbWVudChwOiBudW1iZXJbXSwgcTogbnVtYmVyW10sIHI6IG51bWJlcltdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHFbMF0gPD0gKHBbMF0gPiByWzBdID8gcFswXSA6IHJbMF0pICYmXG4gICAgICBxWzBdID49IChwWzBdIDwgclswXSA/IHBbMF0gOiByWzBdKSAmJlxuICAgICAgcVsxXSA8PSAocFsxXSA+IHJbMV0gPyBwWzFdIDogclsxXSkgJiZcbiAgICAgIHFbMV0gPj0gKHBbMV0gPCByWzFdID8gcFsxXSA6IHJbMV0pXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1,55 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { MapRenderedEvent } from '../messages';
3
- import { MapClickEvent } from '../messages/events/map-click.event';
4
- import { MapConstants } from '../models/map.constants';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "./map-postboy.service";
7
- export class MapClickService {
8
- postboy;
9
- map;
10
- constructor(postboy) {
11
- this.postboy = postboy;
12
- }
13
- up() {
14
- this.observeMapRender();
15
- }
16
- onClick(ev) {
17
- const model = new MapClickEvent(ev.coordinate, {}, {});
18
- this.map?.forEachFeatureAtPixel(ev.pixel, (f, l) => {
19
- this.getFeatureCollectionWithInner([f])
20
- .filter((f) => f.getId() != null && !!l)
21
- .forEach((fs) => {
22
- let layerName = l.get('name');
23
- if (!model.entities[layerName])
24
- model.entities[layerName] = [];
25
- if (!model.features[layerName])
26
- model.features[layerName] = [];
27
- model.entities[layerName].push({ id: fs.getId(), ...fs.get(MapConstants.FeatureInfo) });
28
- model.features[layerName].push(fs);
29
- });
30
- });
31
- return model;
32
- }
33
- observeMapRender() {
34
- this.postboy.sub(MapRenderedEvent).subscribe((m) => {
35
- this.map = m.map;
36
- this.map?.on('singleclick', (e) => {
37
- this.postboy.fire(this.onClick(e));
38
- });
39
- });
40
- }
41
- getFeatureCollectionWithInner(features) {
42
- const result = [];
43
- features?.forEach((f) => {
44
- const innerFeatures = f.get('features');
45
- innerFeatures?.length ? result.push(...innerFeatures) : result.push(f);
46
- });
47
- return result;
48
- }
49
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MapClickService, deps: [{ token: i1.MapPostboyService }], target: i0.ɵɵFactoryTarget.Injectable });
50
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MapClickService });
51
- }
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MapClickService, decorators: [{
53
- type: Injectable
54
- }], ctorParameters: () => [{ type: i1.MapPostboyService }] });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLWNsaWNrLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXBzLWNvbXBvbmVudHMvc3JjL21hcC9zZXJ2aWNlcy9tYXAtY2xpY2suc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7QUFHdkQsTUFBTSxPQUFPLGVBQWU7SUFHTjtJQUZaLEdBQUcsQ0FBTztJQUVsQixZQUFvQixPQUEwQjtRQUExQixZQUFPLEdBQVAsT0FBTyxDQUFtQjtJQUFHLENBQUM7SUFFbEQsRUFBRTtRQUNBLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxPQUFPLENBQUMsRUFBaUM7UUFDdkMsTUFBTSxLQUFLLEdBQWtCLElBQUksYUFBYSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNqRCxJQUFJLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxDQUFzQixDQUFDLENBQUM7aUJBQ3pELE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUN2QyxPQUFPLENBQUMsQ0FBQyxFQUFxQixFQUFFLEVBQUU7Z0JBQ2pDLElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQztvQkFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDL0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDO29CQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUMvRCxLQUFLLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3pGLEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3JDLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNqRCxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFDakIsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2hDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBa0MsQ0FBQyxDQUFDLENBQUM7WUFDdEUsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyw2QkFBNkIsQ0FBQyxRQUE2QjtRQUNqRSxNQUFNLE1BQU0sR0FBd0IsRUFBRSxDQUFDO1FBQ3ZDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN0QixNQUFNLGFBQWEsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBd0IsQ0FBQztZQUMvRCxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekUsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO3dHQXpDVSxlQUFlOzRHQUFmLGVBQWU7OzRGQUFmLGVBQWU7a0JBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJUG9zdGJveURlcGVuZGluZ1NlcnZpY2UgfSBmcm9tICdAYXJ0c3Rlc2gvcG9zdGJveSc7XG5pbXBvcnQgeyBGZWF0dXJlLCBNYXAsIE1hcEJyb3dzZXJFdmVudCB9IGZyb20gJ29sJztcbmltcG9ydCB7IE1hcFBvc3Rib3lTZXJ2aWNlIH0gZnJvbSAnLi9tYXAtcG9zdGJveS5zZXJ2aWNlJztcbmltcG9ydCB7IE1hcFJlbmRlcmVkRXZlbnQgfSBmcm9tICcuLi9tZXNzYWdlcyc7XG5pbXBvcnQgeyBNYXBDbGlja0V2ZW50IH0gZnJvbSAnLi4vbWVzc2FnZXMvZXZlbnRzL21hcC1jbGljay5ldmVudCc7XG5pbXBvcnQgeyBHZW9tZXRyeSB9IGZyb20gJ29sL2dlb20nO1xuaW1wb3J0IHsgTWFwQ29uc3RhbnRzIH0gZnJvbSAnLi4vbW9kZWxzL21hcC5jb25zdGFudHMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTWFwQ2xpY2tTZXJ2aWNlIGltcGxlbWVudHMgSVBvc3Rib3lEZXBlbmRpbmdTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBtYXA/OiBNYXA7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwb3N0Ym95OiBNYXBQb3N0Ym95U2VydmljZSkge31cblxuICB1cCgpOiB2b2lkIHtcbiAgICB0aGlzLm9ic2VydmVNYXBSZW5kZXIoKTtcbiAgfVxuXG4gIG9uQ2xpY2soZXY6IE1hcEJyb3dzZXJFdmVudDxQb2ludGVyRXZlbnQ+KTogTWFwQ2xpY2tFdmVudCB7XG4gICAgY29uc3QgbW9kZWw6IE1hcENsaWNrRXZlbnQgPSBuZXcgTWFwQ2xpY2tFdmVudChldi5jb29yZGluYXRlLCB7fSwge30pO1xuICAgIHRoaXMubWFwPy5mb3JFYWNoRmVhdHVyZUF0UGl4ZWwoZXYucGl4ZWwsIChmLCBsKSA9PiB7XG4gICAgICB0aGlzLmdldEZlYXR1cmVDb2xsZWN0aW9uV2l0aElubmVyKFtmIGFzIEZlYXR1cmU8R2VvbWV0cnk+XSlcbiAgICAgICAgLmZpbHRlcigoZikgPT4gZi5nZXRJZCgpICE9IG51bGwgJiYgISFsKVxuICAgICAgICAuZm9yRWFjaCgoZnM6IEZlYXR1cmU8R2VvbWV0cnk+KSA9PiB7XG4gICAgICAgICAgbGV0IGxheWVyTmFtZSA9IGwuZ2V0KCduYW1lJyk7XG4gICAgICAgICAgaWYgKCFtb2RlbC5lbnRpdGllc1tsYXllck5hbWVdKSBtb2RlbC5lbnRpdGllc1tsYXllck5hbWVdID0gW107XG4gICAgICAgICAgaWYgKCFtb2RlbC5mZWF0dXJlc1tsYXllck5hbWVdKSBtb2RlbC5mZWF0dXJlc1tsYXllck5hbWVdID0gW107XG4gICAgICAgICAgbW9kZWwuZW50aXRpZXNbbGF5ZXJOYW1lXS5wdXNoKHsgaWQ6IGZzLmdldElkKCkhLCAuLi5mcy5nZXQoTWFwQ29uc3RhbnRzLkZlYXR1cmVJbmZvKSB9KTtcbiAgICAgICAgICBtb2RlbC5mZWF0dXJlc1tsYXllck5hbWVdLnB1c2goZnMpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH1cblxuICBwcml2YXRlIG9ic2VydmVNYXBSZW5kZXIoKSB7XG4gICAgdGhpcy5wb3N0Ym95LnN1YihNYXBSZW5kZXJlZEV2ZW50KS5zdWJzY3JpYmUoKG0pID0+IHtcbiAgICAgIHRoaXMubWFwID0gbS5tYXA7XG4gICAgICB0aGlzLm1hcD8ub24oJ3NpbmdsZWNsaWNrJywgKGUpID0+IHtcbiAgICAgICAgdGhpcy5wb3N0Ym95LmZpcmUodGhpcy5vbkNsaWNrKGUgYXMgTWFwQnJvd3NlckV2ZW50PFBvaW50ZXJFdmVudD4pKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGZWF0dXJlQ29sbGVjdGlvbldpdGhJbm5lcihmZWF0dXJlczogRmVhdHVyZTxHZW9tZXRyeT5bXSk6IEZlYXR1cmU8R2VvbWV0cnk+W10ge1xuICAgIGNvbnN0IHJlc3VsdDogRmVhdHVyZTxHZW9tZXRyeT5bXSA9IFtdO1xuICAgIGZlYXR1cmVzPy5mb3JFYWNoKChmKSA9PiB7XG4gICAgICBjb25zdCBpbm5lckZlYXR1cmVzID0gZi5nZXQoJ2ZlYXR1cmVzJykgYXMgRmVhdHVyZTxHZW9tZXRyeT5bXTtcbiAgICAgIGlubmVyRmVhdHVyZXM/Lmxlbmd0aCA/IHJlc3VsdC5wdXNoKC4uLmlubmVyRmVhdHVyZXMpIDogcmVzdWx0LnB1c2goZik7XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuIl19
@@ -1,75 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { Feature } from 'ol';
3
- import { FitToPolygonsCommand, MapPointerMoveEvent, MapRenderedEvent } from '../messages';
4
- import { FitToFeaturesCommand } from '../messages/commands/fit-to-features.command';
5
- import { createEmpty, extend } from 'ol/extent';
6
- import { MapFeatureHoveredEvent } from '../messages/events/map-feature-hovered.event';
7
- import { MapConstants } from '../models';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "./map-postboy.service";
10
- export class MapFeatureService {
11
- postboy;
12
- map;
13
- fitPolygonsWaiting;
14
- constructor(postboy) {
15
- this.postboy = postboy;
16
- }
17
- up() {
18
- this.observeMapRender();
19
- this.observeFitToFeatures();
20
- this.observeFitToPolygons();
21
- this.observePointerMove();
22
- }
23
- observeMapRender() {
24
- this.postboy.sub(MapRenderedEvent).subscribe((m) => {
25
- this.map = m.map;
26
- if (this.fitPolygonsWaiting)
27
- this.postboy.fire(this.fitPolygonsWaiting);
28
- });
29
- }
30
- observePointerMove() {
31
- this.postboy.sub(MapPointerMoveEvent).subscribe((ev) => {
32
- if (!this.map)
33
- return;
34
- let featureFound = false;
35
- this.map.forEachFeatureAtPixel(ev.point, (f) => {
36
- if (f instanceof Feature) {
37
- this.postboy.fire(new MapFeatureHoveredEvent(f, f.get(MapConstants.FeatureLayerName)));
38
- featureFound = true;
39
- }
40
- return true;
41
- });
42
- if (!featureFound)
43
- this.postboy.fire(new MapFeatureHoveredEvent(null, null));
44
- });
45
- }
46
- observeFitToFeatures() {
47
- this.postboy.sub(FitToFeaturesCommand).subscribe((cmd) => {
48
- this.fitToGeometries(cmd.features.map((f) => f.getGeometry()), cmd.zoomAfter);
49
- });
50
- }
51
- observeFitToPolygons() {
52
- this.postboy.sub(FitToPolygonsCommand).subscribe((cmd) => {
53
- if (!this.map) {
54
- this.fitPolygonsWaiting = cmd;
55
- return;
56
- }
57
- this.fitPolygonsWaiting = undefined;
58
- this.fitToGeometries(cmd.features.map((f) => f.feature.getGeometry()), cmd.zoomAfter);
59
- });
60
- }
61
- fitToGeometries(geometries, zoomAfter) {
62
- if (!geometries?.length || !this.map)
63
- return;
64
- const extent = createEmpty();
65
- geometries.forEach((g) => extend(extent, g.getExtent()));
66
- this.map.getView().fit(extent);
67
- this.map.getView().setZoom(this.map.getView().getZoom() + zoomAfter);
68
- }
69
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MapFeatureService, deps: [{ token: i1.MapPostboyService }], target: i0.ɵɵFactoryTarget.Injectable });
70
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MapFeatureService });
71
- }
72
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MapFeatureService, decorators: [{
73
- type: Injectable
74
- }], ctorParameters: () => [{ type: i1.MapPostboyService }] });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLWZlYXR1cmUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hcHMtY29tcG9uZW50cy9zcmMvbWFwL3NlcnZpY2VzL21hcC1mZWF0dXJlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsT0FBTyxFQUFPLE1BQU0sSUFBSSxDQUFDO0FBRWxDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUVwRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNoRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN0RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFHekMsTUFBTSxPQUFPLGlCQUFpQjtJQUlSO0lBSFosR0FBRyxDQUFPO0lBQ1Ysa0JBQWtCLENBQXdCO0lBRWxELFlBQW9CLE9BQTBCO1FBQTFCLFlBQU8sR0FBUCxPQUFPLENBQW1CO0lBQUcsQ0FBQztJQUVsRCxFQUFFO1FBQ0EsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2pELElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUNqQixJQUFJLElBQUksQ0FBQyxrQkFBa0I7Z0JBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDMUUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7WUFDckQsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHO2dCQUFFLE9BQU87WUFDdEIsSUFBSSxZQUFZLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUM3QyxJQUFJLENBQUMsWUFBWSxPQUFPLEVBQUUsQ0FBQztvQkFDekIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxzQkFBc0IsQ0FBQyxDQUFzQixFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUM1RyxZQUFZLEdBQUcsSUFBSSxDQUFDO2dCQUN0QixDQUFDO2dCQUNELE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsWUFBWTtnQkFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLHNCQUFzQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQy9FLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3ZELElBQUksQ0FBQyxlQUFlLENBQ2xCLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFHLENBQUMsRUFDekMsR0FBRyxDQUFDLFNBQVMsQ0FDZCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sb0JBQW9CO1FBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDdkQsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDZCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsR0FBRyxDQUFDO2dCQUM5QixPQUFPO1lBQ1QsQ0FBQztZQUNELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxTQUFTLENBQUM7WUFDcEMsSUFBSSxDQUFDLGVBQWUsQ0FDbEIsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFHLENBQUMsRUFDakQsR0FBRyxDQUFDLFNBQVMsQ0FDZCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sZUFBZSxDQUFDLFVBQXNCLEVBQUUsU0FBaUI7UUFDL0QsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRztZQUFFLE9BQU87UUFDN0MsTUFBTSxNQUFNLEdBQUcsV0FBVyxFQUFFLENBQUM7UUFDN0IsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFHLEdBQUcsU0FBUyxDQUFDLENBQUM7SUFDeEUsQ0FBQzt3R0FoRVUsaUJBQWlCOzRHQUFqQixpQkFBaUI7OzRGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJUG9zdGJveURlcGVuZGluZ1NlcnZpY2UgfSBmcm9tICdAYXJ0c3Rlc2gvcG9zdGJveSc7XG5pbXBvcnQgeyBGZWF0dXJlLCBNYXAgfSBmcm9tICdvbCc7XG5pbXBvcnQgeyBNYXBQb3N0Ym95U2VydmljZSB9IGZyb20gJy4vbWFwLXBvc3Rib3kuc2VydmljZSc7XG5pbXBvcnQgeyBGaXRUb1BvbHlnb25zQ29tbWFuZCwgTWFwUG9pbnRlck1vdmVFdmVudCwgTWFwUmVuZGVyZWRFdmVudCB9IGZyb20gJy4uL21lc3NhZ2VzJztcbmltcG9ydCB7IEZpdFRvRmVhdHVyZXNDb21tYW5kIH0gZnJvbSAnLi4vbWVzc2FnZXMvY29tbWFuZHMvZml0LXRvLWZlYXR1cmVzLmNvbW1hbmQnO1xuaW1wb3J0IHsgR2VvbWV0cnkgfSBmcm9tICdvbC9nZW9tJztcbmltcG9ydCB7IGNyZWF0ZUVtcHR5LCBleHRlbmQgfSBmcm9tICdvbC9leHRlbnQnO1xuaW1wb3J0IHsgTWFwRmVhdHVyZUhvdmVyZWRFdmVudCB9IGZyb20gJy4uL21lc3NhZ2VzL2V2ZW50cy9tYXAtZmVhdHVyZS1ob3ZlcmVkLmV2ZW50JztcbmltcG9ydCB7IE1hcENvbnN0YW50cyB9IGZyb20gJy4uL21vZGVscyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBNYXBGZWF0dXJlU2VydmljZSBpbXBsZW1lbnRzIElQb3N0Ym95RGVwZW5kaW5nU2VydmljZSB7XG4gIHByaXZhdGUgbWFwPzogTWFwO1xuICBwcml2YXRlIGZpdFBvbHlnb25zV2FpdGluZz86IEZpdFRvUG9seWdvbnNDb21tYW5kO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcG9zdGJveTogTWFwUG9zdGJveVNlcnZpY2UpIHt9XG5cbiAgdXAoKTogdm9pZCB7XG4gICAgdGhpcy5vYnNlcnZlTWFwUmVuZGVyKCk7XG4gICAgdGhpcy5vYnNlcnZlRml0VG9GZWF0dXJlcygpO1xuICAgIHRoaXMub2JzZXJ2ZUZpdFRvUG9seWdvbnMoKTtcbiAgICB0aGlzLm9ic2VydmVQb2ludGVyTW92ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBvYnNlcnZlTWFwUmVuZGVyKCkge1xuICAgIHRoaXMucG9zdGJveS5zdWIoTWFwUmVuZGVyZWRFdmVudCkuc3Vic2NyaWJlKChtKSA9PiB7XG4gICAgICB0aGlzLm1hcCA9IG0ubWFwO1xuICAgICAgaWYgKHRoaXMuZml0UG9seWdvbnNXYWl0aW5nKSB0aGlzLnBvc3Rib3kuZmlyZSh0aGlzLmZpdFBvbHlnb25zV2FpdGluZyk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG9ic2VydmVQb2ludGVyTW92ZSgpIHtcbiAgICB0aGlzLnBvc3Rib3kuc3ViKE1hcFBvaW50ZXJNb3ZlRXZlbnQpLnN1YnNjcmliZSgoZXYpID0+IHtcbiAgICAgIGlmICghdGhpcy5tYXApIHJldHVybjtcbiAgICAgIGxldCBmZWF0dXJlRm91bmQgPSBmYWxzZTtcbiAgICAgIHRoaXMubWFwLmZvckVhY2hGZWF0dXJlQXRQaXhlbChldi5wb2ludCwgKGYpID0+IHtcbiAgICAgICAgaWYgKGYgaW5zdGFuY2VvZiBGZWF0dXJlKSB7XG4gICAgICAgICAgdGhpcy5wb3N0Ym95LmZpcmUobmV3IE1hcEZlYXR1cmVIb3ZlcmVkRXZlbnQoZiBhcyBGZWF0dXJlPEdlb21ldHJ5PiwgZi5nZXQoTWFwQ29uc3RhbnRzLkZlYXR1cmVMYXllck5hbWUpKSk7XG4gICAgICAgICAgZmVhdHVyZUZvdW5kID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0pO1xuICAgICAgaWYgKCFmZWF0dXJlRm91bmQpIHRoaXMucG9zdGJveS5maXJlKG5ldyBNYXBGZWF0dXJlSG92ZXJlZEV2ZW50KG51bGwsIG51bGwpKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgb2JzZXJ2ZUZpdFRvRmVhdHVyZXMoKSB7XG4gICAgdGhpcy5wb3N0Ym95LnN1YihGaXRUb0ZlYXR1cmVzQ29tbWFuZCkuc3Vic2NyaWJlKChjbWQpID0+IHtcbiAgICAgIHRoaXMuZml0VG9HZW9tZXRyaWVzKFxuICAgICAgICBjbWQuZmVhdHVyZXMubWFwKChmKSA9PiBmLmdldEdlb21ldHJ5KCkhKSxcbiAgICAgICAgY21kLnpvb21BZnRlcixcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG9ic2VydmVGaXRUb1BvbHlnb25zKCkge1xuICAgIHRoaXMucG9zdGJveS5zdWIoRml0VG9Qb2x5Z29uc0NvbW1hbmQpLnN1YnNjcmliZSgoY21kKSA9PiB7XG4gICAgICBpZiAoIXRoaXMubWFwKSB7XG4gICAgICAgIHRoaXMuZml0UG9seWdvbnNXYWl0aW5nID0gY21kO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLmZpdFBvbHlnb25zV2FpdGluZyA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuZml0VG9HZW9tZXRyaWVzKFxuICAgICAgICBjbWQuZmVhdHVyZXMubWFwKChmKSA9PiBmLmZlYXR1cmUuZ2V0R2VvbWV0cnkoKSEpLFxuICAgICAgICBjbWQuem9vbUFmdGVyLFxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZml0VG9HZW9tZXRyaWVzKGdlb21ldHJpZXM6IEdlb21ldHJ5W10sIHpvb21BZnRlcjogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKCFnZW9tZXRyaWVzPy5sZW5ndGggfHwgIXRoaXMubWFwKSByZXR1cm47XG4gICAgY29uc3QgZXh0ZW50ID0gY3JlYXRlRW1wdHkoKTtcbiAgICBnZW9tZXRyaWVzLmZvckVhY2goKGcpID0+IGV4dGVuZChleHRlbnQsIGcuZ2V0RXh0ZW50KCkpKTtcbiAgICB0aGlzLm1hcC5nZXRWaWV3KCkuZml0KGV4dGVudCk7XG4gICAgdGhpcy5tYXAuZ2V0VmlldygpLnNldFpvb20odGhpcy5tYXAuZ2V0VmlldygpLmdldFpvb20oKSEgKyB6b29tQWZ0ZXIpO1xuICB9XG59XG4iXX0=