@loxia/mst-viewer 8.1.3-202512010252 → 8.1.3-202512010758

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 (252) hide show
  1. package/esm2022/generated/openapi/api/api.mjs +26 -0
  2. package/esm2022/generated/openapi/api/appConfigController.service.mjs +140 -0
  3. package/esm2022/generated/openapi/api/appConfigController.serviceInterface.mjs +2 -0
  4. package/esm2022/generated/openapi/api/bewegingController.service.mjs +155 -0
  5. package/esm2022/generated/openapi/api/bewegingController.serviceInterface.mjs +2 -0
  6. package/esm2022/generated/openapi/api/class0BuildProperties.service.mjs +140 -0
  7. package/esm2022/generated/openapi/api/class0BuildProperties.serviceInterface.mjs +2 -0
  8. package/esm2022/generated/openapi/api/connectorController.service.mjs +146 -0
  9. package/esm2022/generated/openapi/api/connectorController.serviceInterface.mjs +2 -0
  10. package/esm2022/generated/openapi/api/logController.service.mjs +150 -0
  11. package/esm2022/generated/openapi/api/logController.serviceInterface.mjs +2 -0
  12. package/esm2022/generated/openapi/api/p21Controller.service.mjs +236 -0
  13. package/esm2022/generated/openapi/api/p21Controller.serviceInterface.mjs +2 -0
  14. package/esm2022/generated/openapi/api/sbController.service.mjs +203 -0
  15. package/esm2022/generated/openapi/api/sbController.serviceInterface.mjs +2 -0
  16. package/esm2022/generated/openapi/api/svgController.service.mjs +155 -0
  17. package/esm2022/generated/openapi/api/svgController.serviceInterface.mjs +2 -0
  18. package/esm2022/generated/openapi/api.module.mjs +40 -0
  19. package/esm2022/generated/openapi/configuration.mjs +99 -0
  20. package/esm2022/generated/openapi/encoder.mjs +19 -0
  21. package/esm2022/generated/openapi/index.mjs +7 -0
  22. package/esm2022/generated/openapi/model/actieDto.mjs +13 -0
  23. package/esm2022/generated/openapi/model/algemeneRitDto.mjs +13 -0
  24. package/esm2022/generated/openapi/model/bewegingDto.mjs +2 -0
  25. package/esm2022/generated/openapi/model/frontendKeycloakConfig.mjs +13 -0
  26. package/esm2022/generated/openapi/model/frontendProperties.mjs +2 -0
  27. package/esm2022/generated/openapi/model/kilometrering.mjs +13 -0
  28. package/esm2022/generated/openapi/model/logDto.mjs +2 -0
  29. package/esm2022/generated/openapi/model/models.mjs +18 -0
  30. package/esm2022/generated/openapi/model/ritRequestDto.mjs +2 -0
  31. package/esm2022/generated/openapi/model/sein.mjs +10 -0
  32. package/esm2022/generated/openapi/model/signaleringsElement.mjs +13 -0
  33. package/esm2022/generated/openapi/model/signaleringsbeeldDto.mjs +13 -0
  34. package/esm2022/generated/openapi/model/spoornummer.mjs +13 -0
  35. package/esm2022/generated/openapi/model/spoortakFragment.mjs +2 -0
  36. package/esm2022/generated/openapi/model/svgInfoDto.mjs +2 -0
  37. package/esm2022/generated/openapi/model/svgTopology.mjs +2 -0
  38. package/esm2022/generated/openapi/model/topologyElement.mjs +2 -0
  39. package/esm2022/generated/openapi/model/wissel.mjs +2 -0
  40. package/esm2022/generated/openapi/param.mjs +2 -0
  41. package/esm2022/generated/openapi/variables.mjs +9 -0
  42. package/esm2022/lib/atomic-components/message/message.component.mjs +6 -6
  43. package/esm2022/lib/atomic-components/messages/messages.component.mjs +4 -4
  44. package/esm2022/lib/atomic-components/overlay/overlay.component.mjs +4 -4
  45. package/esm2022/lib/atomic-components/progress-indicator/progress-indicator.component.mjs +4 -4
  46. package/esm2022/lib/atomic-components/progress-indicator/progress-indicator.entity.mjs +7 -4
  47. package/esm2022/lib/atomic-components/services/messages.service.mjs +4 -4
  48. package/esm2022/lib/components/carousel-controls/carousel-controls.component.mjs +7 -8
  49. package/esm2022/lib/components/mstviewer/mstviewer.component.mjs +15 -9
  50. package/esm2022/lib/components/ritdelen-lijst/ritdelen-lijst.component.mjs +21 -15
  51. package/esm2022/lib/components/ritdelen-view/ritdelen-view.component.mjs +4 -4
  52. package/esm2022/lib/components/rpe/rpe.component.mjs +9 -5
  53. package/esm2022/lib/components/svg-visualisatie/svg-visualisatie.component.mjs +13 -11
  54. package/esm2022/lib/components/viewer-controls/viewer-controls.component.mjs +19 -16
  55. package/esm2022/lib/model/km-range.mjs +2 -2
  56. package/esm2022/lib/model/nieuwe-route.mjs +2 -2
  57. package/esm2022/lib/model/ritdeel.mjs +10 -10
  58. package/esm2022/lib/mst-viewer.module.mjs +10 -9
  59. package/esm2022/lib/resources/mstlogging.resource.mjs +13 -146
  60. package/esm2022/lib/resources/signaleringsbeeldinfo.resource.mjs +18 -14
  61. package/esm2022/lib/services/base-rest.service.mjs +6 -4
  62. package/esm2022/lib/services/beweging-utils.service.mjs +9 -9
  63. package/esm2022/lib/services/beweging-verrijker.service.mjs +4 -4
  64. package/esm2022/lib/services/connector.service.mjs +4 -4
  65. package/esm2022/lib/services/debug.service.mjs +6 -6
  66. package/esm2022/lib/services/editor.service.mjs +6 -4
  67. package/esm2022/lib/services/print-beweging.service.mjs +26 -23
  68. package/esm2022/lib/services/rit-lezer.service.mjs +7 -7
  69. package/esm2022/lib/services/signalerings-beeld-manager.service.mjs +4 -4
  70. package/esm2022/lib/services/viewer-control.service.mjs +13 -34
  71. package/esm2022/lib/state/actions/actions.mjs +7 -4
  72. package/esm2022/lib/state/actions/ritdelen.actions.mjs +4 -4
  73. package/esm2022/lib/state/effect/bepaal-ongeplande-acties.effect.mjs +11 -10
  74. package/esm2022/lib/state/effect/bepaal-sb-infos.effect.mjs +5 -5
  75. package/esm2022/lib/state/effect/beweging-invoegen.effect.mjs +4 -4
  76. package/esm2022/lib/state/effect/delete-ongeplande-actie.effect.mjs +4 -4
  77. package/esm2022/lib/state/effect/focus-effect.mjs +5 -5
  78. package/esm2022/lib/state/effect/laad-route-files.effect.mjs +11 -11
  79. package/esm2022/lib/state/effect/laad-signaleringsbeelden.effect.mjs +28 -30
  80. package/esm2022/lib/state/effect/rit-goedkeuren.effect.mjs +4 -4
  81. package/esm2022/lib/state/effect/ritdelen.effect.mjs +29 -28
  82. package/esm2022/lib/state/effect/svg-view.effect.mjs +60 -19
  83. package/esm2022/lib/state/mst-editor-state.mjs +13 -15
  84. package/esm2022/lib/state/reducer/rit-delen.reducer.mjs +1 -1
  85. package/esm2022/lib/util/actie-helper.mjs +32 -28
  86. package/esm2022/lib/util/actie-popover-bepaler.mjs +2 -2
  87. package/esm2022/lib/util/date.service.mjs +4 -4
  88. package/esm2022/lib/util/logging-helper.mjs +38 -43
  89. package/esm2022/lib/util/multi-map.mjs +2 -3
  90. package/esm2022/lib/util/utils.mjs +5 -5
  91. package/esm2022/lib/util/zone-util.mjs +5 -4
  92. package/esm2022/src/generated/openapi/api/api.mjs +26 -0
  93. package/esm2022/src/generated/openapi/api/appConfigController.service.mjs +140 -0
  94. package/esm2022/src/generated/openapi/api/appConfigController.serviceInterface.mjs +2 -0
  95. package/esm2022/src/generated/openapi/api/bewegingController.service.mjs +155 -0
  96. package/esm2022/src/generated/openapi/api/bewegingController.serviceInterface.mjs +2 -0
  97. package/esm2022/src/generated/openapi/api/class0BuildProperties.service.mjs +140 -0
  98. package/esm2022/src/generated/openapi/api/class0BuildProperties.serviceInterface.mjs +2 -0
  99. package/esm2022/src/generated/openapi/api/connectorController.service.mjs +146 -0
  100. package/esm2022/src/generated/openapi/api/connectorController.serviceInterface.mjs +2 -0
  101. package/esm2022/src/generated/openapi/api/logController.service.mjs +150 -0
  102. package/esm2022/src/generated/openapi/api/logController.serviceInterface.mjs +2 -0
  103. package/esm2022/src/generated/openapi/api/p21Controller.service.mjs +236 -0
  104. package/esm2022/src/generated/openapi/api/p21Controller.serviceInterface.mjs +2 -0
  105. package/esm2022/src/generated/openapi/api/sbController.service.mjs +203 -0
  106. package/esm2022/src/generated/openapi/api/sbController.serviceInterface.mjs +2 -0
  107. package/esm2022/src/generated/openapi/api/svgController.service.mjs +155 -0
  108. package/esm2022/src/generated/openapi/api/svgController.serviceInterface.mjs +2 -0
  109. package/esm2022/src/generated/openapi/api.module.mjs +40 -0
  110. package/esm2022/src/generated/openapi/configuration.mjs +99 -0
  111. package/esm2022/src/generated/openapi/encoder.mjs +19 -0
  112. package/esm2022/src/generated/openapi/index.mjs +7 -0
  113. package/esm2022/src/generated/openapi/loxia-mst-viewer-src-generated-openapi.mjs +5 -0
  114. package/esm2022/src/generated/openapi/model/actieDto.mjs +13 -0
  115. package/esm2022/src/generated/openapi/model/algemeneRitDto.mjs +13 -0
  116. package/esm2022/src/generated/openapi/model/bewegingDto.mjs +2 -0
  117. package/esm2022/src/generated/openapi/model/frontendKeycloakConfig.mjs +13 -0
  118. package/esm2022/src/generated/openapi/model/frontendProperties.mjs +2 -0
  119. package/esm2022/src/generated/openapi/model/kilometrering.mjs +13 -0
  120. package/esm2022/src/generated/openapi/model/logDto.mjs +2 -0
  121. package/esm2022/src/generated/openapi/model/models.mjs +18 -0
  122. package/esm2022/src/generated/openapi/model/ritRequestDto.mjs +2 -0
  123. package/esm2022/src/generated/openapi/model/sein.mjs +10 -0
  124. package/esm2022/src/generated/openapi/model/signaleringsElement.mjs +13 -0
  125. package/esm2022/src/generated/openapi/model/signaleringsbeeldDto.mjs +13 -0
  126. package/esm2022/src/generated/openapi/model/spoornummer.mjs +13 -0
  127. package/esm2022/src/generated/openapi/model/spoortakFragment.mjs +2 -0
  128. package/esm2022/src/generated/openapi/model/svgInfoDto.mjs +2 -0
  129. package/esm2022/src/generated/openapi/model/svgTopology.mjs +2 -0
  130. package/esm2022/src/generated/openapi/model/topologyElement.mjs +2 -0
  131. package/esm2022/src/generated/openapi/model/wissel.mjs +2 -0
  132. package/esm2022/src/generated/openapi/param.mjs +2 -0
  133. package/esm2022/src/generated/openapi/variables.mjs +9 -0
  134. package/fesm2022/loxia-mst-viewer-src-generated-openapi.mjs +1522 -0
  135. package/fesm2022/loxia-mst-viewer-src-generated-openapi.mjs.map +1 -0
  136. package/fesm2022/loxia-mst-viewer.mjs +2162 -722
  137. package/fesm2022/loxia-mst-viewer.mjs.map +1 -1
  138. package/generated/openapi/api/api.d.ts +25 -0
  139. package/generated/openapi/api/appConfigController.service.d.ts +38 -0
  140. package/generated/openapi/api/appConfigController.serviceInterface.d.ts +24 -0
  141. package/generated/openapi/api/bewegingController.service.d.ts +40 -0
  142. package/generated/openapi/api/bewegingController.serviceInterface.d.ts +27 -0
  143. package/generated/openapi/api/class0BuildProperties.service.d.ts +36 -0
  144. package/generated/openapi/api/class0BuildProperties.serviceInterface.d.ts +23 -0
  145. package/generated/openapi/api/connectorController.service.d.ts +38 -0
  146. package/generated/openapi/api/connectorController.serviceInterface.d.ts +25 -0
  147. package/generated/openapi/api/logController.service.d.ts +38 -0
  148. package/generated/openapi/api/logController.serviceInterface.d.ts +25 -0
  149. package/generated/openapi/api/p21Controller.service.d.ts +62 -0
  150. package/generated/openapi/api/p21Controller.serviceInterface.d.ts +30 -0
  151. package/generated/openapi/api/sbController.service.d.ts +60 -0
  152. package/generated/openapi/api/sbController.serviceInterface.d.ts +32 -0
  153. package/generated/openapi/api/svgController.service.d.ts +40 -0
  154. package/generated/openapi/api/svgController.serviceInterface.d.ts +27 -0
  155. package/generated/openapi/api.module.d.ts +11 -0
  156. package/generated/openapi/configuration.d.ts +104 -0
  157. package/generated/openapi/encoder.d.ts +11 -0
  158. package/generated/openapi/index.d.ts +6 -0
  159. package/generated/openapi/model/actieDto.d.ts +35 -0
  160. package/generated/openapi/model/algemeneRitDto.d.ts +20 -0
  161. package/generated/openapi/model/bewegingDto.d.ts +37 -0
  162. package/generated/openapi/model/frontendKeycloakConfig.d.ts +16 -0
  163. package/generated/openapi/model/frontendProperties.d.ts +15 -0
  164. package/generated/openapi/model/kilometrering.d.ts +15 -0
  165. package/generated/openapi/model/logDto.d.ts +22 -0
  166. package/generated/openapi/model/models.d.ts +17 -0
  167. package/generated/openapi/model/ritRequestDto.d.ts +17 -0
  168. package/generated/openapi/model/sein.d.ts +46 -0
  169. package/generated/openapi/model/signaleringsElement.d.ts +16 -0
  170. package/generated/openapi/model/signaleringsbeeldDto.d.ts +16 -0
  171. package/generated/openapi/model/spoornummer.d.ts +17 -0
  172. package/generated/openapi/model/spoortakFragment.d.ts +26 -0
  173. package/generated/openapi/model/svgInfoDto.d.ts +16 -0
  174. package/generated/openapi/model/svgTopology.d.ts +21 -0
  175. package/generated/openapi/model/topologyElement.d.ts +18 -0
  176. package/generated/openapi/model/wissel.d.ts +31 -0
  177. package/generated/openapi/param.d.ts +37 -0
  178. package/generated/openapi/variables.d.ts +8 -0
  179. package/lib/atomic-components/message/message.component.d.ts +2 -2
  180. package/lib/atomic-components/progress-indicator/progress-indicator.entity.d.ts +1 -1
  181. package/lib/components/carousel-controls/carousel-controls.component.d.ts +1 -3
  182. package/lib/components/mstviewer/mstviewer.component.d.ts +2 -2
  183. package/lib/components/ritdelen-lijst/ritdelen-lijst.component.d.ts +2 -2
  184. package/lib/components/rpe/rpe.component.d.ts +1 -1
  185. package/lib/components/svg-visualisatie/svg-visualisatie.component.d.ts +2 -1
  186. package/lib/components/viewer-controls/viewer-controls.component.d.ts +3 -4
  187. package/lib/model/km-range.d.ts +1 -1
  188. package/lib/model/nieuwe-route.d.ts +2 -2
  189. package/lib/model/ritdeel.d.ts +11 -10
  190. package/lib/resources/mstlogging.resource.d.ts +6 -95
  191. package/lib/resources/signaleringsbeeldinfo.resource.d.ts +10 -15
  192. package/lib/services/editor.service.d.ts +2 -2
  193. package/lib/services/print-beweging.service.d.ts +4 -6
  194. package/lib/services/rit-lezer.service.d.ts +1 -1
  195. package/lib/services/signalerings-beeld-manager.service.d.ts +2 -2
  196. package/lib/services/viewer-control.service.d.ts +0 -5
  197. package/lib/state/actions/actions.d.ts +26 -25
  198. package/lib/state/actions/ritdelen.actions.d.ts +3 -7
  199. package/lib/state/effect/bepaal-ongeplande-acties.effect.d.ts +2 -1
  200. package/lib/state/effect/delete-ongeplande-actie.effect.d.ts +1 -1
  201. package/lib/state/effect/laad-route-files.effect.d.ts +4 -5
  202. package/lib/state/effect/laad-signaleringsbeelden.effect.d.ts +13 -13
  203. package/lib/state/effect/ritdelen.effect.d.ts +7 -6
  204. package/lib/state/effect/svg-view.effect.d.ts +12 -6
  205. package/lib/state/mst-editor-state.d.ts +30 -92
  206. package/lib/util/actie-helper.d.ts +4 -4
  207. package/lib/util/logging-helper.d.ts +5 -6
  208. package/lib/util/utils.d.ts +0 -1
  209. package/package.json +7 -1
  210. package/src/generated/openapi/README.md +226 -0
  211. package/src/generated/openapi/api/api.d.ts +25 -0
  212. package/src/generated/openapi/api/appConfigController.service.d.ts +38 -0
  213. package/src/generated/openapi/api/appConfigController.serviceInterface.d.ts +24 -0
  214. package/src/generated/openapi/api/bewegingController.service.d.ts +40 -0
  215. package/src/generated/openapi/api/bewegingController.serviceInterface.d.ts +27 -0
  216. package/src/generated/openapi/api/class0BuildProperties.service.d.ts +36 -0
  217. package/src/generated/openapi/api/class0BuildProperties.serviceInterface.d.ts +23 -0
  218. package/src/generated/openapi/api/connectorController.service.d.ts +38 -0
  219. package/src/generated/openapi/api/connectorController.serviceInterface.d.ts +25 -0
  220. package/src/generated/openapi/api/logController.service.d.ts +38 -0
  221. package/src/generated/openapi/api/logController.serviceInterface.d.ts +25 -0
  222. package/src/generated/openapi/api/p21Controller.service.d.ts +62 -0
  223. package/src/generated/openapi/api/p21Controller.serviceInterface.d.ts +30 -0
  224. package/src/generated/openapi/api/sbController.service.d.ts +60 -0
  225. package/src/generated/openapi/api/sbController.serviceInterface.d.ts +32 -0
  226. package/src/generated/openapi/api/svgController.service.d.ts +40 -0
  227. package/src/generated/openapi/api/svgController.serviceInterface.d.ts +27 -0
  228. package/src/generated/openapi/api.module.d.ts +11 -0
  229. package/src/generated/openapi/configuration.d.ts +104 -0
  230. package/src/generated/openapi/encoder.d.ts +11 -0
  231. package/src/generated/openapi/index.d.ts +6 -0
  232. package/src/generated/openapi/model/actieDto.d.ts +35 -0
  233. package/src/generated/openapi/model/algemeneRitDto.d.ts +20 -0
  234. package/src/generated/openapi/model/bewegingDto.d.ts +37 -0
  235. package/src/generated/openapi/model/frontendKeycloakConfig.d.ts +16 -0
  236. package/src/generated/openapi/model/frontendProperties.d.ts +15 -0
  237. package/src/generated/openapi/model/kilometrering.d.ts +15 -0
  238. package/src/generated/openapi/model/logDto.d.ts +22 -0
  239. package/src/generated/openapi/model/models.d.ts +17 -0
  240. package/src/generated/openapi/model/ritRequestDto.d.ts +17 -0
  241. package/src/generated/openapi/model/sein.d.ts +46 -0
  242. package/src/generated/openapi/model/signaleringsElement.d.ts +16 -0
  243. package/src/generated/openapi/model/signaleringsbeeldDto.d.ts +16 -0
  244. package/src/generated/openapi/model/spoornummer.d.ts +17 -0
  245. package/src/generated/openapi/model/spoortakFragment.d.ts +26 -0
  246. package/src/generated/openapi/model/svgInfoDto.d.ts +16 -0
  247. package/src/generated/openapi/model/svgTopology.d.ts +21 -0
  248. package/src/generated/openapi/model/topologyElement.d.ts +18 -0
  249. package/src/generated/openapi/model/wissel.d.ts +31 -0
  250. package/src/generated/openapi/param.d.ts +37 -0
  251. package/src/generated/openapi/variables.d.ts +8 -0
  252. package/tailwind.scss +1 -1
@@ -1,23 +1,23 @@
1
1
  import * as i2 from '@angular/common';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { EventEmitter, Output, Input, Component, Injectable, ChangeDetectionStrategy, ViewChild, HostListener, NgModule } from '@angular/core';
4
+ import { EventEmitter, Component, Input, Output, Injectable, ChangeDetectionStrategy, ViewChild, InjectionToken, Optional, Inject, NgModule, SkipSelf, HostListener } from '@angular/core';
5
5
  import * as i7 from '@loxia/imx-viewer';
6
- import { SelectieInfo, PopoverInfo, Point, SvgInfo, ImxViewerComponent, ImxViewerModule } from '@loxia/imx-viewer';
7
- import * as i4 from '@loxia/rijwegen';
6
+ import { PopoverInfo, Point, SvgInfo, ImxViewerComponent, SelectieInfo, ImxViewerModule } from '@loxia/imx-viewer';
7
+ import * as i3 from '@loxia/rijwegen';
8
8
  import { JsJavaUtil, RijwegenModule } from '@loxia/rijwegen';
9
9
  import * as i1$2 from '@ngrx/effects';
10
10
  import { createEffect, ofType, EffectsModule } from '@ngrx/effects';
11
11
  import * as i2$1 from '@ngrx/store';
12
12
  import { createAction, union, select, createReducer, on, StoreModule } from '@ngrx/store';
13
13
  import { ResourceModule } from '@ngx-resource/handler-ngx-http';
14
- import { BehaviorSubject, Subscription, from, combineLatest, of, throwError } from 'rxjs';
14
+ import { BehaviorSubject, from, Subscription, combineLatest, forkJoin, of, throwError } from 'rxjs';
15
+ import { filter, map, take, tap, catchError, withLatestFrom, switchMap } from 'rxjs/operators';
16
+ import * as i1 from '@angular/common/http';
17
+ import { HttpHeaders, HttpContext, HttpParams } from '@angular/common/http';
15
18
  import { __decorate } from 'tslib';
16
- import * as i1 from '@ngx-resource/core';
17
- import { Resource, ResourceAction, ResourceRequestMethod, ResourceParams, ResourceModel } from '@ngx-resource/core';
18
- import { take, filter, map, catchError, withLatestFrom, switchMap, tap } from 'rxjs/operators';
19
- import * as i1$1 from '@angular/common/http';
20
- import { HttpHeaders } from '@angular/common/http';
19
+ import * as i1$1 from '@ngx-resource/core';
20
+ import { Resource, ResourceAction, ResourceParams, ResourceModel } from '@ngx-resource/core';
21
21
 
22
22
  class Message {
23
23
  constructor(severity, text, timeout = 0) {
@@ -41,7 +41,7 @@ class MessageComponent {
41
41
  this.onClearMessage = new EventEmitter();
42
42
  }
43
43
  ngOnInit() {
44
- if (this.message.timeout > 0) {
44
+ if (this.message && this.message.timeout > 0) {
45
45
  setTimeout(() => {
46
46
  this.closeMessage({ stopPropagation: () => null });
47
47
  }, this.message.timeout);
@@ -53,12 +53,12 @@ class MessageComponent {
53
53
  this.message = undefined;
54
54
  }
55
55
  get severity() {
56
- return this.message.severity;
56
+ return this.message?.severity ?? '?';
57
57
  }
58
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
59
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: MessageComponent, selector: "loxia-message", inputs: { message: "message" }, outputs: { onClearMessage: "onClearMessage" }, ngImport: i0, template: "<div id=\"alert-1\" *ngIf=\"message\"\n [ngClass]=\"severity\"\n class=\" loxia-message flex items-center p-4 text-white\" role=\"alert\">\n <svg class=\"flex-shrink-0 size-4 mt-0.5\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path d=\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z\"></path>\n <path d=\"M12 9v4\"></path>\n <path d=\"M12 17h.01\"></path>\n </svg>\n <span class=\"sr-only\">Info</span>\n <div class=\"ms-3 text-sm font-medium\">\n {{message.text}}\n </div>\n <button type=\"button\"\n (click)=\"closeMessage($event)\"\n class=\"ms-auto -mx-1.5 -my-1.5 rounded-lg inline-flex items-center justify-center h-8 w-8\" data-dismiss-target=\"#alert-1\" aria-label=\"Close\">\n <span class=\"sr-only\">Close</span>\n <svg class=\"w-3 h-3\" aria-hidden=\"true\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 14 14\">\n <path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m1 1 6 6m0 0 6 6M7 7l6-6M7 7l-6 6\"/>\n </svg>\n </button>\n</div>\n", styles: ["svg{background-color:transparent;stroke-width:unset}.loxia-message.information{background-color:#0288d1}.loxia-message.warning{background-color:#ff6a00}.loxia-message.notification{background-color:#f3ed38}.loxia-message.error{background-color:#b5061b}.loxia-message.success{background-color:#297d03}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
58
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
59
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MessageComponent, selector: "loxia-message", inputs: { message: "message" }, outputs: { onClearMessage: "onClearMessage" }, ngImport: i0, template: "<div id=\"alert-1\" *ngIf=\"message\"\n [ngClass]=\"severity\"\n class=\" loxia-message flex items-center p-4 text-white\" role=\"alert\">\n <svg class=\"flex-shrink-0 size-4 mt-0.5\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path d=\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z\"></path>\n <path d=\"M12 9v4\"></path>\n <path d=\"M12 17h.01\"></path>\n </svg>\n <span class=\"sr-only\">Info</span>\n <div class=\"ms-3 text-sm font-medium\">\n {{message.text}}\n </div>\n <button type=\"button\"\n (click)=\"closeMessage($event)\"\n class=\"ms-auto -mx-1.5 -my-1.5 rounded-lg inline-flex items-center justify-center h-8 w-8\" data-dismiss-target=\"#alert-1\" aria-label=\"Close\">\n <span class=\"sr-only\">Close</span>\n <svg class=\"w-3 h-3\" aria-hidden=\"true\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 14 14\">\n <path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m1 1 6 6m0 0 6 6M7 7l6-6M7 7l-6 6\"/>\n </svg>\n </button>\n</div>\n", styles: ["svg{background-color:transparent;stroke-width:unset}.loxia-message.information{background-color:#0288d1}.loxia-message.warning{background-color:#ff6a00}.loxia-message.notification{background-color:#f3ed38}.loxia-message.error{background-color:#b5061b}.loxia-message.success{background-color:#297d03}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
60
60
  }
61
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MessageComponent, decorators: [{
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MessageComponent, decorators: [{
62
62
  type: Component,
63
63
  args: [{ selector: 'loxia-message', template: "<div id=\"alert-1\" *ngIf=\"message\"\n [ngClass]=\"severity\"\n class=\" loxia-message flex items-center p-4 text-white\" role=\"alert\">\n <svg class=\"flex-shrink-0 size-4 mt-0.5\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path d=\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z\"></path>\n <path d=\"M12 9v4\"></path>\n <path d=\"M12 17h.01\"></path>\n </svg>\n <span class=\"sr-only\">Info</span>\n <div class=\"ms-3 text-sm font-medium\">\n {{message.text}}\n </div>\n <button type=\"button\"\n (click)=\"closeMessage($event)\"\n class=\"ms-auto -mx-1.5 -my-1.5 rounded-lg inline-flex items-center justify-center h-8 w-8\" data-dismiss-target=\"#alert-1\" aria-label=\"Close\">\n <span class=\"sr-only\">Close</span>\n <svg class=\"w-3 h-3\" aria-hidden=\"true\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 14 14\">\n <path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m1 1 6 6m0 0 6 6M7 7l6-6M7 7l-6 6\"/>\n </svg>\n </button>\n</div>\n", styles: ["svg{background-color:transparent;stroke-width:unset}.loxia-message.information{background-color:#0288d1}.loxia-message.warning{background-color:#ff6a00}.loxia-message.notification{background-color:#f3ed38}.loxia-message.error{background-color:#b5061b}.loxia-message.success{background-color:#297d03}\n"] }]
64
64
  }], propDecorators: { message: [{
@@ -83,10 +83,10 @@ class MessagesService {
83
83
  get messages$() {
84
84
  return this._messages$;
85
85
  }
86
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MessagesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
87
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MessagesService, providedIn: 'root' }); }
86
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MessagesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
87
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MessagesService, providedIn: 'root' }); }
88
88
  }
89
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MessagesService, decorators: [{
89
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MessagesService, decorators: [{
90
90
  type: Injectable,
91
91
  args: [{ providedIn: 'root' }]
92
92
  }] });
@@ -98,32 +98,109 @@ class MessagesComponent {
98
98
  trackbyIndex(index) {
99
99
  return index;
100
100
  }
101
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MessagesComponent, deps: [{ token: MessagesService }], target: i0.ɵɵFactoryTarget.Component }); }
102
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: MessagesComponent, selector: "loxia-messages", ngImport: i0, template: "<div class=\"messages w-full\">\n <div *ngFor=\"let message of (messagesService.messages$ | async); let i = index; trackBy: trackbyIndex\">\n <loxia-message [message]=\"message\" (onClearMessage)=\"messagesService.clearMessage($event)\"></loxia-message>\n </div>\n</div>\n", styles: [".messages{position:fixed;top:0;left:0;z-index:2000;flex-direction:column;display:flex}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: MessageComponent, selector: "loxia-message", inputs: ["message"], outputs: ["onClearMessage"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
101
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MessagesComponent, deps: [{ token: MessagesService }], target: i0.ɵɵFactoryTarget.Component }); }
102
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MessagesComponent, selector: "loxia-messages", ngImport: i0, template: "<div class=\"messages w-full\">\n <div *ngFor=\"let message of (messagesService.messages$ | async); let i = index; trackBy: trackbyIndex\">\n <loxia-message [message]=\"message\" (onClearMessage)=\"messagesService.clearMessage($event)\"></loxia-message>\n </div>\n</div>\n", styles: [".messages{position:fixed;top:0;left:0;z-index:2000;flex-direction:column;display:flex}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: MessageComponent, selector: "loxia-message", inputs: ["message"], outputs: ["onClearMessage"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
103
103
  }
104
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MessagesComponent, decorators: [{
104
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MessagesComponent, decorators: [{
105
105
  type: Component,
106
106
  args: [{ selector: 'loxia-messages', template: "<div class=\"messages w-full\">\n <div *ngFor=\"let message of (messagesService.messages$ | async); let i = index; trackBy: trackbyIndex\">\n <loxia-message [message]=\"message\" (onClearMessage)=\"messagesService.clearMessage($event)\"></loxia-message>\n </div>\n</div>\n", styles: [".messages{position:fixed;top:0;left:0;z-index:2000;flex-direction:column;display:flex}\n"] }]
107
107
  }], ctorParameters: () => [{ type: MessagesService }] });
108
108
 
109
109
  class OverlayComponent {
110
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: OverlayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
111
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: OverlayComponent, selector: "loxia-overlay", ngImport: i0, template: "<div class=\"overlay\">\n <div class=\"centered-content\">\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n", styles: [":host{width:100vw;height:0;opacity:1}.centered-content{position:relative;width:100%;height:100%}.content{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.overlay{position:absolute;background-color:#1f2528db;width:100%;height:100%;z-index:1001}\n"] }); }
110
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OverlayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
111
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: OverlayComponent, selector: "loxia-overlay", ngImport: i0, template: "<div class=\"overlay\">\n <div class=\"centered-content\">\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n", styles: [":host{width:100vw;height:0;opacity:1}.centered-content{position:relative;width:100%;height:100%}.content{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.overlay{position:absolute;background-color:#1f2528db;width:100%;height:100%;z-index:1001}\n"] }); }
112
112
  }
113
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: OverlayComponent, decorators: [{
113
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OverlayComponent, decorators: [{
114
114
  type: Component,
115
115
  args: [{ selector: 'loxia-overlay', template: "<div class=\"overlay\">\n <div class=\"centered-content\">\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n", styles: [":host{width:100vw;height:0;opacity:1}.centered-content{position:relative;width:100%;height:100%}.content{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.overlay{position:absolute;background-color:#1f2528db;width:100%;height:100%;z-index:1001}\n"] }]
116
116
  }] });
117
117
 
118
118
  class ProgressIndicatorComponent {
119
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ProgressIndicatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
120
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: ProgressIndicatorComponent, selector: "loxia-progress-indicator", ngImport: i0, template: "<div class=\"inline-block h-16 w-16 animate-spin rounded-full border-4 border-solid border-current border-e-transparent align-[-0.125em] text-surface motion-reduce:animate-[spin_1.5s_linear_infinite] dark:text-warning\"\n role=\"status\">\n <span class=\"!absolute !-m-px !h-px !w-px !overflow-hidden !whitespace-nowrap !border-0 !p-0 ![clip:rect(0,0,0,0)]\">\n Loading...\n </span>\n</div>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
119
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ProgressIndicatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
120
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ProgressIndicatorComponent, selector: "loxia-progress-indicator", ngImport: i0, template: "<div class=\"inline-block h-16 w-16 animate-spin rounded-full border-4 border-solid border-current border-e-transparent align-[-0.125em] text-surface motion-reduce:animate-[spin_1.5s_linear_infinite] dark:text-warning\"\n role=\"status\">\n <span class=\"!absolute !-m-px !h-px !w-px !overflow-hidden !whitespace-nowrap !border-0 !p-0 ![clip:rect(0,0,0,0)]\">\n Loading...\n </span>\n</div>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
121
121
  }
122
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ProgressIndicatorComponent, decorators: [{
122
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ProgressIndicatorComponent, decorators: [{
123
123
  type: Component,
124
124
  args: [{ selector: 'loxia-progress-indicator', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"inline-block h-16 w-16 animate-spin rounded-full border-4 border-solid border-current border-e-transparent align-[-0.125em] text-surface motion-reduce:animate-[spin_1.5s_linear_infinite] dark:text-warning\"\n role=\"status\">\n <span class=\"!absolute !-m-px !h-px !w-px !overflow-hidden !whitespace-nowrap !border-0 !p-0 ![clip:rect(0,0,0,0)]\">\n Loading...\n </span>\n</div>\n" }]
125
125
  }] });
126
126
 
