@loxia/mst-viewer 8.1.3-202511181116 → 8.1.3-202511191453

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 (26) hide show
  1. package/esm2022/lib/components/carousel-controls/carousel-controls.component.mjs +5 -6
  2. package/esm2022/lib/components/mstviewer/mstviewer.component.mjs +4 -4
  3. package/esm2022/lib/components/viewer-controls/viewer-controls.component.mjs +12 -13
  4. package/esm2022/lib/model/km-range.mjs +2 -2
  5. package/esm2022/lib/services/print-beweging.service.mjs +23 -20
  6. package/esm2022/lib/services/signalerings-beeld-manager.service.mjs +1 -1
  7. package/esm2022/lib/services/viewer-control.service.mjs +8 -6
  8. package/esm2022/lib/state/actions/actions.mjs +1 -2
  9. package/esm2022/lib/state/actions/ritdelen.actions.mjs +4 -4
  10. package/esm2022/lib/state/effect/focus-effect.mjs +2 -2
  11. package/esm2022/lib/state/effect/laad-route-files.effect.mjs +6 -6
  12. package/esm2022/lib/state/effect/laad-signaleringsbeelden.effect.mjs +2 -2
  13. package/esm2022/lib/util/actie-helper.mjs +6 -6
  14. package/esm2022/lib/util/utils.mjs +4 -1
  15. package/fesm2022/loxia-mst-viewer.mjs +63 -61
  16. package/fesm2022/loxia-mst-viewer.mjs.map +1 -1
  17. package/lib/components/carousel-controls/carousel-controls.component.d.ts +1 -3
  18. package/lib/components/viewer-controls/viewer-controls.component.d.ts +2 -3
  19. package/lib/model/km-range.d.ts +1 -1
  20. package/lib/services/print-beweging.service.d.ts +1 -3
  21. package/lib/services/signalerings-beeld-manager.service.d.ts +1 -1
  22. package/lib/services/viewer-control.service.d.ts +0 -2
  23. package/lib/state/actions/actions.d.ts +0 -1
  24. package/lib/state/actions/ritdelen.actions.d.ts +3 -7
  25. package/lib/state/effect/laad-route-files.effect.d.ts +2 -4
  26. package/package.json +1 -1
@@ -138,10 +138,10 @@ const DELETE_RITDEEL_ACTIE = '[mst] DeleteRitdeelActie';
138
138
  const ADD_RITDEEL_ACTIE = '[mst] AddRitdeelActie';
139
139
  const NAVIGEER = '[mst] Navigeer';
140
140
  const NAVIGEER_VANAF = '[mst] NavigeerVanaf';
141
- const setRitDelen = createAction(SET_RIT_DELEN, (ritDelen, paginationSize, iaversieinfo) => ({ ritDelen, paginationSize, iaversieinfo }));
141
+ const setRitDelen = createAction(SET_RIT_DELEN, (ritDelen, paginationSize) => ({ ritDelen, paginationSize }));
142
142
  const setRitdelenAfterUpdate = createAction(SET_RIT_DELEN_AFTER_UPDATE, (ritDelen) => ({ ritDelen }));
143
- const navigeer = createAction(NAVIGEER, (stapSize, paginationSize, iaversieinfo) => ({ stapSize, paginationSize, iaversieinfo }));
144
- const navigeerVanaf = createAction(NAVIGEER_VANAF, (paginationSize, iaversieinfo, ritdeel) => ({ paginationSize, iaversieinfo, ritdeel }));
143
+ const navigeer = createAction(NAVIGEER, (stapSize, paginationSize) => ({ stapSize, paginationSize }));
144
+ const navigeerVanaf = createAction(NAVIGEER_VANAF, (paginationSize, ritdeel) => ({ paginationSize, ritdeel }));
145
145
  const updateRitDelen = createAction(UPDATE_RIT_DELEN, (ritDelen) => ({ ritDelen }));
146
146
  const toggleRitdeelZichtbaar = createAction(TOGGLE_RITDEEL_ZICHTBAAR, (ritDeel) => ({ ritDeel }));
147
147
  const setRitdeelZichtbaar = createAction(SET_RITDEEL_ZICHTBAAR, (ritDeel, zichtbaar) => ({ ritDeel, zichtbaar }));
