@loxia/mst-viewer 8.1.3-202512011422 → 8.1.3-202512020801

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 (215) hide show
  1. package/fesm2022/loxia-mst-viewer-src-generated-openapi.mjs +43 -224
  2. package/fesm2022/loxia-mst-viewer-src-generated-openapi.mjs.map +1 -1
  3. package/fesm2022/loxia-mst-viewer.mjs +533 -774
  4. package/fesm2022/loxia-mst-viewer.mjs.map +1 -1
  5. package/generated/openapi/api/api.d.ts +1 -4
  6. package/generated/openapi/api/sbController.service.d.ts +8 -8
  7. package/generated/openapi/api/sbController.serviceInterface.d.ts +3 -3
  8. package/generated/openapi/model/algemeneRitDto.d.ts +8 -0
  9. package/generated/openapi/model/models.d.ts +1 -9
  10. package/{src/generated/openapi/model/kilometrering.d.ts → generated/openapi/model/signaleringsbeeldRequestDto.d.ts} +4 -3
  11. package/lib/atomic-components/message/message.component.d.ts +2 -2
  12. package/lib/atomic-components/overlay/overlay.component.d.ts +1 -1
  13. package/lib/atomic-components/progress-indicator/progress-indicator.entity.d.ts +1 -1
  14. package/lib/components/carousel-controls/carousel-controls.component.d.ts +3 -1
  15. package/lib/components/mstviewer/mstviewer.component.d.ts +2 -2
  16. package/lib/components/ritdelen-lijst/ritdelen-lijst.component.d.ts +2 -2
  17. package/lib/components/rpe/rpe.component.d.ts +1 -1
  18. package/lib/components/svg-visualisatie/svg-visualisatie.component.d.ts +1 -2
  19. package/lib/components/viewer-controls/viewer-controls.component.d.ts +4 -3
  20. package/lib/model/km-range.d.ts +1 -1
  21. package/lib/model/nieuwe-route.d.ts +2 -2
  22. package/lib/model/ritdeel.d.ts +10 -11
  23. package/lib/resources/signaleringsbeeldinfo.resource.d.ts +15 -10
  24. package/lib/services/editor.service.d.ts +2 -2
  25. package/lib/services/print-beweging.service.d.ts +6 -4
  26. package/lib/services/rit-lezer.service.d.ts +1 -1
  27. package/lib/services/signalerings-beeld-manager.service.d.ts +2 -2
  28. package/lib/services/viewer-control.service.d.ts +5 -0
  29. package/lib/state/actions/actions.d.ts +22 -23
  30. package/lib/state/actions/ritdelen.actions.d.ts +7 -3
  31. package/lib/state/effect/bepaal-ongeplande-acties.effect.d.ts +1 -2
  32. package/lib/state/effect/delete-ongeplande-actie.effect.d.ts +1 -1
  33. package/lib/state/effect/laad-route-files.effect.d.ts +5 -4
  34. package/lib/state/effect/laad-signaleringsbeelden.effect.d.ts +13 -13
  35. package/lib/state/effect/ritdelen.effect.d.ts +6 -7
  36. package/lib/state/effect/svg-view.effect.d.ts +6 -12
  37. package/lib/state/mst-editor-state.d.ts +91 -29
  38. package/lib/util/actie-helper.d.ts +4 -4
  39. package/lib/util/logging-helper.d.ts +1 -2
  40. package/lib/util/utils.d.ts +1 -0
  41. package/package.json +6 -10
  42. package/src/generated/openapi/api/api.d.ts +1 -4
  43. package/src/generated/openapi/api/sbController.service.d.ts +8 -8
  44. package/src/generated/openapi/api/sbController.serviceInterface.d.ts +3 -3
  45. package/src/generated/openapi/model/algemeneRitDto.d.ts +8 -0
  46. package/src/generated/openapi/model/models.d.ts +1 -9
  47. package/{generated/openapi/model/signaleringsElement.d.ts → src/generated/openapi/model/signaleringsbeeldRequestDto.d.ts} +4 -4
  48. package/esm2022/generated/openapi/api/api.mjs +0 -26
  49. package/esm2022/generated/openapi/api/appConfigController.service.mjs +0 -140
  50. package/esm2022/generated/openapi/api/appConfigController.serviceInterface.mjs +0 -2
  51. package/esm2022/generated/openapi/api/bewegingController.service.mjs +0 -155
  52. package/esm2022/generated/openapi/api/bewegingController.serviceInterface.mjs +0 -2
  53. package/esm2022/generated/openapi/api/class0BuildProperties.service.mjs +0 -140
  54. package/esm2022/generated/openapi/api/class0BuildProperties.serviceInterface.mjs +0 -2
  55. package/esm2022/generated/openapi/api/connectorController.service.mjs +0 -146
  56. package/esm2022/generated/openapi/api/connectorController.serviceInterface.mjs +0 -2
  57. package/esm2022/generated/openapi/api/logController.service.mjs +0 -150
  58. package/esm2022/generated/openapi/api/logController.serviceInterface.mjs +0 -2
  59. package/esm2022/generated/openapi/api/p21Controller.service.mjs +0 -236
  60. package/esm2022/generated/openapi/api/p21Controller.serviceInterface.mjs +0 -2
  61. package/esm2022/generated/openapi/api/sbController.service.mjs +0 -203
  62. package/esm2022/generated/openapi/api/sbController.serviceInterface.mjs +0 -2
  63. package/esm2022/generated/openapi/api/svgController.service.mjs +0 -155
  64. package/esm2022/generated/openapi/api/svgController.serviceInterface.mjs +0 -2
  65. package/esm2022/generated/openapi/api.module.mjs +0 -40
  66. package/esm2022/generated/openapi/configuration.mjs +0 -99
  67. package/esm2022/generated/openapi/encoder.mjs +0 -19
  68. package/esm2022/generated/openapi/index.mjs +0 -7
  69. package/esm2022/generated/openapi/model/actieDto.mjs +0 -13
  70. package/esm2022/generated/openapi/model/algemeneRitDto.mjs +0 -13
  71. package/esm2022/generated/openapi/model/bewegingDto.mjs +0 -2
  72. package/esm2022/generated/openapi/model/frontendKeycloakConfig.mjs +0 -13
  73. package/esm2022/generated/openapi/model/frontendProperties.mjs +0 -2
  74. package/esm2022/generated/openapi/model/kilometrering.mjs +0 -13
  75. package/esm2022/generated/openapi/model/logDto.mjs +0 -2
  76. package/esm2022/generated/openapi/model/models.mjs +0 -18
  77. package/esm2022/generated/openapi/model/ritRequestDto.mjs +0 -2
  78. package/esm2022/generated/openapi/model/sein.mjs +0 -10
  79. package/esm2022/generated/openapi/model/signaleringsElement.mjs +0 -13
  80. package/esm2022/generated/openapi/model/signaleringsbeeldDto.mjs +0 -13
  81. package/esm2022/generated/openapi/model/spoornummer.mjs +0 -13
  82. package/esm2022/generated/openapi/model/spoortakFragment.mjs +0 -2
  83. package/esm2022/generated/openapi/model/svgInfoDto.mjs +0 -2
  84. package/esm2022/generated/openapi/model/svgTopology.mjs +0 -2
  85. package/esm2022/generated/openapi/model/topologyElement.mjs +0 -2
  86. package/esm2022/generated/openapi/model/wissel.mjs +0 -2
  87. package/esm2022/generated/openapi/param.mjs +0 -2
  88. package/esm2022/generated/openapi/variables.mjs +0 -9
  89. package/esm2022/generated.version.mjs +0 -2
  90. package/esm2022/lib/atomic-components/message/index.mjs +0 -4
  91. package/esm2022/lib/atomic-components/message/message.component.mjs +0 -34
  92. package/esm2022/lib/atomic-components/message/message.mjs +0 -8
  93. package/esm2022/lib/atomic-components/message/severity.enum.mjs +0 -9
  94. package/esm2022/lib/atomic-components/messages/messages.component.mjs +0 -20
  95. package/esm2022/lib/atomic-components/overlay/overlay.component.mjs +0 -11
  96. package/esm2022/lib/atomic-components/progress-indicator/progress-indicator.component.mjs +0 -11
  97. package/esm2022/lib/atomic-components/progress-indicator/progress-indicator.entity.mjs +0 -11
  98. package/esm2022/lib/atomic-components/services/messages.service.mjs +0 -27
  99. package/esm2022/lib/components/carousel-controls/carousel-controls.component.mjs +0 -39
  100. package/esm2022/lib/components/mstviewer/mstviewer.component.mjs +0 -116
  101. package/esm2022/lib/components/ritdelen-lijst/ritdelen-lijst.component.mjs +0 -273
  102. package/esm2022/lib/components/ritdelen-view/ritdelen-view.component.mjs +0 -103
  103. package/esm2022/lib/components/rpe/rpe.component.mjs +0 -37
  104. package/esm2022/lib/components/svg-visualisatie/svg-visualisatie.component.mjs +0 -275
  105. package/esm2022/lib/components/viewer-controls/viewer-controls.component.mjs +0 -55
  106. package/esm2022/lib/model/alternatief-rit-deel.mjs +0 -7
  107. package/esm2022/lib/model/km-range.mjs +0 -39
  108. package/esm2022/lib/model/melding-event.mjs +0 -7
  109. package/esm2022/lib/model/nieuwe-route.mjs +0 -10
  110. package/esm2022/lib/model/ongeplande-actie.mjs +0 -7
  111. package/esm2022/lib/model/rijwegplan-rijweg-dwang-combinatie.mjs +0 -24
  112. package/esm2022/lib/model/ritdeel.mjs +0 -205
  113. package/esm2022/lib/model/sein-op-ritdeel.mjs +0 -7
  114. package/esm2022/lib/model/wissel-kant-code.mjs +0 -7
  115. package/esm2022/lib/mst-viewer.module.mjs +0 -144
  116. package/esm2022/lib/optimo.mjs +0 -9
  117. package/esm2022/lib/resources/mstlogging.resource.mjs +0 -25
  118. package/esm2022/lib/resources/signaleringsbeeldinfo.resource.mjs +0 -66
  119. package/esm2022/lib/services/base-rest.service.mjs +0 -28
  120. package/esm2022/lib/services/beweging-utils.service.mjs +0 -139
  121. package/esm2022/lib/services/beweging-verrijker.service.mjs +0 -30
  122. package/esm2022/lib/services/connector.service.mjs +0 -30
  123. package/esm2022/lib/services/debug.service.mjs +0 -59
  124. package/esm2022/lib/services/editor.service.mjs +0 -50
  125. package/esm2022/lib/services/print-beweging.service.mjs +0 -69
  126. package/esm2022/lib/services/rit-lezer.service.mjs +0 -104
  127. package/esm2022/lib/services/signalerings-beeld-manager.service.mjs +0 -92
  128. package/esm2022/lib/services/viewer-control.service.mjs +0 -84
  129. package/esm2022/lib/state/actions/actions.mjs +0 -133
  130. package/esm2022/lib/state/actions/ritdelen.actions.mjs +0 -45
  131. package/esm2022/lib/state/effect/bepaal-ongeplande-acties.effect.mjs +0 -79
  132. package/esm2022/lib/state/effect/bepaal-sb-infos.effect.mjs +0 -67
  133. package/esm2022/lib/state/effect/beweging-invoegen.effect.mjs +0 -73
  134. package/esm2022/lib/state/effect/delete-ongeplande-actie.effect.mjs +0 -39
  135. package/esm2022/lib/state/effect/focus-effect.mjs +0 -36
  136. package/esm2022/lib/state/effect/laad-route-files.effect.mjs +0 -64
  137. package/esm2022/lib/state/effect/laad-signaleringsbeelden.effect.mjs +0 -361
  138. package/esm2022/lib/state/effect/rit-goedkeuren.effect.mjs +0 -23
  139. package/esm2022/lib/state/effect/ritdelen.effect.mjs +0 -113
  140. package/esm2022/lib/state/effect/svg-view.effect.mjs +0 -89
  141. package/esm2022/lib/state/mst-editor-state.mjs +0 -88
  142. package/esm2022/lib/state/reducer/rit-delen.reducer.mjs +0 -62
  143. package/esm2022/lib/util/actie-helper.mjs +0 -441
  144. package/esm2022/lib/util/actie-popover-bepaler.mjs +0 -90
  145. package/esm2022/lib/util/date.service.mjs +0 -17
  146. package/esm2022/lib/util/logging-helper.mjs +0 -56
  147. package/esm2022/lib/util/melding-builder.mjs +0 -13
  148. package/esm2022/lib/util/message-builder.mjs +0 -32
  149. package/esm2022/lib/util/multi-map.mjs +0 -75
  150. package/esm2022/lib/util/utils.mjs +0 -35
  151. package/esm2022/lib/util/zone-util.mjs +0 -33
  152. package/esm2022/loxia-mst-viewer.mjs +0 -5
  153. package/esm2022/public-api.mjs +0 -9
  154. package/esm2022/src/generated/openapi/api/api.mjs +0 -26
  155. package/esm2022/src/generated/openapi/api/appConfigController.service.mjs +0 -140
  156. package/esm2022/src/generated/openapi/api/appConfigController.serviceInterface.mjs +0 -2
  157. package/esm2022/src/generated/openapi/api/bewegingController.service.mjs +0 -155
  158. package/esm2022/src/generated/openapi/api/bewegingController.serviceInterface.mjs +0 -2
  159. package/esm2022/src/generated/openapi/api/class0BuildProperties.service.mjs +0 -140
  160. package/esm2022/src/generated/openapi/api/class0BuildProperties.serviceInterface.mjs +0 -2
  161. package/esm2022/src/generated/openapi/api/connectorController.service.mjs +0 -146
  162. package/esm2022/src/generated/openapi/api/connectorController.serviceInterface.mjs +0 -2
  163. package/esm2022/src/generated/openapi/api/logController.service.mjs +0 -150
  164. package/esm2022/src/generated/openapi/api/logController.serviceInterface.mjs +0 -2
  165. package/esm2022/src/generated/openapi/api/p21Controller.service.mjs +0 -236
  166. package/esm2022/src/generated/openapi/api/p21Controller.serviceInterface.mjs +0 -2
  167. package/esm2022/src/generated/openapi/api/sbController.service.mjs +0 -203
  168. package/esm2022/src/generated/openapi/api/sbController.serviceInterface.mjs +0 -2
  169. package/esm2022/src/generated/openapi/api/svgController.service.mjs +0 -155
  170. package/esm2022/src/generated/openapi/api/svgController.serviceInterface.mjs +0 -2
  171. package/esm2022/src/generated/openapi/api.module.mjs +0 -40
  172. package/esm2022/src/generated/openapi/configuration.mjs +0 -99
  173. package/esm2022/src/generated/openapi/encoder.mjs +0 -19
  174. package/esm2022/src/generated/openapi/index.mjs +0 -7
  175. package/esm2022/src/generated/openapi/loxia-mst-viewer-src-generated-openapi.mjs +0 -5
  176. package/esm2022/src/generated/openapi/model/actieDto.mjs +0 -13
  177. package/esm2022/src/generated/openapi/model/algemeneRitDto.mjs +0 -13
  178. package/esm2022/src/generated/openapi/model/bewegingDto.mjs +0 -2
  179. package/esm2022/src/generated/openapi/model/frontendKeycloakConfig.mjs +0 -13
  180. package/esm2022/src/generated/openapi/model/frontendProperties.mjs +0 -2
  181. package/esm2022/src/generated/openapi/model/kilometrering.mjs +0 -13
  182. package/esm2022/src/generated/openapi/model/logDto.mjs +0 -2
  183. package/esm2022/src/generated/openapi/model/models.mjs +0 -18
  184. package/esm2022/src/generated/openapi/model/ritRequestDto.mjs +0 -2
  185. package/esm2022/src/generated/openapi/model/sein.mjs +0 -10
  186. package/esm2022/src/generated/openapi/model/signaleringsElement.mjs +0 -13
  187. package/esm2022/src/generated/openapi/model/signaleringsbeeldDto.mjs +0 -13
  188. package/esm2022/src/generated/openapi/model/spoornummer.mjs +0 -13
  189. package/esm2022/src/generated/openapi/model/spoortakFragment.mjs +0 -2
  190. package/esm2022/src/generated/openapi/model/svgInfoDto.mjs +0 -2
  191. package/esm2022/src/generated/openapi/model/svgTopology.mjs +0 -2
  192. package/esm2022/src/generated/openapi/model/topologyElement.mjs +0 -2
  193. package/esm2022/src/generated/openapi/model/wissel.mjs +0 -2
  194. package/esm2022/src/generated/openapi/param.mjs +0 -2
  195. package/esm2022/src/generated/openapi/variables.mjs +0 -9
  196. package/generated/openapi/api/svgController.service.d.ts +0 -40
  197. package/generated/openapi/api/svgController.serviceInterface.d.ts +0 -27
  198. package/generated/openapi/model/kilometrering.d.ts +0 -15
  199. package/generated/openapi/model/sein.d.ts +0 -46
  200. package/generated/openapi/model/spoornummer.d.ts +0 -17
  201. package/generated/openapi/model/spoortakFragment.d.ts +0 -26
  202. package/generated/openapi/model/svgInfoDto.d.ts +0 -16
  203. package/generated/openapi/model/svgTopology.d.ts +0 -21
  204. package/generated/openapi/model/topologyElement.d.ts +0 -18
  205. package/generated/openapi/model/wissel.d.ts +0 -31
  206. package/src/generated/openapi/api/svgController.service.d.ts +0 -40
  207. package/src/generated/openapi/api/svgController.serviceInterface.d.ts +0 -27
  208. package/src/generated/openapi/model/sein.d.ts +0 -46
  209. package/src/generated/openapi/model/signaleringsElement.d.ts +0 -16
  210. package/src/generated/openapi/model/spoornummer.d.ts +0 -17
  211. package/src/generated/openapi/model/spoortakFragment.d.ts +0 -26
  212. package/src/generated/openapi/model/svgInfoDto.d.ts +0 -16
  213. package/src/generated/openapi/model/svgTopology.d.ts +0 -21
  214. package/src/generated/openapi/model/topologyElement.d.ts +0 -18
  215. package/src/generated/openapi/model/wissel.d.ts +0 -31
@@ -1,23 +1,23 @@
1
1
  import * as i2 from '@angular/common';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { EventEmitter, Component, Input, Output, Injectable, ChangeDetectionStrategy, ViewChild, InjectionToken, Optional, Inject, NgModule, SkipSelf, HostListener } from '@angular/core';
4
+ import { EventEmitter, Output, Input, Component, Injectable, ChangeDetectionStrategy, ViewChild, InjectionToken, Optional, Inject, SkipSelf, NgModule, HostListener } from '@angular/core';
5
5
  import * as i7 from '@loxia/imx-viewer';
6
- import { PopoverInfo, Point, SvgInfo, ImxViewerComponent, SelectieInfo, ImxViewerModule } from '@loxia/imx-viewer';
7
- import * as i3 from '@loxia/rijwegen';
6
+ import { SelectieInfo, PopoverInfo, Point, SvgInfo, ImxViewerComponent, ImxViewerModule } from '@loxia/imx-viewer';
7
+ import * as i4 from '@loxia/rijwegen';
8
8
  import { JsJavaUtil, RijwegenModule } from '@loxia/rijwegen';
9
9
  import * as i1$2 from '@ngrx/effects';
10
10
  import { createEffect, ofType, EffectsModule } from '@ngrx/effects';
11
11
  import * as i2$1 from '@ngrx/store';
12
12
  import { createAction, union, select, createReducer, on, StoreModule } from '@ngrx/store';
13
13
  import { ResourceModule } from '@ngx-resource/handler-ngx-http';