127
+ const SET_RIT_DELEN = '[mst] SetRitDelen';
128
+ const SET_RIT_DELEN_AFTER_UPDATE = '[mst] SetRitDelenAfterUpdate';
129
+ const UPDATE_RIT_DELEN = '[mst] UpdateRitDelen';
130
+ const TOGGLE_RITDEEL_ZICHTBAAR = '[mst] ToggleRitdeelZichtbaar';
131
+ const SET_RITDEEL_ZICHTBAAR = '[mst] ZetRitdeelZichtbaar';
132
+ const SET_ZICHTBAARHEID_ALLE_RITDELEN = '[mst] SetZichtbaarheidAlleRitdelen';
133
+ const TOGGLE_ZICHTBAARHEID_VOOR_BEWEGINGEN = '[mst] ToggleZichtbaarheidVoorBewegingen';
134
+ const SET_ALTERNATIEVE_RIT_DELEN = '[mst] SetAlternatieveRitDelen';
135
+ const RITDEEL_INVOEGEN = '[mst] RitdeelInvoegen';
136
+ const DELETE_RITDEEL = '[mst] DeleteRitdeel';
137
+ const DELETE_RITDEEL_ACTIE = '[mst] DeleteRitdeelActie';
138
+ const ADD_RITDEEL_ACTIE = '[mst] AddRitdeelActie';
139
+ const NAVIGEER = '[mst] Navigeer';
140
+ const NAVIGEER_VANAF = '[mst] NavigeerVanaf';
141
+ const setRitDelen = createAction(SET_RIT_DELEN, (ritDelen, paginationSize) => ({ ritDelen, paginationSize }));
142
+ const setRitdelenAfterUpdate = createAction(SET_RIT_DELEN_AFTER_UPDATE, (ritDelen) => ({ ritDelen }));
143
+ const navigeer = createAction(NAVIGEER, (stapSize, paginationSize) => ({ stapSize, paginationSize }));
144
+ const navigeerVanaf = createAction(NAVIGEER_VANAF, (paginationSize, ritdeel) => ({ paginationSize, ritdeel }));
145
+ const updateRitDelen = createAction(UPDATE_RIT_DELEN, (ritDelen) => ({ ritDelen }));
146
+ const toggleRitdeelZichtbaar = createAction(TOGGLE_RITDEEL_ZICHTBAAR, (ritDeel) => ({ ritDeel }));
147
+ const setRitdeelZichtbaar = createAction(SET_RITDEEL_ZICHTBAAR, (ritDeel, zichtbaar) => ({ ritDeel, zichtbaar }));
148
+ const deleteRitdeel = createAction(DELETE_RITDEEL, (ritDeel) => ({ ritDeel }));
149
+ const deleteRitdeelActie = createAction(DELETE_RITDEEL_ACTIE, (ritDeel, actie) => ({ ritDeel, actie }));
150
+ const addRitdeelActie = createAction(ADD_RITDEEL_ACTIE, (ritDeel, actie) => ({ ritDeel, actie }));
151
+ const setZichtbaarheidAlleRitdelen = createAction(SET_ZICHTBAARHEID_ALLE_RITDELEN, (zichtbaarheid) => ({ zichtbaarheid }));
152
+ const toggleZichtbaarheidVoorBewegingen = createAction(TOGGLE_ZICHTBAARHEID_VOOR_BEWEGINGEN, (bewegingIds) => ({ bewegingIds }));
153
+ const setAlternatieveRitDelen = createAction(SET_ALTERNATIEVE_RIT_DELEN, (alternatieveRitDeel) => ({ alternatieveRitDeel }));
154
+ const ritdeelInvoegen = createAction(RITDEEL_INVOEGEN, (nieuweRoute) => ({ nieuweRoute }));
155
+ // do not export return value
156
+ const ritdeelActions = union({
157
+ setRitDelen,
158
+ updateRitDelen,
159
+ setRitdelenAfterUpdate,
160
+ toggleRitdeelZichtbaar,
161
+ setRitdeelZichtbaar,
162
+ deleteRitdeel,
163
+ deleteRitdeelActie,
164
+ addRitdeelActie,
165
+ setZichtbaarheidAlleRitdelen,
166
+ toggleZichtbaarheidVoorBewegingen,
167
+ setAlternatieveRitDelen,
168
+ ritdeelInvoegen
169
+ });
170
+
171
+ class CarouselControlsComponent {
172
+ constructor(store) {
173
+ this.store = store;
174
+ this.paginationSize = 4;
175
+ this.sideNavOpen = false;
176
+ this.ritdelen$ = this.store.select('ritDelen').pipe(filter(r => r?.length > 0));
177
+ this.kanLinks$ = this.ritdelen$.pipe(map(r => this.kanLinksNavigeren(r)));
178
+ this.kanRechts$ = this.ritdelen$.pipe(map(r => this.kanRechtsNavigeren(r)));
179
+ }
180
+ kanLinksNavigeren(ritDelen) {
181
+ return ritDelen.length > this.paginationSize && !ritDelen[0].isBinnenWindow();
182
+ }
183
+ kanRechtsNavigeren(ritDelen) {
184
+ return ritDelen.length > this.paginationSize && !ritDelen[ritDelen.length - 1].isBinnenWindow();
185
+ }
186
+ navigeerNaarLinks(event) {
187
+ this.store.dispatch(navigeer(event?.ctrlKey ? -1 : -(this.paginationSize - 1), this.paginationSize));
188
+ }
189
+ navigeerNaarRechts(event) {
190
+ this.store.dispatch(navigeer(event?.ctrlKey ? 1 : this.paginationSize - 1, this.paginationSize));
191
+ }
192
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CarouselControlsComponent, deps: [{ token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
193
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: CarouselControlsComponent, selector: "carousel-controls", inputs: { paginationSize: "paginationSize", sideNavOpen: "sideNavOpen" }, ngImport: i0, template: "<div *ngIf=\"ritdelen$ | async\">\n <a class=\"loxia-carousel-control-prev\" [ngClass]=\"(sideNavOpen)?'carousel-sidebar-open':'carousel-sidebar'\" role=\"button\"\n data-slide=\"prev\" (click)=\"navigeerNaarLinks($event)\" [hidden]=\"(kanLinks$ | async) === false\">\n <span id=\"previous-page\" class=\"loxia-carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"loxia-sr-only\">Previous</span>\n</a>\n <a class=\"loxia-carousel-control-next\" style=\"width: 2%;\" role=\"button\" data-slide=\"next\" (click)=\"navigeerNaarRechts($event)\"\n [hidden]=\"(kanRechts$ | async) === false\">\n <span id=\"next-page\" class=\"loxia-carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"loxia-sr-only\">Next</span>\n </a>\n</div>\n", styles: [".loxia-carousel-control-prev{left:0}.loxia-carousel-control-next{right:0}.loxia-carousel-control-next-icon,.loxia-carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:50%/100% 100% no-repeat}.loxia-carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\")}.loxia-carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\")}.loxia-carousel-control-next:focus,.loxia-carousel-control-next:hover,.loxia-carousel-control-prev:focus,.loxia-carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.loxia-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.loxia-carousel-control-next,.loxia-carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}.carousel-sidebar{width:2%}.carousel-sidebar-open{width:2%;transition:all .3s;left:470px}[hidden]{display:none!important}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
194
+ }
195
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CarouselControlsComponent, decorators: [{
196
+ type: Component,
197
+ args: [{ selector: 'carousel-controls', template: "<div *ngIf=\"ritdelen$ | async\">\n <a class=\"loxia-carousel-control-prev\" [ngClass]=\"(sideNavOpen)?'carousel-sidebar-open':'carousel-sidebar'\" role=\"button\"\n data-slide=\"prev\" (click)=\"navigeerNaarLinks($event)\" [hidden]=\"(kanLinks$ | async) === false\">\n <span id=\"previous-page\" class=\"loxia-carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"loxia-sr-only\">Previous</span>\n</a>\n <a class=\"loxia-carousel-control-next\" style=\"width: 2%;\" role=\"button\" data-slide=\"next\" (click)=\"navigeerNaarRechts($event)\"\n [hidden]=\"(kanRechts$ | async) === false\">\n <span id=\"next-page\" class=\"loxia-carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"loxia-sr-only\">Next</span>\n </a>\n</div>\n", styles: [".loxia-carousel-control-prev{left:0}.loxia-carousel-control-next{right:0}.loxia-carousel-control-next-icon,.loxia-carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:50%/100% 100% no-repeat}.loxia-carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\")}.loxia-carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\")}.loxia-carousel-control-next:focus,.loxia-carousel-control-next:hover,.loxia-carousel-control-prev:focus,.loxia-carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.loxia-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.loxia-carousel-control-next,.loxia-carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}.carousel-sidebar{width:2%}.carousel-sidebar-open{width:2%;transition:all .3s;left:470px}[hidden]{display:none!important}\n"] }]
198
+ }], ctorParameters: () => [{ type: i2$1.Store }], propDecorators: { paginationSize: [{
199
+ type: Input
200
+ }], sideNavOpen: [{
201
+ type: Input
202
+ }] } });
203
+
127
204
  const version = '8.1.3-SNAPSHOT';
128
205
 
129
206
  const SET_EDITABLE = '[mst] SetEditable';
@@ -169,7 +246,8 @@ const LAAD_EN_VERWERK_SIGNALERINGSBEELD_INFO = '[mst] laadEnVerwerkSignaleringsb
169
246
  const FOCUS_OP_RITDEEL = '[mst] focusOpRitdeel';
170
247
  const FOCUS_OP_IDS = '[mst] focusOpIds';
171
248
  const BEPAAL_SB_INFOS = '[mst] bepaalSbInfos';
172
- const SET_SELECTED_RITDEEL = '[mst] SetSelectedRitdeel';
249
+ const TRIGGER_SELECTIE_UPDATE = '[mst] TriggerSelectieUpdate';
250
+ const SET_SELECTIE_INFOS = '[mst] SetSelectieInfos';
173
251
  const setEditable = createAction(SET_EDITABLE, (editable) => ({ editable }));
174
252
  const SetRitSelectieIds = createAction(SET_RIT_SELECTIE_IDS, (ids) => ({ ids }));
175
253
  const SetGeplandeActies = createAction(SET_GEPLANDE_ACTIES, (geplandeActiesMap) => ({ geplandeActiesMap }));
@@ -213,7 +291,8 @@ const navigeerBuitenRit = createAction(NAVIGEER_BUITEN_RIT, (randPuic) => ({ ran
213
291
  const focusOpRitdeel = createAction(FOCUS_OP_RITDEEL, (ritdeel, paginationSize, iaVersieInfo) => ({ ritdeel, paginationSize, iaVersieInfo }));
214
292
  const focusOpIds = createAction(FOCUS_OP_IDS, (puics) => ({ puics }));
215
293
  const bepaalSbInfos = createAction(BEPAAL_SB_INFOS, (rit, ongeplandeActies, iaVersie, ritGewijzigdToegestaan, paginationSize) => ({ rit, ongeplandeActies, iaVersie, ritGewijzigdToegestaan, paginationSize }));
216
- const SetSelectedRitdeel = createAction(SET_SELECTED_RITDEEL, (id) => ({ id }));
294
+ const svgUpdateFinished = createAction(TRIGGER_SELECTIE_UPDATE);
295
+ const setSelectieInfos = createAction(SET_SELECTIE_INFOS, (selectieInfos) => ({ selectieInfos }));
217
296
  // do not export return value
218
297
  const mstActions = union({
219
298
  setEditable,
@@ -252,238 +331,10 @@ const mstActions = union({
252
331
  BewegingInvoegen,
253
332
  KeurAlleActiesGoed,
254
333
  UpdateRit,
255
- setSelectedRitdeel: SetSelectedRitdeel
256
- });
257
-
258
- const SET_RIT_DELEN = '[mst] SetRitDelen';
259
- const SET_RIT_DELEN_AFTER_UPDATE = '[mst] SetRitDelenAfterUpdate';
260
- const UPDATE_RIT_DELEN = '[mst] UpdateRitDelen';
261
- const TOGGLE_RITDEEL_ZICHTBAAR = '[mst] ToggleRitdeelZichtbaar';
262
- const SET_RITDEEL_ZICHTBAAR = '[mst] ZetRitdeelZichtbaar';
263
- const SET_ZICHTBAARHEID_ALLE_RITDELEN = '[mst] SetZichtbaarheidAlleRitdelen';
264
- const TOGGLE_ZICHTBAARHEID_VOOR_BEWEGINGEN = '[mst] ToggleZichtbaarheidVoorBewegingen';
265
- const SET_ALTERNATIEVE_RIT_DELEN = '[mst] SetAlternatieveRitDelen';
266
- const RITDEEL_INVOEGEN = '[mst] RitdeelInvoegen';
267
- const DELETE_RITDEEL = '[mst] DeleteRitdeel';
268
- const DELETE_RITDEEL_ACTIE = '[mst] DeleteRitdeelActie';
269
- const ADD_RITDEEL_ACTIE = '[mst] AddRitdeelActie';
270
- const NAVIGEER = '[mst] Navigeer';
271
- const NAVIGEER_VANAF = '[mst] NavigeerVanaf';
272
- const setRitDelen = createAction(SET_RIT_DELEN, (ritDelen, paginationSize, iaversieinfo) => ({ ritDelen, paginationSize, iaversieinfo }));
273
- const setRitdelenAfterUpdate = createAction(SET_RIT_DELEN_AFTER_UPDATE, (ritDelen) => ({ ritDelen }));
274
- const navigeer = createAction(NAVIGEER, (stapSize, paginationSize, iaversieinfo) => ({ stapSize, paginationSize, iaversieinfo }));
275
- const navigeerVanaf = createAction(NAVIGEER_VANAF, (paginationSize, iaversieinfo, ritdeel) => ({ paginationSize, iaversieinfo, ritdeel }));
276
- const updateRitDelen = createAction(UPDATE_RIT_DELEN, (ritDelen) => ({ ritDelen }));
277
- const toggleRitdeelZichtbaar = createAction(TOGGLE_RITDEEL_ZICHTBAAR, (ritDeel) => ({ ritDeel }));
278
- const setRitdeelZichtbaar = createAction(SET_RITDEEL_ZICHTBAAR, (ritDeel, zichtbaar) => ({ ritDeel, zichtbaar }));
279
- const deleteRitdeel = createAction(DELETE_RITDEEL, (ritDeel) => ({ ritDeel }));
280
- const deleteRitdeelActie = createAction(DELETE_RITDEEL_ACTIE, (ritDeel, actie) => ({ ritDeel, actie }));
281
- const addRitdeelActie = createAction(ADD_RITDEEL_ACTIE, (ritDeel, actie) => ({ ritDeel, actie }));
282
- const setZichtbaarheidAlleRitdelen = createAction(SET_ZICHTBAARHEID_ALLE_RITDELEN, (zichtbaarheid) => ({ zichtbaarheid }));
283
- const toggleZichtbaarheidVoorBewegingen = createAction(TOGGLE_ZICHTBAARHEID_VOOR_BEWEGINGEN, (bewegingIds) => ({ bewegingIds }));
284
- const setAlternatieveRitDelen = createAction(SET_ALTERNATIEVE_RIT_DELEN, (alternatieveRitDeel) => ({ alternatieveRitDeel }));
285
- const ritdeelInvoegen = createAction(RITDEEL_INVOEGEN, (nieuweRoute) => ({ nieuweRoute }));
286
- // do not export return value
287
- const ritdeelActions = union({
288
- setRitDelen,
289
- updateRitDelen,
290
- setRitdelenAfterUpdate,
291
- toggleRitdeelZichtbaar,
292
- setRitdeelZichtbaar,
293
- deleteRitdeel,
294
- deleteRitdeelActie,
295
- addRitdeelActie,
296
- setZichtbaarheidAlleRitdelen,
297
- toggleZichtbaarheidVoorBewegingen,
298
- setAlternatieveRitDelen,
299
- ritdeelInvoegen
334
+ svgUpdateFinished,
335
+ setSelectieInfos
300
336
  });
301
337
 
302
- let MstLoggingResource = class MstLoggingResource extends Resource {
303
- constructor(restHandler, store) {
304
- super(restHandler);
305
- this.store = store;
306
- this.subscriptions = new Subscription();
307
- this.subscriptions.add(this.store.select('baseUrl').subscribe(baseUrl => this.$setUrl(baseUrl)));
308
- }
309
- ngOnDestroy() {
310
- this.subscriptions.unsubscribe();
311
- }
312
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MstLoggingResource, deps: [{ token: i1.ResourceHandler }, { token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
313
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MstLoggingResource }); }
314
- };
315
- __decorate([
316
- ResourceAction({
317
- path: '/',
318
- method: ResourceRequestMethod.Post
319
- })
320
- ], MstLoggingResource.prototype, "logErrorMessages", void 0);
321
- MstLoggingResource = __decorate([
322
- ResourceParams({
323
- pathPrefix: '/mst/services/rest/logging'
324
- })
325
- ], MstLoggingResource);
326
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MstLoggingResource, decorators: [{
327
- type: Injectable
328
- }], ctorParameters: () => [{ type: i1.ResourceHandler }, { type: i2$1.Store }], propDecorators: { logErrorMessages: [] } });
329
- class MstLoggingDto extends ResourceModel {
330
- constructor(data) {
331
- super();
332
- this.$resource = MstLoggingResource;
333
- this.$setData(data);
334
- }
335
- toJSON() {
336
- return {
337
- iaVersie: this.iaVersie,
338
- meldingLevel: this.meldingLevel,
339
- meldingMessage: this.meldingMessage,
340
- algemeneRitInfoDto: this.algemeneRitInfoDto,
341
- actieDto: this.actieDto,
342
- sbinfoDtos: this.sbinfoDtos
343
- };
344
- }
345
- toString() {
346
- return `${this.iaVersie},${this.meldingLevel},${this.meldingMessage},${this.algemeneRitInfoDto},
347
- ${this.actieDto},${this.sbinfoDtos}`;
348
- }
349
- $setData(data) {
350
- if (data) {
351
- this.iaVersie = data.iaVersie;
352
- this.meldingLevel = data.meldingLevel;
353
- this.meldingMessage = data.meldingMessage;
354
- this.algemeneRitInfoDto = data.algemeneRitInfoDto;
355
- this.actieDto = data.actieDto;
356
- this.sbinfoDtos = data.sbinfoDtos;
357
- }
358
- return this;
359
- }
360
- }
361
- class ActieDto {
362
- constructor(data) {
363
- this.$setData(data);
364
- }
365
- toJSON() {
366
- return {
367
- pplgNaam: this.pplgNaam,
368
- ritActieTypeOmschrijving: this.ritActieTypeOmschrijving,
369
- ritActieStatus: this.ritActieStatus,
370
- bewegingId: this.bewegingId,
371
- wisselType: this.wisselType,
372
- wisselNaam: this.wisselNaam,
373
- wisselKantCode: this.wisselKantCode,
374
- vanKilometerlint: this.vanKilometerlint,
375
- vanKilometrering: this.vanKilometrering,
376
- totKilometerlint: this.totKilometerlint,
377
- totKilometrering: this.totKilometrering
378
- };
379
- }
380
- toString() {
381
- return `${this.pplgNaam},${this.ritActieTypeOmschrijving},${this.ritActieStatus},
382
- ${this.bewegingId},${this.wisselType},${this.wisselNaam},${this.wisselKantCode},
383
- ${this.vanKilometerlint},${this.vanKilometrering},${this.totKilometerlint},${this.totKilometrering}`;
384
- }
385
- $setData(data) {
386
- if (data) {
387
- this.pplgNaam = data.pplgNaam;
388
- this.ritActieTypeOmschrijving = data.ritActieTypeOmschrijving;
389
- this.ritActieStatus = data.ritActieStatus;
390
- this.bewegingId = data.bewegingId;
391
- this.wisselType = data.wisselType;
392
- this.wisselNaam = data.wisselNaam;
393
- this.wisselKantCode = data.wisselKantCode;
394
- this.vanKilometerlint = data.vanKilometerlint;
395
- this.vanKilometrering = data.vanKilometrering;
396
- this.totKilometerlint = data.totKilometerlint;
397
- this.totKilometrering = data.totKilometrering;
398
- }
399
- return this;
400
- }
401
- }
402
- class AlgemeneRitInfoDto {
403
- constructor(data) {
404
- this.$setData(data);
405
- }
406
- toJSON() {
407
- return {
408
- id: this.id,
409
- jaarplanId: this.jaarplanId,
410
- volgnummer: this.volgnummer,
411
- machineTypeId: this.machineTypeId,
412
- machineTypeOmschrijving: this.machineTypeOmschrijving,
413
- ritDatum: this.ritDatum,
414
- startDatum: this.startDatum,
415
- eindDatum: this.eindDatum,
416
- ritNaam: this.ritNaam,
417
- startLocatie: this.startLocatie,
418
- eindLocatie: this.eindLocatie,
419
- ritStatus: this.ritStatus,
420
- modified: this.modified,
421
- modifiedBy: this.modifiedBy,
422
- planJobId: this.planJobId
423
- };
424
- }
425
- toString() {
426
- return `${this.id},${this.jaarplanId},${this.volgnummer},${this.machineTypeId},${this.machineTypeOmschrijving}
427
- ,${this.ritDatum},${this.startDatum},${this.eindDatum},${this.ritNaam},${this.startLocatie}
428
- ,${this.eindLocatie},${this.ritStatus},${this.modified},${this.modifiedBy},${this.planJobId}`;
429
- }
430
- $setData(data) {
431
- if (data) {
432
- this.id = data.id;
433
- this.jaarplanId = data.jaarplanId;
434
- this.volgnummer = data.volgnummer;
435
- this.machineTypeId = data.machineTypeId;
436
- this.machineTypeOmschrijving = data.machineTypeOmschrijving;
437
- this.ritDatum = data.ritDatum;
438
- this.startDatum = data.startDatum;
439
- this.eindDatum = data.eindDatum;
440
- this.ritNaam = data.ritNaam;
441
- this.startLocatie = data.startLocatie;
442
- this.eindLocatie = data.eindLocatie;
443
- this.ritStatus = data.ritStatus;
444
- this.modified = data.modified;
445
- this.modifiedBy = data.modifiedBy;
446
- this.planJobId = data.planJobId;
447
- }
448
- return this;
449
- }
450
- }
451
-
452
- class Utils {
453
- static flatMap(xs, f) {
454
- return xs.reduce((acc, x) => acc.concat(f(x)), []);
455
- }
456
- static getValidErorrMessage(err) {
457
- let errorMsg = '';
458
- if (err.msg) {
459
- errorMsg += err.msg;
460
- }
461
- if (Array.isArray(err.body)) {
462
- err.body.forEach(x => errorMsg += x);
463
- }
464
- else if (err.body) {
465
- if (err.body instanceof ProgressEvent) {
466
- errorMsg = 'Kon geen verbinding maken met de server';
467
- }
468
- else if (err.body.text) {
469
- errorMsg += err.body.text;
470
- }
471
- else {
472
- errorMsg += err.body;
473
- }
474
- }
475
- if (err.message) {
476
- errorMsg += err.message;
477
- }
478
- if (typeof err === 'string' || err instanceof String) {
479
- errorMsg += err;
480
- }
481
- if (errorMsg !== '') {
482
- return errorMsg;
483
- }
484
- }
485
- }
486
-
487
338
  /**
488
339
  * https://gist.github.com/jordanluyke/609a4fffb69d1ebafdadd313ee2ee804
489
340
  *
@@ -547,7 +398,7 @@ class ArrayMultimap {
547
398
  return Array.from(new Set(this._entries.map(entry => entry.key)));
548
399
  }
549
400
  values() {
550
- return Utils.flatMap(this._entries, x => x.value);
401
+ return this._entries.reduce((acc, x) => acc.concat(x.value), []);
551
402
  }
552
403
  put(key, value) {
553
404
  this._entries.push(new MultimapEntry(key, value));
@@ -641,10 +492,10 @@ class SignaleringsBeeldManagerService {
641
492
  getEersteVerbindingPuicVoorSplitEngelseWissel(engelsWisselNaam, kantcode) {
642
493
  return this.signaleringsBeeldManager.getEersteVerbindingPuicVoorSplitEngelseWissel(engelsWisselNaam, kantcode);
643
494
  }
644
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SignaleringsBeeldManagerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
645
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SignaleringsBeeldManagerService }); }
495
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SignaleringsBeeldManagerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
496
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SignaleringsBeeldManagerService }); }
646
497
  }
647
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SignaleringsBeeldManagerService, decorators: [{
498
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SignaleringsBeeldManagerService, decorators: [{
648
499
  type: Injectable
649
500
  }] });
650
501
 
@@ -653,6 +504,7 @@ class EditorService {
653
504
  this.signaleringsBeeldManagerService = signaleringsBeeldManagerService;
654
505
  this.initReadyPromise();
655
506
  }
507
+ // Called from GWT only, can be removed when GWT is gone. any is used because it will be removed with GWT
656
508
  setEditor(editor) {
657
509
  this.editor = editor;
658
510
  this.resolveReadyPromise();
@@ -660,6 +512,7 @@ class EditorService {
660
512
  isReady() {
661
513
  return this.promise;
662
514
  }
515
+ // Called from GWT only, can be removed when GWT is gone
663
516
  setSignaleringsBeeldManager(signaleringsBeeldManager) {
664
517
  this.signaleringsBeeldManagerService.set(signaleringsBeeldManager);
665
518
  }
@@ -685,10 +538,10 @@ class EditorService {
685
538
  that.resolveReadyPromise = resolve;
686
539
  }) : this.promise;
687
540
  }
688
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: EditorService, deps: [{ token: SignaleringsBeeldManagerService }], target: i0.ɵɵFactoryTarget.Injectable }); }
689
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: EditorService }); }
541
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EditorService, deps: [{ token: SignaleringsBeeldManagerService }], target: i0.ɵɵFactoryTarget.Injectable }); }
542
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EditorService }); }
690
543
  }
691
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: EditorService, decorators: [{
544
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EditorService, decorators: [{
692
545
  type: Injectable
693
546
  }], ctorParameters: () => [{ type: SignaleringsBeeldManagerService }] });
694
547
 
@@ -705,7 +558,7 @@ class BewegingUtils {
705
558
  const retval = [];
706
559
  retval.length = ritDelen.length;
707
560
  const origineleBewegingMap = this.bepaalOrigineleBewegingMap(origineleBewegingen);
708
- let vorigeBeweging = null;
561
+ let vorigeBeweging = undefined;
709
562
  for (let i = 0; i < ritDelen.length; i++) {
710
563
  const ritdeel = ritDelen[i];
711
564
  if (ritdeel.beweging) {
@@ -735,7 +588,7 @@ class BewegingUtils {
735
588
  }
736
589
  static bewegingenZijnGewijzigd(ritDelen, origineleBewegingen) {
737
590
  const ritDelenArray = ritDelen
738
- .filter(r => r.beweging)
591
+ .filter(r => r.beweging?.id)
739
592
  .map(r => r.beweging.id)
740
593
  .sort((a, b) => a - b);
741
594
  const bewegingenIdArray = origineleBewegingen.map(b => b.id).sort((a, b) => a - b);
@@ -751,9 +604,9 @@ class BewegingUtils {
751
604
  return stringToCheck.indexOf(match) !== -1;
752
605
  }
753
606
  static isGewijzigd(ritdeel, nieuwDwangNummer, origineleBewegingenMap) {
754
- const dwangGewijzigd = ritdeel.beweging.dwangNummer !== nieuwDwangNummer;
607
+ const dwangGewijzigd = ritdeel.beweging?.dwangNummer !== nieuwDwangNummer;
755
608
  let gewijzigd = false;
756
- if (ritdeel.beweging.wijzigStatus === this.NORMAAL) {
609
+ if (ritdeel.beweging?.wijzigStatus === this.NORMAAL) {
757
610
  const origineleBewegingActies = origineleBewegingenMap.get(ritdeel.beweging.id);
758
611
  const huidigeActies = this.createSortedActieIdList(ritdeel.acties);
759
612
  gewijzigd = JSON.stringify(huidigeActies) !== JSON.stringify(origineleBewegingActies);
@@ -777,7 +630,7 @@ class BewegingUtils {
777
630
  let naarSeinPplg;
778
631
  let naarSpoor = newRitdeel.getNaarPrlSpoor();
779
632
  if (eindSein.getTypeAlsString() === BewegingUtils.SEIN_TYPE_FICTIEF) {
780
- if (newRitdeel.heeftVrijebaanInfo()) {
633
+ if (newRitdeel.heeftVrijebaanInfo() && newRitdeel.getVrijebaanRijweg()) {
781
634
  const vbEindSein = newRitdeel.getVrijebaanRijweg().getEindSein();
782
635
  naarSeinNaam = vbEindSein.getName();
783
636
  naarSeinPplg = vbEindSein.getPPLG();
@@ -820,10 +673,10 @@ class BewegingUtils {
820
673
  static toRouteFileDwangNummer(dwangNummer) {
821
674
  return (dwangNummer === 0) ? -1 : dwangNummer;
822
675
  }
823
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BewegingUtils, deps: [{ token: EditorService }], target: i0.ɵɵFactoryTarget.Injectable }); }
824
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BewegingUtils }); }
676
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BewegingUtils, deps: [{ token: EditorService }], target: i0.ɵɵFactoryTarget.Injectable }); }
677
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BewegingUtils }); }
825
678
  }
826
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BewegingUtils, decorators: [{
679
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BewegingUtils, decorators: [{
827
680
  type: Injectable
828
681
  }], ctorParameters: () => [{ type: EditorService }] });
829
682
 
@@ -831,43 +684,23 @@ class ViewerControlService {
831
684
  constructor(store, bewegingUtils) {
832
685
  this.store = store;
833
686
  this.bewegingUtils = bewegingUtils;
834
- this.subscriptions = new Subscription();
835
687
  this.valideRit$ = new BehaviorSubject(false);
836
688
  this.printing$ = new BehaviorSubject(false);
837
689
  this.sideNavOpen = false;
838
690
  this.sideNavOpen$ = new BehaviorSubject(this.sideNavOpen);
839
- this.subscriptions.add(combineLatest([
840
- store.select('ritSelectieIds'),
841
- store.select('actieOpRitSelectieIds'),
842
- store.select('ongeplandeActieSelectieIds'),
843
- store.select('gebrokenRitSelectieIds'),
844
- store.select('alternatievenSelectieIds'),
845
- store.select('beginSeinSelectieIds'),
846
- store.select('eindSeinSelectieIds')
847
- ]).subscribe(([rit, actieOpRitSelectieIds, ongeplandeActieSelectieIds, gebrokenrit, alternatieven, begin, eind]) => {
848
- const selectie = [];
849
- selectie.push(new SelectieInfo(rit, 'rit'));
850
- selectie.push(new SelectieInfo(actieOpRitSelectieIds, 'actieoprit'));
851
- selectie.push(new SelectieInfo(ongeplandeActieSelectieIds, 'ongeplandeActie'));
852
- selectie.push(new SelectieInfo(gebrokenrit, 'gebrokenrit'));
853
- selectie.push(new SelectieInfo(alternatieven, 'alternatieveRoute'));
854
- selectie.push(new SelectieInfo(begin, 'zigzagVan'));
855
- selectie.push(new SelectieInfo(eind, 'zigzagNaar'));
856
- this.selectieInfos = selectie;
857
- }));
858
- this.subscriptions.add(store.select('ritDelen').subscribe(ritdelen => this.ritdelen = ritdelen));
691
+ this.origineelTreinPad = {};
859
692
  }
860
693
  toggleSideNavVisible() {
861
694
  this.sideNavOpen = !this.sideNavOpen;
862
695
  this.sideNavOpen$.next(this.sideNavOpen);
863
696
  }
864
697
  keurAlleActiesGoed(ongeplandeActies) {
865
- if (this.ritdelen) {
698
+ this.store.select('ritDelen').pipe(take(1), filter(ritdelen => !!ritdelen), tap(ritdelen => {
866
699
  this.store.dispatch(ShowProgress());
867
- const bewegingen = this.bewegingUtils.extractBewegingenUitRitdelen(this.ritdelen, this.origineelTreinPad.bewegingen);
868
- const alleActies = this.verzamelAlleActies(this.ritdelen, ongeplandeActies);
700
+ const bewegingen = this.bewegingUtils.extractBewegingenUitRitdelen(ritdelen, this.origineelTreinPad.bewegingen);
701
+ const alleActies = this.verzamelAlleActies(ritdelen, ongeplandeActies);
869
702
  this.store.dispatch(KeurAlleActiesGoed(this.getBewegingenZonderActies(bewegingen), alleActies));
870
- }
703
+ })).subscribe();
871
704
  }
872
705
  setValideRit(valideRit) {
873
706
  this.valideRit$.next(valideRit);
@@ -889,7 +722,7 @@ class ViewerControlService {
889
722
  }
890
723
  setOrigineelTreinPad(treinpad) {
891
724
  const rit = JSON.parse(JSON.stringify(treinpad));
892
- this.store.dispatch(SetAlgemeneRitInfo(new AlgemeneRitInfoDto({
725
+ this.store.dispatch(SetAlgemeneRitInfo({
893
726
  id: rit.id,
894
727
  jaarplanId: rit.jaarplanId,
895
728
  volgnummer: rit.volgnummer,
@@ -905,7 +738,7 @@ class ViewerControlService {
905
738
  modified: rit.modified,
906
739
  modifiedBy: rit.modifiedBy,
907
740
  planJobId: rit.planJobId
908
- })));
741
+ }));
909
742
  this.origineelTreinPad = rit;
910
743
  }
911
744
  isValideRit$() {
@@ -914,10 +747,10 @@ class ViewerControlService {
914
747
  isPrinting$() {
915
748
  return this.printing$;
916
749
  }
917
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ViewerControlService, deps: [{ token: i2$1.Store }, { token: BewegingUtils }], target: i0.ɵɵFactoryTarget.Injectable }); }
918
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ViewerControlService, providedIn: 'root' }); }
750
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ViewerControlService, deps: [{ token: i2$1.Store }, { token: BewegingUtils }], target: i0.ɵɵFactoryTarget.Injectable }); }
751
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ViewerControlService, providedIn: 'root' }); }
919
752
  }
920
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ViewerControlService, decorators: [{
753
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ViewerControlService, decorators: [{
921
754
  type: Injectable,
922
755
  args: [{
923
756
  providedIn: 'root'
@@ -933,10 +766,10 @@ class DebugService {
933
766
  setDebugFlag(debug) {
934
767
  this.store.dispatch(SetDebug(debug));
935
768
  if (debug) {
936
- document.getElementById('svgContainer').addEventListener('mouseover', this.listener);
769
+ document.getElementById('svgContainer')?.addEventListener('mouseover', this.listener);
937
770
  }
938
771
  else {
939
- document.getElementById('svgContainer').removeEventListener('mouseover', this.listener);
772
+ document.getElementById('svgContainer')?.removeEventListener('mouseover', this.listener);
940
773
  }
941
774
  }
942
775
  debugEventListener() {
@@ -967,10 +800,10 @@ class DebugService {
967
800
  console.log(logline);
968
801
  }
969
802
  }
970
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DebugService, deps: [{ token: i2$1.Store }, { token: SignaleringsBeeldManagerService }], target: i0.ɵɵFactoryTarget.Injectable }); }
971
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DebugService, providedIn: 'root' }); }
803
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DebugService, deps: [{ token: i2$1.Store }, { token: SignaleringsBeeldManagerService }], target: i0.ɵɵFactoryTarget.Injectable }); }
804
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DebugService, providedIn: 'root' }); }
972
805
  }
973
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DebugService, decorators: [{
806
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DebugService, decorators: [{
974
807
  type: Injectable,
975
808
  args: [{
976
809
  providedIn: 'root'
@@ -982,26 +815,28 @@ class PrintBewegingService {
982
815
  this.store = store;
983
816
  this.viewerControlService = viewerControlService;
984
817
  this.sbmService = sbmService;
985
- this.store.select(s => s.ritDelen).subscribe(ritdelen => this.ritdelen = ritdelen);
986
- }
987
- printBeweging(bewegingId, paginationSize, iaVersieInfo) {
988
- const gevondenRitdeel = this.ritdelen.filter(r => parseInt(r.getBewegingId(), 10) === bewegingId);
989
- // hide/show de knoppen
990
- const printing = !!bewegingId && gevondenRitdeel.length === 1;
991
- this.viewerControlService.setPrinting(printing);
992
- if (!printing) {
993
- return Promise.reject(new Error('Geen beweging gevonden voor ' + bewegingId));
994
- }
995
- return new Promise((resolve) => {
996
- const ritdeel = gevondenRitdeel[0];
997
- if (ritdeel.isNietBeschikbaar()) {
998
- this.store.dispatch(navigeerVanaf(paginationSize, iaVersieInfo, ritdeel));
999
- this.store.dispatch(ShowProgress());
1000
- setTimeout(() => this.focusOpBeweging(ritdeel, resolve), 1000);
1001
- }
1002
- else {
1003
- this.focusOpBeweging(ritdeel, resolve);
1004
- }
818
+ }
819
+ printBeweging(bewegingId, paginationSize) {
820
+ return new Promise((resolve, reject) => {
821
+ this.store.select('ritDelen').pipe(take(1), tap(ritdelen => {
822
+ const gevondenRitdeel = ritdelen.filter(r => Number.parseInt(r.getBewegingId(), 10) === bewegingId);
823
+ // hide/show de knoppen
824
+ const printing = !!bewegingId && gevondenRitdeel.length === 1;
825
+ this.viewerControlService.setPrinting(printing);
826
+ if (!printing) {
827
+ reject(new Error('Geen beweging gevonden voor ' + bewegingId));
828
+ return;
829
+ }
830
+ const ritdeel = gevondenRitdeel[0];
831
+ if (ritdeel.isNietBeschikbaar()) {
832
+ this.store.dispatch(navigeerVanaf(paginationSize, ritdeel));
833
+ this.store.dispatch(ShowProgress());
834
+ setTimeout(() => this.focusOpBeweging(ritdeel, resolve), 1000);
835
+ }
836
+ else {
837
+ this.focusOpBeweging(ritdeel, resolve);
838
+ }
839
+ })).subscribe();
1005
840
  });
1006
841
  }
1007
842
  focusOpBeweging(ritdeel, resolve) {
@@ -1025,10 +860,10 @@ class PrintBewegingService {
1025
860
  getPuics(topoElementen) {
1026
861
  return topoElementen.map(e => e.getPuic());
1027
862
  }
1028
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PrintBewegingService, deps: [{ token: i2$1.Store }, { token: ViewerControlService }, { token: SignaleringsBeeldManagerService }], target: i0.ɵɵFactoryTarget.Injectable }); }
1029
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PrintBewegingService, providedIn: 'root' }); }
863
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PrintBewegingService, deps: [{ token: i2$1.Store }, { token: ViewerControlService }, { token: SignaleringsBeeldManagerService }], target: i0.ɵɵFactoryTarget.Injectable }); }
864
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PrintBewegingService, providedIn: 'root' }); }
1030
865
  }
1031
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PrintBewegingService, decorators: [{
866
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PrintBewegingService, decorators: [{
1032
867
  type: Injectable,
1033
868
  args: [{
1034
869
  providedIn: 'root'
@@ -1036,8 +871,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
1036
871
  }], ctorParameters: () => [{ type: i2$1.Store }, { type: ViewerControlService }, { type: SignaleringsBeeldManagerService }] });
1037
872
 
1038
873
  class RpeComponent {
874
+ constructor() {
875
+ this.baseurl = '';
876
+ this.path = '';
877
+ }
1039
878
  convertToScript() {
1040
- const element = this.script.nativeElement;
879
+ const element = this.script?.nativeElement;
1041
880
  const script = document.createElement('script');
1042
881
  script.type = 'text/javascript';
1043
882
  if (this.baseurl && this.path) {
@@ -1051,10 +890,10 @@ class RpeComponent {
1051
890
  ngAfterViewInit() {
1052
891
  this.convertToScript();
1053
892
  }
1054
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RpeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1055
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: RpeComponent, selector: "rpe-component", inputs: { baseurl: "baseurl", path: "path" }, viewQueries: [{ propertyName: "script", first: true, predicate: ["rpescript"], descendants: true }], ngImport: i0, template: "<div #rpescript style.display=\"none\">\n <ng-content></ng-content>\n</div>\n" }); }
893
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RpeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
894
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: RpeComponent, selector: "rpe-component", inputs: { baseurl: "baseurl", path: "path" }, viewQueries: [{ propertyName: "script", first: true, predicate: ["rpescript"], descendants: true }], ngImport: i0, template: "<div #rpescript style.display=\"none\">\n <ng-content></ng-content>\n</div>\n" }); }
1056
895
  }
1057
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RpeComponent, decorators: [{
896
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RpeComponent, decorators: [{
1058
897
  type: Component,
1059
898
  args: [{ selector: 'rpe-component', template: "<div #rpescript style.display=\"none\">\n <ng-content></ng-content>\n</div>\n" }]
1060
899
  }], propDecorators: { baseurl: [{
@@ -1073,138 +912,1700 @@ class OngeplandeActie {
1073
912
  }
1074
913
  }
1075
914
 
1076
- class KmRange {
1077
- constructor(topologyElement, vanKilometreringen, totKilometreringen) {
1078
- this.topologyElement = topologyElement;
1079
- this.vanKilometreringen = vanKilometreringen;
1080
- this.totKilometreringen = totKilometreringen;
1081
- }
1082
- static rangeVoorPuntObject(topologyElement) {
1083
- return new KmRange(topologyElement, JsJavaUtil.listToArray(topologyElement.getKilometreringen()), JsJavaUtil.listToArray(topologyElement.getKilometreringen()));
1084
- }
1085
- static rangeVoorStrekObject(topologyElement, vanKilometreringen, totKilometreringen) {
1086
- return new KmRange(topologyElement, vanKilometreringen, totKilometreringen);
915
+ class KmRange {
916
+ constructor(topologyElement, vanKilometreringen, totKilometreringen) {
917
+ this.topologyElement = topologyElement;
918
+ this.vanKilometreringen = vanKilometreringen;
919
+ this.totKilometreringen = totKilometreringen;
920
+ }
921
+ static rangeVoorPuntObject(topologyElement) {
922
+ return new KmRange(topologyElement, JsJavaUtil.listToArray(topologyElement.getKilometreringen()), JsJavaUtil.listToArray(topologyElement.getKilometreringen()));
923
+ }
924
+ static rangeVoorStrekObject(topologyElement, vanKilometreringen, totKilometreringen) {
925
+ return new KmRange(topologyElement, vanKilometreringen, totKilometreringen);
926
+ }
927
+ static getKilometrering(lintNaam, kilometreringen) {
928
+ const result = kilometreringen.filter(kilometrering => kilometrering.getKmLint() === lintNaam);
929
+ if (result.length >= 1) {
930
+ return result[0];
931
+ }
932
+ return undefined;
933
+ }
934
+ heeftOverlap(kilometrering1, kilometrering2) {
935
+ const vanKilometrering = KmRange.getKilometrering(kilometrering1.getKmLint(), this.vanKilometreringen);
936
+ const totKilometrering = KmRange.getKilometrering(kilometrering2.getKmLint(), this.totKilometreringen);
937
+ if (!vanKilometrering || !totKilometrering) {
938
+ return false;
939
+ }
940
+ let startKmWaarde = vanKilometrering.getKmWaarde();
941
+ let endKmWaarde = totKilometrering.getKmWaarde();
942
+ if (startKmWaarde > endKmWaarde) {
943
+ const temp = { end: endKmWaarde, start: startKmWaarde };
944
+ startKmWaarde = temp.end;
945
+ endKmWaarde = temp.start;
946
+ }
947
+ const actieStartKmWaarde = kilometrering1.getKmWaarde();
948
+ const actieEndKmWaarde = kilometrering2.getKmWaarde();
949
+ return endKmWaarde >= actieStartKmWaarde && actieEndKmWaarde >= startKmWaarde;
950
+ }
951
+ }
952
+
953
+ class WisselKantCode {
954
+ constructor(naam, kantCode) {
955
+ this.naam = naam;
956
+ this.kantCode = kantCode;
957
+ }
958
+ }
959
+
960
+ class MeldingEvent {
961
+ constructor(meldingMessage, meldingLevel) {
962
+ this.meldingMessage = meldingMessage;
963
+ this.meldingLevel = meldingLevel;
964
+ }
965
+ }
966
+
967
+ const MELDING_LEVEL_ERROR = 'error';
968
+ const MELDING_LEVEL_WARNING = 'warn';
969
+ const MELDING_LEVEL_INFO = 'info';
970
+ class MeldingBuilder {
971
+ static nietGevondenTakkenOngeplandeActies(nietGevondenTakken) {
972
+ return new MeldingEvent('Niet gevonden takken uit \'OngeplandeActies\': ' + nietGevondenTakken, MELDING_LEVEL_INFO);
973
+ }
974
+ static actieHighlightError(actieZonderElementen) {
975
+ return new MeldingEvent('Highlight error. Geen elementen kunnen vinden voor actie(s) met id: ' + actieZonderElementen, MELDING_LEVEL_ERROR);
976
+ }
977
+ }
978
+
979
+ class Utils {
980
+ static getValidErorrMessage(err) {
981
+ let errorMsg = '';
982
+ if (err.msg) {
983
+ errorMsg += err.msg;
984
+ }
985
+ if (Array.isArray(err.body)) {
986
+ err.body.forEach((x) => errorMsg += x);
987
+ }
988
+ else if (err.body) {
989
+ if (err.body instanceof ProgressEvent) {
990
+ errorMsg = 'Kon geen verbinding maken met de server';
991
+ }
992
+ else if (err.body.text) {
993
+ errorMsg += err.body.text;
994
+ }
995
+ else {
996
+ errorMsg += err.body;
997
+ }
998
+ }
999
+ if (err.message) {
1000
+ errorMsg += err.message;
1001
+ }
1002
+ if (typeof err === 'string' || err instanceof String) {
1003
+ errorMsg += err;
1004
+ }
1005
+ if (errorMsg !== '') {
1006
+ return errorMsg;
1007
+ }
1008
+ else {
1009
+ return 'Er is een onbekende fout opgetreden';
1010
+ }
1011
+ }
1012
+ }
1013
+
1014
+ class MessageBuilder {
1015
+ static rwpDataNietGevonden(err) {
1016
+ return new Message(Severity.ERROR, 'Error bij ophalen van rijwegplan data: ' + err);
1017
+ }
1018
+ static rijwegNietGevonden(beweging) {
1019
+ return new Message(Severity.ERROR, `Rijweg van ${beweging.vanSpoor} in PPLG ${beweging.vanPplg} naar ${beweging.naarSpoor} niet gevonden`);
1020
+ }
1021
+ static rijwegplanNietGevonden(beweging) {
1022
+ return new Message(Severity.ERROR, `Rijwegplan van PPLG ${beweging.vanPplg} niet gevonden`);
1023
+ }
1024
+ static dwangNietGevonden(beweging) {
1025
+ return new Message(Severity.ERROR, `Dwang ${beweging.dwangNummer} voor rijweg van ${beweging.vanSpoor} in PPLG ${beweging.vanPplg} naar ${beweging.naarSpoor} niet gevonden`);
1026
+ }
1027
+ static nietGevondenSBI(err) {
1028
+ return new Message(Severity.ERROR, 'Error bij het ophalen van signaleringsbeeldinfo: ' + Utils.getValidErorrMessage(err));
1029
+ }
1030
+ static actieHighlightError(actieZonderElementen) {
1031
+ return new Message(Severity.ERROR, 'Highlight error. Geen elementen kunnen vinden voor actie(s) met id: ' + actieZonderElementen);
1032
+ }
1033
+ static ritFileAlGewijzigdError(beweging) {
1034
+ return new Message(Severity.ERROR, 'Rit bevat een beweging met status \'Gewijzigd\': Beweging met ID:' + beweging.id);
1035
+ }
1036
+ static meerDan12BladenGevonden(bladAmount) {
1037
+ return new Message(Severity.WARNING, 'Warning, Rit bevat ' + bladAmount + ' bladen. Er worden maximaal 12 bladen ondersteund.');
1038
+ }
1039
+ static nietGevondenTakkenOngeplandeActies(nietGevondenTakken) {
1040
+ return new Message(Severity.INFORMATION, 'Info, Niet gevonden takken uit \'OngeplandeActies\': ' + nietGevondenTakken);
1041
+ }
1042
+ }
1043
+
1044
+ /**
1045
+ * Custom HttpParameterCodec
1046
+ * Workaround for https://github.com/angular/angular/issues/18261
1047
+ */
1048
+ class CustomHttpParameterCodec {
1049
+ encodeKey(k) {
1050
+ return encodeURIComponent(k);
1051
+ }
1052
+ encodeValue(v) {
1053
+ return encodeURIComponent(v);
1054
+ }
1055
+ decodeKey(k) {
1056
+ return decodeURIComponent(k);
1057
+ }
1058
+ decodeValue(v) {
1059
+ return decodeURIComponent(v);
1060
+ }
1061
+ }
1062
+
1063
+ const BASE_PATH = new InjectionToken('basePath');
1064
+ const COLLECTION_FORMATS = {
1065
+ 'csv': ',',
1066
+ 'tsv': ' ',
1067
+ 'ssv': ' ',
1068
+ 'pipes': '|'
1069
+ };
1070
+
1071
+ class Configuration {
1072
+ constructor(configurationParameters = {}) {
1073
+ this.apiKeys = configurationParameters.apiKeys;
1074
+ this.username = configurationParameters.username;
1075
+ this.password = configurationParameters.password;
1076
+ this.accessToken = configurationParameters.accessToken;
1077
+ this.basePath = configurationParameters.basePath;
1078
+ this.withCredentials = configurationParameters.withCredentials;
1079
+ this.encoder = configurationParameters.encoder;
1080
+ if (configurationParameters.encodeParam) {
1081
+ this.encodeParam = configurationParameters.encodeParam;
1082
+ }
1083
+ else {
1084
+ this.encodeParam = param => this.defaultEncodeParam(param);
1085
+ }
1086
+ if (configurationParameters.credentials) {
1087
+ this.credentials = configurationParameters.credentials;
1088
+ }
1089
+ else {
1090
+ this.credentials = {};
1091
+ }
1092
+ // init default keycloak_auth credential
1093
+ if (!this.credentials['keycloak_auth']) {
1094
+ this.credentials['keycloak_auth'] = () => {
1095
+ return typeof this.accessToken === 'function'
1096
+ ? this.accessToken()
1097
+ : this.accessToken;
1098
+ };
1099
+ }
1100
+ }
1101
+ /**
1102
+ * Select the correct content-type to use for a request.
1103
+ * Uses {@link Configuration#isJsonMime} to determine the correct content-type.
1104
+ * If no content type is found return the first found type if the contentTypes is not empty
1105
+ * @param contentTypes - the array of content types that are available for selection
1106
+ * @returns the selected content-type or <code>undefined</code> if no selection could be made.
1107
+ */
1108
+ selectHeaderContentType(contentTypes) {
1109
+ if (contentTypes.length === 0) {
1110
+ return undefined;
1111
+ }
1112
+ const type = contentTypes.find((x) => this.isJsonMime(x));
1113
+ if (type === undefined) {
1114
+ return contentTypes[0];
1115
+ }
1116
+ return type;
1117
+ }
1118
+ /**
1119
+ * Select the correct accept content-type to use for a request.
1120
+ * Uses {@link Configuration#isJsonMime} to determine the correct accept content-type.
1121
+ * If no content type is found return the first found type if the contentTypes is not empty
1122
+ * @param accepts - the array of content types that are available for selection.
1123
+ * @returns the selected content-type or <code>undefined</code> if no selection could be made.
1124
+ */
1125
+ selectHeaderAccept(accepts) {
1126
+ if (accepts.length === 0) {
1127
+ return undefined;
1128
+ }
1129
+ const type = accepts.find((x) => this.isJsonMime(x));
1130
+ if (type === undefined) {
1131
+ return accepts[0];
1132
+ }
1133
+ return type;
1134
+ }
1135
+ /**
1136
+ * Check if the given MIME is a JSON MIME.
1137
+ * JSON MIME examples:
1138
+ * application/json
1139
+ * application/json; charset=UTF8
1140
+ * APPLICATION/JSON
1141
+ * application/vnd.company+json
1142
+ * @param mime - MIME (Multipurpose Internet Mail Extensions)
1143
+ * @return True if the given MIME is JSON, false otherwise.
1144
+ */
1145
+ isJsonMime(mime) {
1146
+ const jsonMime = new RegExp('^(application\/json|[^;/ \t]+\/[^;/ \t]+[+]json)[ \t]*(;.*)?$', 'i');
1147
+ return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');
1148
+ }
1149
+ lookupCredential(key) {
1150
+ const value = this.credentials[key];
1151
+ return typeof value === 'function'
1152
+ ? value()
1153
+ : value;
1154
+ }
1155
+ defaultEncodeParam(param) {
1156
+ // This implementation exists as fallback for missing configuration
1157
+ // and for backwards compatibility to older typescript-angular generator versions.
1158
+ // It only works for the 'simple' parameter style.
1159
+ // Date-handling only works for the 'date-time' format.
1160
+ // All other styles and Date-formats are probably handled incorrectly.
1161
+ //
1162
+ // But: if that's all you need (i.e.: the most common use-case): no need for customization!
1163
+ const value = param.dataFormat === 'date-time' && param.value instanceof Date
1164
+ ? param.value.toISOString()
1165
+ : param.value;
1166
+ return encodeURIComponent(String(value));
1167
+ }
1168
+ }
1169
+
1170
+ /**
1171
+ * MST
1172
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
1173
+ *
1174
+ * The version of the OpenAPI document: 1
1175
+ *
1176
+ *
1177
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
1178
+ * https://openapi-generator.tech
1179
+ * Do not edit the class manually.
1180
+ */
1181
+ /* tslint:disable:no-unused-variable member-ordering */
1182
+ class AppConfigControllerService {
1183
+ constructor(httpClient, basePath, configuration) {
1184
+ this.httpClient = httpClient;
1185
+ this.basePath = 'http://localhost:8080/mst';
1186
+ this.defaultHeaders = new HttpHeaders();
1187
+ this.configuration = new Configuration();
1188
+ if (configuration) {
1189
+ this.configuration = configuration;
1190
+ }
1191
+ if (typeof this.configuration.basePath !== 'string') {
1192
+ if (Array.isArray(basePath) && basePath.length > 0) {
1193
+ basePath = basePath[0];
1194
+ }
1195
+ if (typeof basePath !== 'string') {
1196
+ basePath = this.basePath;
1197
+ }
1198
+ this.configuration.basePath = basePath;
1199
+ }
1200
+ this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();
1201
+ }
1202
+ // @ts-ignore
1203
+ addToHttpParams(httpParams, value, key) {
1204
+ if (typeof value === "object" && value instanceof Date === false) {
1205
+ httpParams = this.addToHttpParamsRecursive(httpParams, value);
1206
+ }
1207
+ else {
1208
+ httpParams = this.addToHttpParamsRecursive(httpParams, value, key);
1209
+ }
1210
+ return httpParams;
1211
+ }
1212
+ addToHttpParamsRecursive(httpParams, value, key) {
1213
+ if (value == null) {
1214
+ return httpParams;
1215
+ }
1216
+ if (typeof value === "object") {
1217
+ if (Array.isArray(value)) {
1218
+ value.forEach(elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));
1219
+ }
1220
+ else if (value instanceof Date) {
1221
+ if (key != null) {
1222
+ httpParams = httpParams.append(key, value.toISOString().substring(0, 10));
1223
+ }
1224
+ else {
1225
+ throw Error("key may not be null if value is Date");
1226
+ }
1227
+ }
1228
+ else {
1229
+ Object.keys(value).forEach(k => httpParams = this.addToHttpParamsRecursive(httpParams, value[k], key != null ? `${key}.${k}` : k));
1230
+ }
1231
+ }
1232
+ else if (key != null) {
1233
+ httpParams = httpParams.append(key, value);
1234
+ }
1235
+ else {
1236
+ throw Error("key may not be null if value is not object or array");
1237
+ }
1238
+ return httpParams;
1239
+ }
1240
+ getAppConfig(observe = 'body', reportProgress = false, options) {
1241
+ let localVarHeaders = this.defaultHeaders;
1242
+ let localVarHttpHeaderAcceptSelected = options && options.httpHeaderAccept;
1243
+ if (localVarHttpHeaderAcceptSelected === undefined) {
1244
+ // to determine the Accept header
1245
+ const httpHeaderAccepts = [
1246
+ '*/*'
1247
+ ];
1248
+ localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
1249
+ }
1250
+ if (localVarHttpHeaderAcceptSelected !== undefined) {
1251
+ localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
1252
+ }
1253
+ let localVarHttpContext = options && options.context;
1254
+ if (localVarHttpContext === undefined) {
1255
+ localVarHttpContext = new HttpContext();
1256
+ }
1257
+ let localVarTransferCache = options && options.transferCache;
1258
+ if (localVarTransferCache === undefined) {
1259
+ localVarTransferCache = true;
1260
+ }
1261
+ let responseType_ = 'json';
1262
+ if (localVarHttpHeaderAcceptSelected) {
1263
+ if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
1264
+ responseType_ = 'text';
1265
+ }
1266
+ else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
1267
+ responseType_ = 'json';
1268
+ }
1269
+ else {
1270
+ responseType_ = 'blob';
1271
+ }
1272
+ }
1273
+ let localVarPath = `/rest/appconfig`;
1274
+ return this.httpClient.request('get', `${this.configuration.basePath}${localVarPath}`, {
1275
+ context: localVarHttpContext,
1276
+ responseType: responseType_,
1277
+ withCredentials: this.configuration.withCredentials,
1278
+ headers: localVarHeaders,
1279
+ observe: observe,
1280
+ transferCache: localVarTransferCache,
1281
+ reportProgress: reportProgress
1282
+ });
1283
+ }
1284
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AppConfigControllerService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
1285
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AppConfigControllerService, providedIn: 'root' }); }
1286
+ }
1287
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AppConfigControllerService, decorators: [{
1288
+ type: Injectable,
1289
+ args: [{
1290
+ providedIn: 'root'
1291
+ }]
1292
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
1293
+ type: Optional
1294
+ }, {
1295
+ type: Inject,
1296
+ args: [BASE_PATH]
1297
+ }] }, { type: Configuration, decorators: [{
1298
+ type: Optional
1299
+ }] }] });
1300
+
1301
+ /**
1302
+ * MST
1303
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
1304
+ *
1305
+ * The version of the OpenAPI document: 1
1306
+ *
1307
+ *
1308
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
1309
+ * https://openapi-generator.tech
1310
+ * Do not edit the class manually.
1311
+ */
1312
+ /* tslint:disable:no-unused-variable member-ordering */
1313
+ class BewegingControllerService {
1314
+ constructor(httpClient, basePath, configuration) {
1315
+ this.httpClient = httpClient;
1316
+ this.basePath = 'http://localhost:8080/mst';
1317
+ this.defaultHeaders = new HttpHeaders();
1318
+ this.configuration = new Configuration();
1319
+ if (configuration) {
1320
+ this.configuration = configuration;
1321
+ }
1322
+ if (typeof this.configuration.basePath !== 'string') {
1323
+ if (Array.isArray(basePath) && basePath.length > 0) {
1324
+ basePath = basePath[0];
1325
+ }
1326
+ if (typeof basePath !== 'string') {
1327
+ basePath = this.basePath;
1328
+ }
1329
+ this.configuration.basePath = basePath;
1330
+ }
1331
+ this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();
1332
+ }
1333
+ // @ts-ignore
1334
+ addToHttpParams(httpParams, value, key) {
1335
+ if (typeof value === "object" && value instanceof Date === false) {
1336
+ httpParams = this.addToHttpParamsRecursive(httpParams, value);
1337
+ }
1338
+ else {
1339
+ httpParams = this.addToHttpParamsRecursive(httpParams, value, key);
1340
+ }
1341
+ return httpParams;
1342
+ }
1343
+ addToHttpParamsRecursive(httpParams, value, key) {
1344
+ if (value == null) {
1345
+ return httpParams;
1346
+ }
1347
+ if (typeof value === "object") {
1348
+ if (Array.isArray(value)) {
1349
+ value.forEach(elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));
1350
+ }
1351
+ else if (value instanceof Date) {
1352
+ if (key != null) {
1353
+ httpParams = httpParams.append(key, value.toISOString().substring(0, 10));
1354
+ }
1355
+ else {
1356
+ throw Error("key may not be null if value is Date");
1357
+ }
1358
+ }
1359
+ else {
1360
+ Object.keys(value).forEach(k => httpParams = this.addToHttpParamsRecursive(httpParams, value[k], key != null ? `${key}.${k}` : k));
1361
+ }
1362
+ }
1363
+ else if (key != null) {
1364
+ httpParams = httpParams.append(key, value);
1365
+ }
1366
+ else {
1367
+ throw Error("key may not be null if value is not object or array");
1368
+ }
1369
+ return httpParams;
1370
+ }
1371
+ verrijkBewegingenMetOngeplandeActies(iaVersie, ritRequestDto, observe = 'body', reportProgress = false, options) {
1372
+ if (iaVersie === null || iaVersie === undefined) {
1373
+ throw new Error('Required parameter iaVersie was null or undefined when calling verrijkBewegingenMetOngeplandeActies.');
1374
+ }
1375
+ if (ritRequestDto === null || ritRequestDto === undefined) {
1376
+ throw new Error('Required parameter ritRequestDto was null or undefined when calling verrijkBewegingenMetOngeplandeActies.');
1377
+ }
1378
+ let localVarHeaders = this.defaultHeaders;
1379
+ let localVarHttpHeaderAcceptSelected = options && options.httpHeaderAccept;
1380
+ if (localVarHttpHeaderAcceptSelected === undefined) {
1381
+ // to determine the Accept header
1382
+ const httpHeaderAccepts = [
1383
+ '*/*'
1384
+ ];
1385
+ localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
1386
+ }
1387
+ if (localVarHttpHeaderAcceptSelected !== undefined) {
1388
+ localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
1389
+ }
1390
+ let localVarHttpContext = options && options.context;
1391
+ if (localVarHttpContext === undefined) {
1392
+ localVarHttpContext = new HttpContext();
1393
+ }
1394
+ let localVarTransferCache = options && options.transferCache;
1395
+ if (localVarTransferCache === undefined) {
1396
+ localVarTransferCache = true;
1397
+ }
1398
+ // to determine the Content-Type header
1399
+ const consumes = [
1400
+ 'application/json'
1401
+ ];
1402
+ const httpContentTypeSelected = this.configuration.selectHeaderContentType(consumes);
1403
+ if (httpContentTypeSelected !== undefined) {
1404
+ localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);
1405
+ }
1406
+ let responseType_ = 'json';
1407
+ if (localVarHttpHeaderAcceptSelected) {
1408
+ if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
1409
+ responseType_ = 'text';
1410
+ }
1411
+ else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
1412
+ responseType_ = 'json';
1413
+ }
1414
+ else {
1415
+ responseType_ = 'blob';
1416
+ }
1417
+ }
1418
+ let localVarPath = `/rest/beweging/${this.configuration.encodeParam({ name: "iaVersie", value: iaVersie, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: undefined })}`;
1419
+ return this.httpClient.request('put', `${this.configuration.basePath}${localVarPath}`, {
1420
+ context: localVarHttpContext,
1421
+ body: ritRequestDto,
1422
+ responseType: responseType_,
1423
+ withCredentials: this.configuration.withCredentials,
1424
+ headers: localVarHeaders,
1425
+ observe: observe,
1426
+ transferCache: localVarTransferCache,
1427
+ reportProgress: reportProgress
1428
+ });
1429
+ }
1430
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BewegingControllerService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
1431
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BewegingControllerService, providedIn: 'root' }); }
1432
+ }
1433
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BewegingControllerService, decorators: [{
1434
+ type: Injectable,
1435
+ args: [{
1436
+ providedIn: 'root'
1437
+ }]
1438
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
1439
+ type: Optional
1440
+ }, {
1441
+ type: Inject,
1442
+ args: [BASE_PATH]
1443
+ }] }, { type: Configuration, decorators: [{
1444
+ type: Optional
1445
+ }] }] });
1446
+
1447
+ /**
1448
+ * MST
1449
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
1450
+ *
1451
+ * The version of the OpenAPI document: 1
1452
+ *
1453
+ *
1454
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
1455
+ * https://openapi-generator.tech
1456
+ * Do not edit the class manually.
1457
+ */
1458
+ /* tslint:disable:no-unused-variable member-ordering */
1459
+ class Class0BuildPropertiesService {
1460
+ constructor(httpClient, basePath, configuration) {
1461
+ this.httpClient = httpClient;
1462
+ this.basePath = 'http://localhost:8080/mst';
1463
+ this.defaultHeaders = new HttpHeaders();
1464
+ this.configuration = new Configuration();
1465
+ if (configuration) {
1466
+ this.configuration = configuration;
1467
+ }
1468
+ if (typeof this.configuration.basePath !== 'string') {
1469
+ if (Array.isArray(basePath) && basePath.length > 0) {
1470
+ basePath = basePath[0];
1471
+ }
1472
+ if (typeof basePath !== 'string') {
1473
+ basePath = this.basePath;
1474
+ }
1475
+ this.configuration.basePath = basePath;
1476
+ }
1477
+ this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();
1478
+ }
1479
+ // @ts-ignore
1480
+ addToHttpParams(httpParams, value, key) {
1481
+ if (typeof value === "object" && value instanceof Date === false) {
1482
+ httpParams = this.addToHttpParamsRecursive(httpParams, value);
1483
+ }
1484
+ else {
1485
+ httpParams = this.addToHttpParamsRecursive(httpParams, value, key);
1486
+ }
1487
+ return httpParams;
1488
+ }
1489
+ addToHttpParamsRecursive(httpParams, value, key) {
1490
+ if (value == null) {
1491
+ return httpParams;
1492
+ }
1493
+ if (typeof value === "object") {
1494
+ if (Array.isArray(value)) {
1495
+ value.forEach(elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));
1496
+ }
1497
+ else if (value instanceof Date) {
1498
+ if (key != null) {
1499
+ httpParams = httpParams.append(key, value.toISOString().substring(0, 10));
1500
+ }
1501
+ else {
1502
+ throw Error("key may not be null if value is Date");
1503
+ }
1504
+ }
1505
+ else {
1506
+ Object.keys(value).forEach(k => httpParams = this.addToHttpParamsRecursive(httpParams, value[k], key != null ? `${key}.${k}` : k));
1507
+ }
1508
+ }
1509
+ else if (key != null) {
1510
+ httpParams = httpParams.append(key, value);
1511
+ }
1512
+ else {
1513
+ throw Error("key may not be null if value is not object or array");
1514
+ }
1515
+ return httpParams;
1516
+ }
1517
+ getBuildProperties(observe = 'body', reportProgress = false, options) {
1518
+ let localVarHeaders = this.defaultHeaders;
1519
+ let localVarHttpHeaderAcceptSelected = options && options.httpHeaderAccept;
1520
+ if (localVarHttpHeaderAcceptSelected === undefined) {
1521
+ // to determine the Accept header
1522
+ const httpHeaderAccepts = [
1523
+ 'application/json'
1524
+ ];
1525
+ localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
1526
+ }
1527
+ if (localVarHttpHeaderAcceptSelected !== undefined) {
1528
+ localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
1529
+ }
1530
+ let localVarHttpContext = options && options.context;
1531
+ if (localVarHttpContext === undefined) {
1532
+ localVarHttpContext = new HttpContext();
1533
+ }
1534
+ let localVarTransferCache = options && options.transferCache;
1535
+ if (localVarTransferCache === undefined) {
1536
+ localVarTransferCache = true;
1537
+ }
1538
+ let responseType_ = 'json';
1539
+ if (localVarHttpHeaderAcceptSelected) {
1540
+ if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
1541
+ responseType_ = 'text';
1542
+ }
1543
+ else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
1544
+ responseType_ = 'json';
1545
+ }
1546
+ else {
1547
+ responseType_ = 'blob';
1548
+ }
1549
+ }
1550
+ let localVarPath = `/build.properties`;
1551
+ return this.httpClient.request('get', `${this.configuration.basePath}${localVarPath}`, {
1552
+ context: localVarHttpContext,
1553
+ responseType: responseType_,
1554
+ withCredentials: this.configuration.withCredentials,
1555
+ headers: localVarHeaders,
1556
+ observe: observe,
1557
+ transferCache: localVarTransferCache,
1558
+ reportProgress: reportProgress
1559
+ });
1560
+ }
1561
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: Class0BuildPropertiesService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
1562
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: Class0BuildPropertiesService, providedIn: 'root' }); }
1563
+ }
1564
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: Class0BuildPropertiesService, decorators: [{
1565
+ type: Injectable,
1566
+ args: [{
1567
+ providedIn: 'root'
1568
+ }]
1569
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
1570
+ type: Optional
1571
+ }, {
1572
+ type: Inject,
1573
+ args: [BASE_PATH]
1574
+ }] }, { type: Configuration, decorators: [{
1575
+ type: Optional
1576
+ }] }] });
1577
+
1578
+ /**
1579
+ * MST
1580
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
1581
+ *
1582
+ * The version of the OpenAPI document: 1
1583
+ *
1584
+ *
1585
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
1586
+ * https://openapi-generator.tech
1587
+ * Do not edit the class manually.
1588
+ */
1589
+ /* tslint:disable:no-unused-variable member-ordering */
1590
+ class ConnectorControllerService {
1591
+ constructor(httpClient, basePath, configuration) {
1592
+ this.httpClient = httpClient;
1593
+ this.basePath = 'http://localhost:8080/mst';
1594
+ this.defaultHeaders = new HttpHeaders();
1595
+ this.configuration = new Configuration();
1596
+ if (configuration) {
1597
+ this.configuration = configuration;
1598
+ }
1599
+ if (typeof this.configuration.basePath !== 'string') {
1600
+ if (Array.isArray(basePath) && basePath.length > 0) {
1601
+ basePath = basePath[0];
1602
+ }
1603
+ if (typeof basePath !== 'string') {
1604
+ basePath = this.basePath;
1605
+ }
1606
+ this.configuration.basePath = basePath;
1607
+ }
1608
+ this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();
1609
+ }
1610
+ // @ts-ignore
1611
+ addToHttpParams(httpParams, value, key) {
1612
+ if (typeof value === "object" && value instanceof Date === false) {
1613
+ httpParams = this.addToHttpParamsRecursive(httpParams, value);
1614
+ }
1615
+ else {
1616
+ httpParams = this.addToHttpParamsRecursive(httpParams, value, key);
1617
+ }
1618
+ return httpParams;
1619
+ }
1620
+ addToHttpParamsRecursive(httpParams, value, key) {
1621
+ if (value == null) {
1622
+ return httpParams;
1623
+ }
1624
+ if (typeof value === "object") {
1625
+ if (Array.isArray(value)) {
1626
+ value.forEach(elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));
1627
+ }
1628
+ else if (value instanceof Date) {
1629
+ if (key != null) {
1630
+ httpParams = httpParams.append(key, value.toISOString().substring(0, 10));
1631
+ }
1632
+ else {
1633
+ throw Error("key may not be null if value is Date");
1634
+ }
1635
+ }
1636
+ else {
1637
+ Object.keys(value).forEach(k => httpParams = this.addToHttpParamsRecursive(httpParams, value[k], key != null ? `${key}.${k}` : k));
1638
+ }
1639
+ }
1640
+ else if (key != null) {
1641
+ httpParams = httpParams.append(key, value);
1642
+ }
1643
+ else {
1644
+ throw Error("key may not be null if value is not object or array");
1645
+ }
1646
+ return httpParams;
1647
+ }
1648
+ getOtherConnector(iaVersie, connectorPuic, observe = 'body', reportProgress = false, options) {
1649
+ if (iaVersie === null || iaVersie === undefined) {
1650
+ throw new Error('Required parameter iaVersie was null or undefined when calling getOtherConnector.');
1651
+ }
1652
+ if (connectorPuic === null || connectorPuic === undefined) {
1653
+ throw new Error('Required parameter connectorPuic was null or undefined when calling getOtherConnector.');
1654
+ }
1655
+ let localVarHeaders = this.defaultHeaders;
1656
+ let localVarHttpHeaderAcceptSelected = options && options.httpHeaderAccept;
1657
+ if (localVarHttpHeaderAcceptSelected === undefined) {
1658
+ // to determine the Accept header
1659
+ const httpHeaderAccepts = [
1660
+ '*/*'
1661
+ ];
1662
+ localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
1663
+ }
1664
+ if (localVarHttpHeaderAcceptSelected !== undefined) {
1665
+ localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
1666
+ }
1667
+ let localVarHttpContext = options && options.context;
1668
+ if (localVarHttpContext === undefined) {
1669
+ localVarHttpContext = new HttpContext();
1670
+ }
1671
+ let localVarTransferCache = options && options.transferCache;
1672
+ if (localVarTransferCache === undefined) {
1673
+ localVarTransferCache = true;
1674
+ }
1675
+ let responseType_ = 'json';
1676
+ if (localVarHttpHeaderAcceptSelected) {
1677
+ if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
1678
+ responseType_ = 'text';
1679
+ }
1680
+ else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
1681
+ responseType_ = 'json';
1682
+ }
1683
+ else {
1684
+ responseType_ = 'blob';
1685
+ }
1686
+ }
1687
+ let localVarPath = `/rest/connector/${this.configuration.encodeParam({ name: "iaVersie", value: iaVersie, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: undefined })}/${this.configuration.encodeParam({ name: "connectorPuic", value: connectorPuic, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: undefined })}`;
1688
+ return this.httpClient.request('get', `${this.configuration.basePath}${localVarPath}`, {
1689
+ context: localVarHttpContext,
1690
+ responseType: responseType_,
1691
+ withCredentials: this.configuration.withCredentials,
1692
+ headers: localVarHeaders,
1693
+ observe: observe,
1694
+ transferCache: localVarTransferCache,
1695
+ reportProgress: reportProgress
1696
+ });
1697
+ }
1698
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ConnectorControllerService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
1699
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ConnectorControllerService, providedIn: 'root' }); }
1700
+ }
1701
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ConnectorControllerService, decorators: [{
1702
+ type: Injectable,
1703
+ args: [{
1704
+ providedIn: 'root'
1705
+ }]
1706
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
1707
+ type: Optional
1708
+ }, {
1709
+ type: Inject,
1710
+ args: [BASE_PATH]
1711
+ }] }, { type: Configuration, decorators: [{
1712
+ type: Optional
1713
+ }] }] });
1714
+
1715
+ /**
1716
+ * MST
1717
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
1718
+ *
1719
+ * The version of the OpenAPI document: 1
1720
+ *
1721
+ *
1722
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
1723
+ * https://openapi-generator.tech
1724
+ * Do not edit the class manually.
1725
+ */
1726
+ /* tslint:disable:no-unused-variable member-ordering */
1727
+ class LogControllerService {
1728
+ constructor(httpClient, basePath, configuration) {
1729
+ this.httpClient = httpClient;
1730
+ this.basePath = 'http://localhost:8080/mst';
1731
+ this.defaultHeaders = new HttpHeaders();
1732
+ this.configuration = new Configuration();
1733
+ if (configuration) {
1734
+ this.configuration = configuration;
1735
+ }
1736
+ if (typeof this.configuration.basePath !== 'string') {
1737
+ if (Array.isArray(basePath) && basePath.length > 0) {
1738
+ basePath = basePath[0];
1739
+ }
1740
+ if (typeof basePath !== 'string') {
1741
+ basePath = this.basePath;
1742
+ }
1743
+ this.configuration.basePath = basePath;
1744
+ }
1745
+ this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();
1746
+ }
1747
+ // @ts-ignore
1748
+ addToHttpParams(httpParams, value, key) {
1749
+ if (typeof value === "object" && value instanceof Date === false) {
1750
+ httpParams = this.addToHttpParamsRecursive(httpParams, value);
1751
+ }
1752
+ else {
1753
+ httpParams = this.addToHttpParamsRecursive(httpParams, value, key);
1754
+ }
1755
+ return httpParams;
1756
+ }
1757
+ addToHttpParamsRecursive(httpParams, value, key) {
1758
+ if (value == null) {
1759
+ return httpParams;
1760
+ }
1761
+ if (typeof value === "object") {
1762
+ if (Array.isArray(value)) {
1763
+ value.forEach(elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));
1764
+ }
1765
+ else if (value instanceof Date) {
1766
+ if (key != null) {
1767
+ httpParams = httpParams.append(key, value.toISOString().substring(0, 10));
1768
+ }
1769
+ else {
1770
+ throw Error("key may not be null if value is Date");
1771
+ }
1772
+ }
1773
+ else {
1774
+ Object.keys(value).forEach(k => httpParams = this.addToHttpParamsRecursive(httpParams, value[k], key != null ? `${key}.${k}` : k));
1775
+ }
1776
+ }
1777
+ else if (key != null) {
1778
+ httpParams = httpParams.append(key, value);
1779
+ }
1780
+ else {
1781
+ throw Error("key may not be null if value is not object or array");
1782
+ }
1783
+ return httpParams;
1784
+ }
1785
+ log(logDto, observe = 'body', reportProgress = false, options) {
1786
+ if (logDto === null || logDto === undefined) {
1787
+ throw new Error('Required parameter logDto was null or undefined when calling log.');
1788
+ }
1789
+ let localVarHeaders = this.defaultHeaders;
1790
+ let localVarHttpHeaderAcceptSelected = options && options.httpHeaderAccept;
1791
+ if (localVarHttpHeaderAcceptSelected === undefined) {
1792
+ // to determine the Accept header
1793
+ const httpHeaderAccepts = [];
1794
+ localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
1795
+ }
1796
+ if (localVarHttpHeaderAcceptSelected !== undefined) {
1797
+ localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
1798
+ }
1799
+ let localVarHttpContext = options && options.context;
1800
+ if (localVarHttpContext === undefined) {
1801
+ localVarHttpContext = new HttpContext();
1802
+ }
1803
+ let localVarTransferCache = options && options.transferCache;
1804
+ if (localVarTransferCache === undefined) {
1805
+ localVarTransferCache = true;
1806
+ }
1807
+ // to determine the Content-Type header
1808
+ const consumes = [
1809
+ 'application/json'
1810
+ ];
1811
+ const httpContentTypeSelected = this.configuration.selectHeaderContentType(consumes);
1812
+ if (httpContentTypeSelected !== undefined) {
1813
+ localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);
1814
+ }
1815
+ let responseType_ = 'json';
1816
+ if (localVarHttpHeaderAcceptSelected) {
1817
+ if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
1818
+ responseType_ = 'text';
1819
+ }
1820
+ else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
1821
+ responseType_ = 'json';
1822
+ }
1823
+ else {
1824
+ responseType_ = 'blob';
1825
+ }
1826
+ }
1827
+ let localVarPath = `/rest/logging/`;
1828
+ return this.httpClient.request('post', `${this.configuration.basePath}${localVarPath}`, {
1829
+ context: localVarHttpContext,
1830
+ body: logDto,
1831
+ responseType: responseType_,
1832
+ withCredentials: this.configuration.withCredentials,
1833
+ headers: localVarHeaders,
1834
+ observe: observe,
1835
+ transferCache: localVarTransferCache,
1836
+ reportProgress: reportProgress
1837
+ });
1838
+ }
1839
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LogControllerService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
1840
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LogControllerService, providedIn: 'root' }); }
1841
+ }
1842
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LogControllerService, decorators: [{
1843
+ type: Injectable,
1844
+ args: [{
1845
+ providedIn: 'root'
1846
+ }]
1847
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
1848
+ type: Optional
1849
+ }, {
1850
+ type: Inject,
1851
+ args: [BASE_PATH]
1852
+ }] }, { type: Configuration, decorators: [{
1853
+ type: Optional
1854
+ }] }] });
1855
+
1856
+ /**
1857
+ * MST
1858
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
1859
+ *
1860
+ * The version of the OpenAPI document: 1
1861
+ *
1862
+ *
1863
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
1864
+ * https://openapi-generator.tech
1865
+ * Do not edit the class manually.
1866
+ */
1867
+ /* tslint:disable:no-unused-variable member-ordering */
1868
+ class P21ControllerService {
1869
+ constructor(httpClient, basePath, configuration) {
1870
+ this.httpClient = httpClient;
1871
+ this.basePath = 'http://localhost:8080/mst';
1872
+ this.defaultHeaders = new HttpHeaders();
1873
+ this.configuration = new Configuration();
1874
+ if (configuration) {
1875
+ this.configuration = configuration;
1876
+ }
1877
+ if (typeof this.configuration.basePath !== 'string') {
1878
+ if (Array.isArray(basePath) && basePath.length > 0) {
1879
+ basePath = basePath[0];
1880
+ }
1881
+ if (typeof basePath !== 'string') {
1882
+ basePath = this.basePath;
1883
+ }
1884
+ this.configuration.basePath = basePath;
1885
+ }
1886
+ this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();
1887
+ }
1888
+ /**
1889
+ * @param consumes string[] mime-types
1890
+ * @return true: consumes contains 'multipart/form-data', false: otherwise
1891
+ */
1892
+ canConsumeForm(consumes) {
1893
+ const form = 'multipart/form-data';
1894
+ for (const consume of consumes) {
1895
+ if (form === consume) {
1896
+ return true;
1897
+ }
1898
+ }
1899
+ return false;
1900
+ }
1901
+ // @ts-ignore
1902
+ addToHttpParams(httpParams, value, key) {
1903
+ if (typeof value === "object" && value instanceof Date === false) {
1904
+ httpParams = this.addToHttpParamsRecursive(httpParams, value);
1905
+ }
1906
+ else {
1907
+ httpParams = this.addToHttpParamsRecursive(httpParams, value, key);
1908
+ }
1909
+ return httpParams;
1910
+ }
1911
+ addToHttpParamsRecursive(httpParams, value, key) {
1912
+ if (value == null) {
1913
+ return httpParams;
1914
+ }
1915
+ if (typeof value === "object") {
1916
+ if (Array.isArray(value)) {
1917
+ value.forEach(elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));
1918
+ }
1919
+ else if (value instanceof Date) {
1920
+ if (key != null) {
1921
+ httpParams = httpParams.append(key, value.toISOString().substring(0, 10));
1922
+ }
1923
+ else {
1924
+ throw Error("key may not be null if value is Date");
1925
+ }
1926
+ }
1927
+ else {
1928
+ Object.keys(value).forEach(k => httpParams = this.addToHttpParamsRecursive(httpParams, value[k], key != null ? `${key}.${k}` : k));
1929
+ }
1930
+ }
1931
+ else if (key != null) {
1932
+ httpParams = httpParams.append(key, value);
1933
+ }
1934
+ else {
1935
+ throw Error("key may not be null if value is not object or array");
1936
+ }
1937
+ return httpParams;
1938
+ }
1939
+ createP21Levering(p21Levering, update, observe = 'body', reportProgress = false, options) {
1940
+ if (p21Levering === null || p21Levering === undefined) {
1941
+ throw new Error('Required parameter p21Levering was null or undefined when calling createP21Levering.');
1942
+ }
1943
+ let localVarHeaders = this.defaultHeaders;
1944
+ let localVarCredential;
1945
+ // authentication (keycloak_auth) required
1946
+ localVarCredential = this.configuration.lookupCredential('keycloak_auth');
1947
+ if (localVarCredential) {
1948
+ localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);
1949
+ }
1950
+ let localVarHttpHeaderAcceptSelected = options && options.httpHeaderAccept;
1951
+ if (localVarHttpHeaderAcceptSelected === undefined) {
1952
+ // to determine the Accept header
1953
+ const httpHeaderAccepts = [
1954
+ '*/*'
1955
+ ];
1956
+ localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
1957
+ }
1958
+ if (localVarHttpHeaderAcceptSelected !== undefined) {
1959
+ localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
1960
+ }
1961
+ let localVarHttpContext = options && options.context;
1962
+ if (localVarHttpContext === undefined) {
1963
+ localVarHttpContext = new HttpContext();
1964
+ }
1965
+ let localVarTransferCache = options && options.transferCache;
1966
+ if (localVarTransferCache === undefined) {
1967
+ localVarTransferCache = true;
1968
+ }
1969
+ // to determine the Content-Type header
1970
+ const consumes = [
1971
+ 'multipart/form-data'
1972
+ ];
1973
+ const canConsumeForm = this.canConsumeForm(consumes);
1974
+ let localVarFormParams;
1975
+ let localVarUseForm = false;
1976
+ let localVarConvertFormParamsToString = false;
1977
+ // use FormData to transmit files using content-type "multipart/form-data"
1978
+ // see https://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data
1979
+ localVarUseForm = canConsumeForm;
1980
+ if (localVarUseForm) {
1981
+ localVarFormParams = new FormData();
1982
+ }
1983
+ else {
1984
+ localVarFormParams = new HttpParams({ encoder: this.encoder });
1985
+ }
1986
+ if (update !== undefined) {
1987
+ localVarFormParams = localVarFormParams.append('update', update) || localVarFormParams;
1988
+ }
1989
+ if (p21Levering !== undefined) {
1990
+ localVarFormParams = localVarFormParams.append('p21Levering', p21Levering) || localVarFormParams;
1991
+ }
1992
+ let responseType_ = 'json';
1993
+ if (localVarHttpHeaderAcceptSelected) {
1994
+ if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
1995
+ responseType_ = 'text';
1996
+ }
1997
+ else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
1998
+ responseType_ = 'json';
1999
+ }
2000
+ else {
2001
+ responseType_ = 'blob';
2002
+ }
2003
+ }
2004
+ let localVarPath = `/services/secure/rest/backend/uploadversie`;
2005
+ return this.httpClient.request('post', `${this.configuration.basePath}${localVarPath}`, {
2006
+ context: localVarHttpContext,
2007
+ body: localVarConvertFormParamsToString ? localVarFormParams.toString() : localVarFormParams,
2008
+ responseType: responseType_,
2009
+ withCredentials: this.configuration.withCredentials,
2010
+ headers: localVarHeaders,
2011
+ observe: observe,
2012
+ transferCache: localVarTransferCache,
2013
+ reportProgress: reportProgress
2014
+ });
2015
+ }
2016
+ getVersies(observe = 'body', reportProgress = false, options) {
2017
+ let localVarHeaders = this.defaultHeaders;
2018
+ let localVarCredential;
2019
+ // authentication (keycloak_auth) required
2020
+ localVarCredential = this.configuration.lookupCredential('keycloak_auth');
2021
+ if (localVarCredential) {
2022
+ localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);
2023
+ }
2024
+ let localVarHttpHeaderAcceptSelected = options && options.httpHeaderAccept;
2025
+ if (localVarHttpHeaderAcceptSelected === undefined) {
2026
+ // to determine the Accept header
2027
+ const httpHeaderAccepts = [
2028
+ 'application/json'
2029
+ ];
2030
+ localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
2031
+ }
2032
+ if (localVarHttpHeaderAcceptSelected !== undefined) {
2033
+ localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
2034
+ }
2035
+ let localVarHttpContext = options && options.context;
2036
+ if (localVarHttpContext === undefined) {
2037
+ localVarHttpContext = new HttpContext();
2038
+ }
2039
+ let localVarTransferCache = options && options.transferCache;
2040
+ if (localVarTransferCache === undefined) {
2041
+ localVarTransferCache = true;
2042
+ }
2043
+ let responseType_ = 'json';
2044
+ if (localVarHttpHeaderAcceptSelected) {
2045
+ if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
2046
+ responseType_ = 'text';
2047
+ }
2048
+ else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
2049
+ responseType_ = 'json';
2050
+ }
2051
+ else {
2052
+ responseType_ = 'blob';
2053
+ }
2054
+ }
2055
+ let localVarPath = `/services/secure/rest/backend/versies`;
2056
+ return this.httpClient.request('get', `${this.configuration.basePath}${localVarPath}`, {
2057
+ context: localVarHttpContext,
2058
+ responseType: responseType_,
2059
+ withCredentials: this.configuration.withCredentials,
2060
+ headers: localVarHeaders,
2061
+ observe: observe,
2062
+ transferCache: localVarTransferCache,
2063
+ reportProgress: reportProgress
2064
+ });
2065
+ }
2066
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: P21ControllerService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
2067
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: P21ControllerService, providedIn: 'root' }); }
2068
+ }
2069
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: P21ControllerService, decorators: [{
2070
+ type: Injectable,
2071
+ args: [{
2072
+ providedIn: 'root'
2073
+ }]
2074
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
2075
+ type: Optional
2076
+ }, {
2077
+ type: Inject,
2078
+ args: [BASE_PATH]
2079
+ }] }, { type: Configuration, decorators: [{
2080
+ type: Optional
2081
+ }] }] });
2082
+
2083
+ /**
2084
+ * MST
2085
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
2086
+ *
2087
+ * The version of the OpenAPI document: 1
2088
+ *
2089
+ *
2090
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2091
+ * https://openapi-generator.tech
2092
+ * Do not edit the class manually.
2093
+ */
2094
+ /* tslint:disable:no-unused-variable member-ordering */
2095
+ class SbControllerService {
2096
+ constructor(httpClient, basePath, configuration) {
2097
+ this.httpClient = httpClient;
2098
+ this.basePath = 'http://localhost:8080/mst';
2099
+ this.defaultHeaders = new HttpHeaders();
2100
+ this.configuration = new Configuration();
2101
+ if (configuration) {
2102
+ this.configuration = configuration;
2103
+ }
2104
+ if (typeof this.configuration.basePath !== 'string') {
2105
+ if (Array.isArray(basePath) && basePath.length > 0) {
2106
+ basePath = basePath[0];
2107
+ }
2108
+ if (typeof basePath !== 'string') {
2109
+ basePath = this.basePath;
2110
+ }
2111
+ this.configuration.basePath = basePath;
2112
+ }
2113
+ this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();
2114
+ }
2115
+ // @ts-ignore
2116
+ addToHttpParams(httpParams, value, key) {
2117
+ if (typeof value === "object" && value instanceof Date === false) {
2118
+ httpParams = this.addToHttpParamsRecursive(httpParams, value);
2119
+ }
2120
+ else {
2121
+ httpParams = this.addToHttpParamsRecursive(httpParams, value, key);
2122
+ }
2123
+ return httpParams;
2124
+ }
2125
+ addToHttpParamsRecursive(httpParams, value, key) {
2126
+ if (value == null) {
2127
+ return httpParams;
2128
+ }
2129
+ if (typeof value === "object") {
2130
+ if (Array.isArray(value)) {
2131
+ value.forEach(elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));
2132
+ }
2133
+ else if (value instanceof Date) {
2134
+ if (key != null) {
2135
+ httpParams = httpParams.append(key, value.toISOString().substring(0, 10));
2136
+ }
2137
+ else {
2138
+ throw Error("key may not be null if value is Date");
2139
+ }
2140
+ }
2141
+ else {
2142
+ Object.keys(value).forEach(k => httpParams = this.addToHttpParamsRecursive(httpParams, value[k], key != null ? `${key}.${k}` : k));
2143
+ }
2144
+ }
2145
+ else if (key != null) {
2146
+ httpParams = httpParams.append(key, value);
2147
+ }
2148
+ else {
2149
+ throw Error("key may not be null if value is not object or array");
2150
+ }
2151
+ return httpParams;
2152
+ }
2153
+ getSignaleringsbeelden(iaVersie, pplg, observe = 'body', reportProgress = false, options) {
2154
+ if (iaVersie === null || iaVersie === undefined) {
2155
+ throw new Error('Required parameter iaVersie was null or undefined when calling getSignaleringsbeelden.');
2156
+ }
2157
+ if (pplg === null || pplg === undefined) {
2158
+ throw new Error('Required parameter pplg was null or undefined when calling getSignaleringsbeelden.');
2159
+ }
2160
+ let localVarQueryParameters = new HttpParams({ encoder: this.encoder });
2161
+ if (pplg) {
2162
+ pplg.forEach((element) => {
2163
+ localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, element, 'pplg');
2164
+ });
2165
+ }
2166
+ let localVarHeaders = this.defaultHeaders;
2167
+ let localVarHttpHeaderAcceptSelected = options && options.httpHeaderAccept;
2168
+ if (localVarHttpHeaderAcceptSelected === undefined) {
2169
+ // to determine the Accept header
2170
+ const httpHeaderAccepts = [
2171
+ 'application/json'
2172
+ ];
2173
+ localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
2174
+ }
2175
+ if (localVarHttpHeaderAcceptSelected !== undefined) {
2176
+ localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
2177
+ }
2178
+ let localVarHttpContext = options && options.context;
2179
+ if (localVarHttpContext === undefined) {
2180
+ localVarHttpContext = new HttpContext();
2181
+ }
2182
+ let localVarTransferCache = options && options.transferCache;
2183
+ if (localVarTransferCache === undefined) {
2184
+ localVarTransferCache = true;
2185
+ }
2186
+ let responseType_ = 'json';
2187
+ if (localVarHttpHeaderAcceptSelected) {
2188
+ if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
2189
+ responseType_ = 'text';
2190
+ }
2191
+ else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
2192
+ responseType_ = 'json';
2193
+ }
2194
+ else {
2195
+ responseType_ = 'blob';
2196
+ }
2197
+ }
2198
+ let localVarPath = `/rest/${this.configuration.encodeParam({ name: "iaVersie", value: iaVersie, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: undefined })}/SignaleringsbeeldAndPplgs`;
2199
+ return this.httpClient.request('get', `${this.configuration.basePath}${localVarPath}`, {
2200
+ context: localVarHttpContext,
2201
+ params: localVarQueryParameters,
2202
+ responseType: responseType_,
2203
+ withCredentials: this.configuration.withCredentials,
2204
+ headers: localVarHeaders,
2205
+ observe: observe,
2206
+ transferCache: localVarTransferCache,
2207
+ reportProgress: reportProgress
2208
+ });
2209
+ }
2210
+ valideerIaVersie(versie, observe = 'body', reportProgress = false, options) {
2211
+ if (versie === null || versie === undefined) {
2212
+ throw new Error('Required parameter versie was null or undefined when calling valideerIaVersie.');
2213
+ }
2214
+ let localVarQueryParameters = new HttpParams({ encoder: this.encoder });
2215
+ if (versie !== undefined && versie !== null) {
2216
+ localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, versie, 'versie');
2217
+ }
2218
+ let localVarHeaders = this.defaultHeaders;
2219
+ let localVarHttpHeaderAcceptSelected = options && options.httpHeaderAccept;
2220
+ if (localVarHttpHeaderAcceptSelected === undefined) {
2221
+ // to determine the Accept header
2222
+ const httpHeaderAccepts = [];
2223
+ localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
2224
+ }
2225
+ if (localVarHttpHeaderAcceptSelected !== undefined) {
2226
+ localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
2227
+ }
2228
+ let localVarHttpContext = options && options.context;
2229
+ if (localVarHttpContext === undefined) {
2230
+ localVarHttpContext = new HttpContext();
2231
+ }
2232
+ let localVarTransferCache = options && options.transferCache;
2233
+ if (localVarTransferCache === undefined) {
2234
+ localVarTransferCache = true;
2235
+ }
2236
+ let responseType_ = 'json';
2237
+ if (localVarHttpHeaderAcceptSelected) {
2238
+ if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
2239
+ responseType_ = 'text';
2240
+ }
2241
+ else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
2242
+ responseType_ = 'json';
2243
+ }
2244
+ else {
2245
+ responseType_ = 'blob';
2246
+ }
2247
+ }
2248
+ let localVarPath = `/rest/signaleringsbeeldeninfo/valideeriaversie`;
2249
+ return this.httpClient.request('get', `${this.configuration.basePath}${localVarPath}`, {
2250
+ context: localVarHttpContext,
2251
+ params: localVarQueryParameters,
2252
+ responseType: responseType_,
2253
+ withCredentials: this.configuration.withCredentials,
2254
+ headers: localVarHeaders,
2255
+ observe: observe,
2256
+ transferCache: localVarTransferCache,
2257
+ reportProgress: reportProgress
2258
+ });
2259
+ }
2260
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SbControllerService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
2261
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SbControllerService, providedIn: 'root' }); }
2262
+ }
2263
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SbControllerService, decorators: [{
2264
+ type: Injectable,
2265
+ args: [{
2266
+ providedIn: 'root'
2267
+ }]
2268
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
2269
+ type: Optional
2270
+ }, {
2271
+ type: Inject,
2272
+ args: [BASE_PATH]
2273
+ }] }, { type: Configuration, decorators: [{
2274
+ type: Optional
2275
+ }] }] });
2276
+
2277
+ /**
2278
+ * MST
2279
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
2280
+ *
2281
+ * The version of the OpenAPI document: 1
2282
+ *
2283
+ *
2284
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2285
+ * https://openapi-generator.tech
2286
+ * Do not edit the class manually.
2287
+ */
2288
+ /* tslint:disable:no-unused-variable member-ordering */
2289
+ class SvgControllerService {
2290
+ constructor(httpClient, basePath, configuration) {
2291
+ this.httpClient = httpClient;
2292
+ this.basePath = 'http://localhost:8080/mst';
2293
+ this.defaultHeaders = new HttpHeaders();
2294
+ this.configuration = new Configuration();
2295
+ if (configuration) {
2296
+ this.configuration = configuration;
2297
+ }
2298
+ if (typeof this.configuration.basePath !== 'string') {
2299
+ if (Array.isArray(basePath) && basePath.length > 0) {
2300
+ basePath = basePath[0];
2301
+ }
2302
+ if (typeof basePath !== 'string') {
2303
+ basePath = this.basePath;
2304
+ }
2305
+ this.configuration.basePath = basePath;
2306
+ }
2307
+ this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();
1087
2308
  }
1088
- static getKilometrering(lintNaam, kilometreringen) {
1089
- const result = kilometreringen.filter(kilometrering => kilometrering.getKmLint() === lintNaam);
1090
- if (result.length >= 1) {
1091
- return result[0];
2309
+ // @ts-ignore
2310
+ addToHttpParams(httpParams, value, key) {
2311
+ if (typeof value === "object" && value instanceof Date === false) {
2312
+ httpParams = this.addToHttpParamsRecursive(httpParams, value);
2313
+ }
2314
+ else {
2315
+ httpParams = this.addToHttpParamsRecursive(httpParams, value, key);
1092
2316
  }
1093
- return null;
2317
+ return httpParams;
1094
2318
  }
1095
- heeftOverlap(kilometrering1, kilometrering2) {
1096
- const vanKilometrering = KmRange.getKilometrering(kilometrering1.getKmLint(), this.vanKilometreringen);
1097
- const totKilometrering = KmRange.getKilometrering(kilometrering2.getKmLint(), this.totKilometreringen);
1098
- if (!vanKilometrering || !totKilometrering) {
1099
- return false;
2319
+ addToHttpParamsRecursive(httpParams, value, key) {
2320
+ if (value == null) {
2321
+ return httpParams;
1100
2322
  }
1101
- let startKmWaarde = vanKilometrering.getKmWaarde();
1102
- let endKmWaarde = totKilometrering.getKmWaarde();
1103
- if (startKmWaarde > endKmWaarde) {
1104
- const temp = { end: endKmWaarde, start: startKmWaarde };
1105
- startKmWaarde = temp.end;
1106
- endKmWaarde = temp.start;
2323
+ if (typeof value === "object") {
2324
+ if (Array.isArray(value)) {
2325
+ value.forEach(elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));
2326
+ }
2327
+ else if (value instanceof Date) {
2328
+ if (key != null) {
2329
+ httpParams = httpParams.append(key, value.toISOString().substring(0, 10));
2330
+ }
2331
+ else {
2332
+ throw Error("key may not be null if value is Date");
2333
+ }
2334
+ }
2335
+ else {
2336
+ Object.keys(value).forEach(k => httpParams = this.addToHttpParamsRecursive(httpParams, value[k], key != null ? `${key}.${k}` : k));
2337
+ }
1107
2338
  }
1108
- const actieStartKmWaarde = kilometrering1.getKmWaarde();
1109
- const actieEndKmWaarde = kilometrering2.getKmWaarde();
1110
- return endKmWaarde >= actieStartKmWaarde && actieEndKmWaarde >= startKmWaarde;
2339
+ else if (key != null) {
2340
+ httpParams = httpParams.append(key, value);
2341
+ }
2342
+ else {
2343
+ throw Error("key may not be null if value is not object or array");
2344
+ }
2345
+ return httpParams;
2346
+ }
2347
+ getSvgInfo(iaVersie, signaleringsbeeldDto, observe = 'body', reportProgress = false, options) {
2348
+ if (iaVersie === null || iaVersie === undefined) {
2349
+ throw new Error('Required parameter iaVersie was null or undefined when calling getSvgInfo.');
2350
+ }
2351
+ if (signaleringsbeeldDto === null || signaleringsbeeldDto === undefined) {
2352
+ throw new Error('Required parameter signaleringsbeeldDto was null or undefined when calling getSvgInfo.');
2353
+ }
2354
+ let localVarHeaders = this.defaultHeaders;
2355
+ let localVarHttpHeaderAcceptSelected = options && options.httpHeaderAccept;
2356
+ if (localVarHttpHeaderAcceptSelected === undefined) {
2357
+ // to determine the Accept header
2358
+ const httpHeaderAccepts = [
2359
+ 'application/json'
2360
+ ];
2361
+ localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
2362
+ }
2363
+ if (localVarHttpHeaderAcceptSelected !== undefined) {
2364
+ localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
2365
+ }
2366
+ let localVarHttpContext = options && options.context;
2367
+ if (localVarHttpContext === undefined) {
2368
+ localVarHttpContext = new HttpContext();
2369
+ }
2370
+ let localVarTransferCache = options && options.transferCache;
2371
+ if (localVarTransferCache === undefined) {
2372
+ localVarTransferCache = true;
2373
+ }
2374
+ // to determine the Content-Type header
2375
+ const consumes = [
2376
+ 'application/json'
2377
+ ];
2378
+ const httpContentTypeSelected = this.configuration.selectHeaderContentType(consumes);
2379
+ if (httpContentTypeSelected !== undefined) {
2380
+ localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);
2381
+ }
2382
+ let responseType_ = 'json';
2383
+ if (localVarHttpHeaderAcceptSelected) {
2384
+ if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
2385
+ responseType_ = 'text';
2386
+ }
2387
+ else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
2388
+ responseType_ = 'json';
2389
+ }
2390
+ else {
2391
+ responseType_ = 'blob';
2392
+ }
2393
+ }
2394
+ let localVarPath = `/rest/${this.configuration.encodeParam({ name: "iaVersie", value: iaVersie, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: undefined })}/svgs`;
2395
+ return this.httpClient.request('post', `${this.configuration.basePath}${localVarPath}`, {
2396
+ context: localVarHttpContext,
2397
+ body: signaleringsbeeldDto,
2398
+ responseType: responseType_,
2399
+ withCredentials: this.configuration.withCredentials,
2400
+ headers: localVarHeaders,
2401
+ observe: observe,
2402
+ transferCache: localVarTransferCache,
2403
+ reportProgress: reportProgress
2404
+ });
1111
2405
  }
2406
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SvgControllerService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
2407
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SvgControllerService, providedIn: 'root' }); }
1112
2408
  }