@@ -172,6 +172,7 @@ class CarouselControlsComponent {
172
172
  constructor(store) {
173
173
  this.store = store;
174
174
  this.paginationSize = 4;
175
+ this.sideNavOpen = false;
175
176
  this.ritdelen$ = this.store.select('ritDelen').pipe(filter(r => r?.length > 0));
176
177
  this.kanLinks$ = this.ritdelen$.pipe(map(r => this.kanLinksNavigeren(r)));
177
178
  this.kanRechts$ = this.ritdelen$.pipe(map(r => this.kanRechtsNavigeren(r)));
@@ -183,21 +184,19 @@ class CarouselControlsComponent {
183
184
  return ritDelen.length > this.paginationSize && !ritDelen[ritDelen.length - 1].isBinnenWindow();
184
185
  }
185
186
  navigeerNaarLinks(event) {
186
- this.store.dispatch(navigeer(event?.ctrlKey ? -1 : -(this.paginationSize - 1), this.paginationSize, this.iaversieinfo));
187
+ this.store.dispatch(navigeer(event?.ctrlKey ? -1 : -(this.paginationSize - 1), this.paginationSize));
187
188
  }
188
189
  navigeerNaarRechts(event) {
189
- this.store.dispatch(navigeer(event?.ctrlKey ? 1 : this.paginationSize - 1, this.paginationSize, this.iaversieinfo));
190
+ this.store.dispatch(navigeer(event?.ctrlKey ? 1 : this.paginationSize - 1, this.paginationSize));
190
191
  }
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 }); }
192
- 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" }] }); }
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" }] }); }
193
194
  }
194
195
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CarouselControlsComponent, decorators: [{
195
196
  type: Component,
196
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"] }]
197
198
  }], ctorParameters: () => [{ type: i2$1.Store }], propDecorators: { paginationSize: [{
198
199
  type: Input
199
- }], iaversieinfo: [{
200
- type: Input
201
200
  }], sideNavOpen: [{
202
201
  type: Input
203
202
  }] } });
@@ -247,7 +246,6 @@ const LAAD_EN_VERWERK_SIGNALERINGSBEELD_INFO = '[mst] laadEnVerwerkSignaleringsb
247
246
  const FOCUS_OP_RITDEEL = '[mst] focusOpRitdeel';
248
247
  const FOCUS_OP_IDS = '[mst] focusOpIds';
249
248
  const BEPAAL_SB_INFOS = '[mst] bepaalSbInfos';
250
- const SET_SELECTED_RITDEEL = '[mst] SetSelectedRitdeel';
251
249
  const setEditable = createAction(SET_EDITABLE, (editable) => ({ editable }));
252
250
  const SetRitSelectieIds = createAction(SET_RIT_SELECTIE_IDS, (ids) => ({ ids }));
253
251
  const SetGeplandeActies = createAction(SET_GEPLANDE_ACTIES, (geplandeActiesMap) => ({ geplandeActiesMap }));