14
- import { BehaviorSubject, 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';
19
19
  import * as i1$1 from '@ngx-resource/core';
20
- import { Resource, ResourceAction, ResourceParams, ResourceModel } from '@ngx-resource/core';
20
+ import { Resource, ResourceAction, ResourceRequestMethod, ResourceParams, ResourceModel } from '@ngx-resource/core';
21
21
 
22
22
  class Message {
23
23
  constructor(severity, text, timeout = 0) {
@@ -41,7 +41,7 @@ class MessageComponent {
41
41
  this.onClearMessage = new EventEmitter();
42
42
  }
43
43
  ngOnInit() {
44
- if (this.message && 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.14", ngImport: i0, type: MessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
59
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MessageComponent, selector: "loxia-message", inputs: { message: "message" }, outputs: { onClearMessage: "onClearMessage" }, ngImport: i0, template: "<div id=\"alert-1\" *ngIf=\"message\"\n [ngClass]=\"severity\"\n class=\" loxia-message flex items-center p-4 text-white\" role=\"alert\">\n <svg class=\"flex-shrink-0 size-4 mt-0.5\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path d=\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z\"></path>\n <path d=\"M12 9v4\"></path>\n <path d=\"M12 17h.01\"></path>\n </svg>\n <span class=\"sr-only\">Info</span>\n <div class=\"ms-3 text-sm font-medium\">\n {{message.text}}\n </div>\n <button type=\"button\"\n (click)=\"closeMessage($event)\"\n class=\"ms-auto -mx-1.5 -my-1.5 rounded-lg inline-flex items-center justify-center h-8 w-8\" data-dismiss-target=\"#alert-1\" aria-label=\"Close\">\n <span class=\"sr-only\">Close</span>\n <svg class=\"w-3 h-3\" aria-hidden=\"true\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 14 14\">\n <path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m1 1 6 6m0 0 6 6M7 7l6-6M7 7l-6 6\"/>\n </svg>\n </button>\n</div>\n", styles: ["svg{background-color:transparent;stroke-width:unset}.loxia-message.information{background-color:#0288d1}.loxia-message.warning{background-color:#ff6a00}.loxia-message.notification{background-color:#f3ed38}.loxia-message.error{background-color:#b5061b}.loxia-message.success{background-color:#297d03}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
58
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: MessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
59
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.16", 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.14", ngImport: i0, type: MessageComponent, decorators: [{
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", 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.14", ngImport: i0, type: MessagesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
87
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MessagesService, providedIn: 'root' }); }
86
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: MessagesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
87
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: MessagesService, providedIn: 'root' }); }
88
88
  }
89
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MessagesService, decorators: [{
89
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", 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.14", ngImport: i0, type: MessagesComponent, deps: [{ token: MessagesService }], target: i0.ɵɵFactoryTarget.Component }); }
102
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MessagesComponent, selector: "loxia-messages", ngImport: i0, template: "<div class=\"messages w-full\">\n <div *ngFor=\"let message of (messagesService.messages$ | async); let i = index; trackBy: trackbyIndex\">\n <loxia-message [message]=\"message\" (onClearMessage)=\"messagesService.clearMessage($event)\"></loxia-message>\n </div>\n</div>\n", styles: [".messages{position:fixed;top:0;left:0;z-index:2000;flex-direction:column;display:flex}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: MessageComponent, selector: "loxia-message", inputs: ["message"], outputs: ["onClearMessage"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
101
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: MessagesComponent, deps: [{ token: MessagesService }], target: i0.ɵɵFactoryTarget.Component }); }
102
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.16", 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.14", ngImport: i0, type: MessagesComponent, decorators: [{
104
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", 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.14", ngImport: i0, type: OverlayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
111
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: OverlayComponent, selector: "loxia-overlay", ngImport: i0, template: "<div class=\"overlay\">\n <div class=\"centered-content\">\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n", styles: [":host{width:100vw;height:0;opacity:1}.centered-content{position:relative;width:100%;height:100%}.content{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.overlay{position:absolute;background-color:#1f2528db;width:100%;height:100%;z-index:1001}\n"] }); }
110
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: OverlayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
111
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.16", 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.14", ngImport: i0, type: OverlayComponent, decorators: [{
113
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", 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.14", ngImport: i0, type: ProgressIndicatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
120
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ProgressIndicatorComponent, selector: "loxia-progress-indicator", ngImport: i0, template: "<div class=\"inline-block h-16 w-16 animate-spin rounded-full border-4 border-solid border-current border-e-transparent align-[-0.125em] text-surface motion-reduce:animate-[spin_1.5s_linear_infinite] dark:text-warning\"\n role=\"status\">\n <span class=\"!absolute !-m-px !h-px !w-px !overflow-hidden !whitespace-nowrap !border-0 !p-0 ![clip:rect(0,0,0,0)]\">\n Loading...\n </span>\n</div>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
119
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: ProgressIndicatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
120
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.16", type: ProgressIndicatorComponent, isStandalone: false, selector: "loxia-progress-indicator", ngImport: i0, template: "<div class=\"inline-block h-16 w-16 animate-spin rounded-full border-4 border-solid border-current border-e-transparent align-[-0.125em] text-surface motion-reduce:animate-[spin_1.5s_linear_infinite] dark:text-warning\"\n role=\"status\">\n <span class=\"!absolute !-m-px !h-px !w-px !overflow-hidden !whitespace-nowrap !border-0 !p-0 ![clip:rect(0,0,0,0)]\">\n Loading...\n </span>\n</div>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
121
121
  }
122
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ProgressIndicatorComponent, decorators: [{
122
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", 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: 'loxia-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.14", ngImport: i0, type: CarouselControlsComponent, deps: [{ token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
193
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: CarouselControlsComponent, selector: "carousel-controls", inputs: { paginationSize: "paginationSize", sideNavOpen: "sideNavOpen" }, ngImport: i0, template: "<div *ngIf=\"ritdelen$ | async\">\n <a class=\"loxia-carousel-control-prev\" [ngClass]=\"(sideNavOpen)?'carousel-sidebar-open':'carousel-sidebar'\" role=\"button\"\n data-slide=\"prev\" (click)=\"navigeerNaarLinks($event)\" [hidden]=\"(kanLinks$ | async) === false\">\n <span id=\"previous-page\" class=\"loxia-carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"loxia-sr-only\">Previous</span>\n</a>\n <a class=\"loxia-carousel-control-next\" style=\"width: 2%;\" role=\"button\" data-slide=\"next\" (click)=\"navigeerNaarRechts($event)\"\n [hidden]=\"(kanRechts$ | async) === false\">\n <span id=\"next-page\" class=\"loxia-carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"loxia-sr-only\">Next</span>\n </a>\n</div>\n", styles: [".loxia-carousel-control-prev{left:0}.loxia-carousel-control-next{right:0}.loxia-carousel-control-next-icon,.loxia-carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:50%/100% 100% no-repeat}.loxia-carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\")}.loxia-carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\")}.loxia-carousel-control-next:focus,.loxia-carousel-control-next:hover,.loxia-carousel-control-prev:focus,.loxia-carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.loxia-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.loxia-carousel-control-next,.loxia-carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}.carousel-sidebar{width:2%}.carousel-sidebar-open{width:2%;transition:all .3s;left:470px}[hidden]{display:none!important}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
194
- }
195
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CarouselControlsComponent, decorators: [{
196
- type: Component,
197
- args: [{ selector: 'carousel-controls', template: "<div *ngIf=\"ritdelen$ | async\">\n <a class=\"loxia-carousel-control-prev\" [ngClass]=\"(sideNavOpen)?'carousel-sidebar-open':'carousel-sidebar'\" role=\"button\"\n data-slide=\"prev\" (click)=\"navigeerNaarLinks($event)\" [hidden]=\"(kanLinks$ | async) === false\">\n <span id=\"previous-page\" class=\"loxia-carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"loxia-sr-only\">Previous</span>\n</a>\n <a class=\"loxia-carousel-control-next\" style=\"width: 2%;\" role=\"button\" data-slide=\"next\" (click)=\"navigeerNaarRechts($event)\"\n [hidden]=\"(kanRechts$ | async) === false\">\n <span id=\"next-page\" class=\"loxia-carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"loxia-sr-only\">Next</span>\n </a>\n</div>\n", styles: [".loxia-carousel-control-prev{left:0}.loxia-carousel-control-next{right:0}.loxia-carousel-control-next-icon,.loxia-carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:50%/100% 100% no-repeat}.loxia-carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\")}.loxia-carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\")}.loxia-carousel-control-next:focus,.loxia-carousel-control-next:hover,.loxia-carousel-control-prev:focus,.loxia-carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.loxia-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.loxia-carousel-control-next,.loxia-carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}.carousel-sidebar{width:2%}.carousel-sidebar-open{width:2%;transition:all .3s;left:470px}[hidden]{display:none!important}\n"] }]
198
- }], ctorParameters: () => [{ type: i2$1.Store }], propDecorators: { paginationSize: [{
199
- type: Input
200
- }], sideNavOpen: [{
201
- type: Input
202
- }] } });
203
-
204
127
  const version = '8.1.3-SNAPSHOT';
205
128
 
206
129
  const SET_EDITABLE = '[mst] SetEditable';
@@ -246,8 +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';
249
- const TRIGGER_SELECTIE_UPDATE = '[mst] TriggerSelectieUpdate';
250
- const SET_SELECTIE_INFOS = '[mst] SetSelectieInfos';
172
+ const SET_SELECTED_RITDEEL = '[mst] SetSelectedRitdeel';
251
173
  const setEditable = createAction(SET_EDITABLE, (editable) => ({ editable }));
252
174
  const SetRitSelectieIds = createAction(SET_RIT_SELECTIE_IDS, (ids) => ({ ids }));
253
175
  const SetGeplandeActies = createAction(SET_GEPLANDE_ACTIES, (geplandeActiesMap) => ({ geplandeActiesMap }));
@@ -291,8 +213,7 @@ const navigeerBuitenRit = createAction(NAVIGEER_BUITEN_RIT, (randPuic) => ({ ran
291
213
  const focusOpRitdeel = createAction(FOCUS_OP_RITDEEL, (ritdeel, paginationSize, iaVersieInfo) => ({ ritdeel, paginationSize, iaVersieInfo }));
292
214
  const focusOpIds = createAction(FOCUS_OP_IDS, (puics) => ({ puics }));
293
215
  const bepaalSbInfos = createAction(BEPAAL_SB_INFOS, (rit, ongeplandeActies, iaVersie, ritGewijzigdToegestaan, paginationSize) => ({ rit, ongeplandeActies, iaVersie, ritGewijzigdToegestaan, paginationSize }));
294
- const svgUpdateFinished = createAction(TRIGGER_SELECTIE_UPDATE);
295
- const setSelectieInfos = createAction(SET_SELECTIE_INFOS, (selectieInfos) => ({ selectieInfos }));
216
+ const SetSelectedRitdeel = createAction(SET_SELECTED_RITDEEL, (id) => ({ id }));
296
217
  // do not export return value
297
218
  const mstActions = union({
298
219
  setEditable,
@@ -331,10 +252,88 @@ const mstActions = union({
331
252
  BewegingInvoegen,
332
253
  KeurAlleActiesGoed,
333
254
  UpdateRit,
334
- svgUpdateFinished,
335
- setSelectieInfos
255
+ setSelectedRitdeel: SetSelectedRitdeel
336
256
  });
337
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
+
338
337
  /**
339
338
  * https://gist.github.com/jordanluyke/609a4fffb69d1ebafdadd313ee2ee804
340
339
  *
@@ -398,7 +397,7 @@ class ArrayMultimap {
398
397
  return Array.from(new Set(this._entries.map(entry => entry.key)));
399
398
  }
400
399
  values() {
401
- return this._entries.reduce((acc, x) => acc.concat(x.value), []);
400
+ return Utils.flatMap(this._entries, x => x.value);
402
401
  }
403
402
  put(key, value) {
404
403
  this._entries.push(new MultimapEntry(key, value));
@@ -492,10 +491,10 @@ class SignaleringsBeeldManagerService {
492
491
  getEersteVerbindingPuicVoorSplitEngelseWissel(engelsWisselNaam, kantcode) {
493
492
  return this.signaleringsBeeldManager.getEersteVerbindingPuicVoorSplitEngelseWissel(engelsWisselNaam, kantcode);
494
493
  }
495
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SignaleringsBeeldManagerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
496
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SignaleringsBeeldManagerService }); }
494
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: SignaleringsBeeldManagerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
495
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: SignaleringsBeeldManagerService }); }
497
496
  }
498
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SignaleringsBeeldManagerService, decorators: [{
497
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: SignaleringsBeeldManagerService, decorators: [{
499
498
  type: Injectable
500
499
  }] });
501
500
 
@@ -504,7 +503,6 @@ class EditorService {
504
503
  this.signaleringsBeeldManagerService = signaleringsBeeldManagerService;
505
504
  this.initReadyPromise();
506
505
  }
507
- // Called from GWT only, can be removed when GWT is gone. any is used because it will be removed with GWT
508
506
  setEditor(editor) {
509
507
  this.editor = editor;
510
508
  this.resolveReadyPromise();
@@ -512,7 +510,6 @@ class EditorService {
512
510
  isReady() {
513
511
  return this.promise;
514
512
  }
515
- // Called from GWT only, can be removed when GWT is gone
516
513
  setSignaleringsBeeldManager(signaleringsBeeldManager) {
517
514
  this.signaleringsBeeldManagerService.set(signaleringsBeeldManager);
518
515
  }
@@ -538,10 +535,10 @@ class EditorService {
538
535
  that.resolveReadyPromise = resolve;
539
536
  }) : this.promise;
540
537
  }
541
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EditorService, deps: [{ token: SignaleringsBeeldManagerService }], target: i0.ɵɵFactoryTarget.Injectable }); }
542
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EditorService }); }
538
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: EditorService, deps: [{ token: SignaleringsBeeldManagerService }], target: i0.ɵɵFactoryTarget.Injectable }); }
539
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: EditorService }); }
543
540
  }
544
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EditorService, decorators: [{
541
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: EditorService, decorators: [{
545
542
  type: Injectable
546
543
  }], ctorParameters: () => [{ type: SignaleringsBeeldManagerService }] });
547
544
 
@@ -558,7 +555,7 @@ class BewegingUtils {
558
555
  const retval = [];
559
556
  retval.length = ritDelen.length;
560
557
  const origineleBewegingMap = this.bepaalOrigineleBewegingMap(origineleBewegingen);
561
- let vorigeBeweging = undefined;
558
+ let vorigeBeweging = null;
562
559
  for (let i = 0; i < ritDelen.length; i++) {
563
560
  const ritdeel = ritDelen[i];
564
561
  if (ritdeel.beweging) {
@@ -588,7 +585,7 @@ class BewegingUtils {
588
585
  }
589
586
  static bewegingenZijnGewijzigd(ritDelen, origineleBewegingen) {
590
587
  const ritDelenArray = ritDelen
591
- .filter(r => r.beweging?.id)
588
+ .filter(r => r.beweging)
592
589
  .map(r => r.beweging.id)
593
590
  .sort((a, b) => a - b);
594
591
  const bewegingenIdArray = origineleBewegingen.map(b => b.id).sort((a, b) => a - b);
@@ -604,9 +601,9 @@ class BewegingUtils {
604
601
  return stringToCheck.indexOf(match) !== -1;
605
602
  }
606
603
  static isGewijzigd(ritdeel, nieuwDwangNummer, origineleBewegingenMap) {
607
- const dwangGewijzigd = ritdeel.beweging?.dwangNummer !== nieuwDwangNummer;
604
+ const dwangGewijzigd = ritdeel.beweging.dwangNummer !== nieuwDwangNummer;
608
605
  let gewijzigd = false;
609
- if (ritdeel.beweging?.wijzigStatus === this.NORMAAL) {
606
+ if (ritdeel.beweging.wijzigStatus === this.NORMAAL) {
610
607
  const origineleBewegingActies = origineleBewegingenMap.get(ritdeel.beweging.id);
611
608
  const huidigeActies = this.createSortedActieIdList(ritdeel.acties);
612
609
  gewijzigd = JSON.stringify(huidigeActies) !== JSON.stringify(origineleBewegingActies);
@@ -630,7 +627,7 @@ class BewegingUtils {
630
627
  let naarSeinPplg;
631
628
  let naarSpoor = newRitdeel.getNaarPrlSpoor();
632
629
  if (eindSein.getTypeAlsString() === BewegingUtils.SEIN_TYPE_FICTIEF) {
633
- if (newRitdeel.heeftVrijebaanInfo() && newRitdeel.getVrijebaanRijweg()) {
630
+ if (newRitdeel.heeftVrijebaanInfo()) {
634
631
  const vbEindSein = newRitdeel.getVrijebaanRijweg().getEindSein();
635
632
  naarSeinNaam = vbEindSein.getName();
636
633
  naarSeinPplg = vbEindSein.getPPLG();
@@ -673,10 +670,10 @@ class BewegingUtils {
673
670
  static toRouteFileDwangNummer(dwangNummer) {
674
671
  return (dwangNummer === 0) ? -1 : dwangNummer;
675
672
  }
676
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BewegingUtils, deps: [{ token: EditorService }], target: i0.ɵɵFactoryTarget.Injectable }); }
677
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BewegingUtils }); }
673
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: BewegingUtils, deps: [{ token: EditorService }], target: i0.ɵɵFactoryTarget.Injectable }); }
674
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: BewegingUtils }); }
678
675
  }
679
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BewegingUtils, decorators: [{
676
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: BewegingUtils, decorators: [{
680
677
  type: Injectable
681
678
  }], ctorParameters: () => [{ type: EditorService }] });
682
679
 
@@ -684,23 +681,43 @@ class ViewerControlService {
684
681
  constructor(store, bewegingUtils) {
685
682
  this.store = store;
686
683
  this.bewegingUtils = bewegingUtils;
684
+ this.subscriptions = new Subscription();
687
685
  this.valideRit$ = new BehaviorSubject(false);
688
686
  this.printing$ = new BehaviorSubject(false);
689
687
  this.sideNavOpen = false;
690
688
  this.sideNavOpen$ = new BehaviorSubject(this.sideNavOpen);
691
- this.origineelTreinPad = {};
689
+ this.subscriptions.add(combineLatest([
690
+ store.select('ritSelectieIds'),
691
+ store.select('actieOpRitSelectieIds'),
692
+ store.select('ongeplandeActieSelectieIds'),
693
+ store.select('gebrokenRitSelectieIds'),
694
+ store.select('alternatievenSelectieIds'),
695
+ store.select('beginSeinSelectieIds'),
696
+ store.select('eindSeinSelectieIds')
697
+ ]).subscribe(([rit, actieOpRitSelectieIds, ongeplandeActieSelectieIds, gebrokenrit, alternatieven, begin, eind]) => {
698
+ const selectie = [];
699
+ selectie.push(new SelectieInfo(rit, 'rit'));
700
+ selectie.push(new SelectieInfo(actieOpRitSelectieIds, 'actieoprit'));
701
+ selectie.push(new SelectieInfo(ongeplandeActieSelectieIds, 'ongeplandeActie'));
702
+ selectie.push(new SelectieInfo(gebrokenrit, 'gebrokenrit'));
703
+ selectie.push(new SelectieInfo(alternatieven, 'alternatieveRoute'));
704
+ selectie.push(new SelectieInfo(begin, 'zigzagVan'));
705
+ selectie.push(new SelectieInfo(eind, 'zigzagNaar'));
706
+ this.selectieInfos = selectie;
707
+ }));
708
+ this.subscriptions.add(store.select('ritDelen').subscribe(ritdelen => this.ritdelen = ritdelen));
692
709
  }
693
710
  toggleSideNavVisible() {
694
711
  this.sideNavOpen = !this.sideNavOpen;
695
712
  this.sideNavOpen$.next(this.sideNavOpen);
696
713
  }
697
714
  keurAlleActiesGoed(ongeplandeActies) {
698
- this.store.select('ritDelen').pipe(take(1), filter(ritdelen => !!ritdelen), tap(ritdelen => {
715
+ if (this.ritdelen) {
699
716
  this.store.dispatch(ShowProgress());
700
- const bewegingen = this.bewegingUtils.extractBewegingenUitRitdelen(ritdelen, this.origineelTreinPad.bewegingen);
701
- 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);
702
719
  this.store.dispatch(KeurAlleActiesGoed(this.getBewegingenZonderActies(bewegingen), alleActies));
703
- })).subscribe();
720
+ }
704
721
  }
705
722
  setValideRit(valideRit) {
706
723
  this.valideRit$.next(valideRit);
@@ -747,10 +764,10 @@ class ViewerControlService {
747
764
  isPrinting$() {
748
765
  return this.printing$;
749
766
  }
750
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ViewerControlService, deps: [{ token: i2$1.Store }, { token: BewegingUtils }], target: i0.ɵɵFactoryTarget.Injectable }); }
751
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ViewerControlService, providedIn: 'root' }); }
767
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", 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: "19.2.16", ngImport: i0, type: ViewerControlService, providedIn: 'root' }); }
752
769
  }
753
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ViewerControlService, decorators: [{
770
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: ViewerControlService, decorators: [{
754
771
  type: Injectable,
755
772
  args: [{
756
773
  providedIn: 'root'
@@ -766,10 +783,10 @@ class DebugService {
766
783
  setDebugFlag(debug) {
767
784
  this.store.dispatch(SetDebug(debug));
768
785
  if (debug) {
769
- document.getElementById('svgContainer')?.addEventListener('mouseover', this.listener);
786
+ document.getElementById('svgContainer').addEventListener('mouseover', this.listener);
770
787
  }
771
788
  else {
772
- document.getElementById('svgContainer')?.removeEventListener('mouseover', this.listener);
789
+ document.getElementById('svgContainer').removeEventListener('mouseover', this.listener);
773
790
  }
774
791
  }
775
792
  debugEventListener() {
@@ -800,10 +817,10 @@ class DebugService {
800
817
  console.log(logline);
801
818
  }
802
819
  }
803
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DebugService, deps: [{ token: i2$1.Store }, { token: SignaleringsBeeldManagerService }], target: i0.ɵɵFactoryTarget.Injectable }); }
804
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DebugService, providedIn: 'root' }); }
820
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", 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: "19.2.16", ngImport: i0, type: DebugService, providedIn: 'root' }); }
805
822
  }
806
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DebugService, decorators: [{
823
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: DebugService, decorators: [{
807
824
  type: Injectable,
808
825
  args: [{
809
826
  providedIn: 'root'
@@ -815,28 +832,26 @@ class PrintBewegingService {
815
832
  this.store = store;
816
833
  this.viewerControlService = viewerControlService;
817
834
  this.sbmService = sbmService;
818
- }
819
- printBeweging(bewegingId, paginationSize) {
820
- return new Promise((resolve, reject) => {
821
- this.store.select('ritDelen').pipe(take(1), tap(ritdelen => {
822
- const gevondenRitdeel = ritdelen.filter(r => Number.parseInt(r.getBewegingId(), 10) === bewegingId);
823
- // hide/show de knoppen
824
- const printing = !!bewegingId && gevondenRitdeel.length === 1;
825
- this.viewerControlService.setPrinting(printing);
826
- if (!printing) {
827
- reject(new Error('Geen beweging gevonden voor ' + bewegingId));
828
- return;
829
- }
830
- const ritdeel = gevondenRitdeel[0];
831
- if (ritdeel.isNietBeschikbaar()) {
832
- this.store.dispatch(navigeerVanaf(paginationSize, ritdeel));
833
- this.store.dispatch(ShowProgress());
834
- setTimeout(() => this.focusOpBeweging(ritdeel, resolve), 1000);
835
- }
836
- else {
837
- this.focusOpBeweging(ritdeel, resolve);
838
- }
839
- })).subscribe();
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
+ }
840
855
  });
841
856
  }
842
857
  focusOpBeweging(ritdeel, resolve) {
@@ -860,10 +875,10 @@ class PrintBewegingService {
860
875
  getPuics(topoElementen) {
861
876
  return topoElementen.map(e => e.getPuic());
862
877
  }
863
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PrintBewegingService, deps: [{ token: i2$1.Store }, { token: ViewerControlService }, { token: SignaleringsBeeldManagerService }], target: i0.ɵɵFactoryTarget.Injectable }); }
864
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PrintBewegingService, providedIn: 'root' }); }
878
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", 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: "19.2.16", ngImport: i0, type: PrintBewegingService, providedIn: 'root' }); }
865
880
  }
866
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PrintBewegingService, decorators: [{
881
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: PrintBewegingService, decorators: [{
867
882
  type: Injectable,
868
883
  args: [{
869
884
  providedIn: 'root'
@@ -871,12 +886,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
871
886
  }], ctorParameters: () => [{ type: i2$1.Store }, { type: ViewerControlService }, { type: SignaleringsBeeldManagerService }] });
872
887
 
873
888
  class RpeComponent {
874
- constructor() {
875
- this.baseurl = '';
876
- this.path = '';
877
- }
878
889
  convertToScript() {
879
- const element = this.script?.nativeElement;
890
+ const element = this.script.nativeElement;
880
891
  const script = document.createElement('script');
881
892
  script.type = 'text/javascript';
882
893
  if (this.baseurl && this.path) {
@@ -890,12 +901,12 @@ class RpeComponent {
890
901
  ngAfterViewInit() {
891
902
  this.convertToScript();
892
903
  }
893
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RpeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
894
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: RpeComponent, selector: "rpe-component", inputs: { baseurl: "baseurl", path: "path" }, viewQueries: [{ propertyName: "script", first: true, predicate: ["rpescript"], descendants: true }], ngImport: i0, template: "<div #rpescript style.display=\"none\">\n <ng-content></ng-content>\n</div>\n" }); }
904
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: RpeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
905
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.16", 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" }); }
895
906
  }
896
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RpeComponent, decorators: [{
907
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: RpeComponent, decorators: [{
897
908
  type: Component,
898
- 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" }]
899
910
  }], propDecorators: { baseurl: [{
900
911
  type: Input
901
912
  }], path: [{
@@ -929,7 +940,7 @@ class KmRange {
929
940
  if (result.length >= 1) {
930
941
  return result[0];
931
942
  }
932
- return undefined;
943
+ return null;
933
944
  }
934
945
  heeftOverlap(kilometrering1, kilometrering2) {
935
946
  const vanKilometrering = KmRange.getKilometrering(kilometrering1.getKmLint(), this.vanKilometreringen);
@@ -976,41 +987,6 @@ class MeldingBuilder {
976
987
  }
977
988
  }
978
989
 
979
- class Utils {
980
- static getValidErorrMessage(err) {
981
- let errorMsg = '';
982
- if (err.msg) {
983
- errorMsg += err.msg;
984
- }
985
- if (Array.isArray(err.body)) {
986
- err.body.forEach((x) => errorMsg += x);
987
- }
988
- else if (err.body) {
989
- if (err.body instanceof ProgressEvent) {
990
- errorMsg = 'Kon geen verbinding maken met de server';
991
- }
992
- else if (err.body.text) {
993
- errorMsg += err.body.text;
994
- }
995
- else {
996
- errorMsg += err.body;
997
- }
998
- }
999
- if (err.message) {
1000
- errorMsg += err.message;
1001
- }
1002
- if (typeof err === 'string' || err instanceof String) {
1003
- errorMsg += err;
1004
- }
1005
- if (errorMsg !== '') {
1006
- return errorMsg;
1007
- }
1008
- else {
1009
- return 'Er is een onbekende fout opgetreden';
1010
- }
1011
- }
1012
- }
1013
-
1014
990
  class MessageBuilder {
1015
991
  static rwpDataNietGevonden(err) {
1016
992
  return new Message(Severity.ERROR, 'Error bij ophalen van rijwegplan data: ' + err);
@@ -1281,10 +1257,10 @@ class AppConfigControllerService {
1281
1257
  reportProgress: reportProgress
1282
1258
  });
1283
1259
  }
1284
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AppConfigControllerService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
1285
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AppConfigControllerService, providedIn: 'root' }); }
1260
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", 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: "19.2.16", ngImport: i0, type: AppConfigControllerService, providedIn: 'root' }); }
1286
1262
  }
1287
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AppConfigControllerService, decorators: [{
1263
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: AppConfigControllerService, decorators: [{
1288
1264
  type: Injectable,
1289
1265
  args: [{
1290
1266
  providedIn: 'root'
@@ -1427,10 +1403,10 @@ class BewegingControllerService {
1427
1403
  reportProgress: reportProgress
1428
1404
  });
1429
1405
  }
1430
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BewegingControllerService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
1431
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BewegingControllerService, providedIn: 'root' }); }
1406
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", 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: "19.2.16", ngImport: i0, type: BewegingControllerService, providedIn: 'root' }); }
1432
1408
  }
1433
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BewegingControllerService, decorators: [{
1409
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: BewegingControllerService, decorators: [{
1434
1410
  type: Injectable,
1435
1411
  args: [{
1436
1412
  providedIn: 'root'
@@ -1558,10 +1534,10 @@ class Class0BuildPropertiesService {
1558
1534
  reportProgress: reportProgress
1559
1535
  });
1560
1536
  }
1561
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: Class0BuildPropertiesService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
1562
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: Class0BuildPropertiesService, providedIn: 'root' }); }
1537
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", 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: "19.2.16", ngImport: i0, type: Class0BuildPropertiesService, providedIn: 'root' }); }
1563
1539
  }
1564
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: Class0BuildPropertiesService, decorators: [{
1540
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: Class0BuildPropertiesService, decorators: [{
1565
1541
  type: Injectable,
1566
1542
  args: [{
1567
1543
  providedIn: 'root'
@@ -1695,10 +1671,10 @@ class ConnectorControllerService {
1695
1671
  reportProgress: reportProgress
1696
1672
  });
1697
1673
  }
1698
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ConnectorControllerService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
1699
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ConnectorControllerService, providedIn: 'root' }); }
1674
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", 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: "19.2.16", ngImport: i0, type: ConnectorControllerService, providedIn: 'root' }); }
1700
1676
  }
1701
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ConnectorControllerService, decorators: [{
1677
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: ConnectorControllerService, decorators: [{
1702
1678
  type: Injectable,
1703
1679
  args: [{
1704
1680
  providedIn: 'root'
@@ -1836,10 +1812,10 @@ class LogControllerService {
1836
1812
  reportProgress: reportProgress
1837
1813
  });
1838
1814
  }
1839
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LogControllerService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
1840
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LogControllerService, providedIn: 'root' }); }
1815
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", 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: "19.2.16", ngImport: i0, type: LogControllerService, providedIn: 'root' }); }
1841
1817
  }
1842
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LogControllerService, decorators: [{
1818
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: LogControllerService, decorators: [{
1843
1819
  type: Injectable,
1844
1820
  args: [{
1845
1821
  providedIn: 'root'
@@ -2063,10 +2039,10 @@ class P21ControllerService {
2063
2039
  reportProgress: reportProgress
2064
2040
  });
2065
2041
  }
2066
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: P21ControllerService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
2067
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: P21ControllerService, providedIn: 'root' }); }
2042
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", 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: "19.2.16", ngImport: i0, type: P21ControllerService, providedIn: 'root' }); }
2068
2044
  }
2069
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: P21ControllerService, decorators: [{
2045
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: P21ControllerService, decorators: [{
2070
2046
  type: Injectable,
2071
2047
  args: [{
2072
2048
  providedIn: 'root'
@@ -2150,25 +2126,16 @@ class SbControllerService {
2150
2126
  }
2151
2127
  return httpParams;
2152
2128
  }
2153
- getSignaleringsbeelden(iaVersie, pplg, observe = 'body', reportProgress = false, options) {
2154
- if (iaVersie === null || iaVersie === undefined) {
2155
- throw new Error('Required parameter iaVersie was null or undefined when calling getSignaleringsbeelden.');
2156
- }
2157
- if (pplg === null || pplg === undefined) {
2158
- throw new Error('Required parameter pplg was null or undefined when calling getSignaleringsbeelden.');
2159
- }
2160
- let localVarQueryParameters = new HttpParams({ encoder: this.encoder });
2161
- if (pplg) {
2162
- pplg.forEach((element) => {
2163
- localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, element, 'pplg');
2164
- });
2129
+ getSignaleringsbeelden(signaleringsbeeldRequestDto, observe = 'body', reportProgress = false, options) {
2130
+ if (signaleringsbeeldRequestDto === null || signaleringsbeeldRequestDto === undefined) {
2131
+ throw new Error('Required parameter signaleringsbeeldRequestDto was null or undefined when calling getSignaleringsbeelden.');
2165
2132
  }
2166
2133
  let localVarHeaders = this.defaultHeaders;
2167
2134
  let localVarHttpHeaderAcceptSelected = options && options.httpHeaderAccept;
2168
2135
  if (localVarHttpHeaderAcceptSelected === undefined) {
2169
2136
  // to determine the Accept header
2170
2137
  const httpHeaderAccepts = [
2171
- 'application/json'
2138
+ '*/*'
2172
2139
  ];
2173
2140
  localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
2174
2141
  }
@@ -2183,6 +2150,14 @@ class SbControllerService {
2183
2150
  if (localVarTransferCache === undefined) {
2184
2151
  localVarTransferCache = true;
2185
2152
  }
2153
+ // to determine the Content-Type header
2154
+ const consumes = [
2155
+ 'application/json'
2156
+ ];
2157
+ const httpContentTypeSelected = this.configuration.selectHeaderContentType(consumes);
2158
+ if (httpContentTypeSelected !== undefined) {
2159
+ localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);
2160
+ }
2186
2161
  let responseType_ = 'json';
2187
2162
  if (localVarHttpHeaderAcceptSelected) {
2188
2163
  if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
@@ -2195,10 +2170,10 @@ class SbControllerService {
2195
2170
  responseType_ = 'blob';
2196
2171
  }
2197
2172
  }
2198
- let localVarPath = `/rest/${this.configuration.encodeParam({ name: "iaVersie", value: iaVersie, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: undefined })}/SignaleringsbeeldAndPplgs`;
2199
- return this.httpClient.request('get', `${this.configuration.basePath}${localVarPath}`, {
2173
+ let localVarPath = `/rest/signaleringsbeeldeninfo`;
2174
+ return this.httpClient.request('post', `${this.configuration.basePath}${localVarPath}`, {
2200
2175
  context: localVarHttpContext,
2201
- params: localVarQueryParameters,
2176
+ body: signaleringsbeeldRequestDto,
2202
2177
  responseType: responseType_,
2203
2178
  withCredentials: this.configuration.withCredentials,
2204
2179
  headers: localVarHeaders,
@@ -2257,156 +2232,10 @@ class SbControllerService {
2257
2232
  reportProgress: reportProgress
2258
2233
  });
2259
2234
  }
2260
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SbControllerService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
2261
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SbControllerService, providedIn: 'root' }); }
2262
- }
2263
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SbControllerService, decorators: [{
2264
- type: Injectable,
2265
- args: [{
2266
- providedIn: 'root'
2267
- }]
2268
- }], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
2269
- type: Optional
2270
- }, {
2271
- type: Inject,
2272
- args: [BASE_PATH]
2273
- }] }, { type: Configuration, decorators: [{
2274
- type: Optional
2275
- }] }] });
2276
-
2277
- /**
2278
- * MST
2279
- * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
2280
- *
2281
- * The version of the OpenAPI document: 1
2282
- *
2283
- *
2284
- * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2285
- * https://openapi-generator.tech
2286
- * Do not edit the class manually.
2287
- */
2288
- /* tslint:disable:no-unused-variable member-ordering */
2289
- class SvgControllerService {
2290
- constructor(httpClient, basePath, configuration) {
2291
- this.httpClient = httpClient;
2292
- this.basePath = 'http://localhost:8080/mst';
2293
- this.defaultHeaders = new HttpHeaders();
2294
- this.configuration = new Configuration();
2295
- if (configuration) {
2296
- this.configuration = configuration;
2297
- }
2298
- if (typeof this.configuration.basePath !== 'string') {
2299
- if (Array.isArray(basePath) && basePath.length > 0) {
2300
- basePath = basePath[0];
2301
- }
2302
- if (typeof basePath !== 'string') {
2303
- basePath = this.basePath;
2304
- }
2305
- this.configuration.basePath = basePath;
2306
- }
2307
- this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();
2308
- }
2309
- // @ts-ignore
2310
- addToHttpParams(httpParams, value, key) {
2311
- if (typeof value === "object" && value instanceof Date === false) {
2312
- httpParams = this.addToHttpParamsRecursive(httpParams, value);
2313
- }
2314
- else {
2315
- httpParams = this.addToHttpParamsRecursive(httpParams, value, key);
2316
- }
2317
- return httpParams;
2318
- }
2319
- addToHttpParamsRecursive(httpParams, value, key) {
2320
- if (value == null) {
2321
- return httpParams;
2322
- }
2323
- if (typeof value === "object") {
2324
- if (Array.isArray(value)) {
2325
- value.forEach(elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));
2326
- }
2327
- else if (value instanceof Date) {
2328
- if (key != null) {
2329
- httpParams = httpParams.append(key, value.toISOString().substring(0, 10));
2330
- }
2331
- else {
2332
- throw Error("key may not be null if value is Date");
2333
- }
2334
- }
2335
- else {
2336
- Object.keys(value).forEach(k => httpParams = this.addToHttpParamsRecursive(httpParams, value[k], key != null ? `${key}.${k}` : k));
2337
- }
2338
- }
2339
- else if (key != null) {
2340
- httpParams = httpParams.append(key, value);
2341
- }
2342
- else {
2343
- throw Error("key may not be null if value is not object or array");
2344
- }
2345
- return httpParams;
2346
- }
2347
- getSvgInfo(iaVersie, signaleringsbeeldDto, observe = 'body', reportProgress = false, options) {
2348
- if (iaVersie === null || iaVersie === undefined) {
2349
- throw new Error('Required parameter iaVersie was null or undefined when calling getSvgInfo.');
2350
- }
2351
- if (signaleringsbeeldDto === null || signaleringsbeeldDto === undefined) {
2352
- throw new Error('Required parameter signaleringsbeeldDto was null or undefined when calling getSvgInfo.');
2353
- }
2354
- let localVarHeaders = this.defaultHeaders;
2355
- let localVarHttpHeaderAcceptSelected = options && options.httpHeaderAccept;
2356
- if (localVarHttpHeaderAcceptSelected === undefined) {
2357
- // to determine the Accept header
2358
- const httpHeaderAccepts = [
2359
- 'application/json'
2360
- ];
2361
- localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
2362
- }
2363
- if (localVarHttpHeaderAcceptSelected !== undefined) {
2364
- localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
2365
- }
2366
- let localVarHttpContext = options && options.context;
2367
- if (localVarHttpContext === undefined) {
2368
- localVarHttpContext = new HttpContext();
2369
- }
2370
- let localVarTransferCache = options && options.transferCache;
2371
- if (localVarTransferCache === undefined) {
2372
- localVarTransferCache = true;
2373
- }
2374
- // to determine the Content-Type header
2375
- const consumes = [
2376
- 'application/json'
2377
- ];
2378
- const httpContentTypeSelected = this.configuration.selectHeaderContentType(consumes);
2379
- if (httpContentTypeSelected !== undefined) {
2380
- localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);
2381
- }
2382
- let responseType_ = 'json';
2383
- if (localVarHttpHeaderAcceptSelected) {
2384
- if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
2385
- responseType_ = 'text';
2386
- }
2387
- else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
2388
- responseType_ = 'json';
2389
- }
2390
- else {
2391
- responseType_ = 'blob';
2392
- }
2393
- }
2394
- let localVarPath = `/rest/${this.configuration.encodeParam({ name: "iaVersie", value: iaVersie, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: undefined })}/svgs`;
2395
- return this.httpClient.request('post', `${this.configuration.basePath}${localVarPath}`, {
2396
- context: localVarHttpContext,
2397
- body: signaleringsbeeldDto,
2398
- responseType: responseType_,
2399
- withCredentials: this.configuration.withCredentials,
2400
- headers: localVarHeaders,
2401
- observe: observe,
2402
- transferCache: localVarTransferCache,
2403
- reportProgress: reportProgress
2404
- });
2405
- }
2406
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SvgControllerService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
2407
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SvgControllerService, providedIn: 'root' }); }
2235
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", 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: "19.2.16", ngImport: i0, type: SbControllerService, providedIn: 'root' }); }
2408
2237
  }