2409
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SvgControllerService, decorators: [{
2410
+ type: Injectable,
2411
+ args: [{
2412
+ providedIn: 'root'
2413
+ }]
2414
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
2415
+ type: Optional
2416
+ }, {
2417
+ type: Inject,
2418
+ args: [BASE_PATH]
2419
+ }] }, { type: Configuration, decorators: [{
2420
+ type: Optional
2421
+ }] }] });
1113
2422
 
1114
- class WisselKantCode {
1115
- constructor(naam, kantCode) {
1116
- this.naam = naam;
1117
- this.kantCode = kantCode;
1118
- }
1119
- }
2423
+ const APIS = [AppConfigControllerService, BewegingControllerService, Class0BuildPropertiesService, ConnectorControllerService, LogControllerService, P21ControllerService, SbControllerService, SvgControllerService];
1120
2424
 
1121
- class MeldingEvent {
1122
- constructor(meldingMessage, meldingLevel) {
1123
- this.meldingMessage = meldingMessage;
1124
- this.meldingLevel = meldingLevel;
1125
- }
1126
- }
2425
+ /**
2426
+ * MST
2427
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
2428
+ *
2429
+ * The version of the OpenAPI document: 1
2430
+ *
2431
+ *
2432
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2433
+ * https://openapi-generator.tech
2434
+ * Do not edit the class manually.
2435
+ */
1127
2436
 