@@ -685,6 +683,8 @@ class ViewerControlService {
685
683
  this.printing$ = new BehaviorSubject(false);
686
684
  this.sideNavOpen = false;
687
685
  this.sideNavOpen$ = new BehaviorSubject(this.sideNavOpen);
686
+ this.selectieInfos = [];
687
+ this.origineelTreinPad = {};
688
688
  this.subscriptions.add(combineLatest([
689
689
  store.select('ritSelectieIds'),
690
690
  store.select('actieOpRitSelectieIds'),
@@ -704,19 +704,18 @@ class ViewerControlService {
704
704
  selectie.push(new SelectieInfo(eind, 'zigzagNaar'));
705
705
  this.selectieInfos = selectie;
706
706
  }));
707
- this.subscriptions.add(store.select('ritDelen').subscribe(ritdelen => this.ritdelen = ritdelen));
708
707
  }
709
708
  toggleSideNavVisible() {
710
709
  this.sideNavOpen = !this.sideNavOpen;
711
710
  this.sideNavOpen$.next(this.sideNavOpen);
712
711
  }
713
712
  keurAlleActiesGoed(ongeplandeActies) {
714
- if (this.ritdelen) {
713
+ this.store.select('ritDelen').pipe(take(1), filter(ritdelen => !!ritdelen), tap(ritdelen => {
715
714
  this.store.dispatch(ShowProgress());
716
- const bewegingen = this.bewegingUtils.extractBewegingenUitRitdelen(this.ritdelen, this.origineelTreinPad.bewegingen);
717
- const alleActies = this.verzamelAlleActies(this.ritdelen, ongeplandeActies);
715
+ const bewegingen = this.bewegingUtils.extractBewegingenUitRitdelen(ritdelen, this.origineelTreinPad.bewegingen);
716
+ const alleActies = this.verzamelAlleActies(ritdelen, ongeplandeActies);
718
717
  this.store.dispatch(KeurAlleActiesGoed(this.getBewegingenZonderActies(bewegingen), alleActies));
719
- }
718
+ })).subscribe();
720
719
  }
721
720
  setValideRit(valideRit) {
722
721
  this.valideRit$.next(valideRit);
@@ -831,26 +830,28 @@ class PrintBewegingService {
831
830
  this.store = store;
832
831
  this.viewerControlService = viewerControlService;
833
832
  this.sbmService = sbmService;
834
- this.store.select(s => s.ritDelen).subscribe(ritdelen => this.ritdelen = ritdelen);
835
- }
836
- printBeweging(bewegingId, paginationSize, iaVersieInfo) {
837
- const gevondenRitdeel = this.ritdelen.filter(r => 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
- return Promise.reject(new Error('Geen beweging gevonden voor ' + bewegingId));
843
- }
844
- return new Promise((resolve) => {
845
- const ritdeel = gevondenRitdeel[0];
846
- if (ritdeel.isNietBeschikbaar()) {
847
- this.store.dispatch(navigeerVanaf(paginationSize, iaVersieInfo, ritdeel));
848
- this.store.dispatch(ShowProgress());
849
- setTimeout(() => this.focusOpBeweging(ritdeel, resolve), 1000);
850
- }
851
- else {
852
- this.focusOpBeweging(ritdeel, resolve);
853
- }
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 => 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();
854
855
  });
855
856
  }
856
857
  focusOpBeweging(ritdeel, resolve) {
@@ -943,7 +944,7 @@ class KmRange {
943
944
  if (result.length >= 1) {
944
945
  return result[0];
945
946
  }
946
- return null;
947
+ return undefined;
947
948
  }
948
949
  heeftOverlap(kilometrering1, kilometrering2) {
949
950
  const vanKilometrering = KmRange.getKilometrering(kilometrering1.getKmLint(), this.vanKilometreringen);
@@ -1019,6 +1020,9 @@ class Utils {
1019
1020
  if (errorMsg !== '') {
1020
1021
  return errorMsg;
1021
1022
  }
1023
+ else {
1024
+ return 'Er is een onbekende fout opgetreden';
1025
+ }
1022
1026
  }
1023
1027
  }
1024
1028
 
@@ -2638,7 +2642,7 @@ class ActieHelper {
2638
2642
  lint = kilometreringen[0].getKmLint();
2639
2643
  }
2640
2644
  else if (kilometreringen && first && !second) {
2641
- const km = KmRange.getKilometrering(lint ?? '', kilometreringen);
2645
+ const km = KmRange.getKilometrering(lint, kilometreringen);
2642
2646
  if (km) {
2643
2647
  second = km.getKmWaarde();
2644
2648
  }
@@ -2658,11 +2662,11 @@ class ActieHelper {
2658
2662
  if (!totKilometreringen && vanKilometreringen) {
2659
2663
  totKilometreringen = [new MstKilometrering(vanKilometreringen[0].getKmLint(), 100000)];
2660
2664
  }
2661
- if (vanKilometreringen[0] > totKilometreringen[0]) {
2665
+ if (vanKilometreringen && totKilometreringen && vanKilometreringen[0] > totKilometreringen[0]) {
2662
2666
  kmRanges.push(KmRange.rangeVoorStrekObject(e, this.addKm(vanKilometreringen, -1), this.addKm(totKilometreringen, 1)));
2663
2667
  }
2664
2668
  else {
2665
- kmRanges.push(KmRange.rangeVoorStrekObject(e, this.addKm(vanKilometreringen, 1), this.addKm(totKilometreringen, -1)));
2669
+ kmRanges.push(KmRange.rangeVoorStrekObject(e, this.addKm(vanKilometreringen ?? [], 1), this.addKm(totKilometreringen ?? [], -1)));
2666
2670
  }
2667
2671
  });
2668
2672
  }
@@ -2785,7 +2789,7 @@ class ActieHelper {
2785
2789
  verwerkTopoElementen(topoElementen) {
2786
2790
  const kmRanges = [];
2787
2791
  let topoElementenZonderKms = [];
2788
- let laatstePuntKms = null;
2792
+ let laatstePuntKms = undefined;
2789
2793
  topoElementen.forEach(elem => {
2790
2794
  const kms = JsJavaUtil.listToArray(elem.getKilometreringen());
2791
2795
  if (kms.length > 0) {
@@ -2799,7 +2803,7 @@ class ActieHelper {
2799
2803
  }
2800
2804
  });
2801
2805
  if (topoElementenZonderKms.length > 0 && laatstePuntKms) {
2802
- ActieHelper.corrigeerTopoElementenZonderKms(topoElementenZonderKms, laatstePuntKms, null, kmRanges);
2806
+ ActieHelper.corrigeerTopoElementenZonderKms(topoElementenZonderKms, laatstePuntKms, undefined, kmRanges);
2803
2807
  }
2804
2808
  return kmRanges;
2805
2809
  }
@@ -3245,7 +3249,6 @@ class ViewerControlsComponent {
3245
3249
  this.viewerControlsService = viewerControlsService;
3246
3250
  this.bewegingUtils = bewegingUtils;
3247
3251
  this.paginationSize = 4;
3248
- this.iaversieinfo = undefined;
3249
3252
  this.treinpad = undefined;
3250
3253
  this.goedgekeurd = new EventEmitter();
3251
3254
  this.printing$ = this.viewerControlsService.isPrinting$();
@@ -3263,24 +3266,23 @@ class ViewerControlsComponent {
3263
3266
  return this.editable && this.viewerControlsService.selectieInfos.length !== 0;
3264
3267
  }
3265
3268
  goedkeurenClick() {
3266
- const ritDelen = this.viewerControlsService.ritdelen;
3267
- if (ritDelen && this.treinpad) {
3268
- delete this.treinpad.aantalRitActies;
3269
- this.treinpad.bewegingen = this.bewegingUtils.extractBewegingenUitRitdelen(ritDelen, this.viewerControlsService.origineelTreinPad.bewegingen);
3270
- this.goedgekeurd.emit(this.treinpad);
3271
- this.viewerControlsService.setOrigineelTreinPad(this.treinpad);
3272
- }
3269
+ this.store.select('ritDelen').pipe(filter(ritdelen => !!ritdelen), tap(ritDelen => {
3270
+ if (this.treinpad) {
3271
+ delete this.treinpad.aantalRitActies;
3272
+ this.treinpad.bewegingen = this.bewegingUtils.extractBewegingenUitRitdelen(ritDelen, this.viewerControlsService.origineelTreinPad.bewegingen);
3273
+ this.goedgekeurd.emit(this.treinpad);
3274
+ this.viewerControlsService.setOrigineelTreinPad(this.treinpad);
3275
+ }
3276
+ })).subscribe();
3273
3277
  }
3274
3278
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ViewerControlsComponent, deps: [{ token: i2$1.Store }, { token: ViewerControlService }, { token: BewegingUtils }], target: i0.ɵɵFactoryTarget.Component }); }
3275
- 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" }] }); }
3279
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: ViewerControlsComponent, selector: "viewer-controls", inputs: { paginationSize: "paginationSize", treinpad: "treinpad", goedgekeurd: "goedgekeurd" }, usesOnChanges: true, ngImport: i0, template: "<button id=\"toonSideNavKnop\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm open-sidenav-button\"\n (click)=\"viewerControlsService.toggleSideNavVisible()\"\n [class.active]=\"viewerControlsService.sideNavOpen$ | async\"\n [hidden]=\"printing$ | async\">Ritdetails\n</button>\n<button *ngIf=\"showGoedkeuren()\"\n id=\"goedkeurenKnop\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm goedkeuren-button\"\n (click)=\"goedkeurenClick()\"\n [disabled]=\"(valideRit$ | async ) === false\"\n [hidden]=\"printing$ | async\">Goedkeuren\n</button>\n\n<carousel-controls [paginationSize]=\"paginationSize\"\n [sideNavOpen]=\"viewerControlsService.sideNavOpen$ | async\">\n</carousel-controls>\n", styles: [".open-sidenav-button.active{visibility:hidden}.open-sidenav-button,.goedkeuren-button{position:absolute;top:15px;z-index:600}.open-sidenav-button{left:15px}.goedkeuren-button{right:15px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CarouselControlsComponent, selector: "carousel-controls", inputs: ["paginationSize", "sideNavOpen"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
3276
3280
  }
3277
3281
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ViewerControlsComponent, decorators: [{
3278
3282
  type: Component,
3279
- 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"] }]
3283
+ args: [{ selector: 'viewer-controls', template: "<button id=\"toonSideNavKnop\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm open-sidenav-button\"\n (click)=\"viewerControlsService.toggleSideNavVisible()\"\n [class.active]=\"viewerControlsService.sideNavOpen$ | async\"\n [hidden]=\"printing$ | async\">Ritdetails\n</button>\n<button *ngIf=\"showGoedkeuren()\"\n id=\"goedkeurenKnop\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm goedkeuren-button\"\n (click)=\"goedkeurenClick()\"\n [disabled]=\"(valideRit$ | async ) === false\"\n [hidden]=\"printing$ | async\">Goedkeuren\n</button>\n\n<carousel-controls [paginationSize]=\"paginationSize\"\n [sideNavOpen]=\"viewerControlsService.sideNavOpen$ | async\">\n</carousel-controls>\n", styles: [".open-sidenav-button.active{visibility:hidden}.open-sidenav-button,.goedkeuren-button{position:absolute;top:15px;z-index:600}.open-sidenav-button{left:15px}.goedkeuren-button{right:15px}\n"] }]
3280
3284
  }], ctorParameters: () => [{ type: i2$1.Store }, { type: ViewerControlService }, { type: BewegingUtils }], propDecorators: { paginationSize: [{
3281
3285
  type: Input
3282
- }], iaversieinfo: [{
3283
- type: Input
3284
3286
  }], treinpad: [{
3285
3287
  type: Input
3286
3288
  }], goedgekeurd: [{
@@ -3706,17 +3708,17 @@ class MstviewerComponent {
3706
3708
  }
3707
3709
  }
3708
3710
  printFocusBeweging(bewegingId) {
3709
- return this.printBewegingService.printBeweging(bewegingId, this.paginationSize, this.iaversieinfo);
3711
+ return this.printBewegingService.printBeweging(bewegingId, this.paginationSize);
3710
3712
  }
3711
3713
  keurAlleActiesGoed() {
3712
3714
  this.viewerControlsService.keurAlleActiesGoed(this.ongeplandeActies);
3713
3715
  }
3714
3716
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MstviewerComponent, deps: [{ token: i2$1.Store }, { token: ViewerControlService }, { token: DebugService }, { token: PrintBewegingService }], target: i0.ɵɵFactoryTarget.Component }); }
3715
- 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" }] }); }
3717
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: MstviewerComponent, selector: "mst-viewer", inputs: { iaversieinfo: "iaversieinfo", treinpad: "treinpad", ongeplandeActies: "ongeplandeActies", paginationSize: "paginationSize", baseurl: "baseurl", debug: "debug", viewer: "viewer", useClickArea: "useClickArea" }, outputs: { goedgekeurd: "goedgekeurd" }, usesOnChanges: true, ngImport: i0, template: "<loxia-messages></loxia-messages>\n<loxia-overlay *ngIf=\"(progressIndicator$ | async)\">\n <loxia-progress-indicator id=\"progress-indicator\" [border]=\"false\" upperText=\"\">\n </loxia-progress-indicator>\n</loxia-overlay>\n\n<div style=\"position: relative\">\n <rpe-component [baseurl]=\"baseurl\" path=\"/mst/editor/editor.nocache.js\"></rpe-component>\n\n <svg-visualisatie [useClickArea]=\"useClickArea\" [nietGeplandeActies]=\"ongeplandeActies\"></svg-visualisatie>\n\n <nav [class.active]=\"(viewerControlsService.sideNavOpen$ | async) === false\" id=\"sidebar\">\n <div id=\"dismiss\">\n <em id=\"verbergSideNav\" class=\"fa fa-arrow-left\" (click)=\"viewerControlsService.toggleSideNavVisible()\">&times;</em>\n </div>\n <ritdelen-lijst *ngIf=\"!viewer\" (focusEmitter)=\"focusRitdeel($event)\" (keurAlleActiesGoed)=\"keurAlleActiesGoed()\"\n [nietGeplandeActies]=\"ongeplandeActies\"></ritdelen-lijst>\n <ritdelen-view *ngIf=\"viewer\" (focusEmitter)=\"focusRitdeel($event)\"></ritdelen-view>\n </nav>\n\n <viewer-controls [paginationSize]=\"paginationSize\"\n [treinpad]=\"treinpad\"\n [goedgekeurd]=\"goedgekeurd\"\n ></viewer-controls>\n\n</div>\n", styles: ["#sidebar{min-width:350px;max-width:475px;background:#fff;transition:all .3s;height:93vh;position:absolute;top:0;z-index:20}#sidebar.active{margin-left:-475px}#sidebar .sidebar-header{padding:20px;background:#6d7fcc}#dismiss{width:20px;height:20px;position:absolute;cursor:pointer;top:5px;right:0;color:#000;z-index:300}[hidden]{display:none}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: OverlayComponent, selector: "loxia-overlay" }, { kind: "component", type: ProgressIndicatorComponent, selector: "loxia-progress-indicator" }, { kind: "component", type: RpeComponent, selector: "rpe-component", inputs: ["baseurl", "path"] }, { kind: "component", type: RitdelenLijstComponent, selector: "ritdelen-lijst", inputs: ["nietGeplandeActies"], outputs: ["focusEmitter", "keurAlleActiesGoed"] }, { kind: "component", type: RitdelenViewComponent, selector: "ritdelen-view", outputs: ["focusEmitter"] }, { kind: "component", type: ViewerControlsComponent, selector: "viewer-controls", inputs: ["paginationSize", "treinpad", "goedgekeurd"] }, { kind: "component", type: SvgVisualisatieComponent, selector: "svg-visualisatie", inputs: ["nietGeplandeActies", "useClickArea"] }, { kind: "component", type: MessagesComponent, selector: "loxia-messages" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
3716
3718
  }
3717
3719
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MstviewerComponent, decorators: [{
3718
3720
  type: Component,
3719
- 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"] }]
3721
+ args: [{ selector: 'mst-viewer', template: "<loxia-messages></loxia-messages>\n<loxia-overlay *ngIf=\"(progressIndicator$ | async)\">\n <loxia-progress-indicator id=\"progress-indicator\" [border]=\"false\" upperText=\"\">\n </loxia-progress-indicator>\n</loxia-overlay>\n\n<div style=\"position: relative\">\n <rpe-component [baseurl]=\"baseurl\" path=\"/mst/editor/editor.nocache.js\"></rpe-component>\n\n <svg-visualisatie [useClickArea]=\"useClickArea\" [nietGeplandeActies]=\"ongeplandeActies\"></svg-visualisatie>\n\n <nav [class.active]=\"(viewerControlsService.sideNavOpen$ | async) === false\" id=\"sidebar\">\n <div id=\"dismiss\">\n <em id=\"verbergSideNav\" class=\"fa fa-arrow-left\" (click)=\"viewerControlsService.toggleSideNavVisible()\">&times;</em>\n </div>\n <ritdelen-lijst *ngIf=\"!viewer\" (focusEmitter)=\"focusRitdeel($event)\" (keurAlleActiesGoed)=\"keurAlleActiesGoed()\"\n [nietGeplandeActies]=\"ongeplandeActies\"></ritdelen-lijst>\n <ritdelen-view *ngIf=\"viewer\" (focusEmitter)=\"focusRitdeel($event)\"></ritdelen-view>\n </nav>\n\n <viewer-controls [paginationSize]=\"paginationSize\"\n [treinpad]=\"treinpad\"\n [goedgekeurd]=\"goedgekeurd\"\n ></viewer-controls>\n\n</div>\n", styles: ["#sidebar{min-width:350px;max-width:475px;background:#fff;transition:all .3s;height:93vh;position:absolute;top:0;z-index:20}#sidebar.active{margin-left:-475px}#sidebar .sidebar-header{padding:20px;background:#6d7fcc}#dismiss{width:20px;height:20px;position:absolute;cursor:pointer;top:5px;right:0;color:#000;z-index:300}[hidden]{display:none}\n"] }]
3720
3722
  }], ctorParameters: () => [{ type: i2$1.Store }, { type: ViewerControlService }, { type: DebugService }, { type: PrintBewegingService }], propDecorators: { iaversieinfo: [{
3721
3723
  type: Input,
3722
3724
  args: [{ required: true }]
@@ -4398,7 +4400,7 @@ class FocusEffect {
4398
4400
  const dwangPuics = this.getPuics(topoElementen);
4399
4401
  if (ritdeel.isNietBeschikbaar()) {
4400
4402
  this.store.dispatch(SetOngeplandeActiesBepaald(false));
4401
- this.store.dispatch(navigeerVanaf(actie.paginationSize, actie.iaVersieInfo, ritdeel));
4403
+ this.store.dispatch(navigeerVanaf(actie.paginationSize, ritdeel));
4402
4404
  }
4403
4405
  return focusOpIds(dwangPuics);
4404
4406
  })));
@@ -4420,13 +4422,13 @@ class LaadRouteFilesEffect {
4420
4422
  this.ritLezer = ritLezer;
4421
4423
  this.editorService = editorService;
4422
4424
  this.messagesService = messagesService;
4423
- this.authActions$ = createEffect(() => this.actions$.pipe(ofType(SetSignaleringsbeeldInfoDtos), map(action => this.laadRouteFiles(action))), { dispatch: false });
4425
+ this.authActions$ = createEffect(() => this.actions$.pipe(ofType(SetSignaleringsbeeldInfoDtos), withLatestFrom(this.store), map(([action, storeState]) => this.laadRouteFiles(action, storeState.iaVersie.versie))), { dispatch: false });
4424
4426
  }
4425
- laadRouteFiles(actie) {
4427
+ laadRouteFiles(actie, iaVersie) {
4426
4428
  const isReady = this.editorService.isReady();
4427
4429
  isReady.then(() => {
4428
4430
  const pplgs = this.bepaalSbDtoPplgs(actie.dtos);
4429
- const promise = this.editorService.laadRouteFiles(actie.iaversieinfo.versie, pplgs);
4431
+ const promise = this.editorService.laadRouteFiles(iaVersie, pplgs);
4430
4432
  promise.then(() => {
4431
4433
  this.updateRitdelen(actie);
4432
4434
  }, (err) => {
@@ -4440,7 +4442,7 @@ class LaadRouteFilesEffect {
4440
4442
  if (ritdelen.length === 0) {
4441
4443
  ritdelen = this.ritLezer.parseRit(actie.treinpad, actie.ritGewijzigdToegestaan);
4442
4444
  }
4443
- this.store.dispatch(setRitDelen(ritdelen, actie.paginationSize, actie.iaversieinfo));
4445
+ this.store.dispatch(setRitDelen(ritdelen, actie.paginationSize));
4444
4446
  this.store.dispatch(setEditable(actie.treinpad.ritStatus !== 'Definitief'));
4445
4447
  });
4446
4448
  }, 0);
@@ -4547,7 +4549,7 @@ class LaadSignaleringsbeeldenEffect {
4547
4549
  const visibleRitPplgs = visibleRitDelen.map(r => r.getPplg()).filter(this.distinct);
4548
4550
  const visibleDtos = this.bepaalZichtbareDtos(visibleRitPplgs, storeDtos);
4549
4551
  const loadingDtos = this.bepaalToLoadDtos(visibleDtos, ritDelen, visibleRitDelen, visibleRitPplgs, storeState);
4550
- this.editorService.laadSignaleringsbeelden(actie.iaversieinfo.versie, loadingDtos).pipe(tap(svgDataUrls => {
4552
+ this.editorService.laadSignaleringsbeelden(storeState.iaVersie.versie, loadingDtos).pipe(tap(svgDataUrls => {
4551
4553
  this.verwerkSvgs(svgDataUrls);
4552
4554
  this.updateState(ritDelen, visibleDtos, storeState, visibleRitPplgs, loadingDtos, isInit, storeDtos);
4553
4555
  }), catchError(err => {