@loxia/mst-viewer 8.1.3-202512212335 → 8.1.3-202512220715

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 (261) hide show
  1. package/fesm2022/loxia-mst-viewer-src-generated-openapi.mjs +25 -25
  2. package/fesm2022/loxia-mst-viewer-src-generated-openapi.mjs.map +1 -1
  3. package/fesm2022/loxia-mst-viewer.mjs +459 -492
  4. package/fesm2022/loxia-mst-viewer.mjs.map +1 -1
  5. package/index.d.ts +1079 -3
  6. package/package.json +6 -10
  7. package/src/generated/openapi/index.d.ts +825 -6
  8. package/tailwind.scss +1 -5
  9. package/esm2022/generated/openapi/api/api.mjs +0 -23
  10. package/esm2022/generated/openapi/api/appConfigController.service.mjs +0 -140
  11. package/esm2022/generated/openapi/api/appConfigController.serviceInterface.mjs +0 -2
  12. package/esm2022/generated/openapi/api/bewegingController.service.mjs +0 -155
  13. package/esm2022/generated/openapi/api/bewegingController.serviceInterface.mjs +0 -2
  14. package/esm2022/generated/openapi/api/class0BuildProperties.service.mjs +0 -140
  15. package/esm2022/generated/openapi/api/class0BuildProperties.serviceInterface.mjs +0 -2
  16. package/esm2022/generated/openapi/api/connectorController.service.mjs +0 -146
  17. package/esm2022/generated/openapi/api/connectorController.serviceInterface.mjs +0 -2
  18. package/esm2022/generated/openapi/api/logController.service.mjs +0 -150
  19. package/esm2022/generated/openapi/api/logController.serviceInterface.mjs +0 -2
  20. package/esm2022/generated/openapi/api/p21Controller.service.mjs +0 -236
  21. package/esm2022/generated/openapi/api/p21Controller.serviceInterface.mjs +0 -2
  22. package/esm2022/generated/openapi/api/sbController.service.mjs +0 -202
  23. package/esm2022/generated/openapi/api/sbController.serviceInterface.mjs +0 -2
  24. package/esm2022/generated/openapi/api.module.mjs +0 -40
  25. package/esm2022/generated/openapi/configuration.mjs +0 -99
  26. package/esm2022/generated/openapi/encoder.mjs +0 -19
  27. package/esm2022/generated/openapi/index.mjs +0 -7
  28. package/esm2022/generated/openapi/model/actieDto.mjs +0 -13
  29. package/esm2022/generated/openapi/model/algemeneRitDto.mjs +0 -13
  30. package/esm2022/generated/openapi/model/bewegingDto.mjs +0 -2
  31. package/esm2022/generated/openapi/model/frontendKeycloakConfig.mjs +0 -13
  32. package/esm2022/generated/openapi/model/frontendProperties.mjs +0 -2
  33. package/esm2022/generated/openapi/model/logDto.mjs +0 -2
  34. package/esm2022/generated/openapi/model/models.mjs +0 -10
  35. package/esm2022/generated/openapi/model/ritRequestDto.mjs +0 -2
  36. package/esm2022/generated/openapi/model/signaleringsbeeldDto.mjs +0 -13
  37. package/esm2022/generated/openapi/model/signaleringsbeeldRequestDto.mjs +0 -13
  38. package/esm2022/generated/openapi/param.mjs +0 -2
  39. package/esm2022/generated/openapi/variables.mjs +0 -9
  40. package/esm2022/generated.version.mjs +0 -2
  41. package/esm2022/lib/atomic-components/message/index.mjs +0 -4
  42. package/esm2022/lib/atomic-components/message/message.component.mjs +0 -34
  43. package/esm2022/lib/atomic-components/message/message.mjs +0 -8
  44. package/esm2022/lib/atomic-components/message/severity.enum.mjs +0 -9
  45. package/esm2022/lib/atomic-components/messages/messages.component.mjs +0 -20
  46. package/esm2022/lib/atomic-components/overlay/overlay.component.mjs +0 -11
  47. package/esm2022/lib/atomic-components/progress-indicator/progress-indicator.component.mjs +0 -11
  48. package/esm2022/lib/atomic-components/progress-indicator/progress-indicator.entity.mjs +0 -11
  49. package/esm2022/lib/atomic-components/services/messages.service.mjs +0 -27
  50. package/esm2022/lib/components/carousel-controls/carousel-controls.component.mjs +0 -39
  51. package/esm2022/lib/components/mstviewer/mstviewer.component.mjs +0 -116
  52. package/esm2022/lib/components/ritdelen-lijst/ritdelen-lijst.component.mjs +0 -273
  53. package/esm2022/lib/components/ritdelen-view/ritdelen-view.component.mjs +0 -103
  54. package/esm2022/lib/components/rpe/rpe.component.mjs +0 -37
  55. package/esm2022/lib/components/svg-visualisatie/svg-visualisatie.component.mjs +0 -274
  56. package/esm2022/lib/components/viewer-controls/viewer-controls.component.mjs +0 -55
  57. package/esm2022/lib/model/alternatief-rit-deel.mjs +0 -7
  58. package/esm2022/lib/model/km-range.mjs +0 -39
  59. package/esm2022/lib/model/melding-event.mjs +0 -7
  60. package/esm2022/lib/model/nieuwe-route.mjs +0 -10
  61. package/esm2022/lib/model/ongeplande-actie.mjs +0 -7
  62. package/esm2022/lib/model/rijwegplan-rijweg-dwang-combinatie.mjs +0 -24
  63. package/esm2022/lib/model/ritdeel.mjs +0 -205
  64. package/esm2022/lib/model/sein-op-ritdeel.mjs +0 -7
  65. package/esm2022/lib/model/wissel-kant-code.mjs +0 -7
  66. package/esm2022/lib/mst-viewer.module.mjs +0 -144
  67. package/esm2022/lib/optimo.mjs +0 -9
  68. package/esm2022/lib/resources/mstlogging.resource.mjs +0 -25
  69. package/esm2022/lib/resources/signaleringsbeeldinfo.resource.mjs +0 -63
  70. package/esm2022/lib/services/base-rest.service.mjs +0 -28
  71. package/esm2022/lib/services/beweging-utils.service.mjs +0 -139
  72. package/esm2022/lib/services/beweging-verrijker.service.mjs +0 -30
  73. package/esm2022/lib/services/connector.service.mjs +0 -30
  74. package/esm2022/lib/services/debug.service.mjs +0 -59
  75. package/esm2022/lib/services/editor.service.mjs +0 -50
  76. package/esm2022/lib/services/print-beweging.service.mjs +0 -69
  77. package/esm2022/lib/services/rit-lezer.service.mjs +0 -104
  78. package/esm2022/lib/services/signalerings-beeld-manager.service.mjs +0 -92
  79. package/esm2022/lib/services/viewer-control.service.mjs +0 -106
  80. package/esm2022/lib/state/actions/actions.mjs +0 -127
  81. package/esm2022/lib/state/actions/ritdelen.actions.mjs +0 -45
  82. package/esm2022/lib/state/effect/bepaal-ongeplande-acties.effect.mjs +0 -79
  83. package/esm2022/lib/state/effect/bepaal-sb-infos.effect.mjs +0 -67
  84. package/esm2022/lib/state/effect/beweging-invoegen.effect.mjs +0 -73
  85. package/esm2022/lib/state/effect/delete-ongeplande-actie.effect.mjs +0 -39
  86. package/esm2022/lib/state/effect/focus-effect.mjs +0 -36
  87. package/esm2022/lib/state/effect/laad-route-files.effect.mjs +0 -64
  88. package/esm2022/lib/state/effect/laad-signaleringsbeelden.effect.mjs +0 -363
  89. package/esm2022/lib/state/effect/rit-goedkeuren.effect.mjs +0 -23
  90. package/esm2022/lib/state/effect/ritdelen.effect.mjs +0 -113
  91. package/esm2022/lib/state/effect/svg-view.effect.mjs +0 -48
  92. package/esm2022/lib/state/mst-editor-state.mjs +0 -86
  93. package/esm2022/lib/state/reducer/rit-delen.reducer.mjs +0 -62
  94. package/esm2022/lib/util/actie-helper.mjs +0 -441
  95. package/esm2022/lib/util/actie-popover-bepaler.mjs +0 -90
  96. package/esm2022/lib/util/date.service.mjs +0 -17
  97. package/esm2022/lib/util/logging-helper.mjs +0 -56
  98. package/esm2022/lib/util/melding-builder.mjs +0 -13
  99. package/esm2022/lib/util/message-builder.mjs +0 -32
  100. package/esm2022/lib/util/multi-map.mjs +0 -75
  101. package/esm2022/lib/util/utils.mjs +0 -35
  102. package/esm2022/lib/util/zone-util.mjs +0 -33
  103. package/esm2022/loxia-mst-viewer.mjs +0 -5
  104. package/esm2022/public-api.mjs +0 -9
  105. package/esm2022/src/generated/openapi/api/api.mjs +0 -23
  106. package/esm2022/src/generated/openapi/api/appConfigController.service.mjs +0 -140
  107. package/esm2022/src/generated/openapi/api/appConfigController.serviceInterface.mjs +0 -2
  108. package/esm2022/src/generated/openapi/api/bewegingController.service.mjs +0 -155
  109. package/esm2022/src/generated/openapi/api/bewegingController.serviceInterface.mjs +0 -2
  110. package/esm2022/src/generated/openapi/api/class0BuildProperties.service.mjs +0 -140
  111. package/esm2022/src/generated/openapi/api/class0BuildProperties.serviceInterface.mjs +0 -2
  112. package/esm2022/src/generated/openapi/api/connectorController.service.mjs +0 -146
  113. package/esm2022/src/generated/openapi/api/connectorController.serviceInterface.mjs +0 -2
  114. package/esm2022/src/generated/openapi/api/logController.service.mjs +0 -150
  115. package/esm2022/src/generated/openapi/api/logController.serviceInterface.mjs +0 -2
  116. package/esm2022/src/generated/openapi/api/p21Controller.service.mjs +0 -236
  117. package/esm2022/src/generated/openapi/api/p21Controller.serviceInterface.mjs +0 -2
  118. package/esm2022/src/generated/openapi/api/sbController.service.mjs +0 -202
  119. package/esm2022/src/generated/openapi/api/sbController.serviceInterface.mjs +0 -2
  120. package/esm2022/src/generated/openapi/api.module.mjs +0 -40
  121. package/esm2022/src/generated/openapi/configuration.mjs +0 -99
  122. package/esm2022/src/generated/openapi/encoder.mjs +0 -19
  123. package/esm2022/src/generated/openapi/index.mjs +0 -7
  124. package/esm2022/src/generated/openapi/loxia-mst-viewer-src-generated-openapi.mjs +0 -5
  125. package/esm2022/src/generated/openapi/model/actieDto.mjs +0 -13
  126. package/esm2022/src/generated/openapi/model/algemeneRitDto.mjs +0 -13
  127. package/esm2022/src/generated/openapi/model/bewegingDto.mjs +0 -2
  128. package/esm2022/src/generated/openapi/model/frontendKeycloakConfig.mjs +0 -13
  129. package/esm2022/src/generated/openapi/model/frontendProperties.mjs +0 -2
  130. package/esm2022/src/generated/openapi/model/logDto.mjs +0 -2
  131. package/esm2022/src/generated/openapi/model/models.mjs +0 -10
  132. package/esm2022/src/generated/openapi/model/ritRequestDto.mjs +0 -2
  133. package/esm2022/src/generated/openapi/model/signaleringsbeeldDto.mjs +0 -13
  134. package/esm2022/src/generated/openapi/model/signaleringsbeeldRequestDto.mjs +0 -13
  135. package/esm2022/src/generated/openapi/param.mjs +0 -2
  136. package/esm2022/src/generated/openapi/variables.mjs +0 -9
  137. package/generated/openapi/api/api.d.ts +0 -22
  138. package/generated/openapi/api/appConfigController.service.d.ts +0 -38
  139. package/generated/openapi/api/appConfigController.serviceInterface.d.ts +0 -24
  140. package/generated/openapi/api/bewegingController.service.d.ts +0 -40
  141. package/generated/openapi/api/bewegingController.serviceInterface.d.ts +0 -27
  142. package/generated/openapi/api/class0BuildProperties.service.d.ts +0 -36
  143. package/generated/openapi/api/class0BuildProperties.serviceInterface.d.ts +0 -23
  144. package/generated/openapi/api/connectorController.service.d.ts +0 -38
  145. package/generated/openapi/api/connectorController.serviceInterface.d.ts +0 -25
  146. package/generated/openapi/api/logController.service.d.ts +0 -38
  147. package/generated/openapi/api/logController.serviceInterface.d.ts +0 -25
  148. package/generated/openapi/api/p21Controller.service.d.ts +0 -62
  149. package/generated/openapi/api/p21Controller.serviceInterface.d.ts +0 -30
  150. package/generated/openapi/api/sbController.service.d.ts +0 -60
  151. package/generated/openapi/api/sbController.serviceInterface.d.ts +0 -32
  152. package/generated/openapi/api.module.d.ts +0 -11
  153. package/generated/openapi/configuration.d.ts +0 -104
  154. package/generated/openapi/encoder.d.ts +0 -11
  155. package/generated/openapi/index.d.ts +0 -6
  156. package/generated/openapi/model/actieDto.d.ts +0 -35
  157. package/generated/openapi/model/algemeneRitDto.d.ts +0 -28
  158. package/generated/openapi/model/bewegingDto.d.ts +0 -37
  159. package/generated/openapi/model/frontendKeycloakConfig.d.ts +0 -16
  160. package/generated/openapi/model/frontendProperties.d.ts +0 -15
  161. package/generated/openapi/model/logDto.d.ts +0 -22
  162. package/generated/openapi/model/models.d.ts +0 -9
  163. package/generated/openapi/model/ritRequestDto.d.ts +0 -17
  164. package/generated/openapi/model/signaleringsbeeldDto.d.ts +0 -16
  165. package/generated/openapi/model/signaleringsbeeldRequestDto.d.ts +0 -16
  166. package/generated/openapi/param.d.ts +0 -37
  167. package/generated/openapi/variables.d.ts +0 -8
  168. package/generated.version.d.ts +0 -1
  169. package/lib/atomic-components/message/index.d.ts +0 -3
  170. package/lib/atomic-components/message/message.component.d.ts +0 -12
  171. package/lib/atomic-components/message/message.d.ts +0 -7
  172. package/lib/atomic-components/message/severity.enum.d.ts +0 -7
  173. package/lib/atomic-components/messages/messages.component.d.ts +0 -9
  174. package/lib/atomic-components/overlay/overlay.component.d.ts +0 -5
  175. package/lib/atomic-components/progress-indicator/progress-indicator.component.d.ts +0 -5
  176. package/lib/atomic-components/progress-indicator/progress-indicator.entity.d.ts +0 -6
  177. package/lib/atomic-components/services/messages.service.d.ts +0 -12
  178. package/lib/components/carousel-controls/carousel-controls.component.d.ts +0 -19
  179. package/lib/components/mstviewer/mstviewer.component.d.ts +0 -39
  180. package/lib/components/ritdelen-lijst/ritdelen-lijst.component.d.ts +0 -72
  181. package/lib/components/ritdelen-view/ritdelen-view.component.d.ts +0 -33
  182. package/lib/components/rpe/rpe.component.d.ts +0 -11
  183. package/lib/components/svg-visualisatie/svg-visualisatie.component.d.ts +0 -55
  184. package/lib/components/viewer-controls/viewer-controls.component.d.ts +0 -26
  185. package/lib/model/alternatief-rit-deel.d.ts +0 -7
  186. package/lib/model/km-range.d.ts +0 -13
  187. package/lib/model/melding-event.d.ts +0 -5
  188. package/lib/model/nieuwe-route.d.ts +0 -8
  189. package/lib/model/ongeplande-actie.d.ts +0 -6
  190. package/lib/model/rijwegplan-rijweg-dwang-combinatie.d.ts +0 -12
  191. package/lib/model/ritdeel.d.ts +0 -62
  192. package/lib/model/sein-op-ritdeel.d.ts +0 -7
  193. package/lib/model/wissel-kant-code.d.ts +0 -5
  194. package/lib/mst-viewer.module.d.ts +0 -34
  195. package/lib/optimo.d.ts +0 -69
  196. package/lib/resources/mstlogging.resource.d.ts +0 -15
  197. package/lib/resources/signaleringsbeeldinfo.resource.d.ts +0 -36
  198. package/lib/services/base-rest.service.d.ts +0 -16
  199. package/lib/services/beweging-utils.service.d.ts +0 -25
  200. package/lib/services/beweging-verrijker.service.d.ts +0 -11
  201. package/lib/services/connector.service.d.ts +0 -10
  202. package/lib/services/debug.service.d.ts +0 -15
  203. package/lib/services/editor.service.d.ts +0 -23
  204. package/lib/services/print-beweging.service.d.ts +0 -16
  205. package/lib/services/rit-lezer.service.d.ts +0 -22
  206. package/lib/services/signalerings-beeld-manager.service.d.ts +0 -29
  207. package/lib/services/viewer-control.service.d.ts +0 -30
  208. package/lib/state/actions/actions.d.ts +0 -269
  209. package/lib/state/actions/ritdelen.actions.d.ts +0 -97
  210. package/lib/state/effect/bepaal-ongeplande-acties.effect.d.ts +0 -24
  211. package/lib/state/effect/bepaal-sb-infos.effect.d.ts +0 -23
  212. package/lib/state/effect/beweging-invoegen.effect.d.ts +0 -17
  213. package/lib/state/effect/delete-ongeplande-actie.effect.d.ts +0 -15
  214. package/lib/state/effect/focus-effect.d.ts +0 -17
  215. package/lib/state/effect/laad-route-files.effect.d.ts +0 -27
  216. package/lib/state/effect/laad-signaleringsbeelden.effect.d.ts +0 -58
  217. package/lib/state/effect/rit-goedkeuren.effect.d.ts +0 -17
  218. package/lib/state/effect/ritdelen.effect.d.ts +0 -33
  219. package/lib/state/effect/svg-view.effect.d.ts +0 -17
  220. package/lib/state/mst-editor-state.d.ts +0 -70
  221. package/lib/state/reducer/rit-delen.reducer.d.ts +0 -4
  222. package/lib/util/actie-helper.d.ts +0 -117
  223. package/lib/util/actie-popover-bepaler.d.ts +0 -14
  224. package/lib/util/date.service.d.ts +0 -6
  225. package/lib/util/logging-helper.d.ts +0 -16
  226. package/lib/util/melding-builder.d.ts +0 -8
  227. package/lib/util/message-builder.d.ts +0 -13
  228. package/lib/util/multi-map.d.ts +0 -39
  229. package/lib/util/utils.d.ts +0 -3
  230. package/lib/util/zone-util.d.ts +0 -11
  231. package/public-api.d.ts +0 -5
  232. package/src/generated/openapi/api/api.d.ts +0 -22
  233. package/src/generated/openapi/api/appConfigController.service.d.ts +0 -38
  234. package/src/generated/openapi/api/appConfigController.serviceInterface.d.ts +0 -24
  235. package/src/generated/openapi/api/bewegingController.service.d.ts +0 -40
  236. package/src/generated/openapi/api/bewegingController.serviceInterface.d.ts +0 -27
  237. package/src/generated/openapi/api/class0BuildProperties.service.d.ts +0 -36
  238. package/src/generated/openapi/api/class0BuildProperties.serviceInterface.d.ts +0 -23
  239. package/src/generated/openapi/api/connectorController.service.d.ts +0 -38
  240. package/src/generated/openapi/api/connectorController.serviceInterface.d.ts +0 -25
  241. package/src/generated/openapi/api/logController.service.d.ts +0 -38
  242. package/src/generated/openapi/api/logController.serviceInterface.d.ts +0 -25
  243. package/src/generated/openapi/api/p21Controller.service.d.ts +0 -62
  244. package/src/generated/openapi/api/p21Controller.serviceInterface.d.ts +0 -30
  245. package/src/generated/openapi/api/sbController.service.d.ts +0 -60
  246. package/src/generated/openapi/api/sbController.serviceInterface.d.ts +0 -32
  247. package/src/generated/openapi/api.module.d.ts +0 -11
  248. package/src/generated/openapi/configuration.d.ts +0 -104
  249. package/src/generated/openapi/encoder.d.ts +0 -11
  250. package/src/generated/openapi/model/actieDto.d.ts +0 -35
  251. package/src/generated/openapi/model/algemeneRitDto.d.ts +0 -28
  252. package/src/generated/openapi/model/bewegingDto.d.ts +0 -37
  253. package/src/generated/openapi/model/frontendKeycloakConfig.d.ts +0 -16
  254. package/src/generated/openapi/model/frontendProperties.d.ts +0 -15
  255. package/src/generated/openapi/model/logDto.d.ts +0 -22
  256. package/src/generated/openapi/model/models.d.ts +0 -9
  257. package/src/generated/openapi/model/ritRequestDto.d.ts +0 -17
  258. package/src/generated/openapi/model/signaleringsbeeldDto.d.ts +0 -16
  259. package/src/generated/openapi/model/signaleringsbeeldRequestDto.d.ts +0 -16
  260. package/src/generated/openapi/param.d.ts +0 -37
  261. package/src/generated/openapi/variables.d.ts +0 -8