1128
- const MELDING_LEVEL_ERROR = 'error';
1129
- const MELDING_LEVEL_WARNING = 'warn';
1130
- const MELDING_LEVEL_INFO = 'info';
1131
- class MeldingBuilder {
1132
- static nietGevondenTakkenOngeplandeActies(nietGevondenTakken) {
1133
- return new MeldingEvent('Niet gevonden takken uit \'OngeplandeActies\': ' + nietGevondenTakken, MELDING_LEVEL_INFO);
2437
+ /**
2438
+ * MST
2439
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
2440
+ *
2441
+ * The version of the OpenAPI document: 1
2442
+ *
2443
+ *
2444
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2445
+ * https://openapi-generator.tech
2446
+ * Do not edit the class manually.
2447
+ */
2448
+
2449
+ /**
2450
+ * MST
2451
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
2452
+ *
2453
+ * The version of the OpenAPI document: 1
2454
+ *
2455
+ *
2456
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2457
+ * https://openapi-generator.tech
2458
+ * Do not edit the class manually.
2459
+ */
2460
+
2461
+ /**
2462
+ * MST
2463
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
2464
+ *
2465
+ * The version of the OpenAPI document: 1
2466
+ *
2467
+ *
2468
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2469
+ * https://openapi-generator.tech
2470
+ * Do not edit the class manually.
2471
+ */
2472
+
2473
+ var Sein;
2474
+ (function (Sein) {
2475
+ Sein.DirectionEnum = {
2476
+ LeftToRight: 'LEFT_TO_RIGHT',
2477
+ RightToLeft: 'RIGHT_TO_LEFT',
2478
+ TopToBottom: 'TOP_TO_BOTTOM',
2479
+ BottomToTop: 'BOTTOM_TO_TOP'
2480
+ };
2481
+ })(Sein || (Sein = {}));
2482
+
2483
+ /**
2484
+ * MST
2485
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
2486
+ *
2487
+ * The version of the OpenAPI document: 1
2488
+ *
2489
+ *
2490
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2491
+ * https://openapi-generator.tech
2492
+ * Do not edit the class manually.
2493
+ */
2494
+
2495
+ /**
2496
+ * MST
2497
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
2498
+ *
2499
+ * The version of the OpenAPI document: 1
2500
+ *
2501
+ *
2502
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2503
+ * https://openapi-generator.tech
2504
+ * Do not edit the class manually.
2505
+ */
2506
+
2507
+ /**
2508
+ * MST
2509
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
2510
+ *
2511
+ * The version of the OpenAPI document: 1
2512
+ *
2513
+ *
2514
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2515
+ * https://openapi-generator.tech
2516
+ * Do not edit the class manually.
2517
+ */
2518
+
2519
+ class ApiModule {
2520
+ static forRoot(configurationFactory) {
2521
+ return {
2522
+ ngModule: ApiModule,
2523
+ providers: [{ provide: Configuration, useFactory: configurationFactory }]
2524
+ };
1134
2525
  }
1135
- static actieHighlightError(actieZonderElementen) {
1136
- return new MeldingEvent('Highlight error. Geen elementen kunnen vinden voor actie(s) met id: ' + actieZonderElementen, MELDING_LEVEL_ERROR);
2526
+ constructor(parentModule, http) {
2527
+ if (parentModule) {
2528
+ throw new Error('ApiModule is already loaded. Import in your base AppModule only.');
2529
+ }
2530
+ if (!http) {
2531
+ throw new Error('You need to import the HttpClientModule in your AppModule! \n' +
2532
+ 'See also https://github.com/angular/angular/issues/20575');
2533
+ }
1137
2534
  }
2535
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ApiModule, deps: [{ token: ApiModule, optional: true, skipSelf: true }, { token: i1.HttpClient, optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
2536
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: ApiModule }); }
2537
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ApiModule }); }
1138
2538
  }
2539
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ApiModule, decorators: [{
2540
+ type: NgModule,
2541
+ args: [{
2542
+ imports: [],
2543
+ declarations: [],
2544
+ exports: [],
2545
+ providers: []
2546
+ }]
2547
+ }], ctorParameters: () => [{ type: ApiModule, decorators: [{
2548
+ type: Optional
2549
+ }, {
2550
+ type: SkipSelf
2551
+ }] }, { type: i1.HttpClient, decorators: [{
2552
+ type: Optional
2553
+ }] }] });
1139
2554
 
1140
- class MessageBuilder {
1141
- static rwpDataNietGevonden(err) {
1142
- return new Message(Severity.ERROR, 'Error bij ophalen van rijwegplan data: ' + err);
1143
- }
1144
- static rijwegNietGevonden(beweging) {
1145
- return new Message(Severity.ERROR, `Rijweg van ${beweging.vanSpoor} in PPLG ${beweging.vanPplg} naar ${beweging.naarSpoor} niet gevonden`);
1146
- }
1147
- static rijwegplanNietGevonden(beweging) {
1148
- return new Message(Severity.ERROR, `Rijwegplan van PPLG ${beweging.vanPplg} niet gevonden`);
1149
- }
1150
- static dwangNietGevonden(beweging) {
1151
- return new Message(Severity.ERROR, `Dwang ${beweging.dwangNummer} voor rijweg van ${beweging.vanSpoor} in PPLG ${beweging.vanPplg} naar ${beweging.naarSpoor} niet gevonden`);
1152
- }
1153
- static nietGevondenSBI(err) {
1154
- return new Message(Severity.ERROR, 'Error bij het ophalen van signaleringsbeeldinfo: ' + Utils.getValidErorrMessage(err));
1155
- }
1156
- static actieHighlightError(actieZonderElementen) {
1157
- return new Message(Severity.ERROR, 'Highlight error. Geen elementen kunnen vinden voor actie(s) met id: ' + actieZonderElementen);
1158
- }
1159
- static ritFileAlGewijzigdError(beweging) {
1160
- return new Message(Severity.ERROR, 'Rit bevat een beweging met status \'Gewijzigd\': Beweging met ID:' + beweging.id);
2555
+ class MstLoggingResource {
2556
+ constructor(controller, store) {
2557
+ this.controller = controller;
2558
+ this.store = store;
2559
+ this.subscriptions = new Subscription();
2560
+ this.subscriptions.add(this.store.select('baseUrl').subscribe(baseUrl => controller.configuration.basePath = baseUrl + '/mst'));
1161
2561
  }
1162
- static meerDan12BladenGevonden(bladAmount) {
1163
- return new Message(Severity.WARNING, 'Warning, Rit bevat ' + bladAmount + ' bladen. Er worden maximaal 12 bladen ondersteund.');
2562
+ ngOnDestroy() {
2563
+ this.subscriptions.unsubscribe();
1164
2564
  }
1165
- static nietGevondenTakkenOngeplandeActies(nietGevondenTakken) {
1166
- return new Message(Severity.INFORMATION, 'Info, Niet gevonden takken uit \'OngeplandeActies\': ' + nietGevondenTakken);
2565
+ logMessages(logDto) {
2566
+ this.controller.log(logDto).subscribe();
1167
2567
  }
2568
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MstLoggingResource, deps: [{ token: LogControllerService }, { token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
2569
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MstLoggingResource }); }
1168
2570
  }
2571
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MstLoggingResource, decorators: [{
2572
+ type: Injectable
2573
+ }], ctorParameters: () => [{ type: LogControllerService }, { type: i2$1.Store }] });
1169
2574
 
1170
2575
  class LoggingHelper {
1171
- constructor(sbmService, store) {
1172
- this.sbmService = sbmService;
2576
+ constructor(store) {
1173
2577
  this.store = store;
1174
2578
  }
1175
2579
  maakLogDTO(melding, actie) {
1176
- let iaVersie = '';
1177
- let algemeneRitInfoDto = null;
1178
- let actieDto = null;
1179
- this.store.select('algemeneRitInfoDto').pipe(take(1)).subscribe(dto => {
1180
- algemeneRitInfoDto = dto;
1181
- });
1182
- this.store.select('iaVersie').pipe(take(1)).subscribe(ia => {
1183
- iaVersie = ia.versie;
1184
- });
1185
- if (actie) {
1186
- actieDto = new ActieDto({
1187
- pplgNaam: actie.pplgNaam,
1188
- ritActieTypeOmschrijving: actie.ritActieTypeOmschrijving,
1189
- ritActieStatus: actie.ritActieStatus,
1190
- bewegingId: actie.bewegingId,
1191
- wisselType: actie.wisselType,
1192
- wisselNaam: actie.wisselNaam,
1193
- wisselKantCode: actie.wisselKantCode,
1194
- vanKilometerlint: actie.vanKilometerlint,
1195
- vanKilometrering: actie.vanKilometrering,
1196
- totKilometerlint: actie.totKilometerlint,
1197
- totKilometrering: actie.totKilometrering
1198
- });
1199
- }
1200
- return new MstLoggingDto({
1201
- iaVersie,
1202
- meldingLevel: melding.meldingLevel,
1203
- meldingMessage: melding.meldingMessage,
1204
- actieDto,
1205
- algemeneRitInfoDto,
1206
- sbinfoDtos: this.getSbInfoDtos()
1207
- });
2580
+ return combineLatest([
2581
+ this.store.select('algemeneRitInfoDto'),
2582
+ this.store.select('iaVersie')
2583
+ ]).pipe(take(1), map(([algemeneRitInfoDto, iaVersie]) => {
2584
+ let actieDto = null;
2585
+ if (actie) {
2586
+ actieDto = {
2587
+ pplgNaam: actie.pplgNaam,
2588
+ ritActieTypeOmschrijving: actie.ritActieTypeOmschrijving,
2589
+ ritActieStatus: actie.ritActieStatus,
2590
+ bewegingId: actie.bewegingId,
2591
+ wisselType: actie.wisselType,
2592
+ wisselNaam: actie.wisselNaam,
2593
+ wisselKantCode: actie.wisselKantCode,
2594
+ vanKilometerlint: actie.vanKilometerlint,
2595
+ vanKilometrering: actie.vanKilometrering,
2596
+ totKilometerlint: actie.totKilometerlint,
2597
+ totKilometrering: actie.totKilometrering
2598
+ };
2599
+ }
2600
+ return {
2601
+ iaVersie: iaVersie.versie,
2602
+ meldingLevel: melding.meldingLevel,
2603
+ meldingMessage: melding.meldingMessage,
2604
+ actieDto,
2605
+ algemeneRitInfoDto,
2606
+ sbinfoDtos: this.getSbInfoDtos()
2607
+ };
2608
+ }));
1208
2609
  }
1209
2610
  getSbInfoDtos() {
1210
2611
  const sbInfoDtos = [];
@@ -1215,12 +2616,12 @@ class LoggingHelper {
1215
2616
  });
1216
2617
  return sbInfoDtos;
1217
2618
  }
1218
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LoggingHelper, deps: [{ token: SignaleringsBeeldManagerService }, { token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
1219
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LoggingHelper }); }
2619
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LoggingHelper, deps: [{ token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
2620
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LoggingHelper }); }
1220
2621
  }
1221
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LoggingHelper, decorators: [{
2622
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LoggingHelper, decorators: [{
1222
2623
  type: Injectable
1223
- }], ctorParameters: () => [{ type: SignaleringsBeeldManagerService }, { type: i2$1.Store }] });
2624
+ }], ctorParameters: () => [{ type: i2$1.Store }] });
1224
2625
 
