@loxia/mst-viewer 8.1.3-202511241327 → 8.1.3-202511260346

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 (92) hide show
  1. package/esm2022/generated/openapi/api/sbController.service.mjs +16 -17
  2. package/esm2022/generated/openapi/api/sbController.serviceInterface.mjs +1 -1
  3. package/esm2022/generated/openapi/model/algemeneRitDto.mjs +1 -1
  4. package/esm2022/generated/openapi/model/models.mjs +2 -1
  5. package/esm2022/generated/openapi/model/signaleringsbeeldRequestDto.mjs +13 -0
  6. package/esm2022/lib/atomic-components/message/message.component.mjs +3 -3
  7. package/esm2022/lib/atomic-components/progress-indicator/progress-indicator.entity.mjs +4 -7
  8. package/esm2022/lib/components/carousel-controls/carousel-controls.component.mjs +6 -5
  9. package/esm2022/lib/components/mstviewer/mstviewer.component.mjs +7 -13
  10. package/esm2022/lib/components/ritdelen-lijst/ritdelen-lijst.component.mjs +12 -18
  11. package/esm2022/lib/components/rpe/rpe.component.mjs +2 -6
  12. package/esm2022/lib/components/svg-visualisatie/svg-visualisatie.component.mjs +7 -8
  13. package/esm2022/lib/components/viewer-controls/viewer-controls.component.mjs +13 -16
  14. package/esm2022/lib/model/km-range.mjs +2 -2
  15. package/esm2022/lib/model/nieuwe-route.mjs +2 -2
  16. package/esm2022/lib/model/ritdeel.mjs +10 -10
  17. package/esm2022/lib/mst-viewer.module.mjs +5 -6
  18. package/esm2022/lib/resources/signaleringsbeeldinfo.resource.mjs +33 -16
  19. package/esm2022/lib/services/base-rest.service.mjs +1 -3
  20. package/esm2022/lib/services/beweging-utils.service.mjs +6 -6
  21. package/esm2022/lib/services/debug.service.mjs +3 -3
  22. package/esm2022/lib/services/editor.service.mjs +1 -3
  23. package/esm2022/lib/services/print-beweging.service.mjs +20 -23
  24. package/esm2022/lib/services/rit-lezer.service.mjs +4 -4
  25. package/esm2022/lib/services/signalerings-beeld-manager.service.mjs +1 -1
  26. package/esm2022/lib/services/viewer-control.service.mjs +6 -8
  27. package/esm2022/lib/state/actions/actions.mjs +5 -2
  28. package/esm2022/lib/state/actions/ritdelen.actions.mjs +4 -4
  29. package/esm2022/lib/state/effect/bepaal-ongeplande-acties.effect.mjs +7 -8
  30. package/esm2022/lib/state/effect/bepaal-sb-infos.effect.mjs +1 -1
  31. package/esm2022/lib/state/effect/beweging-invoegen.effect.mjs +1 -1
  32. package/esm2022/lib/state/effect/delete-ongeplande-actie.effect.mjs +1 -1
  33. package/esm2022/lib/state/effect/focus-effect.mjs +2 -2
  34. package/esm2022/lib/state/effect/laad-route-files.effect.mjs +8 -8
  35. package/esm2022/lib/state/effect/laad-signaleringsbeelden.effect.mjs +27 -25
  36. package/esm2022/lib/state/effect/ritdelen.effect.mjs +25 -26
  37. package/esm2022/lib/state/mst-editor-state.mjs +13 -10
  38. package/esm2022/lib/state/reducer/rit-delen.reducer.mjs +1 -1
  39. package/esm2022/lib/util/actie-helper.mjs +22 -26
  40. package/esm2022/lib/util/actie-popover-bepaler.mjs +2 -2
  41. package/esm2022/lib/util/logging-helper.mjs +42 -32
  42. package/esm2022/lib/util/multi-map.mjs +3 -2
  43. package/esm2022/lib/util/utils.mjs +5 -5
  44. package/esm2022/lib/util/zone-util.mjs +1 -2
  45. package/esm2022/src/generated/openapi/api/sbController.service.mjs +16 -17
  46. package/esm2022/src/generated/openapi/api/sbController.serviceInterface.mjs +1 -1
  47. package/esm2022/src/generated/openapi/model/algemeneRitDto.mjs +1 -1
  48. package/esm2022/src/generated/openapi/model/models.mjs +2 -1
  49. package/esm2022/src/generated/openapi/model/signaleringsbeeldRequestDto.mjs +13 -0
  50. package/fesm2022/loxia-mst-viewer-src-generated-openapi.mjs +27 -16
  51. package/fesm2022/loxia-mst-viewer-src-generated-openapi.mjs.map +1 -1
  52. package/fesm2022/loxia-mst-viewer.mjs +396 -389
  53. package/fesm2022/loxia-mst-viewer.mjs.map +1 -1
  54. package/generated/openapi/api/sbController.service.d.ts +8 -8
  55. package/generated/openapi/api/sbController.serviceInterface.d.ts +3 -3
  56. package/generated/openapi/model/algemeneRitDto.d.ts +8 -0
  57. package/generated/openapi/model/models.d.ts +1 -0
  58. package/generated/openapi/model/signaleringsbeeldRequestDto.d.ts +16 -0
  59. package/lib/atomic-components/message/message.component.d.ts +2 -2
  60. package/lib/atomic-components/progress-indicator/progress-indicator.entity.d.ts +1 -1
  61. package/lib/components/carousel-controls/carousel-controls.component.d.ts +3 -1
  62. package/lib/components/mstviewer/mstviewer.component.d.ts +2 -2
  63. package/lib/components/ritdelen-lijst/ritdelen-lijst.component.d.ts +2 -2
  64. package/lib/components/rpe/rpe.component.d.ts +1 -1
  65. package/lib/components/svg-visualisatie/svg-visualisatie.component.d.ts +1 -1
  66. package/lib/components/viewer-controls/viewer-controls.component.d.ts +4 -3
  67. package/lib/model/km-range.d.ts +1 -1
  68. package/lib/model/nieuwe-route.d.ts +2 -2
  69. package/lib/model/ritdeel.d.ts +10 -11
  70. package/lib/resources/signaleringsbeeldinfo.resource.d.ts +23 -8
  71. package/lib/services/editor.service.d.ts +2 -2
  72. package/lib/services/print-beweging.service.d.ts +6 -4
  73. package/lib/services/rit-lezer.service.d.ts +1 -1
  74. package/lib/services/signalerings-beeld-manager.service.d.ts +2 -2
  75. package/lib/services/viewer-control.service.d.ts +2 -0
  76. package/lib/state/actions/actions.d.ts +21 -14
  77. package/lib/state/actions/ritdelen.actions.d.ts +7 -3
  78. package/lib/state/effect/bepaal-ongeplande-acties.effect.d.ts +1 -2
  79. package/lib/state/effect/delete-ongeplande-actie.effect.d.ts +1 -1
  80. package/lib/state/effect/laad-route-files.effect.d.ts +5 -4
  81. package/lib/state/effect/laad-signaleringsbeelden.effect.d.ts +13 -13
  82. package/lib/state/effect/ritdelen.effect.d.ts +6 -7
  83. package/lib/state/mst-editor-state.d.ts +90 -26
  84. package/lib/util/actie-helper.d.ts +4 -4
  85. package/lib/util/logging-helper.d.ts +3 -2
  86. package/lib/util/utils.d.ts +1 -0
  87. package/package.json +1 -1
  88. package/src/generated/openapi/api/sbController.service.d.ts +8 -8
  89. package/src/generated/openapi/api/sbController.serviceInterface.d.ts +3 -3
  90. package/src/generated/openapi/model/algemeneRitDto.d.ts +8 -0
  91. package/src/generated/openapi/model/models.d.ts +1 -0
  92. package/src/generated/openapi/model/signaleringsbeeldRequestDto.d.ts +16 -0
@@ -11,13 +11,13 @@ 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 } 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,7 +53,7 @@ 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
58
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
59
59
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: MessageComponent, selector: "loxia-message", inputs: { message: "message" }, outputs: { onClearMessage: "onClearMessage" }, ngImport: i0, template: "<div id=\"alert-1\" *ngIf=\"message\"\n [ngClass]=\"severity\"\n class=\" loxia-message flex items-center p-4 text-white\" role=\"alert\">\n <svg class=\"flex-shrink-0 size-4 mt-0.5\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path d=\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z\"></path>\n <path d=\"M12 9v4\"></path>\n <path d=\"M12 17h.01\"></path>\n </svg>\n <span class=\"sr-only\">Info</span>\n <div class=\"ms-3 text-sm font-medium\">\n {{message.text}}\n </div>\n <button type=\"button\"\n (click)=\"closeMessage($event)\"\n class=\"ms-auto -mx-1.5 -my-1.5 rounded-lg inline-flex items-center justify-center h-8 w-8\" data-dismiss-target=\"#alert-1\" aria-label=\"Close\">\n <span class=\"sr-only\">Close</span>\n <svg class=\"w-3 h-3\" aria-hidden=\"true\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 14 14\">\n <path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m1 1 6 6m0 0 6 6M7 7l6-6M7 7l-6 6\"/>\n </svg>\n </button>\n</div>\n", styles: ["svg{background-color:transparent;stroke-width:unset}.loxia-message.information{background-color:#0288d1}.loxia-message.warning{background-color:#ff6a00}.loxia-message.notification{background-color:#f3ed38}.loxia-message.error{background-color:#b5061b}.loxia-message.success{background-color:#297d03}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
@@ -124,83 +124,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
124
124
  args: [{ selector: 'loxia-progress-indicator', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"inline-block h-16 w-16 animate-spin rounded-full border-4 border-solid border-current border-e-transparent align-[-0.125em] text-surface motion-reduce:animate-[spin_1.5s_linear_infinite] dark:text-warning\"\n role=\"status\">\n <span class=\"!absolute !-m-px !h-px !w-px !overflow-hidden !whitespace-nowrap !border-0 !p-0 ![clip:rect(0,0,0,0)]\">\n Loading...\n </span>\n</div>\n" }]
125
125
  }] });
126
126
 