@@ -11,8 +11,8 @@ 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, from, Subscription, combineLatest, forkJoin, of, throwError } from 'rxjs';
15
- import { filter, map, take, tap, catchError, withLatestFrom, switchMap } from 'rxjs/operators';
14
+ import { BehaviorSubject, from, Subscription, combineLatest, of, throwError } from 'rxjs';
15
+ import { take, filter, map, catchError, withLatestFrom, switchMap, tap } from 'rxjs/operators';
16
16
  import * as i1 from '@angular/common/http';
17
17
  import { HttpHeaders, HttpContext, HttpParams } from '@angular/common/http';
18
18
  import { __decorate } from 'tslib';
@@ -41,7 +41,7 @@ class MessageComponent {
41
41
  this.onClearMessage = new EventEmitter();
42
42
  }
43
43
  ngOnInit() {
44
- if (this.message && this.message.timeout > 0) {
44
+ if (this.message.timeout > 0) {
45
45
  setTimeout(() => {
46
46
  this.closeMessage({ stopPropagation: () => null });
47
47
  }, this.message.timeout);
@@ -53,14 +53,14 @@ 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: "20.3.15", ngImport: i0, type: MessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
59
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: MessageComponent, isStandalone: false, 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: "20.3.15", ngImport: i0, type: MessageComponent, decorators: [{
62
62
  type: Component,
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"] }]
63
+ args: [{ selector: 'loxia-message', standalone: false, 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: [{
65
65
  type: Input
66
66
  }], onClearMessage: [{
@@ -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: "20.3.15", ngImport: i0, type: MessagesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
87
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", 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: "20.3.15", ngImport: i0, type: MessagesService, decorators: [{
90
90
  type: Injectable,
91
91
  args: [{ providedIn: 'root' }]
92
92
  }] });
@@ -98,109 +98,32 @@ 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: "20.3.15", ngImport: i0, type: MessagesComponent, deps: [{ token: MessagesService }], target: i0.ɵɵFactoryTarget.Component }); }
102
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: MessagesComponent, isStandalone: false, 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: "20.3.15", ngImport: i0, type: MessagesComponent, decorators: [{
105
105
  type: Component,
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"] }]
106
+ args: [{ selector: 'loxia-messages', standalone: false, 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: "20.3.15", ngImport: i0, type: OverlayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
111
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: OverlayComponent, isStandalone: false, selector: "mst-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: "20.3.15", ngImport: i0, type: OverlayComponent, decorators: [{
114
114
  type: Component,
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"] }]
115
+ args: [{ selector: 'mst-overlay', standalone: false, 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: "20.3.15", ngImport: i0, type: ProgressIndicatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
120
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: ProgressIndicatorComponent, isStandalone: false, selector: "mst-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: "20.3.15", ngImport: i0, type: ProgressIndicatorComponent, decorators: [{
123
123
  type: Component,
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" }]
124
+ args: [{ selector: 'mst-progress-indicator', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, 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.7", 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.7", 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.7", 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
-
204
127
  const version = '8.1.3-SNAPSHOT';
205
128
 
206
129
  const SET_EDITABLE = '[mst] SetEditable';
@@ -246,6 +169,7 @@ const LAAD_EN_VERWERK_SIGNALERINGSBEELD_INFO = '[mst] laadEnVerwerkSignaleringsb
246
169
  const FOCUS_OP_RITDEEL = '[mst] focusOpRitdeel';
247
170
  const FOCUS_OP_IDS = '[mst] focusOpIds';
248
171
  const BEPAAL_SB_INFOS = '[mst] bepaalSbInfos';
172
+ const SET_SELECTED_RITDEEL = '[mst] SetSelectedRitdeel';
249
173
  const setEditable = createAction(SET_EDITABLE, (editable) => ({ editable }));
250
174
  const SetRitSelectieIds = createAction(SET_RIT_SELECTIE_IDS, (ids) => ({ ids }));
251
175
  const SetGeplandeActies = createAction(SET_GEPLANDE_ACTIES, (geplandeActiesMap) => ({ geplandeActiesMap }));
@@ -289,6 +213,7 @@ const navigeerBuitenRit = createAction(NAVIGEER_BUITEN_RIT, (randPuic) => ({ ran
289
213
  const focusOpRitdeel = createAction(FOCUS_OP_RITDEEL, (ritdeel, paginationSize, iaVersieInfo) => ({ ritdeel, paginationSize, iaVersieInfo }));
290
214
  const focusOpIds = createAction(FOCUS_OP_IDS, (puics) => ({ puics }));
291
215
  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 }));
292
217
  // do not export return value
293
218
  const mstActions = union({
294
219
  setEditable,
@@ -326,9 +251,89 @@ const mstActions = union({
326
251
  ClearProgress,
327
252
  BewegingInvoegen,
328
253
  KeurAlleActiesGoed,
329
- UpdateRit
254
+ UpdateRit,
255
+ setSelectedRitdeel: SetSelectedRitdeel
330
256
  });
331
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
300
+ });
301
+
302
+ class Utils {
303
+ static flatMap(xs, f) {
304
+ return xs.reduce((acc, x) => acc.concat(f(x)), []);
305
+ }
306
+ static getValidErorrMessage(err) {
307
+ let errorMsg = '';
308
+ if (err.msg) {
309
+ errorMsg += err.msg;
310
+ }
311
+ if (Array.isArray(err.body)) {
312
+ err.body.forEach(x => errorMsg += x);
313
+ }
314
+ else if (err.body) {
315
+ if (err.body instanceof ProgressEvent) {
316
+ errorMsg = 'Kon geen verbinding maken met de server';
317
+ }
318
+ else if (err.body.text) {
319
+ errorMsg += err.body.text;
320
+ }
321
+ else {
322
+ errorMsg += err.body;
323
+ }
324
+ }
325
+ if (err.message) {
326
+ errorMsg += err.message;
327
+ }
328
+ if (typeof err === 'string' || err instanceof String) {
329
+ errorMsg += err;
330
+ }
331
+ if (errorMsg !== '') {
332
+ return errorMsg;
333
+ }
334
+ }
335
+ }
336
+
332
337
  /**
333
338
  * https://gist.github.com/jordanluyke/609a4fffb69d1ebafdadd313ee2ee804
334
339
  *
@@ -392,7 +397,7 @@ class ArrayMultimap {
392
397
  return Array.from(new Set(this._entries.map(entry => entry.key)));
393
398
  }
394
399
  values() {
395
- return this._entries.reduce((acc, x) => acc.concat(x.value), []);
400
+ return Utils.flatMap(this._entries, x => x.value);
396
401
  }
397
402
  put(key, value) {
398
403
  this._entries.push(new MultimapEntry(key, value));
@@ -486,10 +491,10 @@ class SignaleringsBeeldManagerService {
486
491
  getEersteVerbindingPuicVoorSplitEngelseWissel(engelsWisselNaam, kantcode) {
487
492
  return this.signaleringsBeeldManager.getEersteVerbindingPuicVoorSplitEngelseWissel(engelsWisselNaam, kantcode);
488
493
  }
489
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SignaleringsBeeldManagerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
490
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SignaleringsBeeldManagerService }); }
494
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: SignaleringsBeeldManagerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
495
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: SignaleringsBeeldManagerService }); }
491
496
  }
492
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SignaleringsBeeldManagerService, decorators: [{
497
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: SignaleringsBeeldManagerService, decorators: [{
493
498
  type: Injectable
494
499
  }] });
495
500
 
@@ -498,7 +503,6 @@ class EditorService {
498
503
  this.signaleringsBeeldManagerService = signaleringsBeeldManagerService;
499
504
  this.initReadyPromise();
500
505
  }
501
- // Called from GWT only, can be removed when GWT is gone. any is used because it will be removed with GWT
502
506
  setEditor(editor) {
503
507
  this.editor = editor;
504
508
  this.resolveReadyPromise();
@@ -506,7 +510,6 @@ class EditorService {
506
510
  isReady() {
507
511
  return this.promise;
508
512
  }
509
- // Called from GWT only, can be removed when GWT is gone
510
513
  setSignaleringsBeeldManager(signaleringsBeeldManager) {
511
514
  this.signaleringsBeeldManagerService.set(signaleringsBeeldManager);
512
515
  }
@@ -532,10 +535,10 @@ class EditorService {
532
535
  that.resolveReadyPromise = resolve;
533
536
  }) : this.promise;
534
537
  }
535
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: EditorService, deps: [{ token: SignaleringsBeeldManagerService }], target: i0.ɵɵFactoryTarget.Injectable }); }
536
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: EditorService }); }
538
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: EditorService, deps: [{ token: SignaleringsBeeldManagerService }], target: i0.ɵɵFactoryTarget.Injectable }); }
539
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: EditorService }); }
537
540
  }
538
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: EditorService, decorators: [{
541
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: EditorService, decorators: [{
539
542
  type: Injectable
540
543
  }], ctorParameters: () => [{ type: SignaleringsBeeldManagerService }] });
541
544
 
@@ -552,7 +555,7 @@ class BewegingUtils {
552
555
  const retval = [];
553
556
  retval.length = ritDelen.length;
554
557
  const origineleBewegingMap = this.bepaalOrigineleBewegingMap(origineleBewegingen);
555
- let vorigeBeweging = undefined;
558
+ let vorigeBeweging = null;
556
559
  for (let i = 0; i < ritDelen.length; i++) {
557
560
  const ritdeel = ritDelen[i];
558
561
  if (ritdeel.beweging) {
@@ -582,7 +585,7 @@ class BewegingUtils {
582
585
  }
583
586
  static bewegingenZijnGewijzigd(ritDelen, origineleBewegingen) {
584
587
  const ritDelenArray = ritDelen
585
- .filter(r => r.beweging?.id)
588
+ .filter(r => r.beweging)
586
589
  .map(r => r.beweging.id)
587
590
  .sort((a, b) => a - b);
588
591
  const bewegingenIdArray = origineleBewegingen.map(b => b.id).sort((a, b) => a - b);
@@ -598,9 +601,9 @@ class BewegingUtils {
598
601
  return stringToCheck.indexOf(match) !== -1;
599
602
  }
600
603
  static isGewijzigd(ritdeel, nieuwDwangNummer, origineleBewegingenMap) {
601
- const dwangGewijzigd = ritdeel.beweging?.dwangNummer !== nieuwDwangNummer;
604
+ const dwangGewijzigd = ritdeel.beweging.dwangNummer !== nieuwDwangNummer;
602
605
  let gewijzigd = false;
603
- if (ritdeel.beweging?.wijzigStatus === this.NORMAAL) {
606
+ if (ritdeel.beweging.wijzigStatus === this.NORMAAL) {
604
607
  const origineleBewegingActies = origineleBewegingenMap.get(ritdeel.beweging.id);
605
608
  const huidigeActies = this.createSortedActieIdList(ritdeel.acties);
606
609
  gewijzigd = JSON.stringify(huidigeActies) !== JSON.stringify(origineleBewegingActies);
@@ -624,7 +627,7 @@ class BewegingUtils {
624
627
  let naarSeinPplg;
625
628
  let naarSpoor = newRitdeel.getNaarPrlSpoor();
626
629
  if (eindSein.getTypeAlsString() === BewegingUtils.SEIN_TYPE_FICTIEF) {
627
- if (newRitdeel.heeftVrijebaanInfo() && newRitdeel.getVrijebaanRijweg()) {
630
+ if (newRitdeel.heeftVrijebaanInfo()) {
628
631
  const vbEindSein = newRitdeel.getVrijebaanRijweg().getEindSein();
629
632
  naarSeinNaam = vbEindSein.getName();
630
633
  naarSeinPplg = vbEindSein.getPPLG();
@@ -667,10 +670,10 @@ class BewegingUtils {
667
670
  static toRouteFileDwangNummer(dwangNummer) {
668
671
  return (dwangNummer === 0) ? -1 : dwangNummer;
669
672
  }
670
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BewegingUtils, deps: [{ token: EditorService }], target: i0.ɵɵFactoryTarget.Injectable }); }
671
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BewegingUtils }); }
673
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BewegingUtils, deps: [{ token: EditorService }], target: i0.ɵɵFactoryTarget.Injectable }); }
674
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BewegingUtils }); }
672
675
  }
673
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BewegingUtils, decorators: [{
676
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BewegingUtils, decorators: [{
674
677
  type: Injectable
675
678
  }], ctorParameters: () => [{ type: EditorService }] });
676
679
 
@@ -683,8 +686,6 @@ class ViewerControlService {
683
686
  this.printing$ = new BehaviorSubject(false);
684
687
  this.sideNavOpen = false;
685
688
  this.sideNavOpen$ = new BehaviorSubject(this.sideNavOpen);
686
- this.selectieInfos = [];
687
- this.origineelTreinPad = {};
688
689
  this.subscriptions.add(combineLatest([
689
690
  store.select('ritSelectieIds'),
690
691
  store.select('actieOpRitSelectieIds'),
@@ -704,18 +705,19 @@ class ViewerControlService {
704
705
  selectie.push(new SelectieInfo(eind, 'zigzagNaar'));
705
706
  this.selectieInfos = selectie;
706
707
  }));
708
+ this.subscriptions.add(store.select('ritDelen').subscribe(ritdelen => this.ritdelen = ritdelen));
707
709
  }
708
710
  toggleSideNavVisible() {
709
711
  this.sideNavOpen = !this.sideNavOpen;
710
712
  this.sideNavOpen$.next(this.sideNavOpen);
711
713
  }
712
714
  keurAlleActiesGoed(ongeplandeActies) {
713
- this.store.select('ritDelen').pipe(take(1), filter(ritdelen => !!ritdelen), tap(ritdelen => {
715
+ if (this.ritdelen) {
714
716
  this.store.dispatch(ShowProgress());
715
- const bewegingen = this.bewegingUtils.extractBewegingenUitRitdelen(ritdelen, this.origineelTreinPad.bewegingen);
716
- const alleActies = this.verzamelAlleActies(ritdelen, ongeplandeActies);
717
+ const bewegingen = this.bewegingUtils.extractBewegingenUitRitdelen(this.ritdelen, this.origineelTreinPad.bewegingen);
718
+ const alleActies = this.verzamelAlleActies(this.ritdelen, ongeplandeActies);
717
719
  this.store.dispatch(KeurAlleActiesGoed(this.getBewegingenZonderActies(bewegingen), alleActies));
718
- })).subscribe();
720
+ }
719
721
  }
720
722
  setValideRit(valideRit) {
721
723
  this.valideRit$.next(valideRit);
@@ -762,10 +764,10 @@ class ViewerControlService {
762
764
  isPrinting$() {
763
765
  return this.printing$;
764
766
  }
765
- 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 }); }
766
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ViewerControlService, providedIn: 'root' }); }
767
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ViewerControlService, deps: [{ token: i2$1.Store }, { token: BewegingUtils }], target: i0.ɵɵFactoryTarget.Injectable }); }
768
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ViewerControlService, providedIn: 'root' }); }
767
769
  }
768
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ViewerControlService, decorators: [{
770
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ViewerControlService, decorators: [{
769
771
  type: Injectable,
770
772
  args: [{
771
773
  providedIn: 'root'
@@ -781,10 +783,10 @@ class DebugService {
781
783
  setDebugFlag(debug) {
782
784
  this.store.dispatch(SetDebug(debug));
783
785
  if (debug) {
784
- document.getElementById('svgContainer')?.addEventListener('mouseover', this.listener);
786
+ document.getElementById('svgContainer').addEventListener('mouseover', this.listener);
785
787
  }
786
788
  else {
787
- document.getElementById('svgContainer')?.removeEventListener('mouseover', this.listener);
789
+ document.getElementById('svgContainer').removeEventListener('mouseover', this.listener);
788
790
  }
789
791
  }
790
792
  debugEventListener() {
@@ -815,10 +817,10 @@ class DebugService {
815
817
  console.log(logline);
816
818
  }
817
819
  }
818
- 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 }); }
819
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DebugService, providedIn: 'root' }); }
820
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DebugService, deps: [{ token: i2$1.Store }, { token: SignaleringsBeeldManagerService }], target: i0.ɵɵFactoryTarget.Injectable }); }
821
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DebugService, providedIn: 'root' }); }
820
822
  }
821
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DebugService, decorators: [{
823
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DebugService, decorators: [{
822
824
  type: Injectable,
823
825
  args: [{
824
826
  providedIn: 'root'
@@ -830,28 +832,26 @@ class PrintBewegingService {
830
832
  this.store = store;
831
833
  this.viewerControlService = viewerControlService;
832
834
  this.sbmService = sbmService;
833
- }
834
- printBeweging(bewegingId, paginationSize) {
835
- return new Promise((resolve, reject) => {
836
- this.store.select('ritDelen').pipe(take(1), tap(ritdelen => {
837
- const gevondenRitdeel = ritdelen.filter(r => Number.parseInt(r.getBewegingId(), 10) === bewegingId);
838
- // hide/show de knoppen
839
- const printing = !!bewegingId && gevondenRitdeel.length === 1;
840
- this.viewerControlService.setPrinting(printing);
841
- if (!printing) {
842
- reject(new Error('Geen beweging gevonden voor ' + bewegingId));
843
- return;
844
- }
845
- const ritdeel = gevondenRitdeel[0];
846
- if (ritdeel.isNietBeschikbaar()) {
847
- this.store.dispatch(navigeerVanaf(paginationSize, ritdeel));
848
- this.store.dispatch(ShowProgress());
849
- setTimeout(() => this.focusOpBeweging(ritdeel, resolve), 1000);
850
- }
851
- else {
852
- this.focusOpBeweging(ritdeel, resolve);
853
- }
854
- })).subscribe();
835
+ this.store.select(s => s.ritDelen).subscribe(ritdelen => this.ritdelen = ritdelen);
836
+ }
837
+ printBeweging(bewegingId, paginationSize, iaVersieInfo) {
838
+ const gevondenRitdeel = this.ritdelen.filter(r => parseInt(r.getBewegingId(), 10) === bewegingId);
839
+ // hide/show de knoppen
840
+ const printing = !!bewegingId && gevondenRitdeel.length === 1;
841
+ this.viewerControlService.setPrinting(printing);
842
+ if (!printing) {
843
+ return Promise.reject(new Error('Geen beweging gevonden voor ' + bewegingId));
844
+ }
845
+ return new Promise((resolve) => {
846
+ const ritdeel = gevondenRitdeel[0];
847
+ if (ritdeel.isNietBeschikbaar()) {
848
+ this.store.dispatch(navigeerVanaf(paginationSize, iaVersieInfo, ritdeel));
849
+ this.store.dispatch(ShowProgress());
850
+ setTimeout(() => this.focusOpBeweging(ritdeel, resolve), 1000);
851
+ }
852
+ else {
853
+ this.focusOpBeweging(ritdeel, resolve);
854
+ }
855
855
  });
856
856
  }
857
857
  focusOpBeweging(ritdeel, resolve) {
@@ -875,10 +875,10 @@ class PrintBewegingService {
875
875
  getPuics(topoElementen) {
876
876
  return topoElementen.map(e => e.getPuic());
877
877
  }
878
- 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 }); }
879
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PrintBewegingService, providedIn: 'root' }); }
878
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: PrintBewegingService, deps: [{ token: i2$1.Store }, { token: ViewerControlService }, { token: SignaleringsBeeldManagerService }], target: i0.ɵɵFactoryTarget.Injectable }); }
879
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: PrintBewegingService, providedIn: 'root' }); }
880
880
  }
881
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PrintBewegingService, decorators: [{
881
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: PrintBewegingService, decorators: [{
882
882
  type: Injectable,
883
883
  args: [{
884
884
  providedIn: 'root'
@@ -886,12 +886,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
886
886
  }], ctorParameters: () => [{ type: i2$1.Store }, { type: ViewerControlService }, { type: SignaleringsBeeldManagerService }] });
887
887
 
888
888
  class RpeComponent {
889
- constructor() {
890
- this.baseurl = '';
891
- this.path = '';
892
- }
893
889
  convertToScript() {
894
- const element = this.script?.nativeElement;
890
+ const element = this.script.nativeElement;
895
891
  const script = document.createElement('script');
896
892
  script.type = 'text/javascript';
897
893
  if (this.baseurl && this.path) {
@@ -905,12 +901,12 @@ class RpeComponent {
905
901
  ngAfterViewInit() {
906
902
  this.convertToScript();
907
903
  }
908
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RpeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
909
- 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" }); }
904
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RpeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
905
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: RpeComponent, isStandalone: false, 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" }); }
910
906
  }
911
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RpeComponent, decorators: [{
907
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RpeComponent, decorators: [{
912
908
  type: Component,
913
- args: [{ selector: 'rpe-component', template: "<div #rpescript style.display=\"none\">\n <ng-content></ng-content>\n</div>\n" }]
909
+ args: [{ selector: 'rpe-component', standalone: false, template: "<div #rpescript style.display=\"none\">\n <ng-content></ng-content>\n</div>\n" }]
914
910
  }], propDecorators: { baseurl: [{
915
911
  type: Input
916
912
  }], path: [{
@@ -944,7 +940,7 @@ class KmRange {
944
940
  if (result.length >= 1) {
945
941
  return result[0];
946
942
  }
947
- return undefined;
943
+ return null;
948
944
  }
949
945
  heeftOverlap(kilometrering1, kilometrering2) {
950
946
  const vanKilometrering = KmRange.getKilometrering(kilometrering1.getKmLint(), this.vanKilometreringen);
@@ -991,41 +987,6 @@ class MeldingBuilder {
991
987
  }
992
988
  }
993
989
 
994
- class Utils {
995
- static getValidErorrMessage(err) {
996
- let errorMsg = '';
997
- if (err.msg) {
998
- errorMsg += err.msg;
999
- }
1000
- if (Array.isArray(err.body)) {
1001
- err.body.forEach((x) => errorMsg += x);
1002
- }
1003
- else if (err.body) {
1004
- if (err.body instanceof ProgressEvent) {
1005
- errorMsg = 'Kon geen verbinding maken met de server';
1006
- }
1007
- else if (err.body.text) {
1008
- errorMsg += err.body.text;
1009
- }
1010
- else {
1011
- errorMsg += err.body;
1012
- }
1013
- }
1014
- if (err.message) {
1015
- errorMsg += err.message;
1016
- }
1017
- if (typeof err === 'string' || err instanceof String) {
1018
- errorMsg += err;
1019
- }
1020
- if (errorMsg !== '') {
1021
- return errorMsg;
1022
- }
1023
- else {
1024
- return 'Er is een onbekende fout opgetreden';
1025
- }
1026
- }
1027
- }
1028
-
1029
990
  class MessageBuilder {
1030
991
  static rwpDataNietGevonden(err) {
1031
992
  return new Message(Severity.ERROR, 'Error bij ophalen van rijwegplan data: ' + err);
@@ -1296,10 +1257,10 @@ class AppConfigControllerService {
1296
1257
  reportProgress: reportProgress
1297
1258
  });
1298
1259
  }
1299
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AppConfigControllerService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
1300
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AppConfigControllerService, providedIn: 'root' }); }
1260
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AppConfigControllerService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
1261
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AppConfigControllerService, providedIn: 'root' }); }
1301
1262
  }
1302
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AppConfigControllerService, decorators: [{
1263
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AppConfigControllerService, decorators: [{
1303
1264
  type: Injectable,
1304
1265
  args: [{
1305
1266
  providedIn: 'root'
@@ -1442,10 +1403,10 @@ class BewegingControllerService {
1442
1403
  reportProgress: reportProgress
1443
1404
  });
1444
1405
  }
1445
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BewegingControllerService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
1446
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BewegingControllerService, providedIn: 'root' }); }
1406
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BewegingControllerService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
1407
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BewegingControllerService, providedIn: 'root' }); }
1447
1408
  }
1448
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BewegingControllerService, decorators: [{
1409
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BewegingControllerService, decorators: [{
1449
1410
  type: Injectable,
1450
1411
  args: [{
1451
1412
  providedIn: 'root'
@@ -1573,10 +1534,10 @@ class Class0BuildPropertiesService {
1573
1534
  reportProgress: reportProgress
1574
1535
  });
1575
1536
  }
1576
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: Class0BuildPropertiesService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
1577
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: Class0BuildPropertiesService, providedIn: 'root' }); }
1537
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: Class0BuildPropertiesService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
1538
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: Class0BuildPropertiesService, providedIn: 'root' }); }
1578
1539
  }
1579
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: Class0BuildPropertiesService, decorators: [{
1540
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: Class0BuildPropertiesService, decorators: [{
1580
1541
  type: Injectable,
1581
1542
  args: [{
1582
1543
  providedIn: 'root'
@@ -1710,10 +1671,10 @@ class ConnectorControllerService {
1710
1671
  reportProgress: reportProgress
1711
1672
  });
1712
1673
  }
1713
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ConnectorControllerService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
1714
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ConnectorControllerService, providedIn: 'root' }); }
1674
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ConnectorControllerService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
1675
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ConnectorControllerService, providedIn: 'root' }); }
1715
1676
  }
1716
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ConnectorControllerService, decorators: [{
1677
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ConnectorControllerService, decorators: [{
1717
1678
  type: Injectable,
1718
1679
  args: [{
1719
1680
  providedIn: 'root'
@@ -1851,10 +1812,10 @@ class LogControllerService {
1851
1812
  reportProgress: reportProgress
1852
1813
  });
1853
1814
  }
1854
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LogControllerService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
1855
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LogControllerService, providedIn: 'root' }); }
1815
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: LogControllerService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
1816
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: LogControllerService, providedIn: 'root' }); }
1856
1817
  }
1857
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LogControllerService, decorators: [{
1818
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: LogControllerService, decorators: [{
1858
1819
  type: Injectable,
1859
1820
  args: [{
1860
1821
  providedIn: 'root'
@@ -2078,10 +2039,10 @@ class P21ControllerService {
2078
2039
  reportProgress: reportProgress
2079
2040
  });
2080
2041
  }
2081
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: P21ControllerService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
2082
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: P21ControllerService, providedIn: 'root' }); }
2042
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: P21ControllerService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
2043
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: P21ControllerService, providedIn: 'root' }); }
2083
2044
  }
2084
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: P21ControllerService, decorators: [{
2045
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: P21ControllerService, decorators: [{
2085
2046
  type: Injectable,
2086
2047
  args: [{
2087
2048
  providedIn: 'root'
@@ -2271,10 +2232,10 @@ class SbControllerService {
2271
2232
  reportProgress: reportProgress
2272
2233
  });
2273
2234
  }
2274
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SbControllerService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
2275
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SbControllerService, providedIn: 'root' }); }
2235
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: SbControllerService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
2236
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: SbControllerService, providedIn: 'root' }); }
2276
2237
  }
2277
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SbControllerService, decorators: [{
2238
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: SbControllerService, decorators: [{
2278
2239
  type: Injectable,
2279
2240
  args: [{
2280
2241
  providedIn: 'root'
@@ -2366,11 +2327,11 @@ class ApiModule {
2366
2327
  'See also https://github.com/angular/angular/issues/20575');
2367
2328
  }
2368
2329
  }
2369
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ApiModule, deps: [{ token: ApiModule, optional: true, skipSelf: true }, { token: i1.HttpClient, optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
2370
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.7", ngImport: i0, type: ApiModule }); }
2371
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ApiModule }); }
2330
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ApiModule, deps: [{ token: ApiModule, optional: true, skipSelf: true }, { token: i1.HttpClient, optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
2331
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: ApiModule }); }
2332
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ApiModule }); }
2372
2333
  }
2373
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ApiModule, decorators: [{
2334
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ApiModule, decorators: [{
2374
2335
  type: NgModule,
2375
2336
  args: [{
2376
2337
  imports: [],
@@ -2399,10 +2360,10 @@ class MstLoggingResource {
2399
2360
  logMessages(logDto) {
2400
2361
  this.controller.log(logDto).subscribe();
2401
2362
  }
2402
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MstLoggingResource, deps: [{ token: LogControllerService }, { token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
2403
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MstLoggingResource }); }
2363
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: MstLoggingResource, deps: [{ token: LogControllerService }, { token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
2364
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: MstLoggingResource }); }
2404
2365
  }
2405
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MstLoggingResource, decorators: [{
2366
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: MstLoggingResource, decorators: [{
2406
2367
  type: Injectable
2407
2368
  }], ctorParameters: () => [{ type: LogControllerService }, { type: i2$1.Store }] });
2408
2369
 
@@ -2411,35 +2372,38 @@ class LoggingHelper {
2411
2372
  this.store = store;
2412
2373
  }
2413
2374
  maakLogDTO(melding, actie) {
2414
- return combineLatest([
2415
- this.store.select('algemeneRitInfoDto'),
2416
- this.store.select('iaVersie')
2417
- ]).pipe(take(1), map(([algemeneRitInfoDto, iaVersie]) => {
2418
- let actieDto = null;
2419
- if (actie) {
2420
- actieDto = {
2421
- pplgNaam: actie.pplgNaam,
2422
- ritActieTypeOmschrijving: actie.ritActieTypeOmschrijving,
2423
- ritActieStatus: actie.ritActieStatus,
2424
- bewegingId: actie.bewegingId,
2425
- wisselType: actie.wisselType,
2426
- wisselNaam: actie.wisselNaam,
2427
- wisselKantCode: actie.wisselKantCode,
2428
- vanKilometerlint: actie.vanKilometerlint,
2429
- vanKilometrering: actie.vanKilometrering,
2430
- totKilometerlint: actie.totKilometerlint,
2431
- totKilometrering: actie.totKilometrering
2432
- };
2433
- }
2434
- return {
2435
- iaVersie: iaVersie.versie,
2436
- meldingLevel: melding.meldingLevel,
2437
- meldingMessage: melding.meldingMessage,
2438
- actieDto,
2439
- algemeneRitInfoDto,
2440
- sbinfoDtos: this.getSbInfoDtos()
2375
+ let iaVersie = '';
2376
+ let algemeneRitInfoDto = null;
2377
+ let actieDto = null;
2378
+ this.store.select('algemeneRitInfoDto').pipe(take(1)).subscribe(dto => {
2379
+ algemeneRitInfoDto = dto;
2380
+ });
2381
+ this.store.select('iaVersie').pipe(take(1)).subscribe(ia => {
2382
+ iaVersie = ia.versie;
2383
+ });
2384
+ if (actie) {
2385
+ actieDto = {
2386
+ pplgNaam: actie.pplgNaam,
2387
+ ritActieTypeOmschrijving: actie.ritActieTypeOmschrijving,
2388
+ ritActieStatus: actie.ritActieStatus,
2389
+ bewegingId: actie.bewegingId,
2390
+ wisselType: actie.wisselType,
2391
+ wisselNaam: actie.wisselNaam,
2392
+ wisselKantCode: actie.wisselKantCode,
2393
+ vanKilometerlint: actie.vanKilometerlint,
2394
+ vanKilometrering: actie.vanKilometrering,
2395
+ totKilometerlint: actie.totKilometerlint,
2396
+ totKilometrering: actie.totKilometrering
2441
2397
  };
2442
- }));
2398
+ }
2399
+ return {
2400
+ iaVersie,
2401
+ meldingLevel: melding.meldingLevel,
2402
+ meldingMessage: melding.meldingMessage,
2403
+ actieDto,
2404
+ algemeneRitInfoDto,
2405
+ sbinfoDtos: this.getSbInfoDtos()
2406
+ };
2443
2407
  }
2444
2408
  getSbInfoDtos() {
2445
2409
  const sbInfoDtos = [];
@@ -2450,10 +2414,10 @@ class LoggingHelper {
2450
2414
  });
2451
2415
  return sbInfoDtos;
2452
2416
  }
2453
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LoggingHelper, deps: [{ token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
2454
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LoggingHelper }); }
2417
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: LoggingHelper, deps: [{ token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
2418
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: LoggingHelper }); }
2455
2419
  }
2456
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LoggingHelper, decorators: [{
2420
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: LoggingHelper, decorators: [{
2457
2421
  type: Injectable
2458
2422
  }], ctorParameters: () => [{ type: i2$1.Store }] });
2459
2423
 
@@ -2551,7 +2515,6 @@ class ActieHelper {
2551
2515
  this.messagesService = messagesService;
2552
2516
  this.store = store;
2553
2517
  this.loggingHelper = loggingHelper;
2554
- this.debug = false;
2555
2518
  this.store.select('debug').subscribe(debug => this.debug = debug);
2556
2519
  }
2557
2520
  static getActieTopoElements(ritDeel, sbmService) {
@@ -2585,10 +2548,10 @@ class ActieHelper {
2585
2548
  }
2586
2549
  }
2587
2550
  static actieComparator(actie1, actie2) {
2588
- if (actie1.vanKilometrering && actie2.vanKilometrering && actie1.vanKilometrering !== actie2.vanKilometrering) {
2551
+ if (actie1.vanKilometrering !== actie2.vanKilometrering) {
2589
2552
  return actie1.vanKilometrering > actie2.vanKilometrering ? 1 : -1;
2590
2553
  }
2591
- if (actie1.ritActieTypeOmschrijving && actie2.ritActieTypeOmschrijving && actie1.ritActieTypeOmschrijving !== actie2.ritActieTypeOmschrijving) {
2554
+ if (actie1.ritActieTypeOmschrijving !== actie2.ritActieTypeOmschrijving) {
2592
2555
  return actie1.ritActieTypeOmschrijving > actie2.ritActieTypeOmschrijving ? 1 : -1;
2593
2556
  }
2594
2557
  if (actie1.wisselNaam !== actie2.wisselNaam) {
@@ -2628,9 +2591,9 @@ class ActieHelper {
2628
2591
  // make sure the elems are sorted in ascending order
2629
2592
  static sorteerTopoElementen(topoElems) {
2630
2593
  const topoElementen = topoElems.slice();
2631
- let lint = undefined;
2632
- let first;
2633
- let second;
2594
+ let lint = null;
2595
+ let first = null;
2596
+ let second = null;
2634
2597
  for (const topoElement of topoElementen) {
2635
2598
  let kilometreringen = null;
2636
2599
  const kms = JsJavaUtil.listToArray(topoElement.getKilometreringen());
@@ -2662,11 +2625,11 @@ class ActieHelper {
2662
2625
  if (!totKilometreringen && vanKilometreringen) {
2663
2626
  totKilometreringen = [new MstKilometrering(vanKilometreringen[0].getKmLint(), 100000)];
2664
2627
  }
2665
- if (vanKilometreringen && totKilometreringen && vanKilometreringen[0] > totKilometreringen[0]) {
2628
+ if (vanKilometreringen[0] > totKilometreringen[0]) {
2666
2629
  kmRanges.push(KmRange.rangeVoorStrekObject(e, this.addKm(vanKilometreringen, -1), this.addKm(totKilometreringen, 1)));
2667
2630
  }
2668
2631
  else {
2669
- kmRanges.push(KmRange.rangeVoorStrekObject(e, this.addKm(vanKilometreringen ?? [], 1), this.addKm(totKilometreringen ?? [], -1)));
2632
+ kmRanges.push(KmRange.rangeVoorStrekObject(e, this.addKm(vanKilometreringen, 1), this.addKm(totKilometreringen, -1)));
2670
2633
  }
2671
2634
  });
2672
2635
  }
@@ -2757,23 +2720,21 @@ class ActieHelper {
2757
2720
  else {
2758
2721
  const puics = [];
2759
2722
  kmRanges.forEach(kmRange => {
2760
- if (actie.vanKilometrering && actie.vanKilometerlint && actie.totKilometrering && actie.totKilometerlint) {
2761
- let vanKilometrering = new MstKilometrering(actie.vanKilometerlint, actie.vanKilometrering);
2762
- let totKilometrering = new MstKilometrering(actie.totKilometerlint, actie.totKilometrering);
2763
- if (actie.vanKilometrering > actie.totKilometrering) {
2764
- const temp = { van: vanKilometrering, tot: totKilometrering };
2765
- vanKilometrering = temp.tot;
2766
- totKilometrering = temp.van;
2767
- }
2768
- if (kmRange.heeftOverlap(vanKilometrering, totKilometrering)) {
2769
- puics.push(kmRange.topologyElement.getPuic());
2770
- }
2723
+ let vanKilometrering = new MstKilometrering(actie.vanKilometerlint, actie.vanKilometrering);
2724
+ let totKilometrering = new MstKilometrering(actie.totKilometerlint, actie.totKilometrering);
2725
+ if (actie.vanKilometrering > actie.totKilometrering) {
2726
+ const temp = { van: vanKilometrering, tot: totKilometrering };
2727
+ vanKilometrering = temp.tot;
2728
+ totKilometrering = temp.van;
2729
+ }
2730
+ if (kmRange.heeftOverlap(vanKilometrering, totKilometrering)) {
2731
+ puics.push(kmRange.topologyElement.getPuic());
2771
2732
  }
2772
2733
  });
2773
2734
  if (puics.length === 0) {
2774
2735
  actieZonderElementen.push(actie.id);
2775
2736
  const melding = MeldingBuilder.actieHighlightError(actieZonderElementen);
2776
- this.loggingHelper.maakLogDTO(melding, actie).pipe(tap(dto => logMeldingDTOs.push(dto))).subscribe();
2737
+ logMeldingDTOs.push(this.loggingHelper.maakLogDTO(melding, actie));
2777
2738
  }
2778
2739
  retval.putAll(actie, puics);
2779
2740
  }
@@ -2789,7 +2750,7 @@ class ActieHelper {
2789
2750
  verwerkTopoElementen(topoElementen) {
2790
2751
  const kmRanges = [];
2791
2752
  let topoElementenZonderKms = [];
2792
- let laatstePuntKms = undefined;
2753
+ let laatstePuntKms = null;
2793
2754
  topoElementen.forEach(elem => {
2794
2755
  const kms = JsJavaUtil.listToArray(elem.getKilometreringen());
2795
2756
  if (kms.length > 0) {
@@ -2803,7 +2764,7 @@ class ActieHelper {
2803
2764
  }
2804
2765
  });
2805
2766
  if (topoElementenZonderKms.length > 0 && laatstePuntKms) {
2806
- ActieHelper.corrigeerTopoElementenZonderKms(topoElementenZonderKms, laatstePuntKms, undefined, kmRanges);
2767
+ ActieHelper.corrigeerTopoElementenZonderKms(topoElementenZonderKms, laatstePuntKms, null, kmRanges);
2807
2768
  }
2808
2769
  return kmRanges;
2809
2770
  }
@@ -2866,21 +2827,21 @@ class ActieHelper {
2866
2827
  if (ActieHelper.isKantCodeLinks(kantcode)) {
2867
2828
  return wissel.getLeft();
2868
2829
  }
2869
- return undefined;
2830
+ return null;
2870
2831
  }
2871
2832
  bepaalPuicVoorWisselSlijpenActie(actie) {
2872
2833
  const storingsSymboolPuic = this.sbmService.getSBWissel(actie.wisselNaam, actie.pplgNaam)?.getStoringSymboolPuic();
2873
2834
  if (!storingsSymboolPuic && this.debug) {
2874
2835
  const melding = MeldingBuilder.actieHighlightError([actie.id]);
2875
2836
  this.messagesService.showMessage(MessageBuilder.actieHighlightError([actie.id]));
2876
- this.loggingHelper.maakLogDTO(melding, actie).pipe(tap(logDto => this.mstLogResource.logMessages([logDto]))).subscribe();
2837
+ this.mstLogResource.logMessages([this.loggingHelper.maakLogDTO(melding, actie)]);
2877
2838
  }
2878
2839
  return storingsSymboolPuic ? [storingsSymboolPuic] : [];
2879
2840
  }
2880
- 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 }); }
2881
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ActieHelper }); }
2841
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ActieHelper, deps: [{ token: SignaleringsBeeldManagerService }, { token: MstLoggingResource }, { token: MessagesService }, { token: i2$1.Store }, { token: LoggingHelper }], target: i0.ɵɵFactoryTarget.Injectable }); }
2842
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ActieHelper }); }
2882
2843
  }
2883
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ActieHelper, decorators: [{
2844
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ActieHelper, decorators: [{
2884
2845
  type: Injectable
2885
2846
  }], ctorParameters: () => [{ type: SignaleringsBeeldManagerService }, { type: MstLoggingResource }, { type: MessagesService }, { type: i2$1.Store }, { type: LoggingHelper }] });
2886
2847
 
@@ -2888,16 +2849,10 @@ class RitdelenLijstComponent {
2888
2849
  constructor(store, sbmService) {
2889
2850
  this.store = store;
2890
2851
  this.sbmService = sbmService;
2891
- this.nietGeplandeActies = [];
2892
2852
  this.focusEmitter = new EventEmitter();
2893
2853
  this.keurAlleActiesGoed = new EventEmitter();
2894
- this.ritdeelViewModels = [];
2895
2854
  this.selectedRitdeelActies = [];
2896
2855
  this.selectedRitdeelOngeplandeActies = [];
2897
- this.disableActieKnoppenVanRitdeel = true;
2898
- this.editable = false;
2899
- this.ongeplandeActiesMap = new ArrayMultimap();
2900
- this.geplandeActies = new ArrayMultimap();
2901
2856
  this.NG_ACTIE_PREFIX = '* ';
2902
2857
  this.subscriptions = [];
2903
2858
  this.subscriptions.push(store.select('ritDelen').subscribe((ritdelen) => {
@@ -2908,6 +2863,9 @@ class RitdelenLijstComponent {
2908
2863
  this.subscriptions.push(store.select('ongeplandeActies').subscribe(acties => this.ongeplandeActiesMap = acties));
2909
2864
  this.subscriptions.push(store.select('geplandeActies').subscribe(acties => this.geplandeActies = acties));
2910
2865
  this.subscriptions.push(store.select('editable').subscribe(editable => this.editable = editable));
2866
+ // listen to changes from svg-viewer-component, saving ritdeel in store isn't cool because of all the gwt in it. This is
2867
+ // just to make changes within the angular lifecycle.
2868
+ this.subscriptions.push(store.select('selectedRitdeelId').pipe(filter(id => !id)).subscribe(this.deselectRitdeel));
2911
2869
  this.subscriptions.push(combineLatest([
2912
2870
  this.store.select('ritDelen'),
2913
2871
  this.store.select('ongeplandeActies')
@@ -2944,14 +2902,12 @@ class RitdelenLijstComponent {
2944
2902
  this.store.dispatch(deleteRitdeel(ritdeel));
2945
2903
  }
2946
2904
  deleteActiesUitRit() {
2947
- this.selectedRitdeel?.acties.slice().forEach(actie => {
2905
+ this.selectedRitdeel.acties.slice().forEach(actie => {
2948
2906
  this.deleteActieUitRit(actie);
2949
2907
  });
2950
2908
  }
2951
2909
  deleteActieUitRit(actie) {
2952
- if (!this.selectedRitdeel)
2953
- return;
2954
- const acties = this.selectedRitdeel.acties ?? [];
2910
+ const acties = this.selectedRitdeel.acties;
2955
2911
  const idx = acties.indexOf(actie);
2956
2912
  if (idx >= 0) {
2957
2913
  this.verhuisActieNaarOngepland(actie);
@@ -2977,7 +2933,7 @@ class RitdelenLijstComponent {
2977
2933
  }
2978
2934
  voegActieToeAanRit(ongeplandeActie) {
2979
2935
  const idx = this.selectedRitdeelOngeplandeActies.indexOf(ongeplandeActie);
2980
- if (idx >= 0 && this.selectedRitdeel) {
2936
+ if (idx >= 0) {
2981
2937
  this.store.dispatch(addRitdeelActie(this.selectedRitdeel, this.selectedRitdeelOngeplandeActies[idx].actie));
2982
2938
  this.store.dispatch(AddGeplandeActie(ongeplandeActie.actie, ongeplandeActie.puics));
2983
2939
  this.store.dispatch(DeleteOngeplandeActie(ongeplandeActie));
@@ -3079,13 +3035,13 @@ class RitdelenLijstComponent {
3079
3035
  return `${prefix}${ActieHelper.getVSTActieOmschrijving(actie)}`;
3080
3036
  }
3081
3037
  bepaalPrefixVoorActieOmschrijving(actie) {
3082
- const noPrefix = '';
3083
- if (this.selectedRitdeel?.acties.includes(actie)) {
3038
+ const prefix = '';
3039
+ if (this.selectedRitdeel.acties.includes(actie)) {
3084
3040
  // Afwijkende naam bij niet gevisualiseerde actie in rit
3085
3041
  const puics = this.geplandeActies.get(actie);
3086
- return puics.length > 0 ? noPrefix : this.NG_ACTIE_PREFIX;
3042
+ return puics.length > 0 ? prefix : this.NG_ACTIE_PREFIX;
3087
3043
  }
3088
- return noPrefix;
3044
+ return prefix;
3089
3045
  }
3090
3046
  actieVanKmTekst(actie) {
3091
3047
  if (ActieHelper.isWisselSlijpenActie(actie)) {
@@ -3106,7 +3062,6 @@ class RitdelenLijstComponent {
3106
3062
  return ritdeel.getPplgString();
3107
3063
  }
3108
3064
  getKantCode(stand) {
3109
- // @ts-ignore
3110
3065
  if (stand === window['domein'].Stand.LINKS) {
3111
3066
  return 'L';
3112
3067
  }
@@ -3116,12 +3071,12 @@ class RitdelenLijstComponent {
3116
3071
  this.keurAlleActiesGoed.emit();
3117
3072
  this.deselectRitdeel();
3118
3073
  }
3119
- 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 }); }
3120
- 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 }); }
3074
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RitdelenLijstComponent, deps: [{ token: i2$1.Store }, { token: SignaleringsBeeldManagerService }], target: i0.ɵɵFactoryTarget.Component }); }
3075
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: RitdelenLijstComponent, isStandalone: false, 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 }); }
3121
3076
  }
3122
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RitdelenLijstComponent, decorators: [{
3077
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RitdelenLijstComponent, decorators: [{
3123
3078
  type: Component,
3124
- 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"] }]
3079
+ args: [{ selector: 'ritdelen-lijst', changeDetection: ChangeDetectionStrategy.Default, standalone: false, 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"] }]
3125
3080
  }], ctorParameters: () => [{ type: i2$1.Store }, { type: SignaleringsBeeldManagerService }], propDecorators: { nietGeplandeActies: [{
3126
3081
  type: Input
3127
3082
  }], focusEmitter: [{
@@ -3219,12 +3174,12 @@ class RitdelenViewComponent {
3219
3174
  }
3220
3175
  return false;
3221
3176
  }
3222
- 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 }); }
3223
- 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"] }] }); }
3177
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RitdelenViewComponent, deps: [{ token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
3178
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: RitdelenViewComponent, isStandalone: false, 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"] }] }); }
3224
3179
  }
3225
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RitdelenViewComponent, decorators: [{
3180
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RitdelenViewComponent, decorators: [{
3226
3181
  type: Component,
3227
- 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"] }]
3182
+ args: [{ selector: 'ritdelen-view', standalone: false, 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"] }]
3228
3183
  }], ctorParameters: () => [{ type: i2$1.Store }], propDecorators: { focusEmitter: [{
3229
3184
  type: Output
3230
3185
  }], keyEvent: [{
@@ -3243,18 +3198,49 @@ class RitdeelViewModel {
3243
3198
  }
3244
3199
  }
3245
3200
 
3201
+ class CarouselControlsComponent {
3202
+ constructor(store) {
3203
+ this.store = store;
3204
+ this.paginationSize = 4;
3205
+ this.ritdelen$ = this.store.select('ritDelen').pipe(filter(r => r?.length > 0));
3206
+ this.kanLinks$ = this.ritdelen$.pipe(map(r => this.kanLinksNavigeren(r)));
3207
+ this.kanRechts$ = this.ritdelen$.pipe(map(r => this.kanRechtsNavigeren(r)));
3208
+ }
3209
+ kanLinksNavigeren(ritDelen) {
3210
+ return ritDelen.length > this.paginationSize && !ritDelen[0].isBinnenWindow();
3211
+ }
3212
+ kanRechtsNavigeren(ritDelen) {
3213
+ return ritDelen.length > this.paginationSize && !ritDelen[ritDelen.length - 1].isBinnenWindow();
3214
+ }
3215
+ navigeerNaarLinks(event) {
3216
+ this.store.dispatch(navigeer(event?.ctrlKey ? -1 : -(this.paginationSize - 1), this.paginationSize, this.iaversieinfo));
3217
+ }
3218
+ navigeerNaarRechts(event) {
3219
+ this.store.dispatch(navigeer(event?.ctrlKey ? 1 : this.paginationSize - 1, this.paginationSize, this.iaversieinfo));
3220
+ }
3221
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CarouselControlsComponent, deps: [{ token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
3222
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: CarouselControlsComponent, isStandalone: false, 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" }] }); }
3223
+ }
3224
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: CarouselControlsComponent, decorators: [{
3225
+ type: Component,
3226
+ args: [{ selector: 'carousel-controls', standalone: false, 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"] }]
3227
+ }], ctorParameters: () => [{ type: i2$1.Store }], propDecorators: { paginationSize: [{
3228
+ type: Input
3229
+ }], iaversieinfo: [{
3230
+ type: Input
3231
+ }], sideNavOpen: [{
3232
+ type: Input
3233
+ }] } });
3234
+
3246
3235
  class ViewerControlsComponent {
3247
3236
  constructor(store, viewerControlsService, bewegingUtils) {
3248
3237
  this.store = store;
3249
3238
  this.viewerControlsService = viewerControlsService;
3250
3239
  this.bewegingUtils = bewegingUtils;
3251
3240
  this.paginationSize = 4;
3252
- this.treinpad = undefined;
3253
- this.goedgekeurd = new EventEmitter();
3254
3241
  this.printing$ = this.viewerControlsService.isPrinting$();
3255
3242
  this.valideRit$ = this.viewerControlsService.isValideRit$();
3256
3243
  this.subscriptions = new Subscription();
3257
- this.editable = false;
3258
3244
  this.subscriptions.add(this.store.select('editable').subscribe(editable => this.editable = editable));
3259
3245
  }
3260
3246
  ngOnChanges({ treinpad }) {
@@ -3266,23 +3252,24 @@ class ViewerControlsComponent {
3266
3252
  return this.editable && this.viewerControlsService.selectieInfos.length !== 0;
3267
3253
  }
3268
3254
  goedkeurenClick() {
3269
- this.store.select('ritDelen').pipe(filter(ritdelen => !!ritdelen), tap(ritDelen => {
3270
- if (this.treinpad) {
3271
- delete this.treinpad.aantalRitActies;
3272
- this.treinpad.bewegingen = this.bewegingUtils.extractBewegingenUitRitdelen(ritDelen, this.viewerControlsService.origineelTreinPad.bewegingen);
3273
- this.goedgekeurd.emit(this.treinpad);
3274
- this.viewerControlsService.setOrigineelTreinPad(this.treinpad);
3275
- }
3276
- })).subscribe();
3255
+ const ritDelen = this.viewerControlsService.ritdelen;
3256
+ if (ritDelen) {
3257
+ delete this.treinpad.aantalRitActies;
3258
+ this.treinpad.bewegingen = this.bewegingUtils.extractBewegingenUitRitdelen(ritDelen, this.viewerControlsService.origineelTreinPad.bewegingen);
3259
+ this.goedgekeurd.emit(this.treinpad);
3260
+ this.viewerControlsService.setOrigineelTreinPad(this.treinpad);
3261
+ }
3277
3262
  }
3278
- 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 }); }
3279
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", 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" }] }); }
3263
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ViewerControlsComponent, deps: [{ token: i2$1.Store }, { token: ViewerControlService }, { token: BewegingUtils }], target: i0.ɵɵFactoryTarget.Component }); }
3264
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: ViewerControlsComponent, isStandalone: false, 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" }] }); }
3280
3265
  }
3281
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ViewerControlsComponent, decorators: [{
3266
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ViewerControlsComponent, decorators: [{
3282
3267
  type: Component,
3283
- 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"] }]
3268
+ args: [{ selector: 'viewer-controls', standalone: false, 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"] }]
3284
3269
  }], ctorParameters: () => [{ type: i2$1.Store }, { type: ViewerControlService }, { type: BewegingUtils }], propDecorators: { paginationSize: [{
3285
3270
  type: Input
3271
+ }], iaversieinfo: [{
3272
+ type: Input
3286
3273
  }], treinpad: [{
3287
3274
  type: Input
3288
3275
  }], goedgekeurd: [{
@@ -3337,7 +3324,7 @@ class ActiePopoverBepaler {
3337
3324
  ongeplandeActies.entries.forEach(entry => {
3338
3325
  const treinNummerActieInfos = puicNaarOngeplandeActieMap.get(entry.key);
3339
3326
  if (!treinNummerActieInfos?.map(({ actie }) => actie).includes(entry.value.actie)) {
3340
- puicNaarOngeplandeActieMap.put(entry.key, { actie: entry.value.actie });
3327
+ puicNaarOngeplandeActieMap.put(entry.key, { treinNummer: undefined, actie: entry.value.actie });
3341
3328
  }
3342
3329
  });
3343
3330
  }
@@ -3397,15 +3384,12 @@ class SvgVisualisatieComponent {
3397
3384
  this.actieHelper = actieHelper;
3398
3385
  this.sbmService = sbmService;
3399
3386
  this.editorService = editorService;
3400
- this.nietGeplandeActies = [];
3401
- this.useClickArea = false;
3402
3387
  this.svgInfos$ = this.store.select('svgInfos');
3403
3388
  this.popoverInfos = [];
3404
3389
  this.clickableIds = [];
3405
3390
  this.rightClickableIds = [];
3406
3391
  this.contextMenuActions = [];
3407
3392
  this.contextMenuStyle = { display: 'none' };
3408
- this.editable = false;
3409
3393
  this.puicNaarBeginSeinRitdeel = new Map();
3410
3394
  this.puicNaarEindSeinCombinatie = new Map();
3411
3395
  this.puicNaarAlternatieveRoute = new Map();
@@ -3429,7 +3413,7 @@ class SvgVisualisatieComponent {
3429
3413
  }));
3430
3414
  }
3431
3415
  ngOnInit() {
3432
- document.getElementById('contextMenu')?.addEventListener('mouseleave', () => this.hideContextMenu());
3416
+ document.getElementById('contextMenu').addEventListener('mouseleave', () => this.hideContextMenu());
3433
3417
  }
3434
3418
  ngOnDestroy() {
3435
3419
  this.subscriptions.forEach(s => s.unsubscribe());
@@ -3456,6 +3440,7 @@ class SvgVisualisatieComponent {
3456
3440
  this.store.dispatch(navigeerBuitenRit(puic));
3457
3441
  }
3458
3442
  }
3443
+ this.store.dispatch(SetSelectedRitdeel(undefined));
3459
3444
  }
3460
3445
  handleImxviewRightClick(evt) {
3461
3446
  const fn = () => {
@@ -3486,7 +3471,7 @@ class SvgVisualisatieComponent {
3486
3471
  handleNieuweRouteToegevoegd() {
3487
3472
  this.store.select('nieuweRoute')
3488
3473
  .subscribe((nieuweRoute) => {
3489
- if (nieuweRoute?.isValid()) {
3474
+ if (nieuweRoute.isValid()) {
3490
3475
  this.store.dispatch(ResetNieuweRoute());
3491
3476
  this.store.dispatch(ritdeelInvoegen(nieuweRoute));
3492
3477
  }
@@ -3599,7 +3584,7 @@ class SvgVisualisatieComponent {
3599
3584
  });
3600
3585
  this.viewerControlsService.setValideRit(!gebrokenRit);
3601
3586
  this.store.dispatch(SetGeplandeActies(actieOpRitSelectiePuics));
3602
- const actieOpRitSelectiePuicsArray = Array.from(actieOpRitSelectiePuics.values()).flat();
3587
+ const actieOpRitSelectiePuicsArray = Utils.flatMap(Array.from(actieOpRitSelectiePuics.values()), x => x);
3603
3588
  this.store.dispatch(SetActieOpRitSelectieIds(actieOpRitSelectiePuicsArray));
3604
3589
  ritSelectiePuics = ritSelectiePuics.filter(item => actieOpRitSelectiePuicsArray.indexOf(item) < 0); // make mutually exclusive
3605
3590
  this.store.dispatch(SetRitSelectieIds(ritSelectiePuics));
@@ -3632,12 +3617,12 @@ class SvgVisualisatieComponent {
3632
3617
  getPuics(topoElementen) {
3633
3618
  return topoElementen.map(e => e.getPuic());
3634
3619
  }
3635
- 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 }); }
3636
- 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" }] }); }
3620
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: SvgVisualisatieComponent, deps: [{ token: i2$1.Store }, { token: ViewerControlService }, { token: ActieHelper }, { token: SignaleringsBeeldManagerService }, { token: EditorService }], target: i0.ɵɵFactoryTarget.Component }); }
3621
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: SvgVisualisatieComponent, isStandalone: false, 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", "buttons", "preDestroy"], outputs: ["clickHandler", "rightClickHandler", "svgLoaded", "panned"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
3637
3622
  }
3638
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SvgVisualisatieComponent, decorators: [{
3623
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: SvgVisualisatieComponent, decorators: [{
3639
3624
  type: Component,
3640
- 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"] }]
3625
+ args: [{ selector: 'svg-visualisatie', standalone: false, 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"] }]
3641
3626
  }], ctorParameters: () => [{ type: i2$1.Store }, { type: ViewerControlService }, { type: ActieHelper }, { type: SignaleringsBeeldManagerService }, { type: EditorService }], propDecorators: { nietGeplandeActies: [{
3642
3627
  type: Input
3643
3628
  }], useClickArea: [{
@@ -3655,9 +3640,6 @@ class MstviewerComponent {
3655
3640
  this.printBewegingService = printBewegingService;
3656
3641
  this.paginationSize = 4;
3657
3642
  this.baseurl = 'https://acceptatie.raildesign.nl';
3658
- this.debug = false;
3659
- this.viewer = false;
3660
- this.useClickArea = false;
3661
3643
  this.goedgekeurd = new EventEmitter();
3662
3644
  this.subscriptions = new Subscription();
3663
3645
  this.subscriptions.add(this.store.select('nieuweBewegingen').subscribe(nieuweRit => {
@@ -3708,26 +3690,23 @@ class MstviewerComponent {
3708
3690
  }
3709
3691
  }
3710
3692
  printFocusBeweging(bewegingId) {
3711
- return this.printBewegingService.printBeweging(bewegingId, this.paginationSize);
3693
+ return this.printBewegingService.printBeweging(bewegingId, this.paginationSize, this.iaversieinfo);
3712
3694
  }
3713
3695
  keurAlleActiesGoed() {
3714
3696
  this.viewerControlsService.keurAlleActiesGoed(this.ongeplandeActies);
3715
3697
  }
3716
- 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 }); }
3717
- 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 [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" }] }); }
3698
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: MstviewerComponent, deps: [{ token: i2$1.Store }, { token: ViewerControlService }, { token: DebugService }, { token: PrintBewegingService }], target: i0.ɵɵFactoryTarget.Component }); }
3699
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: MstviewerComponent, isStandalone: false, 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<mst-overlay *ngIf=\"(progressIndicator$ | async)\" >\n <mst-progress-indicator id=\"progress-indicator\">\n </mst-progress-indicator>\n</mst-overlay>\n\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: "mst-overlay" }, { kind: "component", type: ProgressIndicatorComponent, selector: "mst-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" }] }); }
3718
3700
  }
3719
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MstviewerComponent, decorators: [{
3701
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: MstviewerComponent, decorators: [{
3720
3702
  type: Component,
3721
- 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"] }]
3703
+ args: [{ selector: 'mst-viewer', standalone: false, template: "<loxia-messages></loxia-messages>\n<mst-overlay *ngIf=\"(progressIndicator$ | async)\" >\n <mst-progress-indicator id=\"progress-indicator\">\n </mst-progress-indicator>\n</mst-overlay>\n\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"] }]
3722
3704
  }], ctorParameters: () => [{ type: i2$1.Store }, { type: ViewerControlService }, { type: DebugService }, { type: PrintBewegingService }], propDecorators: { iaversieinfo: [{
3723
- type: Input,
3724
- args: [{ required: true }]
3705
+ type: Input
3725
3706
  }], treinpad: [{
3726
- type: Input,
3727
- args: [{ required: true }]
3707
+ type: Input
3728
3708
  }], ongeplandeActies: [{
3729
- type: Input,
3730
- args: [{ required: true }]
3709
+ type: Input
3731
3710
  }], paginationSize: [{
3732
3711
  type: Input
3733
3712
  }], baseurl: [{
@@ -3752,8 +3731,8 @@ let SignaleringsbeeldInfoResource = class SignaleringsbeeldInfoResource extends
3752
3731
  ngOnDestroy() {
3753
3732
  this.subscriptions.unsubscribe();
3754
3733
  }
3755
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SignaleringsbeeldInfoResource, deps: [{ token: i1$1.ResourceHandler }, { token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
3756
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SignaleringsbeeldInfoResource }); }
3734
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: SignaleringsbeeldInfoResource, deps: [{ token: i1$1.ResourceHandler }, { token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
3735
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: SignaleringsbeeldInfoResource }); }
3757
3736
  };
3758
3737
  __decorate([
3759
3738
  ResourceAction({
@@ -3771,7 +3750,7 @@ SignaleringsbeeldInfoResource = __decorate([
3771
3750
  pathPrefix: '/mst/rest/signaleringsbeeldeninfo'
3772
3751
  })
3773
3752
  ], SignaleringsbeeldInfoResource);
3774
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SignaleringsbeeldInfoResource, decorators: [{
3753
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: SignaleringsbeeldInfoResource, decorators: [{
3775
3754
  type: Injectable
3776
3755
  }], ctorParameters: () => [{ type: i1$1.ResourceHandler }, { type: i2$1.Store }], propDecorators: { laadSignaleringsbeeldInfo: [], getBestaatIALevering: [] } });
3777
3756
  class SignaleringsbeeldInfoDto extends ResourceModel {
@@ -3801,18 +3780,16 @@ class BaseRestService {
3801
3780
  this.httpClient = httpClient;
3802
3781
  this.store = store;
3803
3782
  this.subscriptions = new Subscription();
3804
- this.baseUrl = '';
3805
- this.iaVersie = '';
3806
3783
  this.subscriptions.add(this.store.select('baseUrl').subscribe(baseUrl => this.baseUrl = baseUrl));
3807
3784
  this.subscriptions.add(this.store.select('iaVersie').subscribe(iaVersie => this.iaVersie = iaVersie.versie));
3808
3785
  }
3809
3786
  ngOnDestroy() {
3810
3787
  this.subscriptions.unsubscribe();
3811
3788
  }
3812
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BaseRestService, deps: [{ token: i1.HttpClient }, { token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
3813
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BaseRestService, providedIn: 'root' }); }
3789
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BaseRestService, deps: [{ token: i1.HttpClient }, { token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
3790
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BaseRestService, providedIn: 'root' }); }
3814
3791
  }
3815
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BaseRestService, decorators: [{
3792
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BaseRestService, decorators: [{
3816
3793
  type: Injectable,
3817
3794
  args: [{
3818
3795
  providedIn: 'root'
@@ -3833,10 +3810,10 @@ class BewegingVerrijkerService extends BaseRestService {
3833
3810
  this.store.dispatch(ClearProgress());
3834
3811
  return [];
3835
3812
  }
3836
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BewegingVerrijkerService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
3837
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BewegingVerrijkerService, providedIn: 'root' }); }
3813
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BewegingVerrijkerService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
3814
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BewegingVerrijkerService, providedIn: 'root' }); }
3838
3815
  }
3839
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BewegingVerrijkerService, decorators: [{
3816
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BewegingVerrijkerService, decorators: [{
3840
3817
  type: Injectable,
3841
3818
  args: [{
3842
3819
  providedIn: 'root'
@@ -3978,13 +3955,13 @@ class Ritdeel {
3978
3955
  return retval;
3979
3956
  }
3980
3957
  getVrijebaanRijwegplan() {
3981
- return this.vrijebaanRijwegplanRijwegDwangCombi?.rijwegplan;
3958
+ return this.vrijebaanRijwegplanRijwegDwangCombi.rijwegplan;
3982
3959
  }
3983
3960
  getVrijebaanRijweg() {
3984
- return this.vrijebaanRijwegplanRijwegDwangCombi?.rijweg;
3961
+ return this.vrijebaanRijwegplanRijwegDwangCombi.rijweg;
3985
3962
  }
3986
3963
  getVrijebaanDwang() {
3987
- return this.vrijebaanRijwegplanRijwegDwangCombi?.dwang;
3964
+ return this.vrijebaanRijwegplanRijwegDwangCombi.dwang;
3988
3965
  }
3989
3966
  getDwangNummer() {
3990
3967
  return this.rijwegplanRijwegDwangCombi.getDwangNummer();
@@ -4001,7 +3978,7 @@ class Ritdeel {
4001
3978
  isBinnenWindow() {
4002
3979
  return (this.zichtbaarheid === RitdeelZichtbaarheid.ZICHTBAAR ||
4003
3980
  this.zichtbaarheid === RitdeelZichtbaarheid.ONZICHTBAAR_DOOR_GEBRUIKER)
4004
- && !this.zichtbaarBuitenPaginatie;
3981
+ && this.zichtbaarBuitenPaginatie === false;
4005
3982
  }
4006
3983
  isNietBeschikbaar() {
4007
3984
  return this.zichtbaarheid === RitdeelZichtbaarheid.ONZICHTBAAR_DOOR_SYSTEEM;
@@ -4024,10 +4001,10 @@ class Ritdeel {
4024
4001
  }
4025
4002
  }
4026
4003
  heeftVrijebaanInfo() {
4027
- return !!this.vrijebaanRijwegplanRijwegDwangCombi && !!this.vrijebaanRijwegplanRijwegDwangCombi.dwang;
4004
+ return this.vrijebaanRijwegplanRijwegDwangCombi && !!this.vrijebaanRijwegplanRijwegDwangCombi.dwang;
4028
4005
  }
4029
4006
  getVrijebaanPrlRoute() {
4030
- return this.vrijebaanRijwegplanRijwegDwangCombi?.getRoute();
4007
+ return this.vrijebaanRijwegplanRijwegDwangCombi.getRoute();
4031
4008
  }
4032
4009
  getTopologieElementen() {
4033
4010
  return this.topoElementen;
@@ -4059,10 +4036,10 @@ class Ritdeel {
4059
4036
  getZichtbaarheidBuitenPaginatie() {
4060
4037
  return this.zichtbaarBuitenPaginatie;
4061
4038
  }
4062
- bepaalTopologieElementen(sbmService) {
4063
- const topoElementen = sbmService.bepaalRouteElementen(this.getRoute());
4039
+ bepaalTopologieElementen(signaleringsBeeldManagerService) {
4040
+ const topoElementen = signaleringsBeeldManagerService.bepaalRouteElementen(this.getRoute());
4064
4041
  if (this.heeftVrijebaanInfo()) {
4065
- const vrijebaanTopoElementen = sbmService.bepaalRouteElementen(this.getVrijebaanPrlRoute());
4042
+ const vrijebaanTopoElementen = signaleringsBeeldManagerService.bepaalRouteElementen(this.getVrijebaanPrlRoute());
4066
4043
  topoElementen.push(...vrijebaanTopoElementen);
4067
4044
  }
4068
4045
  this.topoElementen = topoElementen;
@@ -4108,7 +4085,7 @@ class RitLezerService {
4108
4085
  ritDelen.push(new Ritdeel(dwangInfo, beweging.ritActies, beweging, vrijebaanDwangInfo, vervolgSpoor, []));
4109
4086
  }
4110
4087
  extractVrijebaanDwangInfo(beweging, rijwegPlan, rijweg) {
4111
- let vrijebaanDwangInfo = undefined;
4088
+ let vrijebaanDwangInfo = null;
4112
4089
  let vervolgSpoor;
4113
4090
  if (beweging.naarSpoor.endsWith(SPOOR_NAAR_VRIJEBAAN_POSTFIX) ||
4114
4091
  beweging.naarSpoor.endsWith(SPOOR_NAAR_VEERWISSEL_VRIJEBAAN_POSTFIX)) {
@@ -4122,9 +4099,9 @@ class RitLezerService {
4122
4099
  vrijebaanRijweg = vrijebaanRijwegen[0];
4123
4100
  vrijebaanDwang = vrijebaanRijweg.getDwangVoorDwangNummer(0);
4124
4101
  vervolgSpoor = vrijebaanRijwegplan.getVervolgSpoor(vrijebaanRijweg);
4125
- vrijebaanDwangInfo =
4126
- new RijwegplanRijwegDwangCombinatie(vrijebaanRijwegplan, vrijebaanRijweg, vrijebaanDwang);
4127
4102
  }
4103
+ vrijebaanDwangInfo =
4104
+ new RijwegplanRijwegDwangCombinatie(vrijebaanRijwegplan, vrijebaanRijweg, vrijebaanDwang);
4128
4105
  }
4129
4106
  }
4130
4107
  return { vrijebaanDwangInfo, vervolgSpoor };
@@ -4158,10 +4135,10 @@ class RitLezerService {
4158
4135
  isGewijzigd(beweging) {
4159
4136
  return beweging.wijzigStatus === 'Gewijzigd';
4160
4137
  }
4161
- 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 }); }
4162
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RitLezerService }); }
4138
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RitLezerService, deps: [{ token: EditorService }, { token: MessagesService }], target: i0.ɵɵFactoryTarget.Injectable }); }
4139
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RitLezerService }); }
4163
4140
  }
4164
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RitLezerService, decorators: [{
4141
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RitLezerService, decorators: [{
4165
4142
  type: Injectable
4166
4143
  }], ctorParameters: () => [{ type: EditorService }, { type: MessagesService }] });
4167
4144
 
@@ -4177,7 +4154,7 @@ class BepaalOngeplandeActiesEffect {
4177
4154
  this.bepaalOngeplandeActies$ = createEffect(() => this.actions$.pipe(ofType(BepaalOngeplandeActies), withLatestFrom(this.store), map(([action, store]) => {
4178
4155
  const puicActieMap = new ArrayMultimap();
4179
4156
  const nietGevondenTakken = [];
4180
- const logMeldingDTOs$ = [];
4157
+ const logMeldingDTOs = [];
4181
4158
  const acties = store.ritDelen.flatMap(rd => rd.acties);
4182
4159
  action.ongeplandeActies.forEach(actie => {
4183
4160
  const alreadyAdded = acties.filter(a => a.id === actie.id).length > 0;
@@ -4193,11 +4170,11 @@ class BepaalOngeplandeActiesEffect {
4193
4170
  if (!spoortak && nietGevondenTakken.indexOf(takId) < 0) {
4194
4171
  nietGevondenTakken.push(takId);
4195
4172
  const melding = MeldingBuilder.nietGevondenTakkenOngeplandeActies(nietGevondenTakken);
4196
- logMeldingDTOs$.push(this.loggingHelper.maakLogDTO(melding, actie));
4173
+ logMeldingDTOs.push(this.loggingHelper.maakLogDTO(melding, actie));
4197
4174
  }
4198
4175
  else if (spoortak) {
4199
4176
  const melding = MeldingBuilder.actieHighlightError([actie.id]);
4200
- logMeldingDTOs$.push(this.loggingHelper.maakLogDTO(melding, actie));
4177
+ logMeldingDTOs.push(this.loggingHelper.maakLogDTO(melding, actie));
4201
4178
  this.messagesService.showMessage(MessageBuilder.actieHighlightError([actie.id]));
4202
4179
  }
4203
4180
  }
@@ -4206,8 +4183,8 @@ class BepaalOngeplandeActiesEffect {
4206
4183
  if (nietGevondenTakken.length > 0) {
4207
4184
  this.messagesService.showMessage(MessageBuilder.nietGevondenTakkenOngeplandeActies(nietGevondenTakken));
4208
4185
  }
4209
- if (logMeldingDTOs$.length > 0) {
4210
- forkJoin(logMeldingDTOs$).pipe(tap(dtos => this.mstLogResource.logMessages(dtos))).subscribe();
4186
+ if (logMeldingDTOs.length > 0) {
4187
+ this.mstLogResource.logMessages(logMeldingDTOs);
4211
4188
  }
4212
4189
  this.store.dispatch(SetOngeplandeActies(puicActieMap));
4213
4190
  this.store.dispatch(SetOngeplandeActieSelectieIds(Array.from(puicActieMap.keys())));
@@ -4219,10 +4196,10 @@ class BepaalOngeplandeActiesEffect {
4219
4196
  puicMap.put(puic, ongeplandeActie);
4220
4197
  });
4221
4198
  }
4222
- 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 }); }
4223
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BepaalOngeplandeActiesEffect }); }
4199
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", 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 }); }
4200
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BepaalOngeplandeActiesEffect }); }
4224
4201
  }
4225
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BepaalOngeplandeActiesEffect, decorators: [{
4202
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BepaalOngeplandeActiesEffect, decorators: [{
4226
4203
  type: Injectable
4227
4204
  }], ctorParameters: () => [{ type: i1$2.Actions }, { type: i2$1.Store }, { type: SignaleringsBeeldManagerService }, { type: MstLoggingResource }, { type: MessagesService }, { type: ActieHelper }, { type: LoggingHelper }] });
4228
4205
 
@@ -4231,10 +4208,10 @@ class DateService {
4231
4208
  getCurrentDate() {
4232
4209
  return new Date();
4233
4210
  }
4234
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4235
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DateService, providedIn: 'root' }); }
4211
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4212
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DateService, providedIn: 'root' }); }
4236
4213
  }
4237
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DateService, decorators: [{
4214
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DateService, decorators: [{
4238
4215
  type: Injectable,
4239
4216
  args: [{
4240
4217
  providedIn: 'root'
@@ -4288,10 +4265,10 @@ class BepaalSbInfosEffect {
4288
4265
  pplgs.push(pplg);
4289
4266
  }
4290
4267
  }
4291
- 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 }); }
4292
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BepaalSbInfosEffect }); }
4268
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BepaalSbInfosEffect, deps: [{ token: i1$2.Actions }, { token: i2$1.Store }, { token: SignaleringsbeeldInfoResource }, { token: MessagesService }, { token: DateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
4269
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BepaalSbInfosEffect }); }
4293
4270
  }
4294
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BepaalSbInfosEffect, decorators: [{
4271
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BepaalSbInfosEffect, decorators: [{
4295
4272
  type: Injectable
4296
4273
  }], ctorParameters: () => [{ type: i1$2.Actions }, { type: i2$1.Store }, { type: SignaleringsbeeldInfoResource }, { type: MessagesService }, { type: DateService }] });
4297
4274
 
@@ -4350,10 +4327,10 @@ class BewegingInvoegenEffect {
4350
4327
  });
4351
4328
  return combinaties;
4352
4329
  }
4353
- 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 }); }
4354
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BewegingInvoegenEffect }); }
4330
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BewegingInvoegenEffect, deps: [{ token: i1$2.Actions }, { token: i2$1.Store }, { token: SignaleringsBeeldManagerService }, { token: EditorService }], target: i0.ɵɵFactoryTarget.Injectable }); }
4331
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BewegingInvoegenEffect }); }
4355
4332
  }
4356
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BewegingInvoegenEffect, decorators: [{
4333
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BewegingInvoegenEffect, decorators: [{
4357
4334
  type: Injectable
4358
4335
  }], ctorParameters: () => [{ type: i1$2.Actions }, { type: i2$1.Store }, { type: SignaleringsBeeldManagerService }, { type: EditorService }] });
4359
4336
 
@@ -4382,10 +4359,10 @@ class DeleteOngeplandeActieEffect {
4382
4359
  }
4383
4360
  });
4384
4361
  }
4385
- 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 }); }
4386
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DeleteOngeplandeActieEffect }); }
4362
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DeleteOngeplandeActieEffect, deps: [{ token: i1$2.Actions }, { token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
4363
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DeleteOngeplandeActieEffect }); }
4387
4364
  }
4388
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DeleteOngeplandeActieEffect, decorators: [{
4365
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DeleteOngeplandeActieEffect, decorators: [{
4389
4366
  type: Injectable
4390
4367
  }], ctorParameters: () => [{ type: i1$2.Actions }, { type: i2$1.Store }] });
4391
4368
 
@@ -4400,7 +4377,7 @@ class FocusEffect {
4400
4377
  const dwangPuics = this.getPuics(topoElementen);
4401
4378
  if (ritdeel.isNietBeschikbaar()) {
4402
4379
  this.store.dispatch(SetOngeplandeActiesBepaald(false));
4403
- this.store.dispatch(navigeerVanaf(actie.paginationSize, ritdeel));
4380
+ this.store.dispatch(navigeerVanaf(actie.paginationSize, actie.iaVersieInfo, ritdeel));
4404
4381
  }
4405
4382
  return focusOpIds(dwangPuics);
4406
4383
  })));
@@ -4408,10 +4385,10 @@ class FocusEffect {
4408
4385
  getPuics(topoElementen) {
4409
4386
  return topoElementen.map(e => e.getPuic());
4410
4387
  }
4411
- 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 }); }
4412
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FocusEffect }); }
4388
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FocusEffect, deps: [{ token: i1$2.Actions }, { token: i2$1.Store }, { token: SignaleringsBeeldManagerService }], target: i0.ɵɵFactoryTarget.Injectable }); }
4389
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FocusEffect }); }
4413
4390
  }
4414
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FocusEffect, decorators: [{
4391
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: FocusEffect, decorators: [{
4415
4392
  type: Injectable
4416
4393
  }], ctorParameters: () => [{ type: i1$2.Actions }, { type: i2$1.Store }, { type: SignaleringsBeeldManagerService }] });
4417
4394
 
@@ -4422,16 +4399,16 @@ class LaadRouteFilesEffect {
4422
4399
  this.ritLezer = ritLezer;
4423
4400
  this.editorService = editorService;
4424
4401
  this.messagesService = messagesService;
4425
- this.authActions$ = createEffect(() => this.actions$.pipe(ofType(SetSignaleringsbeeldInfoDtos), withLatestFrom(this.store), map(([action, storeState]) => this.laadRouteFiles(action, storeState.iaVersie.versie))), { dispatch: false });
4402
+ this.authActions$ = createEffect(() => this.actions$.pipe(ofType(SetSignaleringsbeeldInfoDtos), map(action => this.laadRouteFiles(action))), { dispatch: false });
4426
4403
  }
4427
- laadRouteFiles(actie, iaVersie) {
4404
+ laadRouteFiles(actie) {
4428
4405
  const isReady = this.editorService.isReady();
4429
4406
  isReady.then(() => {
4430
4407
  const pplgs = this.bepaalSbDtoPplgs(actie.dtos);
4431
- const promise = this.editorService.laadRouteFiles(iaVersie, pplgs);
4408
+ const promise = this.editorService.laadRouteFiles(actie.iaversieinfo.versie, pplgs);
4432
4409
  promise.then(() => {
4433
4410
  this.updateRitdelen(actie);
4434
- }, (err) => {
4411
+ }, err => {
4435
4412
  this.messagesService.showMessage(MessageBuilder.rwpDataNietGevonden(Utils.getValidErorrMessage(err)));
4436
4413
  });
4437
4414
  });
@@ -4442,7 +4419,7 @@ class LaadRouteFilesEffect {
4442
4419
  if (ritdelen.length === 0) {
4443
4420
  ritdelen = this.ritLezer.parseRit(actie.treinpad, actie.ritGewijzigdToegestaan);
4444
4421
  }
4445
- this.store.dispatch(setRitDelen(ritdelen, actie.paginationSize));
4422
+ this.store.dispatch(setRitDelen(ritdelen, actie.paginationSize, actie.iaversieinfo));
4446
4423
  this.store.dispatch(setEditable(actie.treinpad.ritStatus !== 'Definitief'));
4447
4424
  });
4448
4425
  }, 0);
@@ -4458,10 +4435,10 @@ class LaadRouteFilesEffect {
4458
4435
  });
4459
4436
  return pplgs;
4460
4437
  }
4461
- 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 }); }
4462
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LaadRouteFilesEffect }); }
4438
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: LaadRouteFilesEffect, deps: [{ token: i1$2.Actions }, { token: i2$1.Store }, { token: RitLezerService }, { token: EditorService }, { token: MessagesService }], target: i0.ɵɵFactoryTarget.Injectable }); }
4439
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: LaadRouteFilesEffect }); }
4463
4440
  }
4464
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LaadRouteFilesEffect, decorators: [{
4441
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: LaadRouteFilesEffect, decorators: [{
4465
4442
  type: Injectable
4466
4443
  }], ctorParameters: () => [{ type: i1$2.Actions }, { type: i2$1.Store }, { type: RitLezerService }, { type: EditorService }, { type: MessagesService }] });
4467
4444
 
@@ -4480,10 +4457,10 @@ class ConnectorService extends BaseRestService {
4480
4457
  this.store.dispatch(ClearProgress());
4481
4458
  return [];
4482
4459
  }
4483
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ConnectorService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
4484
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ConnectorService, providedIn: 'root' }); }
4460
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ConnectorService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
4461
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ConnectorService, providedIn: 'root' }); }
4485
4462
  }
4486
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ConnectorService, decorators: [{
4463
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ConnectorService, decorators: [{
4487
4464
  type: Injectable,
4488
4465
  args: [{
4489
4466
  providedIn: 'root'
@@ -4491,14 +4468,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
4491
4468
  }] });
4492
4469
 
4493
4470
  class LaadSignaleringsbeeldenEffect {
4494
- constructor(actions$, store, signaleringsBeeldManagerService, editorService, sbiResource, connectorService, messagesService) {
4471
+ constructor(actions$, store, signaleringsBeeldManagerService, editorService, sbiResource, connectorService, messagesSerivce) {
4495
4472
  this.actions$ = actions$;
4496
4473
  this.store = store;
4497
4474
  this.signaleringsBeeldManagerService = signaleringsBeeldManagerService;
4498
4475
  this.editorService = editorService;
4499
4476
  this.sbiResource = sbiResource;
4500
4477
  this.connectorService = connectorService;
4501
- this.messagesService = messagesService;
4478
+ this.messagesSerivce = messagesSerivce;
4502
4479
  this.SVG_PIXEL_RUIMTE = 30;
4503
4480
  this.verwerkRitdelen$ = createEffect(() => this.actions$.pipe(ofType(setRitDelen, navigeer, navigeerVanaf), withLatestFrom(this.store), map(([actie, storeState]) => {
4504
4481
  this.store.dispatch(SetOngeplandeActiesBepaald(false));
@@ -4513,13 +4490,13 @@ class LaadSignaleringsbeeldenEffect {
4513
4490
  }
4514
4491
  handleSignaleringsbeeldInfo({ actie, storeState }) {
4515
4492
  return this.sbiResource.laadSignaleringsbeeldInfo(this.createSignaleringsbeeldInfoQueryDto(actie.pplgs, storeState.iaVersie)).pipe(take(1), tap((dtos) => this.processResponse({ dtos, storeState, actie })), catchError((err) => {
4516
- this.messagesService.showMessage(MessageBuilder.nietGevondenSBI(err));
4493
+ this.messagesSerivce.showMessage(MessageBuilder.nietGevondenSBI(err));
4517
4494
  return throwError(() => err);
4518
4495
  }));
4519
4496
  }
4520
4497
  processResponse({ dtos, storeState, actie }) {
4521
4498
  if (dtos && dtos.filter(dto => dto.metVisualisatie).length > 12) {
4522
- this.messagesService.showMessage(MessageBuilder.meerDan12BladenGevonden(dtos.length));
4499
+ this.messagesSerivce.showMessage(MessageBuilder.meerDan12BladenGevonden(dtos.length));
4523
4500
  }
4524
4501
  this.store.dispatch(SetSignaleringsbeeldInfoDtos(dtos, storeState.iaVersie, actie.rit, actie.paginationSize, actie.ritGewijzigdToegestaan));
4525
4502
  this.store.dispatch(SetVisibleSignaleringsbeeldInfoDtos(dtos));
@@ -4532,11 +4509,11 @@ class LaadSignaleringsbeeldenEffect {
4532
4509
  return this.sbiResource.laadSignaleringsbeeldInfo(this.createSignaleringsbeeldInfoQueryDto([rand.getPPLG(), otherPplg], storeState.iaVersie)).pipe(map(dtos => ({ dtos, storeState })));
4533
4510
  }
4534
4511
  loadSignaleringsbeelden({ dtos, storeState }) {
4535
- return this.editorService.laadSignaleringsbeelden(storeState.iaVersie.versie, dtos).pipe(map(svgDataUrls => ({ svgDataUrls, ritDelen: storeState.ritDelen, dtos })));
4512
+ return this.editorService.laadSignaleringsbeelden(storeState.iaVersie.versie, dtos).pipe(map(svgDataUrls => ({ svgDataUrls, storeState, dtos })));
4536
4513
  }
4537
- processSvgsAndUpdateRitdelen({ svgDataUrls, ritDelen, dtos }) {
4514
+ processSvgsAndUpdateRitdelen({ svgDataUrls, storeState, dtos }) {
4538
4515
  this.verwerkSvgs(svgDataUrls);
4539
- const nieuweRitdelen = this.updateRitdelen(ritDelen, dtos);
4516
+ const nieuweRitdelen = this.updateRitdelen(storeState.ritDelen, dtos);
4540
4517
  this.store.dispatch(UpdateVisibleSignaleringsbeeldInfoDtos(dtos));
4541
4518
  this.store.dispatch(updateRitDelen(nieuweRitdelen));
4542
4519
  }
@@ -4549,11 +4526,11 @@ class LaadSignaleringsbeeldenEffect {
4549
4526
  const visibleRitPplgs = visibleRitDelen.map(r => r.getPplg()).filter(this.distinct);
4550
4527
  const visibleDtos = this.bepaalZichtbareDtos(visibleRitPplgs, storeDtos);
4551
4528
  const loadingDtos = this.bepaalToLoadDtos(visibleDtos, ritDelen, visibleRitDelen, visibleRitPplgs, storeState);
4552
- this.editorService.laadSignaleringsbeelden(storeState.iaVersie.versie, loadingDtos).pipe(tap(svgDataUrls => {
4529
+ this.editorService.laadSignaleringsbeelden(actie.iaversieinfo.versie, loadingDtos).pipe(tap(svgDataUrls => {
4553
4530
  this.verwerkSvgs(svgDataUrls);
4554
4531
  this.updateState(ritDelen, visibleDtos, storeState, visibleRitPplgs, loadingDtos, isInit, storeDtos);
4555
4532
  }), catchError(err => {
4556
- this.messagesService.showMessage(MessageBuilder.rwpDataNietGevonden(Utils.getValidErorrMessage(err)));
4533
+ this.messagesSerivce.showMessage(MessageBuilder.rwpDataNietGevonden(Utils.getValidErorrMessage(err)));
4557
4534
  throw err;
4558
4535
  })).subscribe();
4559
4536
  }
@@ -4608,8 +4585,8 @@ class LaadSignaleringsbeeldenEffect {
4608
4585
  dtos.filter(d => !visibleDtos.includes(d)).forEach(d => d.metVisualisatie = false);
4609
4586
  return visibleDtos;
4610
4587
  }
4611
- distinct(value, index, values) {
4612
- return values.indexOf(value) === index;
4588
+ distinct(value, index, self) {
4589
+ return self.indexOf(value) === index;
4613
4590
  }
4614
4591
  addPrevNonVisibleDto(firstIdx, ritdelen, loadingDtos, visibleRitPplgs, allDtos) {
4615
4592
  if (firstIdx >= 0) {
@@ -4698,7 +4675,7 @@ class LaadSignaleringsbeeldenEffect {
4698
4675
  }
4699
4676
  }
4700
4677
  }
4701
- this.updateZichtbaarheidAangrenzendeRitdelen(min, max, ritdelen, visibleDtos);
4678
+ this.updateZichtbaarheidAangrezendeRitdelen(min, max, ritdelen, visibleDtos);
4702
4679
  return this.updateZichtbaarheidBuitenWindow(ritdelen, visibleDtos);
4703
4680
  }
4704
4681
  updateZichtbaarheidBuitenWindow(nieuweRitdelen, visibleDtos) {
@@ -4714,7 +4691,7 @@ class LaadSignaleringsbeeldenEffect {
4714
4691
  }
4715
4692
  return nieuweRitdelen;
4716
4693
  }
4717
- updateZichtbaarheidAangrenzendeRitdelen(min, max, nieuweRitdelen, visibleDtos) {
4694
+ updateZichtbaarheidAangrezendeRitdelen(min, max, nieuweRitdelen, visibleDtos) {
4718
4695
  let i = min - 1;
4719
4696
  while (i >= 0) {
4720
4697
  i = this.updateZichtbaarHeid(i, 0, visibleDtos, nieuweRitdelen) - 1;
@@ -4827,10 +4804,10 @@ class LaadSignaleringsbeeldenEffect {
4827
4804
  }
4828
4805
  return -1;
4829
4806
  }
4830
- 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 }); }
4831
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LaadSignaleringsbeeldenEffect }); }
4807
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", 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 }); }
4808
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: LaadSignaleringsbeeldenEffect }); }
4832
4809
  }
4833
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LaadSignaleringsbeeldenEffect, decorators: [{
4810
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: LaadSignaleringsbeeldenEffect, decorators: [{
4834
4811
  type: Injectable
4835
4812
  }], ctorParameters: () => [{ type: i1$2.Actions }, { type: i2$1.Store }, { type: SignaleringsBeeldManagerService }, { type: EditorService }, { type: SignaleringsbeeldInfoResource }, { type: ConnectorService }, { type: MessagesService }] });
4836
4813
 
@@ -4841,19 +4818,19 @@ class RitGoedkeurenEffect {
4841
4818
  this.bewegingVerrijker = bewegingVerrijker;
4842
4819
  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))));
4843
4820
  }
4844
- 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 }); }
4845
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RitGoedkeurenEffect }); }
4821
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RitGoedkeurenEffect, deps: [{ token: i1$2.Actions }, { token: i2$1.Store }, { token: BewegingVerrijkerService }], target: i0.ɵɵFactoryTarget.Injectable }); }
4822
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RitGoedkeurenEffect }); }
4846
4823
  }
4847
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RitGoedkeurenEffect, decorators: [{
4824
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RitGoedkeurenEffect, decorators: [{
4848
4825
  type: Injectable
4849
4826
  }], ctorParameters: () => [{ type: i1$2.Actions }, { type: i2$1.Store }, { type: BewegingVerrijkerService }] });
4850
4827
 
4851
4828
  class RitdelenEffect {
4852
- constructor(actions$, store, sbmService, editorService) {
4829
+ constructor(actions$, store, sbmService, rijwegPlanEditorService) {
4853
4830
  this.actions$ = actions$;
4854
4831
  this.store = store;
4855
4832
  this.sbmService = sbmService;
4856
- this.editorService = editorService;
4833
+ this.rijwegPlanEditorService = rijwegPlanEditorService;
4857
4834
  this.updateRitDelen$ = createEffect(() => this.actions$.pipe(ofType(updateRitDelen), withLatestFrom(this.store), map(([actie, _storeState]) => {
4858
4835
  const nieuweRitDelen = actie.ritDelen.map(ritDeel => ritDeel.isZichtbaar() ?
4859
4836
  ritDeel.copyMetAlternatieveRoutes(this.sbmService.bepaalAlternativeRoutes(ritDeel.getRijweg())) : ritDeel);
@@ -4871,25 +4848,25 @@ class RitdelenEffect {
4871
4848
  return setRitdelenAfterUpdate(ritDelen);
4872
4849
  })));
4873
4850
  this.ritdeelInvoegen$ = createEffect(() => this.actions$.pipe(ofType(ritdeelInvoegen), withLatestFrom(this.store), map(([actie, storeState]) => {
4874
- const ritDelen = this.ritdeelInvoegenFunc(storeState.ritDelen, actie.nieuweRoute);
4851
+ const ritDelen = this.ritdeelInvoegenFunc(storeState.ritDelen, actie.nieuweRoute, this.rijwegPlanEditorService, this.sbmService);
4875
4852
  return setRitdelenAfterUpdate(ritDelen);
4876
4853
  })));
4877
4854
  }
4878
- ritdeelInvoegenFunc(ritDelen, nieuweRoute) {
4855
+ ritdeelInvoegenFunc(ritDelen, nieuweRoute, rijwegPlanEditorService, sbmService) {
4879
4856
  const origineelRitdeel = nieuweRoute.beginSeinOpRitdeel.ritdeel;
4880
4857
  const beginSein = nieuweRoute.beginSeinOpRitdeel.sein;
4881
- const rijwegplan = this.editorService.getRijwegplan(beginSein.getPPLG());
4858
+ const rijwegplan = rijwegPlanEditorService.getRijwegplan(beginSein.getPPLG());
4882
4859
  const dwangen = JsJavaUtil.listToArray(rijwegplan.getOnderliggendeDwangenTotEnVanSein(origineelRitdeel.getDwang(), beginSein));
4883
4860
  const isSamengesteldeRoute = dwangen[0] && dwangen[1];
4884
4861
  let newRitdeel1 = origineelRitdeel;
4885
4862
  if (isSamengesteldeRoute) {
4886
- newRitdeel1 = this.verwerkSamengesteldeRoute(origineelRitdeel, rijwegplan, dwangen, ritDelen);
4863
+ newRitdeel1 = this.verwerkSamengesteldeRoute(origineelRitdeel, rijwegplan, dwangen, sbmService, ritDelen);
4887
4864
  }
4888
- if (nieuweRoute.combinatieVoorEindsein?.isVrijeBaanRijweg()) {
4889
- this.extendRitdeelMetVrijebaanInfo(newRitdeel1, nieuweRoute);
4865
+ if (nieuweRoute.combinatieVoorEindsein.isVrijeBaanRijweg()) {
4866
+ this.extendRitdeelMetVrijebaanInfo(newRitdeel1, nieuweRoute, sbmService);
4890
4867
  }
4891
4868
  else {
4892
- this.maakNieuwRitdeel(newRitdeel1, nieuweRoute, ritDelen);
4869
+ this.maakNieuwRitdeel(newRitdeel1, nieuweRoute, sbmService, ritDelen);
4893
4870
  }
4894
4871
  if (isSamengesteldeRoute) {
4895
4872
  ritDelen.splice(ritDelen.indexOf(origineelRitdeel), 1);
@@ -4904,48 +4881,47 @@ class RitdelenEffect {
4904
4881
  }
4905
4882
  }
4906
4883
  }
4907
- verwerkSamengesteldeRoute(origineelRitdeel, rijwegplan, dwangen, ritDelen) {
4884
+ verwerkSamengesteldeRoute(origineelRitdeel, rijwegplan, dwangen, sbmService, ritDelen) {
4908
4885
  // dwangen in 2 nieuwe ritdelen verwerken voor de knip
4909
4886
  const nieuweRijweg1 = rijwegplan.getRijwegVoorSeinen(dwangen[0].getRoute().getBeginSein(), dwangen[0].getRoute().getEindSein());
4910
4887
  const dwangInfo1 = new RijwegplanRijwegDwangCombinatie(rijwegplan, nieuweRijweg1, dwangen[0]);
4911
- const newRitdeel1 = new Ritdeel(dwangInfo1, [], undefined, undefined, undefined, []);
4888
+ const newRitdeel1 = new Ritdeel(dwangInfo1, [], null, null, null, []);
4912
4889
  // remove vrijbaan info uit ritdeel
4913
- newRitdeel1.vrijebaanRijwegplanRijwegDwangCombi = undefined;
4914
- newRitdeel1.vervolgSpoor = undefined;
4915
- newRitdeel1.bepaalTopologieElementen(this.sbmService);
4890
+ newRitdeel1.vrijebaanRijwegplanRijwegDwangCombi = null;
4891
+ newRitdeel1.vervolgSpoor = null;
4892
+ newRitdeel1.bepaalTopologieElementen(sbmService);
4916
4893
  this.insertRitdeel(ritDelen, origineelRitdeel, newRitdeel1);
4917
4894
  const nieuweRijweg2 = rijwegplan.getRijwegVoorSeinen(dwangen[1].getRoute().getBeginSein(), dwangen[1].getRoute().getEindSein());
4918
4895
  const dwangInfo2 = new RijwegplanRijwegDwangCombinatie(rijwegplan, nieuweRijweg2, dwangen[1]);
4919
- const newRitdeel2 = new Ritdeel(dwangInfo2, [], undefined, undefined, undefined, []);
4920
- newRitdeel2.bepaalTopologieElementen(this.sbmService);
4896
+ const newRitdeel2 = new Ritdeel(dwangInfo2, [], null, null, null, []);
4897
+ newRitdeel2.bepaalTopologieElementen(sbmService);
4921
4898
  this.insertRitdeel(ritDelen, newRitdeel1, newRitdeel2);
4922
4899
  return newRitdeel1;
4923
4900
  }
4924
- extendRitdeelMetVrijebaanInfo(newRitdeel1, nieuweRoute) {
4901
+ extendRitdeelMetVrijebaanInfo(newRitdeel1, nieuweRoute, sbmService) {
4925
4902
  newRitdeel1.vrijebaanRijwegplanRijwegDwangCombi = nieuweRoute.combinatieVoorEindsein;
4926
- const vbrwp = nieuweRoute.combinatieVoorEindsein?.rijwegplan;
4927
- newRitdeel1.vervolgSpoor = nieuweRoute.combinatieVoorEindsein ?
4928
- vbrwp.getVervolgSpoor(nieuweRoute.combinatieVoorEindsein?.rijweg) : undefined;
4929
- newRitdeel1.bepaalTopologieElementen(this.sbmService);
4903
+ const vbrwp = nieuweRoute.combinatieVoorEindsein.rijwegplan;
4904
+ newRitdeel1.vervolgSpoor = vbrwp.getVervolgSpoor(nieuweRoute.combinatieVoorEindsein.rijweg);
4905
+ newRitdeel1.bepaalTopologieElementen(sbmService);
4930
4906
  }
4931
- maakNieuwRitdeel(newRitdeel1, nieuweRoute, ritDelen) {
4907
+ maakNieuwRitdeel(newRitdeel1, nieuweRoute, sbmService, ritDelen) {
4932
4908
  let newRitdeel = this.createRitdeel(nieuweRoute);
4933
- const altRoutes = this.sbmService.bepaalAlternativeRoutes(newRitdeel.getRijweg());
4909
+ const altRoutes = sbmService.bepaalAlternativeRoutes(newRitdeel.getRijweg());
4934
4910
  newRitdeel = newRitdeel.copyMetAlternatieveRoutes(altRoutes);
4935
- newRitdeel.bepaalTopologieElementen(this.sbmService);
4911
+ newRitdeel.bepaalTopologieElementen(sbmService);
4936
4912
  this.insertRitdeel(ritDelen, newRitdeel1, newRitdeel);
4937
4913
  }
4938
4914
  createRitdeel(nieuweRoute) {
4939
- return new Ritdeel(nieuweRoute.combinatieVoorEindsein, [], undefined, undefined, undefined, []);
4915
+ return new Ritdeel(nieuweRoute.combinatieVoorEindsein, [], null, null, null, []);
4940
4916
  }
4941
4917
  insertRitdeel(ritdelen, naRitdeelPositie, newRitdeel) {
4942
4918
  const idx = ritdelen.indexOf(naRitdeelPositie);
4943
4919
  ritdelen.splice(idx + 1, 0, newRitdeel);
4944
4920
  }
4945
- 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 }); }
4946
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RitdelenEffect }); }
4921
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RitdelenEffect, deps: [{ token: i1$2.Actions }, { token: i2$1.Store }, { token: SignaleringsBeeldManagerService }, { token: EditorService }], target: i0.ɵɵFactoryTarget.Injectable }); }
4922
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RitdelenEffect }); }
4947
4923
  }
4948
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RitdelenEffect, decorators: [{
4924
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RitdelenEffect, decorators: [{
4949
4925
  type: Injectable
4950
4926
  }], ctorParameters: () => [{ type: i1$2.Actions }, { type: i2$1.Store }, { type: SignaleringsBeeldManagerService }, { type: EditorService }] });
4951
4927
 
@@ -4980,31 +4956,20 @@ class SvgViewEffect {
4980
4956
  rand?.classList.add('connector');
4981
4957
  });
4982
4958
  }
4983
- 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 }); }
4984
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SvgViewEffect }); }
4959
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: SvgViewEffect, deps: [{ token: i1$2.Actions }, { token: i2$1.Store }, { token: SignaleringsBeeldManagerService }, { token: i4.SignaleringsbeeldSvgUtilityService }], target: i0.ɵɵFactoryTarget.Injectable }); }
4960
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: SvgViewEffect }); }
4985
4961
  }
4986
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SvgViewEffect, decorators: [{
4962
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: SvgViewEffect, decorators: [{
4987
4963
  type: Injectable
4988
4964
  }], ctorParameters: () => [{ type: i1$2.Actions }, { type: i2$1.Store }, { type: SignaleringsBeeldManagerService }, { type: i4.SignaleringsbeeldSvgUtilityService }] });
4989
4965
 
4990
- class ProgressIndicator {
4991
- constructor(lowerText, upperText, iconClass) {
4992
- this.lowerText = '';
4993
- this.upperText = '';
4994
- this.iconClass = '';
4995
- this.lowerText = lowerText ?? this.lowerText;
4996
- this.upperText = upperText ?? this.upperText;
4997
- this.iconClass = iconClass ?? this.iconClass;
4998
- }
4999
- }
5000
-
5001
4966
  class NieuweRoute {
5002
4967
  constructor(beginSeinOpRitdeel, combinatieVoorEindsein) {
5003
4968
  this.beginSeinOpRitdeel = beginSeinOpRitdeel;
5004
4969
  this.combinatieVoorEindsein = combinatieVoorEindsein;
5005
4970
  }
5006
4971
  isValid() {
5007
- return !!this.combinatieVoorEindsein;
4972
+ return this.combinatieVoorEindsein !== null;
5008
4973
  }
5009
4974
  }
5010
4975
 
@@ -5070,7 +5035,7 @@ function addRitdeelActieFunc(ritDelen, { ritDeel, actie }) {
5070
5035
  const onIdsActionHandler = (action) => on(action, (_, { ids }) => ids);
5071
5036
  const createIdsReducer = (action) => createReducer([], onIdsActionHandler(action));
5072
5037
  const editableReducer = createReducer(true, on(setEditable, (_, { editable }) => editable));
5073
- const progressIndicatorReducer = createReducer({}, on(ShowProgress, () => ({ progressIndicator: new ProgressIndicator() })), on(ClearProgress, () => ({})));
5038
+ const progressIndicatorReducer = createReducer(undefined, on(ShowProgress, () => ({ progressIndicator: {} })), on(ClearProgress, () => undefined));
5074
5039
  const svgInfoReducer = createReducer([], on(SetSvgInfos, (_, { svgInfos }) => svgInfos));
5075
5040
  const debugReducer = createReducer(false, on(SetDebug, (_, { debug }) => debug));
5076
5041
  const ritSelectieIdsReducer = createIdsReducer(SetRitSelectieIds);
@@ -5096,10 +5061,12 @@ const ongeplandeActieReducer = createReducer(new ArrayMultimap(), on(SetOngeplan
5096
5061
  ongeplandeActie.puics.forEach(puic => ongeplandeActies.delete(puic, ongeplandeActie));
5097
5062
  return new ArrayMultimap(ongeplandeActies);
5098
5063
  }));
5099
- const ongeplandeActieSelectieIdsReducer = createReducer([], onIdsActionHandler(SetOngeplandeActieSelectieIds), on(AddOngeplandeActie, (ids, { ongeplandeActie }) => {
5064
+ const ongeplandeActieSelectieIdsReducer = createReducer([],
5065
+ // on(MstActions.SetOngeplandeActieSelectieIds, (_, { ids }) => ids),
5066
+ onIdsActionHandler(SetOngeplandeActieSelectieIds), on(AddOngeplandeActie, (ids, { ongeplandeActie }) => {
5100
5067
  ongeplandeActie.puics.filter(puic => !ids.includes(puic)).forEach(puic => ids.push(puic));
5101
5068
  return [...ids];
5102
- }), on(DeleteOngeplandeActieSelectieId, (ids, { id }) => ids.includes(id) ? ids.filter(_id => _id !== id) : ids));
5069
+ }), on(DeleteOngeplandeActieSelectieId, (ids, { id }) => [].concat(ids.includes(id) ? ids.filter(_id => _id !== id) : ids)));
5103
5070
  const gebrokenRitSelectieIdsReducer = createIdsReducer(SetGebrokenRitSelectieIds);
5104
5071
  const alternatievenSelectieIdsReducer = createIdsReducer(SetAlternatievenSelectieIds);
5105
5072
  const beginSeinSelectieIdsReducer = createIdsReducer(SetBeginSeinSelectieIds);
@@ -5108,15 +5075,16 @@ const alternatievenClickableIdsReducer = createIdsReducer(SetAlternatievenClicka
5108
5075
  const eindSeinenClickableIdsReducer = createIdsReducer(SetEindSeinenClickableIds);
5109
5076
  const connectorClickableIdsReducer = createIdsReducer(SetConnectorenClickableIds);
5110
5077
  const beginSeinRightClickableIdsReducer = createIdsReducer(SetBeginSeinRightClickableIds);
5111
- 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));
5078
+ 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)));
5112
5079
  const signaleringsbeeldInfoDtosReducer = createReducer([], on(SetSignaleringsbeeldInfoDtos, (_, { dtos }) => dtos), on(UpdateSignaleringsbeeldInfoDtos, (_, { dtos }) => [...dtos]));
5113
5080
  const visibleSbInfoDtosReducer = createReducer([], on(SetVisibleSignaleringsbeeldInfoDtos, (_, { dtos }) => dtos), on(UpdateVisibleSignaleringsbeeldInfoDtos, (_, { dtos }) => [...dtos]));
5114
- const iaVersieReducer = createReducer({ versie: 'unknown', ingangsDatum: new Date() }, on(SetIaVersie, (_, { iaVersie }) => Object.assign({}, iaVersie, { versie: iaVersie.versie.toUpperCase() })));
5081
+ const iaVersieReducer = createReducer({}, on(SetIaVersie, (_, { iaVersie }) => Object.assign({}, iaVersie, { versie: iaVersie.versie.toUpperCase() })));
5115
5082
  const algemeneRitInfoDtoReducer = createReducer({}, on(SetAlgemeneRitInfo, (_, { algemeneRitInfoDto }) => algemeneRitInfoDto));
5116
5083
  const ongeplandeActiesBepaaldReducer = createReducer(false, on(SetOngeplandeActiesBepaald, (_, { bepaald }) => bepaald));
5117
- const nieuweBewegingReducer = createReducer([], on(UpdateRit, (_, { bewegingen }) => bewegingen));
5118
- const baseUrlReducer = createReducer('', on(SetBaseUrl, (_, { baseUrl }) => baseUrl));
5119
- const focusIdsReducer = createReducer([], on(focusOpIds, (_, { puics }) => puics));
5084
+ const nieuweBewegingReducer = createReducer({}, on(UpdateRit, (_, { bewegingen }) => bewegingen));
5085
+ const baseUrlReducer = createReducer(undefined, on(SetBaseUrl, (_, { baseUrl }) => baseUrl));
5086
+ const focusIdsReducer = createReducer({}, on(focusOpIds, (_, { puics }) => puics));
5087
+ const selectedRitdeelIdReducer = createReducer({}, on(SetSelectedRitdeel, (_, { id }) => id));
5120
5088
  const storeReducers = {
5121
5089
  ritDelen: ritdelenReducer,
5122
5090
  ritSelectieIds: ritSelectieIdsReducer,
@@ -5145,9 +5113,9 @@ const storeReducers = {
5145
5113
  nieuweBewegingen: nieuweBewegingReducer,
5146
5114
  baseUrl: baseUrlReducer,
5147
5115
  focusIds: focusIdsReducer,
5116
+ selectedRitdeelId: selectedRitdeelIdReducer
5148
5117
  };
5149
5118
 
5150
- // @ts-nocheck
5151
5119
  class ZoneUtil {
5152
5120
  constructor(ngZone) {
5153
5121
  this.ngZone = ngZone;
@@ -5171,10 +5139,10 @@ class ZoneUtil {
5171
5139
  proxy(target) {
5172
5140
  return new Proxy(target, this.zoneHandler);
5173
5141
  }
5174
- 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 }); }
5175
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ZoneUtil }); }
5142
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ZoneUtil, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable }); }
5143
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ZoneUtil }); }
5176
5144
  }
5177
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ZoneUtil, decorators: [{
5145
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ZoneUtil, decorators: [{
5178
5146
  type: Injectable
5179
5147
  }], ctorParameters: () => [{ type: i0.NgZone }] });
5180
5148
 
@@ -5210,13 +5178,12 @@ class MstViewerModule {
5210
5178
  constructor(service, zoneUtil) {
5211
5179
  this.service = service;
5212
5180
  // maak de EditorService toegankelijk voor GWT code
5213
- // @ts-ignore
5214
5181
  window['rpe'] = {
5215
5182
  EditorService: zoneUtil.proxy(service)
5216
5183
  };
5217
5184
  }
5218
- 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 }); }
5219
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.7", ngImport: i0, type: MstViewerModule, declarations: [MessageComponent,
5185
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: MstViewerModule, deps: [{ token: EditorService }, { token: ZoneUtil }], target: i0.ɵɵFactoryTarget.NgModule }); }
5186
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: MstViewerModule, declarations: [MessageComponent,
5220
5187
  MstviewerComponent,
5221
5188
  OverlayComponent,
5222
5189
  ProgressIndicatorComponent,
@@ -5229,7 +5196,7 @@ class MstViewerModule {
5229
5196
  MessagesComponent], imports: [CommonModule,
5230
5197
  ImxViewerModule,
5231
5198
  RijwegenModule, i1$1.ResourceModule, i2$1.StoreRootModule, i1$2.EffectsRootModule], exports: [MstviewerComponent] }); }
5232
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MstViewerModule, providers: [
5199
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: MstViewerModule, providers: [
5233
5200
  ZoneUtil,
5234
5201
  SignaleringsbeeldInfoResource,
5235
5202
  MstLoggingResource,
@@ -5242,7 +5209,7 @@ class MstViewerModule {
5242
5209
  BewegingVerrijkerService
5243
5210
  ], imports: [imports] }); }
5244
5211
  }
5245
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MstViewerModule, decorators: [{
5212
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: MstViewerModule, decorators: [{
5246
5213
  type: NgModule,
5247
5214
  args: [{
5248
5215
  imports,