1225
2626
  /**
1226
2627
  * export const RIT_ACTIE_1 = 1;
@@ -1316,6 +2717,7 @@ class ActieHelper {
1316
2717
  this.messagesService = messagesService;
1317
2718
  this.store = store;
1318
2719
  this.loggingHelper = loggingHelper;
2720
+ this.debug = false;
1319
2721
  this.store.select('debug').subscribe(debug => this.debug = debug);
1320
2722
  }
1321
2723
  static getActieTopoElements(ritDeel, sbmService) {
@@ -1349,10 +2751,10 @@ class ActieHelper {
1349
2751
  }
1350
2752
  }
1351
2753
  static actieComparator(actie1, actie2) {
1352
- if (actie1.vanKilometrering !== actie2.vanKilometrering) {
2754
+ if (actie1.vanKilometrering && actie2.vanKilometrering && actie1.vanKilometrering !== actie2.vanKilometrering) {
1353
2755
  return actie1.vanKilometrering > actie2.vanKilometrering ? 1 : -1;
1354
2756
  }
1355
- if (actie1.ritActieTypeOmschrijving !== actie2.ritActieTypeOmschrijving) {
2757
+ if (actie1.ritActieTypeOmschrijving && actie2.ritActieTypeOmschrijving && actie1.ritActieTypeOmschrijving !== actie2.ritActieTypeOmschrijving) {
1356
2758
  return actie1.ritActieTypeOmschrijving > actie2.ritActieTypeOmschrijving ? 1 : -1;
1357
2759
  }
1358
2760
  if (actie1.wisselNaam !== actie2.wisselNaam) {
@@ -1392,9 +2794,9 @@ class ActieHelper {
1392
2794
  // make sure the elems are sorted in ascending order
1393
2795
  static sorteerTopoElementen(topoElems) {
1394
2796
  const topoElementen = topoElems.slice();
1395
- let lint = null;
1396
- let first = null;
1397
- let second = null;
2797
+ let lint = undefined;
2798
+ let first;
2799
+ let second;
1398
2800
  for (const topoElement of topoElementen) {
1399
2801
  let kilometreringen = null;
1400
2802
  const kms = JsJavaUtil.listToArray(topoElement.getKilometreringen());
@@ -1426,11 +2828,11 @@ class ActieHelper {
1426
2828
  if (!totKilometreringen && vanKilometreringen) {
1427
2829
  totKilometreringen = [new MstKilometrering(vanKilometreringen[0].getKmLint(), 100000)];
1428
2830
  }
1429
- if (vanKilometreringen[0] > totKilometreringen[0]) {
2831
+ if (vanKilometreringen && totKilometreringen && vanKilometreringen[0] > totKilometreringen[0]) {
1430
2832
  kmRanges.push(KmRange.rangeVoorStrekObject(e, this.addKm(vanKilometreringen, -1), this.addKm(totKilometreringen, 1)));
1431
2833
  }
1432
2834
  else {
1433
- kmRanges.push(KmRange.rangeVoorStrekObject(e, this.addKm(vanKilometreringen, 1), this.addKm(totKilometreringen, -1)));
2835
+ kmRanges.push(KmRange.rangeVoorStrekObject(e, this.addKm(vanKilometreringen ?? [], 1), this.addKm(totKilometreringen ?? [], -1)));
1434
2836
  }
1435
2837
  });
1436
2838
  }
@@ -1521,21 +2923,23 @@ class ActieHelper {
1521
2923
  else {
1522
2924
  const puics = [];
1523
2925
  kmRanges.forEach(kmRange => {
1524
- let vanKilometrering = new MstKilometrering(actie.vanKilometerlint, actie.vanKilometrering);
1525
- let totKilometrering = new MstKilometrering(actie.totKilometerlint, actie.totKilometrering);
1526
- if (actie.vanKilometrering > actie.totKilometrering) {
1527
- const temp = { van: vanKilometrering, tot: totKilometrering };
1528
- vanKilometrering = temp.tot;
1529
- totKilometrering = temp.van;
1530
- }
1531
- if (kmRange.heeftOverlap(vanKilometrering, totKilometrering)) {
1532
- puics.push(kmRange.topologyElement.getPuic());
2926
+ if (actie.vanKilometrering && actie.vanKilometerlint && actie.totKilometrering && actie.totKilometerlint) {
2927
+ let vanKilometrering = new MstKilometrering(actie.vanKilometerlint, actie.vanKilometrering);
2928
+ let totKilometrering = new MstKilometrering(actie.totKilometerlint, actie.totKilometrering);
2929
+ if (actie.vanKilometrering > actie.totKilometrering) {
2930
+ const temp = { van: vanKilometrering, tot: totKilometrering };
2931
+ vanKilometrering = temp.tot;
2932
+ totKilometrering = temp.van;
2933
+ }
2934
+ if (kmRange.heeftOverlap(vanKilometrering, totKilometrering)) {
2935
+ puics.push(kmRange.topologyElement.getPuic());
2936
+ }
1533
2937
  }
1534
2938
  });
1535
2939
  if (puics.length === 0) {
1536
2940
  actieZonderElementen.push(actie.id);
1537
2941
  const melding = MeldingBuilder.actieHighlightError(actieZonderElementen);
1538
- logMeldingDTOs.push(this.loggingHelper.maakLogDTO(melding, actie));
2942
+ this.loggingHelper.maakLogDTO(melding, actie).pipe(tap(dto => logMeldingDTOs.push(dto))).subscribe();
1539
2943
  }
1540
2944
  retval.putAll(actie, puics);
1541
2945
  }
@@ -1543,15 +2947,15 @@ class ActieHelper {
1543
2947
  this.logLegeMeldingDto(logMeldingDTOs);
1544
2948
  return retval;
1545
2949
  }
1546
- logLegeMeldingDto(logMeldingDTOs) {
1547
- if (logMeldingDTOs.length > 0) {
1548
- this.mstLogResource.logErrorMessages(logMeldingDTOs);
2950
+ logLegeMeldingDto(logDto) {
2951
+ if (logDto.length > 0) {
2952
+ return this.mstLogResource.logMessages(logDto);
1549
2953
  }
1550
2954
  }
1551
2955
  verwerkTopoElementen(topoElementen) {
1552
2956
  const kmRanges = [];
1553
2957
  let topoElementenZonderKms = [];
1554
- let laatstePuntKms = null;
2958
+ let laatstePuntKms = undefined;
1555
2959
  topoElementen.forEach(elem => {
1556
2960
  const kms = JsJavaUtil.listToArray(elem.getKilometreringen());
1557
2961
  if (kms.length > 0) {
@@ -1565,7 +2969,7 @@ class ActieHelper {
1565
2969
  }
1566
2970
  });
1567
2971
  if (topoElementenZonderKms.length > 0 && laatstePuntKms) {
1568
- ActieHelper.corrigeerTopoElementenZonderKms(topoElementenZonderKms, laatstePuntKms, null, kmRanges);
2972
+ ActieHelper.corrigeerTopoElementenZonderKms(topoElementenZonderKms, laatstePuntKms, undefined, kmRanges);
1569
2973
  }
1570
2974
  return kmRanges;
1571
2975
  }
@@ -1628,21 +3032,21 @@ class ActieHelper {
1628
3032
  if (ActieHelper.isKantCodeLinks(kantcode)) {
1629
3033
  return wissel.getLeft();
1630
3034
  }
1631
- return null;
3035
+ return undefined;
1632
3036
  }
1633
3037
  bepaalPuicVoorWisselSlijpenActie(actie) {
1634
3038
  const storingsSymboolPuic = this.sbmService.getSBWissel(actie.wisselNaam, actie.pplgNaam)?.getStoringSymboolPuic();
1635
3039
  if (!storingsSymboolPuic && this.debug) {
1636
3040
  const melding = MeldingBuilder.actieHighlightError([actie.id]);
1637
3041
  this.messagesService.showMessage(MessageBuilder.actieHighlightError([actie.id]));
1638
- this.mstLogResource.logErrorMessages([this.loggingHelper.maakLogDTO(melding, actie)]);
3042
+ this.loggingHelper.maakLogDTO(melding, actie).pipe(tap(logDto => this.mstLogResource.logMessages([logDto]))).subscribe();
1639
3043
  }
1640
3044
  return storingsSymboolPuic ? [storingsSymboolPuic] : [];
1641
3045
  }
1642
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ActieHelper, deps: [{ token: SignaleringsBeeldManagerService }, { token: MstLoggingResource }, { token: MessagesService }, { token: i2$1.Store }, { token: LoggingHelper }], target: i0.ɵɵFactoryTarget.Injectable }); }
1643
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ActieHelper }); }
3046
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ActieHelper, deps: [{ token: SignaleringsBeeldManagerService }, { token: MstLoggingResource }, { token: MessagesService }, { token: i2$1.Store }, { token: LoggingHelper }], target: i0.ɵɵFactoryTarget.Injectable }); }
3047
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ActieHelper }); }
1644
3048
  }
1645
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ActieHelper, decorators: [{
3049
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ActieHelper, decorators: [{
1646
3050
  type: Injectable
1647
3051
  }], ctorParameters: () => [{ type: SignaleringsBeeldManagerService }, { type: MstLoggingResource }, { type: MessagesService }, { type: i2$1.Store }, { type: LoggingHelper }] });
1648
3052
 
@@ -1650,10 +3054,16 @@ class RitdelenLijstComponent {
1650
3054
  constructor(store, sbmService) {
1651
3055
  this.store = store;
1652
3056
  this.sbmService = sbmService;
3057
+ this.nietGeplandeActies = [];
1653
3058
  this.focusEmitter = new EventEmitter();
1654
3059
  this.keurAlleActiesGoed = new EventEmitter();
3060
+ this.ritdeelViewModels = [];
1655
3061
  this.selectedRitdeelActies = [];
1656
3062
  this.selectedRitdeelOngeplandeActies = [];
3063
+ this.disableActieKnoppenVanRitdeel = true;
3064
+ this.editable = false;
3065
+ this.ongeplandeActiesMap = new ArrayMultimap();
3066
+ this.geplandeActies = new ArrayMultimap();
1657
3067
  this.NG_ACTIE_PREFIX = '* ';
1658
3068
  this.subscriptions = [];
1659
3069
  this.subscriptions.push(store.select('ritDelen').subscribe((ritdelen) => {
@@ -1664,9 +3074,6 @@ class RitdelenLijstComponent {
1664
3074
  this.subscriptions.push(store.select('ongeplandeActies').subscribe(acties => this.ongeplandeActiesMap = acties));
1665
3075
  this.subscriptions.push(store.select('geplandeActies').subscribe(acties => this.geplandeActies = acties));
1666
3076
  this.subscriptions.push(store.select('editable').subscribe(editable => this.editable = editable));
1667
- // listen to changes from svg-viewer-component, saving ritdeel in store isn't cool because of all the gwt in it. This is
1668
- // just to make changes within the angular lifecycle.
1669
- this.subscriptions.push(store.select('selectedRitdeelId').pipe(filter(id => !id)).subscribe(this.deselectRitdeel));
1670
3077
  this.subscriptions.push(combineLatest([
1671
3078
  this.store.select('ritDelen'),
1672
3079
  this.store.select('ongeplandeActies')
@@ -1703,12 +3110,14 @@ class RitdelenLijstComponent {
1703
3110
  this.store.dispatch(deleteRitdeel(ritdeel));
1704
3111
  }
1705
3112
  deleteActiesUitRit() {
1706
- this.selectedRitdeel.acties.slice().forEach(actie => {
3113
+ this.selectedRitdeel?.acties.slice().forEach(actie => {
1707
3114
  this.deleteActieUitRit(actie);
1708
3115
  });
1709
3116
  }
1710
3117
  deleteActieUitRit(actie) {
1711
- const acties = this.selectedRitdeel.acties;
3118
+ if (!this.selectedRitdeel)
3119
+ return;
3120
+ const acties = this.selectedRitdeel.acties ?? [];
1712
3121
  const idx = acties.indexOf(actie);
1713
3122
  if (idx >= 0) {
1714
3123
  this.verhuisActieNaarOngepland(actie);
@@ -1734,7 +3143,7 @@ class RitdelenLijstComponent {
1734
3143
  }
1735
3144
  voegActieToeAanRit(ongeplandeActie) {
1736
3145
  const idx = this.selectedRitdeelOngeplandeActies.indexOf(ongeplandeActie);
1737
- if (idx >= 0) {
3146
+ if (idx >= 0 && this.selectedRitdeel) {
1738
3147
  this.store.dispatch(addRitdeelActie(this.selectedRitdeel, this.selectedRitdeelOngeplandeActies[idx].actie));
1739
3148
  this.store.dispatch(AddGeplandeActie(ongeplandeActie.actie, ongeplandeActie.puics));
1740
3149
  this.store.dispatch(DeleteOngeplandeActie(ongeplandeActie));
@@ -1836,13 +3245,13 @@ class RitdelenLijstComponent {
1836
3245
  return `${prefix}${ActieHelper.getVSTActieOmschrijving(actie)}`;
1837
3246
  }
1838
3247
  bepaalPrefixVoorActieOmschrijving(actie) {
1839
- const prefix = '';
1840
- if (this.selectedRitdeel.acties.includes(actie)) {
3248
+ const noPrefix = '';
3249
+ if (this.selectedRitdeel?.acties.includes(actie)) {
1841
3250
  // Afwijkende naam bij niet gevisualiseerde actie in rit
1842
3251
  const puics = this.geplandeActies.get(actie);
1843
- return puics.length > 0 ? prefix : this.NG_ACTIE_PREFIX;
3252
+ return puics.length > 0 ? noPrefix : this.NG_ACTIE_PREFIX;
1844
3253
  }
1845
- return prefix;
3254
+ return noPrefix;
1846
3255
  }
1847
3256
  actieVanKmTekst(actie) {
1848
3257
  if (ActieHelper.isWisselSlijpenActie(actie)) {
@@ -1863,6 +3272,7 @@ class RitdelenLijstComponent {
1863
3272
  return ritdeel.getPplgString();
1864
3273
  }
1865
3274
  getKantCode(stand) {
3275
+ // @ts-ignore
1866
3276
  if (stand === window['domein'].Stand.LINKS) {
1867
3277
  return 'L';
1868
3278
  }
@@ -1872,10 +3282,10 @@ class RitdelenLijstComponent {
1872
3282
  this.keurAlleActiesGoed.emit();
1873
3283
  this.deselectRitdeel();
1874
3284
  }
1875
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RitdelenLijstComponent, deps: [{ token: i2$1.Store }, { token: SignaleringsBeeldManagerService }], target: i0.ɵɵFactoryTarget.Component }); }
1876
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: RitdelenLijstComponent, selector: "ritdelen-lijst", inputs: { nietGeplandeActies: "nietGeplandeActies" }, outputs: { focusEmitter: "focusEmitter", keurAlleActiesGoed: "keurAlleActiesGoed" }, ngImport: i0, template: "<div id=\"ritdelen-lijst\">\n <div class=\"sidebar-header\">\n <h3 [attr.data-test-id]=\"'title-rit-details'\">Ritdetails</h3>\n </div>\n <div class=\"panes-container\">\n <div class=\"top-pane tableFixHead\" id=\"top-pane\">\n <table class=\"table\" aria-hidden=\"true\" [attr.data-test-id]=\"'table-rit-details'\">\n <thead>\n <tr>\n <th scope=\"col\">\n <input #input\n type=\"checkbox\"\n checked\n class=\"checkbox col-visibility\"\n (change)=\"toggleZichtbaarheidAlleRitdelen(input.checked)\"\n id=\"ritdetails-selecteerAlles\"\n title=\"Selecteer alles\"\n [attr.data-test-id]=\"'checkbox-alle-bewegingen'\">\n </th>\n <th scope=\"col\"></th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Naar</th>\n <th scope=\"col\">DW</th>\n <th scope=\"col\">PPLG(s)</th>\n <th scope=\"col\">Treinnr.</th>\n <th scope=\"col\"></th>\n </tr>\n </thead>\n\n <tr *ngFor=\"let ritdeelViewModel of ritdeelViewModels; let i = index\"\n class=\"{{ selectedRitdeelClass(ritdeelViewModel.ritdeel) }}\" id=\"ritdetails-r{{i}}\">\n <td>\n <input id=\"ritdetails-r{{i}}-zichtbaar\"\n [attr.data-test-id]=\"'checkbox-r'+i\"\n type=\"checkbox\"\n class=\"checkbox col-visibility\"\n [checked]=\"ritdeelViewModel.isZichtbaar\"\n [title]=\"ritdeelViewModel.title\"\n (change)=\"toggleRitdeelZichtbaarheid(ritdeelViewModel.ritdeel)\"\n [hidden]=\"ritdeelViewModel.isNietBeschikbaar\"/>\n </td>\n <td id=\"ritdetails-r{{i}}-gewijzigd\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.isNieuw}}</td>\n <td id=\"ritdetails-r{{i}}-vanSpoor\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.vanPrlSpoor}}</td>\n <td id=\"ritdetails-r{{i}}-naarSpoor\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.naarPrlSpoor}}</td>\n <td id=\"ritdetails-r{{i}}-dwangNummer\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.dwangNummer}}</td>\n <td id=\"ritdetails-r{{i}}-pplgs\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.pplgString}}</td>\n <td id=\"ritdetails-r{{i}}-treinNummer\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.treinNummer}}</td>\n <td style=\"text-align:right\">\n <button *ngIf=\"editable\"\n id=\"ritdetails-r{{i}}-del\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-danger btn-sm\"\n (click)=\"deleteRitdeel(ritdeelViewModel.ritdeel)\">X\n </button>\n </td>\n </tr>\n\n </table>\n </div>\n <div class=\"actie-pane\">\n <div *ngIf=\"selectedRitdeel && (selectedRitdeelActies.length > 0 || selectedRitdeelOngeplandeActies.length > 0) \"\n id=\"actie-pane\">\n <h4>Geplande acties</h4>\n <table aria-hidden=\"true\">\n <tr>\n <th scope=\"col\">Actie</th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Tot</th>\n <th scope=\"col\">\n <button *ngIf=\"editable\"\n [hidden]=\"selectedRitdeelActies.length===0\"\n id=\"bulkSetOngeplandButton\"\n [attr.data-test-id]=\"'unplan-all-actions'\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-danger btn-sm\"\n (click)=\"deleteActiesUitRit()\"\n [disabled]=\"disableActieKnoppenVanRitdeel\">X\n </button>\n </th>\n </tr>\n\n <tr *ngFor=\"let actie of selectedRitdeelActies; let i = index\" id=\"ritdetails-a{{i}}\">\n <td id=\"ritdetails-a{{i}}-omschrijving\" class=\"nowrap\">{{ actieOmschrijvingTekst(actie) }}</td>\n <td id=\"ritdetails-a{{i}}-vanKmLint\">{{ actieVanKmTekst(actie)}}</td>\n <td id=\"ritdetails-a{{i}}-totKmLint\">{{ actieTotKmTekst(actie)}}</td>\n <td style=\"text-align:right\">\n <button *ngIf=\"editable\"\n id=\"ritdetails-a{{i}}-del\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-danger btn-sm\"\n (click)=\"deleteActieUitRit(actie)\"\n [disabled]=\"disableActieKnoppenVanRitdeel\">X\n </button>\n </td>\n </tr>\n </table>\n <h4>Ongeplande acties</h4>\n <table aria-hidden=\"true\">\n <tr>\n <th scope=\"col\">Actie</th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Tot</th>\n <th scope=\"col\">\n <button *ngIf=\"editable\"\n [hidden]=\"selectedRitdeelOngeplandeActies.length===0\"\n id=\"bulkSetGeplandButton\"\n [attr.data-test-id]=\"'plan-all-actions'\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-success loxia-btn-sm\"\n (click)=\"voegActiesToeAanRit()\"\n [disabled]=\"disableActieKnoppenVanRitdeel\">^\n </button>\n </th>\n </tr>\n\n <tr *ngFor=\"let ongeplandeActie of selectedRitdeelOngeplandeActies; let i = index\"\n id=\"ritdetails-oa{{i}}\">\n <td id=\"ritdetails-oa{{i}}-omschrijving\" class=\"nowrap\">{{actieOmschrijvingTekst(ongeplandeActie.actie) }}</td>\n <td id=\"ritdetails-oa{{i}}-vanKmLint\">{{ actieVanKmTekst(ongeplandeActie.actie)}}</td>\n <td id=\"ritdetails-oa{{i}}-totKmLint\">{{ actieTotKmTekst(ongeplandeActie.actie)}}</td>\n <td style=\"text-align:right\">\n <button *ngIf=\"editable\"\n id=\"ritdetails-oa{{i}}-del\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-success loxia-btn-sm\"\n (click)=\"voegActieToeAanRit(ongeplandeActie)\"\n [disabled]=\"disableActieKnoppenVanRitdeel\">^\n </button>\n </td>\n </tr>\n </table>\n </div>\n </div>\n <div class=\"knop-pane\">\n <button type=\"button\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm\"\n [attr.data-test-id]=\"'plan-all-actions-for-file'\"\n [innerText]=\"'Plan acties hele rit'\"\n (click)=\"planAlleRitActies()\">\n </button>\n </div>\n </div>\n</div>\n", styles: [".panes-container{display:inline;height:100%;border:1px solid black}table{width:100%}th{padding:5px;z-index:1000}td{padding:4px}tr:nth-child(2n){background:#f0f0f0}tr:nth-child(odd){background:#fff}.top-pane{height:45vh;overflow:auto}.actie-pane{height:35vh;overflow:auto}.knop-pane{height:5vh;justify-content:center;display:flex;align-items:center}.panes-container,.panes-separator,.top-pane,.actie-pane{margin:0;padding:0;width:100%}.selected{background:#ffff80!important}.disabled{background:gray!important}.visible-outside-window{background:#87cefa!important}.table-scroll-header-fix tbody{display:block;height:40vh;overflow:auto}.tableFixHead{overflow-y:auto}.tableFixHead thead th{position:sticky;top:0;background-color:#fff}.table{margin-bottom:0}.table td,.table th{border-top:none;border-bottom:none;padding-left:.75em}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.Default }); }
3285
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RitdelenLijstComponent, deps: [{ token: i2$1.Store }, { token: SignaleringsBeeldManagerService }], target: i0.ɵɵFactoryTarget.Component }); }
3286
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: RitdelenLijstComponent, selector: "ritdelen-lijst", inputs: { nietGeplandeActies: "nietGeplandeActies" }, outputs: { focusEmitter: "focusEmitter", keurAlleActiesGoed: "keurAlleActiesGoed" }, ngImport: i0, template: "<div id=\"ritdelen-lijst\">\n <div class=\"sidebar-header\">\n <h3 [attr.data-test-id]=\"'title-rit-details'\">Ritdetails</h3>\n </div>\n <div class=\"panes-container\">\n <div class=\"top-pane tableFixHead\" id=\"top-pane\">\n <table class=\"table\" aria-hidden=\"true\" [attr.data-test-id]=\"'table-rit-details'\">\n <thead>\n <tr>\n <th scope=\"col\">\n <input #input\n type=\"checkbox\"\n checked\n class=\"checkbox col-visibility\"\n (change)=\"toggleZichtbaarheidAlleRitdelen(input.checked)\"\n id=\"ritdetails-selecteerAlles\"\n title=\"Selecteer alles\"\n [attr.data-test-id]=\"'checkbox-alle-bewegingen'\">\n </th>\n <th scope=\"col\"></th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Naar</th>\n <th scope=\"col\">DW</th>\n <th scope=\"col\">PPLG(s)</th>\n <th scope=\"col\">Treinnr.</th>\n <th scope=\"col\"></th>\n </tr>\n </thead>\n\n <tr *ngFor=\"let ritdeelViewModel of ritdeelViewModels; let i = index\"\n class=\"{{ selectedRitdeelClass(ritdeelViewModel.ritdeel) }}\" id=\"ritdetails-r{{i}}\">\n <td>\n <input id=\"ritdetails-r{{i}}-zichtbaar\"\n [attr.data-test-id]=\"'checkbox-r'+i\"\n type=\"checkbox\"\n class=\"checkbox col-visibility\"\n [checked]=\"ritdeelViewModel.isZichtbaar\"\n [title]=\"ritdeelViewModel.title\"\n (change)=\"toggleRitdeelZichtbaarheid(ritdeelViewModel.ritdeel)\"\n [hidden]=\"ritdeelViewModel.isNietBeschikbaar\"/>\n </td>\n <td id=\"ritdetails-r{{i}}-gewijzigd\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.isNieuw}}</td>\n <td id=\"ritdetails-r{{i}}-vanSpoor\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.vanPrlSpoor}}</td>\n <td id=\"ritdetails-r{{i}}-naarSpoor\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.naarPrlSpoor}}</td>\n <td id=\"ritdetails-r{{i}}-dwangNummer\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.dwangNummer}}</td>\n <td id=\"ritdetails-r{{i}}-pplgs\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.pplgString}}</td>\n <td id=\"ritdetails-r{{i}}-treinNummer\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.treinNummer}}</td>\n <td style=\"text-align:right\">\n <button *ngIf=\"editable\"\n id=\"ritdetails-r{{i}}-del\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-danger btn-sm\"\n (click)=\"deleteRitdeel(ritdeelViewModel.ritdeel)\">X\n </button>\n </td>\n </tr>\n\n </table>\n </div>\n <div class=\"actie-pane\">\n <div *ngIf=\"selectedRitdeel && (selectedRitdeelActies.length > 0 || selectedRitdeelOngeplandeActies.length > 0) \"\n id=\"actie-pane\">\n <h4>Geplande acties</h4>\n <table aria-hidden=\"true\">\n <tr>\n <th scope=\"col\">Actie</th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Tot</th>\n <th scope=\"col\">\n <button *ngIf=\"editable\"\n [hidden]=\"selectedRitdeelActies.length===0\"\n id=\"bulkSetOngeplandButton\"\n [attr.data-test-id]=\"'unplan-all-actions'\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-danger btn-sm\"\n (click)=\"deleteActiesUitRit()\"\n [disabled]=\"disableActieKnoppenVanRitdeel\">X\n </button>\n </th>\n </tr>\n\n <tr *ngFor=\"let actie of selectedRitdeelActies; let i = index\" id=\"ritdetails-a{{i}}\">\n <td id=\"ritdetails-a{{i}}-omschrijving\" class=\"nowrap\">{{ actieOmschrijvingTekst(actie) }}</td>\n <td id=\"ritdetails-a{{i}}-vanKmLint\">{{ actieVanKmTekst(actie)}}</td>\n <td id=\"ritdetails-a{{i}}-totKmLint\">{{ actieTotKmTekst(actie)}}</td>\n <td style=\"text-align:right\">\n <button *ngIf=\"editable\"\n id=\"ritdetails-a{{i}}-del\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-danger btn-sm\"\n (click)=\"deleteActieUitRit(actie)\"\n [disabled]=\"disableActieKnoppenVanRitdeel\">X\n </button>\n </td>\n </tr>\n </table>\n <h4>Ongeplande acties</h4>\n <table aria-hidden=\"true\">\n <tr>\n <th scope=\"col\">Actie</th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Tot</th>\n <th scope=\"col\">\n <button *ngIf=\"editable\"\n [hidden]=\"selectedRitdeelOngeplandeActies.length===0\"\n id=\"bulkSetGeplandButton\"\n [attr.data-test-id]=\"'plan-all-actions'\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-success loxia-btn-sm\"\n (click)=\"voegActiesToeAanRit()\"\n [disabled]=\"disableActieKnoppenVanRitdeel\">^\n </button>\n </th>\n </tr>\n\n <tr *ngFor=\"let ongeplandeActie of selectedRitdeelOngeplandeActies; let i = index\"\n id=\"ritdetails-oa{{i}}\">\n <td id=\"ritdetails-oa{{i}}-omschrijving\" class=\"nowrap\">{{actieOmschrijvingTekst(ongeplandeActie.actie) }}</td>\n <td id=\"ritdetails-oa{{i}}-vanKmLint\">{{ actieVanKmTekst(ongeplandeActie.actie)}}</td>\n <td id=\"ritdetails-oa{{i}}-totKmLint\">{{ actieTotKmTekst(ongeplandeActie.actie)}}</td>\n <td style=\"text-align:right\">\n <button *ngIf=\"editable\"\n id=\"ritdetails-oa{{i}}-del\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-success loxia-btn-sm\"\n (click)=\"voegActieToeAanRit(ongeplandeActie)\"\n [disabled]=\"disableActieKnoppenVanRitdeel\">^\n </button>\n </td>\n </tr>\n </table>\n </div>\n </div>\n <div class=\"knop-pane\">\n <button type=\"button\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm\"\n [attr.data-test-id]=\"'plan-all-actions-for-file'\"\n [innerText]=\"'Plan acties hele rit'\"\n (click)=\"planAlleRitActies()\">\n </button>\n </div>\n </div>\n</div>\n", styles: [".panes-container{display:inline;height:100%;border:1px solid black}table{width:100%}th{padding:5px;z-index:1000}td{padding:4px}tr:nth-child(2n){background:#f0f0f0}tr:nth-child(odd){background:#fff}.top-pane{height:45vh;overflow:auto}.actie-pane{height:35vh;overflow:auto}.knop-pane{height:5vh;justify-content:center;display:flex;align-items:center}.panes-container,.panes-separator,.top-pane,.actie-pane{margin:0;padding:0;width:100%}.selected{background:#ffff80!important}.disabled{background:gray!important}.visible-outside-window{background:#87cefa!important}.table-scroll-header-fix tbody{display:block;height:40vh;overflow:auto}.tableFixHead{overflow-y:auto}.tableFixHead thead th{position:sticky;top:0;background-color:#fff}.table{margin-bottom:0}.table td,.table th{border-top:none;border-bottom:none;padding-left:.75em}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.Default }); }
1877
3287
  }
1878
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RitdelenLijstComponent, decorators: [{
3288
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RitdelenLijstComponent, decorators: [{
1879
3289
  type: Component,
1880
3290
  args: [{ selector: 'ritdelen-lijst', changeDetection: ChangeDetectionStrategy.Default, template: "<div id=\"ritdelen-lijst\">\n <div class=\"sidebar-header\">\n <h3 [attr.data-test-id]=\"'title-rit-details'\">Ritdetails</h3>\n </div>\n <div class=\"panes-container\">\n <div class=\"top-pane tableFixHead\" id=\"top-pane\">\n <table class=\"table\" aria-hidden=\"true\" [attr.data-test-id]=\"'table-rit-details'\">\n <thead>\n <tr>\n <th scope=\"col\">\n <input #input\n type=\"checkbox\"\n checked\n class=\"checkbox col-visibility\"\n (change)=\"toggleZichtbaarheidAlleRitdelen(input.checked)\"\n id=\"ritdetails-selecteerAlles\"\n title=\"Selecteer alles\"\n [attr.data-test-id]=\"'checkbox-alle-bewegingen'\">\n </th>\n <th scope=\"col\"></th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Naar</th>\n <th scope=\"col\">DW</th>\n <th scope=\"col\">PPLG(s)</th>\n <th scope=\"col\">Treinnr.</th>\n <th scope=\"col\"></th>\n </tr>\n </thead>\n\n <tr *ngFor=\"let ritdeelViewModel of ritdeelViewModels; let i = index\"\n class=\"{{ selectedRitdeelClass(ritdeelViewModel.ritdeel) }}\" id=\"ritdetails-r{{i}}\">\n <td>\n <input id=\"ritdetails-r{{i}}-zichtbaar\"\n [attr.data-test-id]=\"'checkbox-r'+i\"\n type=\"checkbox\"\n class=\"checkbox col-visibility\"\n [checked]=\"ritdeelViewModel.isZichtbaar\"\n [title]=\"ritdeelViewModel.title\"\n (change)=\"toggleRitdeelZichtbaarheid(ritdeelViewModel.ritdeel)\"\n [hidden]=\"ritdeelViewModel.isNietBeschikbaar\"/>\n </td>\n <td id=\"ritdetails-r{{i}}-gewijzigd\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.isNieuw}}</td>\n <td id=\"ritdetails-r{{i}}-vanSpoor\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.vanPrlSpoor}}</td>\n <td id=\"ritdetails-r{{i}}-naarSpoor\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.naarPrlSpoor}}</td>\n <td id=\"ritdetails-r{{i}}-dwangNummer\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.dwangNummer}}</td>\n <td id=\"ritdetails-r{{i}}-pplgs\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.pplgString}}</td>\n <td id=\"ritdetails-r{{i}}-treinNummer\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.treinNummer}}</td>\n <td style=\"text-align:right\">\n <button *ngIf=\"editable\"\n id=\"ritdetails-r{{i}}-del\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-danger btn-sm\"\n (click)=\"deleteRitdeel(ritdeelViewModel.ritdeel)\">X\n </button>\n </td>\n </tr>\n\n </table>\n </div>\n <div class=\"actie-pane\">\n <div *ngIf=\"selectedRitdeel && (selectedRitdeelActies.length > 0 || selectedRitdeelOngeplandeActies.length > 0) \"\n id=\"actie-pane\">\n <h4>Geplande acties</h4>\n <table aria-hidden=\"true\">\n <tr>\n <th scope=\"col\">Actie</th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Tot</th>\n <th scope=\"col\">\n <button *ngIf=\"editable\"\n [hidden]=\"selectedRitdeelActies.length===0\"\n id=\"bulkSetOngeplandButton\"\n [attr.data-test-id]=\"'unplan-all-actions'\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-danger btn-sm\"\n (click)=\"deleteActiesUitRit()\"\n [disabled]=\"disableActieKnoppenVanRitdeel\">X\n </button>\n </th>\n </tr>\n\n <tr *ngFor=\"let actie of selectedRitdeelActies; let i = index\" id=\"ritdetails-a{{i}}\">\n <td id=\"ritdetails-a{{i}}-omschrijving\" class=\"nowrap\">{{ actieOmschrijvingTekst(actie) }}</td>\n <td id=\"ritdetails-a{{i}}-vanKmLint\">{{ actieVanKmTekst(actie)}}</td>\n <td id=\"ritdetails-a{{i}}-totKmLint\">{{ actieTotKmTekst(actie)}}</td>\n <td style=\"text-align:right\">\n <button *ngIf=\"editable\"\n id=\"ritdetails-a{{i}}-del\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-danger btn-sm\"\n (click)=\"deleteActieUitRit(actie)\"\n [disabled]=\"disableActieKnoppenVanRitdeel\">X\n </button>\n </td>\n </tr>\n </table>\n <h4>Ongeplande acties</h4>\n <table aria-hidden=\"true\">\n <tr>\n <th scope=\"col\">Actie</th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Tot</th>\n <th scope=\"col\">\n <button *ngIf=\"editable\"\n [hidden]=\"selectedRitdeelOngeplandeActies.length===0\"\n id=\"bulkSetGeplandButton\"\n [attr.data-test-id]=\"'plan-all-actions'\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-success loxia-btn-sm\"\n (click)=\"voegActiesToeAanRit()\"\n [disabled]=\"disableActieKnoppenVanRitdeel\">^\n </button>\n </th>\n </tr>\n\n <tr *ngFor=\"let ongeplandeActie of selectedRitdeelOngeplandeActies; let i = index\"\n id=\"ritdetails-oa{{i}}\">\n <td id=\"ritdetails-oa{{i}}-omschrijving\" class=\"nowrap\">{{actieOmschrijvingTekst(ongeplandeActie.actie) }}</td>\n <td id=\"ritdetails-oa{{i}}-vanKmLint\">{{ actieVanKmTekst(ongeplandeActie.actie)}}</td>\n <td id=\"ritdetails-oa{{i}}-totKmLint\">{{ actieTotKmTekst(ongeplandeActie.actie)}}</td>\n <td style=\"text-align:right\">\n <button *ngIf=\"editable\"\n id=\"ritdetails-oa{{i}}-del\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-success loxia-btn-sm\"\n (click)=\"voegActieToeAanRit(ongeplandeActie)\"\n [disabled]=\"disableActieKnoppenVanRitdeel\">^\n </button>\n </td>\n </tr>\n </table>\n </div>\n </div>\n <div class=\"knop-pane\">\n <button type=\"button\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm\"\n [attr.data-test-id]=\"'plan-all-actions-for-file'\"\n [innerText]=\"'Plan acties hele rit'\"\n (click)=\"planAlleRitActies()\">\n </button>\n </div>\n </div>\n</div>\n", styles: [".panes-container{display:inline;height:100%;border:1px solid black}table{width:100%}th{padding:5px;z-index:1000}td{padding:4px}tr:nth-child(2n){background:#f0f0f0}tr:nth-child(odd){background:#fff}.top-pane{height:45vh;overflow:auto}.actie-pane{height:35vh;overflow:auto}.knop-pane{height:5vh;justify-content:center;display:flex;align-items:center}.panes-container,.panes-separator,.top-pane,.actie-pane{margin:0;padding:0;width:100%}.selected{background:#ffff80!important}.disabled{background:gray!important}.visible-outside-window{background:#87cefa!important}.table-scroll-header-fix tbody{display:block;height:40vh;overflow:auto}.tableFixHead{overflow-y:auto}.tableFixHead thead th{position:sticky;top:0;background-color:#fff}.table{margin-bottom:0}.table td,.table th{border-top:none;border-bottom:none;padding-left:.75em}\n"] }]
1881
3291
  }], ctorParameters: () => [{ type: i2$1.Store }, { type: SignaleringsBeeldManagerService }], propDecorators: { nietGeplandeActies: [{
@@ -1975,10 +3385,10 @@ class RitdelenViewComponent {
1975
3385
  }
1976
3386
  return false;
1977
3387
  }
1978
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RitdelenViewComponent, deps: [{ token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
1979
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: RitdelenViewComponent, selector: "ritdelen-view", outputs: { focusEmitter: "focusEmitter" }, host: { listeners: { "window:keyup": "keyEvent($event)" } }, ngImport: i0, template: "<div id=\"ritdelen-lijst\">\n <div class=\"sidebar-header\">\n <h3>Ritdetails view</h3>\n </div>\n <div class=\"panes-container\">\n <div class=\"top-pane tableFixHead\" id=\"top-pane\">\n <table class=\"table\" aria-hidden=\"true\">\n <thead>\n <tr>\n <th scope=\"col\"></th>\n <th scope=\"col\" colspan=\"2\" style=\"text-align:center;\">Spoor</th>\n <th scope=\"col\"></th>\n <th scope=\"col\" colspan=\"2\" style=\"text-align:center;\">Sein</th>\n <th scope=\"col\"></th>\n <th scope=\"col\"></th>\n </tr>\n <tr>\n <th scope=\"col\"></th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Naar</th>\n <th scope=\"col\">DW</th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Naar</th>\n <th scope=\"col\">Treinnummer</th>\n <th scope=\"col\"></th>\n </tr>\n </thead>\n\n <tr *ngFor=\"let ritdeelViewModel of ritdeelViewModels; let i = index\"\n class=\"{{ selectedRitdeelClass(ritdeelViewModel.ritdeel) }}\" id=\"ritdetails-r{{i}}\">\n <td id=\"ritdetails-r{{i}}-gewijzigd\" (click)=\"selectRitdeel(i)\"></td>\n <td id=\"ritdetails-r{{i}}-vanSpoor\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.vanPrlSpoor}}</td>\n <td id=\"ritdetails-r{{i}}-naarSpoor\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.naarPrlSpoor}}</td>\n <td id=\"ritdetails-r{{i}}-dwangNummer\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.dwangNummer}}</td>\n <td id=\"ritdetails-r{{i}}-vanSeinName\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.vanSeinName}}</td>\n <td id=\"ritdetails-r{{i}}-naarSeinName\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.naarSeinName}}</td>\n <td id=\"ritdetails-r{{i}}-treinNummer\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.treinNummer}}</td>\n <td style=\"text-align:right\">\n </td>\n </tr>\n </table>\n </div>\n </div>\n</div>\n", styles: [".panes-container{display:inline;height:100%}table{width:100%}th,td{padding:5px}tr:nth-child(2n){background:#f0f0f0}tr:nth-child(odd){background:#fff}.top-pane{height:90vh;overflow:auto}.panes-container,.panes-separator,.top-pane{margin:0;padding:0;width:100%}.selected{background:#ffff80!important}.disabled{background:gray!important}.visible-outside-window{background:#87cefa!important}.table-scroll-header-fix tbody{display:block;height:40vh;overflow:auto}.tableFixHead{overflow-y:auto}.tableFixHead thead th{position:sticky;top:0;background-color:#fff}.table{margin-bottom:0}.table td,.table th{border-top:none;border-bottom:none;padding-left:.75em}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
3388
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RitdelenViewComponent, deps: [{ token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
3389
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: RitdelenViewComponent, selector: "ritdelen-view", outputs: { focusEmitter: "focusEmitter" }, host: { listeners: { "window:keyup": "keyEvent($event)" } }, ngImport: i0, template: "<div id=\"ritdelen-lijst\">\n <div class=\"sidebar-header\">\n <h3>Ritdetails view</h3>\n </div>\n <div class=\"panes-container\">\n <div class=\"top-pane tableFixHead\" id=\"top-pane\">\n <table class=\"table\" aria-hidden=\"true\">\n <thead>\n <tr>\n <th scope=\"col\"></th>\n <th scope=\"col\" colspan=\"2\" style=\"text-align:center;\">Spoor</th>\n <th scope=\"col\"></th>\n <th scope=\"col\" colspan=\"2\" style=\"text-align:center;\">Sein</th>\n <th scope=\"col\"></th>\n <th scope=\"col\"></th>\n </tr>\n <tr>\n <th scope=\"col\"></th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Naar</th>\n <th scope=\"col\">DW</th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Naar</th>\n <th scope=\"col\">Treinnummer</th>\n <th scope=\"col\"></th>\n </tr>\n </thead>\n\n <tr *ngFor=\"let ritdeelViewModel of ritdeelViewModels; let i = index\"\n class=\"{{ selectedRitdeelClass(ritdeelViewModel.ritdeel) }}\" id=\"ritdetails-r{{i}}\">\n <td id=\"ritdetails-r{{i}}-gewijzigd\" (click)=\"selectRitdeel(i)\"></td>\n <td id=\"ritdetails-r{{i}}-vanSpoor\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.vanPrlSpoor}}</td>\n <td id=\"ritdetails-r{{i}}-naarSpoor\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.naarPrlSpoor}}</td>\n <td id=\"ritdetails-r{{i}}-dwangNummer\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.dwangNummer}}</td>\n <td id=\"ritdetails-r{{i}}-vanSeinName\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.vanSeinName}}</td>\n <td id=\"ritdetails-r{{i}}-naarSeinName\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.naarSeinName}}</td>\n <td id=\"ritdetails-r{{i}}-treinNummer\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.treinNummer}}</td>\n <td style=\"text-align:right\">\n </td>\n </tr>\n </table>\n </div>\n </div>\n</div>\n", styles: [".panes-container{display:inline;height:100%}table{width:100%}th,td{padding:5px}tr:nth-child(2n){background:#f0f0f0}tr:nth-child(odd){background:#fff}.top-pane{height:90vh;overflow:auto}.panes-container,.panes-separator,.top-pane{margin:0;padding:0;width:100%}.selected{background:#ffff80!important}.disabled{background:gray!important}.visible-outside-window{background:#87cefa!important}.table-scroll-header-fix tbody{display:block;height:40vh;overflow:auto}.tableFixHead{overflow-y:auto}.tableFixHead thead th{position:sticky;top:0;background-color:#fff}.table{margin-bottom:0}.table td,.table th{border-top:none;border-bottom:none;padding-left:.75em}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
1980
3390
  }
1981
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RitdelenViewComponent, decorators: [{
3391
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RitdelenViewComponent, decorators: [{
1982
3392
  type: Component,
1983
3393
  args: [{ selector: 'ritdelen-view', template: "<div id=\"ritdelen-lijst\">\n <div class=\"sidebar-header\">\n <h3>Ritdetails view</h3>\n </div>\n <div class=\"panes-container\">\n <div class=\"top-pane tableFixHead\" id=\"top-pane\">\n <table class=\"table\" aria-hidden=\"true\">\n <thead>\n <tr>\n <th scope=\"col\"></th>\n <th scope=\"col\" colspan=\"2\" style=\"text-align:center;\">Spoor</th>\n <th scope=\"col\"></th>\n <th scope=\"col\" colspan=\"2\" style=\"text-align:center;\">Sein</th>\n <th scope=\"col\"></th>\n <th scope=\"col\"></th>\n </tr>\n <tr>\n <th scope=\"col\"></th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Naar</th>\n <th scope=\"col\">DW</th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Naar</th>\n <th scope=\"col\">Treinnummer</th>\n <th scope=\"col\"></th>\n </tr>\n </thead>\n\n <tr *ngFor=\"let ritdeelViewModel of ritdeelViewModels; let i = index\"\n class=\"{{ selectedRitdeelClass(ritdeelViewModel.ritdeel) }}\" id=\"ritdetails-r{{i}}\">\n <td id=\"ritdetails-r{{i}}-gewijzigd\" (click)=\"selectRitdeel(i)\"></td>\n <td id=\"ritdetails-r{{i}}-vanSpoor\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.vanPrlSpoor}}</td>\n <td id=\"ritdetails-r{{i}}-naarSpoor\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.naarPrlSpoor}}</td>\n <td id=\"ritdetails-r{{i}}-dwangNummer\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.dwangNummer}}</td>\n <td id=\"ritdetails-r{{i}}-vanSeinName\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.vanSeinName}}</td>\n <td id=\"ritdetails-r{{i}}-naarSeinName\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.naarSeinName}}</td>\n <td id=\"ritdetails-r{{i}}-treinNummer\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.treinNummer}}</td>\n <td style=\"text-align:right\">\n </td>\n </tr>\n </table>\n </div>\n </div>\n</div>\n", styles: [".panes-container{display:inline;height:100%}table{width:100%}th,td{padding:5px}tr:nth-child(2n){background:#f0f0f0}tr:nth-child(odd){background:#fff}.top-pane{height:90vh;overflow:auto}.panes-container,.panes-separator,.top-pane{margin:0;padding:0;width:100%}.selected{background:#ffff80!important}.disabled{background:gray!important}.visible-outside-window{background:#87cefa!important}.table-scroll-header-fix tbody{display:block;height:40vh;overflow:auto}.tableFixHead{overflow-y:auto}.tableFixHead thead th{position:sticky;top:0;background-color:#fff}.table{margin-bottom:0}.table td,.table th{border-top:none;border-bottom:none;padding-left:.75em}\n"] }]
1984
3394
  }], ctorParameters: () => [{ type: i2$1.Store }], propDecorators: { focusEmitter: [{
@@ -1999,49 +3409,18 @@ class RitdeelViewModel {
1999
3409
  }
2000
3410
  }
2001
3411
 
2002
- class CarouselControlsComponent {
2003
- constructor(store) {
2004
- this.store = store;
2005
- this.paginationSize = 4;
2006
- this.ritdelen$ = this.store.select('ritDelen').pipe(filter(r => r?.length > 0));
2007
- this.kanLinks$ = this.ritdelen$.pipe(map(r => this.kanLinksNavigeren(r)));
2008
- this.kanRechts$ = this.ritdelen$.pipe(map(r => this.kanRechtsNavigeren(r)));
2009
- }
2010
- kanLinksNavigeren(ritDelen) {
2011
- return ritDelen.length > this.paginationSize && !ritDelen[0].isBinnenWindow();
2012
- }
2013
- kanRechtsNavigeren(ritDelen) {
2014
- return ritDelen.length > this.paginationSize && !ritDelen[ritDelen.length - 1].isBinnenWindow();
2015
- }
2016
- navigeerNaarLinks(event) {
2017
- this.store.dispatch(navigeer(event?.ctrlKey ? -1 : -(this.paginationSize - 1), this.paginationSize, this.iaversieinfo));
2018
- }
2019
- navigeerNaarRechts(event) {
2020
- this.store.dispatch(navigeer(event?.ctrlKey ? 1 : this.paginationSize - 1, this.paginationSize, this.iaversieinfo));
2021
- }
2022
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CarouselControlsComponent, deps: [{ token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
2023
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: CarouselControlsComponent, selector: "carousel-controls", inputs: { paginationSize: "paginationSize", iaversieinfo: "iaversieinfo", sideNavOpen: "sideNavOpen" }, ngImport: i0, template: "<div *ngIf=\"ritdelen$ | async\">\n <a class=\"loxia-carousel-control-prev\" [ngClass]=\"(sideNavOpen)?'carousel-sidebar-open':'carousel-sidebar'\" role=\"button\"\n data-slide=\"prev\" (click)=\"navigeerNaarLinks($event)\" [hidden]=\"(kanLinks$ | async) === false\">\n <span id=\"previous-page\" class=\"loxia-carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"loxia-sr-only\">Previous</span>\n</a>\n <a class=\"loxia-carousel-control-next\" style=\"width: 2%;\" role=\"button\" data-slide=\"next\" (click)=\"navigeerNaarRechts($event)\"\n [hidden]=\"(kanRechts$ | async) === false\">\n <span id=\"next-page\" class=\"loxia-carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"loxia-sr-only\">Next</span>\n </a>\n</div>\n", styles: [".loxia-carousel-control-prev{left:0}.loxia-carousel-control-next{right:0}.loxia-carousel-control-next-icon,.loxia-carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:50%/100% 100% no-repeat}.loxia-carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\")}.loxia-carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\")}.loxia-carousel-control-next:focus,.loxia-carousel-control-next:hover,.loxia-carousel-control-prev:focus,.loxia-carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.loxia-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.loxia-carousel-control-next,.loxia-carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}.carousel-sidebar{width:2%}.carousel-sidebar-open{width:2%;transition:all .3s;left:470px}[hidden]{display:none!important}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
2024
- }
2025
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CarouselControlsComponent, decorators: [{
2026
- type: Component,
2027
- args: [{ selector: 'carousel-controls', template: "<div *ngIf=\"ritdelen$ | async\">\n <a class=\"loxia-carousel-control-prev\" [ngClass]=\"(sideNavOpen)?'carousel-sidebar-open':'carousel-sidebar'\" role=\"button\"\n data-slide=\"prev\" (click)=\"navigeerNaarLinks($event)\" [hidden]=\"(kanLinks$ | async) === false\">\n <span id=\"previous-page\" class=\"loxia-carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"loxia-sr-only\">Previous</span>\n</a>\n <a class=\"loxia-carousel-control-next\" style=\"width: 2%;\" role=\"button\" data-slide=\"next\" (click)=\"navigeerNaarRechts($event)\"\n [hidden]=\"(kanRechts$ | async) === false\">\n <span id=\"next-page\" class=\"loxia-carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"loxia-sr-only\">Next</span>\n </a>\n</div>\n", styles: [".loxia-carousel-control-prev{left:0}.loxia-carousel-control-next{right:0}.loxia-carousel-control-next-icon,.loxia-carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:50%/100% 100% no-repeat}.loxia-carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\")}.loxia-carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\")}.loxia-carousel-control-next:focus,.loxia-carousel-control-next:hover,.loxia-carousel-control-prev:focus,.loxia-carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.loxia-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.loxia-carousel-control-next,.loxia-carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}.carousel-sidebar{width:2%}.carousel-sidebar-open{width:2%;transition:all .3s;left:470px}[hidden]{display:none!important}\n"] }]
2028
- }], ctorParameters: () => [{ type: i2$1.Store }], propDecorators: { paginationSize: [{
2029
- type: Input
2030
- }], iaversieinfo: [{
2031
- type: Input
2032
- }], sideNavOpen: [{
2033
- type: Input
2034
- }] } });
2035
-
2036
3412
  class ViewerControlsComponent {
2037
3413
  constructor(store, viewerControlsService, bewegingUtils) {
2038
3414
  this.store = store;
2039
3415
  this.viewerControlsService = viewerControlsService;
2040
3416
  this.bewegingUtils = bewegingUtils;
2041
3417
  this.paginationSize = 4;
3418
+ this.treinpad = undefined;
3419
+ this.goedgekeurd = new EventEmitter();
2042
3420
  this.printing$ = this.viewerControlsService.isPrinting$();
2043
3421
  this.valideRit$ = this.viewerControlsService.isValideRit$();
2044
3422
  this.subscriptions = new Subscription();
3423
+ this.editable = false;
2045
3424
  this.subscriptions.add(this.store.select('editable').subscribe(editable => this.editable = editable));
2046
3425
  }
2047
3426
  ngOnChanges({ treinpad }) {
@@ -2050,27 +3429,26 @@ class ViewerControlsComponent {
2050
3429
  }
2051
3430
  }
2052
3431
  showGoedkeuren() {
2053
- return this.editable && this.viewerControlsService.selectieInfos.length !== 0;
3432
+ return this.editable;
2054
3433
  }
2055
3434
  goedkeurenClick() {
2056
- const ritDelen = this.viewerControlsService.ritdelen;
2057
- if (ritDelen) {
2058
- delete this.treinpad.aantalRitActies;
2059
- this.treinpad.bewegingen = this.bewegingUtils.extractBewegingenUitRitdelen(ritDelen, this.viewerControlsService.origineelTreinPad.bewegingen);
2060
- this.goedgekeurd.emit(this.treinpad);
2061
- this.viewerControlsService.setOrigineelTreinPad(this.treinpad);
2062
- }
3435
+ this.store.select('ritDelen').pipe(filter(ritdelen => !!ritdelen), tap(ritDelen => {
3436
+ if (this.treinpad) {
3437
+ delete this.treinpad.aantalRitActies;
3438
+ this.treinpad.bewegingen = this.bewegingUtils.extractBewegingenUitRitdelen(ritDelen, this.viewerControlsService.origineelTreinPad.bewegingen);
3439
+ this.goedgekeurd.emit(this.treinpad);
3440
+ this.viewerControlsService.setOrigineelTreinPad(this.treinpad);
3441
+ }
3442
+ })).subscribe();
2063
3443
  }
2064
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ViewerControlsComponent, deps: [{ token: i2$1.Store }, { token: ViewerControlService }, { token: BewegingUtils }], target: i0.ɵɵFactoryTarget.Component }); }
2065
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: ViewerControlsComponent, selector: "viewer-controls", inputs: { paginationSize: "paginationSize", iaversieinfo: "iaversieinfo", treinpad: "treinpad", goedgekeurd: "goedgekeurd" }, usesOnChanges: true, ngImport: i0, template: "<button id=\"toonSideNavKnop\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm open-sidenav-button\"\n (click)=\"viewerControlsService.toggleSideNavVisible()\"\n [class.active]=\"viewerControlsService.sideNavOpen$ | async\"\n [hidden]=\"printing$ | async\">Ritdetails\n</button>\n<button *ngIf=\"showGoedkeuren()\"\n id=\"goedkeurenKnop\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm goedkeuren-button\"\n (click)=\"goedkeurenClick()\"\n [disabled]=\"(valideRit$ | async ) === false\"\n [hidden]=\"printing$ | async\">Goedkeuren\n</button>\n\n<carousel-controls [paginationSize]=\"paginationSize\"\n [iaversieinfo]=\"iaversieinfo\"\n [sideNavOpen]=\"viewerControlsService.sideNavOpen$ | async\">\n</carousel-controls>\n", styles: [".open-sidenav-button.active{visibility:hidden}.open-sidenav-button,.goedkeuren-button{position:absolute;top:15px;z-index:600}.open-sidenav-button{left:15px}.goedkeuren-button{right:15px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CarouselControlsComponent, selector: "carousel-controls", inputs: ["paginationSize", "iaversieinfo", "sideNavOpen"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
3444
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ViewerControlsComponent, deps: [{ token: i2$1.Store }, { token: ViewerControlService }, { token: BewegingUtils }], target: i0.ɵɵFactoryTarget.Component }); }
3445
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ViewerControlsComponent, selector: "viewer-controls", inputs: { paginationSize: "paginationSize", treinpad: "treinpad", goedgekeurd: "goedgekeurd" }, usesOnChanges: true, ngImport: i0, template: "<button id=\"toonSideNavKnop\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm open-sidenav-button\"\n (click)=\"viewerControlsService.toggleSideNavVisible()\"\n [class.active]=\"viewerControlsService.sideNavOpen$ | async\"\n [hidden]=\"printing$ | async\">Ritdetails\n</button>\n<button *ngIf=\"showGoedkeuren()\"\n id=\"goedkeurenKnop\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm goedkeuren-button\"\n (click)=\"goedkeurenClick()\"\n [disabled]=\"(valideRit$ | async ) === false\"\n [hidden]=\"printing$ | async\">Goedkeuren\n</button>\n\n<carousel-controls [paginationSize]=\"paginationSize\"\n [sideNavOpen]=\"viewerControlsService.sideNavOpen$ | async\">\n</carousel-controls>\n", styles: [".open-sidenav-button.active{visibility:hidden}.open-sidenav-button,.goedkeuren-button{position:absolute;top:15px;z-index:600}.open-sidenav-button{left:15px}.goedkeuren-button{right:15px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CarouselControlsComponent, selector: "carousel-controls", inputs: ["paginationSize", "sideNavOpen"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
2066
3446
  }
2067
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ViewerControlsComponent, decorators: [{
3447
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ViewerControlsComponent, decorators: [{
2068
3448
  type: Component,
2069
- args: [{ selector: 'viewer-controls', template: "<button id=\"toonSideNavKnop\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm open-sidenav-button\"\n (click)=\"viewerControlsService.toggleSideNavVisible()\"\n [class.active]=\"viewerControlsService.sideNavOpen$ | async\"\n [hidden]=\"printing$ | async\">Ritdetails\n</button>\n<button *ngIf=\"showGoedkeuren()\"\n id=\"goedkeurenKnop\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm goedkeuren-button\"\n (click)=\"goedkeurenClick()\"\n [disabled]=\"(valideRit$ | async ) === false\"\n [hidden]=\"printing$ | async\">Goedkeuren\n</button>\n\n<carousel-controls [paginationSize]=\"paginationSize\"\n [iaversieinfo]=\"iaversieinfo\"\n [sideNavOpen]=\"viewerControlsService.sideNavOpen$ | async\">\n</carousel-controls>\n", styles: [".open-sidenav-button.active{visibility:hidden}.open-sidenav-button,.goedkeuren-button{position:absolute;top:15px;z-index:600}.open-sidenav-button{left:15px}.goedkeuren-button{right:15px}\n"] }]
3449
+ args: [{ selector: 'viewer-controls', template: "<button id=\"toonSideNavKnop\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm open-sidenav-button\"\n (click)=\"viewerControlsService.toggleSideNavVisible()\"\n [class.active]=\"viewerControlsService.sideNavOpen$ | async\"\n [hidden]=\"printing$ | async\">Ritdetails\n</button>\n<button *ngIf=\"showGoedkeuren()\"\n id=\"goedkeurenKnop\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm goedkeuren-button\"\n (click)=\"goedkeurenClick()\"\n [disabled]=\"(valideRit$ | async ) === false\"\n [hidden]=\"printing$ | async\">Goedkeuren\n</button>\n\n<carousel-controls [paginationSize]=\"paginationSize\"\n [sideNavOpen]=\"viewerControlsService.sideNavOpen$ | async\">\n</carousel-controls>\n", styles: [".open-sidenav-button.active{visibility:hidden}.open-sidenav-button,.goedkeuren-button{position:absolute;top:15px;z-index:600}.open-sidenav-button{left:15px}.goedkeuren-button{right:15px}\n"] }]
2070
3450
  }], ctorParameters: () => [{ type: i2$1.Store }, { type: ViewerControlService }, { type: BewegingUtils }], propDecorators: { paginationSize: [{
2071
3451
  type: Input
2072
- }], iaversieinfo: [{
2073
- type: Input
2074
3452
  }], treinpad: [{
2075
3453
  type: Input
2076
3454
  }], goedgekeurd: [{
@@ -2125,7 +3503,7 @@ class ActiePopoverBepaler {
2125
3503
  ongeplandeActies.entries.forEach(entry => {
2126
3504
  const treinNummerActieInfos = puicNaarOngeplandeActieMap.get(entry.key);
2127
3505
  if (!treinNummerActieInfos?.map(({ actie }) => actie).includes(entry.value.actie)) {
2128
- puicNaarOngeplandeActieMap.put(entry.key, { treinNummer: undefined, actie: entry.value.actie });
3506
+ puicNaarOngeplandeActieMap.put(entry.key, { actie: entry.value.actie });
2129
3507
  }
2130
3508
  });
2131
3509
  }
@@ -2185,12 +3563,16 @@ class SvgVisualisatieComponent {
2185
3563
  this.actieHelper = actieHelper;
2186
3564
  this.sbmService = sbmService;
2187
3565
  this.editorService = editorService;
3566
+ this.nietGeplandeActies = [];
3567
+ this.useClickArea = false;
2188
3568
  this.svgInfos$ = this.store.select('svgInfos');
2189
3569
  this.popoverInfos = [];
2190
3570
  this.clickableIds = [];
3571
+ this.selectieInfos$ = this.store.select('selectieInfos');
2191
3572
  this.rightClickableIds = [];
2192
3573
  this.contextMenuActions = [];
2193
3574
  this.contextMenuStyle = { display: 'none' };
3575
+ this.editable = false;
2194
3576
  this.puicNaarBeginSeinRitdeel = new Map();
2195
3577
  this.puicNaarEindSeinCombinatie = new Map();
2196
3578
  this.puicNaarAlternatieveRoute = new Map();
@@ -2214,7 +3596,7 @@ class SvgVisualisatieComponent {
2214
3596
  }));
2215
3597
  }
2216
3598
  ngOnInit() {
2217
- document.getElementById('contextMenu').addEventListener('mouseleave', () => this.hideContextMenu());
3599
+ document.getElementById('contextMenu')?.addEventListener('mouseleave', () => this.hideContextMenu());
2218
3600
  }
2219
3601
  ngOnDestroy() {
2220
3602
  this.subscriptions.forEach(s => s.unsubscribe());
@@ -2241,7 +3623,6 @@ class SvgVisualisatieComponent {
2241
3623
  this.store.dispatch(navigeerBuitenRit(puic));
2242
3624
  }
2243
3625
  }
2244
- this.store.dispatch(SetSelectedRitdeel(undefined));
2245
3626
  }
2246
3627
  handleImxviewRightClick(evt) {
2247
3628
  const fn = () => {
@@ -2272,7 +3653,7 @@ class SvgVisualisatieComponent {
2272
3653
  handleNieuweRouteToegevoegd() {
2273
3654
  this.store.select('nieuweRoute')
2274
3655
  .subscribe((nieuweRoute) => {
2275
- if (nieuweRoute.isValid()) {
3656
+ if (nieuweRoute?.isValid()) {
2276
3657
  this.store.dispatch(ResetNieuweRoute());
2277
3658
  this.store.dispatch(ritdeelInvoegen(nieuweRoute));
2278
3659
  }
@@ -2385,7 +3766,7 @@ class SvgVisualisatieComponent {
2385
3766
  });
2386
3767
  this.viewerControlsService.setValideRit(!gebrokenRit);
2387
3768
  this.store.dispatch(SetGeplandeActies(actieOpRitSelectiePuics));
2388
- const actieOpRitSelectiePuicsArray = Utils.flatMap(Array.from(actieOpRitSelectiePuics.values()), x => x);
3769
+ const actieOpRitSelectiePuicsArray = Array.from(actieOpRitSelectiePuics.values()).flat();
2389
3770
  this.store.dispatch(SetActieOpRitSelectieIds(actieOpRitSelectiePuicsArray));
2390
3771
  ritSelectiePuics = ritSelectiePuics.filter(item => actieOpRitSelectiePuicsArray.indexOf(item) < 0); // make mutually exclusive
2391
3772
  this.store.dispatch(SetRitSelectieIds(ritSelectiePuics));
@@ -2418,12 +3799,12 @@ class SvgVisualisatieComponent {
2418
3799
  getPuics(topoElementen) {
2419
3800
  return topoElementen.map(e => e.getPuic());
2420
3801
  }
2421
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SvgVisualisatieComponent, deps: [{ token: i2$1.Store }, { token: ViewerControlService }, { token: ActieHelper }, { token: SignaleringsBeeldManagerService }, { token: EditorService }], target: i0.ɵɵFactoryTarget.Component }); }
2422
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: SvgVisualisatieComponent, selector: "svg-visualisatie", inputs: { nietGeplandeActies: "nietGeplandeActies", useClickArea: "useClickArea" }, viewQueries: [{ propertyName: "imxviewer", first: true, predicate: ["imxviewercontainer"], descendants: true }], ngImport: i0, template: "<imx-viewer #imxviewercontainer\n [svgInfo]=\"svgInfos$ | async\"\n [selectieInfos]=\"viewerControlsService.selectieInfos\"\n [clickableIds]=\"clickableIds\"\n [rightClickableIds]=\"rightClickableIds\"\n [popoverInfos]=\"popoverInfos\"\n [inlineDgnCssImport]=\"false\"\n [useClickArea]=\"useClickArea\"\n [zoomScaleSensitivity]=\"0.25\"\n (clickHandler)=\"handleImxviewClick($event)\"\n (rightClickHandler)=\"handleImxviewRightClick($event)\"\n ></imx-viewer>\n\n<ul id=\"contextMenu\" class=\"dropdown-menu\" role=\"menu\" [ngStyle]=\"contextMenuStyle\">\n <li *ngFor=\"let action of contextMenuActions\"><a class=\"dropdown-item\" tabindex=\"-1\"\n (click)=\"action.click()\">{{action.label}}</a></li>\n</ul>\n", styles: [".dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i7.ImxViewerComponent, selector: "imx-viewer", inputs: ["useClickArea", "inlineDgnCssImport", "svgInfo", "selectieInfos", "clickableIds", "rightClickableIds", "popoverInfos", "zoomScaleSensitivity", "autoAlignSvgsHorizontally", "initialPanAndZoom"], outputs: ["clickHandler", "rightClickHandler", "svgLoaded", "panned"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
3802
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SvgVisualisatieComponent, deps: [{ token: i2$1.Store }, { token: ViewerControlService }, { token: ActieHelper }, { token: SignaleringsBeeldManagerService }, { token: EditorService }], target: i0.ɵɵFactoryTarget.Component }); }
3803
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SvgVisualisatieComponent, selector: "svg-visualisatie", inputs: { nietGeplandeActies: "nietGeplandeActies", useClickArea: "useClickArea" }, viewQueries: [{ propertyName: "imxviewer", first: true, predicate: ["imxviewercontainer"], descendants: true }], ngImport: i0, template: "<imx-viewer #imxviewercontainer\n [svgInfo]=\"svgInfos$ | async\"\n [selectieInfos]=\"selectieInfos$ | async\"\n [clickableIds]=\"clickableIds\"\n [rightClickableIds]=\"rightClickableIds\"\n [popoverInfos]=\"popoverInfos\"\n [inlineDgnCssImport]=\"false\"\n [useClickArea]=\"useClickArea\"\n [zoomScaleSensitivity]=\"0.25\"\n (clickHandler)=\"handleImxviewClick($event)\"\n (rightClickHandler)=\"handleImxviewRightClick($event)\"\n ></imx-viewer>\n\n<ul id=\"contextMenu\" class=\"dropdown-menu\" role=\"menu\" [ngStyle]=\"contextMenuStyle\">\n <li *ngFor=\"let action of contextMenuActions\"><a class=\"dropdown-item\" tabindex=\"-1\"\n (click)=\"action.click()\">{{action.label}}</a></li>\n</ul>\n", styles: [".dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i7.ImxViewerComponent, selector: "imx-viewer", inputs: ["useClickArea", "inlineDgnCssImport", "svgInfo", "selectieInfos", "clickableIds", "rightClickableIds", "popoverInfos", "zoomScaleSensitivity", "autoAlignSvgsHorizontally", "initialPanAndZoom"], outputs: ["clickHandler", "rightClickHandler", "svgLoaded", "panned"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
2423
3804
  }
2424
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SvgVisualisatieComponent, decorators: [{
3805
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SvgVisualisatieComponent, decorators: [{
2425
3806
  type: Component,
2426
- args: [{ selector: 'svg-visualisatie', template: "<imx-viewer #imxviewercontainer\n [svgInfo]=\"svgInfos$ | async\"\n [selectieInfos]=\"viewerControlsService.selectieInfos\"\n [clickableIds]=\"clickableIds\"\n [rightClickableIds]=\"rightClickableIds\"\n [popoverInfos]=\"popoverInfos\"\n [inlineDgnCssImport]=\"false\"\n [useClickArea]=\"useClickArea\"\n [zoomScaleSensitivity]=\"0.25\"\n (clickHandler)=\"handleImxviewClick($event)\"\n (rightClickHandler)=\"handleImxviewRightClick($event)\"\n ></imx-viewer>\n\n<ul id=\"contextMenu\" class=\"dropdown-menu\" role=\"menu\" [ngStyle]=\"contextMenuStyle\">\n <li *ngFor=\"let action of contextMenuActions\"><a class=\"dropdown-item\" tabindex=\"-1\"\n (click)=\"action.click()\">{{action.label}}</a></li>\n</ul>\n", styles: [".dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}\n"] }]
3807
+ args: [{ selector: 'svg-visualisatie', template: "<imx-viewer #imxviewercontainer\n [svgInfo]=\"svgInfos$ | async\"\n [selectieInfos]=\"selectieInfos$ | async\"\n [clickableIds]=\"clickableIds\"\n [rightClickableIds]=\"rightClickableIds\"\n [popoverInfos]=\"popoverInfos\"\n [inlineDgnCssImport]=\"false\"\n [useClickArea]=\"useClickArea\"\n [zoomScaleSensitivity]=\"0.25\"\n (clickHandler)=\"handleImxviewClick($event)\"\n (rightClickHandler)=\"handleImxviewRightClick($event)\"\n ></imx-viewer>\n\n<ul id=\"contextMenu\" class=\"dropdown-menu\" role=\"menu\" [ngStyle]=\"contextMenuStyle\">\n <li *ngFor=\"let action of contextMenuActions\"><a class=\"dropdown-item\" tabindex=\"-1\"\n (click)=\"action.click()\">{{action.label}}</a></li>\n</ul>\n", styles: [".dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}\n"] }]
2427
3808
  }], ctorParameters: () => [{ type: i2$1.Store }, { type: ViewerControlService }, { type: ActieHelper }, { type: SignaleringsBeeldManagerService }, { type: EditorService }], propDecorators: { nietGeplandeActies: [{
2428
3809
  type: Input
2429
3810
  }], useClickArea: [{
@@ -2441,6 +3822,9 @@ class MstviewerComponent {
2441
3822
  this.printBewegingService = printBewegingService;
2442
3823
  this.paginationSize = 4;
2443
3824
  this.baseurl = 'https://acceptatie.raildesign.nl';
3825
+ this.debug = false;
3826
+ this.viewer = false;
3827
+ this.useClickArea = false;
2444
3828
  this.goedgekeurd = new EventEmitter();
2445
3829
  this.subscriptions = new Subscription();
2446
3830
  this.subscriptions.add(this.store.select('nieuweBewegingen').subscribe(nieuweRit => {
@@ -2491,23 +3875,26 @@ class MstviewerComponent {
2491
3875
  }
2492
3876
  }
2493
3877
  printFocusBeweging(bewegingId) {
2494
- return this.printBewegingService.printBeweging(bewegingId, this.paginationSize, this.iaversieinfo);
3878
+ return this.printBewegingService.printBeweging(bewegingId, this.paginationSize);
2495
3879
  }
2496
3880
  keurAlleActiesGoed() {
2497
3881
  this.viewerControlsService.keurAlleActiesGoed(this.ongeplandeActies);
2498
3882
  }
2499
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MstviewerComponent, deps: [{ token: i2$1.Store }, { token: ViewerControlService }, { token: DebugService }, { token: PrintBewegingService }], target: i0.ɵɵFactoryTarget.Component }); }
2500
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: MstviewerComponent, selector: "mst-viewer", inputs: { iaversieinfo: "iaversieinfo", treinpad: "treinpad", ongeplandeActies: "ongeplandeActies", paginationSize: "paginationSize", baseurl: "baseurl", debug: "debug", viewer: "viewer", useClickArea: "useClickArea" }, outputs: { goedgekeurd: "goedgekeurd" }, usesOnChanges: true, ngImport: i0, template: "<loxia-messages></loxia-messages>\n<loxia-overlay *ngIf=\"(progressIndicator$ | async)\">\n <loxia-progress-indicator id=\"progress-indicator\" [border]=\"false\" upperText=\"\">\n </loxia-progress-indicator>\n</loxia-overlay>\n\n<div style=\"position: relative\">\n <rpe-component [baseurl]=\"baseurl\" path=\"/mst/editor/editor.nocache.js\"></rpe-component>\n\n <svg-visualisatie [useClickArea]=\"useClickArea\" [nietGeplandeActies]=\"ongeplandeActies\"></svg-visualisatie>\n\n <nav [class.active]=\"(viewerControlsService.sideNavOpen$ | async) === false\" id=\"sidebar\">\n <div id=\"dismiss\">\n <em id=\"verbergSideNav\" class=\"fa fa-arrow-left\" (click)=\"viewerControlsService.toggleSideNavVisible()\">&times;</em>\n </div>\n <ritdelen-lijst *ngIf=\"!viewer\" (focusEmitter)=\"focusRitdeel($event)\" (keurAlleActiesGoed)=\"keurAlleActiesGoed()\"\n [nietGeplandeActies]=\"ongeplandeActies\"></ritdelen-lijst>\n <ritdelen-view *ngIf=\"viewer\" (focusEmitter)=\"focusRitdeel($event)\"></ritdelen-view>\n </nav>\n\n <viewer-controls [paginationSize]=\"paginationSize\"\n [iaversieinfo]=\"iaversieinfo\"\n [treinpad]=\"treinpad\"\n [goedgekeurd]=\"goedgekeurd\"\n ></viewer-controls>\n\n</div>\n", styles: ["#sidebar{min-width:350px;max-width:475px;background:#fff;transition:all .3s;height:93vh;position:absolute;top:0;z-index:20}#sidebar.active{margin-left:-475px}#sidebar .sidebar-header{padding:20px;background:#6d7fcc}#dismiss{width:20px;height:20px;position:absolute;cursor:pointer;top:5px;right:0;color:#000;z-index:300}[hidden]{display:none}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: OverlayComponent, selector: "loxia-overlay" }, { kind: "component", type: ProgressIndicatorComponent, selector: "loxia-progress-indicator" }, { kind: "component", type: RpeComponent, selector: "rpe-component", inputs: ["baseurl", "path"] }, { kind: "component", type: RitdelenLijstComponent, selector: "ritdelen-lijst", inputs: ["nietGeplandeActies"], outputs: ["focusEmitter", "keurAlleActiesGoed"] }, { kind: "component", type: RitdelenViewComponent, selector: "ritdelen-view", outputs: ["focusEmitter"] }, { kind: "component", type: ViewerControlsComponent, selector: "viewer-controls", inputs: ["paginationSize", "iaversieinfo", "treinpad", "goedgekeurd"] }, { kind: "component", type: SvgVisualisatieComponent, selector: "svg-visualisatie", inputs: ["nietGeplandeActies", "useClickArea"] }, { kind: "component", type: MessagesComponent, selector: "loxia-messages" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
3883
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MstviewerComponent, deps: [{ token: i2$1.Store }, { token: ViewerControlService }, { token: DebugService }, { token: PrintBewegingService }], target: i0.ɵɵFactoryTarget.Component }); }
3884
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MstviewerComponent, selector: "mst-viewer", inputs: { iaversieinfo: "iaversieinfo", treinpad: "treinpad", ongeplandeActies: "ongeplandeActies", paginationSize: "paginationSize", baseurl: "baseurl", debug: "debug", viewer: "viewer", useClickArea: "useClickArea" }, outputs: { goedgekeurd: "goedgekeurd" }, usesOnChanges: true, ngImport: i0, template: "<loxia-messages></loxia-messages>\n<loxia-overlay *ngIf=\"(progressIndicator$ | async)\">\n <loxia-progress-indicator id=\"progress-indicator\" [border]=\"false\" upperText=\"\">\n </loxia-progress-indicator>\n</loxia-overlay>\n\n<div style=\"position: relative\">\n <rpe-component [baseurl]=\"baseurl\" path=\"/mst/editor/editor.nocache.js\"></rpe-component>\n\n <svg-visualisatie [useClickArea]=\"useClickArea\" [nietGeplandeActies]=\"ongeplandeActies\"></svg-visualisatie>\n\n <nav [class.active]=\"(viewerControlsService.sideNavOpen$ | async) === false\" id=\"sidebar\">\n <div id=\"dismiss\">\n <em id=\"verbergSideNav\" class=\"fa fa-arrow-left\" (click)=\"viewerControlsService.toggleSideNavVisible()\">&times;</em>\n </div>\n <ritdelen-lijst *ngIf=\"!viewer\" (focusEmitter)=\"focusRitdeel($event)\" (keurAlleActiesGoed)=\"keurAlleActiesGoed()\"\n [nietGeplandeActies]=\"ongeplandeActies\"></ritdelen-lijst>\n <ritdelen-view *ngIf=\"viewer\" (focusEmitter)=\"focusRitdeel($event)\"></ritdelen-view>\n </nav>\n\n <viewer-controls [paginationSize]=\"paginationSize\"\n [treinpad]=\"treinpad\"\n [goedgekeurd]=\"goedgekeurd\"\n ></viewer-controls>\n\n</div>\n", styles: ["#sidebar{min-width:350px;max-width:475px;background:#fff;transition:all .3s;height:93vh;position:absolute;top:0;z-index:20}#sidebar.active{margin-left:-475px}#sidebar .sidebar-header{padding:20px;background:#6d7fcc}#dismiss{width:20px;height:20px;position:absolute;cursor:pointer;top:5px;right:0;color:#000;z-index:300}[hidden]{display:none}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: OverlayComponent, selector: "loxia-overlay" }, { kind: "component", type: ProgressIndicatorComponent, selector: "loxia-progress-indicator" }, { kind: "component", type: RpeComponent, selector: "rpe-component", inputs: ["baseurl", "path"] }, { kind: "component", type: RitdelenLijstComponent, selector: "ritdelen-lijst", inputs: ["nietGeplandeActies"], outputs: ["focusEmitter", "keurAlleActiesGoed"] }, { kind: "component", type: RitdelenViewComponent, selector: "ritdelen-view", outputs: ["focusEmitter"] }, { kind: "component", type: ViewerControlsComponent, selector: "viewer-controls", inputs: ["paginationSize", "treinpad", "goedgekeurd"] }, { kind: "component", type: SvgVisualisatieComponent, selector: "svg-visualisatie", inputs: ["nietGeplandeActies", "useClickArea"] }, { kind: "component", type: MessagesComponent, selector: "loxia-messages" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
2501
3885
  }
2502
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MstviewerComponent, decorators: [{
3886
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MstviewerComponent, decorators: [{
2503
3887
  type: Component,
2504
- args: [{ selector: 'mst-viewer', template: "<loxia-messages></loxia-messages>\n<loxia-overlay *ngIf=\"(progressIndicator$ | async)\">\n <loxia-progress-indicator id=\"progress-indicator\" [border]=\"false\" upperText=\"\">\n </loxia-progress-indicator>\n</loxia-overlay>\n\n<div style=\"position: relative\">\n <rpe-component [baseurl]=\"baseurl\" path=\"/mst/editor/editor.nocache.js\"></rpe-component>\n\n <svg-visualisatie [useClickArea]=\"useClickArea\" [nietGeplandeActies]=\"ongeplandeActies\"></svg-visualisatie>\n\n <nav [class.active]=\"(viewerControlsService.sideNavOpen$ | async) === false\" id=\"sidebar\">\n <div id=\"dismiss\">\n <em id=\"verbergSideNav\" class=\"fa fa-arrow-left\" (click)=\"viewerControlsService.toggleSideNavVisible()\">&times;</em>\n </div>\n <ritdelen-lijst *ngIf=\"!viewer\" (focusEmitter)=\"focusRitdeel($event)\" (keurAlleActiesGoed)=\"keurAlleActiesGoed()\"\n [nietGeplandeActies]=\"ongeplandeActies\"></ritdelen-lijst>\n <ritdelen-view *ngIf=\"viewer\" (focusEmitter)=\"focusRitdeel($event)\"></ritdelen-view>\n </nav>\n\n <viewer-controls [paginationSize]=\"paginationSize\"\n [iaversieinfo]=\"iaversieinfo\"\n [treinpad]=\"treinpad\"\n [goedgekeurd]=\"goedgekeurd\"\n ></viewer-controls>\n\n</div>\n", styles: ["#sidebar{min-width:350px;max-width:475px;background:#fff;transition:all .3s;height:93vh;position:absolute;top:0;z-index:20}#sidebar.active{margin-left:-475px}#sidebar .sidebar-header{padding:20px;background:#6d7fcc}#dismiss{width:20px;height:20px;position:absolute;cursor:pointer;top:5px;right:0;color:#000;z-index:300}[hidden]{display:none}\n"] }]
3888
+ args: [{ selector: 'mst-viewer', template: "<loxia-messages></loxia-messages>\n<loxia-overlay *ngIf=\"(progressIndicator$ | async)\">\n <loxia-progress-indicator id=\"progress-indicator\" [border]=\"false\" upperText=\"\">\n </loxia-progress-indicator>\n</loxia-overlay>\n\n<div style=\"position: relative\">\n <rpe-component [baseurl]=\"baseurl\" path=\"/mst/editor/editor.nocache.js\"></rpe-component>\n\n <svg-visualisatie [useClickArea]=\"useClickArea\" [nietGeplandeActies]=\"ongeplandeActies\"></svg-visualisatie>\n\n <nav [class.active]=\"(viewerControlsService.sideNavOpen$ | async) === false\" id=\"sidebar\">\n <div id=\"dismiss\">\n <em id=\"verbergSideNav\" class=\"fa fa-arrow-left\" (click)=\"viewerControlsService.toggleSideNavVisible()\">&times;</em>\n </div>\n <ritdelen-lijst *ngIf=\"!viewer\" (focusEmitter)=\"focusRitdeel($event)\" (keurAlleActiesGoed)=\"keurAlleActiesGoed()\"\n [nietGeplandeActies]=\"ongeplandeActies\"></ritdelen-lijst>\n <ritdelen-view *ngIf=\"viewer\" (focusEmitter)=\"focusRitdeel($event)\"></ritdelen-view>\n </nav>\n\n <viewer-controls [paginationSize]=\"paginationSize\"\n [treinpad]=\"treinpad\"\n [goedgekeurd]=\"goedgekeurd\"\n ></viewer-controls>\n\n</div>\n", styles: ["#sidebar{min-width:350px;max-width:475px;background:#fff;transition:all .3s;height:93vh;position:absolute;top:0;z-index:20}#sidebar.active{margin-left:-475px}#sidebar .sidebar-header{padding:20px;background:#6d7fcc}#dismiss{width:20px;height:20px;position:absolute;cursor:pointer;top:5px;right:0;color:#000;z-index:300}[hidden]{display:none}\n"] }]
2505
3889
  }], ctorParameters: () => [{ type: i2$1.Store }, { type: ViewerControlService }, { type: DebugService }, { type: PrintBewegingService }], propDecorators: { iaversieinfo: [{
2506
- type: Input
3890
+ type: Input,
3891
+ args: [{ required: true }]
2507
3892
  }], treinpad: [{
2508
- type: Input
3893
+ type: Input,
3894
+ args: [{ required: true }]
2509
3895
  }], ongeplandeActies: [{
2510
- type: Input
3896
+ type: Input,
3897
+ args: [{ required: true }]
2511
3898
  }], paginationSize: [{
2512
3899
  type: Input
2513
3900
  }], baseurl: [{
@@ -2523,24 +3910,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
2523
3910
  }] } });
2524
3911
 
2525
3912
  let SignaleringsbeeldInfoResource = class SignaleringsbeeldInfoResource extends Resource {
2526
- constructor(restHandler, store) {
3913
+ constructor(restHandler, store, sbControllerService) {
2527
3914
  super(restHandler);
3915
+ this.restHandler = restHandler;
2528
3916
  this.store = store;
3917
+ this.sbControllerService = sbControllerService;
2529
3918
  this.subscriptions = new Subscription();
2530
- this.subscriptions.add(this.store.select('baseUrl').subscribe(baseUrl => this.$setUrl(baseUrl)));
3919
+ this.subscriptions.add(this.store.select('baseUrl').subscribe(baseUrl => {
3920
+ this.$setUrl(baseUrl);
3921
+ sbControllerService.configuration.basePath = baseUrl + '/mst';
3922
+ }));
2531
3923
  }
2532
3924
  ngOnDestroy() {
2533
3925
  this.subscriptions.unsubscribe();
2534
3926
  }
2535
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SignaleringsbeeldInfoResource, deps: [{ token: i1.ResourceHandler }, { token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
2536
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SignaleringsbeeldInfoResource }); }
3927
+ laadSignaleringsbeeldInfo(versie, pplgs) {
3928
+ return this.sbControllerService.getSignaleringsbeelden(versie, pplgs);
3929
+ }
3930
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SignaleringsbeeldInfoResource, deps: [{ token: i1$1.ResourceHandler }, { token: i2$1.Store }, { token: SbControllerService }], target: i0.ɵɵFactoryTarget.Injectable }); }
3931
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SignaleringsbeeldInfoResource }); }
2537
3932
  };
2538
- __decorate([
2539
- ResourceAction({
2540
- path: '/',
2541
- method: ResourceRequestMethod.Post
2542
- })
2543
- ], SignaleringsbeeldInfoResource.prototype, "laadSignaleringsbeeldInfo", void 0);
2544
3933
  __decorate([
2545
3934
  ResourceAction({
2546
3935
  path: '/valideeriaversie'
@@ -2551,9 +3940,9 @@ SignaleringsbeeldInfoResource = __decorate([
2551
3940
  pathPrefix: '/mst/rest/signaleringsbeeldeninfo'
2552
3941
  })
2553
3942
  ], SignaleringsbeeldInfoResource);
2554
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SignaleringsbeeldInfoResource, decorators: [{
3943
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SignaleringsbeeldInfoResource, decorators: [{
2555
3944
  type: Injectable
2556
- }], ctorParameters: () => [{ type: i1.ResourceHandler }, { type: i2$1.Store }], propDecorators: { laadSignaleringsbeeldInfo: [], getBestaatIALevering: [] } });
3945
+ }], ctorParameters: () => [{ type: i1$1.ResourceHandler }, { type: i2$1.Store }, { type: SbControllerService }], propDecorators: { getBestaatIALevering: [] } });
2557
3946
  class SignaleringsbeeldInfoDto extends ResourceModel {
2558
3947
  constructor(data) {
2559
3948
  super();
@@ -2581,21 +3970,23 @@ class BaseRestService {
2581
3970
  this.httpClient = httpClient;
2582
3971
  this.store = store;
2583
3972
  this.subscriptions = new Subscription();
3973
+ this.baseUrl = '';
3974
+ this.iaVersie = '';
2584
3975
  this.subscriptions.add(this.store.select('baseUrl').subscribe(baseUrl => this.baseUrl = baseUrl));
2585
3976
  this.subscriptions.add(this.store.select('iaVersie').subscribe(iaVersie => this.iaVersie = iaVersie.versie));
2586
3977
  }
2587
3978
  ngOnDestroy() {
2588
3979
  this.subscriptions.unsubscribe();
2589
3980
  }
2590
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BaseRestService, deps: [{ token: i1$1.HttpClient }, { token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
2591
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BaseRestService, providedIn: 'root' }); }
3981
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaseRestService, deps: [{ token: i1.HttpClient }, { token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
3982
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaseRestService, providedIn: 'root' }); }
2592
3983
  }
2593
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BaseRestService, decorators: [{
3984
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaseRestService, decorators: [{
2594
3985
  type: Injectable,
2595
3986
  args: [{
2596
3987
  providedIn: 'root'
2597
3988
  }]
2598
- }], ctorParameters: () => [{ type: i1$1.HttpClient }, { type: i2$1.Store }] });
3989
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2$1.Store }] });
2599
3990
 
2600
3991
  class BewegingVerrijkerService extends BaseRestService {
2601
3992
  getBewegingen(bewegingen, ongeplandeActies) {
@@ -2611,10 +4002,10 @@ class BewegingVerrijkerService extends BaseRestService {
2611
4002
  this.store.dispatch(ClearProgress());
2612
4003
  return [];
2613
4004
  }
2614
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BewegingVerrijkerService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
2615
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BewegingVerrijkerService, providedIn: 'root' }); }
4005
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BewegingVerrijkerService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
4006
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BewegingVerrijkerService, providedIn: 'root' }); }
2616
4007
  }
2617
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BewegingVerrijkerService, decorators: [{
4008
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BewegingVerrijkerService, decorators: [{
2618
4009
  type: Injectable,
2619
4010
  args: [{
2620
4011
  providedIn: 'root'
@@ -2756,13 +4147,13 @@ class Ritdeel {
2756
4147
  return retval;
2757
4148
  }
2758
4149
  getVrijebaanRijwegplan() {
2759
- return this.vrijebaanRijwegplanRijwegDwangCombi.rijwegplan;
4150
+ return this.vrijebaanRijwegplanRijwegDwangCombi?.rijwegplan;
2760
4151
  }
2761
4152
  getVrijebaanRijweg() {
2762
- return this.vrijebaanRijwegplanRijwegDwangCombi.rijweg;
4153
+ return this.vrijebaanRijwegplanRijwegDwangCombi?.rijweg;
2763
4154
  }
2764
4155
  getVrijebaanDwang() {
2765
- return this.vrijebaanRijwegplanRijwegDwangCombi.dwang;
4156
+ return this.vrijebaanRijwegplanRijwegDwangCombi?.dwang;
2766
4157
  }
2767
4158
  getDwangNummer() {
2768
4159
  return this.rijwegplanRijwegDwangCombi.getDwangNummer();
@@ -2779,7 +4170,7 @@ class Ritdeel {
2779
4170
  isBinnenWindow() {
2780
4171
  return (this.zichtbaarheid === RitdeelZichtbaarheid.ZICHTBAAR ||
2781
4172
  this.zichtbaarheid === RitdeelZichtbaarheid.ONZICHTBAAR_DOOR_GEBRUIKER)
2782
- && this.zichtbaarBuitenPaginatie === false;
4173
+ && !this.zichtbaarBuitenPaginatie;
2783
4174
  }
2784
4175
  isNietBeschikbaar() {
2785
4176
  return this.zichtbaarheid === RitdeelZichtbaarheid.ONZICHTBAAR_DOOR_SYSTEEM;
@@ -2802,10 +4193,10 @@ class Ritdeel {
2802
4193
  }
2803
4194
  }
2804
4195
  heeftVrijebaanInfo() {
2805
- return this.vrijebaanRijwegplanRijwegDwangCombi && !!this.vrijebaanRijwegplanRijwegDwangCombi.dwang;
4196
+ return !!this.vrijebaanRijwegplanRijwegDwangCombi && !!this.vrijebaanRijwegplanRijwegDwangCombi.dwang;
2806
4197
  }
2807
4198
  getVrijebaanPrlRoute() {
2808
- return this.vrijebaanRijwegplanRijwegDwangCombi.getRoute();
4199
+ return this.vrijebaanRijwegplanRijwegDwangCombi?.getRoute();
2809
4200
  }
2810
4201
  getTopologieElementen() {
2811
4202
  return this.topoElementen;
@@ -2837,10 +4228,10 @@ class Ritdeel {
2837
4228
  getZichtbaarheidBuitenPaginatie() {
2838
4229
  return this.zichtbaarBuitenPaginatie;
2839
4230
  }
2840
- bepaalTopologieElementen(signaleringsBeeldManagerService) {
2841
- const topoElementen = signaleringsBeeldManagerService.bepaalRouteElementen(this.getRoute());
4231
+ bepaalTopologieElementen(sbmService) {
4232
+ const topoElementen = sbmService.bepaalRouteElementen(this.getRoute());
2842
4233
  if (this.heeftVrijebaanInfo()) {
2843
- const vrijebaanTopoElementen = signaleringsBeeldManagerService.bepaalRouteElementen(this.getVrijebaanPrlRoute());
4234
+ const vrijebaanTopoElementen = sbmService.bepaalRouteElementen(this.getVrijebaanPrlRoute());
2844
4235
  topoElementen.push(...vrijebaanTopoElementen);
2845
4236
  }
2846
4237
  this.topoElementen = topoElementen;
@@ -2886,7 +4277,7 @@ class RitLezerService {
2886
4277
  ritDelen.push(new Ritdeel(dwangInfo, beweging.ritActies, beweging, vrijebaanDwangInfo, vervolgSpoor, []));
2887
4278
  }
2888
4279
  extractVrijebaanDwangInfo(beweging, rijwegPlan, rijweg) {
2889
- let vrijebaanDwangInfo = null;
4280
+ let vrijebaanDwangInfo = undefined;
2890
4281
  let vervolgSpoor;
2891
4282
  if (beweging.naarSpoor.endsWith(SPOOR_NAAR_VRIJEBAAN_POSTFIX) ||
2892
4283
  beweging.naarSpoor.endsWith(SPOOR_NAAR_VEERWISSEL_VRIJEBAAN_POSTFIX)) {
@@ -2900,9 +4291,9 @@ class RitLezerService {
2900
4291
  vrijebaanRijweg = vrijebaanRijwegen[0];
2901
4292
  vrijebaanDwang = vrijebaanRijweg.getDwangVoorDwangNummer(0);
2902
4293
  vervolgSpoor = vrijebaanRijwegplan.getVervolgSpoor(vrijebaanRijweg);
4294
+ vrijebaanDwangInfo =
4295
+ new RijwegplanRijwegDwangCombinatie(vrijebaanRijwegplan, vrijebaanRijweg, vrijebaanDwang);
2903
4296
  }
2904
- vrijebaanDwangInfo =
2905
- new RijwegplanRijwegDwangCombinatie(vrijebaanRijwegplan, vrijebaanRijweg, vrijebaanDwang);
2906
4297
  }
2907
4298
  }
2908
4299
  return { vrijebaanDwangInfo, vervolgSpoor };
@@ -2936,10 +4327,10 @@ class RitLezerService {
2936
4327
  isGewijzigd(beweging) {
2937
4328
  return beweging.wijzigStatus === 'Gewijzigd';
2938
4329
  }
2939
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RitLezerService, deps: [{ token: EditorService }, { token: MessagesService }], target: i0.ɵɵFactoryTarget.Injectable }); }
2940
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RitLezerService }); }
4330
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RitLezerService, deps: [{ token: EditorService }, { token: MessagesService }], target: i0.ɵɵFactoryTarget.Injectable }); }
4331
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RitLezerService }); }
2941
4332
  }
2942
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RitLezerService, decorators: [{
4333
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RitLezerService, decorators: [{
2943
4334
  type: Injectable
2944
4335
  }], ctorParameters: () => [{ type: EditorService }, { type: MessagesService }] });
2945
4336
 
@@ -2955,7 +4346,7 @@ class BepaalOngeplandeActiesEffect {
2955
4346
  this.bepaalOngeplandeActies$ = createEffect(() => this.actions$.pipe(ofType(BepaalOngeplandeActies), withLatestFrom(this.store), map(([action, store]) => {
2956
4347
  const puicActieMap = new ArrayMultimap();
2957
4348
  const nietGevondenTakken = [];
2958
- const logMeldingDTOs = [];
4349
+ const logMeldingDTOs$ = [];
2959
4350
  const acties = store.ritDelen.flatMap(rd => rd.acties);
2960
4351
  action.ongeplandeActies.forEach(actie => {
2961
4352
  const alreadyAdded = acties.filter(a => a.id === actie.id).length > 0;
@@ -2971,11 +4362,11 @@ class BepaalOngeplandeActiesEffect {
2971
4362
  if (!spoortak && nietGevondenTakken.indexOf(takId) < 0) {
2972
4363
  nietGevondenTakken.push(takId);
2973
4364
  const melding = MeldingBuilder.nietGevondenTakkenOngeplandeActies(nietGevondenTakken);
2974
- logMeldingDTOs.push(this.loggingHelper.maakLogDTO(melding, actie));
4365
+ logMeldingDTOs$.push(this.loggingHelper.maakLogDTO(melding, actie));
2975
4366
  }
2976
4367
  else if (spoortak) {
2977
4368
  const melding = MeldingBuilder.actieHighlightError([actie.id]);
2978
- logMeldingDTOs.push(this.loggingHelper.maakLogDTO(melding, actie));
4369
+ logMeldingDTOs$.push(this.loggingHelper.maakLogDTO(melding, actie));
2979
4370
  this.messagesService.showMessage(MessageBuilder.actieHighlightError([actie.id]));
2980
4371
  }
2981
4372
  }
@@ -2984,8 +4375,8 @@ class BepaalOngeplandeActiesEffect {
2984
4375
  if (nietGevondenTakken.length > 0) {
2985
4376
  this.messagesService.showMessage(MessageBuilder.nietGevondenTakkenOngeplandeActies(nietGevondenTakken));
2986
4377
  }
2987
- if (logMeldingDTOs.length > 0) {
2988
- this.mstLogResource.logErrorMessages(logMeldingDTOs);
4378
+ if (logMeldingDTOs$.length > 0) {
4379
+ forkJoin(logMeldingDTOs$).pipe(tap(dtos => this.mstLogResource.logMessages(dtos))).subscribe();
2989
4380
  }
2990
4381
  this.store.dispatch(SetOngeplandeActies(puicActieMap));
2991
4382
  this.store.dispatch(SetOngeplandeActieSelectieIds(Array.from(puicActieMap.keys())));
@@ -2997,10 +4388,10 @@ class BepaalOngeplandeActiesEffect {
2997
4388
  puicMap.put(puic, ongeplandeActie);
2998
4389
  });
2999
4390
  }
3000
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BepaalOngeplandeActiesEffect, deps: [{ token: i1$2.Actions }, { token: i2$1.Store }, { token: SignaleringsBeeldManagerService }, { token: MstLoggingResource }, { token: MessagesService }, { token: ActieHelper }, { token: LoggingHelper }], target: i0.ɵɵFactoryTarget.Injectable }); }
3001
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BepaalOngeplandeActiesEffect }); }
4391
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BepaalOngeplandeActiesEffect, deps: [{ token: i1$2.Actions }, { token: i2$1.Store }, { token: SignaleringsBeeldManagerService }, { token: MstLoggingResource }, { token: MessagesService }, { token: ActieHelper }, { token: LoggingHelper }], target: i0.ɵɵFactoryTarget.Injectable }); }
4392
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BepaalOngeplandeActiesEffect }); }
3002
4393
  }
3003
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BepaalOngeplandeActiesEffect, decorators: [{
4394
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BepaalOngeplandeActiesEffect, decorators: [{
3004
4395
  type: Injectable
3005
4396
  }], ctorParameters: () => [{ type: i1$2.Actions }, { type: i2$1.Store }, { type: SignaleringsBeeldManagerService }, { type: MstLoggingResource }, { type: MessagesService }, { type: ActieHelper }, { type: LoggingHelper }] });
3006
4397
 
@@ -3009,10 +4400,10 @@ class DateService {
3009
4400
  getCurrentDate() {
3010
4401
  return new Date();
3011
4402
  }
3012
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
3013
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DateService, providedIn: 'root' }); }
4403
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4404
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DateService, providedIn: 'root' }); }
3014
4405
  }
3015
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DateService, decorators: [{
4406
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DateService, decorators: [{
3016
4407
  type: Injectable,
3017
4408
  args: [{
3018
4409
  providedIn: 'root'
@@ -3055,7 +4446,7 @@ class BepaalSbInfosEffect {
3055
4446
  next: _res => this.store.dispatch(laadEnVerwerkSignaleringsbeeldInfo(treinpad, paginationSize, pplgs, ritGewijzigdToegestaan)),
3056
4447
  error: err => {
3057
4448
  this.messagesService.showMessage(new Message(Severity.INFORMATION, Utils.getValidErorrMessage(err)));
3058
- const iaVersieInfo = { versie: 'DONNA_77136_VER_1', ingangsDatum: this.dateService.getCurrentDate() };
4449
+ const iaVersieInfo = { versie: 'DONNA_97207_VER_1', ingangsDatum: this.dateService.getCurrentDate() };
3059
4450
  this.store.dispatch(SetIaVersie(iaVersieInfo));
3060
4451
  this.store.dispatch(laadEnVerwerkSignaleringsbeeldInfo(treinpad, paginationSize, pplgs, ritGewijzigdToegestaan));
3061
4452
  }
@@ -3066,10 +4457,10 @@ class BepaalSbInfosEffect {
3066
4457
  pplgs.push(pplg);
3067
4458
  }
3068
4459
  }
3069
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BepaalSbInfosEffect, deps: [{ token: i1$2.Actions }, { token: i2$1.Store }, { token: SignaleringsbeeldInfoResource }, { token: MessagesService }, { token: DateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
3070
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BepaalSbInfosEffect }); }
4460
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BepaalSbInfosEffect, deps: [{ token: i1$2.Actions }, { token: i2$1.Store }, { token: SignaleringsbeeldInfoResource }, { token: MessagesService }, { token: DateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
4461
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BepaalSbInfosEffect }); }
3071
4462
  }
3072
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BepaalSbInfosEffect, decorators: [{
4463
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BepaalSbInfosEffect, decorators: [{
3073
4464
  type: Injectable
3074
4465
  }], ctorParameters: () => [{ type: i1$2.Actions }, { type: i2$1.Store }, { type: SignaleringsbeeldInfoResource }, { type: MessagesService }, { type: DateService }] });
3075
4466
 
@@ -3128,10 +4519,10 @@ class BewegingInvoegenEffect {
3128
4519
  });
3129
4520
  return combinaties;
3130
4521
  }
3131
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BewegingInvoegenEffect, deps: [{ token: i1$2.Actions }, { token: i2$1.Store }, { token: SignaleringsBeeldManagerService }, { token: EditorService }], target: i0.ɵɵFactoryTarget.Injectable }); }
3132
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BewegingInvoegenEffect }); }
4522
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BewegingInvoegenEffect, deps: [{ token: i1$2.Actions }, { token: i2$1.Store }, { token: SignaleringsBeeldManagerService }, { token: EditorService }], target: i0.ɵɵFactoryTarget.Injectable }); }
4523
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BewegingInvoegenEffect }); }
3133
4524
  }
3134
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BewegingInvoegenEffect, decorators: [{
4525
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BewegingInvoegenEffect, decorators: [{
3135
4526
  type: Injectable
3136
4527
  }], ctorParameters: () => [{ type: i1$2.Actions }, { type: i2$1.Store }, { type: SignaleringsBeeldManagerService }, { type: EditorService }] });
3137
4528
 
@@ -3160,10 +4551,10 @@ class DeleteOngeplandeActieEffect {
3160
4551
  }
3161
4552
  });
3162
4553
  }
3163
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DeleteOngeplandeActieEffect, deps: [{ token: i1$2.Actions }, { token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
3164
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DeleteOngeplandeActieEffect }); }
4554
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DeleteOngeplandeActieEffect, deps: [{ token: i1$2.Actions }, { token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
4555
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DeleteOngeplandeActieEffect }); }
3165
4556
  }
3166
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DeleteOngeplandeActieEffect, decorators: [{
4557
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DeleteOngeplandeActieEffect, decorators: [{
3167
4558
  type: Injectable
3168
4559
  }], ctorParameters: () => [{ type: i1$2.Actions }, { type: i2$1.Store }] });
3169
4560
 
@@ -3178,7 +4569,7 @@ class FocusEffect {
3178
4569
  const dwangPuics = this.getPuics(topoElementen);
3179
4570
  if (ritdeel.isNietBeschikbaar()) {
3180
4571
  this.store.dispatch(SetOngeplandeActiesBepaald(false));
3181
- this.store.dispatch(navigeerVanaf(actie.paginationSize, actie.iaVersieInfo, ritdeel));
4572
+ this.store.dispatch(navigeerVanaf(actie.paginationSize, ritdeel));
3182
4573
  }
3183
4574
  return focusOpIds(dwangPuics);
3184
4575
  })));
@@ -3186,10 +4577,10 @@ class FocusEffect {
3186
4577
  getPuics(topoElementen) {
3187
4578
  return topoElementen.map(e => e.getPuic());
3188
4579
  }
3189
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FocusEffect, deps: [{ token: i1$2.Actions }, { token: i2$1.Store }, { token: SignaleringsBeeldManagerService }], target: i0.ɵɵFactoryTarget.Injectable }); }
3190
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FocusEffect }); }
4580
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FocusEffect, deps: [{ token: i1$2.Actions }, { token: i2$1.Store }, { token: SignaleringsBeeldManagerService }], target: i0.ɵɵFactoryTarget.Injectable }); }
4581
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FocusEffect }); }
3191
4582
  }
3192
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FocusEffect, decorators: [{
4583
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FocusEffect, decorators: [{
3193
4584
  type: Injectable
3194
4585
  }], ctorParameters: () => [{ type: i1$2.Actions }, { type: i2$1.Store }, { type: SignaleringsBeeldManagerService }] });
3195
4586
 
@@ -3200,16 +4591,16 @@ class LaadRouteFilesEffect {
3200
4591
  this.ritLezer = ritLezer;
3201
4592
  this.editorService = editorService;
3202
4593
  this.messagesService = messagesService;
3203
- this.authActions$ = createEffect(() => this.actions$.pipe(ofType(SetSignaleringsbeeldInfoDtos), map(action => this.laadRouteFiles(action))), { dispatch: false });
4594
+ this.authActions$ = createEffect(() => this.actions$.pipe(ofType(SetSignaleringsbeeldInfoDtos), withLatestFrom(this.store), map(([action, storeState]) => this.laadRouteFiles(action, storeState.iaVersie.versie))), { dispatch: false });
3204
4595
  }
3205
- laadRouteFiles(actie) {
4596
+ laadRouteFiles(actie, iaVersie) {
3206
4597
  const isReady = this.editorService.isReady();
3207
4598
  isReady.then(() => {
3208
4599
  const pplgs = this.bepaalSbDtoPplgs(actie.dtos);
3209
- const promise = this.editorService.laadRouteFiles(actie.iaversieinfo.versie, pplgs);
4600
+ const promise = this.editorService.laadRouteFiles(iaVersie, pplgs);
3210
4601
  promise.then(() => {
3211
4602
  this.updateRitdelen(actie);
3212
- }, err => {
4603
+ }, (err) => {
3213
4604
  this.messagesService.showMessage(MessageBuilder.rwpDataNietGevonden(Utils.getValidErorrMessage(err)));
3214
4605
  });
3215
4606
  });
@@ -3220,7 +4611,7 @@ class LaadRouteFilesEffect {
3220
4611
  if (ritdelen.length === 0) {
3221
4612
  ritdelen = this.ritLezer.parseRit(actie.treinpad, actie.ritGewijzigdToegestaan);
3222
4613
  }
3223
- this.store.dispatch(setRitDelen(ritdelen, actie.paginationSize, actie.iaversieinfo));
4614
+ this.store.dispatch(setRitDelen(ritdelen, actie.paginationSize));
3224
4615
  this.store.dispatch(setEditable(actie.treinpad.ritStatus !== 'Definitief'));
3225
4616
  });
3226
4617
  }, 0);
@@ -3228,7 +4619,7 @@ class LaadRouteFilesEffect {
3228
4619
  bepaalSbDtoPplgs(dtos) {
3229
4620
  const pplgs = [];
3230
4621
  dtos.forEach(dto => {
3231
- dto.pplgs.forEach(pplg => {
4622
+ dto.pplgs?.forEach(pplg => {
3232
4623
  if (!pplgs.includes(pplg)) {
3233
4624
  pplgs.push(pplg);
3234
4625
  }
@@ -3236,10 +4627,10 @@ class LaadRouteFilesEffect {
3236
4627
  });
3237
4628
  return pplgs;
3238
4629
  }
3239
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LaadRouteFilesEffect, deps: [{ token: i1$2.Actions }, { token: i2$1.Store }, { token: RitLezerService }, { token: EditorService }, { token: MessagesService }], target: i0.ɵɵFactoryTarget.Injectable }); }
3240
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LaadRouteFilesEffect }); }
4630
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LaadRouteFilesEffect, deps: [{ token: i1$2.Actions }, { token: i2$1.Store }, { token: RitLezerService }, { token: EditorService }, { token: MessagesService }], target: i0.ɵɵFactoryTarget.Injectable }); }
4631
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LaadRouteFilesEffect }); }
3241
4632
  }
3242
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LaadRouteFilesEffect, decorators: [{
4633
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LaadRouteFilesEffect, decorators: [{
3243
4634
  type: Injectable
3244
4635
  }], ctorParameters: () => [{ type: i1$2.Actions }, { type: i2$1.Store }, { type: RitLezerService }, { type: EditorService }, { type: MessagesService }] });
3245
4636
 
@@ -3258,10 +4649,10 @@ class ConnectorService extends BaseRestService {
3258
4649
  this.store.dispatch(ClearProgress());
3259
4650
  return [];
3260
4651
  }
3261
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ConnectorService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
3262
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ConnectorService, providedIn: 'root' }); }
4652
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ConnectorService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
4653
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ConnectorService, providedIn: 'root' }); }
3263
4654
  }
3264
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ConnectorService, decorators: [{
4655
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ConnectorService, decorators: [{
3265
4656
  type: Injectable,
3266
4657
  args: [{
3267
4658
  providedIn: 'root'
@@ -3269,14 +4660,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
3269
4660
  }] });
3270
4661
 
3271
4662
  class LaadSignaleringsbeeldenEffect {
3272
- constructor(actions$, store, signaleringsBeeldManagerService, editorService, sbiResource, connectorService, messagesSerivce) {
4663
+ constructor(actions$, store, signaleringsBeeldManagerService, editorService, sbiResource, connectorService, messagesService) {
3273
4664
  this.actions$ = actions$;
3274
4665
  this.store = store;
3275
4666
  this.signaleringsBeeldManagerService = signaleringsBeeldManagerService;
3276
4667
  this.editorService = editorService;
3277
4668
  this.sbiResource = sbiResource;
3278
4669
  this.connectorService = connectorService;
3279
- this.messagesSerivce = messagesSerivce;
4670
+ this.messagesService = messagesService;
3280
4671
  this.SVG_PIXEL_RUIMTE = 30;
3281
4672
  this.verwerkRitdelen$ = createEffect(() => this.actions$.pipe(ofType(setRitDelen, navigeer, navigeerVanaf), withLatestFrom(this.store), map(([actie, storeState]) => {
3282
4673
  this.store.dispatch(SetOngeplandeActiesBepaald(false));
@@ -3290,14 +4681,14 @@ class LaadSignaleringsbeeldenEffect {
3290
4681
  }).pipe(switchMap(this.getOtherRand.bind(this)), switchMap(this.loadRouteFilesAndSignaleringsbeeldInfo.bind(this)), switchMap(this.loadSignaleringsbeelden.bind(this)), map(this.processSvgsAndUpdateRitdelen.bind(this))))), { dispatch: false });
3291
4682
  }
3292
4683
  handleSignaleringsbeeldInfo({ actie, storeState }) {
3293
- return this.sbiResource.laadSignaleringsbeeldInfo(this.createSignaleringsbeeldInfoQueryDto(actie.pplgs, storeState.iaVersie)).pipe(take(1), tap((dtos) => this.processResponse({ dtos, storeState, actie })), catchError((err) => {
3294
- this.messagesSerivce.showMessage(MessageBuilder.nietGevondenSBI(err));
4684
+ return this.sbiResource.laadSignaleringsbeeldInfo(storeState.iaVersie.versie, actie.pplgs).pipe(take(1), tap((dtos) => this.processResponse({ dtos, storeState, actie })), catchError((err) => {
4685
+ this.messagesService.showMessage(MessageBuilder.nietGevondenSBI(err));
3295
4686
  return throwError(() => err);
3296
4687
  }));
3297
4688
  }
3298
4689
  processResponse({ dtos, storeState, actie }) {
3299
4690
  if (dtos && dtos.filter(dto => dto.metVisualisatie).length > 12) {
3300
- this.messagesSerivce.showMessage(MessageBuilder.meerDan12BladenGevonden(dtos.length));
4691
+ this.messagesService.showMessage(MessageBuilder.meerDan12BladenGevonden(dtos.length));
3301
4692
  }
3302
4693
  this.store.dispatch(SetSignaleringsbeeldInfoDtos(dtos, storeState.iaVersie, actie.rit, actie.paginationSize, actie.ritGewijzigdToegestaan));
3303
4694
  this.store.dispatch(SetVisibleSignaleringsbeeldInfoDtos(dtos));
@@ -3307,14 +4698,14 @@ class LaadSignaleringsbeeldenEffect {
3307
4698
  }
3308
4699
  loadRouteFilesAndSignaleringsbeeldInfo({ otherPplg, rand, storeState }) {
3309
4700
  this.editorService.laadRouteFiles(storeState.iaVersie.versie, [rand.getPPLG(), otherPplg]);
3310
- return this.sbiResource.laadSignaleringsbeeldInfo(this.createSignaleringsbeeldInfoQueryDto([rand.getPPLG(), otherPplg], storeState.iaVersie)).pipe(map(dtos => ({ dtos, storeState })));
4701
+ return this.sbiResource.laadSignaleringsbeeldInfo(storeState.iaVersie.versie, [rand.getPPLG(), otherPplg]).pipe(map(dtos => ({ dtos, storeState })));
3311
4702
  }
3312
4703
  loadSignaleringsbeelden({ dtos, storeState }) {
3313
- return this.editorService.laadSignaleringsbeelden(storeState.iaVersie.versie, dtos).pipe(map(svgDataUrls => ({ svgDataUrls, storeState, dtos })));
4704
+ return this.editorService.laadSignaleringsbeelden(storeState.iaVersie.versie, dtos).pipe(map(svgDataUrls => ({ svgDataUrls, ritDelen: storeState.ritDelen, dtos })));
3314
4705
  }
3315
- processSvgsAndUpdateRitdelen({ svgDataUrls, storeState, dtos }) {
4706
+ processSvgsAndUpdateRitdelen({ svgDataUrls, ritDelen, dtos }) {
3316
4707
  this.verwerkSvgs(svgDataUrls);
3317
- const nieuweRitdelen = this.updateRitdelen(storeState.ritDelen, dtos);
4708
+ const nieuweRitdelen = this.updateRitdelen(ritDelen, dtos);
3318
4709
  this.store.dispatch(UpdateVisibleSignaleringsbeeldInfoDtos(dtos));
3319
4710
  this.store.dispatch(updateRitDelen(nieuweRitdelen));
3320
4711
  }
@@ -3327,11 +4718,11 @@ class LaadSignaleringsbeeldenEffect {
3327
4718
  const visibleRitPplgs = visibleRitDelen.map(r => r.getPplg()).filter(this.distinct);
3328
4719
  const visibleDtos = this.bepaalZichtbareDtos(visibleRitPplgs, storeDtos);
3329
4720
  const loadingDtos = this.bepaalToLoadDtos(visibleDtos, ritDelen, visibleRitDelen, visibleRitPplgs, storeState);
3330
- this.editorService.laadSignaleringsbeelden(actie.iaversieinfo.versie, loadingDtos).pipe(tap(svgDataUrls => {
4721
+ this.editorService.laadSignaleringsbeelden(storeState.iaVersie.versie, loadingDtos).pipe(tap(svgDataUrls => {
3331
4722
  this.verwerkSvgs(svgDataUrls);
3332
4723
  this.updateState(ritDelen, visibleDtos, storeState, visibleRitPplgs, loadingDtos, isInit, storeDtos);
3333
4724
  }), catchError(err => {
3334
- this.messagesSerivce.showMessage(MessageBuilder.rwpDataNietGevonden(Utils.getValidErorrMessage(err)));
4725
+ this.messagesService.showMessage(MessageBuilder.rwpDataNietGevonden(Utils.getValidErorrMessage(err)));
3335
4726
  throw err;
3336
4727
  })).subscribe();
3337
4728
  }
@@ -3346,10 +4737,6 @@ class LaadSignaleringsbeeldenEffect {
3346
4737
  this.store.dispatch(updateRitDelen(nieuweRitdelen));
3347
4738
  }, 0);
3348
4739
  }
3349
- createSignaleringsbeeldInfoQueryDto(pplgs, iainfo) {
3350
- const datum = iainfo.ingangsDatum && !isNaN(iainfo.ingangsDatum.getTime()) ? iainfo.ingangsDatum.toISOString() : undefined;
3351
- return { pplgs, versie: iainfo.versie, ingangsDatum: datum };
3352
- }
3353
4740
  verwerkSvgs(svgDataUrls) {
3354
4741
  this.store.dispatch(SetSvgInfos(this.bepaalSvgInfos(svgDataUrls)));
3355
4742
  }
@@ -3376,7 +4763,7 @@ class LaadSignaleringsbeeldenEffect {
3376
4763
  bepaalZichtbareDtos(visibleRitPplgs, dtos) {
3377
4764
  const visibleDtos = [];
3378
4765
  visibleRitPplgs.forEach(pplg => {
3379
- dtos.filter(dto => dto.pplgs.includes(pplg)).forEach(dto => {
4766
+ dtos.filter(dto => dto.pplgs?.includes(pplg)).forEach(dto => {
3380
4767
  if (!visibleDtos.includes(dto)) {
3381
4768
  visibleDtos.push(dto);
3382
4769
  }
@@ -3386,13 +4773,13 @@ class LaadSignaleringsbeeldenEffect {
3386
4773
  dtos.filter(d => !visibleDtos.includes(d)).forEach(d => d.metVisualisatie = false);
3387
4774
  return visibleDtos;
3388
4775
  }
3389
- distinct(value, index, self) {
3390
- return self.indexOf(value) === index;
4776
+ distinct(value, index, values) {
4777
+ return values.indexOf(value) === index;
3391
4778
  }
3392
4779
  addPrevNonVisibleDto(firstIdx, ritdelen, loadingDtos, visibleRitPplgs, allDtos) {
3393
4780
  if (firstIdx >= 0) {
3394
4781
  const pplg = ritdelen[firstIdx].getPplg();
3395
- const ritdeelDtos = allDtos.filter(dto => dto.pplgs.includes(pplg)).filter(dto => !loadingDtos.includes(dto));
4782
+ const ritdeelDtos = allDtos.filter(dto => dto.pplgs?.includes(pplg)).filter(dto => !loadingDtos.includes(dto));
3396
4783
  if (!visibleRitPplgs.includes(pplg) && ritdeelDtos.length > 0) {
3397
4784
  ritdeelDtos.filter(d => !loadingDtos.includes(d)).forEach(d => {
3398
4785
  d.metVisualisatie = false;
@@ -3407,7 +4794,7 @@ class LaadSignaleringsbeeldenEffect {
3407
4794
  addNextNonVisibleDto(lastIdx, ritdelen, loadingDtos, visibleRitPplgs, allDtos) {
3408
4795
  if (lastIdx <= ritdelen.length - 1) {
3409
4796
  const pplg = ritdelen[lastIdx].getPplg();
3410
- const ritdeelDtos = allDtos.filter(dto => dto.pplgs.includes(pplg)).filter(dto => !loadingDtos.includes(dto));
4797
+ const ritdeelDtos = allDtos.filter(dto => dto.pplgs?.includes(pplg)).filter(dto => !loadingDtos.includes(dto));
3411
4798
  if (!visibleRitPplgs.includes(pplg) && ritdeelDtos.length > 0) {
3412
4799
  ritdeelDtos.filter(d => !loadingDtos.includes(d)).forEach(d => {
3413
4800
  d.metVisualisatie = false;
@@ -3476,7 +4863,7 @@ class LaadSignaleringsbeeldenEffect {
3476
4863
  }
3477
4864
  }
3478
4865
  }
3479
- this.updateZichtbaarheidAangrezendeRitdelen(min, max, ritdelen, visibleDtos);
4866
+ this.updateZichtbaarheidAangrenzendeRitdelen(min, max, ritdelen, visibleDtos);
3480
4867
  return this.updateZichtbaarheidBuitenWindow(ritdelen, visibleDtos);
3481
4868
  }
3482
4869
  updateZichtbaarheidBuitenWindow(nieuweRitdelen, visibleDtos) {
@@ -3492,7 +4879,7 @@ class LaadSignaleringsbeeldenEffect {
3492
4879
  }
3493
4880
  return nieuweRitdelen;
3494
4881
  }
3495
- updateZichtbaarheidAangrezendeRitdelen(min, max, nieuweRitdelen, visibleDtos) {
4882
+ updateZichtbaarheidAangrenzendeRitdelen(min, max, nieuweRitdelen, visibleDtos) {
3496
4883
  let i = min - 1;
3497
4884
  while (i >= 0) {
3498
4885
  i = this.updateZichtbaarHeid(i, 0, visibleDtos, nieuweRitdelen) - 1;
@@ -3528,9 +4915,11 @@ class LaadSignaleringsbeeldenEffect {
3528
4915
  }
3529
4916
  bevatGevisualiseerdePplg(visibleDtos, pplg) {
3530
4917
  for (const dto of visibleDtos) {
3531
- for (const dtopplg of dto.pplgs) {
3532
- if (dtopplg === pplg) {
3533
- return true;
4918
+ if (dto.pplgs) {
4919
+ for (const dtopplg of dto.pplgs) {
4920
+ if (dtopplg === pplg) {
4921
+ return true;
4922
+ }
3534
4923
  }
3535
4924
  }
3536
4925
  }
@@ -3580,7 +4969,7 @@ class LaadSignaleringsbeeldenEffect {
3580
4969
  pplgsWindow.push(itemPplg);
3581
4970
  }
3582
4971
  const pplgDtos = [];
3583
- dtos.filter(dto => dto.pplgs.includes(itemPplg)).forEach(dto => {
4972
+ dtos.filter(dto => dto.pplgs?.includes(itemPplg)).forEach(dto => {
3584
4973
  if (!pplgDtos.includes(dto)) {
3585
4974
  pplgDtos.push(dto);
3586
4975
  }
@@ -3605,10 +4994,10 @@ class LaadSignaleringsbeeldenEffect {
3605
4994
  }
3606
4995
  return -1;
3607
4996
  }
3608
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LaadSignaleringsbeeldenEffect, deps: [{ token: i1$2.Actions }, { token: i2$1.Store }, { token: SignaleringsBeeldManagerService }, { token: EditorService }, { token: SignaleringsbeeldInfoResource }, { token: ConnectorService }, { token: MessagesService }], target: i0.ɵɵFactoryTarget.Injectable }); }
3609
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LaadSignaleringsbeeldenEffect }); }
4997
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LaadSignaleringsbeeldenEffect, deps: [{ token: i1$2.Actions }, { token: i2$1.Store }, { token: SignaleringsBeeldManagerService }, { token: EditorService }, { token: SignaleringsbeeldInfoResource }, { token: ConnectorService }, { token: MessagesService }], target: i0.ɵɵFactoryTarget.Injectable }); }
4998
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LaadSignaleringsbeeldenEffect }); }
3610
4999
  }
3611
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LaadSignaleringsbeeldenEffect, decorators: [{
5000
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LaadSignaleringsbeeldenEffect, decorators: [{
3612
5001
  type: Injectable
3613
5002
  }], ctorParameters: () => [{ type: i1$2.Actions }, { type: i2$1.Store }, { type: SignaleringsBeeldManagerService }, { type: EditorService }, { type: SignaleringsbeeldInfoResource }, { type: ConnectorService }, { type: MessagesService }] });
3614
5003
 
@@ -3619,19 +5008,19 @@ class RitGoedkeurenEffect {
3619
5008
  this.bewegingVerrijker = bewegingVerrijker;
3620
5009
  this.keurAllesGoed$ = createEffect(() => this.actions$.pipe(ofType(KeurAlleActiesGoed), withLatestFrom(this.store), switchMap(([action, _store]) => from(this.bewegingVerrijker.getBewegingen(action.bewegingen, action.ongeplandeActies))), map((bewegingen) => UpdateRit(bewegingen))));
3621
5010
  }
3622
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RitGoedkeurenEffect, deps: [{ token: i1$2.Actions }, { token: i2$1.Store }, { token: BewegingVerrijkerService }], target: i0.ɵɵFactoryTarget.Injectable }); }
3623
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RitGoedkeurenEffect }); }
5011
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RitGoedkeurenEffect, deps: [{ token: i1$2.Actions }, { token: i2$1.Store }, { token: BewegingVerrijkerService }], target: i0.ɵɵFactoryTarget.Injectable }); }
5012
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RitGoedkeurenEffect }); }
3624
5013
  }
3625
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RitGoedkeurenEffect, decorators: [{
5014
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RitGoedkeurenEffect, decorators: [{
3626
5015
  type: Injectable
3627
5016
  }], ctorParameters: () => [{ type: i1$2.Actions }, { type: i2$1.Store }, { type: BewegingVerrijkerService }] });
3628
5017
 
3629
5018
  class RitdelenEffect {
3630
- constructor(actions$, store, sbmService, rijwegPlanEditorService) {
5019
+ constructor(actions$, store, sbmService, editorService) {
3631
5020
  this.actions$ = actions$;
3632
5021
  this.store = store;
3633
5022
  this.sbmService = sbmService;
3634
- this.rijwegPlanEditorService = rijwegPlanEditorService;
5023
+ this.editorService = editorService;
3635
5024
  this.updateRitDelen$ = createEffect(() => this.actions$.pipe(ofType(updateRitDelen), withLatestFrom(this.store), map(([actie, _storeState]) => {
3636
5025
  const nieuweRitDelen = actie.ritDelen.map(ritDeel => ritDeel.isZichtbaar() ?
3637
5026
  ritDeel.copyMetAlternatieveRoutes(this.sbmService.bepaalAlternativeRoutes(ritDeel.getRijweg())) : ritDeel);
@@ -3649,25 +5038,25 @@ class RitdelenEffect {
3649
5038
  return setRitdelenAfterUpdate(ritDelen);
3650
5039
  })));
3651
5040
  this.ritdeelInvoegen$ = createEffect(() => this.actions$.pipe(ofType(ritdeelInvoegen), withLatestFrom(this.store), map(([actie, storeState]) => {
3652
- const ritDelen = this.ritdeelInvoegenFunc(storeState.ritDelen, actie.nieuweRoute, this.rijwegPlanEditorService, this.sbmService);
5041
+ const ritDelen = this.ritdeelInvoegenFunc(storeState.ritDelen, actie.nieuweRoute);
3653
5042
  return setRitdelenAfterUpdate(ritDelen);
3654
5043
  })));
3655
5044
  }
3656
- ritdeelInvoegenFunc(ritDelen, nieuweRoute, rijwegPlanEditorService, sbmService) {
5045
+ ritdeelInvoegenFunc(ritDelen, nieuweRoute) {
3657
5046
  const origineelRitdeel = nieuweRoute.beginSeinOpRitdeel.ritdeel;
3658
5047
  const beginSein = nieuweRoute.beginSeinOpRitdeel.sein;
3659
- const rijwegplan = rijwegPlanEditorService.getRijwegplan(beginSein.getPPLG());
5048
+ const rijwegplan = this.editorService.getRijwegplan(beginSein.getPPLG());
3660
5049
  const dwangen = JsJavaUtil.listToArray(rijwegplan.getOnderliggendeDwangenTotEnVanSein(origineelRitdeel.getDwang(), beginSein));
3661
5050
  const isSamengesteldeRoute = dwangen[0] && dwangen[1];
3662
5051
  let newRitdeel1 = origineelRitdeel;
3663
5052
  if (isSamengesteldeRoute) {
3664
- newRitdeel1 = this.verwerkSamengesteldeRoute(origineelRitdeel, rijwegplan, dwangen, sbmService, ritDelen);
5053
+ newRitdeel1 = this.verwerkSamengesteldeRoute(origineelRitdeel, rijwegplan, dwangen, ritDelen);
3665
5054
  }
3666
- if (nieuweRoute.combinatieVoorEindsein.isVrijeBaanRijweg()) {
3667
- this.extendRitdeelMetVrijebaanInfo(newRitdeel1, nieuweRoute, sbmService);
5055
+ if (nieuweRoute.combinatieVoorEindsein?.isVrijeBaanRijweg()) {
5056
+ this.extendRitdeelMetVrijebaanInfo(newRitdeel1, nieuweRoute);
3668
5057
  }
3669
5058
  else {
3670
- this.maakNieuwRitdeel(newRitdeel1, nieuweRoute, sbmService, ritDelen);
5059
+ this.maakNieuwRitdeel(newRitdeel1, nieuweRoute, ritDelen);
3671
5060
  }
3672
5061
  if (isSamengesteldeRoute) {
3673
5062
  ritDelen.splice(ritDelen.indexOf(origineelRitdeel), 1);
@@ -3682,74 +5071,102 @@ class RitdelenEffect {
3682
5071
  }
3683
5072
  }
3684
5073
  }
3685
- verwerkSamengesteldeRoute(origineelRitdeel, rijwegplan, dwangen, sbmService, ritDelen) {
5074
+ verwerkSamengesteldeRoute(origineelRitdeel, rijwegplan, dwangen, ritDelen) {
3686
5075
  // dwangen in 2 nieuwe ritdelen verwerken voor de knip
3687
5076
  const nieuweRijweg1 = rijwegplan.getRijwegVoorSeinen(dwangen[0].getRoute().getBeginSein(), dwangen[0].getRoute().getEindSein());
3688
5077
  const dwangInfo1 = new RijwegplanRijwegDwangCombinatie(rijwegplan, nieuweRijweg1, dwangen[0]);
3689
- const newRitdeel1 = new Ritdeel(dwangInfo1, [], null, null, null, []);
5078
+ const newRitdeel1 = new Ritdeel(dwangInfo1, [], undefined, undefined, undefined, []);
3690
5079
  // remove vrijbaan info uit ritdeel
3691
- newRitdeel1.vrijebaanRijwegplanRijwegDwangCombi = null;
3692
- newRitdeel1.vervolgSpoor = null;
3693
- newRitdeel1.bepaalTopologieElementen(sbmService);
5080
+ newRitdeel1.vrijebaanRijwegplanRijwegDwangCombi = undefined;
5081
+ newRitdeel1.vervolgSpoor = undefined;
5082
+ newRitdeel1.bepaalTopologieElementen(this.sbmService);
3694
5083
  this.insertRitdeel(ritDelen, origineelRitdeel, newRitdeel1);
3695
5084
  const nieuweRijweg2 = rijwegplan.getRijwegVoorSeinen(dwangen[1].getRoute().getBeginSein(), dwangen[1].getRoute().getEindSein());
3696
5085
  const dwangInfo2 = new RijwegplanRijwegDwangCombinatie(rijwegplan, nieuweRijweg2, dwangen[1]);
3697
- const newRitdeel2 = new Ritdeel(dwangInfo2, [], null, null, null, []);
3698
- newRitdeel2.bepaalTopologieElementen(sbmService);
5086
+ const newRitdeel2 = new Ritdeel(dwangInfo2, [], undefined, undefined, undefined, []);
5087
+ newRitdeel2.bepaalTopologieElementen(this.sbmService);
3699
5088
  this.insertRitdeel(ritDelen, newRitdeel1, newRitdeel2);
3700
5089
  return newRitdeel1;
3701
5090
  }
3702
- extendRitdeelMetVrijebaanInfo(newRitdeel1, nieuweRoute, sbmService) {
5091
+ extendRitdeelMetVrijebaanInfo(newRitdeel1, nieuweRoute) {
3703
5092
  newRitdeel1.vrijebaanRijwegplanRijwegDwangCombi = nieuweRoute.combinatieVoorEindsein;
3704
- const vbrwp = nieuweRoute.combinatieVoorEindsein.rijwegplan;
3705
- newRitdeel1.vervolgSpoor = vbrwp.getVervolgSpoor(nieuweRoute.combinatieVoorEindsein.rijweg);
3706
- newRitdeel1.bepaalTopologieElementen(sbmService);
5093
+ const vbrwp = nieuweRoute.combinatieVoorEindsein?.rijwegplan;
5094
+ newRitdeel1.vervolgSpoor = nieuweRoute.combinatieVoorEindsein ?
5095
+ vbrwp.getVervolgSpoor(nieuweRoute.combinatieVoorEindsein?.rijweg) : undefined;
5096
+ newRitdeel1.bepaalTopologieElementen(this.sbmService);
3707
5097
  }
3708
- maakNieuwRitdeel(newRitdeel1, nieuweRoute, sbmService, ritDelen) {
5098
+ maakNieuwRitdeel(newRitdeel1, nieuweRoute, ritDelen) {
3709
5099
  let newRitdeel = this.createRitdeel(nieuweRoute);
3710
- const altRoutes = sbmService.bepaalAlternativeRoutes(newRitdeel.getRijweg());
5100
+ const altRoutes = this.sbmService.bepaalAlternativeRoutes(newRitdeel.getRijweg());
3711
5101
  newRitdeel = newRitdeel.copyMetAlternatieveRoutes(altRoutes);
3712
- newRitdeel.bepaalTopologieElementen(sbmService);
5102
+ newRitdeel.bepaalTopologieElementen(this.sbmService);
3713
5103
  this.insertRitdeel(ritDelen, newRitdeel1, newRitdeel);
3714
5104
  }
3715
5105
  createRitdeel(nieuweRoute) {
3716
- return new Ritdeel(nieuweRoute.combinatieVoorEindsein, [], null, null, null, []);
5106
+ return new Ritdeel(nieuweRoute.combinatieVoorEindsein, [], undefined, undefined, undefined, []);
3717
5107
  }
3718
5108
  insertRitdeel(ritdelen, naRitdeelPositie, newRitdeel) {
3719
5109
  const idx = ritdelen.indexOf(naRitdeelPositie);
3720
5110
  ritdelen.splice(idx + 1, 0, newRitdeel);
3721
5111
  }
3722
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RitdelenEffect, deps: [{ token: i1$2.Actions }, { token: i2$1.Store }, { token: SignaleringsBeeldManagerService }, { token: EditorService }], target: i0.ɵɵFactoryTarget.Injectable }); }
3723
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RitdelenEffect }); }
5112
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RitdelenEffect, deps: [{ token: i1$2.Actions }, { token: i2$1.Store }, { token: SignaleringsBeeldManagerService }, { token: EditorService }], target: i0.ɵɵFactoryTarget.Injectable }); }
5113
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RitdelenEffect }); }
3724
5114
  }
3725
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RitdelenEffect, decorators: [{
5115
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RitdelenEffect, decorators: [{
3726
5116
  type: Injectable
3727
5117
  }], ctorParameters: () => [{ type: i1$2.Actions }, { type: i2$1.Store }, { type: SignaleringsBeeldManagerService }, { type: EditorService }] });
3728
5118
 
3729
5119
  class SvgViewEffect {
3730
- constructor(actions$, store, signaleringsBeeldManagerService, sbSvgUtilService) {
5120
+ constructor(actions$, store, sbSvgUtilService, svgService) {
3731
5121
  this.actions$ = actions$;
3732
5122
  this.store = store;
3733
- this.signaleringsBeeldManagerService = signaleringsBeeldManagerService;
3734
5123
  this.sbSvgUtilService = sbSvgUtilService;
3735
- this.updateSvgView$ = createEffect(() => this.actions$.pipe(ofType(SetSvgInfos), map((_actie) => {
5124
+ this.svgService = svgService;
5125
+ this.updateSvgView$ = createEffect(() => this.actions$.pipe(ofType(SetSvgInfos), withLatestFrom(this.store), switchMap(([_actie, storeState]) => this.svgService.getSvgInfo(storeState.iaVersie.versie, storeState.signaleringsbeeldInfoDtos)), map((svgInfo) => {
3736
5126
  setTimeout(() => {
5127
+ const svgTopology = svgInfo.topology;
5128
+ if (!svgTopology) {
5129
+ return;
5130
+ }
3737
5131
  this.sbSvgUtilService.addSvgDefs();
3738
5132
  const wisselEnStoringskaderPuicMap = new Map();
3739
- this.signaleringsBeeldManagerService.getAlleSoortenWissels()
3740
- .forEach(wissel => wisselEnStoringskaderPuicMap.set(wissel.getPuic(), wissel.getStoringSymboolPuic()));
5133
+ svgTopology.alleSoortenWissels
5134
+ ?.forEach(wissel => wisselEnStoringskaderPuicMap.set(wissel.puic, wissel.storingSymboolPuic));
3741
5135
  this.sbSvgUtilService.zetClassOpStoringSymbolenMetMap(wisselEnStoringskaderPuicMap);
3742
- this.sbSvgUtilService.zetClassOpSpoornummers(this.signaleringsBeeldManagerService.getPuicsVoorSpoornummers());
5136
+ this.sbSvgUtilService.zetClassOpSpoornummers(svgTopology.puicVoorSpoorNummers ?? []);
3743
5137
  this.sbSvgUtilService.maakOngewensteElementenOnzichtbaar();
3744
5138
  this.sbSvgUtilService.zetClassOpLangeText();
3745
- this.sbSvgUtilService.maakOngewensteSeindelenOnzichtbaar(this.signaleringsBeeldManagerService.getSeinen());
3746
- this.sbSvgUtilService.maakSignaleringsElementenOnzichtbaar(this.signaleringsBeeldManagerService.getSignaleringsElementen());
3747
- const puicsVoorRanden = this.signaleringsBeeldManagerService.getPuicsVoorRanden();
5139
+ const seinen = svgTopology.seinen?.map(this.toSbSein) ?? [];
5140
+ this.sbSvgUtilService.maakOngewensteSeindelenOnzichtbaar(seinen);
5141
+ this.sbSvgUtilService.maakSignaleringsElementenOnzichtbaar(svgTopology.signaleringsElementen
5142
+ ?.map(signaleringsElement => this.toSbSignaleringsElement(signaleringsElement)) ?? []);
5143
+ const puicsVoorRanden = svgTopology.puicVoorRanden ?? [];
3748
5144
  this.zetClassOpRanden(puicsVoorRanden);
3749
- this.sbSvgUtilService.zetClassOpRijrichtingen(this.signaleringsBeeldManagerService.getSeinen());
5145
+ this.sbSvgUtilService.zetClassOpRijrichtingen(seinen);
3750
5146
  this.store.dispatch(SetConnectorenClickableIds(puicsVoorRanden));
5147
+ this.store.dispatch(svgUpdateFinished());
3751
5148
  }, 0);
3752
5149
  })), { dispatch: false });
5150
+ this.updateSelectieInfos$ = createEffect(() => this.actions$.pipe(ofType(svgUpdateFinished), switchMap(() => combineLatest([
5151
+ this.store.select('ritSelectieIds'),
5152
+ this.store.select('actieOpRitSelectieIds'),
5153
+ this.store.select('ongeplandeActieSelectieIds'),
5154
+ this.store.select('gebrokenRitSelectieIds'),
5155
+ this.store.select('alternatievenSelectieIds'),
5156
+ this.store.select('beginSeinSelectieIds'),
5157
+ this.store.select('eindSeinSelectieIds')
5158
+ ]).pipe(map(([rit, actieOpRitSelectieIds, ongeplandeActieSelectieIds, gebrokenRit, alternatieven, begin, eind]) => {
5159
+ return setSelectieInfos([
5160
+ new SelectieInfo(rit, 'rit'),
5161
+ new SelectieInfo(actieOpRitSelectieIds, 'actieoprit'),
5162
+ new SelectieInfo(ongeplandeActieSelectieIds, 'ongeplandeActie'),
5163
+ new SelectieInfo(gebrokenRit, 'gebrokenrit'),
5164
+ new SelectieInfo(alternatieven, 'alternatieveRoute'),
5165
+ new SelectieInfo(begin, 'zigzagVan'),
5166
+ new SelectieInfo(eind, 'zigzagNaar')
5167
+ ]);
5168
+ })))));
5169
+ this.store.select('baseUrl').pipe(filter(baseUrl => !!baseUrl), take(1), tap(baseUrl => svgService.configuration.basePath = baseUrl + '/mst')).subscribe();
3753
5170
  }
3754
5171
  zetClassOpRanden(puics) {
3755
5172
  puics.forEach(element => {
@@ -3757,12 +5174,35 @@ class SvgViewEffect {
3757
5174
  rand?.classList.add('connector');
3758
5175
  });
3759
5176
  }
3760
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SvgViewEffect, deps: [{ token: i1$2.Actions }, { token: i2$1.Store }, { token: SignaleringsBeeldManagerService }, { token: i4.SignaleringsbeeldSvgUtilityService }], target: i0.ɵɵFactoryTarget.Injectable }); }
3761
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SvgViewEffect }); }
5177
+ toSbSein(sein) {
5178
+ return {
5179
+ getPuic: () => sein.puic,
5180
+ isBediend: () => sein.bediend,
5181
+ getType: () => sein.type
5182
+ };
5183
+ }
5184
+ toSbSignaleringsElement(signaleringsElement) {
5185
+ return {
5186
+ getPuic: () => signaleringsElement.puic
5187
+ };
5188
+ }
5189
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SvgViewEffect, deps: [{ token: i1$2.Actions }, { token: i2$1.Store }, { token: i3.SignaleringsbeeldSvgUtilityService }, { token: SvgControllerService }], target: i0.ɵɵFactoryTarget.Injectable }); }
5190
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SvgViewEffect }); }
3762
5191
  }
3763
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SvgViewEffect, decorators: [{
5192
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SvgViewEffect, decorators: [{
3764
5193
  type: Injectable
3765
- }], ctorParameters: () => [{ type: i1$2.Actions }, { type: i2$1.Store }, { type: SignaleringsBeeldManagerService }, { type: i4.SignaleringsbeeldSvgUtilityService }] });
5194
+ }], ctorParameters: () => [{ type: i1$2.Actions }, { type: i2$1.Store }, { type: i3.SignaleringsbeeldSvgUtilityService }, { type: SvgControllerService }] });
5195
+
5196
+ class ProgressIndicator {
5197
+ constructor(lowerText, upperText, iconClass) {
5198
+ this.lowerText = '';
5199
+ this.upperText = '';
5200
+ this.iconClass = '';
5201
+ this.lowerText = lowerText ?? this.lowerText;
5202
+ this.upperText = upperText ?? this.upperText;
5203
+ this.iconClass = iconClass ?? this.iconClass;
5204
+ }
5205
+ }
3766
5206
 
3767
5207
  class NieuweRoute {
3768
5208
  constructor(beginSeinOpRitdeel, combinatieVoorEindsein) {
@@ -3770,7 +5210,7 @@ class NieuweRoute {
3770
5210
  this.combinatieVoorEindsein = combinatieVoorEindsein;
3771
5211
  }
3772
5212
  isValid() {
3773
- return this.combinatieVoorEindsein !== null;
5213
+ return !!this.combinatieVoorEindsein;
3774
5214
  }
3775
5215
  }
3776
5216
 
@@ -3836,10 +5276,11 @@ function addRitdeelActieFunc(ritDelen, { ritDeel, actie }) {
3836
5276
  const onIdsActionHandler = (action) => on(action, (_, { ids }) => ids);
3837
5277
  const createIdsReducer = (action) => createReducer([], onIdsActionHandler(action));
3838
5278
  const editableReducer = createReducer(true, on(setEditable, (_, { editable }) => editable));
3839
- const progressIndicatorReducer = createReducer(undefined, on(ShowProgress, () => ({ progressIndicator: {} })), on(ClearProgress, () => undefined));
5279
+ const progressIndicatorReducer = createReducer({}, on(ShowProgress, () => ({ progressIndicator: new ProgressIndicator() })), on(ClearProgress, () => ({})));
3840
5280
  const svgInfoReducer = createReducer([], on(SetSvgInfos, (_, { svgInfos }) => svgInfos));
3841
5281
  const debugReducer = createReducer(false, on(SetDebug, (_, { debug }) => debug));
3842
5282
  const ritSelectieIdsReducer = createIdsReducer(SetRitSelectieIds);
5283
+ const selectieInfosReducer = createReducer([], on(setSelectieInfos, (_, { selectieInfos }) => selectieInfos));
3843
5284
  const actieOpRitReducer = createReducer(new ArrayMultimap(), on(SetGeplandeActies, (_, { geplandeActiesMap }) => geplandeActiesMap), on(AddGeplandeActie, (geplandeActies, { actie, puics }) => {
3844
5285
  geplandeActies.putAll(actie, puics);
3845
5286
  return new ArrayMultimap(geplandeActies);
@@ -3862,12 +5303,10 @@ const ongeplandeActieReducer = createReducer(new ArrayMultimap(), on(SetOngeplan
3862
5303
  ongeplandeActie.puics.forEach(puic => ongeplandeActies.delete(puic, ongeplandeActie));
3863
5304
  return new ArrayMultimap(ongeplandeActies);
3864
5305
  }));
3865
- const ongeplandeActieSelectieIdsReducer = createReducer([],
3866
- // on(MstActions.SetOngeplandeActieSelectieIds, (_, { ids }) => ids),
3867
- onIdsActionHandler(SetOngeplandeActieSelectieIds), on(AddOngeplandeActie, (ids, { ongeplandeActie }) => {
5306
+ const ongeplandeActieSelectieIdsReducer = createReducer([], onIdsActionHandler(SetOngeplandeActieSelectieIds), on(AddOngeplandeActie, (ids, { ongeplandeActie }) => {
3868
5307
  ongeplandeActie.puics.filter(puic => !ids.includes(puic)).forEach(puic => ids.push(puic));
3869
5308
  return [...ids];
3870
- }), on(DeleteOngeplandeActieSelectieId, (ids, { id }) => [].concat(ids.includes(id) ? ids.filter(_id => _id !== id) : ids)));
5309
+ }), on(DeleteOngeplandeActieSelectieId, (ids, { id }) => ids.includes(id) ? ids.filter(_id => _id !== id) : ids));
3871
5310
  const gebrokenRitSelectieIdsReducer = createIdsReducer(SetGebrokenRitSelectieIds);
3872
5311
  const alternatievenSelectieIdsReducer = createIdsReducer(SetAlternatievenSelectieIds);
3873
5312
  const beginSeinSelectieIdsReducer = createIdsReducer(SetBeginSeinSelectieIds);
@@ -3876,16 +5315,15 @@ const alternatievenClickableIdsReducer = createIdsReducer(SetAlternatievenClicka
3876
5315
  const eindSeinenClickableIdsReducer = createIdsReducer(SetEindSeinenClickableIds);
3877
5316
  const connectorClickableIdsReducer = createIdsReducer(SetConnectorenClickableIds);
3878
5317
  const beginSeinRightClickableIdsReducer = createIdsReducer(SetBeginSeinRightClickableIds);
3879
- const nieuweRouteReducer = createReducer(new NieuweRoute(null, null), on(SetNieuwRouteBeginSein, (_, { startSeinOpRitdeel }) => new NieuweRoute(startSeinOpRitdeel, null)), on(SetNieuwRouteEindSein, (nieuweRoute, { combinatieVoorEindsein }) => new NieuweRoute(nieuweRoute.beginSeinOpRitdeel, combinatieVoorEindsein)), on(ResetNieuweRoute, () => new NieuweRoute(null, null)));
5318
+ const nieuweRouteReducer = createReducer(undefined, on(SetNieuwRouteBeginSein, (_, { startSeinOpRitdeel }) => new NieuweRoute(startSeinOpRitdeel, undefined)), on(SetNieuwRouteEindSein, (nieuweRoute, { combinatieVoorEindsein }) => nieuweRoute ? new NieuweRoute(nieuweRoute.beginSeinOpRitdeel, combinatieVoorEindsein) : undefined), on(ResetNieuweRoute, () => undefined));
3880
5319
  const signaleringsbeeldInfoDtosReducer = createReducer([], on(SetSignaleringsbeeldInfoDtos, (_, { dtos }) => dtos), on(UpdateSignaleringsbeeldInfoDtos, (_, { dtos }) => [...dtos]));
3881
5320
  const visibleSbInfoDtosReducer = createReducer([], on(SetVisibleSignaleringsbeeldInfoDtos, (_, { dtos }) => dtos), on(UpdateVisibleSignaleringsbeeldInfoDtos, (_, { dtos }) => [...dtos]));
3882
- const iaVersieReducer = createReducer({}, on(SetIaVersie, (_, { iaVersie }) => Object.assign({}, iaVersie, { versie: iaVersie.versie.toUpperCase() })));
3883
- const algemeneRitInfoDtoReducer = createReducer(new AlgemeneRitInfoDto(), on(SetAlgemeneRitInfo, (_, { algemeneRitInfoDto }) => algemeneRitInfoDto));
5321
+ const iaVersieReducer = createReducer({ versie: 'unknown', ingangsDatum: new Date() }, on(SetIaVersie, (_, { iaVersie }) => Object.assign({}, iaVersie, { versie: iaVersie.versie.toUpperCase() })));
5322
+ const algemeneRitInfoDtoReducer = createReducer({}, on(SetAlgemeneRitInfo, (_, { algemeneRitInfoDto }) => algemeneRitInfoDto));
3884
5323
  const ongeplandeActiesBepaaldReducer = createReducer(false, on(SetOngeplandeActiesBepaald, (_, { bepaald }) => bepaald));
3885
- const nieuweBewegingReducer = createReducer({}, on(UpdateRit, (_, { bewegingen }) => bewegingen));
3886
- const baseUrlReducer = createReducer(undefined, on(SetBaseUrl, (_, { baseUrl }) => baseUrl));
3887
- const focusIdsReducer = createReducer({}, on(focusOpIds, (_, { puics }) => puics));
3888
- const selectedRitdeelIdReducer = createReducer({}, on(SetSelectedRitdeel, (_, { id }) => id));
5324
+ const nieuweBewegingReducer = createReducer([], on(UpdateRit, (_, { bewegingen }) => bewegingen));
5325
+ const baseUrlReducer = createReducer('', on(SetBaseUrl, (_, { baseUrl }) => baseUrl));
5326
+ const focusIdsReducer = createReducer([], on(focusOpIds, (_, { puics }) => puics));
3889
5327
  const storeReducers = {
3890
5328
  ritDelen: ritdelenReducer,
3891
5329
  ritSelectieIds: ritSelectieIdsReducer,
@@ -3914,9 +5352,10 @@ const storeReducers = {
3914
5352
  nieuweBewegingen: nieuweBewegingReducer,
3915
5353
  baseUrl: baseUrlReducer,
3916
5354
  focusIds: focusIdsReducer,
3917
- selectedRitdeelId: selectedRitdeelIdReducer
5355
+ selectieInfos: selectieInfosReducer
3918
5356
  };
3919
5357
 
5358
+ // @ts-nocheck
3920
5359
  class ZoneUtil {
3921
5360
  constructor(ngZone) {
3922
5361
  this.ngZone = ngZone;
@@ -3940,10 +5379,10 @@ class ZoneUtil {
3940
5379
  proxy(target) {
3941
5380
  return new Proxy(target, this.zoneHandler);
3942
5381
  }
3943
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ZoneUtil, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable }); }
3944
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ZoneUtil }); }
5382
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ZoneUtil, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable }); }
5383
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ZoneUtil }); }
3945
5384
  }
3946
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ZoneUtil, decorators: [{
5385
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ZoneUtil, decorators: [{
3947
5386
  type: Injectable
3948
5387
  }], ctorParameters: () => [{ type: i0.NgZone }] });
3949
5388
 
@@ -3979,12 +5418,13 @@ class MstViewerModule {
3979
5418
  constructor(service, zoneUtil) {
3980
5419
  this.service = service;
3981
5420
  // maak de EditorService toegankelijk voor GWT code
5421
+ // @ts-ignore
3982
5422
  window['rpe'] = {
3983
5423
  EditorService: zoneUtil.proxy(service)
3984
5424
  };
3985
5425
  }
3986
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MstViewerModule, deps: [{ token: EditorService }, { token: ZoneUtil }], target: i0.ɵɵFactoryTarget.NgModule }); }
3987
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.7", ngImport: i0, type: MstViewerModule, declarations: [MessageComponent,
5426
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MstViewerModule, deps: [{ token: EditorService }, { token: ZoneUtil }], target: i0.ɵɵFactoryTarget.NgModule }); }
5427
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: MstViewerModule, declarations: [MessageComponent,
3988
5428
  MstviewerComponent,
3989
5429
  OverlayComponent,
3990
5430
  ProgressIndicatorComponent,
@@ -3996,8 +5436,8 @@ class MstViewerModule {
3996
5436
  SvgVisualisatieComponent,
3997
5437
  MessagesComponent], imports: [CommonModule,
3998
5438
  ImxViewerModule,
3999
- RijwegenModule, i1.ResourceModule, i2$1.StoreRootModule, i1$2.EffectsRootModule], exports: [MstviewerComponent] }); }
4000
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MstViewerModule, providers: [
5439
+ RijwegenModule, i1$1.ResourceModule, i2$1.StoreRootModule, i1$2.EffectsRootModule], exports: [MstviewerComponent] }); }
5440
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MstViewerModule, providers: [
4001
5441
  ZoneUtil,
4002
5442
  SignaleringsbeeldInfoResource,
4003
5443
  MstLoggingResource,
@@ -4010,7 +5450,7 @@ class MstViewerModule {
4010
5450
  BewegingVerrijkerService
4011
5451
  ], imports: [imports] }); }
4012
5452
  }
4013
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MstViewerModule, decorators: [{
5453
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MstViewerModule, decorators: [{
4014
5454
  type: NgModule,
4015
5455
  args: [{
4016
5456
  imports,