2409
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SvgControllerService, decorators: [{
2238
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: SbControllerService, decorators: [{
2410
2239
  type: Injectable,
2411
2240
  args: [{
2412
2241
  providedIn: 'root'
@@ -2420,19 +2249,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
2420
2249
  type: Optional
2421
2250
  }] }] });
2422
2251
 
2423
- const APIS = [AppConfigControllerService, BewegingControllerService, Class0BuildPropertiesService, ConnectorControllerService, LogControllerService, P21ControllerService, SbControllerService, SvgControllerService];
2424
-
2425
- /**
2426
- * MST
2427
- * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
2428
- *
2429
- * The version of the OpenAPI document: 1
2430
- *
2431
- *
2432
- * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2433
- * https://openapi-generator.tech
2434
- * Do not edit the class manually.
2435
- */
2252
+ const APIS = [AppConfigControllerService, BewegingControllerService, Class0BuildPropertiesService, ConnectorControllerService, LogControllerService, P21ControllerService, SbControllerService];
2436
2253
 
2437
2254
  /**
2438
2255
  * MST
@@ -2458,28 +2275,6 @@ const APIS = [AppConfigControllerService, BewegingControllerService, Class0Build
2458
2275
  * Do not edit the class manually.
2459
2276
  */
2460
2277
 