127
- const SET_RIT_DELEN = '[mst] SetRitDelen';
128
- const SET_RIT_DELEN_AFTER_UPDATE = '[mst] SetRitDelenAfterUpdate';
129
- const UPDATE_RIT_DELEN = '[mst] UpdateRitDelen';
130
- const TOGGLE_RITDEEL_ZICHTBAAR = '[mst] ToggleRitdeelZichtbaar';
131
- const SET_RITDEEL_ZICHTBAAR = '[mst] ZetRitdeelZichtbaar';
132
- const SET_ZICHTBAARHEID_ALLE_RITDELEN = '[mst] SetZichtbaarheidAlleRitdelen';
133
- const TOGGLE_ZICHTBAARHEID_VOOR_BEWEGINGEN = '[mst] ToggleZichtbaarheidVoorBewegingen';
134
- const SET_ALTERNATIEVE_RIT_DELEN = '[mst] SetAlternatieveRitDelen';
135
- const RITDEEL_INVOEGEN = '[mst] RitdeelInvoegen';
136
- const DELETE_RITDEEL = '[mst] DeleteRitdeel';
137
- const DELETE_RITDEEL_ACTIE = '[mst] DeleteRitdeelActie';
138
- const ADD_RITDEEL_ACTIE = '[mst] AddRitdeelActie';
139
- const NAVIGEER = '[mst] Navigeer';
140
- const NAVIGEER_VANAF = '[mst] NavigeerVanaf';
141
- const setRitDelen = createAction(SET_RIT_DELEN, (ritDelen, paginationSize) => ({ ritDelen, paginationSize }));
142
- const setRitdelenAfterUpdate = createAction(SET_RIT_DELEN_AFTER_UPDATE, (ritDelen) => ({ ritDelen }));
143
- const navigeer = createAction(NAVIGEER, (stapSize, paginationSize) => ({ stapSize, paginationSize }));
144
- const navigeerVanaf = createAction(NAVIGEER_VANAF, (paginationSize, ritdeel) => ({ paginationSize, ritdeel }));
145
- const updateRitDelen = createAction(UPDATE_RIT_DELEN, (ritDelen) => ({ ritDelen }));
146
- const toggleRitdeelZichtbaar = createAction(TOGGLE_RITDEEL_ZICHTBAAR, (ritDeel) => ({ ritDeel }));
147
- const setRitdeelZichtbaar = createAction(SET_RITDEEL_ZICHTBAAR, (ritDeel, zichtbaar) => ({ ritDeel, zichtbaar }));
148
- const deleteRitdeel = createAction(DELETE_RITDEEL, (ritDeel) => ({ ritDeel }));
149
- const deleteRitdeelActie = createAction(DELETE_RITDEEL_ACTIE, (ritDeel, actie) => ({ ritDeel, actie }));
150
- const addRitdeelActie = createAction(ADD_RITDEEL_ACTIE, (ritDeel, actie) => ({ ritDeel, actie }));
151
- const setZichtbaarheidAlleRitdelen = createAction(SET_ZICHTBAARHEID_ALLE_RITDELEN, (zichtbaarheid) => ({ zichtbaarheid }));
152
- const toggleZichtbaarheidVoorBewegingen = createAction(TOGGLE_ZICHTBAARHEID_VOOR_BEWEGINGEN, (bewegingIds) => ({ bewegingIds }));
153
- const setAlternatieveRitDelen = createAction(SET_ALTERNATIEVE_RIT_DELEN, (alternatieveRitDeel) => ({ alternatieveRitDeel }));
154
- const ritdeelInvoegen = createAction(RITDEEL_INVOEGEN, (nieuweRoute) => ({ nieuweRoute }));
155
- // do not export return value
156
- const ritdeelActions = union({
157
- setRitDelen,
158
- updateRitDelen,
159
- setRitdelenAfterUpdate,
160
- toggleRitdeelZichtbaar,
161
- setRitdeelZichtbaar,
162
- deleteRitdeel,
163
- deleteRitdeelActie,
164
- addRitdeelActie,
165
- setZichtbaarheidAlleRitdelen,
166
- toggleZichtbaarheidVoorBewegingen,
167
- setAlternatieveRitDelen,
168
- ritdeelInvoegen
169
- });
170
-
171
- class CarouselControlsComponent {
172
- constructor(store) {
173
- this.store = store;
174
- this.paginationSize = 4;
175
- this.sideNavOpen = false;
176
- this.ritdelen$ = this.store.select('ritDelen').pipe(filter(r => r?.length > 0));
177
- this.kanLinks$ = this.ritdelen$.pipe(map(r => this.kanLinksNavigeren(r)));
178
- this.kanRechts$ = this.ritdelen$.pipe(map(r => this.kanRechtsNavigeren(r)));
179
- }
180
- kanLinksNavigeren(ritDelen) {
181
- return ritDelen.length > this.paginationSize && !ritDelen[0].isBinnenWindow();
182
- }
183
- kanRechtsNavigeren(ritDelen) {
184
- return ritDelen.length > this.paginationSize && !ritDelen[ritDelen.length - 1].isBinnenWindow();
185
- }
186
- navigeerNaarLinks(event) {
187
- this.store.dispatch(navigeer(event?.ctrlKey ? -1 : -(this.paginationSize - 1), this.paginationSize));
188
- }
189
- navigeerNaarRechts(event) {
190
- this.store.dispatch(navigeer(event?.ctrlKey ? 1 : this.paginationSize - 1, this.paginationSize));
191
- }
192
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CarouselControlsComponent, deps: [{ token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
193
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: CarouselControlsComponent, selector: "carousel-controls", inputs: { paginationSize: "paginationSize", sideNavOpen: "sideNavOpen" }, ngImport: i0, template: "<div *ngIf=\"ritdelen$ | async\">\n <a class=\"loxia-carousel-control-prev\" [ngClass]=\"(sideNavOpen)?'carousel-sidebar-open':'carousel-sidebar'\" role=\"button\"\n data-slide=\"prev\" (click)=\"navigeerNaarLinks($event)\" [hidden]=\"(kanLinks$ | async) === false\">\n <span id=\"previous-page\" class=\"loxia-carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"loxia-sr-only\">Previous</span>\n</a>\n <a class=\"loxia-carousel-control-next\" style=\"width: 2%;\" role=\"button\" data-slide=\"next\" (click)=\"navigeerNaarRechts($event)\"\n [hidden]=\"(kanRechts$ | async) === false\">\n <span id=\"next-page\" class=\"loxia-carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"loxia-sr-only\">Next</span>\n </a>\n</div>\n", styles: [".loxia-carousel-control-prev{left:0}.loxia-carousel-control-next{right:0}.loxia-carousel-control-next-icon,.loxia-carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:50%/100% 100% no-repeat}.loxia-carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\")}.loxia-carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\")}.loxia-carousel-control-next:focus,.loxia-carousel-control-next:hover,.loxia-carousel-control-prev:focus,.loxia-carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.loxia-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.loxia-carousel-control-next,.loxia-carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}.carousel-sidebar{width:2%}.carousel-sidebar-open{width:2%;transition:all .3s;left:470px}[hidden]{display:none!important}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
194
- }
195
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CarouselControlsComponent, decorators: [{
196
- type: Component,
197
- args: [{ selector: 'carousel-controls', template: "<div *ngIf=\"ritdelen$ | async\">\n <a class=\"loxia-carousel-control-prev\" [ngClass]=\"(sideNavOpen)?'carousel-sidebar-open':'carousel-sidebar'\" role=\"button\"\n data-slide=\"prev\" (click)=\"navigeerNaarLinks($event)\" [hidden]=\"(kanLinks$ | async) === false\">\n <span id=\"previous-page\" class=\"loxia-carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"loxia-sr-only\">Previous</span>\n</a>\n <a class=\"loxia-carousel-control-next\" style=\"width: 2%;\" role=\"button\" data-slide=\"next\" (click)=\"navigeerNaarRechts($event)\"\n [hidden]=\"(kanRechts$ | async) === false\">\n <span id=\"next-page\" class=\"loxia-carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"loxia-sr-only\">Next</span>\n </a>\n</div>\n", styles: [".loxia-carousel-control-prev{left:0}.loxia-carousel-control-next{right:0}.loxia-carousel-control-next-icon,.loxia-carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:50%/100% 100% no-repeat}.loxia-carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\")}.loxia-carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\")}.loxia-carousel-control-next:focus,.loxia-carousel-control-next:hover,.loxia-carousel-control-prev:focus,.loxia-carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.loxia-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.loxia-carousel-control-next,.loxia-carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}.carousel-sidebar{width:2%}.carousel-sidebar-open{width:2%;transition:all .3s;left:470px}[hidden]{display:none!important}\n"] }]
198
- }], ctorParameters: () => [{ type: i2$1.Store }], propDecorators: { paginationSize: [{
199
- type: Input
200
- }], sideNavOpen: [{
201
- type: Input
202
- }] } });
203
-
204
127
  const version = '8.1.3-SNAPSHOT';
205
128
 
206
129
  const SET_EDITABLE = '[mst] SetEditable';
@@ -246,6 +169,7 @@ const LAAD_EN_VERWERK_SIGNALERINGSBEELD_INFO = '[mst] laadEnVerwerkSignaleringsb
246
169
  const FOCUS_OP_RITDEEL = '[mst] focusOpRitdeel';
247
170
  const FOCUS_OP_IDS = '[mst] focusOpIds';
248
171
  const BEPAAL_SB_INFOS = '[mst] bepaalSbInfos';
172
+ const SET_SELECTED_RITDEEL = '[mst] SetSelectedRitdeel';
249
173
  const setEditable = createAction(SET_EDITABLE, (editable) => ({ editable }));
250
174
  const SetRitSelectieIds = createAction(SET_RIT_SELECTIE_IDS, (ids) => ({ ids }));
251
175
  const SetGeplandeActies = createAction(SET_GEPLANDE_ACTIES, (geplandeActiesMap) => ({ geplandeActiesMap }));
@@ -289,6 +213,7 @@ const navigeerBuitenRit = createAction(NAVIGEER_BUITEN_RIT, (randPuic) => ({ ran
289
213
  const focusOpRitdeel = createAction(FOCUS_OP_RITDEEL, (ritdeel, paginationSize, iaVersieInfo) => ({ ritdeel, paginationSize, iaVersieInfo }));
290
214
  const focusOpIds = createAction(FOCUS_OP_IDS, (puics) => ({ puics }));
291
215
  const bepaalSbInfos = createAction(BEPAAL_SB_INFOS, (rit, ongeplandeActies, iaVersie, ritGewijzigdToegestaan, paginationSize) => ({ rit, ongeplandeActies, iaVersie, ritGewijzigdToegestaan, paginationSize }));
216
+ const SetSelectedRitdeel = createAction(SET_SELECTED_RITDEEL, (id) => ({ id }));
292
217
  // do not export return value
293
218
  const mstActions = union({
294
219
  setEditable,
@@ -326,9 +251,89 @@ const mstActions = union({
326
251
  ClearProgress,
327
252
  BewegingInvoegen,
328
253
  KeurAlleActiesGoed,
329
- UpdateRit
254
+ UpdateRit,
255
+ setSelectedRitdeel: SetSelectedRitdeel
256
+ });
257
+
258
+ const SET_RIT_DELEN = '[mst] SetRitDelen';
259
+ const SET_RIT_DELEN_AFTER_UPDATE = '[mst] SetRitDelenAfterUpdate';
260
+ const UPDATE_RIT_DELEN = '[mst] UpdateRitDelen';
261
+ const TOGGLE_RITDEEL_ZICHTBAAR = '[mst] ToggleRitdeelZichtbaar';
262
+ const SET_RITDEEL_ZICHTBAAR = '[mst] ZetRitdeelZichtbaar';
263
+ const SET_ZICHTBAARHEID_ALLE_RITDELEN = '[mst] SetZichtbaarheidAlleRitdelen';
264
+ const TOGGLE_ZICHTBAARHEID_VOOR_BEWEGINGEN = '[mst] ToggleZichtbaarheidVoorBewegingen';
265
+ const SET_ALTERNATIEVE_RIT_DELEN = '[mst] SetAlternatieveRitDelen';
266
+ const RITDEEL_INVOEGEN = '[mst] RitdeelInvoegen';
267
+ const DELETE_RITDEEL = '[mst] DeleteRitdeel';
268
+ const DELETE_RITDEEL_ACTIE = '[mst] DeleteRitdeelActie';
269
+ const ADD_RITDEEL_ACTIE = '[mst] AddRitdeelActie';
270
+ const NAVIGEER = '[mst] Navigeer';
271
+ const NAVIGEER_VANAF = '[mst] NavigeerVanaf';
272
+ const setRitDelen = createAction(SET_RIT_DELEN, (ritDelen, paginationSize, iaversieinfo) => ({ ritDelen, paginationSize, iaversieinfo }));
273
+ const setRitdelenAfterUpdate = createAction(SET_RIT_DELEN_AFTER_UPDATE, (ritDelen) => ({ ritDelen }));
274
+ const navigeer = createAction(NAVIGEER, (stapSize, paginationSize, iaversieinfo) => ({ stapSize, paginationSize, iaversieinfo }));
275
+ const navigeerVanaf = createAction(NAVIGEER_VANAF, (paginationSize, iaversieinfo, ritdeel) => ({ paginationSize, iaversieinfo, ritdeel }));
276
+ const updateRitDelen = createAction(UPDATE_RIT_DELEN, (ritDelen) => ({ ritDelen }));
277
+ const toggleRitdeelZichtbaar = createAction(TOGGLE_RITDEEL_ZICHTBAAR, (ritDeel) => ({ ritDeel }));
278
+ const setRitdeelZichtbaar = createAction(SET_RITDEEL_ZICHTBAAR, (ritDeel, zichtbaar) => ({ ritDeel, zichtbaar }));
279
+ const deleteRitdeel = createAction(DELETE_RITDEEL, (ritDeel) => ({ ritDeel }));
280
+ const deleteRitdeelActie = createAction(DELETE_RITDEEL_ACTIE, (ritDeel, actie) => ({ ritDeel, actie }));
281
+ const addRitdeelActie = createAction(ADD_RITDEEL_ACTIE, (ritDeel, actie) => ({ ritDeel, actie }));
282
+ const setZichtbaarheidAlleRitdelen = createAction(SET_ZICHTBAARHEID_ALLE_RITDELEN, (zichtbaarheid) => ({ zichtbaarheid }));
283
+ const toggleZichtbaarheidVoorBewegingen = createAction(TOGGLE_ZICHTBAARHEID_VOOR_BEWEGINGEN, (bewegingIds) => ({ bewegingIds }));
284
+ const setAlternatieveRitDelen = createAction(SET_ALTERNATIEVE_RIT_DELEN, (alternatieveRitDeel) => ({ alternatieveRitDeel }));
285
+ const ritdeelInvoegen = createAction(RITDEEL_INVOEGEN, (nieuweRoute) => ({ nieuweRoute }));
286
+ // do not export return value
287
+ const ritdeelActions = union({
288
+ setRitDelen,
289
+ updateRitDelen,
290
+ setRitdelenAfterUpdate,
291
+ toggleRitdeelZichtbaar,
292
+ setRitdeelZichtbaar,
293
+ deleteRitdeel,
294
+ deleteRitdeelActie,
295
+ addRitdeelActie,
296
+ setZichtbaarheidAlleRitdelen,
297
+ toggleZichtbaarheidVoorBewegingen,
298
+ setAlternatieveRitDelen,
299
+ ritdeelInvoegen
330
300
  });
331
301
 
302
+ class Utils {
303
+ static flatMap(xs, f) {
304
+ return xs.reduce((acc, x) => acc.concat(f(x)), []);
305
+ }
306
+ static getValidErorrMessage(err) {
307
+ let errorMsg = '';
308
+ if (err.msg) {
309
+ errorMsg += err.msg;
310
+ }
311
+ if (Array.isArray(err.body)) {
312
+ err.body.forEach(x => errorMsg += x);
313
+ }
314
+ else if (err.body) {
315
+ if (err.body instanceof ProgressEvent) {
316
+ errorMsg = 'Kon geen verbinding maken met de server';
317
+ }
318
+ else if (err.body.text) {
319
+ errorMsg += err.body.text;
320
+ }
321
+ else {
322
+ errorMsg += err.body;
323
+ }
324
+ }
325
+ if (err.message) {
326
+ errorMsg += err.message;
327
+ }
328
+ if (typeof err === 'string' || err instanceof String) {
329
+ errorMsg += err;
330
+ }
331
+ if (errorMsg !== '') {
332
+ return errorMsg;
333
+ }
334
+ }
335
+ }
336
+
332
337
  /**
333
338
  * https://gist.github.com/jordanluyke/609a4fffb69d1ebafdadd313ee2ee804
334
339
  *
@@ -392,7 +397,7 @@ class ArrayMultimap {
392
397
  return Array.from(new Set(this._entries.map(entry => entry.key)));
393
398
  }
394
399
  values() {
395
- return this._entries.reduce((acc, x) => acc.concat(x.value), []);
400
+ return Utils.flatMap(this._entries, x => x.value);
396
401
  }
397
402
  put(key, value) {
398
403
  this._entries.push(new MultimapEntry(key, value));
@@ -498,7 +503,6 @@ class EditorService {
498
503
  this.signaleringsBeeldManagerService = signaleringsBeeldManagerService;
499
504
  this.initReadyPromise();
500
505
  }
501
- // Called from GWT only, can be removed when GWT is gone. any is used because it will be removed with GWT
502
506
  setEditor(editor) {
503
507
  this.editor = editor;
504
508
  this.resolveReadyPromise();
@@ -506,7 +510,6 @@ class EditorService {
506
510
  isReady() {
507
511
  return this.promise;
508
512
  }
509
- // Called from GWT only, can be removed when GWT is gone
510
513
  setSignaleringsBeeldManager(signaleringsBeeldManager) {
511
514
  this.signaleringsBeeldManagerService.set(signaleringsBeeldManager);
512
515
  }
@@ -552,7 +555,7 @@ class BewegingUtils {
552
555
  const retval = [];
553
556
  retval.length = ritDelen.length;
554
557
  const origineleBewegingMap = this.bepaalOrigineleBewegingMap(origineleBewegingen);
555
- let vorigeBeweging = undefined;
558
+ let vorigeBeweging = null;
556
559
  for (let i = 0; i < ritDelen.length; i++) {
557
560
  const ritdeel = ritDelen[i];
558
561
  if (ritdeel.beweging) {
@@ -582,7 +585,7 @@ class BewegingUtils {
582
585
  }
583
586
  static bewegingenZijnGewijzigd(ritDelen, origineleBewegingen) {
584
587
  const ritDelenArray = ritDelen
585
- .filter(r => r.beweging?.id)
588
+ .filter(r => r.beweging)
586
589
  .map(r => r.beweging.id)
587
590
  .sort((a, b) => a - b);
588
591
  const bewegingenIdArray = origineleBewegingen.map(b => b.id).sort((a, b) => a - b);
@@ -598,9 +601,9 @@ class BewegingUtils {
598
601
  return stringToCheck.indexOf(match) !== -1;
599
602
  }
600
603
  static isGewijzigd(ritdeel, nieuwDwangNummer, origineleBewegingenMap) {
601
- const dwangGewijzigd = ritdeel.beweging?.dwangNummer !== nieuwDwangNummer;
604
+ const dwangGewijzigd = ritdeel.beweging.dwangNummer !== nieuwDwangNummer;
602
605
  let gewijzigd = false;
603
- if (ritdeel.beweging?.wijzigStatus === this.NORMAAL) {
606
+ if (ritdeel.beweging.wijzigStatus === this.NORMAAL) {
604
607
  const origineleBewegingActies = origineleBewegingenMap.get(ritdeel.beweging.id);
605
608
  const huidigeActies = this.createSortedActieIdList(ritdeel.acties);
606
609
  gewijzigd = JSON.stringify(huidigeActies) !== JSON.stringify(origineleBewegingActies);
@@ -624,7 +627,7 @@ class BewegingUtils {
624
627
  let naarSeinPplg;
625
628
  let naarSpoor = newRitdeel.getNaarPrlSpoor();
626
629
  if (eindSein.getTypeAlsString() === BewegingUtils.SEIN_TYPE_FICTIEF) {
627
- if (newRitdeel.heeftVrijebaanInfo() && newRitdeel.getVrijebaanRijweg()) {
630
+ if (newRitdeel.heeftVrijebaanInfo()) {
628
631
  const vbEindSein = newRitdeel.getVrijebaanRijweg().getEindSein();
629
632
  naarSeinNaam = vbEindSein.getName();
630
633
  naarSeinPplg = vbEindSein.getPPLG();
@@ -683,8 +686,6 @@ class ViewerControlService {
683
686
  this.printing$ = new BehaviorSubject(false);
684
687
  this.sideNavOpen = false;
685
688
  this.sideNavOpen$ = new BehaviorSubject(this.sideNavOpen);
686
- this.selectieInfos = [];
687
- this.origineelTreinPad = {};
688
689
  this.subscriptions.add(combineLatest([
689
690
  store.select('ritSelectieIds'),
690
691
  store.select('actieOpRitSelectieIds'),
@@ -704,18 +705,19 @@ class ViewerControlService {
704
705
  selectie.push(new SelectieInfo(eind, 'zigzagNaar'));
705
706
  this.selectieInfos = selectie;
706
707
  }));
708
+ this.subscriptions.add(store.select('ritDelen').subscribe(ritdelen => this.ritdelen = ritdelen));
707
709
  }
708
710
  toggleSideNavVisible() {
709
711
  this.sideNavOpen = !this.sideNavOpen;
710
712
  this.sideNavOpen$.next(this.sideNavOpen);
711
713
  }
712
714
  keurAlleActiesGoed(ongeplandeActies) {
713
- this.store.select('ritDelen').pipe(take(1), filter(ritdelen => !!ritdelen), tap(ritdelen => {
715
+ if (this.ritdelen) {
714
716
  this.store.dispatch(ShowProgress());
715
- const bewegingen = this.bewegingUtils.extractBewegingenUitRitdelen(ritdelen, this.origineelTreinPad.bewegingen);
716
- const alleActies = this.verzamelAlleActies(ritdelen, ongeplandeActies);
717
+ const bewegingen = this.bewegingUtils.extractBewegingenUitRitdelen(this.ritdelen, this.origineelTreinPad.bewegingen);
718
+ const alleActies = this.verzamelAlleActies(this.ritdelen, ongeplandeActies);
717
719
  this.store.dispatch(KeurAlleActiesGoed(this.getBewegingenZonderActies(bewegingen), alleActies));
718
- })).subscribe();
720
+ }
719
721
  }
720
722
  setValideRit(valideRit) {
721
723
  this.valideRit$.next(valideRit);
@@ -781,10 +783,10 @@ class DebugService {
781
783
  setDebugFlag(debug) {
782
784
  this.store.dispatch(SetDebug(debug));
783
785
  if (debug) {
784
- document.getElementById('svgContainer')?.addEventListener('mouseover', this.listener);
786
+ document.getElementById('svgContainer').addEventListener('mouseover', this.listener);
785
787
  }
786
788
  else {
787
- document.getElementById('svgContainer')?.removeEventListener('mouseover', this.listener);
789
+ document.getElementById('svgContainer').removeEventListener('mouseover', this.listener);
788
790
  }
789
791
  }
790
792
  debugEventListener() {
@@ -830,28 +832,26 @@ class PrintBewegingService {
830
832
  this.store = store;
831
833
  this.viewerControlService = viewerControlService;
832
834
  this.sbmService = sbmService;
833
- }
834
- printBeweging(bewegingId, paginationSize) {
835
- return new Promise((resolve, reject) => {
836
- this.store.select('ritDelen').pipe(take(1), tap(ritdelen => {
837
- const gevondenRitdeel = ritdelen.filter(r => Number.parseInt(r.getBewegingId(), 10) === bewegingId);
838
- // hide/show de knoppen
839
- const printing = !!bewegingId && gevondenRitdeel.length === 1;
840
- this.viewerControlService.setPrinting(printing);
841
- if (!printing) {
842
- reject(new Error('Geen beweging gevonden voor ' + bewegingId));
843
- return;
844
- }
845
- const ritdeel = gevondenRitdeel[0];
846
- if (ritdeel.isNietBeschikbaar()) {
847
- this.store.dispatch(navigeerVanaf(paginationSize, ritdeel));
848
- this.store.dispatch(ShowProgress());
849
- setTimeout(() => this.focusOpBeweging(ritdeel, resolve), 1000);
850
- }
851
- else {
852
- this.focusOpBeweging(ritdeel, resolve);
853
- }
854
- })).subscribe();
835
+ this.store.select(s => s.ritDelen).subscribe(ritdelen => this.ritdelen = ritdelen);
836
+ }
837
+ printBeweging(bewegingId, paginationSize, iaVersieInfo) {
838
+ const gevondenRitdeel = this.ritdelen.filter(r => parseInt(r.getBewegingId(), 10) === bewegingId);
839
+ // hide/show de knoppen
840
+ const printing = !!bewegingId && gevondenRitdeel.length === 1;
841
+ this.viewerControlService.setPrinting(printing);
842
+ if (!printing) {
843
+ return Promise.reject(new Error('Geen beweging gevonden voor ' + bewegingId));
844
+ }
845
+ return new Promise((resolve) => {
846
+ const ritdeel = gevondenRitdeel[0];
847
+ if (ritdeel.isNietBeschikbaar()) {
848
+ this.store.dispatch(navigeerVanaf(paginationSize, iaVersieInfo, ritdeel));
849
+ this.store.dispatch(ShowProgress());
850
+ setTimeout(() => this.focusOpBeweging(ritdeel, resolve), 1000);
851
+ }
852
+ else {
853
+ this.focusOpBeweging(ritdeel, resolve);
854
+ }
855
855
  });
856
856
  }
857
857
  focusOpBeweging(ritdeel, resolve) {
@@ -886,12 +886,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
886
886
  }], ctorParameters: () => [{ type: i2$1.Store }, { type: ViewerControlService }, { type: SignaleringsBeeldManagerService }] });
887
887
 
888
888
  class RpeComponent {
889
- constructor() {
890
- this.baseurl = '';
891
- this.path = '';
892
- }
893
889
  convertToScript() {
894
- const element = this.script?.nativeElement;
890
+ const element = this.script.nativeElement;
895
891
  const script = document.createElement('script');
896
892
  script.type = 'text/javascript';
897
893
  if (this.baseurl && this.path) {
@@ -944,7 +940,7 @@ class KmRange {
944
940
  if (result.length >= 1) {
945
941
  return result[0];
946
942
  }
947
- return undefined;
943
+ return null;
948
944
  }
949
945
  heeftOverlap(kilometrering1, kilometrering2) {
950
946
  const vanKilometrering = KmRange.getKilometrering(kilometrering1.getKmLint(), this.vanKilometreringen);
@@ -991,41 +987,6 @@ class MeldingBuilder {
991
987
  }
992
988
  }
993
989
 
994
- class Utils {
995
- static getValidErorrMessage(err) {
996
- let errorMsg = '';
997
- if (err.msg) {
998
- errorMsg += err.msg;
999
- }
1000
- if (Array.isArray(err.body)) {
1001
- err.body.forEach((x) => errorMsg += x);
1002
- }
1003
- else if (err.body) {
1004
- if (err.body instanceof ProgressEvent) {
1005
- errorMsg = 'Kon geen verbinding maken met de server';
1006
- }
1007
- else if (err.body.text) {
1008
- errorMsg += err.body.text;
1009
- }
1010
- else {
1011
- errorMsg += err.body;
1012
- }
1013
- }
1014
- if (err.message) {
1015
- errorMsg += err.message;
1016
- }
1017
- if (typeof err === 'string' || err instanceof String) {
1018
- errorMsg += err;
1019
- }
1020
- if (errorMsg !== '') {
1021
- return errorMsg;
1022
- }
1023
- else {
1024
- return 'Er is een onbekende fout opgetreden';
1025
- }
1026
- }
1027
- }
1028
-
1029
990
  class MessageBuilder {
1030
991
  static rwpDataNietGevonden(err) {
1031
992
  return new Message(Severity.ERROR, 'Error bij ophalen van rijwegplan data: ' + err);
@@ -2165,25 +2126,16 @@ class SbControllerService {
2165
2126
  }
2166
2127
  return httpParams;
2167
2128
  }
2168
- getSignaleringsbeelden(iaVersie, pplg, observe = 'body', reportProgress = false, options) {
2169
- if (iaVersie === null || iaVersie === undefined) {
2170
- throw new Error('Required parameter iaVersie was null or undefined when calling getSignaleringsbeelden.');
2171
- }
2172
- if (pplg === null || pplg === undefined) {
2173
- throw new Error('Required parameter pplg was null or undefined when calling getSignaleringsbeelden.');
2174
- }
2175
- let localVarQueryParameters = new HttpParams({ encoder: this.encoder });
2176
- if (pplg) {
2177
- pplg.forEach((element) => {
2178
- localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, element, 'pplg');
2179
- });
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.');
2180
2132
  }
2181
2133
  let localVarHeaders = this.defaultHeaders;
2182
2134
  let localVarHttpHeaderAcceptSelected = options && options.httpHeaderAccept;
2183
2135
  if (localVarHttpHeaderAcceptSelected === undefined) {
2184
2136
  // to determine the Accept header
2185
2137
  const httpHeaderAccepts = [
2186
- 'application/json'
2138
+ '*/*'
2187
2139
  ];
2188
2140
  localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
2189
2141
  }
@@ -2198,6 +2150,14 @@ class SbControllerService {
2198
2150
  if (localVarTransferCache === undefined) {
2199
2151
  localVarTransferCache = true;
2200
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
+ }
2201
2161
  let responseType_ = 'json';
2202
2162
  if (localVarHttpHeaderAcceptSelected) {
2203
2163
  if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
@@ -2210,10 +2170,10 @@ class SbControllerService {
2210
2170
  responseType_ = 'blob';
2211
2171
  }
2212
2172
  }
2213
- let localVarPath = `/rest/${this.configuration.encodeParam({ name: "iaVersie", value: iaVersie, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: undefined })}/SignaleringsbeeldAndPplgs`;
2214
- return this.httpClient.request('get', `${this.configuration.basePath}${localVarPath}`, {
2173
+ let localVarPath = `/rest/signaleringsbeeldeninfo`;
2174
+ return this.httpClient.request('post', `${this.configuration.basePath}${localVarPath}`, {
2215
2175
  context: localVarHttpContext,
2216
- params: localVarQueryParameters,
2176
+ body: signaleringsbeeldRequestDto,
2217
2177
  responseType: responseType_,
2218
2178
  withCredentials: this.configuration.withCredentials,
2219
2179
  headers: localVarHeaders,
@@ -2339,6 +2299,18 @@ const APIS = [AppConfigControllerService, BewegingControllerService, Class0Build
2339
2299
  * Do not edit the class manually.
2340
2300
  */
2341
2301
 
2302
+ /**
2303
+ * MST
2304
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
2305
+ *
2306
+ * The version of the OpenAPI document: 1
2307
+ *
2308
+ *
2309
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2310
+ * https://openapi-generator.tech
2311
+ * Do not edit the class manually.
2312
+ */
2313
+
2342
2314
  class ApiModule {
2343
2315
  static forRoot(configurationFactory) {
2344
2316
  return {
@@ -2400,36 +2372,47 @@ class LoggingHelper {
2400
2372
  this.store = store;
2401
2373
  }
2402
2374
  maakLogDTO(melding, actie) {
2403
- return combineLatest([
2404
- this.store.select('algemeneRitInfoDto'),
2405
- this.store.select('iaVersie'),
2406
- this.store.select('visibleSbInfoDtos')
2407
- ]).pipe(take(1), map(([algemeneRitInfoDto, iaVersie, visibleSbInfoDtos]) => {
2408
- let actieDto = null;
2409
- if (actie) {
2410
- actieDto = {
2411
- pplgNaam: actie.pplgNaam,
2412
- ritActieTypeOmschrijving: actie.ritActieTypeOmschrijving,
2413
- ritActieStatus: actie.ritActieStatus,
2414
- bewegingId: actie.bewegingId,
2415
- wisselType: actie.wisselType,
2416
- wisselNaam: actie.wisselNaam,
2417
- wisselKantCode: actie.wisselKantCode,
2418
- vanKilometerlint: actie.vanKilometerlint,
2419
- vanKilometrering: actie.vanKilometrering,
2420
- totKilometerlint: actie.totKilometerlint,
2421
- totKilometrering: actie.totKilometrering
2422
- };
2423
- }
2424
- return {
2425
- iaVersie: iaVersie.versie,
2426
- meldingLevel: melding.meldingLevel,
2427
- meldingMessage: melding.meldingMessage,
2428
- actieDto,
2429
- algemeneRitInfoDto,
2430
- sbinfoDtos: visibleSbInfoDtos
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
2431
2397
  };
2432
- }));
2398
+ }
2399
+ return {
2400
+ iaVersie,
2401
+ meldingLevel: melding.meldingLevel,
2402
+ meldingMessage: melding.meldingMessage,
2403
+ actieDto,
2404
+ algemeneRitInfoDto,
2405
+ sbinfoDtos: this.getSbInfoDtos()
2406
+ };
2407
+ }
2408
+ getSbInfoDtos() {
2409
+ const sbInfoDtos = [];
2410
+ this.store.select('visibleSbInfoDtos').pipe(take(1)).subscribe(dtos => {
2411
+ dtos.forEach(d => {
2412
+ sbInfoDtos.push(d);
2413
+ });
2414
+ });
2415
+ return sbInfoDtos;
2433
2416
  }
2434
2417
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LoggingHelper, deps: [{ token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
2435
2418
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LoggingHelper }); }
@@ -2532,7 +2515,6 @@ class ActieHelper {
2532
2515
  this.messagesService = messagesService;
2533
2516
  this.store = store;
2534
2517
  this.loggingHelper = loggingHelper;
2535
- this.debug = false;
2536
2518
  this.store.select('debug').subscribe(debug => this.debug = debug);
2537
2519
  }
2538
2520
  static getActieTopoElements(ritDeel, sbmService) {
@@ -2566,10 +2548,10 @@ class ActieHelper {
2566
2548
  }
2567
2549
  }
2568
2550
  static actieComparator(actie1, actie2) {
2569
- if (actie1.vanKilometrering && actie2.vanKilometrering && actie1.vanKilometrering !== actie2.vanKilometrering) {
2551
+ if (actie1.vanKilometrering !== actie2.vanKilometrering) {
2570
2552
  return actie1.vanKilometrering > actie2.vanKilometrering ? 1 : -1;
2571
2553
  }
2572
- if (actie1.ritActieTypeOmschrijving && actie2.ritActieTypeOmschrijving && actie1.ritActieTypeOmschrijving !== actie2.ritActieTypeOmschrijving) {
2554
+ if (actie1.ritActieTypeOmschrijving !== actie2.ritActieTypeOmschrijving) {
2573
2555
  return actie1.ritActieTypeOmschrijving > actie2.ritActieTypeOmschrijving ? 1 : -1;
2574
2556
  }
2575
2557
  if (actie1.wisselNaam !== actie2.wisselNaam) {
@@ -2609,9 +2591,9 @@ class ActieHelper {
2609
2591
  // make sure the elems are sorted in ascending order
2610
2592
  static sorteerTopoElementen(topoElems) {
2611
2593
  const topoElementen = topoElems.slice();
2612
- let lint = undefined;
2613
- let first;
2614
- let second;
2594
+ let lint = null;
2595
+ let first = null;
2596
+ let second = null;
2615
2597
  for (const topoElement of topoElementen) {
2616
2598
  let kilometreringen = null;
2617
2599
  const kms = JsJavaUtil.listToArray(topoElement.getKilometreringen());
@@ -2643,11 +2625,11 @@ class ActieHelper {
2643
2625
  if (!totKilometreringen && vanKilometreringen) {
2644
2626
  totKilometreringen = [new MstKilometrering(vanKilometreringen[0].getKmLint(), 100000)];
2645
2627
  }
2646
- if (vanKilometreringen && totKilometreringen && vanKilometreringen[0] > totKilometreringen[0]) {
2628
+ if (vanKilometreringen[0] > totKilometreringen[0]) {
2647
2629
  kmRanges.push(KmRange.rangeVoorStrekObject(e, this.addKm(vanKilometreringen, -1), this.addKm(totKilometreringen, 1)));
2648
2630
  }
2649
2631
  else {
2650
- 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)));
2651
2633
  }
2652
2634
  });
2653
2635
  }
@@ -2738,23 +2720,21 @@ class ActieHelper {
2738
2720
  else {
2739
2721
  const puics = [];
2740
2722
  kmRanges.forEach(kmRange => {
2741
- if (actie.vanKilometrering && actie.vanKilometerlint && actie.totKilometrering && actie.totKilometerlint) {
2742
- let vanKilometrering = new MstKilometrering(actie.vanKilometerlint, actie.vanKilometrering);
2743
- let totKilometrering = new MstKilometrering(actie.totKilometerlint, actie.totKilometrering);
2744
- if (actie.vanKilometrering > actie.totKilometrering) {
2745
- const temp = { van: vanKilometrering, tot: totKilometrering };
2746
- vanKilometrering = temp.tot;
2747
- totKilometrering = temp.van;
2748
- }
2749
- if (kmRange.heeftOverlap(vanKilometrering, totKilometrering)) {
2750
- puics.push(kmRange.topologyElement.getPuic());
2751
- }
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());
2752
2732
  }
2753
2733
  });
2754
2734
  if (puics.length === 0) {
2755
2735
  actieZonderElementen.push(actie.id);
2756
2736
  const melding = MeldingBuilder.actieHighlightError(actieZonderElementen);
2757
- this.loggingHelper.maakLogDTO(melding, actie).pipe(tap(dto => logMeldingDTOs.push(dto))).subscribe();
2737
+ logMeldingDTOs.push(this.loggingHelper.maakLogDTO(melding, actie));
2758
2738
  }
2759
2739
  retval.putAll(actie, puics);
2760
2740
  }
@@ -2770,7 +2750,7 @@ class ActieHelper {
2770
2750
  verwerkTopoElementen(topoElementen) {
2771
2751
  const kmRanges = [];
2772
2752
  let topoElementenZonderKms = [];
2773
- let laatstePuntKms = undefined;
2753
+ let laatstePuntKms = null;
2774
2754
  topoElementen.forEach(elem => {
2775
2755
  const kms = JsJavaUtil.listToArray(elem.getKilometreringen());
2776
2756
  if (kms.length > 0) {
@@ -2784,7 +2764,7 @@ class ActieHelper {
2784
2764
  }
2785
2765
  });
2786
2766
  if (topoElementenZonderKms.length > 0 && laatstePuntKms) {
2787
- ActieHelper.corrigeerTopoElementenZonderKms(topoElementenZonderKms, laatstePuntKms, undefined, kmRanges);
2767
+ ActieHelper.corrigeerTopoElementenZonderKms(topoElementenZonderKms, laatstePuntKms, null, kmRanges);
2788
2768
  }
2789
2769
  return kmRanges;
2790
2770
  }
@@ -2847,14 +2827,14 @@ class ActieHelper {
2847
2827
  if (ActieHelper.isKantCodeLinks(kantcode)) {
2848
2828
  return wissel.getLeft();
2849
2829
  }
2850
- return undefined;
2830
+ return null;
2851
2831
  }
2852
2832
  bepaalPuicVoorWisselSlijpenActie(actie) {
2853
2833
  const storingsSymboolPuic = this.sbmService.getSBWissel(actie.wisselNaam, actie.pplgNaam)?.getStoringSymboolPuic();
2854
2834
  if (!storingsSymboolPuic && this.debug) {
2855
2835
  const melding = MeldingBuilder.actieHighlightError([actie.id]);
2856
2836
  this.messagesService.showMessage(MessageBuilder.actieHighlightError([actie.id]));
2857
- this.loggingHelper.maakLogDTO(melding, actie).pipe(tap(logDto => this.mstLogResource.logMessages([logDto]))).subscribe();
2837
+ this.mstLogResource.logMessages([this.loggingHelper.maakLogDTO(melding, actie)]);
2858
2838
  }
2859
2839
  return storingsSymboolPuic ? [storingsSymboolPuic] : [];
2860
2840
  }
@@ -2869,16 +2849,10 @@ class RitdelenLijstComponent {
2869
2849
  constructor(store, sbmService) {
2870
2850
  this.store = store;
2871
2851
  this.sbmService = sbmService;
2872
- this.nietGeplandeActies = [];
2873
2852
  this.focusEmitter = new EventEmitter();
2874
2853
  this.keurAlleActiesGoed = new EventEmitter();
2875
- this.ritdeelViewModels = [];
2876
2854
  this.selectedRitdeelActies = [];
2877
2855
  this.selectedRitdeelOngeplandeActies = [];
2878
- this.disableActieKnoppenVanRitdeel = true;
2879
- this.editable = false;
2880
- this.ongeplandeActiesMap = new ArrayMultimap();
2881
- this.geplandeActies = new ArrayMultimap();
2882
2856
  this.NG_ACTIE_PREFIX = '* ';
2883
2857
  this.subscriptions = [];
2884
2858
  this.subscriptions.push(store.select('ritDelen').subscribe((ritdelen) => {
@@ -2889,6 +2863,9 @@ class RitdelenLijstComponent {
2889
2863
  this.subscriptions.push(store.select('ongeplandeActies').subscribe(acties => this.ongeplandeActiesMap = acties));
2890
2864
  this.subscriptions.push(store.select('geplandeActies').subscribe(acties => this.geplandeActies = acties));
2891
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));
2892
2869
  this.subscriptions.push(combineLatest([
2893
2870
  this.store.select('ritDelen'),
2894
2871
  this.store.select('ongeplandeActies')
@@ -2925,14 +2902,12 @@ class RitdelenLijstComponent {
2925
2902
  this.store.dispatch(deleteRitdeel(ritdeel));
2926
2903
  }
2927
2904
  deleteActiesUitRit() {
2928
- this.selectedRitdeel?.acties.slice().forEach(actie => {
2905
+ this.selectedRitdeel.acties.slice().forEach(actie => {
2929
2906
  this.deleteActieUitRit(actie);
2930
2907
  });
2931
2908
  }
2932
2909
  deleteActieUitRit(actie) {
2933
- if (!this.selectedRitdeel)
2934
- return;
2935
- const acties = this.selectedRitdeel.acties ?? [];
2910
+ const acties = this.selectedRitdeel.acties;
2936
2911
  const idx = acties.indexOf(actie);
2937
2912
  if (idx >= 0) {
2938
2913
  this.verhuisActieNaarOngepland(actie);
@@ -2958,7 +2933,7 @@ class RitdelenLijstComponent {
2958
2933
  }
2959
2934
  voegActieToeAanRit(ongeplandeActie) {
2960
2935
  const idx = this.selectedRitdeelOngeplandeActies.indexOf(ongeplandeActie);
2961
- if (idx >= 0 && this.selectedRitdeel) {
2936
+ if (idx >= 0) {
2962
2937
  this.store.dispatch(addRitdeelActie(this.selectedRitdeel, this.selectedRitdeelOngeplandeActies[idx].actie));
2963
2938
  this.store.dispatch(AddGeplandeActie(ongeplandeActie.actie, ongeplandeActie.puics));
2964
2939
  this.store.dispatch(DeleteOngeplandeActie(ongeplandeActie));
@@ -3060,13 +3035,13 @@ class RitdelenLijstComponent {
3060
3035
  return `${prefix}${ActieHelper.getVSTActieOmschrijving(actie)}`;
3061
3036
  }
3062
3037
  bepaalPrefixVoorActieOmschrijving(actie) {
3063
- const noPrefix = '';
3064
- if (this.selectedRitdeel?.acties.includes(actie)) {
3038
+ const prefix = '';
3039
+ if (this.selectedRitdeel.acties.includes(actie)) {
3065
3040
  // Afwijkende naam bij niet gevisualiseerde actie in rit
3066
3041
  const puics = this.geplandeActies.get(actie);
3067
- return puics.length > 0 ? noPrefix : this.NG_ACTIE_PREFIX;
3042
+ return puics.length > 0 ? prefix : this.NG_ACTIE_PREFIX;
3068
3043
  }
3069
- return noPrefix;
3044
+ return prefix;
3070
3045
  }
3071
3046
  actieVanKmTekst(actie) {
3072
3047
  if (ActieHelper.isWisselSlijpenActie(actie)) {
@@ -3087,7 +3062,6 @@ class RitdelenLijstComponent {
3087
3062
  return ritdeel.getPplgString();
3088
3063
  }
3089
3064
  getKantCode(stand) {
3090
- // @ts-ignore
3091
3065
  if (stand === window['domein'].Stand.LINKS) {
3092
3066
  return 'L';
3093
3067
  }
@@ -3224,18 +3198,49 @@ class RitdeelViewModel {
3224
3198
  }
3225
3199
  }
3226
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: "18.2.7", ngImport: i0, type: CarouselControlsComponent, deps: [{ token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
3222
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: CarouselControlsComponent, selector: "carousel-controls", inputs: { paginationSize: "paginationSize", iaversieinfo: "iaversieinfo", sideNavOpen: "sideNavOpen" }, ngImport: i0, template: "<div *ngIf=\"ritdelen$ | async\">\n <a class=\"loxia-carousel-control-prev\" [ngClass]=\"(sideNavOpen)?'carousel-sidebar-open':'carousel-sidebar'\" role=\"button\"\n data-slide=\"prev\" (click)=\"navigeerNaarLinks($event)\" [hidden]=\"(kanLinks$ | async) === false\">\n <span id=\"previous-page\" class=\"loxia-carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"loxia-sr-only\">Previous</span>\n</a>\n <a class=\"loxia-carousel-control-next\" style=\"width: 2%;\" role=\"button\" data-slide=\"next\" (click)=\"navigeerNaarRechts($event)\"\n [hidden]=\"(kanRechts$ | async) === false\">\n <span id=\"next-page\" class=\"loxia-carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"loxia-sr-only\">Next</span>\n </a>\n</div>\n", styles: [".loxia-carousel-control-prev{left:0}.loxia-carousel-control-next{right:0}.loxia-carousel-control-next-icon,.loxia-carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:50%/100% 100% no-repeat}.loxia-carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\")}.loxia-carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\")}.loxia-carousel-control-next:focus,.loxia-carousel-control-next:hover,.loxia-carousel-control-prev:focus,.loxia-carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.loxia-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.loxia-carousel-control-next,.loxia-carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}.carousel-sidebar{width:2%}.carousel-sidebar-open{width:2%;transition:all .3s;left:470px}[hidden]{display:none!important}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
3223
+ }
3224
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CarouselControlsComponent, decorators: [{
3225
+ type: Component,
3226
+ 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"] }]
3227
+ }], ctorParameters: () => [{ type: i2$1.Store }], propDecorators: { paginationSize: [{
3228
+ type: Input
3229
+ }], iaversieinfo: [{
3230
+ type: Input
3231
+ }], sideNavOpen: [{
3232
+ type: Input
3233
+ }] } });
3234
+
3227
3235
  class ViewerControlsComponent {
3228
3236
  constructor(store, viewerControlsService, bewegingUtils) {
3229
3237
  this.store = store;
3230
3238
  this.viewerControlsService = viewerControlsService;
3231
3239
  this.bewegingUtils = bewegingUtils;
3232
3240
  this.paginationSize = 4;
3233
- this.treinpad = undefined;
3234
- this.goedgekeurd = new EventEmitter();
3235
3241
  this.printing$ = this.viewerControlsService.isPrinting$();
3236
3242
  this.valideRit$ = this.viewerControlsService.isValideRit$();
3237
3243
  this.subscriptions = new Subscription();
3238
- this.editable = false;
3239
3244
  this.subscriptions.add(this.store.select('editable').subscribe(editable => this.editable = editable));
3240
3245
  }
3241
3246
  ngOnChanges({ treinpad }) {
@@ -3247,23 +3252,24 @@ class ViewerControlsComponent {
3247
3252
  return this.editable && this.viewerControlsService.selectieInfos.length !== 0;
3248
3253
  }
3249
3254
  goedkeurenClick() {
3250
- this.store.select('ritDelen').pipe(filter(ritdelen => !!ritdelen), tap(ritDelen => {
3251
- if (this.treinpad) {
3252
- delete this.treinpad.aantalRitActies;
3253
- this.treinpad.bewegingen = this.bewegingUtils.extractBewegingenUitRitdelen(ritDelen, this.viewerControlsService.origineelTreinPad.bewegingen);
3254
- this.goedgekeurd.emit(this.treinpad);
3255
- this.viewerControlsService.setOrigineelTreinPad(this.treinpad);
3256
- }
3257
- })).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
+ }
3258
3262
  }
3259
3263
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ViewerControlsComponent, deps: [{ token: i2$1.Store }, { token: ViewerControlService }, { token: BewegingUtils }], target: i0.ɵɵFactoryTarget.Component }); }
3260
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: ViewerControlsComponent, selector: "viewer-controls", inputs: { paginationSize: "paginationSize", treinpad: "treinpad", goedgekeurd: "goedgekeurd" }, usesOnChanges: true, ngImport: i0, template: "<button id=\"toonSideNavKnop\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm open-sidenav-button\"\n (click)=\"viewerControlsService.toggleSideNavVisible()\"\n [class.active]=\"viewerControlsService.sideNavOpen$ | async\"\n [hidden]=\"printing$ | async\">Ritdetails\n</button>\n<button *ngIf=\"showGoedkeuren()\"\n id=\"goedkeurenKnop\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm goedkeuren-button\"\n (click)=\"goedkeurenClick()\"\n [disabled]=\"(valideRit$ | async ) === false\"\n [hidden]=\"printing$ | async\">Goedkeuren\n</button>\n\n<carousel-controls [paginationSize]=\"paginationSize\"\n [sideNavOpen]=\"viewerControlsService.sideNavOpen$ | async\">\n</carousel-controls>\n", styles: [".open-sidenav-button.active{visibility:hidden}.open-sidenav-button,.goedkeuren-button{position:absolute;top:15px;z-index:600}.open-sidenav-button{left:15px}.goedkeuren-button{right:15px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CarouselControlsComponent, selector: "carousel-controls", inputs: ["paginationSize", "sideNavOpen"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
3264
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: ViewerControlsComponent, selector: "viewer-controls", inputs: { paginationSize: "paginationSize", iaversieinfo: "iaversieinfo", treinpad: "treinpad", goedgekeurd: "goedgekeurd" }, usesOnChanges: true, ngImport: i0, template: "<button id=\"toonSideNavKnop\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm open-sidenav-button\"\n (click)=\"viewerControlsService.toggleSideNavVisible()\"\n [class.active]=\"viewerControlsService.sideNavOpen$ | async\"\n [hidden]=\"printing$ | async\">Ritdetails\n</button>\n<button *ngIf=\"showGoedkeuren()\"\n id=\"goedkeurenKnop\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm goedkeuren-button\"\n (click)=\"goedkeurenClick()\"\n [disabled]=\"(valideRit$ | async ) === false\"\n [hidden]=\"printing$ | async\">Goedkeuren\n</button>\n\n<carousel-controls [paginationSize]=\"paginationSize\"\n [iaversieinfo]=\"iaversieinfo\"\n [sideNavOpen]=\"viewerControlsService.sideNavOpen$ | async\">\n</carousel-controls>\n", styles: [".open-sidenav-button.active{visibility:hidden}.open-sidenav-button,.goedkeuren-button{position:absolute;top:15px;z-index:600}.open-sidenav-button{left:15px}.goedkeuren-button{right:15px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CarouselControlsComponent, selector: "carousel-controls", inputs: ["paginationSize", "iaversieinfo", "sideNavOpen"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
3261
3265
  }
3262
3266
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ViewerControlsComponent, decorators: [{
3263
3267
  type: Component,
3264
- 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', 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"] }]
3265
3269
  }], ctorParameters: () => [{ type: i2$1.Store }, { type: ViewerControlService }, { type: BewegingUtils }], propDecorators: { paginationSize: [{
3266
3270
  type: Input
3271
+ }], iaversieinfo: [{
3272
+ type: Input
3267
3273
  }], treinpad: [{
3268
3274
  type: Input
3269
3275
  }], goedgekeurd: [{
@@ -3318,7 +3324,7 @@ class ActiePopoverBepaler {
3318
3324
  ongeplandeActies.entries.forEach(entry => {
3319
3325
  const treinNummerActieInfos = puicNaarOngeplandeActieMap.get(entry.key);
3320
3326
  if (!treinNummerActieInfos?.map(({ actie }) => actie).includes(entry.value.actie)) {
3321
- puicNaarOngeplandeActieMap.put(entry.key, { actie: entry.value.actie });
3327
+ puicNaarOngeplandeActieMap.put(entry.key, { treinNummer: undefined, actie: entry.value.actie });
3322
3328
  }
3323
3329
  });
3324
3330
  }
@@ -3378,15 +3384,12 @@ class SvgVisualisatieComponent {
3378
3384
  this.actieHelper = actieHelper;
3379
3385
  this.sbmService = sbmService;
3380
3386
  this.editorService = editorService;
3381
- this.nietGeplandeActies = [];
3382
- this.useClickArea = false;
3383
3387
  this.svgInfos$ = this.store.select('svgInfos');
3384
3388
  this.popoverInfos = [];
3385
3389
  this.clickableIds = [];
3386
3390
  this.rightClickableIds = [];
3387
3391
  this.contextMenuActions = [];
3388
3392
  this.contextMenuStyle = { display: 'none' };
3389
- this.editable = false;
3390
3393
  this.puicNaarBeginSeinRitdeel = new Map();
3391
3394
  this.puicNaarEindSeinCombinatie = new Map();
3392
3395
  this.puicNaarAlternatieveRoute = new Map();
@@ -3410,7 +3413,7 @@ class SvgVisualisatieComponent {
3410
3413
  }));
3411
3414
  }
3412
3415
  ngOnInit() {
3413
- document.getElementById('contextMenu')?.addEventListener('mouseleave', () => this.hideContextMenu());
3416
+ document.getElementById('contextMenu').addEventListener('mouseleave', () => this.hideContextMenu());
3414
3417
  }
3415
3418
  ngOnDestroy() {
3416
3419
  this.subscriptions.forEach(s => s.unsubscribe());
@@ -3437,6 +3440,7 @@ class SvgVisualisatieComponent {
3437
3440
  this.store.dispatch(navigeerBuitenRit(puic));
3438
3441
  }
3439
3442
  }
3443
+ this.store.dispatch(SetSelectedRitdeel(undefined));
3440
3444
  }
3441
3445
  handleImxviewRightClick(evt) {
3442
3446
  const fn = () => {
@@ -3467,7 +3471,7 @@ class SvgVisualisatieComponent {
3467
3471
  handleNieuweRouteToegevoegd() {
3468
3472
  this.store.select('nieuweRoute')
3469
3473
  .subscribe((nieuweRoute) => {
3470
- if (nieuweRoute?.isValid()) {
3474
+ if (nieuweRoute.isValid()) {
3471
3475
  this.store.dispatch(ResetNieuweRoute());
3472
3476
  this.store.dispatch(ritdeelInvoegen(nieuweRoute));
3473
3477
  }
@@ -3580,7 +3584,7 @@ class SvgVisualisatieComponent {
3580
3584
  });
3581
3585
  this.viewerControlsService.setValideRit(!gebrokenRit);
3582
3586
  this.store.dispatch(SetGeplandeActies(actieOpRitSelectiePuics));
3583
- const actieOpRitSelectiePuicsArray = Array.from(actieOpRitSelectiePuics.values()).flat();
3587
+ const actieOpRitSelectiePuicsArray = Utils.flatMap(Array.from(actieOpRitSelectiePuics.values()), x => x);
3584
3588
  this.store.dispatch(SetActieOpRitSelectieIds(actieOpRitSelectiePuicsArray));
3585
3589
  ritSelectiePuics = ritSelectiePuics.filter(item => actieOpRitSelectiePuicsArray.indexOf(item) < 0); // make mutually exclusive
3586
3590
  this.store.dispatch(SetRitSelectieIds(ritSelectiePuics));
@@ -3636,9 +3640,6 @@ class MstviewerComponent {
3636
3640
  this.printBewegingService = printBewegingService;
3637
3641
  this.paginationSize = 4;
3638
3642
  this.baseurl = 'https://acceptatie.raildesign.nl';
3639
- this.debug = false;
3640
- this.viewer = false;
3641
- this.useClickArea = false;
3642
3643
  this.goedgekeurd = new EventEmitter();
3643
3644
  this.subscriptions = new Subscription();
3644
3645
  this.subscriptions.add(this.store.select('nieuweBewegingen').subscribe(nieuweRit => {
@@ -3689,26 +3690,23 @@ class MstviewerComponent {
3689
3690
  }
3690
3691
  }
3691
3692
  printFocusBeweging(bewegingId) {
3692
- return this.printBewegingService.printBeweging(bewegingId, this.paginationSize);
3693
+ return this.printBewegingService.printBeweging(bewegingId, this.paginationSize, this.iaversieinfo);
3693
3694
  }
3694
3695
  keurAlleActiesGoed() {
3695
3696
  this.viewerControlsService.keurAlleActiesGoed(this.ongeplandeActies);
3696
3697
  }
3697
3698
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MstviewerComponent, deps: [{ token: i2$1.Store }, { token: ViewerControlService }, { token: DebugService }, { token: PrintBewegingService }], target: i0.ɵɵFactoryTarget.Component }); }
3698
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: MstviewerComponent, selector: "mst-viewer", inputs: { iaversieinfo: "iaversieinfo", treinpad: "treinpad", ongeplandeActies: "ongeplandeActies", paginationSize: "paginationSize", baseurl: "baseurl", debug: "debug", viewer: "viewer", useClickArea: "useClickArea" }, outputs: { goedgekeurd: "goedgekeurd" }, usesOnChanges: true, ngImport: i0, template: "<loxia-messages></loxia-messages>\n<loxia-overlay *ngIf=\"(progressIndicator$ | async)\">\n <loxia-progress-indicator id=\"progress-indicator\" [border]=\"false\" upperText=\"\">\n </loxia-progress-indicator>\n</loxia-overlay>\n\n<div style=\"position: relative\">\n <rpe-component [baseurl]=\"baseurl\" path=\"/mst/editor/editor.nocache.js\"></rpe-component>\n\n <svg-visualisatie [useClickArea]=\"useClickArea\" [nietGeplandeActies]=\"ongeplandeActies\"></svg-visualisatie>\n\n <nav [class.active]=\"(viewerControlsService.sideNavOpen$ | async) === false\" id=\"sidebar\">\n <div id=\"dismiss\">\n <em id=\"verbergSideNav\" class=\"fa fa-arrow-left\" (click)=\"viewerControlsService.toggleSideNavVisible()\">&times;</em>\n </div>\n <ritdelen-lijst *ngIf=\"!viewer\" (focusEmitter)=\"focusRitdeel($event)\" (keurAlleActiesGoed)=\"keurAlleActiesGoed()\"\n [nietGeplandeActies]=\"ongeplandeActies\"></ritdelen-lijst>\n <ritdelen-view *ngIf=\"viewer\" (focusEmitter)=\"focusRitdeel($event)\"></ritdelen-view>\n </nav>\n\n <viewer-controls [paginationSize]=\"paginationSize\"\n [treinpad]=\"treinpad\"\n [goedgekeurd]=\"goedgekeurd\"\n ></viewer-controls>\n\n</div>\n", styles: ["#sidebar{min-width:350px;max-width:475px;background:#fff;transition:all .3s;height:93vh;position:absolute;top:0;z-index:20}#sidebar.active{margin-left:-475px}#sidebar .sidebar-header{padding:20px;background:#6d7fcc}#dismiss{width:20px;height:20px;position:absolute;cursor:pointer;top:5px;right:0;color:#000;z-index:300}[hidden]{display:none}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: OverlayComponent, selector: "loxia-overlay" }, { kind: "component", type: ProgressIndicatorComponent, selector: "loxia-progress-indicator" }, { kind: "component", type: RpeComponent, selector: "rpe-component", inputs: ["baseurl", "path"] }, { kind: "component", type: RitdelenLijstComponent, selector: "ritdelen-lijst", inputs: ["nietGeplandeActies"], outputs: ["focusEmitter", "keurAlleActiesGoed"] }, { kind: "component", type: RitdelenViewComponent, selector: "ritdelen-view", outputs: ["focusEmitter"] }, { kind: "component", type: ViewerControlsComponent, selector: "viewer-controls", inputs: ["paginationSize", "treinpad", "goedgekeurd"] }, { kind: "component", type: SvgVisualisatieComponent, selector: "svg-visualisatie", inputs: ["nietGeplandeActies", "useClickArea"] }, { kind: "component", type: MessagesComponent, selector: "loxia-messages" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
3699
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: MstviewerComponent, selector: "mst-viewer", inputs: { iaversieinfo: "iaversieinfo", treinpad: "treinpad", ongeplandeActies: "ongeplandeActies", paginationSize: "paginationSize", baseurl: "baseurl", debug: "debug", viewer: "viewer", useClickArea: "useClickArea" }, outputs: { goedgekeurd: "goedgekeurd" }, usesOnChanges: true, ngImport: i0, template: "<loxia-messages></loxia-messages>\n<loxia-overlay *ngIf=\"(progressIndicator$ | async)\">\n <loxia-progress-indicator id=\"progress-indicator\" [border]=\"false\" upperText=\"\">\n </loxia-progress-indicator>\n</loxia-overlay>\n\n<div style=\"position: relative\">\n <rpe-component [baseurl]=\"baseurl\" path=\"/mst/editor/editor.nocache.js\"></rpe-component>\n\n <svg-visualisatie [useClickArea]=\"useClickArea\" [nietGeplandeActies]=\"ongeplandeActies\"></svg-visualisatie>\n\n <nav [class.active]=\"(viewerControlsService.sideNavOpen$ | async) === false\" id=\"sidebar\">\n <div id=\"dismiss\">\n <em id=\"verbergSideNav\" class=\"fa fa-arrow-left\" (click)=\"viewerControlsService.toggleSideNavVisible()\">&times;</em>\n </div>\n <ritdelen-lijst *ngIf=\"!viewer\" (focusEmitter)=\"focusRitdeel($event)\" (keurAlleActiesGoed)=\"keurAlleActiesGoed()\"\n [nietGeplandeActies]=\"ongeplandeActies\"></ritdelen-lijst>\n <ritdelen-view *ngIf=\"viewer\" (focusEmitter)=\"focusRitdeel($event)\"></ritdelen-view>\n </nav>\n\n <viewer-controls [paginationSize]=\"paginationSize\"\n [iaversieinfo]=\"iaversieinfo\"\n [treinpad]=\"treinpad\"\n [goedgekeurd]=\"goedgekeurd\"\n ></viewer-controls>\n\n</div>\n", styles: ["#sidebar{min-width:350px;max-width:475px;background:#fff;transition:all .3s;height:93vh;position:absolute;top:0;z-index:20}#sidebar.active{margin-left:-475px}#sidebar .sidebar-header{padding:20px;background:#6d7fcc}#dismiss{width:20px;height:20px;position:absolute;cursor:pointer;top:5px;right:0;color:#000;z-index:300}[hidden]{display:none}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: OverlayComponent, selector: "loxia-overlay" }, { kind: "component", type: ProgressIndicatorComponent, selector: "loxia-progress-indicator" }, { kind: "component", type: RpeComponent, selector: "rpe-component", inputs: ["baseurl", "path"] }, { kind: "component", type: RitdelenLijstComponent, selector: "ritdelen-lijst", inputs: ["nietGeplandeActies"], outputs: ["focusEmitter", "keurAlleActiesGoed"] }, { kind: "component", type: RitdelenViewComponent, selector: "ritdelen-view", outputs: ["focusEmitter"] }, { kind: "component", type: ViewerControlsComponent, selector: "viewer-controls", inputs: ["paginationSize", "iaversieinfo", "treinpad", "goedgekeurd"] }, { kind: "component", type: SvgVisualisatieComponent, selector: "svg-visualisatie", inputs: ["nietGeplandeActies", "useClickArea"] }, { kind: "component", type: MessagesComponent, selector: "loxia-messages" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
3699
3700
  }
3700
3701
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MstviewerComponent, decorators: [{
3701
3702
  type: Component,
3702
- 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', template: "<loxia-messages></loxia-messages>\n<loxia-overlay *ngIf=\"(progressIndicator$ | async)\">\n <loxia-progress-indicator id=\"progress-indicator\" [border]=\"false\" upperText=\"\">\n </loxia-progress-indicator>\n</loxia-overlay>\n\n<div style=\"position: relative\">\n <rpe-component [baseurl]=\"baseurl\" path=\"/mst/editor/editor.nocache.js\"></rpe-component>\n\n <svg-visualisatie [useClickArea]=\"useClickArea\" [nietGeplandeActies]=\"ongeplandeActies\"></svg-visualisatie>\n\n <nav [class.active]=\"(viewerControlsService.sideNavOpen$ | async) === false\" id=\"sidebar\">\n <div id=\"dismiss\">\n <em id=\"verbergSideNav\" class=\"fa fa-arrow-left\" (click)=\"viewerControlsService.toggleSideNavVisible()\">&times;</em>\n </div>\n <ritdelen-lijst *ngIf=\"!viewer\" (focusEmitter)=\"focusRitdeel($event)\" (keurAlleActiesGoed)=\"keurAlleActiesGoed()\"\n [nietGeplandeActies]=\"ongeplandeActies\"></ritdelen-lijst>\n <ritdelen-view *ngIf=\"viewer\" (focusEmitter)=\"focusRitdeel($event)\"></ritdelen-view>\n </nav>\n\n <viewer-controls [paginationSize]=\"paginationSize\"\n [iaversieinfo]=\"iaversieinfo\"\n [treinpad]=\"treinpad\"\n [goedgekeurd]=\"goedgekeurd\"\n ></viewer-controls>\n\n</div>\n", styles: ["#sidebar{min-width:350px;max-width:475px;background:#fff;transition:all .3s;height:93vh;position:absolute;top:0;z-index:20}#sidebar.active{margin-left:-475px}#sidebar .sidebar-header{padding:20px;background:#6d7fcc}#dismiss{width:20px;height:20px;position:absolute;cursor:pointer;top:5px;right:0;color:#000;z-index:300}[hidden]{display:none}\n"] }]
3703
3704
  }], ctorParameters: () => [{ type: i2$1.Store }, { type: ViewerControlService }, { type: DebugService }, { type: PrintBewegingService }], propDecorators: { iaversieinfo: [{
3704
- type: Input,
3705
- args: [{ required: true }]
3705
+ type: Input
3706
3706
  }], treinpad: [{
3707
- type: Input,
3708
- args: [{ required: true }]
3707
+ type: Input
3709
3708
  }], ongeplandeActies: [{
3710
- type: Input,
3711
- args: [{ required: true }]
3709
+ type: Input
3712
3710
  }], paginationSize: [{
3713
3711
  type: Input
3714
3712
  }], baseurl: [{
@@ -3724,26 +3722,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
3724
3722
  }] } });
3725
3723
 
3726
3724
  let SignaleringsbeeldInfoResource = class SignaleringsbeeldInfoResource extends Resource {
3727
- constructor(restHandler, store, sbControllerService) {
3725
+ constructor(restHandler, store) {
3728
3726
  super(restHandler);
3729
- this.restHandler = restHandler;
3730
3727
  this.store = store;
3731
- this.sbControllerService = sbControllerService;
3732
3728
  this.subscriptions = new Subscription();
3733
- this.subscriptions.add(this.store.select('baseUrl').subscribe(baseUrl => {
3734
- this.$setUrl(baseUrl);
3735
- sbControllerService.configuration.basePath = baseUrl + '/mst';
3736
- }));
3729
+ this.subscriptions.add(this.store.select('baseUrl').subscribe(baseUrl => this.$setUrl(baseUrl)));
3737
3730
  }
3738
3731
  ngOnDestroy() {
3739
3732
  this.subscriptions.unsubscribe();
3740
3733
  }
3741
- laadSignaleringsbeeldInfo(versie, pplgs) {
3742
- return this.sbControllerService.getSignaleringsbeelden(versie, pplgs);
3743
- }
3744
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SignaleringsbeeldInfoResource, deps: [{ token: i1$1.ResourceHandler }, { token: i2$1.Store }, { token: SbControllerService }], target: i0.ɵɵFactoryTarget.Injectable }); }
3734
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SignaleringsbeeldInfoResource, deps: [{ token: i1$1.ResourceHandler }, { token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
3745
3735
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SignaleringsbeeldInfoResource }); }
3746
3736
  };
3737
+ __decorate([
3738
+ ResourceAction({
3739
+ path: '/',
3740
+ method: ResourceRequestMethod.Post
3741
+ })
3742
+ ], SignaleringsbeeldInfoResource.prototype, "laadSignaleringsbeeldInfo", void 0);
3747
3743
  __decorate([
3748
3744
  ResourceAction({
3749
3745
  path: '/valideeriaversie'
@@ -3756,15 +3752,34 @@ SignaleringsbeeldInfoResource = __decorate([
3756
3752
  ], SignaleringsbeeldInfoResource);
3757
3753
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SignaleringsbeeldInfoResource, decorators: [{
3758
3754
  type: Injectable
3759
- }], 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: [] } });
3756
+ class SignaleringsbeeldInfoDto extends ResourceModel {
3757
+ constructor(data) {
3758
+ super();
3759
+ this.$resource = SignaleringsbeeldInfoResource;
3760
+ this.$setData(data);
3761
+ }
3762
+ toJSON() {
3763
+ return { bladnaam: this.bladNaam, pplgs: this.pplgs, metVisualisatie: this.metVisualisatie };
3764
+ }
3765
+ toString() {
3766
+ return `${this.bladNaam}, ${this.pplgs}, ${this.metVisualisatie}`;
3767
+ }
3768
+ $setData(data) {
3769
+ if (data) {
3770
+ this.bladNaam = data.bladNaam;
3771
+ this.pplgs = data.pplgs;
3772
+ this.metVisualisatie = data.metVisualisatie;
3773
+ }
3774
+ return this;
3775
+ }
3776
+ }
3760
3777
 
3761
3778
  class BaseRestService {
3762
3779
  constructor(httpClient, store) {
3763
3780
  this.httpClient = httpClient;
3764
3781
  this.store = store;
3765
3782
  this.subscriptions = new Subscription();
3766
- this.baseUrl = '';
3767
- this.iaVersie = '';
3768
3783
  this.subscriptions.add(this.store.select('baseUrl').subscribe(baseUrl => this.baseUrl = baseUrl));
3769
3784
  this.subscriptions.add(this.store.select('iaVersie').subscribe(iaVersie => this.iaVersie = iaVersie.versie));
3770
3785
  }
@@ -3940,13 +3955,13 @@ class Ritdeel {
3940
3955
  return retval;
3941
3956
  }
3942
3957
  getVrijebaanRijwegplan() {
3943
- return this.vrijebaanRijwegplanRijwegDwangCombi?.rijwegplan;
3958
+ return this.vrijebaanRijwegplanRijwegDwangCombi.rijwegplan;
3944
3959
  }
3945
3960
  getVrijebaanRijweg() {
3946
- return this.vrijebaanRijwegplanRijwegDwangCombi?.rijweg;
3961
+ return this.vrijebaanRijwegplanRijwegDwangCombi.rijweg;
3947
3962
  }
3948
3963
  getVrijebaanDwang() {
3949
- return this.vrijebaanRijwegplanRijwegDwangCombi?.dwang;
3964
+ return this.vrijebaanRijwegplanRijwegDwangCombi.dwang;
3950
3965
  }
3951
3966
  getDwangNummer() {
3952
3967
  return this.rijwegplanRijwegDwangCombi.getDwangNummer();
@@ -3963,7 +3978,7 @@ class Ritdeel {
3963
3978
  isBinnenWindow() {
3964
3979
  return (this.zichtbaarheid === RitdeelZichtbaarheid.ZICHTBAAR ||
3965
3980
  this.zichtbaarheid === RitdeelZichtbaarheid.ONZICHTBAAR_DOOR_GEBRUIKER)
3966
- && !this.zichtbaarBuitenPaginatie;
3981
+ && this.zichtbaarBuitenPaginatie === false;
3967
3982
  }
3968
3983
  isNietBeschikbaar() {
3969
3984
  return this.zichtbaarheid === RitdeelZichtbaarheid.ONZICHTBAAR_DOOR_SYSTEEM;
@@ -3986,10 +4001,10 @@ class Ritdeel {
3986
4001
  }
3987
4002
  }
3988
4003
  heeftVrijebaanInfo() {
3989
- return !!this.vrijebaanRijwegplanRijwegDwangCombi && !!this.vrijebaanRijwegplanRijwegDwangCombi.dwang;
4004
+ return this.vrijebaanRijwegplanRijwegDwangCombi && !!this.vrijebaanRijwegplanRijwegDwangCombi.dwang;
3990
4005
  }
3991
4006
  getVrijebaanPrlRoute() {
3992
- return this.vrijebaanRijwegplanRijwegDwangCombi?.getRoute();
4007
+ return this.vrijebaanRijwegplanRijwegDwangCombi.getRoute();
3993
4008
  }
3994
4009
  getTopologieElementen() {
3995
4010
  return this.topoElementen;
@@ -4021,10 +4036,10 @@ class Ritdeel {
4021
4036
  getZichtbaarheidBuitenPaginatie() {
4022
4037
  return this.zichtbaarBuitenPaginatie;
4023
4038
  }
4024
- bepaalTopologieElementen(sbmService) {
4025
- const topoElementen = sbmService.bepaalRouteElementen(this.getRoute());
4039
+ bepaalTopologieElementen(signaleringsBeeldManagerService) {
4040
+ const topoElementen = signaleringsBeeldManagerService.bepaalRouteElementen(this.getRoute());
4026
4041
  if (this.heeftVrijebaanInfo()) {
4027
- const vrijebaanTopoElementen = sbmService.bepaalRouteElementen(this.getVrijebaanPrlRoute());
4042
+ const vrijebaanTopoElementen = signaleringsBeeldManagerService.bepaalRouteElementen(this.getVrijebaanPrlRoute());
4028
4043
  topoElementen.push(...vrijebaanTopoElementen);
4029
4044
  }
4030
4045
  this.topoElementen = topoElementen;
@@ -4070,7 +4085,7 @@ class RitLezerService {
4070
4085
  ritDelen.push(new Ritdeel(dwangInfo, beweging.ritActies, beweging, vrijebaanDwangInfo, vervolgSpoor, []));
4071
4086
  }
4072
4087
  extractVrijebaanDwangInfo(beweging, rijwegPlan, rijweg) {
4073
- let vrijebaanDwangInfo = undefined;
4088
+ let vrijebaanDwangInfo = null;
4074
4089
  let vervolgSpoor;
4075
4090
  if (beweging.naarSpoor.endsWith(SPOOR_NAAR_VRIJEBAAN_POSTFIX) ||
4076
4091
  beweging.naarSpoor.endsWith(SPOOR_NAAR_VEERWISSEL_VRIJEBAAN_POSTFIX)) {
@@ -4084,9 +4099,9 @@ class RitLezerService {
4084
4099
  vrijebaanRijweg = vrijebaanRijwegen[0];
4085
4100
  vrijebaanDwang = vrijebaanRijweg.getDwangVoorDwangNummer(0);
4086
4101
  vervolgSpoor = vrijebaanRijwegplan.getVervolgSpoor(vrijebaanRijweg);
4087
- vrijebaanDwangInfo =
4088
- new RijwegplanRijwegDwangCombinatie(vrijebaanRijwegplan, vrijebaanRijweg, vrijebaanDwang);
4089
4102
  }
4103
+ vrijebaanDwangInfo =
4104
+ new RijwegplanRijwegDwangCombinatie(vrijebaanRijwegplan, vrijebaanRijweg, vrijebaanDwang);
4090
4105
  }
4091
4106
  }
4092
4107
  return { vrijebaanDwangInfo, vervolgSpoor };
@@ -4139,7 +4154,7 @@ class BepaalOngeplandeActiesEffect {
4139
4154
  this.bepaalOngeplandeActies$ = createEffect(() => this.actions$.pipe(ofType(BepaalOngeplandeActies), withLatestFrom(this.store), map(([action, store]) => {
4140
4155
  const puicActieMap = new ArrayMultimap();
4141
4156
  const nietGevondenTakken = [];
4142
- const logMeldingDTOs$ = [];
4157
+ const logMeldingDTOs = [];
4143
4158
  const acties = store.ritDelen.flatMap(rd => rd.acties);
4144
4159
  action.ongeplandeActies.forEach(actie => {
4145
4160
  const alreadyAdded = acties.filter(a => a.id === actie.id).length > 0;
@@ -4155,11 +4170,11 @@ class BepaalOngeplandeActiesEffect {
4155
4170
  if (!spoortak && nietGevondenTakken.indexOf(takId) < 0) {
4156
4171
  nietGevondenTakken.push(takId);
4157
4172
  const melding = MeldingBuilder.nietGevondenTakkenOngeplandeActies(nietGevondenTakken);
4158
- logMeldingDTOs$.push(this.loggingHelper.maakLogDTO(melding, actie));
4173
+ logMeldingDTOs.push(this.loggingHelper.maakLogDTO(melding, actie));
4159
4174
  }
4160
4175
  else if (spoortak) {
4161
4176
  const melding = MeldingBuilder.actieHighlightError([actie.id]);
4162
- logMeldingDTOs$.push(this.loggingHelper.maakLogDTO(melding, actie));
4177
+ logMeldingDTOs.push(this.loggingHelper.maakLogDTO(melding, actie));
4163
4178
  this.messagesService.showMessage(MessageBuilder.actieHighlightError([actie.id]));
4164
4179
  }
4165
4180
  }
@@ -4168,8 +4183,8 @@ class BepaalOngeplandeActiesEffect {
4168
4183
  if (nietGevondenTakken.length > 0) {
4169
4184
  this.messagesService.showMessage(MessageBuilder.nietGevondenTakkenOngeplandeActies(nietGevondenTakken));
4170
4185
  }
4171
- if (logMeldingDTOs$.length > 0) {
4172
- forkJoin(logMeldingDTOs$).pipe(tap(dtos => this.mstLogResource.logMessages(dtos))).subscribe();
4186
+ if (logMeldingDTOs.length > 0) {
4187
+ this.mstLogResource.logMessages(logMeldingDTOs);
4173
4188
  }
4174
4189
  this.store.dispatch(SetOngeplandeActies(puicActieMap));
4175
4190
  this.store.dispatch(SetOngeplandeActieSelectieIds(Array.from(puicActieMap.keys())));
@@ -4362,7 +4377,7 @@ class FocusEffect {
4362
4377
  const dwangPuics = this.getPuics(topoElementen);
4363
4378
  if (ritdeel.isNietBeschikbaar()) {
4364
4379
  this.store.dispatch(SetOngeplandeActiesBepaald(false));
4365
- this.store.dispatch(navigeerVanaf(actie.paginationSize, ritdeel));
4380
+ this.store.dispatch(navigeerVanaf(actie.paginationSize, actie.iaVersieInfo, ritdeel));
4366
4381
  }
4367
4382
  return focusOpIds(dwangPuics);
4368
4383
  })));
@@ -4384,16 +4399,16 @@ class LaadRouteFilesEffect {
4384
4399
  this.ritLezer = ritLezer;
4385
4400
  this.editorService = editorService;
4386
4401
  this.messagesService = messagesService;
4387
- 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 });
4388
4403
  }
4389
- laadRouteFiles(actie, iaVersie) {
4404
+ laadRouteFiles(actie) {
4390
4405
  const isReady = this.editorService.isReady();
4391
4406
  isReady.then(() => {
4392
4407
  const pplgs = this.bepaalSbDtoPplgs(actie.dtos);
4393
- const promise = this.editorService.laadRouteFiles(iaVersie, pplgs);
4408
+ const promise = this.editorService.laadRouteFiles(actie.iaversieinfo.versie, pplgs);
4394
4409
  promise.then(() => {
4395
4410
  this.updateRitdelen(actie);
4396
- }, (err) => {
4411
+ }, err => {
4397
4412
  this.messagesService.showMessage(MessageBuilder.rwpDataNietGevonden(Utils.getValidErorrMessage(err)));
4398
4413
  });
4399
4414
  });
@@ -4404,7 +4419,7 @@ class LaadRouteFilesEffect {
4404
4419
  if (ritdelen.length === 0) {
4405
4420
  ritdelen = this.ritLezer.parseRit(actie.treinpad, actie.ritGewijzigdToegestaan);
4406
4421
  }
4407
- this.store.dispatch(setRitDelen(ritdelen, actie.paginationSize));
4422
+ this.store.dispatch(setRitDelen(ritdelen, actie.paginationSize, actie.iaversieinfo));
4408
4423
  this.store.dispatch(setEditable(actie.treinpad.ritStatus !== 'Definitief'));
4409
4424
  });
4410
4425
  }, 0);
@@ -4412,7 +4427,7 @@ class LaadRouteFilesEffect {
4412
4427
  bepaalSbDtoPplgs(dtos) {
4413
4428
  const pplgs = [];
4414
4429
  dtos.forEach(dto => {
4415
- dto.pplgs?.forEach(pplg => {
4430
+ dto.pplgs.forEach(pplg => {
4416
4431
  if (!pplgs.includes(pplg)) {
4417
4432
  pplgs.push(pplg);
4418
4433
  }
@@ -4453,14 +4468,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
4453
4468
  }] });
4454
4469
 
4455
4470
  class LaadSignaleringsbeeldenEffect {
4456
- constructor(actions$, store, signaleringsBeeldManagerService, editorService, sbiResource, connectorService, messagesService) {
4471
+ constructor(actions$, store, signaleringsBeeldManagerService, editorService, sbiResource, connectorService, messagesSerivce) {
4457
4472
  this.actions$ = actions$;
4458
4473
  this.store = store;
4459
4474
  this.signaleringsBeeldManagerService = signaleringsBeeldManagerService;
4460
4475
  this.editorService = editorService;
4461
4476
  this.sbiResource = sbiResource;
4462
4477
  this.connectorService = connectorService;
4463
- this.messagesService = messagesService;
4478
+ this.messagesSerivce = messagesSerivce;
4464
4479
  this.SVG_PIXEL_RUIMTE = 30;
4465
4480
  this.verwerkRitdelen$ = createEffect(() => this.actions$.pipe(ofType(setRitDelen, navigeer, navigeerVanaf), withLatestFrom(this.store), map(([actie, storeState]) => {
4466
4481
  this.store.dispatch(SetOngeplandeActiesBepaald(false));
@@ -4474,14 +4489,14 @@ class LaadSignaleringsbeeldenEffect {
4474
4489
  }).pipe(switchMap(this.getOtherRand.bind(this)), switchMap(this.loadRouteFilesAndSignaleringsbeeldInfo.bind(this)), switchMap(this.loadSignaleringsbeelden.bind(this)), map(this.processSvgsAndUpdateRitdelen.bind(this))))), { dispatch: false });
4475
4490
  }
4476
4491
  handleSignaleringsbeeldInfo({ actie, storeState }) {
4477
- return this.sbiResource.laadSignaleringsbeeldInfo(storeState.iaVersie.versie, actie.pplgs).pipe(take(1), tap((dtos) => this.processResponse({ dtos, storeState, actie })), catchError((err) => {
4478
- 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));
4479
4494
  return throwError(() => err);
4480
4495
  }));
4481
4496
  }
4482
4497
  processResponse({ dtos, storeState, actie }) {
4483
4498
  if (dtos && dtos.filter(dto => dto.metVisualisatie).length > 12) {
4484
- this.messagesService.showMessage(MessageBuilder.meerDan12BladenGevonden(dtos.length));
4499
+ this.messagesSerivce.showMessage(MessageBuilder.meerDan12BladenGevonden(dtos.length));
4485
4500
  }
4486
4501
  this.store.dispatch(SetSignaleringsbeeldInfoDtos(dtos, storeState.iaVersie, actie.rit, actie.paginationSize, actie.ritGewijzigdToegestaan));
4487
4502
  this.store.dispatch(SetVisibleSignaleringsbeeldInfoDtos(dtos));
@@ -4491,14 +4506,14 @@ class LaadSignaleringsbeeldenEffect {
4491
4506
  }
4492
4507
  loadRouteFilesAndSignaleringsbeeldInfo({ otherPplg, rand, storeState }) {
4493
4508
  this.editorService.laadRouteFiles(storeState.iaVersie.versie, [rand.getPPLG(), otherPplg]);
4494
- 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 })));
4495
4510
  }
4496
4511
  loadSignaleringsbeelden({ dtos, storeState }) {
4497
- 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 })));
4498
4513
  }
4499
- processSvgsAndUpdateRitdelen({ svgDataUrls, ritDelen, dtos }) {
4514
+ processSvgsAndUpdateRitdelen({ svgDataUrls, storeState, dtos }) {
4500
4515
  this.verwerkSvgs(svgDataUrls);
4501
- const nieuweRitdelen = this.updateRitdelen(ritDelen, dtos);
4516
+ const nieuweRitdelen = this.updateRitdelen(storeState.ritDelen, dtos);
4502
4517
  this.store.dispatch(UpdateVisibleSignaleringsbeeldInfoDtos(dtos));
4503
4518
  this.store.dispatch(updateRitDelen(nieuweRitdelen));
4504
4519
  }
@@ -4511,11 +4526,11 @@ class LaadSignaleringsbeeldenEffect {
4511
4526
  const visibleRitPplgs = visibleRitDelen.map(r => r.getPplg()).filter(this.distinct);
4512
4527
  const visibleDtos = this.bepaalZichtbareDtos(visibleRitPplgs, storeDtos);
4513
4528
  const loadingDtos = this.bepaalToLoadDtos(visibleDtos, ritDelen, visibleRitDelen, visibleRitPplgs, storeState);
4514
- this.editorService.laadSignaleringsbeelden(storeState.iaVersie.versie, loadingDtos).pipe(tap(svgDataUrls => {
4529
+ this.editorService.laadSignaleringsbeelden(actie.iaversieinfo.versie, loadingDtos).pipe(tap(svgDataUrls => {
4515
4530
  this.verwerkSvgs(svgDataUrls);
4516
4531
  this.updateState(ritDelen, visibleDtos, storeState, visibleRitPplgs, loadingDtos, isInit, storeDtos);
4517
4532
  }), catchError(err => {
4518
- this.messagesService.showMessage(MessageBuilder.rwpDataNietGevonden(Utils.getValidErorrMessage(err)));
4533
+ this.messagesSerivce.showMessage(MessageBuilder.rwpDataNietGevonden(Utils.getValidErorrMessage(err)));
4519
4534
  throw err;
4520
4535
  })).subscribe();
4521
4536
  }
@@ -4530,6 +4545,10 @@ class LaadSignaleringsbeeldenEffect {
4530
4545
  this.store.dispatch(updateRitDelen(nieuweRitdelen));
4531
4546
  }, 0);
4532
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
+ }
4533
4552
  verwerkSvgs(svgDataUrls) {
4534
4553
  this.store.dispatch(SetSvgInfos(this.bepaalSvgInfos(svgDataUrls)));
4535
4554
  }
@@ -4556,7 +4575,7 @@ class LaadSignaleringsbeeldenEffect {
4556
4575
  bepaalZichtbareDtos(visibleRitPplgs, dtos) {
4557
4576
  const visibleDtos = [];
4558
4577
  visibleRitPplgs.forEach(pplg => {
4559
- dtos.filter(dto => dto.pplgs?.includes(pplg)).forEach(dto => {
4578
+ dtos.filter(dto => dto.pplgs.includes(pplg)).forEach(dto => {
4560
4579
  if (!visibleDtos.includes(dto)) {
4561
4580
  visibleDtos.push(dto);
4562
4581
  }
@@ -4566,13 +4585,13 @@ class LaadSignaleringsbeeldenEffect {
4566
4585
  dtos.filter(d => !visibleDtos.includes(d)).forEach(d => d.metVisualisatie = false);
4567
4586
  return visibleDtos;
4568
4587
  }
4569
- distinct(value, index, values) {
4570
- return values.indexOf(value) === index;
4588
+ distinct(value, index, self) {
4589
+ return self.indexOf(value) === index;
4571
4590
  }
4572
4591
  addPrevNonVisibleDto(firstIdx, ritdelen, loadingDtos, visibleRitPplgs, allDtos) {
4573
4592
  if (firstIdx >= 0) {
4574
4593
  const pplg = ritdelen[firstIdx].getPplg();
4575
- 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));
4576
4595
  if (!visibleRitPplgs.includes(pplg) && ritdeelDtos.length > 0) {
4577
4596
  ritdeelDtos.filter(d => !loadingDtos.includes(d)).forEach(d => {
4578
4597
  d.metVisualisatie = false;
@@ -4587,7 +4606,7 @@ class LaadSignaleringsbeeldenEffect {
4587
4606
  addNextNonVisibleDto(lastIdx, ritdelen, loadingDtos, visibleRitPplgs, allDtos) {
4588
4607
  if (lastIdx <= ritdelen.length - 1) {
4589
4608
  const pplg = ritdelen[lastIdx].getPplg();
4590
- 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));
4591
4610
  if (!visibleRitPplgs.includes(pplg) && ritdeelDtos.length > 0) {
4592
4611
  ritdeelDtos.filter(d => !loadingDtos.includes(d)).forEach(d => {
4593
4612
  d.metVisualisatie = false;
@@ -4656,7 +4675,7 @@ class LaadSignaleringsbeeldenEffect {
4656
4675
  }
4657
4676
  }
4658
4677
  }
4659
- this.updateZichtbaarheidAangrenzendeRitdelen(min, max, ritdelen, visibleDtos);
4678
+ this.updateZichtbaarheidAangrezendeRitdelen(min, max, ritdelen, visibleDtos);
4660
4679
  return this.updateZichtbaarheidBuitenWindow(ritdelen, visibleDtos);
4661
4680
  }
4662
4681
  updateZichtbaarheidBuitenWindow(nieuweRitdelen, visibleDtos) {
@@ -4672,7 +4691,7 @@ class LaadSignaleringsbeeldenEffect {
4672
4691
  }
4673
4692
  return nieuweRitdelen;
4674
4693
  }
4675
- updateZichtbaarheidAangrenzendeRitdelen(min, max, nieuweRitdelen, visibleDtos) {
4694
+ updateZichtbaarheidAangrezendeRitdelen(min, max, nieuweRitdelen, visibleDtos) {
4676
4695
  let i = min - 1;
4677
4696
  while (i >= 0) {
4678
4697
  i = this.updateZichtbaarHeid(i, 0, visibleDtos, nieuweRitdelen) - 1;
@@ -4708,11 +4727,9 @@ class LaadSignaleringsbeeldenEffect {
4708
4727
  }
4709
4728
  bevatGevisualiseerdePplg(visibleDtos, pplg) {
4710
4729
  for (const dto of visibleDtos) {
4711
- if (dto.pplgs) {
4712
- for (const dtopplg of dto.pplgs) {
4713
- if (dtopplg === pplg) {
4714
- return true;
4715
- }
4730
+ for (const dtopplg of dto.pplgs) {
4731
+ if (dtopplg === pplg) {
4732
+ return true;
4716
4733
  }
4717
4734
  }
4718
4735
  }
@@ -4762,7 +4779,7 @@ class LaadSignaleringsbeeldenEffect {
4762
4779
  pplgsWindow.push(itemPplg);
4763
4780
  }
4764
4781
  const pplgDtos = [];
4765
- dtos.filter(dto => dto.pplgs?.includes(itemPplg)).forEach(dto => {
4782
+ dtos.filter(dto => dto.pplgs.includes(itemPplg)).forEach(dto => {
4766
4783
  if (!pplgDtos.includes(dto)) {
4767
4784
  pplgDtos.push(dto);
4768
4785
  }
@@ -4809,11 +4826,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
4809
4826
  }], ctorParameters: () => [{ type: i1$2.Actions }, { type: i2$1.Store }, { type: BewegingVerrijkerService }] });
4810
4827
 
4811
4828
  class RitdelenEffect {
4812
- constructor(actions$, store, sbmService, editorService) {
4829
+ constructor(actions$, store, sbmService, rijwegPlanEditorService) {
4813
4830
  this.actions$ = actions$;
4814
4831
  this.store = store;
4815
4832
  this.sbmService = sbmService;
4816
- this.editorService = editorService;
4833
+ this.rijwegPlanEditorService = rijwegPlanEditorService;
4817
4834
  this.updateRitDelen$ = createEffect(() => this.actions$.pipe(ofType(updateRitDelen), withLatestFrom(this.store), map(([actie, _storeState]) => {
4818
4835
  const nieuweRitDelen = actie.ritDelen.map(ritDeel => ritDeel.isZichtbaar() ?
4819
4836
  ritDeel.copyMetAlternatieveRoutes(this.sbmService.bepaalAlternativeRoutes(ritDeel.getRijweg())) : ritDeel);
@@ -4831,25 +4848,25 @@ class RitdelenEffect {
4831
4848
  return setRitdelenAfterUpdate(ritDelen);
4832
4849
  })));
4833
4850
  this.ritdeelInvoegen$ = createEffect(() => this.actions$.pipe(ofType(ritdeelInvoegen), withLatestFrom(this.store), map(([actie, storeState]) => {
4834
- const ritDelen = this.ritdeelInvoegenFunc(storeState.ritDelen, actie.nieuweRoute);
4851
+ const ritDelen = this.ritdeelInvoegenFunc(storeState.ritDelen, actie.nieuweRoute, this.rijwegPlanEditorService, this.sbmService);
4835
4852
  return setRitdelenAfterUpdate(ritDelen);
4836
4853
  })));
4837
4854
  }
4838
- ritdeelInvoegenFunc(ritDelen, nieuweRoute) {
4855
+ ritdeelInvoegenFunc(ritDelen, nieuweRoute, rijwegPlanEditorService, sbmService) {
4839
4856
  const origineelRitdeel = nieuweRoute.beginSeinOpRitdeel.ritdeel;
4840
4857
  const beginSein = nieuweRoute.beginSeinOpRitdeel.sein;
4841
- const rijwegplan = this.editorService.getRijwegplan(beginSein.getPPLG());
4858
+ const rijwegplan = rijwegPlanEditorService.getRijwegplan(beginSein.getPPLG());
4842
4859
  const dwangen = JsJavaUtil.listToArray(rijwegplan.getOnderliggendeDwangenTotEnVanSein(origineelRitdeel.getDwang(), beginSein));
4843
4860
  const isSamengesteldeRoute = dwangen[0] && dwangen[1];
4844
4861
  let newRitdeel1 = origineelRitdeel;
4845
4862
  if (isSamengesteldeRoute) {
4846
- newRitdeel1 = this.verwerkSamengesteldeRoute(origineelRitdeel, rijwegplan, dwangen, ritDelen);
4863
+ newRitdeel1 = this.verwerkSamengesteldeRoute(origineelRitdeel, rijwegplan, dwangen, sbmService, ritDelen);
4847
4864
  }
4848
- if (nieuweRoute.combinatieVoorEindsein?.isVrijeBaanRijweg()) {
4849
- this.extendRitdeelMetVrijebaanInfo(newRitdeel1, nieuweRoute);
4865
+ if (nieuweRoute.combinatieVoorEindsein.isVrijeBaanRijweg()) {
4866
+ this.extendRitdeelMetVrijebaanInfo(newRitdeel1, nieuweRoute, sbmService);
4850
4867
  }
4851
4868
  else {
4852
- this.maakNieuwRitdeel(newRitdeel1, nieuweRoute, ritDelen);
4869
+ this.maakNieuwRitdeel(newRitdeel1, nieuweRoute, sbmService, ritDelen);
4853
4870
  }
4854
4871
  if (isSamengesteldeRoute) {
4855
4872
  ritDelen.splice(ritDelen.indexOf(origineelRitdeel), 1);
@@ -4864,39 +4881,38 @@ class RitdelenEffect {
4864
4881
  }
4865
4882
  }
4866
4883
  }
4867
- verwerkSamengesteldeRoute(origineelRitdeel, rijwegplan, dwangen, ritDelen) {
4884
+ verwerkSamengesteldeRoute(origineelRitdeel, rijwegplan, dwangen, sbmService, ritDelen) {
4868
4885
  // dwangen in 2 nieuwe ritdelen verwerken voor de knip
4869
4886
  const nieuweRijweg1 = rijwegplan.getRijwegVoorSeinen(dwangen[0].getRoute().getBeginSein(), dwangen[0].getRoute().getEindSein());
4870
4887
  const dwangInfo1 = new RijwegplanRijwegDwangCombinatie(rijwegplan, nieuweRijweg1, dwangen[0]);
4871
- const newRitdeel1 = new Ritdeel(dwangInfo1, [], undefined, undefined, undefined, []);
4888
+ const newRitdeel1 = new Ritdeel(dwangInfo1, [], null, null, null, []);
4872
4889
  // remove vrijbaan info uit ritdeel
4873
- newRitdeel1.vrijebaanRijwegplanRijwegDwangCombi = undefined;
4874
- newRitdeel1.vervolgSpoor = undefined;
4875
- newRitdeel1.bepaalTopologieElementen(this.sbmService);
4890
+ newRitdeel1.vrijebaanRijwegplanRijwegDwangCombi = null;
4891
+ newRitdeel1.vervolgSpoor = null;
4892
+ newRitdeel1.bepaalTopologieElementen(sbmService);
4876
4893
  this.insertRitdeel(ritDelen, origineelRitdeel, newRitdeel1);
4877
4894
  const nieuweRijweg2 = rijwegplan.getRijwegVoorSeinen(dwangen[1].getRoute().getBeginSein(), dwangen[1].getRoute().getEindSein());
4878
4895
  const dwangInfo2 = new RijwegplanRijwegDwangCombinatie(rijwegplan, nieuweRijweg2, dwangen[1]);
4879
- const newRitdeel2 = new Ritdeel(dwangInfo2, [], undefined, undefined, undefined, []);
4880
- newRitdeel2.bepaalTopologieElementen(this.sbmService);
4896
+ const newRitdeel2 = new Ritdeel(dwangInfo2, [], null, null, null, []);
4897
+ newRitdeel2.bepaalTopologieElementen(sbmService);
4881
4898
  this.insertRitdeel(ritDelen, newRitdeel1, newRitdeel2);
4882
4899
  return newRitdeel1;
4883
4900
  }
4884
- extendRitdeelMetVrijebaanInfo(newRitdeel1, nieuweRoute) {
4901
+ extendRitdeelMetVrijebaanInfo(newRitdeel1, nieuweRoute, sbmService) {
4885
4902
  newRitdeel1.vrijebaanRijwegplanRijwegDwangCombi = nieuweRoute.combinatieVoorEindsein;
4886
- const vbrwp = nieuweRoute.combinatieVoorEindsein?.rijwegplan;
4887
- newRitdeel1.vervolgSpoor = nieuweRoute.combinatieVoorEindsein ?
4888
- vbrwp.getVervolgSpoor(nieuweRoute.combinatieVoorEindsein?.rijweg) : undefined;
4889
- newRitdeel1.bepaalTopologieElementen(this.sbmService);
4903
+ const vbrwp = nieuweRoute.combinatieVoorEindsein.rijwegplan;
4904
+ newRitdeel1.vervolgSpoor = vbrwp.getVervolgSpoor(nieuweRoute.combinatieVoorEindsein.rijweg);
4905
+ newRitdeel1.bepaalTopologieElementen(sbmService);
4890
4906
  }
4891
- maakNieuwRitdeel(newRitdeel1, nieuweRoute, ritDelen) {
4907
+ maakNieuwRitdeel(newRitdeel1, nieuweRoute, sbmService, ritDelen) {
4892
4908
  let newRitdeel = this.createRitdeel(nieuweRoute);
4893
- const altRoutes = this.sbmService.bepaalAlternativeRoutes(newRitdeel.getRijweg());
4909
+ const altRoutes = sbmService.bepaalAlternativeRoutes(newRitdeel.getRijweg());
4894
4910
  newRitdeel = newRitdeel.copyMetAlternatieveRoutes(altRoutes);
4895
- newRitdeel.bepaalTopologieElementen(this.sbmService);
4911
+ newRitdeel.bepaalTopologieElementen(sbmService);
4896
4912
  this.insertRitdeel(ritDelen, newRitdeel1, newRitdeel);
4897
4913
  }
4898
4914
  createRitdeel(nieuweRoute) {
4899
- return new Ritdeel(nieuweRoute.combinatieVoorEindsein, [], undefined, undefined, undefined, []);
4915
+ return new Ritdeel(nieuweRoute.combinatieVoorEindsein, [], null, null, null, []);
4900
4916
  }
4901
4917
  insertRitdeel(ritdelen, naRitdeelPositie, newRitdeel) {
4902
4918
  const idx = ritdelen.indexOf(naRitdeelPositie);
@@ -4947,24 +4963,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
4947
4963
  type: Injectable
4948
4964
  }], ctorParameters: () => [{ type: i1$2.Actions }, { type: i2$1.Store }, { type: SignaleringsBeeldManagerService }, { type: i4.SignaleringsbeeldSvgUtilityService }] });
4949
4965
 
4950
- class ProgressIndicator {
4951
- constructor(lowerText, upperText, iconClass) {
4952
- this.lowerText = '';
4953
- this.upperText = '';
4954
- this.iconClass = '';
4955
- this.lowerText = lowerText ?? this.lowerText;
4956
- this.upperText = upperText ?? this.upperText;
4957
- this.iconClass = iconClass ?? this.iconClass;
4958
- }
4959
- }
4960
-
4961
4966
  class NieuweRoute {
4962
4967
  constructor(beginSeinOpRitdeel, combinatieVoorEindsein) {
4963
4968
  this.beginSeinOpRitdeel = beginSeinOpRitdeel;
4964
4969
  this.combinatieVoorEindsein = combinatieVoorEindsein;
4965
4970
  }
4966
4971
  isValid() {
4967
- return !!this.combinatieVoorEindsein;
4972
+ return this.combinatieVoorEindsein !== null;
4968
4973
  }
4969
4974
  }
4970
4975
 
@@ -5030,7 +5035,7 @@ function addRitdeelActieFunc(ritDelen, { ritDeel, actie }) {
5030
5035
  const onIdsActionHandler = (action) => on(action, (_, { ids }) => ids);
5031
5036
  const createIdsReducer = (action) => createReducer([], onIdsActionHandler(action));
5032
5037
  const editableReducer = createReducer(true, on(setEditable, (_, { editable }) => editable));
5033
- const progressIndicatorReducer = createReducer({}, on(ShowProgress, () => ({ progressIndicator: new ProgressIndicator() })), on(ClearProgress, () => ({})));
5038
+ const progressIndicatorReducer = createReducer(undefined, on(ShowProgress, () => ({ progressIndicator: {} })), on(ClearProgress, () => undefined));
5034
5039
  const svgInfoReducer = createReducer([], on(SetSvgInfos, (_, { svgInfos }) => svgInfos));
5035
5040
  const debugReducer = createReducer(false, on(SetDebug, (_, { debug }) => debug));
5036
5041
  const ritSelectieIdsReducer = createIdsReducer(SetRitSelectieIds);
@@ -5056,10 +5061,12 @@ const ongeplandeActieReducer = createReducer(new ArrayMultimap(), on(SetOngeplan
5056
5061
  ongeplandeActie.puics.forEach(puic => ongeplandeActies.delete(puic, ongeplandeActie));
5057
5062
  return new ArrayMultimap(ongeplandeActies);
5058
5063
  }));
5059
- 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 }) => {
5060
5067
  ongeplandeActie.puics.filter(puic => !ids.includes(puic)).forEach(puic => ids.push(puic));
5061
5068
  return [...ids];
5062
- }), 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)));
5063
5070
  const gebrokenRitSelectieIdsReducer = createIdsReducer(SetGebrokenRitSelectieIds);
5064
5071
  const alternatievenSelectieIdsReducer = createIdsReducer(SetAlternatievenSelectieIds);
5065
5072
  const beginSeinSelectieIdsReducer = createIdsReducer(SetBeginSeinSelectieIds);
@@ -5068,15 +5075,16 @@ const alternatievenClickableIdsReducer = createIdsReducer(SetAlternatievenClicka
5068
5075
  const eindSeinenClickableIdsReducer = createIdsReducer(SetEindSeinenClickableIds);
5069
5076
  const connectorClickableIdsReducer = createIdsReducer(SetConnectorenClickableIds);
5070
5077
  const beginSeinRightClickableIdsReducer = createIdsReducer(SetBeginSeinRightClickableIds);
5071
- 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)));
5072
5079
  const signaleringsbeeldInfoDtosReducer = createReducer([], on(SetSignaleringsbeeldInfoDtos, (_, { dtos }) => dtos), on(UpdateSignaleringsbeeldInfoDtos, (_, { dtos }) => [...dtos]));
5073
5080
  const visibleSbInfoDtosReducer = createReducer([], on(SetVisibleSignaleringsbeeldInfoDtos, (_, { dtos }) => dtos), on(UpdateVisibleSignaleringsbeeldInfoDtos, (_, { dtos }) => [...dtos]));
5074
- 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() })));
5075
5082
  const algemeneRitInfoDtoReducer = createReducer({}, on(SetAlgemeneRitInfo, (_, { algemeneRitInfoDto }) => algemeneRitInfoDto));
5076
5083
  const ongeplandeActiesBepaaldReducer = createReducer(false, on(SetOngeplandeActiesBepaald, (_, { bepaald }) => bepaald));
5077
- const nieuweBewegingReducer = createReducer([], on(UpdateRit, (_, { bewegingen }) => bewegingen));
5078
- const baseUrlReducer = createReducer('', on(SetBaseUrl, (_, { baseUrl }) => baseUrl));
5079
- 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));
5080
5088
  const storeReducers = {
5081
5089
  ritDelen: ritdelenReducer,
5082
5090
  ritSelectieIds: ritSelectieIdsReducer,
@@ -5105,9 +5113,9 @@ const storeReducers = {
5105
5113
  nieuweBewegingen: nieuweBewegingReducer,
5106
5114
  baseUrl: baseUrlReducer,
5107
5115
  focusIds: focusIdsReducer,
5116
+ selectedRitdeelId: selectedRitdeelIdReducer
5108
5117
  };
5109
5118
 
5110
- // @ts-nocheck
5111
5119
  class ZoneUtil {
5112
5120
  constructor(ngZone) {
5113
5121
  this.ngZone = ngZone;
@@ -5170,7 +5178,6 @@ class MstViewerModule {
5170
5178
  constructor(service, zoneUtil) {
5171
5179
  this.service = service;
5172
5180
  // maak de EditorService toegankelijk voor GWT code
5173
- // @ts-ignore
5174
5181
  window['rpe'] = {
5175
5182
  EditorService: zoneUtil.proxy(service)
5176
5183
  };
@@ -5253,5 +5260,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
5253
5260
  * Generated bundle index. Do not edit.
5254
5261
  */
5255
5262
 
5256
- export { MeldingEvent, MstViewerModule, MstviewerComponent, STORE_CONFIG, SignaleringsbeeldInfoResource };
5263
+ export { MeldingEvent, MstViewerModule, MstviewerComponent, STORE_CONFIG, SignaleringsbeeldInfoDto, SignaleringsbeeldInfoResource };
5257
5264
  //# sourceMappingURL=loxia-mst-viewer.mjs.map