2461
- /**
2462
- * MST
2463
- * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
2464
- *
2465
- * The version of the OpenAPI document: 1
2466
- *
2467
- *
2468
- * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2469
- * https://openapi-generator.tech
2470
- * Do not edit the class manually.
2471
- */
2472
-
2473
- var Sein;
2474
- (function (Sein) {
2475
- Sein.DirectionEnum = {
2476
- LeftToRight: 'LEFT_TO_RIGHT',
2477
- RightToLeft: 'RIGHT_TO_LEFT',
2478
- TopToBottom: 'TOP_TO_BOTTOM',
2479
- BottomToTop: 'BOTTOM_TO_TOP'
2480
- };
2481
- })(Sein || (Sein = {}));
2482
-
2483
2278
  /**
2484
2279
  * MST
2485
2280
  * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
@@ -2532,11 +2327,11 @@ class ApiModule {
2532
2327
  'See also https://github.com/angular/angular/issues/20575');
2533
2328
  }
2534
2329
  }
2535
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ApiModule, deps: [{ token: ApiModule, optional: true, skipSelf: true }, { token: i1.HttpClient, optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
2536
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: ApiModule }); }
2537
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ApiModule }); }
2330
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", 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: "19.2.16", ngImport: i0, type: ApiModule }); }
2332
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: ApiModule }); }
2538
2333
  }
2539
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ApiModule, decorators: [{
2334
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: ApiModule, decorators: [{
2540
2335
  type: NgModule,
2541
2336
  args: [{
2542
2337
  imports: [],
@@ -2565,10 +2360,10 @@ class MstLoggingResource {
2565
2360
  logMessages(logDto) {
2566
2361
  this.controller.log(logDto).subscribe();
2567
2362
  }
2568
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MstLoggingResource, deps: [{ token: LogControllerService }, { token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
2569
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MstLoggingResource }); }
2363
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", 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: "19.2.16", ngImport: i0, type: MstLoggingResource }); }
2570
2365
  }
2571
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MstLoggingResource, decorators: [{
2366
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: MstLoggingResource, decorators: [{
2572
2367
  type: Injectable
2573
2368
  }], ctorParameters: () => [{ type: LogControllerService }, { type: i2$1.Store }] });
2574
2369
 
@@ -2577,35 +2372,38 @@ class LoggingHelper {
2577
2372
  this.store = store;
2578
2373
  }
2579
2374
  maakLogDTO(melding, actie) {
2580
- return combineLatest([
2581
- this.store.select('algemeneRitInfoDto'),
2582
- this.store.select('iaVersie')
2583
- ]).pipe(take(1), map(([algemeneRitInfoDto, iaVersie]) => {
2584
- let actieDto = null;
2585
- if (actie) {
2586
- actieDto = {
2587
- pplgNaam: actie.pplgNaam,
2588
- ritActieTypeOmschrijving: actie.ritActieTypeOmschrijving,
2589
- ritActieStatus: actie.ritActieStatus,
2590
- bewegingId: actie.bewegingId,
2591
- wisselType: actie.wisselType,
2592
- wisselNaam: actie.wisselNaam,
2593
- wisselKantCode: actie.wisselKantCode,
2594
- vanKilometerlint: actie.vanKilometerlint,
2595
- vanKilometrering: actie.vanKilometrering,
2596
- totKilometerlint: actie.totKilometerlint,
2597
- totKilometrering: actie.totKilometrering
2598
- };
2599
- }
2600
- return {
2601
- iaVersie: iaVersie.versie,
2602
- meldingLevel: melding.meldingLevel,
2603
- meldingMessage: melding.meldingMessage,
2604
- actieDto,
2605
- algemeneRitInfoDto,
2606
- sbinfoDtos: this.getSbInfoDtos()
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
2607
2397
  };
2608
- }));
2398
+ }
2399
+ return {
2400
+ iaVersie,
2401
+ meldingLevel: melding.meldingLevel,
2402
+ meldingMessage: melding.meldingMessage,
2403
+ actieDto,
2404
+ algemeneRitInfoDto,
2405
+ sbinfoDtos: this.getSbInfoDtos()
2406
+ };
2609
2407
  }
2610
2408
  getSbInfoDtos() {
2611
2409
  const sbInfoDtos = [];
@@ -2616,10 +2414,10 @@ class LoggingHelper {
2616
2414
  });
2617
2415
  return sbInfoDtos;
2618
2416
  }
2619
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LoggingHelper, deps: [{ token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
2620
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LoggingHelper }); }
2417
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: LoggingHelper, deps: [{ token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
2418
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: LoggingHelper }); }
2621
2419
  }
2622
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LoggingHelper, decorators: [{
2420
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: LoggingHelper, decorators: [{
2623
2421
  type: Injectable
2624
2422
  }], ctorParameters: () => [{ type: i2$1.Store }] });
2625
2423
 
@@ -2717,7 +2515,6 @@ class ActieHelper {
2717
2515
  this.messagesService = messagesService;
2718
2516
  this.store = store;
2719
2517
  this.loggingHelper = loggingHelper;
2720
- this.debug = false;
2721
2518
  this.store.select('debug').subscribe(debug => this.debug = debug);
2722
2519
  }
2723
2520
  static getActieTopoElements(ritDeel, sbmService) {
@@ -2751,10 +2548,10 @@ class ActieHelper {
2751
2548
  }
2752
2549
  }
2753
2550
  static actieComparator(actie1, actie2) {
2754
- if (actie1.vanKilometrering && actie2.vanKilometrering && actie1.vanKilometrering !== actie2.vanKilometrering) {
2551
+ if (actie1.vanKilometrering !== actie2.vanKilometrering) {
2755
2552
  return actie1.vanKilometrering > actie2.vanKilometrering ? 1 : -1;
2756
2553
  }
2757
- if (actie1.ritActieTypeOmschrijving && actie2.ritActieTypeOmschrijving && actie1.ritActieTypeOmschrijving !== actie2.ritActieTypeOmschrijving) {
2554
+ if (actie1.ritActieTypeOmschrijving !== actie2.ritActieTypeOmschrijving) {
2758
2555
  return actie1.ritActieTypeOmschrijving > actie2.ritActieTypeOmschrijving ? 1 : -1;
2759
2556
  }
2760
2557
  if (actie1.wisselNaam !== actie2.wisselNaam) {
@@ -2794,9 +2591,9 @@ class ActieHelper {
2794
2591
  // make sure the elems are sorted in ascending order
2795
2592
  static sorteerTopoElementen(topoElems) {
2796
2593
  const topoElementen = topoElems.slice();
2797
- let lint = undefined;
2798
- let first;
2799
- let second;
2594
+ let lint = null;
2595
+ let first = null;
2596
+ let second = null;
2800
2597
  for (const topoElement of topoElementen) {
2801
2598
  let kilometreringen = null;
2802
2599
  const kms = JsJavaUtil.listToArray(topoElement.getKilometreringen());
@@ -2828,11 +2625,11 @@ class ActieHelper {
2828
2625
  if (!totKilometreringen && vanKilometreringen) {
2829
2626
  totKilometreringen = [new MstKilometrering(vanKilometreringen[0].getKmLint(), 100000)];
2830
2627
  }
2831
- if (vanKilometreringen && totKilometreringen && vanKilometreringen[0] > totKilometreringen[0]) {
2628
+ if (vanKilometreringen[0] > totKilometreringen[0]) {
2832
2629
  kmRanges.push(KmRange.rangeVoorStrekObject(e, this.addKm(vanKilometreringen, -1), this.addKm(totKilometreringen, 1)));
2833
2630
  }
2834
2631
  else {
2835
- 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)));
2836
2633
  }
2837
2634
  });
2838
2635
  }
@@ -2923,23 +2720,21 @@ class ActieHelper {
2923
2720
  else {
2924
2721
  const puics = [];
2925
2722
  kmRanges.forEach(kmRange => {
2926
- if (actie.vanKilometrering && actie.vanKilometerlint && actie.totKilometrering && actie.totKilometerlint) {
2927
- let vanKilometrering = new MstKilometrering(actie.vanKilometerlint, actie.vanKilometrering);
2928
- let totKilometrering = new MstKilometrering(actie.totKilometerlint, actie.totKilometrering);
2929
- if (actie.vanKilometrering > actie.totKilometrering) {
2930
- const temp = { van: vanKilometrering, tot: totKilometrering };
2931
- vanKilometrering = temp.tot;
2932
- totKilometrering = temp.van;
2933
- }
2934
- if (kmRange.heeftOverlap(vanKilometrering, totKilometrering)) {
2935
- puics.push(kmRange.topologyElement.getPuic());
2936
- }
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());
2937
2732
  }
2938
2733
  });
2939
2734
  if (puics.length === 0) {
2940
2735
  actieZonderElementen.push(actie.id);
2941
2736
  const melding = MeldingBuilder.actieHighlightError(actieZonderElementen);
2942
- this.loggingHelper.maakLogDTO(melding, actie).pipe(tap(dto => logMeldingDTOs.push(dto))).subscribe();
2737
+ logMeldingDTOs.push(this.loggingHelper.maakLogDTO(melding, actie));
2943
2738
  }
2944
2739
  retval.putAll(actie, puics);
2945
2740
  }
@@ -2955,7 +2750,7 @@ class ActieHelper {
2955
2750
  verwerkTopoElementen(topoElementen) {
2956
2751
  const kmRanges = [];
2957
2752
  let topoElementenZonderKms = [];
2958
- let laatstePuntKms = undefined;
2753
+ let laatstePuntKms = null;
2959
2754
  topoElementen.forEach(elem => {
2960
2755
  const kms = JsJavaUtil.listToArray(elem.getKilometreringen());
2961
2756
  if (kms.length > 0) {
@@ -2969,7 +2764,7 @@ class ActieHelper {
2969
2764
  }
2970
2765
  });
2971
2766
  if (topoElementenZonderKms.length > 0 && laatstePuntKms) {
2972
- ActieHelper.corrigeerTopoElementenZonderKms(topoElementenZonderKms, laatstePuntKms, undefined, kmRanges);
2767
+ ActieHelper.corrigeerTopoElementenZonderKms(topoElementenZonderKms, laatstePuntKms, null, kmRanges);
2973
2768
  }
2974
2769
  return kmRanges;
2975
2770
  }
@@ -3032,21 +2827,21 @@ class ActieHelper {
3032
2827
  if (ActieHelper.isKantCodeLinks(kantcode)) {
3033
2828
  return wissel.getLeft();
3034
2829
  }
3035
- return undefined;
2830
+ return null;
3036
2831
  }
3037
2832
  bepaalPuicVoorWisselSlijpenActie(actie) {
3038
2833
  const storingsSymboolPuic = this.sbmService.getSBWissel(actie.wisselNaam, actie.pplgNaam)?.getStoringSymboolPuic();
3039
2834
  if (!storingsSymboolPuic && this.debug) {
3040
2835
  const melding = MeldingBuilder.actieHighlightError([actie.id]);
3041
2836
  this.messagesService.showMessage(MessageBuilder.actieHighlightError([actie.id]));
3042
- this.loggingHelper.maakLogDTO(melding, actie).pipe(tap(logDto => this.mstLogResource.logMessages([logDto]))).subscribe();
2837
+ this.mstLogResource.logMessages([this.loggingHelper.maakLogDTO(melding, actie)]);
3043
2838
  }
3044
2839
  return storingsSymboolPuic ? [storingsSymboolPuic] : [];
3045
2840
  }
3046
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ActieHelper, deps: [{ token: SignaleringsBeeldManagerService }, { token: MstLoggingResource }, { token: MessagesService }, { token: i2$1.Store }, { token: LoggingHelper }], target: i0.ɵɵFactoryTarget.Injectable }); }
3047
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ActieHelper }); }
2841
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", 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: "19.2.16", ngImport: i0, type: ActieHelper }); }
3048
2843
  }
3049
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ActieHelper, decorators: [{
2844
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: ActieHelper, decorators: [{
3050
2845
  type: Injectable
3051
2846
  }], ctorParameters: () => [{ type: SignaleringsBeeldManagerService }, { type: MstLoggingResource }, { type: MessagesService }, { type: i2$1.Store }, { type: LoggingHelper }] });
3052
2847
 
@@ -3054,16 +2849,10 @@ class RitdelenLijstComponent {
3054
2849
  constructor(store, sbmService) {
3055
2850
  this.store = store;
3056
2851
  this.sbmService = sbmService;
3057
- this.nietGeplandeActies = [];
3058
2852
  this.focusEmitter = new EventEmitter();
3059
2853
  this.keurAlleActiesGoed = new EventEmitter();
3060
- this.ritdeelViewModels = [];
3061
2854
  this.selectedRitdeelActies = [];
3062
2855
  this.selectedRitdeelOngeplandeActies = [];
3063
- this.disableActieKnoppenVanRitdeel = true;
3064
- this.editable = false;
3065
- this.ongeplandeActiesMap = new ArrayMultimap();
3066
- this.geplandeActies = new ArrayMultimap();
3067
2856
  this.NG_ACTIE_PREFIX = '* ';
3068
2857
  this.subscriptions = [];
3069
2858
  this.subscriptions.push(store.select('ritDelen').subscribe((ritdelen) => {
@@ -3074,6 +2863,9 @@ class RitdelenLijstComponent {
3074
2863
  this.subscriptions.push(store.select('ongeplandeActies').subscribe(acties => this.ongeplandeActiesMap = acties));
3075
2864
  this.subscriptions.push(store.select('geplandeActies').subscribe(acties => this.geplandeActies = acties));
3076
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));
3077
2869
  this.subscriptions.push(combineLatest([
3078
2870
  this.store.select('ritDelen'),
3079
2871
  this.store.select('ongeplandeActies')
@@ -3110,14 +2902,12 @@ class RitdelenLijstComponent {
3110
2902
  this.store.dispatch(deleteRitdeel(ritdeel));
3111
2903
  }
3112
2904
  deleteActiesUitRit() {
3113
- this.selectedRitdeel?.acties.slice().forEach(actie => {
2905
+ this.selectedRitdeel.acties.slice().forEach(actie => {
3114
2906
  this.deleteActieUitRit(actie);
3115
2907
  });
3116
2908
  }
3117
2909
  deleteActieUitRit(actie) {
3118
- if (!this.selectedRitdeel)
3119
- return;
3120
- const acties = this.selectedRitdeel.acties ?? [];
2910
+ const acties = this.selectedRitdeel.acties;
3121
2911
  const idx = acties.indexOf(actie);
3122
2912
  if (idx >= 0) {
3123
2913
  this.verhuisActieNaarOngepland(actie);
@@ -3143,7 +2933,7 @@ class RitdelenLijstComponent {
3143
2933
  }
3144
2934
  voegActieToeAanRit(ongeplandeActie) {
3145
2935
  const idx = this.selectedRitdeelOngeplandeActies.indexOf(ongeplandeActie);
3146
- if (idx >= 0 && this.selectedRitdeel) {
2936
+ if (idx >= 0) {
3147
2937
  this.store.dispatch(addRitdeelActie(this.selectedRitdeel, this.selectedRitdeelOngeplandeActies[idx].actie));
3148
2938
  this.store.dispatch(AddGeplandeActie(ongeplandeActie.actie, ongeplandeActie.puics));
3149
2939
  this.store.dispatch(DeleteOngeplandeActie(ongeplandeActie));
@@ -3245,13 +3035,13 @@ class RitdelenLijstComponent {
3245
3035
  return `${prefix}${ActieHelper.getVSTActieOmschrijving(actie)}`;
3246
3036
  }
3247
3037
  bepaalPrefixVoorActieOmschrijving(actie) {
3248
- const noPrefix = '';
3249
- if (this.selectedRitdeel?.acties.includes(actie)) {
3038
+ const prefix = '';
3039
+ if (this.selectedRitdeel.acties.includes(actie)) {
3250
3040
  // Afwijkende naam bij niet gevisualiseerde actie in rit
3251
3041
  const puics = this.geplandeActies.get(actie);
3252
- return puics.length > 0 ? noPrefix : this.NG_ACTIE_PREFIX;
3042
+ return puics.length > 0 ? prefix : this.NG_ACTIE_PREFIX;
3253
3043
  }
3254
- return noPrefix;
3044
+ return prefix;
3255
3045
  }
3256
3046
  actieVanKmTekst(actie) {
3257
3047
  if (ActieHelper.isWisselSlijpenActie(actie)) {
@@ -3272,7 +3062,6 @@ class RitdelenLijstComponent {
3272
3062
  return ritdeel.getPplgString();
3273
3063
  }
3274
3064
  getKantCode(stand) {
3275
- // @ts-ignore
3276
3065
  if (stand === window['domein'].Stand.LINKS) {
3277
3066
  return 'L';
3278
3067
  }
@@ -3282,12 +3071,12 @@ class RitdelenLijstComponent {
3282
3071
  this.keurAlleActiesGoed.emit();
3283
3072
  this.deselectRitdeel();
3284
3073
  }
3285
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RitdelenLijstComponent, deps: [{ token: i2$1.Store }, { token: SignaleringsBeeldManagerService }], target: i0.ɵɵFactoryTarget.Component }); }
3286
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: RitdelenLijstComponent, selector: "ritdelen-lijst", inputs: { nietGeplandeActies: "nietGeplandeActies" }, outputs: { focusEmitter: "focusEmitter", keurAlleActiesGoed: "keurAlleActiesGoed" }, ngImport: i0, template: "<div id=\"ritdelen-lijst\">\n <div class=\"sidebar-header\">\n <h3 [attr.data-test-id]=\"'title-rit-details'\">Ritdetails</h3>\n </div>\n <div class=\"panes-container\">\n <div class=\"top-pane tableFixHead\" id=\"top-pane\">\n <table class=\"table\" aria-hidden=\"true\" [attr.data-test-id]=\"'table-rit-details'\">\n <thead>\n <tr>\n <th scope=\"col\">\n <input #input\n type=\"checkbox\"\n checked\n class=\"checkbox col-visibility\"\n (change)=\"toggleZichtbaarheidAlleRitdelen(input.checked)\"\n id=\"ritdetails-selecteerAlles\"\n title=\"Selecteer alles\"\n [attr.data-test-id]=\"'checkbox-alle-bewegingen'\">\n </th>\n <th scope=\"col\"></th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Naar</th>\n <th scope=\"col\">DW</th>\n <th scope=\"col\">PPLG(s)</th>\n <th scope=\"col\">Treinnr.</th>\n <th scope=\"col\"></th>\n </tr>\n </thead>\n\n <tr *ngFor=\"let ritdeelViewModel of ritdeelViewModels; let i = index\"\n class=\"{{ selectedRitdeelClass(ritdeelViewModel.ritdeel) }}\" id=\"ritdetails-r{{i}}\">\n <td>\n <input id=\"ritdetails-r{{i}}-zichtbaar\"\n [attr.data-test-id]=\"'checkbox-r'+i\"\n type=\"checkbox\"\n class=\"checkbox col-visibility\"\n [checked]=\"ritdeelViewModel.isZichtbaar\"\n [title]=\"ritdeelViewModel.title\"\n (change)=\"toggleRitdeelZichtbaarheid(ritdeelViewModel.ritdeel)\"\n [hidden]=\"ritdeelViewModel.isNietBeschikbaar\"/>\n </td>\n <td id=\"ritdetails-r{{i}}-gewijzigd\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.isNieuw}}</td>\n <td id=\"ritdetails-r{{i}}-vanSpoor\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.vanPrlSpoor}}</td>\n <td id=\"ritdetails-r{{i}}-naarSpoor\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.naarPrlSpoor}}</td>\n <td id=\"ritdetails-r{{i}}-dwangNummer\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.dwangNummer}}</td>\n <td id=\"ritdetails-r{{i}}-pplgs\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.pplgString}}</td>\n <td id=\"ritdetails-r{{i}}-treinNummer\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.treinNummer}}</td>\n <td style=\"text-align:right\">\n <button *ngIf=\"editable\"\n id=\"ritdetails-r{{i}}-del\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-danger btn-sm\"\n (click)=\"deleteRitdeel(ritdeelViewModel.ritdeel)\">X\n </button>\n </td>\n </tr>\n\n </table>\n </div>\n <div class=\"actie-pane\">\n <div *ngIf=\"selectedRitdeel && (selectedRitdeelActies.length > 0 || selectedRitdeelOngeplandeActies.length > 0) \"\n id=\"actie-pane\">\n <h4>Geplande acties</h4>\n <table aria-hidden=\"true\">\n <tr>\n <th scope=\"col\">Actie</th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Tot</th>\n <th scope=\"col\">\n <button *ngIf=\"editable\"\n [hidden]=\"selectedRitdeelActies.length===0\"\n id=\"bulkSetOngeplandButton\"\n [attr.data-test-id]=\"'unplan-all-actions'\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-danger btn-sm\"\n (click)=\"deleteActiesUitRit()\"\n [disabled]=\"disableActieKnoppenVanRitdeel\">X\n </button>\n </th>\n </tr>\n\n <tr *ngFor=\"let actie of selectedRitdeelActies; let i = index\" id=\"ritdetails-a{{i}}\">\n <td id=\"ritdetails-a{{i}}-omschrijving\" class=\"nowrap\">{{ actieOmschrijvingTekst(actie) }}</td>\n <td id=\"ritdetails-a{{i}}-vanKmLint\">{{ actieVanKmTekst(actie)}}</td>\n <td id=\"ritdetails-a{{i}}-totKmLint\">{{ actieTotKmTekst(actie)}}</td>\n <td style=\"text-align:right\">\n <button *ngIf=\"editable\"\n id=\"ritdetails-a{{i}}-del\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-danger btn-sm\"\n (click)=\"deleteActieUitRit(actie)\"\n [disabled]=\"disableActieKnoppenVanRitdeel\">X\n </button>\n </td>\n </tr>\n </table>\n <h4>Ongeplande acties</h4>\n <table aria-hidden=\"true\">\n <tr>\n <th scope=\"col\">Actie</th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Tot</th>\n <th scope=\"col\">\n <button *ngIf=\"editable\"\n [hidden]=\"selectedRitdeelOngeplandeActies.length===0\"\n id=\"bulkSetGeplandButton\"\n [attr.data-test-id]=\"'plan-all-actions'\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-success loxia-btn-sm\"\n (click)=\"voegActiesToeAanRit()\"\n [disabled]=\"disableActieKnoppenVanRitdeel\">^\n </button>\n </th>\n </tr>\n\n <tr *ngFor=\"let ongeplandeActie of selectedRitdeelOngeplandeActies; let i = index\"\n id=\"ritdetails-oa{{i}}\">\n <td id=\"ritdetails-oa{{i}}-omschrijving\" class=\"nowrap\">{{actieOmschrijvingTekst(ongeplandeActie.actie) }}</td>\n <td id=\"ritdetails-oa{{i}}-vanKmLint\">{{ actieVanKmTekst(ongeplandeActie.actie)}}</td>\n <td id=\"ritdetails-oa{{i}}-totKmLint\">{{ actieTotKmTekst(ongeplandeActie.actie)}}</td>\n <td style=\"text-align:right\">\n <button *ngIf=\"editable\"\n id=\"ritdetails-oa{{i}}-del\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-success loxia-btn-sm\"\n (click)=\"voegActieToeAanRit(ongeplandeActie)\"\n [disabled]=\"disableActieKnoppenVanRitdeel\">^\n </button>\n </td>\n </tr>\n </table>\n </div>\n </div>\n <div class=\"knop-pane\">\n <button type=\"button\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm\"\n [attr.data-test-id]=\"'plan-all-actions-for-file'\"\n [innerText]=\"'Plan acties hele rit'\"\n (click)=\"planAlleRitActies()\">\n </button>\n </div>\n </div>\n</div>\n", styles: [".panes-container{display:inline;height:100%;border:1px solid black}table{width:100%}th{padding:5px;z-index:1000}td{padding:4px}tr:nth-child(2n){background:#f0f0f0}tr:nth-child(odd){background:#fff}.top-pane{height:45vh;overflow:auto}.actie-pane{height:35vh;overflow:auto}.knop-pane{height:5vh;justify-content:center;display:flex;align-items:center}.panes-container,.panes-separator,.top-pane,.actie-pane{margin:0;padding:0;width:100%}.selected{background:#ffff80!important}.disabled{background:gray!important}.visible-outside-window{background:#87cefa!important}.table-scroll-header-fix tbody{display:block;height:40vh;overflow:auto}.tableFixHead{overflow-y:auto}.tableFixHead thead th{position:sticky;top:0;background-color:#fff}.table{margin-bottom:0}.table td,.table th{border-top:none;border-bottom:none;padding-left:.75em}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.Default }); }
3074
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", 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: "19.2.16", 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 }); }
3287
3076
  }
3288
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RitdelenLijstComponent, decorators: [{
3077
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: RitdelenLijstComponent, decorators: [{
3289
3078
  type: Component,
3290
- args: [{ selector: 'ritdelen-lijst', changeDetection: ChangeDetectionStrategy.Default, template: "<div id=\"ritdelen-lijst\">\n <div class=\"sidebar-header\">\n <h3 [attr.data-test-id]=\"'title-rit-details'\">Ritdetails</h3>\n </div>\n <div class=\"panes-container\">\n <div class=\"top-pane tableFixHead\" id=\"top-pane\">\n <table class=\"table\" aria-hidden=\"true\" [attr.data-test-id]=\"'table-rit-details'\">\n <thead>\n <tr>\n <th scope=\"col\">\n <input #input\n type=\"checkbox\"\n checked\n class=\"checkbox col-visibility\"\n (change)=\"toggleZichtbaarheidAlleRitdelen(input.checked)\"\n id=\"ritdetails-selecteerAlles\"\n title=\"Selecteer alles\"\n [attr.data-test-id]=\"'checkbox-alle-bewegingen'\">\n </th>\n <th scope=\"col\"></th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Naar</th>\n <th scope=\"col\">DW</th>\n <th scope=\"col\">PPLG(s)</th>\n <th scope=\"col\">Treinnr.</th>\n <th scope=\"col\"></th>\n </tr>\n </thead>\n\n <tr *ngFor=\"let ritdeelViewModel of ritdeelViewModels; let i = index\"\n class=\"{{ selectedRitdeelClass(ritdeelViewModel.ritdeel) }}\" id=\"ritdetails-r{{i}}\">\n <td>\n <input id=\"ritdetails-r{{i}}-zichtbaar\"\n [attr.data-test-id]=\"'checkbox-r'+i\"\n type=\"checkbox\"\n class=\"checkbox col-visibility\"\n [checked]=\"ritdeelViewModel.isZichtbaar\"\n [title]=\"ritdeelViewModel.title\"\n (change)=\"toggleRitdeelZichtbaarheid(ritdeelViewModel.ritdeel)\"\n [hidden]=\"ritdeelViewModel.isNietBeschikbaar\"/>\n </td>\n <td id=\"ritdetails-r{{i}}-gewijzigd\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.isNieuw}}</td>\n <td id=\"ritdetails-r{{i}}-vanSpoor\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.vanPrlSpoor}}</td>\n <td id=\"ritdetails-r{{i}}-naarSpoor\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.naarPrlSpoor}}</td>\n <td id=\"ritdetails-r{{i}}-dwangNummer\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.dwangNummer}}</td>\n <td id=\"ritdetails-r{{i}}-pplgs\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.pplgString}}</td>\n <td id=\"ritdetails-r{{i}}-treinNummer\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.treinNummer}}</td>\n <td style=\"text-align:right\">\n <button *ngIf=\"editable\"\n id=\"ritdetails-r{{i}}-del\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-danger btn-sm\"\n (click)=\"deleteRitdeel(ritdeelViewModel.ritdeel)\">X\n </button>\n </td>\n </tr>\n\n </table>\n </div>\n <div class=\"actie-pane\">\n <div *ngIf=\"selectedRitdeel && (selectedRitdeelActies.length > 0 || selectedRitdeelOngeplandeActies.length > 0) \"\n id=\"actie-pane\">\n <h4>Geplande acties</h4>\n <table aria-hidden=\"true\">\n <tr>\n <th scope=\"col\">Actie</th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Tot</th>\n <th scope=\"col\">\n <button *ngIf=\"editable\"\n [hidden]=\"selectedRitdeelActies.length===0\"\n id=\"bulkSetOngeplandButton\"\n [attr.data-test-id]=\"'unplan-all-actions'\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-danger btn-sm\"\n (click)=\"deleteActiesUitRit()\"\n [disabled]=\"disableActieKnoppenVanRitdeel\">X\n </button>\n </th>\n </tr>\n\n <tr *ngFor=\"let actie of selectedRitdeelActies; let i = index\" id=\"ritdetails-a{{i}}\">\n <td id=\"ritdetails-a{{i}}-omschrijving\" class=\"nowrap\">{{ actieOmschrijvingTekst(actie) }}</td>\n <td id=\"ritdetails-a{{i}}-vanKmLint\">{{ actieVanKmTekst(actie)}}</td>\n <td id=\"ritdetails-a{{i}}-totKmLint\">{{ actieTotKmTekst(actie)}}</td>\n <td style=\"text-align:right\">\n <button *ngIf=\"editable\"\n id=\"ritdetails-a{{i}}-del\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-danger btn-sm\"\n (click)=\"deleteActieUitRit(actie)\"\n [disabled]=\"disableActieKnoppenVanRitdeel\">X\n </button>\n </td>\n </tr>\n </table>\n <h4>Ongeplande acties</h4>\n <table aria-hidden=\"true\">\n <tr>\n <th scope=\"col\">Actie</th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Tot</th>\n <th scope=\"col\">\n <button *ngIf=\"editable\"\n [hidden]=\"selectedRitdeelOngeplandeActies.length===0\"\n id=\"bulkSetGeplandButton\"\n [attr.data-test-id]=\"'plan-all-actions'\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-success loxia-btn-sm\"\n (click)=\"voegActiesToeAanRit()\"\n [disabled]=\"disableActieKnoppenVanRitdeel\">^\n </button>\n </th>\n </tr>\n\n <tr *ngFor=\"let ongeplandeActie of selectedRitdeelOngeplandeActies; let i = index\"\n id=\"ritdetails-oa{{i}}\">\n <td id=\"ritdetails-oa{{i}}-omschrijving\" class=\"nowrap\">{{actieOmschrijvingTekst(ongeplandeActie.actie) }}</td>\n <td id=\"ritdetails-oa{{i}}-vanKmLint\">{{ actieVanKmTekst(ongeplandeActie.actie)}}</td>\n <td id=\"ritdetails-oa{{i}}-totKmLint\">{{ actieTotKmTekst(ongeplandeActie.actie)}}</td>\n <td style=\"text-align:right\">\n <button *ngIf=\"editable\"\n id=\"ritdetails-oa{{i}}-del\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-success loxia-btn-sm\"\n (click)=\"voegActieToeAanRit(ongeplandeActie)\"\n [disabled]=\"disableActieKnoppenVanRitdeel\">^\n </button>\n </td>\n </tr>\n </table>\n </div>\n </div>\n <div class=\"knop-pane\">\n <button type=\"button\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm\"\n [attr.data-test-id]=\"'plan-all-actions-for-file'\"\n [innerText]=\"'Plan acties hele rit'\"\n (click)=\"planAlleRitActies()\">\n </button>\n </div>\n </div>\n</div>\n", styles: [".panes-container{display:inline;height:100%;border:1px solid black}table{width:100%}th{padding:5px;z-index:1000}td{padding:4px}tr:nth-child(2n){background:#f0f0f0}tr:nth-child(odd){background:#fff}.top-pane{height:45vh;overflow:auto}.actie-pane{height:35vh;overflow:auto}.knop-pane{height:5vh;justify-content:center;display:flex;align-items:center}.panes-container,.panes-separator,.top-pane,.actie-pane{margin:0;padding:0;width:100%}.selected{background:#ffff80!important}.disabled{background:gray!important}.visible-outside-window{background:#87cefa!important}.table-scroll-header-fix tbody{display:block;height:40vh;overflow:auto}.tableFixHead{overflow-y:auto}.tableFixHead thead th{position:sticky;top:0;background-color:#fff}.table{margin-bottom:0}.table td,.table th{border-top:none;border-bottom:none;padding-left:.75em}\n"] }]
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"] }]
3291
3080
  }], ctorParameters: () => [{ type: i2$1.Store }, { type: SignaleringsBeeldManagerService }], propDecorators: { nietGeplandeActies: [{
3292
3081
  type: Input
3293
3082
  }], focusEmitter: [{
@@ -3385,12 +3174,12 @@ class RitdelenViewComponent {
3385
3174
  }
3386
3175
  return false;
3387
3176
  }
3388
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RitdelenViewComponent, deps: [{ token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
3389
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: RitdelenViewComponent, selector: "ritdelen-view", outputs: { focusEmitter: "focusEmitter" }, host: { listeners: { "window:keyup": "keyEvent($event)" } }, ngImport: i0, template: "<div id=\"ritdelen-lijst\">\n <div class=\"sidebar-header\">\n <h3>Ritdetails view</h3>\n </div>\n <div class=\"panes-container\">\n <div class=\"top-pane tableFixHead\" id=\"top-pane\">\n <table class=\"table\" aria-hidden=\"true\">\n <thead>\n <tr>\n <th scope=\"col\"></th>\n <th scope=\"col\" colspan=\"2\" style=\"text-align:center;\">Spoor</th>\n <th scope=\"col\"></th>\n <th scope=\"col\" colspan=\"2\" style=\"text-align:center;\">Sein</th>\n <th scope=\"col\"></th>\n <th scope=\"col\"></th>\n </tr>\n <tr>\n <th scope=\"col\"></th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Naar</th>\n <th scope=\"col\">DW</th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Naar</th>\n <th scope=\"col\">Treinnummer</th>\n <th scope=\"col\"></th>\n </tr>\n </thead>\n\n <tr *ngFor=\"let ritdeelViewModel of ritdeelViewModels; let i = index\"\n class=\"{{ selectedRitdeelClass(ritdeelViewModel.ritdeel) }}\" id=\"ritdetails-r{{i}}\">\n <td id=\"ritdetails-r{{i}}-gewijzigd\" (click)=\"selectRitdeel(i)\"></td>\n <td id=\"ritdetails-r{{i}}-vanSpoor\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.vanPrlSpoor}}</td>\n <td id=\"ritdetails-r{{i}}-naarSpoor\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.naarPrlSpoor}}</td>\n <td id=\"ritdetails-r{{i}}-dwangNummer\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.dwangNummer}}</td>\n <td id=\"ritdetails-r{{i}}-vanSeinName\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.vanSeinName}}</td>\n <td id=\"ritdetails-r{{i}}-naarSeinName\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.naarSeinName}}</td>\n <td id=\"ritdetails-r{{i}}-treinNummer\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.treinNummer}}</td>\n <td style=\"text-align:right\">\n </td>\n </tr>\n </table>\n </div>\n </div>\n</div>\n", styles: [".panes-container{display:inline;height:100%}table{width:100%}th,td{padding:5px}tr:nth-child(2n){background:#f0f0f0}tr:nth-child(odd){background:#fff}.top-pane{height:90vh;overflow:auto}.panes-container,.panes-separator,.top-pane{margin:0;padding:0;width:100%}.selected{background:#ffff80!important}.disabled{background:gray!important}.visible-outside-window{background:#87cefa!important}.table-scroll-header-fix tbody{display:block;height:40vh;overflow:auto}.tableFixHead{overflow-y:auto}.tableFixHead thead th{position:sticky;top:0;background-color:#fff}.table{margin-bottom:0}.table td,.table th{border-top:none;border-bottom:none;padding-left:.75em}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
3177
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: RitdelenViewComponent, deps: [{ token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
3178
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.16", 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"] }] }); }
3390
3179
  }
3391
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RitdelenViewComponent, decorators: [{
3180
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: RitdelenViewComponent, decorators: [{
3392
3181
  type: Component,
3393
- args: [{ selector: 'ritdelen-view', template: "<div id=\"ritdelen-lijst\">\n <div class=\"sidebar-header\">\n <h3>Ritdetails view</h3>\n </div>\n <div class=\"panes-container\">\n <div class=\"top-pane tableFixHead\" id=\"top-pane\">\n <table class=\"table\" aria-hidden=\"true\">\n <thead>\n <tr>\n <th scope=\"col\"></th>\n <th scope=\"col\" colspan=\"2\" style=\"text-align:center;\">Spoor</th>\n <th scope=\"col\"></th>\n <th scope=\"col\" colspan=\"2\" style=\"text-align:center;\">Sein</th>\n <th scope=\"col\"></th>\n <th scope=\"col\"></th>\n </tr>\n <tr>\n <th scope=\"col\"></th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Naar</th>\n <th scope=\"col\">DW</th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Naar</th>\n <th scope=\"col\">Treinnummer</th>\n <th scope=\"col\"></th>\n </tr>\n </thead>\n\n <tr *ngFor=\"let ritdeelViewModel of ritdeelViewModels; let i = index\"\n class=\"{{ selectedRitdeelClass(ritdeelViewModel.ritdeel) }}\" id=\"ritdetails-r{{i}}\">\n <td id=\"ritdetails-r{{i}}-gewijzigd\" (click)=\"selectRitdeel(i)\"></td>\n <td id=\"ritdetails-r{{i}}-vanSpoor\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.vanPrlSpoor}}</td>\n <td id=\"ritdetails-r{{i}}-naarSpoor\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.naarPrlSpoor}}</td>\n <td id=\"ritdetails-r{{i}}-dwangNummer\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.dwangNummer}}</td>\n <td id=\"ritdetails-r{{i}}-vanSeinName\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.vanSeinName}}</td>\n <td id=\"ritdetails-r{{i}}-naarSeinName\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.naarSeinName}}</td>\n <td id=\"ritdetails-r{{i}}-treinNummer\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.treinNummer}}</td>\n <td style=\"text-align:right\">\n </td>\n </tr>\n </table>\n </div>\n </div>\n</div>\n", styles: [".panes-container{display:inline;height:100%}table{width:100%}th,td{padding:5px}tr:nth-child(2n){background:#f0f0f0}tr:nth-child(odd){background:#fff}.top-pane{height:90vh;overflow:auto}.panes-container,.panes-separator,.top-pane{margin:0;padding:0;width:100%}.selected{background:#ffff80!important}.disabled{background:gray!important}.visible-outside-window{background:#87cefa!important}.table-scroll-header-fix tbody{display:block;height:40vh;overflow:auto}.tableFixHead{overflow-y:auto}.tableFixHead thead th{position:sticky;top:0;background-color:#fff}.table{margin-bottom:0}.table td,.table th{border-top:none;border-bottom:none;padding-left:.75em}\n"] }]
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"] }]
3394
3183
  }], ctorParameters: () => [{ type: i2$1.Store }], propDecorators: { focusEmitter: [{
3395
3184
  type: Output
3396
3185
  }], keyEvent: [{
@@ -3409,18 +3198,49 @@ class RitdeelViewModel {
3409
3198
  }
3410
3199
  }
3411
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: "19.2.16", ngImport: i0, type: CarouselControlsComponent, deps: [{ token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
3222
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.16", 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: "19.2.16", 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
+
3412
3235
  class ViewerControlsComponent {
3413
3236
  constructor(store, viewerControlsService, bewegingUtils) {
3414
3237
  this.store = store;
3415
3238
  this.viewerControlsService = viewerControlsService;
3416
3239
  this.bewegingUtils = bewegingUtils;
3417
3240
  this.paginationSize = 4;
3418
- this.treinpad = undefined;
3419
- this.goedgekeurd = new EventEmitter();
3420
3241
  this.printing$ = this.viewerControlsService.isPrinting$();
3421
3242
  this.valideRit$ = this.viewerControlsService.isValideRit$();
3422
3243
  this.subscriptions = new Subscription();
3423
- this.editable = false;
3424
3244
  this.subscriptions.add(this.store.select('editable').subscribe(editable => this.editable = editable));
3425
3245
  }
3426
3246
  ngOnChanges({ treinpad }) {
@@ -3429,26 +3249,27 @@ class ViewerControlsComponent {
3429
3249
  }
3430
3250
  }
3431
3251
  showGoedkeuren() {
3432
- return this.editable;
3252
+ return this.editable && this.viewerControlsService.selectieInfos.length !== 0;
3433
3253
  }
3434
3254
  goedkeurenClick() {
3435
- this.store.select('ritDelen').pipe(filter(ritdelen => !!ritdelen), tap(ritDelen => {
3436
- if (this.treinpad) {
3437
- delete this.treinpad.aantalRitActies;
3438
- this.treinpad.bewegingen = this.bewegingUtils.extractBewegingenUitRitdelen(ritDelen, this.viewerControlsService.origineelTreinPad.bewegingen);
3439
- this.goedgekeurd.emit(this.treinpad);
3440
- this.viewerControlsService.setOrigineelTreinPad(this.treinpad);
3441
- }
3442
- })).subscribe();
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
+ }
3443
3262
  }
3444
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ViewerControlsComponent, deps: [{ token: i2$1.Store }, { token: ViewerControlService }, { token: BewegingUtils }], target: i0.ɵɵFactoryTarget.Component }); }
3445
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ViewerControlsComponent, selector: "viewer-controls", inputs: { paginationSize: "paginationSize", treinpad: "treinpad", goedgekeurd: "goedgekeurd" }, usesOnChanges: true, ngImport: i0, template: "<button id=\"toonSideNavKnop\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm open-sidenav-button\"\n (click)=\"viewerControlsService.toggleSideNavVisible()\"\n [class.active]=\"viewerControlsService.sideNavOpen$ | async\"\n [hidden]=\"printing$ | async\">Ritdetails\n</button>\n<button *ngIf=\"showGoedkeuren()\"\n id=\"goedkeurenKnop\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm goedkeuren-button\"\n (click)=\"goedkeurenClick()\"\n [disabled]=\"(valideRit$ | async ) === false\"\n [hidden]=\"printing$ | async\">Goedkeuren\n</button>\n\n<carousel-controls [paginationSize]=\"paginationSize\"\n [sideNavOpen]=\"viewerControlsService.sideNavOpen$ | async\">\n</carousel-controls>\n", styles: [".open-sidenav-button.active{visibility:hidden}.open-sidenav-button,.goedkeuren-button{position:absolute;top:15px;z-index:600}.open-sidenav-button{left:15px}.goedkeuren-button{right:15px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CarouselControlsComponent, selector: "carousel-controls", inputs: ["paginationSize", "sideNavOpen"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
3263
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", 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: "19.2.16", 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" }] }); }
3446
3265
  }
3447
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ViewerControlsComponent, decorators: [{
3266
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: ViewerControlsComponent, decorators: [{
3448
3267
  type: Component,
3449
- args: [{ selector: 'viewer-controls', template: "<button id=\"toonSideNavKnop\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm open-sidenav-button\"\n (click)=\"viewerControlsService.toggleSideNavVisible()\"\n [class.active]=\"viewerControlsService.sideNavOpen$ | async\"\n [hidden]=\"printing$ | async\">Ritdetails\n</button>\n<button *ngIf=\"showGoedkeuren()\"\n id=\"goedkeurenKnop\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm goedkeuren-button\"\n (click)=\"goedkeurenClick()\"\n [disabled]=\"(valideRit$ | async ) === false\"\n [hidden]=\"printing$ | async\">Goedkeuren\n</button>\n\n<carousel-controls [paginationSize]=\"paginationSize\"\n [sideNavOpen]=\"viewerControlsService.sideNavOpen$ | async\">\n</carousel-controls>\n", styles: [".open-sidenav-button.active{visibility:hidden}.open-sidenav-button,.goedkeuren-button{position:absolute;top:15px;z-index:600}.open-sidenav-button{left:15px}.goedkeuren-button{right:15px}\n"] }]
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"] }]
3450
3269
  }], ctorParameters: () => [{ type: i2$1.Store }, { type: ViewerControlService }, { type: BewegingUtils }], propDecorators: { paginationSize: [{
3451
3270
  type: Input
3271
+ }], iaversieinfo: [{
3272
+ type: Input
3452
3273
  }], treinpad: [{
3453
3274
  type: Input
3454
3275
  }], goedgekeurd: [{
@@ -3503,7 +3324,7 @@ class ActiePopoverBepaler {
3503
3324
  ongeplandeActies.entries.forEach(entry => {
3504
3325
  const treinNummerActieInfos = puicNaarOngeplandeActieMap.get(entry.key);
3505
3326
  if (!treinNummerActieInfos?.map(({ actie }) => actie).includes(entry.value.actie)) {
3506
- puicNaarOngeplandeActieMap.put(entry.key, { actie: entry.value.actie });
3327
+ puicNaarOngeplandeActieMap.put(entry.key, { treinNummer: undefined, actie: entry.value.actie });
3507
3328
  }
3508
3329
  });
3509
3330
  }
@@ -3563,16 +3384,12 @@ class SvgVisualisatieComponent {
3563
3384
  this.actieHelper = actieHelper;
3564
3385
  this.sbmService = sbmService;
3565
3386
  this.editorService = editorService;
3566
- this.nietGeplandeActies = [];
3567
- this.useClickArea = false;
3568
3387
  this.svgInfos$ = this.store.select('svgInfos');
3569
3388
  this.popoverInfos = [];
3570
3389
  this.clickableIds = [];
3571
- this.selectieInfos$ = this.store.select('selectieInfos');
3572
3390
  this.rightClickableIds = [];
3573
3391
  this.contextMenuActions = [];
3574
3392
  this.contextMenuStyle = { display: 'none' };
3575
- this.editable = false;
3576
3393
  this.puicNaarBeginSeinRitdeel = new Map();
3577
3394
  this.puicNaarEindSeinCombinatie = new Map();
3578
3395
  this.puicNaarAlternatieveRoute = new Map();
@@ -3596,7 +3413,7 @@ class SvgVisualisatieComponent {
3596
3413
  }));
3597
3414
  }
3598
3415
  ngOnInit() {
3599
- document.getElementById('contextMenu')?.addEventListener('mouseleave', () => this.hideContextMenu());
3416
+ document.getElementById('contextMenu').addEventListener('mouseleave', () => this.hideContextMenu());
3600
3417
  }
3601
3418
  ngOnDestroy() {
3602
3419
  this.subscriptions.forEach(s => s.unsubscribe());
@@ -3623,6 +3440,7 @@ class SvgVisualisatieComponent {
3623
3440
  this.store.dispatch(navigeerBuitenRit(puic));
3624
3441
  }
3625
3442
  }
3443
+ this.store.dispatch(SetSelectedRitdeel(undefined));
3626
3444
  }
3627
3445
  handleImxviewRightClick(evt) {
3628
3446
  const fn = () => {
@@ -3653,7 +3471,7 @@ class SvgVisualisatieComponent {
3653
3471
  handleNieuweRouteToegevoegd() {
3654
3472
  this.store.select('nieuweRoute')
3655
3473
  .subscribe((nieuweRoute) => {
3656
- if (nieuweRoute?.isValid()) {
3474
+ if (nieuweRoute.isValid()) {
3657
3475
  this.store.dispatch(ResetNieuweRoute());
3658
3476
  this.store.dispatch(ritdeelInvoegen(nieuweRoute));
3659
3477
  }
@@ -3766,7 +3584,7 @@ class SvgVisualisatieComponent {
3766
3584
  });
3767
3585
  this.viewerControlsService.setValideRit(!gebrokenRit);
3768
3586
  this.store.dispatch(SetGeplandeActies(actieOpRitSelectiePuics));
3769
- const actieOpRitSelectiePuicsArray = Array.from(actieOpRitSelectiePuics.values()).flat();
3587
+ const actieOpRitSelectiePuicsArray = Utils.flatMap(Array.from(actieOpRitSelectiePuics.values()), x => x);
3770
3588
  this.store.dispatch(SetActieOpRitSelectieIds(actieOpRitSelectiePuicsArray));
3771
3589
  ritSelectiePuics = ritSelectiePuics.filter(item => actieOpRitSelectiePuicsArray.indexOf(item) < 0); // make mutually exclusive
3772
3590
  this.store.dispatch(SetRitSelectieIds(ritSelectiePuics));
@@ -3799,12 +3617,12 @@ class SvgVisualisatieComponent {
3799
3617
  getPuics(topoElementen) {
3800
3618
  return topoElementen.map(e => e.getPuic());
3801
3619
  }
3802
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SvgVisualisatieComponent, deps: [{ token: i2$1.Store }, { token: ViewerControlService }, { token: ActieHelper }, { token: SignaleringsBeeldManagerService }, { token: EditorService }], target: i0.ɵɵFactoryTarget.Component }); }
3803
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SvgVisualisatieComponent, selector: "svg-visualisatie", inputs: { nietGeplandeActies: "nietGeplandeActies", useClickArea: "useClickArea" }, viewQueries: [{ propertyName: "imxviewer", first: true, predicate: ["imxviewercontainer"], descendants: true }], ngImport: i0, template: "<imx-viewer #imxviewercontainer\n [svgInfo]=\"svgInfos$ | async\"\n [selectieInfos]=\"selectieInfos$ | async\"\n [clickableIds]=\"clickableIds\"\n [rightClickableIds]=\"rightClickableIds\"\n [popoverInfos]=\"popoverInfos\"\n [inlineDgnCssImport]=\"false\"\n [useClickArea]=\"useClickArea\"\n [zoomScaleSensitivity]=\"0.25\"\n (clickHandler)=\"handleImxviewClick($event)\"\n (rightClickHandler)=\"handleImxviewRightClick($event)\"\n ></imx-viewer>\n\n<ul id=\"contextMenu\" class=\"dropdown-menu\" role=\"menu\" [ngStyle]=\"contextMenuStyle\">\n <li *ngFor=\"let action of contextMenuActions\"><a class=\"dropdown-item\" tabindex=\"-1\"\n (click)=\"action.click()\">{{action.label}}</a></li>\n</ul>\n", styles: [".dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i7.ImxViewerComponent, selector: "imx-viewer", inputs: ["useClickArea", "inlineDgnCssImport", "svgInfo", "selectieInfos", "clickableIds", "rightClickableIds", "popoverInfos", "zoomScaleSensitivity", "autoAlignSvgsHorizontally", "initialPanAndZoom"], outputs: ["clickHandler", "rightClickHandler", "svgLoaded", "panned"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
3620
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", 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: "19.2.16", 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" }] }); }
3804
3622
  }
3805
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SvgVisualisatieComponent, decorators: [{
3623
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: SvgVisualisatieComponent, decorators: [{
3806
3624
  type: Component,
3807
- args: [{ selector: 'svg-visualisatie', template: "<imx-viewer #imxviewercontainer\n [svgInfo]=\"svgInfos$ | async\"\n [selectieInfos]=\"selectieInfos$ | async\"\n [clickableIds]=\"clickableIds\"\n [rightClickableIds]=\"rightClickableIds\"\n [popoverInfos]=\"popoverInfos\"\n [inlineDgnCssImport]=\"false\"\n [useClickArea]=\"useClickArea\"\n [zoomScaleSensitivity]=\"0.25\"\n (clickHandler)=\"handleImxviewClick($event)\"\n (rightClickHandler)=\"handleImxviewRightClick($event)\"\n ></imx-viewer>\n\n<ul id=\"contextMenu\" class=\"dropdown-menu\" role=\"menu\" [ngStyle]=\"contextMenuStyle\">\n <li *ngFor=\"let action of contextMenuActions\"><a class=\"dropdown-item\" tabindex=\"-1\"\n (click)=\"action.click()\">{{action.label}}</a></li>\n</ul>\n", styles: [".dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}\n"] }]
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"] }]
3808
3626
  }], ctorParameters: () => [{ type: i2$1.Store }, { type: ViewerControlService }, { type: ActieHelper }, { type: SignaleringsBeeldManagerService }, { type: EditorService }], propDecorators: { nietGeplandeActies: [{
3809
3627
  type: Input
3810
3628
  }], useClickArea: [{
@@ -3822,9 +3640,6 @@ class MstviewerComponent {
3822
3640
  this.printBewegingService = printBewegingService;
3823
3641
  this.paginationSize = 4;
3824
3642
  this.baseurl = 'https://acceptatie.raildesign.nl';
3825
- this.debug = false;
3826
- this.viewer = false;
3827
- this.useClickArea = false;
3828
3643
  this.goedgekeurd = new EventEmitter();
3829
3644
  this.subscriptions = new Subscription();
3830
3645
  this.subscriptions.add(this.store.select('nieuweBewegingen').subscribe(nieuweRit => {
@@ -3875,26 +3690,23 @@ class MstviewerComponent {
3875
3690
  }
3876
3691
  }
3877
3692
  printFocusBeweging(bewegingId) {
3878
- return this.printBewegingService.printBeweging(bewegingId, this.paginationSize);
3693
+ return this.printBewegingService.printBeweging(bewegingId, this.paginationSize, this.iaversieinfo);
3879
3694
  }
3880
3695
  keurAlleActiesGoed() {
3881
3696
  this.viewerControlsService.keurAlleActiesGoed(this.ongeplandeActies);
3882
3697
  }
3883
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MstviewerComponent, deps: [{ token: i2$1.Store }, { token: ViewerControlService }, { token: DebugService }, { token: PrintBewegingService }], target: i0.ɵɵFactoryTarget.Component }); }
3884
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MstviewerComponent, selector: "mst-viewer", inputs: { iaversieinfo: "iaversieinfo", treinpad: "treinpad", ongeplandeActies: "ongeplandeActies", paginationSize: "paginationSize", baseurl: "baseurl", debug: "debug", viewer: "viewer", useClickArea: "useClickArea" }, outputs: { goedgekeurd: "goedgekeurd" }, usesOnChanges: true, ngImport: i0, template: "<loxia-messages></loxia-messages>\n<loxia-overlay *ngIf=\"(progressIndicator$ | async)\">\n <loxia-progress-indicator id=\"progress-indicator\" [border]=\"false\" upperText=\"\">\n </loxia-progress-indicator>\n</loxia-overlay>\n\n<div style=\"position: relative\">\n <rpe-component [baseurl]=\"baseurl\" path=\"/mst/editor/editor.nocache.js\"></rpe-component>\n\n <svg-visualisatie [useClickArea]=\"useClickArea\" [nietGeplandeActies]=\"ongeplandeActies\"></svg-visualisatie>\n\n <nav [class.active]=\"(viewerControlsService.sideNavOpen$ | async) === false\" id=\"sidebar\">\n <div id=\"dismiss\">\n <em id=\"verbergSideNav\" class=\"fa fa-arrow-left\" (click)=\"viewerControlsService.toggleSideNavVisible()\">&times;</em>\n </div>\n <ritdelen-lijst *ngIf=\"!viewer\" (focusEmitter)=\"focusRitdeel($event)\" (keurAlleActiesGoed)=\"keurAlleActiesGoed()\"\n [nietGeplandeActies]=\"ongeplandeActies\"></ritdelen-lijst>\n <ritdelen-view *ngIf=\"viewer\" (focusEmitter)=\"focusRitdeel($event)\"></ritdelen-view>\n </nav>\n\n <viewer-controls [paginationSize]=\"paginationSize\"\n [treinpad]=\"treinpad\"\n [goedgekeurd]=\"goedgekeurd\"\n ></viewer-controls>\n\n</div>\n", styles: ["#sidebar{min-width:350px;max-width:475px;background:#fff;transition:all .3s;height:93vh;position:absolute;top:0;z-index:20}#sidebar.active{margin-left:-475px}#sidebar .sidebar-header{padding:20px;background:#6d7fcc}#dismiss{width:20px;height:20px;position:absolute;cursor:pointer;top:5px;right:0;color:#000;z-index:300}[hidden]{display:none}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: OverlayComponent, selector: "loxia-overlay" }, { kind: "component", type: ProgressIndicatorComponent, selector: "loxia-progress-indicator" }, { kind: "component", type: RpeComponent, selector: "rpe-component", inputs: ["baseurl", "path"] }, { kind: "component", type: RitdelenLijstComponent, selector: "ritdelen-lijst", inputs: ["nietGeplandeActies"], outputs: ["focusEmitter", "keurAlleActiesGoed"] }, { kind: "component", type: RitdelenViewComponent, selector: "ritdelen-view", outputs: ["focusEmitter"] }, { kind: "component", type: ViewerControlsComponent, selector: "viewer-controls", inputs: ["paginationSize", "treinpad", "goedgekeurd"] }, { kind: "component", type: SvgVisualisatieComponent, selector: "svg-visualisatie", inputs: ["nietGeplandeActies", "useClickArea"] }, { kind: "component", type: MessagesComponent, selector: "loxia-messages" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
3698
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", 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: "19.2.16", 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 <loxia-progress-indicator id=\"progress-indicator\" [border]=\"false\" upperText=\"\">\n </loxia-progress-indicator>\n</mst-overlay>\n\n<div style=\"position: relative\">\n <rpe-component [baseurl]=\"baseurl\" path=\"/mst/editor/editor.nocache.js\"></rpe-component>\n\n <svg-visualisatie [useClickArea]=\"useClickArea\" [nietGeplandeActies]=\"ongeplandeActies\"></svg-visualisatie>\n\n <nav [class.active]=\"(viewerControlsService.sideNavOpen$ | async) === false\" id=\"sidebar\">\n <div id=\"dismiss\">\n <em id=\"verbergSideNav\" class=\"fa fa-arrow-left\" (click)=\"viewerControlsService.toggleSideNavVisible()\">&times;</em>\n </div>\n <ritdelen-lijst *ngIf=\"!viewer\" (focusEmitter)=\"focusRitdeel($event)\" (keurAlleActiesGoed)=\"keurAlleActiesGoed()\"\n [nietGeplandeActies]=\"ongeplandeActies\"></ritdelen-lijst>\n <ritdelen-view *ngIf=\"viewer\" (focusEmitter)=\"focusRitdeel($event)\"></ritdelen-view>\n </nav>\n\n <viewer-controls [paginationSize]=\"paginationSize\"\n [iaversieinfo]=\"iaversieinfo\"\n [treinpad]=\"treinpad\"\n [goedgekeurd]=\"goedgekeurd\"\n ></viewer-controls>\n\n</div>\n", styles: ["#sidebar{min-width:350px;max-width:475px;background:#fff;transition:all .3s;height:93vh;position:absolute;top:0;z-index:20}#sidebar.active{margin-left:-475px}#sidebar .sidebar-header{padding:20px;background:#6d7fcc}#dismiss{width:20px;height:20px;position:absolute;cursor:pointer;top:5px;right:0;color:#000;z-index:300}[hidden]{display:none}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: OverlayComponent, selector: "mst-overlay" }, { kind: "component", type: ProgressIndicatorComponent, selector: "loxia-progress-indicator" }, { kind: "component", type: RpeComponent, selector: "rpe-component", inputs: ["baseurl", "path"] }, { kind: "component", type: RitdelenLijstComponent, selector: "ritdelen-lijst", inputs: ["nietGeplandeActies"], outputs: ["focusEmitter", "keurAlleActiesGoed"] }, { kind: "component", type: RitdelenViewComponent, selector: "ritdelen-view", outputs: ["focusEmitter"] }, { kind: "component", type: ViewerControlsComponent, selector: "viewer-controls", inputs: ["paginationSize", "iaversieinfo", "treinpad", "goedgekeurd"] }, { kind: "component", type: SvgVisualisatieComponent, selector: "svg-visualisatie", inputs: ["nietGeplandeActies", "useClickArea"] }, { kind: "component", type: MessagesComponent, selector: "loxia-messages" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
3885
3700
  }
3886
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MstviewerComponent, decorators: [{
3701
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: MstviewerComponent, decorators: [{
3887
3702
  type: Component,
3888
- args: [{ selector: 'mst-viewer', template: "<loxia-messages></loxia-messages>\n<loxia-overlay *ngIf=\"(progressIndicator$ | async)\">\n <loxia-progress-indicator id=\"progress-indicator\" [border]=\"false\" upperText=\"\">\n </loxia-progress-indicator>\n</loxia-overlay>\n\n<div style=\"position: relative\">\n <rpe-component [baseurl]=\"baseurl\" path=\"/mst/editor/editor.nocache.js\"></rpe-component>\n\n <svg-visualisatie [useClickArea]=\"useClickArea\" [nietGeplandeActies]=\"ongeplandeActies\"></svg-visualisatie>\n\n <nav [class.active]=\"(viewerControlsService.sideNavOpen$ | async) === false\" id=\"sidebar\">\n <div id=\"dismiss\">\n <em id=\"verbergSideNav\" class=\"fa fa-arrow-left\" (click)=\"viewerControlsService.toggleSideNavVisible()\">&times;</em>\n </div>\n <ritdelen-lijst *ngIf=\"!viewer\" (focusEmitter)=\"focusRitdeel($event)\" (keurAlleActiesGoed)=\"keurAlleActiesGoed()\"\n [nietGeplandeActies]=\"ongeplandeActies\"></ritdelen-lijst>\n <ritdelen-view *ngIf=\"viewer\" (focusEmitter)=\"focusRitdeel($event)\"></ritdelen-view>\n </nav>\n\n <viewer-controls [paginationSize]=\"paginationSize\"\n [treinpad]=\"treinpad\"\n [goedgekeurd]=\"goedgekeurd\"\n ></viewer-controls>\n\n</div>\n", styles: ["#sidebar{min-width:350px;max-width:475px;background:#fff;transition:all .3s;height:93vh;position:absolute;top:0;z-index:20}#sidebar.active{margin-left:-475px}#sidebar .sidebar-header{padding:20px;background:#6d7fcc}#dismiss{width:20px;height:20px;position:absolute;cursor:pointer;top:5px;right:0;color:#000;z-index:300}[hidden]{display:none}\n"] }]
3703
+ args: [{ selector: 'mst-viewer', standalone: false, template: "<loxia-messages></loxia-messages>\n<mst-overlay *ngIf=\"(progressIndicator$ | async)\">\n <loxia-progress-indicator id=\"progress-indicator\" [border]=\"false\" upperText=\"\">\n </loxia-progress-indicator>\n</mst-overlay>\n\n<div style=\"position: relative\">\n <rpe-component [baseurl]=\"baseurl\" path=\"/mst/editor/editor.nocache.js\"></rpe-component>\n\n <svg-visualisatie [useClickArea]=\"useClickArea\" [nietGeplandeActies]=\"ongeplandeActies\"></svg-visualisatie>\n\n <nav [class.active]=\"(viewerControlsService.sideNavOpen$ | async) === false\" id=\"sidebar\">\n <div id=\"dismiss\">\n <em id=\"verbergSideNav\" class=\"fa fa-arrow-left\" (click)=\"viewerControlsService.toggleSideNavVisible()\">&times;</em>\n </div>\n <ritdelen-lijst *ngIf=\"!viewer\" (focusEmitter)=\"focusRitdeel($event)\" (keurAlleActiesGoed)=\"keurAlleActiesGoed()\"\n [nietGeplandeActies]=\"ongeplandeActies\"></ritdelen-lijst>\n <ritdelen-view *ngIf=\"viewer\" (focusEmitter)=\"focusRitdeel($event)\"></ritdelen-view>\n </nav>\n\n <viewer-controls [paginationSize]=\"paginationSize\"\n [iaversieinfo]=\"iaversieinfo\"\n [treinpad]=\"treinpad\"\n [goedgekeurd]=\"goedgekeurd\"\n ></viewer-controls>\n\n</div>\n", styles: ["#sidebar{min-width:350px;max-width:475px;background:#fff;transition:all .3s;height:93vh;position:absolute;top:0;z-index:20}#sidebar.active{margin-left:-475px}#sidebar .sidebar-header{padding:20px;background:#6d7fcc}#dismiss{width:20px;height:20px;position:absolute;cursor:pointer;top:5px;right:0;color:#000;z-index:300}[hidden]{display:none}\n"] }]
3889
3704
  }], ctorParameters: () => [{ type: i2$1.Store }, { type: ViewerControlService }, { type: DebugService }, { type: PrintBewegingService }], propDecorators: { iaversieinfo: [{
3890
- type: Input,
3891
- args: [{ required: true }]
3705
+ type: Input
3892
3706
  }], treinpad: [{
3893
- type: Input,
3894
- args: [{ required: true }]
3707
+ type: Input
3895
3708
  }], ongeplandeActies: [{
3896
- type: Input,
3897
- args: [{ required: true }]
3709
+ type: Input
3898
3710
  }], paginationSize: [{
3899
3711
  type: Input
3900
3712
  }], baseurl: [{
@@ -3910,26 +3722,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
3910
3722
  }] } });
3911
3723
 
3912
3724
  let SignaleringsbeeldInfoResource = class SignaleringsbeeldInfoResource extends Resource {
3913
- constructor(restHandler, store, sbControllerService) {
3725
+ constructor(restHandler, store) {
3914
3726
  super(restHandler);
3915
- this.restHandler = restHandler;
3916
3727
  this.store = store;
3917
- this.sbControllerService = sbControllerService;
3918
3728
  this.subscriptions = new Subscription();
3919
- this.subscriptions.add(this.store.select('baseUrl').subscribe(baseUrl => {
3920
- this.$setUrl(baseUrl);
3921
- sbControllerService.configuration.basePath = baseUrl + '/mst';
3922
- }));
3729
+ this.subscriptions.add(this.store.select('baseUrl').subscribe(baseUrl => this.$setUrl(baseUrl)));
3923
3730
  }
3924
3731
  ngOnDestroy() {
3925
3732
  this.subscriptions.unsubscribe();
3926
3733
  }
3927
- laadSignaleringsbeeldInfo(versie, pplgs) {
3928
- return this.sbControllerService.getSignaleringsbeelden(versie, pplgs);
3929
- }
3930
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SignaleringsbeeldInfoResource, deps: [{ token: i1$1.ResourceHandler }, { token: i2$1.Store }, { token: SbControllerService }], target: i0.ɵɵFactoryTarget.Injectable }); }
3931
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SignaleringsbeeldInfoResource }); }
3734
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", 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: "19.2.16", ngImport: i0, type: SignaleringsbeeldInfoResource }); }
3932
3736
  };
3737
+ __decorate([
3738
+ ResourceAction({
3739
+ path: '/',
3740
+ method: ResourceRequestMethod.Post
3741
+ })
3742
+ ], SignaleringsbeeldInfoResource.prototype, "laadSignaleringsbeeldInfo", void 0);
3933
3743
  __decorate([
3934
3744
  ResourceAction({
3935
3745
  path: '/valideeriaversie'
@@ -3940,9 +3750,9 @@ SignaleringsbeeldInfoResource = __decorate([
3940
3750
  pathPrefix: '/mst/rest/signaleringsbeeldeninfo'
3941
3751
  })
3942
3752
  ], SignaleringsbeeldInfoResource);
3943
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SignaleringsbeeldInfoResource, decorators: [{
3753
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: SignaleringsbeeldInfoResource, decorators: [{
3944
3754
  type: Injectable
3945
- }], ctorParameters: () => [{ type: i1$1.ResourceHandler }, { type: i2$1.Store }, { type: SbControllerService }], propDecorators: { getBestaatIALevering: [] } });
3755
+ }], ctorParameters: () => [{ type: i1$1.ResourceHandler }, { type: i2$1.Store }], propDecorators: { laadSignaleringsbeeldInfo: [], getBestaatIALevering: [] } });
3946
3756
  class SignaleringsbeeldInfoDto extends ResourceModel {
3947
3757
  constructor(data) {
3948
3758
  super();
@@ -3970,18 +3780,16 @@ class BaseRestService {
3970
3780
  this.httpClient = httpClient;
3971
3781
  this.store = store;
3972
3782
  this.subscriptions = new Subscription();
3973
- this.baseUrl = '';
3974
- this.iaVersie = '';
3975
3783
  this.subscriptions.add(this.store.select('baseUrl').subscribe(baseUrl => this.baseUrl = baseUrl));
3976
3784
  this.subscriptions.add(this.store.select('iaVersie').subscribe(iaVersie => this.iaVersie = iaVersie.versie));
3977
3785
  }
3978
3786
  ngOnDestroy() {
3979
3787
  this.subscriptions.unsubscribe();
3980
3788
  }
3981
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaseRestService, deps: [{ token: i1.HttpClient }, { token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
3982
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaseRestService, providedIn: 'root' }); }
3789
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", 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: "19.2.16", ngImport: i0, type: BaseRestService, providedIn: 'root' }); }
3983
3791
  }
3984
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaseRestService, decorators: [{
3792
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: BaseRestService, decorators: [{
3985
3793
  type: Injectable,
3986
3794
  args: [{
3987
3795
  providedIn: 'root'
@@ -4002,10 +3810,10 @@ class BewegingVerrijkerService extends BaseRestService {
4002
3810
  this.store.dispatch(ClearProgress());
4003
3811
  return [];
4004
3812
  }
4005
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BewegingVerrijkerService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
4006
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BewegingVerrijkerService, providedIn: 'root' }); }
3813
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: BewegingVerrijkerService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
3814
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: BewegingVerrijkerService, providedIn: 'root' }); }
4007
3815
  }
4008
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BewegingVerrijkerService, decorators: [{
3816
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: BewegingVerrijkerService, decorators: [{
4009
3817
  type: Injectable,
4010
3818
  args: [{
4011
3819
  providedIn: 'root'
@@ -4147,13 +3955,13 @@ class Ritdeel {
4147
3955
  return retval;
4148
3956
  }
4149
3957
  getVrijebaanRijwegplan() {
4150
- return this.vrijebaanRijwegplanRijwegDwangCombi?.rijwegplan;
3958
+ return this.vrijebaanRijwegplanRijwegDwangCombi.rijwegplan;
4151
3959
  }
4152
3960
  getVrijebaanRijweg() {
4153
- return this.vrijebaanRijwegplanRijwegDwangCombi?.rijweg;
3961
+ return this.vrijebaanRijwegplanRijwegDwangCombi.rijweg;
4154
3962
  }
4155
3963
  getVrijebaanDwang() {
4156
- return this.vrijebaanRijwegplanRijwegDwangCombi?.dwang;
3964
+ return this.vrijebaanRijwegplanRijwegDwangCombi.dwang;
4157
3965
  }
4158
3966
  getDwangNummer() {
4159
3967
  return this.rijwegplanRijwegDwangCombi.getDwangNummer();
@@ -4170,7 +3978,7 @@ class Ritdeel {
4170
3978
  isBinnenWindow() {
4171
3979
  return (this.zichtbaarheid === RitdeelZichtbaarheid.ZICHTBAAR ||
4172
3980
  this.zichtbaarheid === RitdeelZichtbaarheid.ONZICHTBAAR_DOOR_GEBRUIKER)
4173
- && !this.zichtbaarBuitenPaginatie;
3981
+ && this.zichtbaarBuitenPaginatie === false;
4174
3982
  }
4175
3983
  isNietBeschikbaar() {
4176
3984
  return this.zichtbaarheid === RitdeelZichtbaarheid.ONZICHTBAAR_DOOR_SYSTEEM;
@@ -4193,10 +4001,10 @@ class Ritdeel {
4193
4001
  }
4194
4002
  }
4195
4003
  heeftVrijebaanInfo() {
4196
- return !!this.vrijebaanRijwegplanRijwegDwangCombi && !!this.vrijebaanRijwegplanRijwegDwangCombi.dwang;
4004
+ return this.vrijebaanRijwegplanRijwegDwangCombi && !!this.vrijebaanRijwegplanRijwegDwangCombi.dwang;
4197
4005
  }
4198
4006
  getVrijebaanPrlRoute() {
4199
- return this.vrijebaanRijwegplanRijwegDwangCombi?.getRoute();
4007
+ return this.vrijebaanRijwegplanRijwegDwangCombi.getRoute();
4200
4008
  }
4201
4009
  getTopologieElementen() {
4202
4010
  return this.topoElementen;
@@ -4228,10 +4036,10 @@ class Ritdeel {
4228
4036
  getZichtbaarheidBuitenPaginatie() {
4229
4037
  return this.zichtbaarBuitenPaginatie;
4230
4038
  }
4231
- bepaalTopologieElementen(sbmService) {
4232
- const topoElementen = sbmService.bepaalRouteElementen(this.getRoute());
4039
+ bepaalTopologieElementen(signaleringsBeeldManagerService) {
4040
+ const topoElementen = signaleringsBeeldManagerService.bepaalRouteElementen(this.getRoute());
4233
4041
  if (this.heeftVrijebaanInfo()) {
4234
- const vrijebaanTopoElementen = sbmService.bepaalRouteElementen(this.getVrijebaanPrlRoute());
4042
+ const vrijebaanTopoElementen = signaleringsBeeldManagerService.bepaalRouteElementen(this.getVrijebaanPrlRoute());
4235
4043
  topoElementen.push(...vrijebaanTopoElementen);
4236
4044
  }
4237
4045
  this.topoElementen = topoElementen;
@@ -4277,7 +4085,7 @@ class RitLezerService {
4277
4085
  ritDelen.push(new Ritdeel(dwangInfo, beweging.ritActies, beweging, vrijebaanDwangInfo, vervolgSpoor, []));
4278
4086
  }
4279
4087
  extractVrijebaanDwangInfo(beweging, rijwegPlan, rijweg) {
4280
- let vrijebaanDwangInfo = undefined;
4088
+ let vrijebaanDwangInfo = null;
4281
4089
  let vervolgSpoor;
4282
4090
  if (beweging.naarSpoor.endsWith(SPOOR_NAAR_VRIJEBAAN_POSTFIX) ||
4283
4091
  beweging.naarSpoor.endsWith(SPOOR_NAAR_VEERWISSEL_VRIJEBAAN_POSTFIX)) {
@@ -4291,9 +4099,9 @@ class RitLezerService {
4291
4099
  vrijebaanRijweg = vrijebaanRijwegen[0];
4292
4100
  vrijebaanDwang = vrijebaanRijweg.getDwangVoorDwangNummer(0);
4293
4101
  vervolgSpoor = vrijebaanRijwegplan.getVervolgSpoor(vrijebaanRijweg);
4294
- vrijebaanDwangInfo =
4295
- new RijwegplanRijwegDwangCombinatie(vrijebaanRijwegplan, vrijebaanRijweg, vrijebaanDwang);
4296
4102
  }
4103
+ vrijebaanDwangInfo =
4104
+ new RijwegplanRijwegDwangCombinatie(vrijebaanRijwegplan, vrijebaanRijweg, vrijebaanDwang);
4297
4105
  }
4298
4106
  }
4299
4107
  return { vrijebaanDwangInfo, vervolgSpoor };
@@ -4327,10 +4135,10 @@ class RitLezerService {
4327
4135
  isGewijzigd(beweging) {
4328
4136
  return beweging.wijzigStatus === 'Gewijzigd';
4329
4137
  }
4330
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RitLezerService, deps: [{ token: EditorService }, { token: MessagesService }], target: i0.ɵɵFactoryTarget.Injectable }); }
4331
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RitLezerService }); }
4138
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: RitLezerService, deps: [{ token: EditorService }, { token: MessagesService }], target: i0.ɵɵFactoryTarget.Injectable }); }
4139
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: RitLezerService }); }
4332
4140
  }
4333
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RitLezerService, decorators: [{
4141
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: RitLezerService, decorators: [{
4334
4142
  type: Injectable
4335
4143
  }], ctorParameters: () => [{ type: EditorService }, { type: MessagesService }] });
4336
4144
 
@@ -4346,7 +4154,7 @@ class BepaalOngeplandeActiesEffect {
4346
4154
  this.bepaalOngeplandeActies$ = createEffect(() => this.actions$.pipe(ofType(BepaalOngeplandeActies), withLatestFrom(this.store), map(([action, store]) => {
4347
4155
  const puicActieMap = new ArrayMultimap();
4348
4156
  const nietGevondenTakken = [];
4349
- const logMeldingDTOs$ = [];
4157
+ const logMeldingDTOs = [];
4350
4158
  const acties = store.ritDelen.flatMap(rd => rd.acties);
4351
4159
  action.ongeplandeActies.forEach(actie => {
4352
4160
  const alreadyAdded = acties.filter(a => a.id === actie.id).length > 0;
@@ -4362,11 +4170,11 @@ class BepaalOngeplandeActiesEffect {
4362
4170
  if (!spoortak && nietGevondenTakken.indexOf(takId) < 0) {
4363
4171
  nietGevondenTakken.push(takId);
4364
4172
  const melding = MeldingBuilder.nietGevondenTakkenOngeplandeActies(nietGevondenTakken);
4365
- logMeldingDTOs$.push(this.loggingHelper.maakLogDTO(melding, actie));
4173
+ logMeldingDTOs.push(this.loggingHelper.maakLogDTO(melding, actie));
4366
4174
  }
4367
4175
  else if (spoortak) {
4368
4176
  const melding = MeldingBuilder.actieHighlightError([actie.id]);
4369
- logMeldingDTOs$.push(this.loggingHelper.maakLogDTO(melding, actie));
4177
+ logMeldingDTOs.push(this.loggingHelper.maakLogDTO(melding, actie));
4370
4178
  this.messagesService.showMessage(MessageBuilder.actieHighlightError([actie.id]));
4371
4179
  }
4372
4180
  }
@@ -4375,8 +4183,8 @@ class BepaalOngeplandeActiesEffect {
4375
4183
  if (nietGevondenTakken.length > 0) {
4376
4184
  this.messagesService.showMessage(MessageBuilder.nietGevondenTakkenOngeplandeActies(nietGevondenTakken));
4377
4185
  }
4378
- if (logMeldingDTOs$.length > 0) {
4379
- forkJoin(logMeldingDTOs$).pipe(tap(dtos => this.mstLogResource.logMessages(dtos))).subscribe();
4186
+ if (logMeldingDTOs.length > 0) {
4187
+ this.mstLogResource.logMessages(logMeldingDTOs);
4380
4188
  }
4381
4189
  this.store.dispatch(SetOngeplandeActies(puicActieMap));
4382
4190
  this.store.dispatch(SetOngeplandeActieSelectieIds(Array.from(puicActieMap.keys())));
@@ -4388,10 +4196,10 @@ class BepaalOngeplandeActiesEffect {
4388
4196
  puicMap.put(puic, ongeplandeActie);
4389
4197
  });
4390
4198
  }
4391
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BepaalOngeplandeActiesEffect, deps: [{ token: i1$2.Actions }, { token: i2$1.Store }, { token: SignaleringsBeeldManagerService }, { token: MstLoggingResource }, { token: MessagesService }, { token: ActieHelper }, { token: LoggingHelper }], target: i0.ɵɵFactoryTarget.Injectable }); }
4392
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BepaalOngeplandeActiesEffect }); }
4199
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", 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: "19.2.16", ngImport: i0, type: BepaalOngeplandeActiesEffect }); }
4393
4201
  }
4394
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BepaalOngeplandeActiesEffect, decorators: [{
4202
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: BepaalOngeplandeActiesEffect, decorators: [{
4395
4203
  type: Injectable
4396
4204
  }], ctorParameters: () => [{ type: i1$2.Actions }, { type: i2$1.Store }, { type: SignaleringsBeeldManagerService }, { type: MstLoggingResource }, { type: MessagesService }, { type: ActieHelper }, { type: LoggingHelper }] });
4397
4205
 
@@ -4400,10 +4208,10 @@ class DateService {
4400
4208
  getCurrentDate() {
4401
4209
  return new Date();
4402
4210
  }
4403
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4404
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DateService, providedIn: 'root' }); }
4211
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: DateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4212
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: DateService, providedIn: 'root' }); }
4405
4213
  }
4406
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DateService, decorators: [{
4214
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: DateService, decorators: [{
4407
4215
  type: Injectable,
4408
4216
  args: [{
4409
4217
  providedIn: 'root'
@@ -4457,10 +4265,10 @@ class BepaalSbInfosEffect {
4457
4265
  pplgs.push(pplg);
4458
4266
  }
4459
4267
  }
4460
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BepaalSbInfosEffect, deps: [{ token: i1$2.Actions }, { token: i2$1.Store }, { token: SignaleringsbeeldInfoResource }, { token: MessagesService }, { token: DateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
4461
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BepaalSbInfosEffect }); }
4268
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", 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: "19.2.16", ngImport: i0, type: BepaalSbInfosEffect }); }
4462
4270
  }
4463
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BepaalSbInfosEffect, decorators: [{
4271
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: BepaalSbInfosEffect, decorators: [{
4464
4272
  type: Injectable
4465
4273
  }], ctorParameters: () => [{ type: i1$2.Actions }, { type: i2$1.Store }, { type: SignaleringsbeeldInfoResource }, { type: MessagesService }, { type: DateService }] });
4466
4274
 
@@ -4519,10 +4327,10 @@ class BewegingInvoegenEffect {
4519
4327
  });
4520
4328
  return combinaties;
4521
4329
  }
4522
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BewegingInvoegenEffect, deps: [{ token: i1$2.Actions }, { token: i2$1.Store }, { token: SignaleringsBeeldManagerService }, { token: EditorService }], target: i0.ɵɵFactoryTarget.Injectable }); }
4523
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BewegingInvoegenEffect }); }
4330
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", 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: "19.2.16", ngImport: i0, type: BewegingInvoegenEffect }); }
4524
4332
  }
4525
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BewegingInvoegenEffect, decorators: [{
4333
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: BewegingInvoegenEffect, decorators: [{
4526
4334
  type: Injectable
4527
4335
  }], ctorParameters: () => [{ type: i1$2.Actions }, { type: i2$1.Store }, { type: SignaleringsBeeldManagerService }, { type: EditorService }] });
4528
4336
 
@@ -4551,10 +4359,10 @@ class DeleteOngeplandeActieEffect {
4551
4359
  }
4552
4360
  });
4553
4361
  }
4554
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DeleteOngeplandeActieEffect, deps: [{ token: i1$2.Actions }, { token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
4555
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DeleteOngeplandeActieEffect }); }
4362
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", 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: "19.2.16", ngImport: i0, type: DeleteOngeplandeActieEffect }); }
4556
4364
  }
4557
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DeleteOngeplandeActieEffect, decorators: [{
4365
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: DeleteOngeplandeActieEffect, decorators: [{
4558
4366
  type: Injectable
4559
4367
  }], ctorParameters: () => [{ type: i1$2.Actions }, { type: i2$1.Store }] });
4560
4368
 
@@ -4569,7 +4377,7 @@ class FocusEffect {
4569
4377
  const dwangPuics = this.getPuics(topoElementen);
4570
4378
  if (ritdeel.isNietBeschikbaar()) {
4571
4379
  this.store.dispatch(SetOngeplandeActiesBepaald(false));
4572
- this.store.dispatch(navigeerVanaf(actie.paginationSize, ritdeel));
4380
+ this.store.dispatch(navigeerVanaf(actie.paginationSize, actie.iaVersieInfo, ritdeel));
4573
4381
  }
4574
4382
  return focusOpIds(dwangPuics);
4575
4383
  })));
@@ -4577,10 +4385,10 @@ class FocusEffect {
4577
4385
  getPuics(topoElementen) {
4578
4386
  return topoElementen.map(e => e.getPuic());
4579
4387
  }
4580
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FocusEffect, deps: [{ token: i1$2.Actions }, { token: i2$1.Store }, { token: SignaleringsBeeldManagerService }], target: i0.ɵɵFactoryTarget.Injectable }); }
4581
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FocusEffect }); }
4388
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", 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: "19.2.16", ngImport: i0, type: FocusEffect }); }
4582
4390
  }
4583
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FocusEffect, decorators: [{
4391
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: FocusEffect, decorators: [{
4584
4392
  type: Injectable
4585
4393
  }], ctorParameters: () => [{ type: i1$2.Actions }, { type: i2$1.Store }, { type: SignaleringsBeeldManagerService }] });
4586
4394
 
@@ -4591,16 +4399,16 @@ class LaadRouteFilesEffect {
4591
4399
  this.ritLezer = ritLezer;
4592
4400
  this.editorService = editorService;
4593
4401
  this.messagesService = messagesService;
4594
- 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 });
4595
4403
  }
4596
- laadRouteFiles(actie, iaVersie) {
4404
+ laadRouteFiles(actie) {
4597
4405
  const isReady = this.editorService.isReady();
4598
4406
  isReady.then(() => {
4599
4407
  const pplgs = this.bepaalSbDtoPplgs(actie.dtos);
4600
- const promise = this.editorService.laadRouteFiles(iaVersie, pplgs);
4408
+ const promise = this.editorService.laadRouteFiles(actie.iaversieinfo.versie, pplgs);
4601
4409
  promise.then(() => {
4602
4410
  this.updateRitdelen(actie);
4603
- }, (err) => {
4411
+ }, err => {
4604
4412
  this.messagesService.showMessage(MessageBuilder.rwpDataNietGevonden(Utils.getValidErorrMessage(err)));
4605
4413
  });
4606
4414
  });
@@ -4611,7 +4419,7 @@ class LaadRouteFilesEffect {
4611
4419
  if (ritdelen.length === 0) {
4612
4420
  ritdelen = this.ritLezer.parseRit(actie.treinpad, actie.ritGewijzigdToegestaan);
4613
4421
  }
4614
- this.store.dispatch(setRitDelen(ritdelen, actie.paginationSize));
4422
+ this.store.dispatch(setRitDelen(ritdelen, actie.paginationSize, actie.iaversieinfo));
4615
4423
  this.store.dispatch(setEditable(actie.treinpad.ritStatus !== 'Definitief'));
4616
4424
  });
4617
4425
  }, 0);
@@ -4619,7 +4427,7 @@ class LaadRouteFilesEffect {
4619
4427
  bepaalSbDtoPplgs(dtos) {
4620
4428
  const pplgs = [];
4621
4429
  dtos.forEach(dto => {
4622
- dto.pplgs?.forEach(pplg => {
4430
+ dto.pplgs.forEach(pplg => {
4623
4431
  if (!pplgs.includes(pplg)) {
4624
4432
  pplgs.push(pplg);
4625
4433
  }
@@ -4627,10 +4435,10 @@ class LaadRouteFilesEffect {
4627
4435
  });
4628
4436
  return pplgs;
4629
4437
  }
4630
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LaadRouteFilesEffect, deps: [{ token: i1$2.Actions }, { token: i2$1.Store }, { token: RitLezerService }, { token: EditorService }, { token: MessagesService }], target: i0.ɵɵFactoryTarget.Injectable }); }
4631
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LaadRouteFilesEffect }); }
4438
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", 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: "19.2.16", ngImport: i0, type: LaadRouteFilesEffect }); }
4632
4440
  }
4633
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LaadRouteFilesEffect, decorators: [{
4441
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: LaadRouteFilesEffect, decorators: [{
4634
4442
  type: Injectable
4635
4443
  }], ctorParameters: () => [{ type: i1$2.Actions }, { type: i2$1.Store }, { type: RitLezerService }, { type: EditorService }, { type: MessagesService }] });
4636
4444
 
@@ -4649,10 +4457,10 @@ class ConnectorService extends BaseRestService {
4649
4457
  this.store.dispatch(ClearProgress());
4650
4458
  return [];
4651
4459
  }
4652
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ConnectorService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
4653
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ConnectorService, providedIn: 'root' }); }
4460
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: ConnectorService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
4461
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: ConnectorService, providedIn: 'root' }); }
4654
4462
  }
4655
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ConnectorService, decorators: [{
4463
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: ConnectorService, decorators: [{
4656
4464
  type: Injectable,
4657
4465
  args: [{
4658
4466
  providedIn: 'root'
@@ -4660,14 +4468,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
4660
4468
  }] });
4661
4469
 
4662
4470
  class LaadSignaleringsbeeldenEffect {
4663
- constructor(actions$, store, signaleringsBeeldManagerService, editorService, sbiResource, connectorService, messagesService) {
4471
+ constructor(actions$, store, signaleringsBeeldManagerService, editorService, sbiResource, connectorService, messagesSerivce) {
4664
4472
  this.actions$ = actions$;
4665
4473
  this.store = store;
4666
4474
  this.signaleringsBeeldManagerService = signaleringsBeeldManagerService;
4667
4475
  this.editorService = editorService;
4668
4476
  this.sbiResource = sbiResource;
4669
4477
  this.connectorService = connectorService;
4670
- this.messagesService = messagesService;
4478
+ this.messagesSerivce = messagesSerivce;
4671
4479
  this.SVG_PIXEL_RUIMTE = 30;
4672
4480
  this.verwerkRitdelen$ = createEffect(() => this.actions$.pipe(ofType(setRitDelen, navigeer, navigeerVanaf), withLatestFrom(this.store), map(([actie, storeState]) => {
4673
4481
  this.store.dispatch(SetOngeplandeActiesBepaald(false));
@@ -4681,14 +4489,14 @@ class LaadSignaleringsbeeldenEffect {
4681
4489
  }).pipe(switchMap(this.getOtherRand.bind(this)), switchMap(this.loadRouteFilesAndSignaleringsbeeldInfo.bind(this)), switchMap(this.loadSignaleringsbeelden.bind(this)), map(this.processSvgsAndUpdateRitdelen.bind(this))))), { dispatch: false });
4682
4490
  }
4683
4491
  handleSignaleringsbeeldInfo({ actie, storeState }) {
4684
- return this.sbiResource.laadSignaleringsbeeldInfo(storeState.iaVersie.versie, actie.pplgs).pipe(take(1), tap((dtos) => this.processResponse({ dtos, storeState, actie })), catchError((err) => {
4685
- this.messagesService.showMessage(MessageBuilder.nietGevondenSBI(err));
4492
+ return this.sbiResource.laadSignaleringsbeeldInfo(this.createSignaleringsbeeldInfoQueryDto(actie.pplgs, storeState.iaVersie)).pipe(take(1), tap((dtos) => this.processResponse({ dtos, storeState, actie })), catchError((err) => {
4493
+ this.messagesSerivce.showMessage(MessageBuilder.nietGevondenSBI(err));
4686
4494
  return throwError(() => err);
4687
4495
  }));
4688
4496
  }
4689
4497
  processResponse({ dtos, storeState, actie }) {
4690
4498
  if (dtos && dtos.filter(dto => dto.metVisualisatie).length > 12) {
4691
- this.messagesService.showMessage(MessageBuilder.meerDan12BladenGevonden(dtos.length));
4499
+ this.messagesSerivce.showMessage(MessageBuilder.meerDan12BladenGevonden(dtos.length));
4692
4500
  }
4693
4501
  this.store.dispatch(SetSignaleringsbeeldInfoDtos(dtos, storeState.iaVersie, actie.rit, actie.paginationSize, actie.ritGewijzigdToegestaan));
4694
4502
  this.store.dispatch(SetVisibleSignaleringsbeeldInfoDtos(dtos));
@@ -4698,14 +4506,14 @@ class LaadSignaleringsbeeldenEffect {
4698
4506
  }
4699
4507
  loadRouteFilesAndSignaleringsbeeldInfo({ otherPplg, rand, storeState }) {
4700
4508
  this.editorService.laadRouteFiles(storeState.iaVersie.versie, [rand.getPPLG(), otherPplg]);
4701
- return this.sbiResource.laadSignaleringsbeeldInfo(storeState.iaVersie.versie, [rand.getPPLG(), otherPplg]).pipe(map(dtos => ({ dtos, storeState })));
4509
+ return this.sbiResource.laadSignaleringsbeeldInfo(this.createSignaleringsbeeldInfoQueryDto([rand.getPPLG(), otherPplg], storeState.iaVersie)).pipe(map(dtos => ({ dtos, storeState })));
4702
4510
  }
4703
4511
  loadSignaleringsbeelden({ dtos, storeState }) {
4704
- 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 })));
4705
4513
  }
4706
- processSvgsAndUpdateRitdelen({ svgDataUrls, ritDelen, dtos }) {
4514
+ processSvgsAndUpdateRitdelen({ svgDataUrls, storeState, dtos }) {
4707
4515
  this.verwerkSvgs(svgDataUrls);
4708
- const nieuweRitdelen = this.updateRitdelen(ritDelen, dtos);
4516
+ const nieuweRitdelen = this.updateRitdelen(storeState.ritDelen, dtos);
4709
4517
  this.store.dispatch(UpdateVisibleSignaleringsbeeldInfoDtos(dtos));
4710
4518
  this.store.dispatch(updateRitDelen(nieuweRitdelen));
4711
4519
  }
@@ -4718,11 +4526,11 @@ class LaadSignaleringsbeeldenEffect {
4718
4526
  const visibleRitPplgs = visibleRitDelen.map(r => r.getPplg()).filter(this.distinct);
4719
4527
  const visibleDtos = this.bepaalZichtbareDtos(visibleRitPplgs, storeDtos);
4720
4528
  const loadingDtos = this.bepaalToLoadDtos(visibleDtos, ritDelen, visibleRitDelen, visibleRitPplgs, storeState);
4721
- this.editorService.laadSignaleringsbeelden(storeState.iaVersie.versie, loadingDtos).pipe(tap(svgDataUrls => {
4529
+ this.editorService.laadSignaleringsbeelden(actie.iaversieinfo.versie, loadingDtos).pipe(tap(svgDataUrls => {
4722
4530
  this.verwerkSvgs(svgDataUrls);
4723
4531
  this.updateState(ritDelen, visibleDtos, storeState, visibleRitPplgs, loadingDtos, isInit, storeDtos);
4724
4532
  }), catchError(err => {
4725
- this.messagesService.showMessage(MessageBuilder.rwpDataNietGevonden(Utils.getValidErorrMessage(err)));
4533
+ this.messagesSerivce.showMessage(MessageBuilder.rwpDataNietGevonden(Utils.getValidErorrMessage(err)));
4726
4534
  throw err;
4727
4535
  })).subscribe();
4728
4536
  }
@@ -4737,6 +4545,10 @@ class LaadSignaleringsbeeldenEffect {
4737
4545
  this.store.dispatch(updateRitDelen(nieuweRitdelen));
4738
4546
  }, 0);
4739
4547
  }
4548
+ createSignaleringsbeeldInfoQueryDto(pplgs, iainfo) {
4549
+ const datum = iainfo.ingangsDatum && !isNaN(iainfo.ingangsDatum.getTime()) ? iainfo.ingangsDatum.toISOString() : undefined;
4550
+ return { pplgs, versie: iainfo.versie, ingangsDatum: datum };
4551
+ }
4740
4552
  verwerkSvgs(svgDataUrls) {
4741
4553
  this.store.dispatch(SetSvgInfos(this.bepaalSvgInfos(svgDataUrls)));
4742
4554
  }
@@ -4763,7 +4575,7 @@ class LaadSignaleringsbeeldenEffect {
4763
4575
  bepaalZichtbareDtos(visibleRitPplgs, dtos) {
4764
4576
  const visibleDtos = [];
4765
4577
  visibleRitPplgs.forEach(pplg => {
4766
- dtos.filter(dto => dto.pplgs?.includes(pplg)).forEach(dto => {
4578
+ dtos.filter(dto => dto.pplgs.includes(pplg)).forEach(dto => {
4767
4579
  if (!visibleDtos.includes(dto)) {
4768
4580
  visibleDtos.push(dto);
4769
4581
  }
@@ -4773,13 +4585,13 @@ class LaadSignaleringsbeeldenEffect {
4773
4585
  dtos.filter(d => !visibleDtos.includes(d)).forEach(d => d.metVisualisatie = false);
4774
4586
  return visibleDtos;
4775
4587
  }
4776
- distinct(value, index, values) {
4777
- return values.indexOf(value) === index;
4588
+ distinct(value, index, self) {
4589
+ return self.indexOf(value) === index;
4778
4590
  }
4779
4591
  addPrevNonVisibleDto(firstIdx, ritdelen, loadingDtos, visibleRitPplgs, allDtos) {
4780
4592
  if (firstIdx >= 0) {
4781
4593
  const pplg = ritdelen[firstIdx].getPplg();
4782
- const ritdeelDtos = allDtos.filter(dto => dto.pplgs?.includes(pplg)).filter(dto => !loadingDtos.includes(dto));
4594
+ const ritdeelDtos = allDtos.filter(dto => dto.pplgs.includes(pplg)).filter(dto => !loadingDtos.includes(dto));
4783
4595
  if (!visibleRitPplgs.includes(pplg) && ritdeelDtos.length > 0) {
4784
4596
  ritdeelDtos.filter(d => !loadingDtos.includes(d)).forEach(d => {
4785
4597
  d.metVisualisatie = false;
@@ -4794,7 +4606,7 @@ class LaadSignaleringsbeeldenEffect {
4794
4606
  addNextNonVisibleDto(lastIdx, ritdelen, loadingDtos, visibleRitPplgs, allDtos) {
4795
4607
  if (lastIdx <= ritdelen.length - 1) {
4796
4608
  const pplg = ritdelen[lastIdx].getPplg();
4797
- const ritdeelDtos = allDtos.filter(dto => dto.pplgs?.includes(pplg)).filter(dto => !loadingDtos.includes(dto));
4609
+ const ritdeelDtos = allDtos.filter(dto => dto.pplgs.includes(pplg)).filter(dto => !loadingDtos.includes(dto));
4798
4610
  if (!visibleRitPplgs.includes(pplg) && ritdeelDtos.length > 0) {
4799
4611
  ritdeelDtos.filter(d => !loadingDtos.includes(d)).forEach(d => {
4800
4612
  d.metVisualisatie = false;
@@ -4863,7 +4675,7 @@ class LaadSignaleringsbeeldenEffect {
4863
4675
  }
4864
4676
  }
4865
4677
  }
4866
- this.updateZichtbaarheidAangrenzendeRitdelen(min, max, ritdelen, visibleDtos);
4678
+ this.updateZichtbaarheidAangrezendeRitdelen(min, max, ritdelen, visibleDtos);
4867
4679
  return this.updateZichtbaarheidBuitenWindow(ritdelen, visibleDtos);
4868
4680
  }
4869
4681
  updateZichtbaarheidBuitenWindow(nieuweRitdelen, visibleDtos) {
@@ -4879,7 +4691,7 @@ class LaadSignaleringsbeeldenEffect {
4879
4691
  }
4880
4692
  return nieuweRitdelen;
4881
4693
  }
4882
- updateZichtbaarheidAangrenzendeRitdelen(min, max, nieuweRitdelen, visibleDtos) {
4694
+ updateZichtbaarheidAangrezendeRitdelen(min, max, nieuweRitdelen, visibleDtos) {
4883
4695
  let i = min - 1;
4884
4696
  while (i >= 0) {
4885
4697
  i = this.updateZichtbaarHeid(i, 0, visibleDtos, nieuweRitdelen) - 1;
@@ -4915,11 +4727,9 @@ class LaadSignaleringsbeeldenEffect {
4915
4727
  }
4916
4728
  bevatGevisualiseerdePplg(visibleDtos, pplg) {
4917
4729
  for (const dto of visibleDtos) {
4918
- if (dto.pplgs) {
4919
- for (const dtopplg of dto.pplgs) {
4920
- if (dtopplg === pplg) {
4921
- return true;
4922
- }
4730
+ for (const dtopplg of dto.pplgs) {
4731
+ if (dtopplg === pplg) {
4732
+ return true;
4923
4733
  }
4924
4734
  }
4925
4735
  }
@@ -4969,7 +4779,7 @@ class LaadSignaleringsbeeldenEffect {
4969
4779
  pplgsWindow.push(itemPplg);
4970
4780
  }
4971
4781
  const pplgDtos = [];
4972
- dtos.filter(dto => dto.pplgs?.includes(itemPplg)).forEach(dto => {
4782
+ dtos.filter(dto => dto.pplgs.includes(itemPplg)).forEach(dto => {
4973
4783
  if (!pplgDtos.includes(dto)) {
4974
4784
  pplgDtos.push(dto);
4975
4785
  }
@@ -4994,10 +4804,10 @@ class LaadSignaleringsbeeldenEffect {
4994
4804
  }
4995
4805
  return -1;
4996
4806
  }
4997
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LaadSignaleringsbeeldenEffect, deps: [{ token: i1$2.Actions }, { token: i2$1.Store }, { token: SignaleringsBeeldManagerService }, { token: EditorService }, { token: SignaleringsbeeldInfoResource }, { token: ConnectorService }, { token: MessagesService }], target: i0.ɵɵFactoryTarget.Injectable }); }
4998
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LaadSignaleringsbeeldenEffect }); }
4807
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", 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: "19.2.16", ngImport: i0, type: LaadSignaleringsbeeldenEffect }); }
4999
4809
  }
5000
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LaadSignaleringsbeeldenEffect, decorators: [{
4810
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: LaadSignaleringsbeeldenEffect, decorators: [{
5001
4811
  type: Injectable
5002
4812
  }], ctorParameters: () => [{ type: i1$2.Actions }, { type: i2$1.Store }, { type: SignaleringsBeeldManagerService }, { type: EditorService }, { type: SignaleringsbeeldInfoResource }, { type: ConnectorService }, { type: MessagesService }] });
5003
4813
 
@@ -5008,19 +4818,19 @@ class RitGoedkeurenEffect {
5008
4818
  this.bewegingVerrijker = bewegingVerrijker;
5009
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))));
5010
4820
  }
5011
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RitGoedkeurenEffect, deps: [{ token: i1$2.Actions }, { token: i2$1.Store }, { token: BewegingVerrijkerService }], target: i0.ɵɵFactoryTarget.Injectable }); }
5012
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RitGoedkeurenEffect }); }
4821
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", 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: "19.2.16", ngImport: i0, type: RitGoedkeurenEffect }); }
5013
4823
  }
5014
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RitGoedkeurenEffect, decorators: [{
4824
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: RitGoedkeurenEffect, decorators: [{
5015
4825
  type: Injectable
5016
4826
  }], ctorParameters: () => [{ type: i1$2.Actions }, { type: i2$1.Store }, { type: BewegingVerrijkerService }] });
5017
4827
 
5018
4828
  class RitdelenEffect {
5019
- constructor(actions$, store, sbmService, editorService) {
4829
+ constructor(actions$, store, sbmService, rijwegPlanEditorService) {
5020
4830
  this.actions$ = actions$;
5021
4831
  this.store = store;
5022
4832
  this.sbmService = sbmService;
5023
- this.editorService = editorService;
4833
+ this.rijwegPlanEditorService = rijwegPlanEditorService;
5024
4834
  this.updateRitDelen$ = createEffect(() => this.actions$.pipe(ofType(updateRitDelen), withLatestFrom(this.store), map(([actie, _storeState]) => {
5025
4835
  const nieuweRitDelen = actie.ritDelen.map(ritDeel => ritDeel.isZichtbaar() ?
5026
4836
  ritDeel.copyMetAlternatieveRoutes(this.sbmService.bepaalAlternativeRoutes(ritDeel.getRijweg())) : ritDeel);
@@ -5038,25 +4848,25 @@ class RitdelenEffect {
5038
4848
  return setRitdelenAfterUpdate(ritDelen);
5039
4849
  })));
5040
4850
  this.ritdeelInvoegen$ = createEffect(() => this.actions$.pipe(ofType(ritdeelInvoegen), withLatestFrom(this.store), map(([actie, storeState]) => {
5041
- const ritDelen = this.ritdeelInvoegenFunc(storeState.ritDelen, actie.nieuweRoute);
4851
+ const ritDelen = this.ritdeelInvoegenFunc(storeState.ritDelen, actie.nieuweRoute, this.rijwegPlanEditorService, this.sbmService);
5042
4852
  return setRitdelenAfterUpdate(ritDelen);
5043
4853
  })));
5044
4854
  }
5045
- ritdeelInvoegenFunc(ritDelen, nieuweRoute) {
4855
+ ritdeelInvoegenFunc(ritDelen, nieuweRoute, rijwegPlanEditorService, sbmService) {
5046
4856
  const origineelRitdeel = nieuweRoute.beginSeinOpRitdeel.ritdeel;
5047
4857
  const beginSein = nieuweRoute.beginSeinOpRitdeel.sein;
5048
- const rijwegplan = this.editorService.getRijwegplan(beginSein.getPPLG());
4858
+ const rijwegplan = rijwegPlanEditorService.getRijwegplan(beginSein.getPPLG());
5049
4859
  const dwangen = JsJavaUtil.listToArray(rijwegplan.getOnderliggendeDwangenTotEnVanSein(origineelRitdeel.getDwang(), beginSein));
5050
4860
  const isSamengesteldeRoute = dwangen[0] && dwangen[1];
5051
4861
  let newRitdeel1 = origineelRitdeel;
5052
4862
  if (isSamengesteldeRoute) {
5053
- newRitdeel1 = this.verwerkSamengesteldeRoute(origineelRitdeel, rijwegplan, dwangen, ritDelen);
4863
+ newRitdeel1 = this.verwerkSamengesteldeRoute(origineelRitdeel, rijwegplan, dwangen, sbmService, ritDelen);
5054
4864
  }
5055
- if (nieuweRoute.combinatieVoorEindsein?.isVrijeBaanRijweg()) {
5056
- this.extendRitdeelMetVrijebaanInfo(newRitdeel1, nieuweRoute);
4865
+ if (nieuweRoute.combinatieVoorEindsein.isVrijeBaanRijweg()) {
4866
+ this.extendRitdeelMetVrijebaanInfo(newRitdeel1, nieuweRoute, sbmService);
5057
4867
  }
5058
4868
  else {
5059
- this.maakNieuwRitdeel(newRitdeel1, nieuweRoute, ritDelen);
4869
+ this.maakNieuwRitdeel(newRitdeel1, nieuweRoute, sbmService, ritDelen);
5060
4870
  }
5061
4871
  if (isSamengesteldeRoute) {
5062
4872
  ritDelen.splice(ritDelen.indexOf(origineelRitdeel), 1);
@@ -5071,102 +4881,74 @@ class RitdelenEffect {
5071
4881
  }
5072
4882
  }
5073
4883
  }
5074
- verwerkSamengesteldeRoute(origineelRitdeel, rijwegplan, dwangen, ritDelen) {
4884
+ verwerkSamengesteldeRoute(origineelRitdeel, rijwegplan, dwangen, sbmService, ritDelen) {
5075
4885
  // dwangen in 2 nieuwe ritdelen verwerken voor de knip
5076
4886
  const nieuweRijweg1 = rijwegplan.getRijwegVoorSeinen(dwangen[0].getRoute().getBeginSein(), dwangen[0].getRoute().getEindSein());
5077
4887
  const dwangInfo1 = new RijwegplanRijwegDwangCombinatie(rijwegplan, nieuweRijweg1, dwangen[0]);
5078
- const newRitdeel1 = new Ritdeel(dwangInfo1, [], undefined, undefined, undefined, []);
4888
+ const newRitdeel1 = new Ritdeel(dwangInfo1, [], null, null, null, []);
5079
4889
  // remove vrijbaan info uit ritdeel
5080
- newRitdeel1.vrijebaanRijwegplanRijwegDwangCombi = undefined;
5081
- newRitdeel1.vervolgSpoor = undefined;
5082
- newRitdeel1.bepaalTopologieElementen(this.sbmService);
4890
+ newRitdeel1.vrijebaanRijwegplanRijwegDwangCombi = null;
4891
+ newRitdeel1.vervolgSpoor = null;
4892
+ newRitdeel1.bepaalTopologieElementen(sbmService);
5083
4893
  this.insertRitdeel(ritDelen, origineelRitdeel, newRitdeel1);
5084
4894
  const nieuweRijweg2 = rijwegplan.getRijwegVoorSeinen(dwangen[1].getRoute().getBeginSein(), dwangen[1].getRoute().getEindSein());
5085
4895
  const dwangInfo2 = new RijwegplanRijwegDwangCombinatie(rijwegplan, nieuweRijweg2, dwangen[1]);
5086
- const newRitdeel2 = new Ritdeel(dwangInfo2, [], undefined, undefined, undefined, []);
5087
- newRitdeel2.bepaalTopologieElementen(this.sbmService);
4896
+ const newRitdeel2 = new Ritdeel(dwangInfo2, [], null, null, null, []);
4897
+ newRitdeel2.bepaalTopologieElementen(sbmService);
5088
4898
  this.insertRitdeel(ritDelen, newRitdeel1, newRitdeel2);
5089
4899
  return newRitdeel1;
5090
4900
  }
5091
- extendRitdeelMetVrijebaanInfo(newRitdeel1, nieuweRoute) {
4901
+ extendRitdeelMetVrijebaanInfo(newRitdeel1, nieuweRoute, sbmService) {
5092
4902
  newRitdeel1.vrijebaanRijwegplanRijwegDwangCombi = nieuweRoute.combinatieVoorEindsein;
5093
- const vbrwp = nieuweRoute.combinatieVoorEindsein?.rijwegplan;
5094
- newRitdeel1.vervolgSpoor = nieuweRoute.combinatieVoorEindsein ?
5095
- vbrwp.getVervolgSpoor(nieuweRoute.combinatieVoorEindsein?.rijweg) : undefined;
5096
- newRitdeel1.bepaalTopologieElementen(this.sbmService);
4903
+ const vbrwp = nieuweRoute.combinatieVoorEindsein.rijwegplan;
4904
+ newRitdeel1.vervolgSpoor = vbrwp.getVervolgSpoor(nieuweRoute.combinatieVoorEindsein.rijweg);
4905
+ newRitdeel1.bepaalTopologieElementen(sbmService);
5097
4906
  }
5098
- maakNieuwRitdeel(newRitdeel1, nieuweRoute, ritDelen) {
4907
+ maakNieuwRitdeel(newRitdeel1, nieuweRoute, sbmService, ritDelen) {
5099
4908
  let newRitdeel = this.createRitdeel(nieuweRoute);
5100
- const altRoutes = this.sbmService.bepaalAlternativeRoutes(newRitdeel.getRijweg());
4909
+ const altRoutes = sbmService.bepaalAlternativeRoutes(newRitdeel.getRijweg());
5101
4910
  newRitdeel = newRitdeel.copyMetAlternatieveRoutes(altRoutes);
5102
- newRitdeel.bepaalTopologieElementen(this.sbmService);
4911
+ newRitdeel.bepaalTopologieElementen(sbmService);
5103
4912
  this.insertRitdeel(ritDelen, newRitdeel1, newRitdeel);
5104
4913
  }
5105
4914
  createRitdeel(nieuweRoute) {
5106
- return new Ritdeel(nieuweRoute.combinatieVoorEindsein, [], undefined, undefined, undefined, []);
4915
+ return new Ritdeel(nieuweRoute.combinatieVoorEindsein, [], null, null, null, []);
5107
4916
  }
5108
4917
  insertRitdeel(ritdelen, naRitdeelPositie, newRitdeel) {
5109
4918
  const idx = ritdelen.indexOf(naRitdeelPositie);
5110
4919
  ritdelen.splice(idx + 1, 0, newRitdeel);
5111
4920
  }
5112
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RitdelenEffect, deps: [{ token: i1$2.Actions }, { token: i2$1.Store }, { token: SignaleringsBeeldManagerService }, { token: EditorService }], target: i0.ɵɵFactoryTarget.Injectable }); }
5113
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RitdelenEffect }); }
4921
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", 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: "19.2.16", ngImport: i0, type: RitdelenEffect }); }
5114
4923
  }
5115
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RitdelenEffect, decorators: [{
4924
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: RitdelenEffect, decorators: [{
5116
4925
  type: Injectable
5117
4926
  }], ctorParameters: () => [{ type: i1$2.Actions }, { type: i2$1.Store }, { type: SignaleringsBeeldManagerService }, { type: EditorService }] });
5118
4927
 
5119
4928
  class SvgViewEffect {
5120
- constructor(actions$, store, sbSvgUtilService, svgService) {
4929
+ constructor(actions$, store, signaleringsBeeldManagerService, sbSvgUtilService) {
5121
4930
  this.actions$ = actions$;
5122
4931
  this.store = store;
4932
+ this.signaleringsBeeldManagerService = signaleringsBeeldManagerService;
5123
4933
  this.sbSvgUtilService = sbSvgUtilService;
5124
- this.svgService = svgService;
5125
- this.updateSvgView$ = createEffect(() => this.actions$.pipe(ofType(SetSvgInfos), withLatestFrom(this.store), switchMap(([_actie, storeState]) => this.svgService.getSvgInfo(storeState.iaVersie.versie, storeState.signaleringsbeeldInfoDtos)), map((svgInfo) => {
4934
+ this.updateSvgView$ = createEffect(() => this.actions$.pipe(ofType(SetSvgInfos), map((_actie) => {
5126
4935
  setTimeout(() => {
5127
- const svgTopology = svgInfo.topology;
5128
- if (!svgTopology) {
5129
- return;
5130
- }
5131
4936
  this.sbSvgUtilService.addSvgDefs();
5132
4937
  const wisselEnStoringskaderPuicMap = new Map();
5133
- svgTopology.alleSoortenWissels
5134
- ?.forEach(wissel => wisselEnStoringskaderPuicMap.set(wissel.puic, wissel.storingSymboolPuic));
4938
+ this.signaleringsBeeldManagerService.getAlleSoortenWissels()
4939
+ .forEach(wissel => wisselEnStoringskaderPuicMap.set(wissel.getPuic(), wissel.getStoringSymboolPuic()));
5135
4940
  this.sbSvgUtilService.zetClassOpStoringSymbolenMetMap(wisselEnStoringskaderPuicMap);
5136
- this.sbSvgUtilService.zetClassOpSpoornummers(svgTopology.puicVoorSpoorNummers ?? []);
4941
+ this.sbSvgUtilService.zetClassOpSpoornummers(this.signaleringsBeeldManagerService.getPuicsVoorSpoornummers());
5137
4942
  this.sbSvgUtilService.maakOngewensteElementenOnzichtbaar();
5138
4943
  this.sbSvgUtilService.zetClassOpLangeText();
5139
- const seinen = svgTopology.seinen?.map(this.toSbSein) ?? [];
5140
- this.sbSvgUtilService.maakOngewensteSeindelenOnzichtbaar(seinen);
5141
- this.sbSvgUtilService.maakSignaleringsElementenOnzichtbaar(svgTopology.signaleringsElementen
5142
- ?.map(signaleringsElement => this.toSbSignaleringsElement(signaleringsElement)) ?? []);
5143
- const puicsVoorRanden = svgTopology.puicVoorRanden ?? [];
4944
+ this.sbSvgUtilService.maakOngewensteSeindelenOnzichtbaar(this.signaleringsBeeldManagerService.getSeinen());
4945
+ this.sbSvgUtilService.maakSignaleringsElementenOnzichtbaar(this.signaleringsBeeldManagerService.getSignaleringsElementen());
4946
+ const puicsVoorRanden = this.signaleringsBeeldManagerService.getPuicsVoorRanden();
5144
4947
  this.zetClassOpRanden(puicsVoorRanden);
5145
- this.sbSvgUtilService.zetClassOpRijrichtingen(seinen);
4948
+ this.sbSvgUtilService.zetClassOpRijrichtingen(this.signaleringsBeeldManagerService.getSeinen());
5146
4949
  this.store.dispatch(SetConnectorenClickableIds(puicsVoorRanden));
5147
- this.store.dispatch(svgUpdateFinished());
5148
4950
  }, 0);
5149
4951
  })), { dispatch: false });
5150
- this.updateSelectieInfos$ = createEffect(() => this.actions$.pipe(ofType(svgUpdateFinished), switchMap(() => combineLatest([
5151
- this.store.select('ritSelectieIds'),
5152
- this.store.select('actieOpRitSelectieIds'),
5153
- this.store.select('ongeplandeActieSelectieIds'),
5154
- this.store.select('gebrokenRitSelectieIds'),
5155
- this.store.select('alternatievenSelectieIds'),
5156
- this.store.select('beginSeinSelectieIds'),
5157
- this.store.select('eindSeinSelectieIds')
5158
- ]).pipe(map(([rit, actieOpRitSelectieIds, ongeplandeActieSelectieIds, gebrokenRit, alternatieven, begin, eind]) => {
5159
- return setSelectieInfos([
5160
- new SelectieInfo(rit, 'rit'),
5161
- new SelectieInfo(actieOpRitSelectieIds, 'actieoprit'),
5162
- new SelectieInfo(ongeplandeActieSelectieIds, 'ongeplandeActie'),
5163
- new SelectieInfo(gebrokenRit, 'gebrokenrit'),
5164
- new SelectieInfo(alternatieven, 'alternatieveRoute'),
5165
- new SelectieInfo(begin, 'zigzagVan'),
5166
- new SelectieInfo(eind, 'zigzagNaar')
5167
- ]);
5168
- })))));
5169
- this.store.select('baseUrl').pipe(filter(baseUrl => !!baseUrl), take(1), tap(baseUrl => svgService.configuration.basePath = baseUrl + '/mst')).subscribe();
5170
4952
  }
5171
4953
  zetClassOpRanden(puics) {
5172
4954
  puics.forEach(element => {
@@ -5174,35 +4956,12 @@ class SvgViewEffect {
5174
4956
  rand?.classList.add('connector');
5175
4957
  });
5176
4958
  }
5177
- toSbSein(sein) {
5178
- return {
5179
- getPuic: () => sein.puic,
5180
- isBediend: () => sein.bediend,
5181
- getType: () => sein.type
5182
- };
5183
- }
5184
- toSbSignaleringsElement(signaleringsElement) {
5185
- return {
5186
- getPuic: () => signaleringsElement.puic
5187
- };
5188
- }
5189
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SvgViewEffect, deps: [{ token: i1$2.Actions }, { token: i2$1.Store }, { token: i3.SignaleringsbeeldSvgUtilityService }, { token: SvgControllerService }], target: i0.ɵɵFactoryTarget.Injectable }); }
5190
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SvgViewEffect }); }
4959
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", 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: "19.2.16", ngImport: i0, type: SvgViewEffect }); }
5191
4961
  }
5192
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SvgViewEffect, decorators: [{
4962
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: SvgViewEffect, decorators: [{
5193
4963
  type: Injectable
5194
- }], ctorParameters: () => [{ type: i1$2.Actions }, { type: i2$1.Store }, { type: i3.SignaleringsbeeldSvgUtilityService }, { type: SvgControllerService }] });
5195
-
5196
- class ProgressIndicator {
5197
- constructor(lowerText, upperText, iconClass) {
5198
- this.lowerText = '';
5199
- this.upperText = '';
5200
- this.iconClass = '';
5201
- this.lowerText = lowerText ?? this.lowerText;
5202
- this.upperText = upperText ?? this.upperText;
5203
- this.iconClass = iconClass ?? this.iconClass;
5204
- }
5205
- }
4964
+ }], ctorParameters: () => [{ type: i1$2.Actions }, { type: i2$1.Store }, { type: SignaleringsBeeldManagerService }, { type: i4.SignaleringsbeeldSvgUtilityService }] });
5206
4965
 
5207
4966
  class NieuweRoute {
5208
4967
  constructor(beginSeinOpRitdeel, combinatieVoorEindsein) {
@@ -5210,7 +4969,7 @@ class NieuweRoute {
5210
4969
  this.combinatieVoorEindsein = combinatieVoorEindsein;
5211
4970
  }
5212
4971
  isValid() {
5213
- return !!this.combinatieVoorEindsein;
4972
+ return this.combinatieVoorEindsein !== null;
5214
4973
  }
5215
4974
  }
5216
4975
 
@@ -5276,11 +5035,10 @@ function addRitdeelActieFunc(ritDelen, { ritDeel, actie }) {
5276
5035
  const onIdsActionHandler = (action) => on(action, (_, { ids }) => ids);
5277
5036
  const createIdsReducer = (action) => createReducer([], onIdsActionHandler(action));
5278
5037
  const editableReducer = createReducer(true, on(setEditable, (_, { editable }) => editable));
5279
- const progressIndicatorReducer = createReducer({}, on(ShowProgress, () => ({ progressIndicator: new ProgressIndicator() })), on(ClearProgress, () => ({})));
5038
+ const progressIndicatorReducer = createReducer(undefined, on(ShowProgress, () => ({ progressIndicator: {} })), on(ClearProgress, () => undefined));
5280
5039
  const svgInfoReducer = createReducer([], on(SetSvgInfos, (_, { svgInfos }) => svgInfos));
5281
5040
  const debugReducer = createReducer(false, on(SetDebug, (_, { debug }) => debug));
5282
5041
  const ritSelectieIdsReducer = createIdsReducer(SetRitSelectieIds);
5283
- const selectieInfosReducer = createReducer([], on(setSelectieInfos, (_, { selectieInfos }) => selectieInfos));
5284
5042
  const actieOpRitReducer = createReducer(new ArrayMultimap(), on(SetGeplandeActies, (_, { geplandeActiesMap }) => geplandeActiesMap), on(AddGeplandeActie, (geplandeActies, { actie, puics }) => {
5285
5043
  geplandeActies.putAll(actie, puics);
5286
5044
  return new ArrayMultimap(geplandeActies);
@@ -5303,10 +5061,12 @@ const ongeplandeActieReducer = createReducer(new ArrayMultimap(), on(SetOngeplan
5303
5061
  ongeplandeActie.puics.forEach(puic => ongeplandeActies.delete(puic, ongeplandeActie));
5304
5062
  return new ArrayMultimap(ongeplandeActies);
5305
5063
  }));
5306
- 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 }) => {
5307
5067
  ongeplandeActie.puics.filter(puic => !ids.includes(puic)).forEach(puic => ids.push(puic));
5308
5068
  return [...ids];
5309
- }), 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)));
5310
5070
  const gebrokenRitSelectieIdsReducer = createIdsReducer(SetGebrokenRitSelectieIds);
5311
5071
  const alternatievenSelectieIdsReducer = createIdsReducer(SetAlternatievenSelectieIds);
5312
5072
  const beginSeinSelectieIdsReducer = createIdsReducer(SetBeginSeinSelectieIds);
@@ -5315,15 +5075,16 @@ const alternatievenClickableIdsReducer = createIdsReducer(SetAlternatievenClicka
5315
5075
  const eindSeinenClickableIdsReducer = createIdsReducer(SetEindSeinenClickableIds);
5316
5076
  const connectorClickableIdsReducer = createIdsReducer(SetConnectorenClickableIds);
5317
5077
  const beginSeinRightClickableIdsReducer = createIdsReducer(SetBeginSeinRightClickableIds);
5318
- const nieuweRouteReducer = createReducer(undefined, on(SetNieuwRouteBeginSein, (_, { startSeinOpRitdeel }) => new NieuweRoute(startSeinOpRitdeel, undefined)), on(SetNieuwRouteEindSein, (nieuweRoute, { combinatieVoorEindsein }) => nieuweRoute ? new NieuweRoute(nieuweRoute.beginSeinOpRitdeel, combinatieVoorEindsein) : undefined), on(ResetNieuweRoute, () => undefined));
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)));
5319
5079
  const signaleringsbeeldInfoDtosReducer = createReducer([], on(SetSignaleringsbeeldInfoDtos, (_, { dtos }) => dtos), on(UpdateSignaleringsbeeldInfoDtos, (_, { dtos }) => [...dtos]));
5320
5080
  const visibleSbInfoDtosReducer = createReducer([], on(SetVisibleSignaleringsbeeldInfoDtos, (_, { dtos }) => dtos), on(UpdateVisibleSignaleringsbeeldInfoDtos, (_, { dtos }) => [...dtos]));
5321
- 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() })));
5322
5082
  const algemeneRitInfoDtoReducer = createReducer({}, on(SetAlgemeneRitInfo, (_, { algemeneRitInfoDto }) => algemeneRitInfoDto));
5323
5083
  const ongeplandeActiesBepaaldReducer = createReducer(false, on(SetOngeplandeActiesBepaald, (_, { bepaald }) => bepaald));
5324
- const nieuweBewegingReducer = createReducer([], on(UpdateRit, (_, { bewegingen }) => bewegingen));
5325
- const baseUrlReducer = createReducer('', on(SetBaseUrl, (_, { baseUrl }) => baseUrl));
5326
- 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));
5327
5088
  const storeReducers = {
5328
5089
  ritDelen: ritdelenReducer,
5329
5090
  ritSelectieIds: ritSelectieIdsReducer,
@@ -5352,10 +5113,9 @@ const storeReducers = {
5352
5113
  nieuweBewegingen: nieuweBewegingReducer,
5353
5114
  baseUrl: baseUrlReducer,
5354
5115
  focusIds: focusIdsReducer,
5355
- selectieInfos: selectieInfosReducer
5116
+ selectedRitdeelId: selectedRitdeelIdReducer
5356
5117
  };
5357
5118
 
5358
- // @ts-nocheck
5359
5119
  class ZoneUtil {
5360
5120
  constructor(ngZone) {
5361
5121
  this.ngZone = ngZone;
@@ -5379,10 +5139,10 @@ class ZoneUtil {
5379
5139
  proxy(target) {
5380
5140
  return new Proxy(target, this.zoneHandler);
5381
5141
  }
5382
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ZoneUtil, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable }); }
5383
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ZoneUtil }); }
5142
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: ZoneUtil, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable }); }
5143
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: ZoneUtil }); }
5384
5144
  }
5385
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ZoneUtil, decorators: [{
5145
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: ZoneUtil, decorators: [{
5386
5146
  type: Injectable
5387
5147
  }], ctorParameters: () => [{ type: i0.NgZone }] });
5388
5148
 
@@ -5418,13 +5178,12 @@ class MstViewerModule {
5418
5178
  constructor(service, zoneUtil) {
5419
5179
  this.service = service;
5420
5180
  // maak de EditorService toegankelijk voor GWT code
5421
- // @ts-ignore
5422
5181
  window['rpe'] = {
5423
5182
  EditorService: zoneUtil.proxy(service)
5424
5183
  };
5425
5184
  }
5426
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MstViewerModule, deps: [{ token: EditorService }, { token: ZoneUtil }], target: i0.ɵɵFactoryTarget.NgModule }); }
5427
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: MstViewerModule, declarations: [MessageComponent,
5185
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: MstViewerModule, deps: [{ token: EditorService }, { token: ZoneUtil }], target: i0.ɵɵFactoryTarget.NgModule }); }
5186
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.16", ngImport: i0, type: MstViewerModule, declarations: [MessageComponent,
5428
5187
  MstviewerComponent,
5429
5188
  OverlayComponent,
5430
5189
  ProgressIndicatorComponent,
@@ -5437,7 +5196,7 @@ class MstViewerModule {
5437
5196
  MessagesComponent], imports: [CommonModule,
5438
5197
  ImxViewerModule,
5439
5198
  RijwegenModule, i1$1.ResourceModule, i2$1.StoreRootModule, i1$2.EffectsRootModule], exports: [MstviewerComponent] }); }
5440
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MstViewerModule, providers: [
5199
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: MstViewerModule, providers: [
5441
5200
  ZoneUtil,
5442
5201
  SignaleringsbeeldInfoResource,
5443
5202
  MstLoggingResource,
@@ -5450,7 +5209,7 @@ class MstViewerModule {
5450
5209
  BewegingVerrijkerService
5451
5210
  ], imports: [imports] }); }
5452
5211
  }
5453
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MstViewerModule, decorators: [{
5212
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: MstViewerModule, decorators: [{
5454
5213
  type: NgModule,
5455
5214
  args: [{
5456
5215
  imports,