@loxia/mst-viewer 8.1.3-202511211546 → 8.1.3-202511211601
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.
- package/esm2022/generated/openapi/api/sbController.service.mjs +17 -16
- package/esm2022/generated/openapi/api/sbController.serviceInterface.mjs +1 -1
- package/esm2022/generated/openapi/model/algemeneRitDto.mjs +1 -1
- package/esm2022/generated/openapi/model/models.mjs +1 -2
- package/esm2022/lib/atomic-components/message/message.component.mjs +3 -3
- package/esm2022/lib/atomic-components/progress-indicator/progress-indicator.entity.mjs +7 -4
- package/esm2022/lib/components/carousel-controls/carousel-controls.component.mjs +5 -6
- package/esm2022/lib/components/mstviewer/mstviewer.component.mjs +13 -7
- package/esm2022/lib/components/ritdelen-lijst/ritdelen-lijst.component.mjs +18 -12
- package/esm2022/lib/components/rpe/rpe.component.mjs +6 -2
- package/esm2022/lib/components/svg-visualisatie/svg-visualisatie.component.mjs +8 -7
- package/esm2022/lib/components/viewer-controls/viewer-controls.component.mjs +16 -13
- package/esm2022/lib/model/km-range.mjs +2 -2
- package/esm2022/lib/model/nieuwe-route.mjs +2 -2
- package/esm2022/lib/model/ritdeel.mjs +10 -10
- package/esm2022/lib/mst-viewer.module.mjs +6 -5
- package/esm2022/lib/resources/signaleringsbeeldinfo.resource.mjs +16 -12
- package/esm2022/lib/services/base-rest.service.mjs +3 -1
- package/esm2022/lib/services/beweging-utils.service.mjs +6 -6
- package/esm2022/lib/services/debug.service.mjs +3 -3
- package/esm2022/lib/services/editor.service.mjs +3 -1
- package/esm2022/lib/services/print-beweging.service.mjs +23 -20
- package/esm2022/lib/services/rit-lezer.service.mjs +4 -4
- package/esm2022/lib/services/signalerings-beeld-manager.service.mjs +1 -1
- package/esm2022/lib/services/viewer-control.service.mjs +8 -6
- package/esm2022/lib/state/actions/actions.mjs +2 -5
- package/esm2022/lib/state/actions/ritdelen.actions.mjs +4 -4
- package/esm2022/lib/state/effect/bepaal-ongeplande-acties.effect.mjs +8 -7
- package/esm2022/lib/state/effect/bepaal-sb-infos.effect.mjs +1 -1
- package/esm2022/lib/state/effect/beweging-invoegen.effect.mjs +1 -1
- package/esm2022/lib/state/effect/delete-ongeplande-actie.effect.mjs +1 -1
- package/esm2022/lib/state/effect/focus-effect.mjs +2 -2
- package/esm2022/lib/state/effect/laad-route-files.effect.mjs +8 -8
- package/esm2022/lib/state/effect/laad-signaleringsbeelden.effect.mjs +25 -27
- package/esm2022/lib/state/effect/ritdelen.effect.mjs +26 -25
- package/esm2022/lib/state/mst-editor-state.mjs +10 -13
- package/esm2022/lib/state/reducer/rit-delen.reducer.mjs +1 -1
- package/esm2022/lib/util/actie-helper.mjs +26 -22
- package/esm2022/lib/util/actie-popover-bepaler.mjs +2 -2
- package/esm2022/lib/util/logging-helper.mjs +31 -33
- package/esm2022/lib/util/multi-map.mjs +2 -3
- package/esm2022/lib/util/utils.mjs +5 -5
- package/esm2022/lib/util/zone-util.mjs +2 -1
- package/esm2022/src/generated/openapi/api/sbController.service.mjs +17 -16
- package/esm2022/src/generated/openapi/api/sbController.serviceInterface.mjs +1 -1
- package/esm2022/src/generated/openapi/model/algemeneRitDto.mjs +1 -1
- package/esm2022/src/generated/openapi/model/models.mjs +1 -2
- package/fesm2022/loxia-mst-viewer-src-generated-openapi.mjs +16 -27
- package/fesm2022/loxia-mst-viewer-src-generated-openapi.mjs.map +1 -1
- package/fesm2022/loxia-mst-viewer.mjs +387 -365
- package/fesm2022/loxia-mst-viewer.mjs.map +1 -1
- package/generated/openapi/api/sbController.service.d.ts +8 -8
- package/generated/openapi/api/sbController.serviceInterface.d.ts +3 -3
- package/generated/openapi/model/algemeneRitDto.d.ts +0 -8
- package/generated/openapi/model/models.d.ts +0 -1
- package/lib/atomic-components/message/message.component.d.ts +2 -2
- package/lib/atomic-components/progress-indicator/progress-indicator.entity.d.ts +1 -1
- package/lib/components/carousel-controls/carousel-controls.component.d.ts +1 -3
- package/lib/components/mstviewer/mstviewer.component.d.ts +2 -2
- package/lib/components/ritdelen-lijst/ritdelen-lijst.component.d.ts +2 -2
- package/lib/components/rpe/rpe.component.d.ts +1 -1
- package/lib/components/svg-visualisatie/svg-visualisatie.component.d.ts +1 -1
- package/lib/components/viewer-controls/viewer-controls.component.d.ts +3 -4
- package/lib/model/km-range.d.ts +1 -1
- package/lib/model/nieuwe-route.d.ts +2 -2
- package/lib/model/ritdeel.d.ts +11 -10
- package/lib/resources/signaleringsbeeldinfo.resource.d.ts +10 -15
- package/lib/services/editor.service.d.ts +2 -2
- package/lib/services/print-beweging.service.d.ts +4 -6
- package/lib/services/rit-lezer.service.d.ts +1 -1
- package/lib/services/signalerings-beeld-manager.service.d.ts +2 -2
- package/lib/services/viewer-control.service.d.ts +0 -2
- package/lib/state/actions/actions.d.ts +14 -21
- package/lib/state/actions/ritdelen.actions.d.ts +3 -7
- package/lib/state/effect/bepaal-ongeplande-acties.effect.d.ts +2 -1
- package/lib/state/effect/delete-ongeplande-actie.effect.d.ts +1 -1
- package/lib/state/effect/laad-route-files.effect.d.ts +4 -5
- package/lib/state/effect/laad-signaleringsbeelden.effect.d.ts +13 -13
- package/lib/state/effect/ritdelen.effect.d.ts +7 -6
- package/lib/state/mst-editor-state.d.ts +26 -90
- package/lib/util/actie-helper.d.ts +4 -4
- package/lib/util/logging-helper.d.ts +2 -1
- package/lib/util/utils.d.ts +0 -1
- package/package.json +1 -1
- package/src/generated/openapi/api/sbController.service.d.ts +8 -8
- package/src/generated/openapi/api/sbController.serviceInterface.d.ts +3 -3
- package/src/generated/openapi/model/algemeneRitDto.d.ts +0 -8
- package/src/generated/openapi/model/models.d.ts +0 -1
- package/esm2022/generated/openapi/model/signaleringsbeeldRequestDto.mjs +0 -13
- package/esm2022/src/generated/openapi/model/signaleringsbeeldRequestDto.mjs +0 -13
- package/generated/openapi/model/signaleringsbeeldRequestDto.d.ts +0 -16
- package/src/generated/openapi/model/signaleringsbeeldRequestDto.d.ts +0 -16
|
@@ -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, of, throwError } from 'rxjs';
|
|
15
|
-
import {
|
|
14
|
+
import { BehaviorSubject, from, Subscription, combineLatest, forkJoin, of, throwError } from 'rxjs';
|
|
15
|
+
import { filter, map, take, tap, catchError, withLatestFrom, switchMap } 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,
|
|
20
|
+
import { Resource, ResourceAction, ResourceParams, ResourceModel } from '@ngx-resource/core';
|
|
21
21
|
|
|
22
22
|
class Message {
|
|
23
23
|
constructor(severity, text, timeout = 0) {
|
|
@@ -41,7 +41,7 @@ class MessageComponent {
|
|
|
41
41
|
this.onClearMessage = new EventEmitter();
|
|
42
42
|
}
|
|
43
43
|
ngOnInit() {
|
|
44
|
-
if (this.message.timeout > 0) {
|
|
44
|
+
if (this.message && this.message.timeout > 0) {
|
|
45
45
|
setTimeout(() => {
|
|
46
46
|
this.closeMessage({ stopPropagation: () => null });
|
|
47
47
|
}, this.message.timeout);
|
|
@@ -53,7 +53,7 @@ class MessageComponent {
|
|
|
53
53
|
this.message = undefined;
|
|
54
54
|
}
|
|
55
55
|
get severity() {
|
|
56
|
-
return this.message
|
|
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,6 +124,83 @@ 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
|
+
|
|
127
204
|
const version = '8.1.3-SNAPSHOT';
|
|
128
205
|
|
|
129
206
|
const SET_EDITABLE = '[mst] SetEditable';
|
|
@@ -169,7 +246,6 @@ const LAAD_EN_VERWERK_SIGNALERINGSBEELD_INFO = '[mst] laadEnVerwerkSignaleringsb
|
|
|
169
246
|
const FOCUS_OP_RITDEEL = '[mst] focusOpRitdeel';
|
|
170
247
|
const FOCUS_OP_IDS = '[mst] focusOpIds';
|
|
171
248
|
const BEPAAL_SB_INFOS = '[mst] bepaalSbInfos';
|
|
172
|
-
const SET_SELECTED_RITDEEL = '[mst] SetSelectedRitdeel';
|
|
173
249
|
const setEditable = createAction(SET_EDITABLE, (editable) => ({ editable }));
|
|
174
250
|
const SetRitSelectieIds = createAction(SET_RIT_SELECTIE_IDS, (ids) => ({ ids }));
|
|
175
251
|
const SetGeplandeActies = createAction(SET_GEPLANDE_ACTIES, (geplandeActiesMap) => ({ geplandeActiesMap }));
|
|
@@ -213,7 +289,6 @@ const navigeerBuitenRit = createAction(NAVIGEER_BUITEN_RIT, (randPuic) => ({ ran
|
|
|
213
289
|
const focusOpRitdeel = createAction(FOCUS_OP_RITDEEL, (ritdeel, paginationSize, iaVersieInfo) => ({ ritdeel, paginationSize, iaVersieInfo }));
|
|
214
290
|
const focusOpIds = createAction(FOCUS_OP_IDS, (puics) => ({ puics }));
|
|
215
291
|
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 }));
|
|
217
292
|
// do not export return value
|
|
218
293
|
const mstActions = union({
|
|
219
294
|
setEditable,
|
|
@@ -251,89 +326,9 @@ const mstActions = union({
|
|
|
251
326
|
ClearProgress,
|
|
252
327
|
BewegingInvoegen,
|
|
253
328
|
KeurAlleActiesGoed,
|
|
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
|
|
329
|
+
UpdateRit
|
|
300
330
|
});
|
|
301
331
|
|
|
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
|
-
|
|
337
332
|
/**
|
|
338
333
|
* https://gist.github.com/jordanluyke/609a4fffb69d1ebafdadd313ee2ee804
|
|
339
334
|
*
|
|
@@ -397,7 +392,7 @@ class ArrayMultimap {
|
|
|
397
392
|
return Array.from(new Set(this._entries.map(entry => entry.key)));
|
|
398
393
|
}
|
|
399
394
|
values() {
|
|
400
|
-
return
|
|
395
|
+
return this._entries.reduce((acc, x) => acc.concat(x.value), []);
|
|
401
396
|
}
|
|
402
397
|
put(key, value) {
|
|
403
398
|
this._entries.push(new MultimapEntry(key, value));
|
|
@@ -503,6 +498,7 @@ class EditorService {
|
|
|
503
498
|
this.signaleringsBeeldManagerService = signaleringsBeeldManagerService;
|
|
504
499
|
this.initReadyPromise();
|
|
505
500
|
}
|
|
501
|
+
// Called from GWT only, can be removed when GWT is gone. any is used because it will be removed with GWT
|
|
506
502
|
setEditor(editor) {
|
|
507
503
|
this.editor = editor;
|
|
508
504
|
this.resolveReadyPromise();
|
|
@@ -510,6 +506,7 @@ class EditorService {
|
|
|
510
506
|
isReady() {
|
|
511
507
|
return this.promise;
|
|
512
508
|
}
|
|
509
|
+
// Called from GWT only, can be removed when GWT is gone
|
|
513
510
|
setSignaleringsBeeldManager(signaleringsBeeldManager) {
|
|
514
511
|
this.signaleringsBeeldManagerService.set(signaleringsBeeldManager);
|
|
515
512
|
}
|
|
@@ -555,7 +552,7 @@ class BewegingUtils {
|
|
|
555
552
|
const retval = [];
|
|
556
553
|
retval.length = ritDelen.length;
|
|
557
554
|
const origineleBewegingMap = this.bepaalOrigineleBewegingMap(origineleBewegingen);
|
|
558
|
-
let vorigeBeweging =
|
|
555
|
+
let vorigeBeweging = undefined;
|
|
559
556
|
for (let i = 0; i < ritDelen.length; i++) {
|
|
560
557
|
const ritdeel = ritDelen[i];
|
|
561
558
|
if (ritdeel.beweging) {
|
|
@@ -585,7 +582,7 @@ class BewegingUtils {
|
|
|
585
582
|
}
|
|
586
583
|
static bewegingenZijnGewijzigd(ritDelen, origineleBewegingen) {
|
|
587
584
|
const ritDelenArray = ritDelen
|
|
588
|
-
.filter(r => r.beweging)
|
|
585
|
+
.filter(r => r.beweging?.id)
|
|
589
586
|
.map(r => r.beweging.id)
|
|
590
587
|
.sort((a, b) => a - b);
|
|
591
588
|
const bewegingenIdArray = origineleBewegingen.map(b => b.id).sort((a, b) => a - b);
|
|
@@ -601,9 +598,9 @@ class BewegingUtils {
|
|
|
601
598
|
return stringToCheck.indexOf(match) !== -1;
|
|
602
599
|
}
|
|
603
600
|
static isGewijzigd(ritdeel, nieuwDwangNummer, origineleBewegingenMap) {
|
|
604
|
-
const dwangGewijzigd = ritdeel.beweging
|
|
601
|
+
const dwangGewijzigd = ritdeel.beweging?.dwangNummer !== nieuwDwangNummer;
|
|
605
602
|
let gewijzigd = false;
|
|
606
|
-
if (ritdeel.beweging
|
|
603
|
+
if (ritdeel.beweging?.wijzigStatus === this.NORMAAL) {
|
|
607
604
|
const origineleBewegingActies = origineleBewegingenMap.get(ritdeel.beweging.id);
|
|
608
605
|
const huidigeActies = this.createSortedActieIdList(ritdeel.acties);
|
|
609
606
|
gewijzigd = JSON.stringify(huidigeActies) !== JSON.stringify(origineleBewegingActies);
|
|
@@ -627,7 +624,7 @@ class BewegingUtils {
|
|
|
627
624
|
let naarSeinPplg;
|
|
628
625
|
let naarSpoor = newRitdeel.getNaarPrlSpoor();
|
|
629
626
|
if (eindSein.getTypeAlsString() === BewegingUtils.SEIN_TYPE_FICTIEF) {
|
|
630
|
-
if (newRitdeel.heeftVrijebaanInfo()) {
|
|
627
|
+
if (newRitdeel.heeftVrijebaanInfo() && newRitdeel.getVrijebaanRijweg()) {
|
|
631
628
|
const vbEindSein = newRitdeel.getVrijebaanRijweg().getEindSein();
|
|
632
629
|
naarSeinNaam = vbEindSein.getName();
|
|
633
630
|
naarSeinPplg = vbEindSein.getPPLG();
|
|
@@ -686,6 +683,8 @@ class ViewerControlService {
|
|
|
686
683
|
this.printing$ = new BehaviorSubject(false);
|
|
687
684
|
this.sideNavOpen = false;
|
|
688
685
|
this.sideNavOpen$ = new BehaviorSubject(this.sideNavOpen);
|
|
686
|
+
this.selectieInfos = [];
|
|
687
|
+
this.origineelTreinPad = {};
|
|
689
688
|
this.subscriptions.add(combineLatest([
|
|
690
689
|
store.select('ritSelectieIds'),
|
|
691
690
|
store.select('actieOpRitSelectieIds'),
|
|
@@ -705,19 +704,18 @@ class ViewerControlService {
|
|
|
705
704
|
selectie.push(new SelectieInfo(eind, 'zigzagNaar'));
|
|
706
705
|
this.selectieInfos = selectie;
|
|
707
706
|
}));
|
|
708
|
-
this.subscriptions.add(store.select('ritDelen').subscribe(ritdelen => this.ritdelen = ritdelen));
|
|
709
707
|
}
|
|
710
708
|
toggleSideNavVisible() {
|
|
711
709
|
this.sideNavOpen = !this.sideNavOpen;
|
|
712
710
|
this.sideNavOpen$.next(this.sideNavOpen);
|
|
713
711
|
}
|
|
714
712
|
keurAlleActiesGoed(ongeplandeActies) {
|
|
715
|
-
|
|
713
|
+
this.store.select('ritDelen').pipe(take(1), filter(ritdelen => !!ritdelen), tap(ritdelen => {
|
|
716
714
|
this.store.dispatch(ShowProgress());
|
|
717
|
-
const bewegingen = this.bewegingUtils.extractBewegingenUitRitdelen(
|
|
718
|
-
const alleActies = this.verzamelAlleActies(
|
|
715
|
+
const bewegingen = this.bewegingUtils.extractBewegingenUitRitdelen(ritdelen, this.origineelTreinPad.bewegingen);
|
|
716
|
+
const alleActies = this.verzamelAlleActies(ritdelen, ongeplandeActies);
|
|
719
717
|
this.store.dispatch(KeurAlleActiesGoed(this.getBewegingenZonderActies(bewegingen), alleActies));
|
|
720
|
-
}
|
|
718
|
+
})).subscribe();
|
|
721
719
|
}
|
|
722
720
|
setValideRit(valideRit) {
|
|
723
721
|
this.valideRit$.next(valideRit);
|
|
@@ -783,10 +781,10 @@ class DebugService {
|
|
|
783
781
|
setDebugFlag(debug) {
|
|
784
782
|
this.store.dispatch(SetDebug(debug));
|
|
785
783
|
if (debug) {
|
|
786
|
-
document.getElementById('svgContainer')
|
|
784
|
+
document.getElementById('svgContainer')?.addEventListener('mouseover', this.listener);
|
|
787
785
|
}
|
|
788
786
|
else {
|
|
789
|
-
document.getElementById('svgContainer')
|
|
787
|
+
document.getElementById('svgContainer')?.removeEventListener('mouseover', this.listener);
|
|
790
788
|
}
|
|
791
789
|
}
|
|
792
790
|
debugEventListener() {
|
|
@@ -832,26 +830,28 @@ class PrintBewegingService {
|
|
|
832
830
|
this.store = store;
|
|
833
831
|
this.viewerControlService = viewerControlService;
|
|
834
832
|
this.sbmService = sbmService;
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
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();
|
|
855
855
|
});
|
|
856
856
|
}
|
|
857
857
|
focusOpBeweging(ritdeel, resolve) {
|
|
@@ -886,8 +886,12 @@ 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
|
+
}
|
|
889
893
|
convertToScript() {
|
|
890
|
-
const element = this.script
|
|
894
|
+
const element = this.script?.nativeElement;
|
|
891
895
|
const script = document.createElement('script');
|
|
892
896
|
script.type = 'text/javascript';
|
|
893
897
|
if (this.baseurl && this.path) {
|
|
@@ -940,7 +944,7 @@ class KmRange {
|
|
|
940
944
|
if (result.length >= 1) {
|
|
941
945
|
return result[0];
|
|
942
946
|
}
|
|
943
|
-
return
|
|
947
|
+
return undefined;
|
|
944
948
|
}
|
|
945
949
|
heeftOverlap(kilometrering1, kilometrering2) {
|
|
946
950
|
const vanKilometrering = KmRange.getKilometrering(kilometrering1.getKmLint(), this.vanKilometreringen);
|
|
@@ -987,6 +991,41 @@ class MeldingBuilder {
|
|
|
987
991
|
}
|
|
988
992
|
}
|
|
989
993
|
|
|
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
|
+
|
|
990
1029
|
class MessageBuilder {
|
|
991
1030
|
static rwpDataNietGevonden(err) {
|
|
992
1031
|
return new Message(Severity.ERROR, 'Error bij ophalen van rijwegplan data: ' + err);
|
|
@@ -2126,16 +2165,25 @@ class SbControllerService {
|
|
|
2126
2165
|
}
|
|
2127
2166
|
return httpParams;
|
|
2128
2167
|
}
|
|
2129
|
-
getSignaleringsbeelden(
|
|
2130
|
-
if (
|
|
2131
|
-
throw new Error('Required parameter
|
|
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
|
+
});
|
|
2132
2180
|
}
|
|
2133
2181
|
let localVarHeaders = this.defaultHeaders;
|
|
2134
2182
|
let localVarHttpHeaderAcceptSelected = options && options.httpHeaderAccept;
|
|
2135
2183
|
if (localVarHttpHeaderAcceptSelected === undefined) {
|
|
2136
2184
|
// to determine the Accept header
|
|
2137
2185
|
const httpHeaderAccepts = [
|
|
2138
|
-
'
|
|
2186
|
+
'application/json'
|
|
2139
2187
|
];
|
|
2140
2188
|
localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
|
|
2141
2189
|
}
|
|
@@ -2150,14 +2198,6 @@ class SbControllerService {
|
|
|
2150
2198
|
if (localVarTransferCache === undefined) {
|
|
2151
2199
|
localVarTransferCache = true;
|
|
2152
2200
|
}
|
|
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
|
-
}
|
|
2161
2201
|
let responseType_ = 'json';
|
|
2162
2202
|
if (localVarHttpHeaderAcceptSelected) {
|
|
2163
2203
|
if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
|
|
@@ -2170,10 +2210,10 @@ class SbControllerService {
|
|
|
2170
2210
|
responseType_ = 'blob';
|
|
2171
2211
|
}
|
|
2172
2212
|
}
|
|
2173
|
-
let localVarPath = `/rest/
|
|
2174
|
-
return this.httpClient.request('
|
|
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}`, {
|
|
2175
2215
|
context: localVarHttpContext,
|
|
2176
|
-
|
|
2216
|
+
params: localVarQueryParameters,
|
|
2177
2217
|
responseType: responseType_,
|
|
2178
2218
|
withCredentials: this.configuration.withCredentials,
|
|
2179
2219
|
headers: localVarHeaders,
|
|
@@ -2299,18 +2339,6 @@ const APIS = [AppConfigControllerService, BewegingControllerService, Class0Build
|
|
|
2299
2339
|
* Do not edit the class manually.
|
|
2300
2340
|
*/
|
|
2301
2341
|
|
|
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
|
-
|
|
2314
2342
|
class ApiModule {
|
|
2315
2343
|
static forRoot(configurationFactory) {
|
|
2316
2344
|
return {
|
|
@@ -2372,38 +2400,35 @@ class LoggingHelper {
|
|
|
2372
2400
|
this.store = store;
|
|
2373
2401
|
}
|
|
2374
2402
|
maakLogDTO(melding, actie) {
|
|
2375
|
-
|
|
2376
|
-
|
|
2377
|
-
|
|
2378
|
-
|
|
2379
|
-
|
|
2380
|
-
|
|
2381
|
-
|
|
2382
|
-
|
|
2383
|
-
|
|
2384
|
-
|
|
2385
|
-
|
|
2386
|
-
|
|
2387
|
-
|
|
2388
|
-
|
|
2389
|
-
|
|
2390
|
-
|
|
2391
|
-
|
|
2392
|
-
|
|
2393
|
-
|
|
2394
|
-
|
|
2395
|
-
|
|
2396
|
-
|
|
2403
|
+
return combineLatest([
|
|
2404
|
+
this.store.select('algemeneRitInfoDto'),
|
|
2405
|
+
this.store.select('iaVersie')
|
|
2406
|
+
]).pipe(take(1), map(([algemeneRitInfoDto, iaVersie]) => {
|
|
2407
|
+
let actieDto = null;
|
|
2408
|
+
if (actie) {
|
|
2409
|
+
actieDto = {
|
|
2410
|
+
pplgNaam: actie.pplgNaam,
|
|
2411
|
+
ritActieTypeOmschrijving: actie.ritActieTypeOmschrijving,
|
|
2412
|
+
ritActieStatus: actie.ritActieStatus,
|
|
2413
|
+
bewegingId: actie.bewegingId,
|
|
2414
|
+
wisselType: actie.wisselType,
|
|
2415
|
+
wisselNaam: actie.wisselNaam,
|
|
2416
|
+
wisselKantCode: actie.wisselKantCode,
|
|
2417
|
+
vanKilometerlint: actie.vanKilometerlint,
|
|
2418
|
+
vanKilometrering: actie.vanKilometrering,
|
|
2419
|
+
totKilometerlint: actie.totKilometerlint,
|
|
2420
|
+
totKilometrering: actie.totKilometrering
|
|
2421
|
+
};
|
|
2422
|
+
}
|
|
2423
|
+
return {
|
|
2424
|
+
iaVersie: iaVersie.versie,
|
|
2425
|
+
meldingLevel: melding.meldingLevel,
|
|
2426
|
+
meldingMessage: melding.meldingMessage,
|
|
2427
|
+
actieDto,
|
|
2428
|
+
algemeneRitInfoDto,
|
|
2429
|
+
sbinfoDtos: this.getSbInfoDtos()
|
|
2397
2430
|
};
|
|
2398
|
-
}
|
|
2399
|
-
return {
|
|
2400
|
-
iaVersie,
|
|
2401
|
-
meldingLevel: melding.meldingLevel,
|
|
2402
|
-
meldingMessage: melding.meldingMessage,
|
|
2403
|
-
actieDto,
|
|
2404
|
-
algemeneRitInfoDto,
|
|
2405
|
-
sbinfoDtos: this.getSbInfoDtos()
|
|
2406
|
-
};
|
|
2431
|
+
}));
|
|
2407
2432
|
}
|
|
2408
2433
|
getSbInfoDtos() {
|
|
2409
2434
|
const sbInfoDtos = [];
|
|
@@ -2515,6 +2540,7 @@ class ActieHelper {
|
|
|
2515
2540
|
this.messagesService = messagesService;
|
|
2516
2541
|
this.store = store;
|
|
2517
2542
|
this.loggingHelper = loggingHelper;
|
|
2543
|
+
this.debug = false;
|
|
2518
2544
|
this.store.select('debug').subscribe(debug => this.debug = debug);
|
|
2519
2545
|
}
|
|
2520
2546
|
static getActieTopoElements(ritDeel, sbmService) {
|
|
@@ -2548,10 +2574,10 @@ class ActieHelper {
|
|
|
2548
2574
|
}
|
|
2549
2575
|
}
|
|
2550
2576
|
static actieComparator(actie1, actie2) {
|
|
2551
|
-
if (actie1.vanKilometrering !== actie2.vanKilometrering) {
|
|
2577
|
+
if (actie1.vanKilometrering && actie2.vanKilometrering && actie1.vanKilometrering !== actie2.vanKilometrering) {
|
|
2552
2578
|
return actie1.vanKilometrering > actie2.vanKilometrering ? 1 : -1;
|
|
2553
2579
|
}
|
|
2554
|
-
if (actie1.ritActieTypeOmschrijving !== actie2.ritActieTypeOmschrijving) {
|
|
2580
|
+
if (actie1.ritActieTypeOmschrijving && actie2.ritActieTypeOmschrijving && actie1.ritActieTypeOmschrijving !== actie2.ritActieTypeOmschrijving) {
|
|
2555
2581
|
return actie1.ritActieTypeOmschrijving > actie2.ritActieTypeOmschrijving ? 1 : -1;
|
|
2556
2582
|
}
|
|
2557
2583
|
if (actie1.wisselNaam !== actie2.wisselNaam) {
|
|
@@ -2591,9 +2617,9 @@ class ActieHelper {
|
|
|
2591
2617
|
// make sure the elems are sorted in ascending order
|
|
2592
2618
|
static sorteerTopoElementen(topoElems) {
|
|
2593
2619
|
const topoElementen = topoElems.slice();
|
|
2594
|
-
let lint =
|
|
2595
|
-
let first
|
|
2596
|
-
let second
|
|
2620
|
+
let lint = undefined;
|
|
2621
|
+
let first;
|
|
2622
|
+
let second;
|
|
2597
2623
|
for (const topoElement of topoElementen) {
|
|
2598
2624
|
let kilometreringen = null;
|
|
2599
2625
|
const kms = JsJavaUtil.listToArray(topoElement.getKilometreringen());
|
|
@@ -2625,11 +2651,11 @@ class ActieHelper {
|
|
|
2625
2651
|
if (!totKilometreringen && vanKilometreringen) {
|
|
2626
2652
|
totKilometreringen = [new MstKilometrering(vanKilometreringen[0].getKmLint(), 100000)];
|
|
2627
2653
|
}
|
|
2628
|
-
if (vanKilometreringen[0] > totKilometreringen[0]) {
|
|
2654
|
+
if (vanKilometreringen && totKilometreringen && vanKilometreringen[0] > totKilometreringen[0]) {
|
|
2629
2655
|
kmRanges.push(KmRange.rangeVoorStrekObject(e, this.addKm(vanKilometreringen, -1), this.addKm(totKilometreringen, 1)));
|
|
2630
2656
|
}
|
|
2631
2657
|
else {
|
|
2632
|
-
kmRanges.push(KmRange.rangeVoorStrekObject(e, this.addKm(vanKilometreringen, 1), this.addKm(totKilometreringen, -1)));
|
|
2658
|
+
kmRanges.push(KmRange.rangeVoorStrekObject(e, this.addKm(vanKilometreringen ?? [], 1), this.addKm(totKilometreringen ?? [], -1)));
|
|
2633
2659
|
}
|
|
2634
2660
|
});
|
|
2635
2661
|
}
|
|
@@ -2720,21 +2746,23 @@ class ActieHelper {
|
|
|
2720
2746
|
else {
|
|
2721
2747
|
const puics = [];
|
|
2722
2748
|
kmRanges.forEach(kmRange => {
|
|
2723
|
-
|
|
2724
|
-
|
|
2725
|
-
|
|
2726
|
-
|
|
2727
|
-
|
|
2728
|
-
|
|
2729
|
-
|
|
2730
|
-
|
|
2731
|
-
|
|
2749
|
+
if (actie.vanKilometrering && actie.vanKilometerlint && actie.totKilometrering && actie.totKilometerlint) {
|
|
2750
|
+
let vanKilometrering = new MstKilometrering(actie.vanKilometerlint, actie.vanKilometrering);
|
|
2751
|
+
let totKilometrering = new MstKilometrering(actie.totKilometerlint, actie.totKilometrering);
|
|
2752
|
+
if (actie.vanKilometrering > actie.totKilometrering) {
|
|
2753
|
+
const temp = { van: vanKilometrering, tot: totKilometrering };
|
|
2754
|
+
vanKilometrering = temp.tot;
|
|
2755
|
+
totKilometrering = temp.van;
|
|
2756
|
+
}
|
|
2757
|
+
if (kmRange.heeftOverlap(vanKilometrering, totKilometrering)) {
|
|
2758
|
+
puics.push(kmRange.topologyElement.getPuic());
|
|
2759
|
+
}
|
|
2732
2760
|
}
|
|
2733
2761
|
});
|
|
2734
2762
|
if (puics.length === 0) {
|
|
2735
2763
|
actieZonderElementen.push(actie.id);
|
|
2736
2764
|
const melding = MeldingBuilder.actieHighlightError(actieZonderElementen);
|
|
2737
|
-
|
|
2765
|
+
this.loggingHelper.maakLogDTO(melding, actie).pipe(tap(dto => logMeldingDTOs.push(dto))).subscribe();
|
|
2738
2766
|
}
|
|
2739
2767
|
retval.putAll(actie, puics);
|
|
2740
2768
|
}
|
|
@@ -2750,7 +2778,7 @@ class ActieHelper {
|
|
|
2750
2778
|
verwerkTopoElementen(topoElementen) {
|
|
2751
2779
|
const kmRanges = [];
|
|
2752
2780
|
let topoElementenZonderKms = [];
|
|
2753
|
-
let laatstePuntKms =
|
|
2781
|
+
let laatstePuntKms = undefined;
|
|
2754
2782
|
topoElementen.forEach(elem => {
|
|
2755
2783
|
const kms = JsJavaUtil.listToArray(elem.getKilometreringen());
|
|
2756
2784
|
if (kms.length > 0) {
|
|
@@ -2764,7 +2792,7 @@ class ActieHelper {
|
|
|
2764
2792
|
}
|
|
2765
2793
|
});
|
|
2766
2794
|
if (topoElementenZonderKms.length > 0 && laatstePuntKms) {
|
|
2767
|
-
ActieHelper.corrigeerTopoElementenZonderKms(topoElementenZonderKms, laatstePuntKms,
|
|
2795
|
+
ActieHelper.corrigeerTopoElementenZonderKms(topoElementenZonderKms, laatstePuntKms, undefined, kmRanges);
|
|
2768
2796
|
}
|
|
2769
2797
|
return kmRanges;
|
|
2770
2798
|
}
|
|
@@ -2827,14 +2855,14 @@ class ActieHelper {
|
|
|
2827
2855
|
if (ActieHelper.isKantCodeLinks(kantcode)) {
|
|
2828
2856
|
return wissel.getLeft();
|
|
2829
2857
|
}
|
|
2830
|
-
return
|
|
2858
|
+
return undefined;
|
|
2831
2859
|
}
|
|
2832
2860
|
bepaalPuicVoorWisselSlijpenActie(actie) {
|
|
2833
2861
|
const storingsSymboolPuic = this.sbmService.getSBWissel(actie.wisselNaam, actie.pplgNaam)?.getStoringSymboolPuic();
|
|
2834
2862
|
if (!storingsSymboolPuic && this.debug) {
|
|
2835
2863
|
const melding = MeldingBuilder.actieHighlightError([actie.id]);
|
|
2836
2864
|
this.messagesService.showMessage(MessageBuilder.actieHighlightError([actie.id]));
|
|
2837
|
-
this.
|
|
2865
|
+
this.loggingHelper.maakLogDTO(melding, actie).pipe(tap(logDto => this.mstLogResource.logMessages([logDto]))).subscribe();
|
|
2838
2866
|
}
|
|
2839
2867
|
return storingsSymboolPuic ? [storingsSymboolPuic] : [];
|
|
2840
2868
|
}
|
|
@@ -2849,10 +2877,16 @@ class RitdelenLijstComponent {
|
|
|
2849
2877
|
constructor(store, sbmService) {
|
|
2850
2878
|
this.store = store;
|
|
2851
2879
|
this.sbmService = sbmService;
|
|
2880
|
+
this.nietGeplandeActies = [];
|
|
2852
2881
|
this.focusEmitter = new EventEmitter();
|
|
2853
2882
|
this.keurAlleActiesGoed = new EventEmitter();
|
|
2883
|
+
this.ritdeelViewModels = [];
|
|
2854
2884
|
this.selectedRitdeelActies = [];
|
|
2855
2885
|
this.selectedRitdeelOngeplandeActies = [];
|
|
2886
|
+
this.disableActieKnoppenVanRitdeel = true;
|
|
2887
|
+
this.editable = false;
|
|
2888
|
+
this.ongeplandeActiesMap = new ArrayMultimap();
|
|
2889
|
+
this.geplandeActies = new ArrayMultimap();
|
|
2856
2890
|
this.NG_ACTIE_PREFIX = '* ';
|
|
2857
2891
|
this.subscriptions = [];
|
|
2858
2892
|
this.subscriptions.push(store.select('ritDelen').subscribe((ritdelen) => {
|
|
@@ -2863,9 +2897,6 @@ class RitdelenLijstComponent {
|
|
|
2863
2897
|
this.subscriptions.push(store.select('ongeplandeActies').subscribe(acties => this.ongeplandeActiesMap = acties));
|
|
2864
2898
|
this.subscriptions.push(store.select('geplandeActies').subscribe(acties => this.geplandeActies = acties));
|
|
2865
2899
|
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));
|
|
2869
2900
|
this.subscriptions.push(combineLatest([
|
|
2870
2901
|
this.store.select('ritDelen'),
|
|
2871
2902
|
this.store.select('ongeplandeActies')
|
|
@@ -2902,12 +2933,14 @@ class RitdelenLijstComponent {
|
|
|
2902
2933
|
this.store.dispatch(deleteRitdeel(ritdeel));
|
|
2903
2934
|
}
|
|
2904
2935
|
deleteActiesUitRit() {
|
|
2905
|
-
this.selectedRitdeel
|
|
2936
|
+
this.selectedRitdeel?.acties.slice().forEach(actie => {
|
|
2906
2937
|
this.deleteActieUitRit(actie);
|
|
2907
2938
|
});
|
|
2908
2939
|
}
|
|
2909
2940
|
deleteActieUitRit(actie) {
|
|
2910
|
-
|
|
2941
|
+
if (!this.selectedRitdeel)
|
|
2942
|
+
return;
|
|
2943
|
+
const acties = this.selectedRitdeel.acties ?? [];
|
|
2911
2944
|
const idx = acties.indexOf(actie);
|
|
2912
2945
|
if (idx >= 0) {
|
|
2913
2946
|
this.verhuisActieNaarOngepland(actie);
|
|
@@ -2933,7 +2966,7 @@ class RitdelenLijstComponent {
|
|
|
2933
2966
|
}
|
|
2934
2967
|
voegActieToeAanRit(ongeplandeActie) {
|
|
2935
2968
|
const idx = this.selectedRitdeelOngeplandeActies.indexOf(ongeplandeActie);
|
|
2936
|
-
if (idx >= 0) {
|
|
2969
|
+
if (idx >= 0 && this.selectedRitdeel) {
|
|
2937
2970
|
this.store.dispatch(addRitdeelActie(this.selectedRitdeel, this.selectedRitdeelOngeplandeActies[idx].actie));
|
|
2938
2971
|
this.store.dispatch(AddGeplandeActie(ongeplandeActie.actie, ongeplandeActie.puics));
|
|
2939
2972
|
this.store.dispatch(DeleteOngeplandeActie(ongeplandeActie));
|
|
@@ -3035,13 +3068,13 @@ class RitdelenLijstComponent {
|
|
|
3035
3068
|
return `${prefix}${ActieHelper.getVSTActieOmschrijving(actie)}`;
|
|
3036
3069
|
}
|
|
3037
3070
|
bepaalPrefixVoorActieOmschrijving(actie) {
|
|
3038
|
-
const
|
|
3039
|
-
if (this.selectedRitdeel
|
|
3071
|
+
const noPrefix = '';
|
|
3072
|
+
if (this.selectedRitdeel?.acties.includes(actie)) {
|
|
3040
3073
|
// Afwijkende naam bij niet gevisualiseerde actie in rit
|
|
3041
3074
|
const puics = this.geplandeActies.get(actie);
|
|
3042
|
-
return puics.length > 0 ?
|
|
3075
|
+
return puics.length > 0 ? noPrefix : this.NG_ACTIE_PREFIX;
|
|
3043
3076
|
}
|
|
3044
|
-
return
|
|
3077
|
+
return noPrefix;
|
|
3045
3078
|
}
|
|
3046
3079
|
actieVanKmTekst(actie) {
|
|
3047
3080
|
if (ActieHelper.isWisselSlijpenActie(actie)) {
|
|
@@ -3062,6 +3095,7 @@ class RitdelenLijstComponent {
|
|
|
3062
3095
|
return ritdeel.getPplgString();
|
|
3063
3096
|
}
|
|
3064
3097
|
getKantCode(stand) {
|
|
3098
|
+
// @ts-ignore
|
|
3065
3099
|
if (stand === window['domein'].Stand.LINKS) {
|
|
3066
3100
|
return 'L';
|
|
3067
3101
|
}
|
|
@@ -3198,49 +3232,18 @@ class RitdeelViewModel {
|
|
|
3198
3232
|
}
|
|
3199
3233
|
}
|
|
3200
3234
|
|
|
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
|
-
|
|
3235
3235
|
class ViewerControlsComponent {
|
|
3236
3236
|
constructor(store, viewerControlsService, bewegingUtils) {
|
|
3237
3237
|
this.store = store;
|
|
3238
3238
|
this.viewerControlsService = viewerControlsService;
|
|
3239
3239
|
this.bewegingUtils = bewegingUtils;
|
|
3240
3240
|
this.paginationSize = 4;
|
|
3241
|
+
this.treinpad = undefined;
|
|
3242
|
+
this.goedgekeurd = new EventEmitter();
|
|
3241
3243
|
this.printing$ = this.viewerControlsService.isPrinting$();
|
|
3242
3244
|
this.valideRit$ = this.viewerControlsService.isValideRit$();
|
|
3243
3245
|
this.subscriptions = new Subscription();
|
|
3246
|
+
this.editable = false;
|
|
3244
3247
|
this.subscriptions.add(this.store.select('editable').subscribe(editable => this.editable = editable));
|
|
3245
3248
|
}
|
|
3246
3249
|
ngOnChanges({ treinpad }) {
|
|
@@ -3252,24 +3255,23 @@ class ViewerControlsComponent {
|
|
|
3252
3255
|
return this.editable && this.viewerControlsService.selectieInfos.length !== 0;
|
|
3253
3256
|
}
|
|
3254
3257
|
goedkeurenClick() {
|
|
3255
|
-
|
|
3256
|
-
|
|
3257
|
-
|
|
3258
|
-
|
|
3259
|
-
|
|
3260
|
-
|
|
3261
|
-
|
|
3258
|
+
this.store.select('ritDelen').pipe(filter(ritdelen => !!ritdelen), tap(ritDelen => {
|
|
3259
|
+
if (this.treinpad) {
|
|
3260
|
+
delete this.treinpad.aantalRitActies;
|
|
3261
|
+
this.treinpad.bewegingen = this.bewegingUtils.extractBewegingenUitRitdelen(ritDelen, this.viewerControlsService.origineelTreinPad.bewegingen);
|
|
3262
|
+
this.goedgekeurd.emit(this.treinpad);
|
|
3263
|
+
this.viewerControlsService.setOrigineelTreinPad(this.treinpad);
|
|
3264
|
+
}
|
|
3265
|
+
})).subscribe();
|
|
3262
3266
|
}
|
|
3263
3267
|
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 }); }
|
|
3264
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: ViewerControlsComponent, selector: "viewer-controls", inputs: { paginationSize: "paginationSize",
|
|
3268
|
+
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" }] }); }
|
|
3265
3269
|
}
|
|
3266
3270
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ViewerControlsComponent, decorators: [{
|
|
3267
3271
|
type: Component,
|
|
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 [
|
|
3272
|
+
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"] }]
|
|
3269
3273
|
}], ctorParameters: () => [{ type: i2$1.Store }, { type: ViewerControlService }, { type: BewegingUtils }], propDecorators: { paginationSize: [{
|
|
3270
3274
|
type: Input
|
|
3271
|
-
}], iaversieinfo: [{
|
|
3272
|
-
type: Input
|
|
3273
3275
|
}], treinpad: [{
|
|
3274
3276
|
type: Input
|
|
3275
3277
|
}], goedgekeurd: [{
|
|
@@ -3324,7 +3326,7 @@ class ActiePopoverBepaler {
|
|
|
3324
3326
|
ongeplandeActies.entries.forEach(entry => {
|
|
3325
3327
|
const treinNummerActieInfos = puicNaarOngeplandeActieMap.get(entry.key);
|
|
3326
3328
|
if (!treinNummerActieInfos?.map(({ actie }) => actie).includes(entry.value.actie)) {
|
|
3327
|
-
puicNaarOngeplandeActieMap.put(entry.key, {
|
|
3329
|
+
puicNaarOngeplandeActieMap.put(entry.key, { actie: entry.value.actie });
|
|
3328
3330
|
}
|
|
3329
3331
|
});
|
|
3330
3332
|
}
|
|
@@ -3384,12 +3386,15 @@ class SvgVisualisatieComponent {
|
|
|
3384
3386
|
this.actieHelper = actieHelper;
|
|
3385
3387
|
this.sbmService = sbmService;
|
|
3386
3388
|
this.editorService = editorService;
|
|
3389
|
+
this.nietGeplandeActies = [];
|
|
3390
|
+
this.useClickArea = false;
|
|
3387
3391
|
this.svgInfos$ = this.store.select('svgInfos');
|
|
3388
3392
|
this.popoverInfos = [];
|
|
3389
3393
|
this.clickableIds = [];
|
|
3390
3394
|
this.rightClickableIds = [];
|
|
3391
3395
|
this.contextMenuActions = [];
|
|
3392
3396
|
this.contextMenuStyle = { display: 'none' };
|
|
3397
|
+
this.editable = false;
|
|
3393
3398
|
this.puicNaarBeginSeinRitdeel = new Map();
|
|
3394
3399
|
this.puicNaarEindSeinCombinatie = new Map();
|
|
3395
3400
|
this.puicNaarAlternatieveRoute = new Map();
|
|
@@ -3413,7 +3418,7 @@ class SvgVisualisatieComponent {
|
|
|
3413
3418
|
}));
|
|
3414
3419
|
}
|
|
3415
3420
|
ngOnInit() {
|
|
3416
|
-
document.getElementById('contextMenu')
|
|
3421
|
+
document.getElementById('contextMenu')?.addEventListener('mouseleave', () => this.hideContextMenu());
|
|
3417
3422
|
}
|
|
3418
3423
|
ngOnDestroy() {
|
|
3419
3424
|
this.subscriptions.forEach(s => s.unsubscribe());
|
|
@@ -3440,7 +3445,6 @@ class SvgVisualisatieComponent {
|
|
|
3440
3445
|
this.store.dispatch(navigeerBuitenRit(puic));
|
|
3441
3446
|
}
|
|
3442
3447
|
}
|
|
3443
|
-
this.store.dispatch(SetSelectedRitdeel(undefined));
|
|
3444
3448
|
}
|
|
3445
3449
|
handleImxviewRightClick(evt) {
|
|
3446
3450
|
const fn = () => {
|
|
@@ -3471,7 +3475,7 @@ class SvgVisualisatieComponent {
|
|
|
3471
3475
|
handleNieuweRouteToegevoegd() {
|
|
3472
3476
|
this.store.select('nieuweRoute')
|
|
3473
3477
|
.subscribe((nieuweRoute) => {
|
|
3474
|
-
if (nieuweRoute
|
|
3478
|
+
if (nieuweRoute?.isValid()) {
|
|
3475
3479
|
this.store.dispatch(ResetNieuweRoute());
|
|
3476
3480
|
this.store.dispatch(ritdeelInvoegen(nieuweRoute));
|
|
3477
3481
|
}
|
|
@@ -3584,7 +3588,7 @@ class SvgVisualisatieComponent {
|
|
|
3584
3588
|
});
|
|
3585
3589
|
this.viewerControlsService.setValideRit(!gebrokenRit);
|
|
3586
3590
|
this.store.dispatch(SetGeplandeActies(actieOpRitSelectiePuics));
|
|
3587
|
-
const actieOpRitSelectiePuicsArray =
|
|
3591
|
+
const actieOpRitSelectiePuicsArray = Array.from(actieOpRitSelectiePuics.values()).flat();
|
|
3588
3592
|
this.store.dispatch(SetActieOpRitSelectieIds(actieOpRitSelectiePuicsArray));
|
|
3589
3593
|
ritSelectiePuics = ritSelectiePuics.filter(item => actieOpRitSelectiePuicsArray.indexOf(item) < 0); // make mutually exclusive
|
|
3590
3594
|
this.store.dispatch(SetRitSelectieIds(ritSelectiePuics));
|
|
@@ -3640,6 +3644,9 @@ class MstviewerComponent {
|
|
|
3640
3644
|
this.printBewegingService = printBewegingService;
|
|
3641
3645
|
this.paginationSize = 4;
|
|
3642
3646
|
this.baseurl = 'https://acceptatie.raildesign.nl';
|
|
3647
|
+
this.debug = false;
|
|
3648
|
+
this.viewer = false;
|
|
3649
|
+
this.useClickArea = false;
|
|
3643
3650
|
this.goedgekeurd = new EventEmitter();
|
|
3644
3651
|
this.subscriptions = new Subscription();
|
|
3645
3652
|
this.subscriptions.add(this.store.select('nieuweBewegingen').subscribe(nieuweRit => {
|
|
@@ -3690,23 +3697,26 @@ class MstviewerComponent {
|
|
|
3690
3697
|
}
|
|
3691
3698
|
}
|
|
3692
3699
|
printFocusBeweging(bewegingId) {
|
|
3693
|
-
return this.printBewegingService.printBeweging(bewegingId, this.paginationSize
|
|
3700
|
+
return this.printBewegingService.printBeweging(bewegingId, this.paginationSize);
|
|
3694
3701
|
}
|
|
3695
3702
|
keurAlleActiesGoed() {
|
|
3696
3703
|
this.viewerControlsService.keurAlleActiesGoed(this.ongeplandeActies);
|
|
3697
3704
|
}
|
|
3698
3705
|
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 }); }
|
|
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()\">×</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 [
|
|
3706
|
+
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()\">×</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" }] }); }
|
|
3700
3707
|
}
|
|
3701
3708
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MstviewerComponent, decorators: [{
|
|
3702
3709
|
type: Component,
|
|
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()\">×</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 [
|
|
3710
|
+
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()\">×</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"] }]
|
|
3704
3711
|
}], ctorParameters: () => [{ type: i2$1.Store }, { type: ViewerControlService }, { type: DebugService }, { type: PrintBewegingService }], propDecorators: { iaversieinfo: [{
|
|
3705
|
-
type: Input
|
|
3712
|
+
type: Input,
|
|
3713
|
+
args: [{ required: true }]
|
|
3706
3714
|
}], treinpad: [{
|
|
3707
|
-
type: Input
|
|
3715
|
+
type: Input,
|
|
3716
|
+
args: [{ required: true }]
|
|
3708
3717
|
}], ongeplandeActies: [{
|
|
3709
|
-
type: Input
|
|
3718
|
+
type: Input,
|
|
3719
|
+
args: [{ required: true }]
|
|
3710
3720
|
}], paginationSize: [{
|
|
3711
3721
|
type: Input
|
|
3712
3722
|
}], baseurl: [{
|
|
@@ -3722,24 +3732,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
3722
3732
|
}] } });
|
|
3723
3733
|
|
|
3724
3734
|
let SignaleringsbeeldInfoResource = class SignaleringsbeeldInfoResource extends Resource {
|
|
3725
|
-
constructor(restHandler, store) {
|
|
3735
|
+
constructor(restHandler, store, sbControllerService) {
|
|
3726
3736
|
super(restHandler);
|
|
3737
|
+
this.restHandler = restHandler;
|
|
3727
3738
|
this.store = store;
|
|
3739
|
+
this.sbControllerService = sbControllerService;
|
|
3728
3740
|
this.subscriptions = new Subscription();
|
|
3729
|
-
this.subscriptions.add(this.store.select('baseUrl').subscribe(baseUrl =>
|
|
3741
|
+
this.subscriptions.add(this.store.select('baseUrl').subscribe(baseUrl => {
|
|
3742
|
+
this.$setUrl(baseUrl);
|
|
3743
|
+
sbControllerService.configuration.basePath = baseUrl + '/mst';
|
|
3744
|
+
}));
|
|
3730
3745
|
}
|
|
3731
3746
|
ngOnDestroy() {
|
|
3732
3747
|
this.subscriptions.unsubscribe();
|
|
3733
3748
|
}
|
|
3734
|
-
|
|
3749
|
+
laadSignaleringsbeeldInfo(versie, pplgs) {
|
|
3750
|
+
return this.sbControllerService.getSignaleringsbeelden(versie, pplgs);
|
|
3751
|
+
}
|
|
3752
|
+
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 }); }
|
|
3735
3753
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SignaleringsbeeldInfoResource }); }
|
|
3736
3754
|
};
|
|
3737
|
-
__decorate([
|
|
3738
|
-
ResourceAction({
|
|
3739
|
-
path: '/',
|
|
3740
|
-
method: ResourceRequestMethod.Post
|
|
3741
|
-
})
|
|
3742
|
-
], SignaleringsbeeldInfoResource.prototype, "laadSignaleringsbeeldInfo", void 0);
|
|
3743
3755
|
__decorate([
|
|
3744
3756
|
ResourceAction({
|
|
3745
3757
|
path: '/valideeriaversie'
|
|
@@ -3752,7 +3764,7 @@ SignaleringsbeeldInfoResource = __decorate([
|
|
|
3752
3764
|
], SignaleringsbeeldInfoResource);
|
|
3753
3765
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SignaleringsbeeldInfoResource, decorators: [{
|
|
3754
3766
|
type: Injectable
|
|
3755
|
-
}], ctorParameters: () => [{ type: i1$1.ResourceHandler }, { type: i2$1.Store }
|
|
3767
|
+
}], ctorParameters: () => [{ type: i1$1.ResourceHandler }, { type: i2$1.Store }, { type: SbControllerService }], propDecorators: { getBestaatIALevering: [] } });
|
|
3756
3768
|
class SignaleringsbeeldInfoDto extends ResourceModel {
|
|
3757
3769
|
constructor(data) {
|
|
3758
3770
|
super();
|
|
@@ -3780,6 +3792,8 @@ class BaseRestService {
|
|
|
3780
3792
|
this.httpClient = httpClient;
|
|
3781
3793
|
this.store = store;
|
|
3782
3794
|
this.subscriptions = new Subscription();
|
|
3795
|
+
this.baseUrl = '';
|
|
3796
|
+
this.iaVersie = '';
|
|
3783
3797
|
this.subscriptions.add(this.store.select('baseUrl').subscribe(baseUrl => this.baseUrl = baseUrl));
|
|
3784
3798
|
this.subscriptions.add(this.store.select('iaVersie').subscribe(iaVersie => this.iaVersie = iaVersie.versie));
|
|
3785
3799
|
}
|
|
@@ -3955,13 +3969,13 @@ class Ritdeel {
|
|
|
3955
3969
|
return retval;
|
|
3956
3970
|
}
|
|
3957
3971
|
getVrijebaanRijwegplan() {
|
|
3958
|
-
return this.vrijebaanRijwegplanRijwegDwangCombi
|
|
3972
|
+
return this.vrijebaanRijwegplanRijwegDwangCombi?.rijwegplan;
|
|
3959
3973
|
}
|
|
3960
3974
|
getVrijebaanRijweg() {
|
|
3961
|
-
return this.vrijebaanRijwegplanRijwegDwangCombi
|
|
3975
|
+
return this.vrijebaanRijwegplanRijwegDwangCombi?.rijweg;
|
|
3962
3976
|
}
|
|
3963
3977
|
getVrijebaanDwang() {
|
|
3964
|
-
return this.vrijebaanRijwegplanRijwegDwangCombi
|
|
3978
|
+
return this.vrijebaanRijwegplanRijwegDwangCombi?.dwang;
|
|
3965
3979
|
}
|
|
3966
3980
|
getDwangNummer() {
|
|
3967
3981
|
return this.rijwegplanRijwegDwangCombi.getDwangNummer();
|
|
@@ -3978,7 +3992,7 @@ class Ritdeel {
|
|
|
3978
3992
|
isBinnenWindow() {
|
|
3979
3993
|
return (this.zichtbaarheid === RitdeelZichtbaarheid.ZICHTBAAR ||
|
|
3980
3994
|
this.zichtbaarheid === RitdeelZichtbaarheid.ONZICHTBAAR_DOOR_GEBRUIKER)
|
|
3981
|
-
&& this.zichtbaarBuitenPaginatie
|
|
3995
|
+
&& !this.zichtbaarBuitenPaginatie;
|
|
3982
3996
|
}
|
|
3983
3997
|
isNietBeschikbaar() {
|
|
3984
3998
|
return this.zichtbaarheid === RitdeelZichtbaarheid.ONZICHTBAAR_DOOR_SYSTEEM;
|
|
@@ -4001,10 +4015,10 @@ class Ritdeel {
|
|
|
4001
4015
|
}
|
|
4002
4016
|
}
|
|
4003
4017
|
heeftVrijebaanInfo() {
|
|
4004
|
-
return this.vrijebaanRijwegplanRijwegDwangCombi && !!this.vrijebaanRijwegplanRijwegDwangCombi.dwang;
|
|
4018
|
+
return !!this.vrijebaanRijwegplanRijwegDwangCombi && !!this.vrijebaanRijwegplanRijwegDwangCombi.dwang;
|
|
4005
4019
|
}
|
|
4006
4020
|
getVrijebaanPrlRoute() {
|
|
4007
|
-
return this.vrijebaanRijwegplanRijwegDwangCombi
|
|
4021
|
+
return this.vrijebaanRijwegplanRijwegDwangCombi?.getRoute();
|
|
4008
4022
|
}
|
|
4009
4023
|
getTopologieElementen() {
|
|
4010
4024
|
return this.topoElementen;
|
|
@@ -4036,10 +4050,10 @@ class Ritdeel {
|
|
|
4036
4050
|
getZichtbaarheidBuitenPaginatie() {
|
|
4037
4051
|
return this.zichtbaarBuitenPaginatie;
|
|
4038
4052
|
}
|
|
4039
|
-
bepaalTopologieElementen(
|
|
4040
|
-
const topoElementen =
|
|
4053
|
+
bepaalTopologieElementen(sbmService) {
|
|
4054
|
+
const topoElementen = sbmService.bepaalRouteElementen(this.getRoute());
|
|
4041
4055
|
if (this.heeftVrijebaanInfo()) {
|
|
4042
|
-
const vrijebaanTopoElementen =
|
|
4056
|
+
const vrijebaanTopoElementen = sbmService.bepaalRouteElementen(this.getVrijebaanPrlRoute());
|
|
4043
4057
|
topoElementen.push(...vrijebaanTopoElementen);
|
|
4044
4058
|
}
|
|
4045
4059
|
this.topoElementen = topoElementen;
|
|
@@ -4085,7 +4099,7 @@ class RitLezerService {
|
|
|
4085
4099
|
ritDelen.push(new Ritdeel(dwangInfo, beweging.ritActies, beweging, vrijebaanDwangInfo, vervolgSpoor, []));
|
|
4086
4100
|
}
|
|
4087
4101
|
extractVrijebaanDwangInfo(beweging, rijwegPlan, rijweg) {
|
|
4088
|
-
let vrijebaanDwangInfo =
|
|
4102
|
+
let vrijebaanDwangInfo = undefined;
|
|
4089
4103
|
let vervolgSpoor;
|
|
4090
4104
|
if (beweging.naarSpoor.endsWith(SPOOR_NAAR_VRIJEBAAN_POSTFIX) ||
|
|
4091
4105
|
beweging.naarSpoor.endsWith(SPOOR_NAAR_VEERWISSEL_VRIJEBAAN_POSTFIX)) {
|
|
@@ -4099,9 +4113,9 @@ class RitLezerService {
|
|
|
4099
4113
|
vrijebaanRijweg = vrijebaanRijwegen[0];
|
|
4100
4114
|
vrijebaanDwang = vrijebaanRijweg.getDwangVoorDwangNummer(0);
|
|
4101
4115
|
vervolgSpoor = vrijebaanRijwegplan.getVervolgSpoor(vrijebaanRijweg);
|
|
4116
|
+
vrijebaanDwangInfo =
|
|
4117
|
+
new RijwegplanRijwegDwangCombinatie(vrijebaanRijwegplan, vrijebaanRijweg, vrijebaanDwang);
|
|
4102
4118
|
}
|
|
4103
|
-
vrijebaanDwangInfo =
|
|
4104
|
-
new RijwegplanRijwegDwangCombinatie(vrijebaanRijwegplan, vrijebaanRijweg, vrijebaanDwang);
|
|
4105
4119
|
}
|
|
4106
4120
|
}
|
|
4107
4121
|
return { vrijebaanDwangInfo, vervolgSpoor };
|
|
@@ -4154,7 +4168,7 @@ class BepaalOngeplandeActiesEffect {
|
|
|
4154
4168
|
this.bepaalOngeplandeActies$ = createEffect(() => this.actions$.pipe(ofType(BepaalOngeplandeActies), withLatestFrom(this.store), map(([action, store]) => {
|
|
4155
4169
|
const puicActieMap = new ArrayMultimap();
|
|
4156
4170
|
const nietGevondenTakken = [];
|
|
4157
|
-
const logMeldingDTOs = [];
|
|
4171
|
+
const logMeldingDTOs$ = [];
|
|
4158
4172
|
const acties = store.ritDelen.flatMap(rd => rd.acties);
|
|
4159
4173
|
action.ongeplandeActies.forEach(actie => {
|
|
4160
4174
|
const alreadyAdded = acties.filter(a => a.id === actie.id).length > 0;
|
|
@@ -4170,11 +4184,11 @@ class BepaalOngeplandeActiesEffect {
|
|
|
4170
4184
|
if (!spoortak && nietGevondenTakken.indexOf(takId) < 0) {
|
|
4171
4185
|
nietGevondenTakken.push(takId);
|
|
4172
4186
|
const melding = MeldingBuilder.nietGevondenTakkenOngeplandeActies(nietGevondenTakken);
|
|
4173
|
-
logMeldingDTOs
|
|
4187
|
+
logMeldingDTOs$.push(this.loggingHelper.maakLogDTO(melding, actie));
|
|
4174
4188
|
}
|
|
4175
4189
|
else if (spoortak) {
|
|
4176
4190
|
const melding = MeldingBuilder.actieHighlightError([actie.id]);
|
|
4177
|
-
logMeldingDTOs
|
|
4191
|
+
logMeldingDTOs$.push(this.loggingHelper.maakLogDTO(melding, actie));
|
|
4178
4192
|
this.messagesService.showMessage(MessageBuilder.actieHighlightError([actie.id]));
|
|
4179
4193
|
}
|
|
4180
4194
|
}
|
|
@@ -4183,8 +4197,8 @@ class BepaalOngeplandeActiesEffect {
|
|
|
4183
4197
|
if (nietGevondenTakken.length > 0) {
|
|
4184
4198
|
this.messagesService.showMessage(MessageBuilder.nietGevondenTakkenOngeplandeActies(nietGevondenTakken));
|
|
4185
4199
|
}
|
|
4186
|
-
if (logMeldingDTOs
|
|
4187
|
-
this.mstLogResource.logMessages(
|
|
4200
|
+
if (logMeldingDTOs$.length > 0) {
|
|
4201
|
+
forkJoin(logMeldingDTOs$).pipe(tap(dtos => this.mstLogResource.logMessages(dtos))).subscribe();
|
|
4188
4202
|
}
|
|
4189
4203
|
this.store.dispatch(SetOngeplandeActies(puicActieMap));
|
|
4190
4204
|
this.store.dispatch(SetOngeplandeActieSelectieIds(Array.from(puicActieMap.keys())));
|
|
@@ -4377,7 +4391,7 @@ class FocusEffect {
|
|
|
4377
4391
|
const dwangPuics = this.getPuics(topoElementen);
|
|
4378
4392
|
if (ritdeel.isNietBeschikbaar()) {
|
|
4379
4393
|
this.store.dispatch(SetOngeplandeActiesBepaald(false));
|
|
4380
|
-
this.store.dispatch(navigeerVanaf(actie.paginationSize,
|
|
4394
|
+
this.store.dispatch(navigeerVanaf(actie.paginationSize, ritdeel));
|
|
4381
4395
|
}
|
|
4382
4396
|
return focusOpIds(dwangPuics);
|
|
4383
4397
|
})));
|
|
@@ -4399,16 +4413,16 @@ class LaadRouteFilesEffect {
|
|
|
4399
4413
|
this.ritLezer = ritLezer;
|
|
4400
4414
|
this.editorService = editorService;
|
|
4401
4415
|
this.messagesService = messagesService;
|
|
4402
|
-
this.authActions$ = createEffect(() => this.actions$.pipe(ofType(SetSignaleringsbeeldInfoDtos), map(action => this.laadRouteFiles(action))), { dispatch: false });
|
|
4416
|
+
this.authActions$ = createEffect(() => this.actions$.pipe(ofType(SetSignaleringsbeeldInfoDtos), withLatestFrom(this.store), map(([action, storeState]) => this.laadRouteFiles(action, storeState.iaVersie.versie))), { dispatch: false });
|
|
4403
4417
|
}
|
|
4404
|
-
laadRouteFiles(actie) {
|
|
4418
|
+
laadRouteFiles(actie, iaVersie) {
|
|
4405
4419
|
const isReady = this.editorService.isReady();
|
|
4406
4420
|
isReady.then(() => {
|
|
4407
4421
|
const pplgs = this.bepaalSbDtoPplgs(actie.dtos);
|
|
4408
|
-
const promise = this.editorService.laadRouteFiles(
|
|
4422
|
+
const promise = this.editorService.laadRouteFiles(iaVersie, pplgs);
|
|
4409
4423
|
promise.then(() => {
|
|
4410
4424
|
this.updateRitdelen(actie);
|
|
4411
|
-
}, err => {
|
|
4425
|
+
}, (err) => {
|
|
4412
4426
|
this.messagesService.showMessage(MessageBuilder.rwpDataNietGevonden(Utils.getValidErorrMessage(err)));
|
|
4413
4427
|
});
|
|
4414
4428
|
});
|
|
@@ -4419,7 +4433,7 @@ class LaadRouteFilesEffect {
|
|
|
4419
4433
|
if (ritdelen.length === 0) {
|
|
4420
4434
|
ritdelen = this.ritLezer.parseRit(actie.treinpad, actie.ritGewijzigdToegestaan);
|
|
4421
4435
|
}
|
|
4422
|
-
this.store.dispatch(setRitDelen(ritdelen, actie.paginationSize
|
|
4436
|
+
this.store.dispatch(setRitDelen(ritdelen, actie.paginationSize));
|
|
4423
4437
|
this.store.dispatch(setEditable(actie.treinpad.ritStatus !== 'Definitief'));
|
|
4424
4438
|
});
|
|
4425
4439
|
}, 0);
|
|
@@ -4427,7 +4441,7 @@ class LaadRouteFilesEffect {
|
|
|
4427
4441
|
bepaalSbDtoPplgs(dtos) {
|
|
4428
4442
|
const pplgs = [];
|
|
4429
4443
|
dtos.forEach(dto => {
|
|
4430
|
-
dto.pplgs
|
|
4444
|
+
dto.pplgs?.forEach(pplg => {
|
|
4431
4445
|
if (!pplgs.includes(pplg)) {
|
|
4432
4446
|
pplgs.push(pplg);
|
|
4433
4447
|
}
|
|
@@ -4468,14 +4482,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
4468
4482
|
}] });
|
|
4469
4483
|
|
|
4470
4484
|
class LaadSignaleringsbeeldenEffect {
|
|
4471
|
-
constructor(actions$, store, signaleringsBeeldManagerService, editorService, sbiResource, connectorService,
|
|
4485
|
+
constructor(actions$, store, signaleringsBeeldManagerService, editorService, sbiResource, connectorService, messagesService) {
|
|
4472
4486
|
this.actions$ = actions$;
|
|
4473
4487
|
this.store = store;
|
|
4474
4488
|
this.signaleringsBeeldManagerService = signaleringsBeeldManagerService;
|
|
4475
4489
|
this.editorService = editorService;
|
|
4476
4490
|
this.sbiResource = sbiResource;
|
|
4477
4491
|
this.connectorService = connectorService;
|
|
4478
|
-
this.
|
|
4492
|
+
this.messagesService = messagesService;
|
|
4479
4493
|
this.SVG_PIXEL_RUIMTE = 30;
|
|
4480
4494
|
this.verwerkRitdelen$ = createEffect(() => this.actions$.pipe(ofType(setRitDelen, navigeer, navigeerVanaf), withLatestFrom(this.store), map(([actie, storeState]) => {
|
|
4481
4495
|
this.store.dispatch(SetOngeplandeActiesBepaald(false));
|
|
@@ -4489,14 +4503,14 @@ class LaadSignaleringsbeeldenEffect {
|
|
|
4489
4503
|
}).pipe(switchMap(this.getOtherRand.bind(this)), switchMap(this.loadRouteFilesAndSignaleringsbeeldInfo.bind(this)), switchMap(this.loadSignaleringsbeelden.bind(this)), map(this.processSvgsAndUpdateRitdelen.bind(this))))), { dispatch: false });
|
|
4490
4504
|
}
|
|
4491
4505
|
handleSignaleringsbeeldInfo({ actie, storeState }) {
|
|
4492
|
-
return this.sbiResource.laadSignaleringsbeeldInfo(
|
|
4493
|
-
this.
|
|
4506
|
+
return this.sbiResource.laadSignaleringsbeeldInfo(storeState.iaVersie.versie, actie.pplgs).pipe(take(1), tap((dtos) => this.processResponse({ dtos, storeState, actie })), catchError((err) => {
|
|
4507
|
+
this.messagesService.showMessage(MessageBuilder.nietGevondenSBI(err));
|
|
4494
4508
|
return throwError(() => err);
|
|
4495
4509
|
}));
|
|
4496
4510
|
}
|
|
4497
4511
|
processResponse({ dtos, storeState, actie }) {
|
|
4498
4512
|
if (dtos && dtos.filter(dto => dto.metVisualisatie).length > 12) {
|
|
4499
|
-
this.
|
|
4513
|
+
this.messagesService.showMessage(MessageBuilder.meerDan12BladenGevonden(dtos.length));
|
|
4500
4514
|
}
|
|
4501
4515
|
this.store.dispatch(SetSignaleringsbeeldInfoDtos(dtos, storeState.iaVersie, actie.rit, actie.paginationSize, actie.ritGewijzigdToegestaan));
|
|
4502
4516
|
this.store.dispatch(SetVisibleSignaleringsbeeldInfoDtos(dtos));
|
|
@@ -4506,14 +4520,14 @@ class LaadSignaleringsbeeldenEffect {
|
|
|
4506
4520
|
}
|
|
4507
4521
|
loadRouteFilesAndSignaleringsbeeldInfo({ otherPplg, rand, storeState }) {
|
|
4508
4522
|
this.editorService.laadRouteFiles(storeState.iaVersie.versie, [rand.getPPLG(), otherPplg]);
|
|
4509
|
-
return this.sbiResource.laadSignaleringsbeeldInfo(
|
|
4523
|
+
return this.sbiResource.laadSignaleringsbeeldInfo(storeState.iaVersie.versie, [rand.getPPLG(), otherPplg]).pipe(map(dtos => ({ dtos, storeState })));
|
|
4510
4524
|
}
|
|
4511
4525
|
loadSignaleringsbeelden({ dtos, storeState }) {
|
|
4512
|
-
return this.editorService.laadSignaleringsbeelden(storeState.iaVersie.versie, dtos).pipe(map(svgDataUrls => ({ svgDataUrls, storeState, dtos })));
|
|
4526
|
+
return this.editorService.laadSignaleringsbeelden(storeState.iaVersie.versie, dtos).pipe(map(svgDataUrls => ({ svgDataUrls, ritDelen: storeState.ritDelen, dtos })));
|
|
4513
4527
|
}
|
|
4514
|
-
processSvgsAndUpdateRitdelen({ svgDataUrls,
|
|
4528
|
+
processSvgsAndUpdateRitdelen({ svgDataUrls, ritDelen, dtos }) {
|
|
4515
4529
|
this.verwerkSvgs(svgDataUrls);
|
|
4516
|
-
const nieuweRitdelen = this.updateRitdelen(
|
|
4530
|
+
const nieuweRitdelen = this.updateRitdelen(ritDelen, dtos);
|
|
4517
4531
|
this.store.dispatch(UpdateVisibleSignaleringsbeeldInfoDtos(dtos));
|
|
4518
4532
|
this.store.dispatch(updateRitDelen(nieuweRitdelen));
|
|
4519
4533
|
}
|
|
@@ -4526,11 +4540,11 @@ class LaadSignaleringsbeeldenEffect {
|
|
|
4526
4540
|
const visibleRitPplgs = visibleRitDelen.map(r => r.getPplg()).filter(this.distinct);
|
|
4527
4541
|
const visibleDtos = this.bepaalZichtbareDtos(visibleRitPplgs, storeDtos);
|
|
4528
4542
|
const loadingDtos = this.bepaalToLoadDtos(visibleDtos, ritDelen, visibleRitDelen, visibleRitPplgs, storeState);
|
|
4529
|
-
this.editorService.laadSignaleringsbeelden(
|
|
4543
|
+
this.editorService.laadSignaleringsbeelden(storeState.iaVersie.versie, loadingDtos).pipe(tap(svgDataUrls => {
|
|
4530
4544
|
this.verwerkSvgs(svgDataUrls);
|
|
4531
4545
|
this.updateState(ritDelen, visibleDtos, storeState, visibleRitPplgs, loadingDtos, isInit, storeDtos);
|
|
4532
4546
|
}), catchError(err => {
|
|
4533
|
-
this.
|
|
4547
|
+
this.messagesService.showMessage(MessageBuilder.rwpDataNietGevonden(Utils.getValidErorrMessage(err)));
|
|
4534
4548
|
throw err;
|
|
4535
4549
|
})).subscribe();
|
|
4536
4550
|
}
|
|
@@ -4545,10 +4559,6 @@ class LaadSignaleringsbeeldenEffect {
|
|
|
4545
4559
|
this.store.dispatch(updateRitDelen(nieuweRitdelen));
|
|
4546
4560
|
}, 0);
|
|
4547
4561
|
}
|
|
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
|
-
}
|
|
4552
4562
|
verwerkSvgs(svgDataUrls) {
|
|
4553
4563
|
this.store.dispatch(SetSvgInfos(this.bepaalSvgInfos(svgDataUrls)));
|
|
4554
4564
|
}
|
|
@@ -4575,7 +4585,7 @@ class LaadSignaleringsbeeldenEffect {
|
|
|
4575
4585
|
bepaalZichtbareDtos(visibleRitPplgs, dtos) {
|
|
4576
4586
|
const visibleDtos = [];
|
|
4577
4587
|
visibleRitPplgs.forEach(pplg => {
|
|
4578
|
-
dtos.filter(dto => dto.pplgs
|
|
4588
|
+
dtos.filter(dto => dto.pplgs?.includes(pplg)).forEach(dto => {
|
|
4579
4589
|
if (!visibleDtos.includes(dto)) {
|
|
4580
4590
|
visibleDtos.push(dto);
|
|
4581
4591
|
}
|
|
@@ -4585,13 +4595,13 @@ class LaadSignaleringsbeeldenEffect {
|
|
|
4585
4595
|
dtos.filter(d => !visibleDtos.includes(d)).forEach(d => d.metVisualisatie = false);
|
|
4586
4596
|
return visibleDtos;
|
|
4587
4597
|
}
|
|
4588
|
-
distinct(value, index,
|
|
4589
|
-
return
|
|
4598
|
+
distinct(value, index, values) {
|
|
4599
|
+
return values.indexOf(value) === index;
|
|
4590
4600
|
}
|
|
4591
4601
|
addPrevNonVisibleDto(firstIdx, ritdelen, loadingDtos, visibleRitPplgs, allDtos) {
|
|
4592
4602
|
if (firstIdx >= 0) {
|
|
4593
4603
|
const pplg = ritdelen[firstIdx].getPplg();
|
|
4594
|
-
const ritdeelDtos = allDtos.filter(dto => dto.pplgs
|
|
4604
|
+
const ritdeelDtos = allDtos.filter(dto => dto.pplgs?.includes(pplg)).filter(dto => !loadingDtos.includes(dto));
|
|
4595
4605
|
if (!visibleRitPplgs.includes(pplg) && ritdeelDtos.length > 0) {
|
|
4596
4606
|
ritdeelDtos.filter(d => !loadingDtos.includes(d)).forEach(d => {
|
|
4597
4607
|
d.metVisualisatie = false;
|
|
@@ -4606,7 +4616,7 @@ class LaadSignaleringsbeeldenEffect {
|
|
|
4606
4616
|
addNextNonVisibleDto(lastIdx, ritdelen, loadingDtos, visibleRitPplgs, allDtos) {
|
|
4607
4617
|
if (lastIdx <= ritdelen.length - 1) {
|
|
4608
4618
|
const pplg = ritdelen[lastIdx].getPplg();
|
|
4609
|
-
const ritdeelDtos = allDtos.filter(dto => dto.pplgs
|
|
4619
|
+
const ritdeelDtos = allDtos.filter(dto => dto.pplgs?.includes(pplg)).filter(dto => !loadingDtos.includes(dto));
|
|
4610
4620
|
if (!visibleRitPplgs.includes(pplg) && ritdeelDtos.length > 0) {
|
|
4611
4621
|
ritdeelDtos.filter(d => !loadingDtos.includes(d)).forEach(d => {
|
|
4612
4622
|
d.metVisualisatie = false;
|
|
@@ -4675,7 +4685,7 @@ class LaadSignaleringsbeeldenEffect {
|
|
|
4675
4685
|
}
|
|
4676
4686
|
}
|
|
4677
4687
|
}
|
|
4678
|
-
this.
|
|
4688
|
+
this.updateZichtbaarheidAangrenzendeRitdelen(min, max, ritdelen, visibleDtos);
|
|
4679
4689
|
return this.updateZichtbaarheidBuitenWindow(ritdelen, visibleDtos);
|
|
4680
4690
|
}
|
|
4681
4691
|
updateZichtbaarheidBuitenWindow(nieuweRitdelen, visibleDtos) {
|
|
@@ -4691,7 +4701,7 @@ class LaadSignaleringsbeeldenEffect {
|
|
|
4691
4701
|
}
|
|
4692
4702
|
return nieuweRitdelen;
|
|
4693
4703
|
}
|
|
4694
|
-
|
|
4704
|
+
updateZichtbaarheidAangrenzendeRitdelen(min, max, nieuweRitdelen, visibleDtos) {
|
|
4695
4705
|
let i = min - 1;
|
|
4696
4706
|
while (i >= 0) {
|
|
4697
4707
|
i = this.updateZichtbaarHeid(i, 0, visibleDtos, nieuweRitdelen) - 1;
|
|
@@ -4727,9 +4737,11 @@ class LaadSignaleringsbeeldenEffect {
|
|
|
4727
4737
|
}
|
|
4728
4738
|
bevatGevisualiseerdePplg(visibleDtos, pplg) {
|
|
4729
4739
|
for (const dto of visibleDtos) {
|
|
4730
|
-
|
|
4731
|
-
|
|
4732
|
-
|
|
4740
|
+
if (dto.pplgs) {
|
|
4741
|
+
for (const dtopplg of dto.pplgs) {
|
|
4742
|
+
if (dtopplg === pplg) {
|
|
4743
|
+
return true;
|
|
4744
|
+
}
|
|
4733
4745
|
}
|
|
4734
4746
|
}
|
|
4735
4747
|
}
|
|
@@ -4779,7 +4791,7 @@ class LaadSignaleringsbeeldenEffect {
|
|
|
4779
4791
|
pplgsWindow.push(itemPplg);
|
|
4780
4792
|
}
|
|
4781
4793
|
const pplgDtos = [];
|
|
4782
|
-
dtos.filter(dto => dto.pplgs
|
|
4794
|
+
dtos.filter(dto => dto.pplgs?.includes(itemPplg)).forEach(dto => {
|
|
4783
4795
|
if (!pplgDtos.includes(dto)) {
|
|
4784
4796
|
pplgDtos.push(dto);
|
|
4785
4797
|
}
|
|
@@ -4826,11 +4838,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
4826
4838
|
}], ctorParameters: () => [{ type: i1$2.Actions }, { type: i2$1.Store }, { type: BewegingVerrijkerService }] });
|
|
4827
4839
|
|
|
4828
4840
|
class RitdelenEffect {
|
|
4829
|
-
constructor(actions$, store, sbmService,
|
|
4841
|
+
constructor(actions$, store, sbmService, editorService) {
|
|
4830
4842
|
this.actions$ = actions$;
|
|
4831
4843
|
this.store = store;
|
|
4832
4844
|
this.sbmService = sbmService;
|
|
4833
|
-
this.
|
|
4845
|
+
this.editorService = editorService;
|
|
4834
4846
|
this.updateRitDelen$ = createEffect(() => this.actions$.pipe(ofType(updateRitDelen), withLatestFrom(this.store), map(([actie, _storeState]) => {
|
|
4835
4847
|
const nieuweRitDelen = actie.ritDelen.map(ritDeel => ritDeel.isZichtbaar() ?
|
|
4836
4848
|
ritDeel.copyMetAlternatieveRoutes(this.sbmService.bepaalAlternativeRoutes(ritDeel.getRijweg())) : ritDeel);
|
|
@@ -4848,25 +4860,25 @@ class RitdelenEffect {
|
|
|
4848
4860
|
return setRitdelenAfterUpdate(ritDelen);
|
|
4849
4861
|
})));
|
|
4850
4862
|
this.ritdeelInvoegen$ = createEffect(() => this.actions$.pipe(ofType(ritdeelInvoegen), withLatestFrom(this.store), map(([actie, storeState]) => {
|
|
4851
|
-
const ritDelen = this.ritdeelInvoegenFunc(storeState.ritDelen, actie.nieuweRoute
|
|
4863
|
+
const ritDelen = this.ritdeelInvoegenFunc(storeState.ritDelen, actie.nieuweRoute);
|
|
4852
4864
|
return setRitdelenAfterUpdate(ritDelen);
|
|
4853
4865
|
})));
|
|
4854
4866
|
}
|
|
4855
|
-
ritdeelInvoegenFunc(ritDelen, nieuweRoute
|
|
4867
|
+
ritdeelInvoegenFunc(ritDelen, nieuweRoute) {
|
|
4856
4868
|
const origineelRitdeel = nieuweRoute.beginSeinOpRitdeel.ritdeel;
|
|
4857
4869
|
const beginSein = nieuweRoute.beginSeinOpRitdeel.sein;
|
|
4858
|
-
const rijwegplan =
|
|
4870
|
+
const rijwegplan = this.editorService.getRijwegplan(beginSein.getPPLG());
|
|
4859
4871
|
const dwangen = JsJavaUtil.listToArray(rijwegplan.getOnderliggendeDwangenTotEnVanSein(origineelRitdeel.getDwang(), beginSein));
|
|
4860
4872
|
const isSamengesteldeRoute = dwangen[0] && dwangen[1];
|
|
4861
4873
|
let newRitdeel1 = origineelRitdeel;
|
|
4862
4874
|
if (isSamengesteldeRoute) {
|
|
4863
|
-
newRitdeel1 = this.verwerkSamengesteldeRoute(origineelRitdeel, rijwegplan, dwangen,
|
|
4875
|
+
newRitdeel1 = this.verwerkSamengesteldeRoute(origineelRitdeel, rijwegplan, dwangen, ritDelen);
|
|
4864
4876
|
}
|
|
4865
|
-
if (nieuweRoute.combinatieVoorEindsein
|
|
4866
|
-
this.extendRitdeelMetVrijebaanInfo(newRitdeel1, nieuweRoute
|
|
4877
|
+
if (nieuweRoute.combinatieVoorEindsein?.isVrijeBaanRijweg()) {
|
|
4878
|
+
this.extendRitdeelMetVrijebaanInfo(newRitdeel1, nieuweRoute);
|
|
4867
4879
|
}
|
|
4868
4880
|
else {
|
|
4869
|
-
this.maakNieuwRitdeel(newRitdeel1, nieuweRoute,
|
|
4881
|
+
this.maakNieuwRitdeel(newRitdeel1, nieuweRoute, ritDelen);
|
|
4870
4882
|
}
|
|
4871
4883
|
if (isSamengesteldeRoute) {
|
|
4872
4884
|
ritDelen.splice(ritDelen.indexOf(origineelRitdeel), 1);
|
|
@@ -4881,38 +4893,39 @@ class RitdelenEffect {
|
|
|
4881
4893
|
}
|
|
4882
4894
|
}
|
|
4883
4895
|
}
|
|
4884
|
-
verwerkSamengesteldeRoute(origineelRitdeel, rijwegplan, dwangen,
|
|
4896
|
+
verwerkSamengesteldeRoute(origineelRitdeel, rijwegplan, dwangen, ritDelen) {
|
|
4885
4897
|
// dwangen in 2 nieuwe ritdelen verwerken voor de knip
|
|
4886
4898
|
const nieuweRijweg1 = rijwegplan.getRijwegVoorSeinen(dwangen[0].getRoute().getBeginSein(), dwangen[0].getRoute().getEindSein());
|
|
4887
4899
|
const dwangInfo1 = new RijwegplanRijwegDwangCombinatie(rijwegplan, nieuweRijweg1, dwangen[0]);
|
|
4888
|
-
const newRitdeel1 = new Ritdeel(dwangInfo1, [],
|
|
4900
|
+
const newRitdeel1 = new Ritdeel(dwangInfo1, [], undefined, undefined, undefined, []);
|
|
4889
4901
|
// remove vrijbaan info uit ritdeel
|
|
4890
|
-
newRitdeel1.vrijebaanRijwegplanRijwegDwangCombi =
|
|
4891
|
-
newRitdeel1.vervolgSpoor =
|
|
4892
|
-
newRitdeel1.bepaalTopologieElementen(sbmService);
|
|
4902
|
+
newRitdeel1.vrijebaanRijwegplanRijwegDwangCombi = undefined;
|
|
4903
|
+
newRitdeel1.vervolgSpoor = undefined;
|
|
4904
|
+
newRitdeel1.bepaalTopologieElementen(this.sbmService);
|
|
4893
4905
|
this.insertRitdeel(ritDelen, origineelRitdeel, newRitdeel1);
|
|
4894
4906
|
const nieuweRijweg2 = rijwegplan.getRijwegVoorSeinen(dwangen[1].getRoute().getBeginSein(), dwangen[1].getRoute().getEindSein());
|
|
4895
4907
|
const dwangInfo2 = new RijwegplanRijwegDwangCombinatie(rijwegplan, nieuweRijweg2, dwangen[1]);
|
|
4896
|
-
const newRitdeel2 = new Ritdeel(dwangInfo2, [],
|
|
4897
|
-
newRitdeel2.bepaalTopologieElementen(sbmService);
|
|
4908
|
+
const newRitdeel2 = new Ritdeel(dwangInfo2, [], undefined, undefined, undefined, []);
|
|
4909
|
+
newRitdeel2.bepaalTopologieElementen(this.sbmService);
|
|
4898
4910
|
this.insertRitdeel(ritDelen, newRitdeel1, newRitdeel2);
|
|
4899
4911
|
return newRitdeel1;
|
|
4900
4912
|
}
|
|
4901
|
-
extendRitdeelMetVrijebaanInfo(newRitdeel1, nieuweRoute
|
|
4913
|
+
extendRitdeelMetVrijebaanInfo(newRitdeel1, nieuweRoute) {
|
|
4902
4914
|
newRitdeel1.vrijebaanRijwegplanRijwegDwangCombi = nieuweRoute.combinatieVoorEindsein;
|
|
4903
|
-
const vbrwp = nieuweRoute.combinatieVoorEindsein
|
|
4904
|
-
newRitdeel1.vervolgSpoor =
|
|
4905
|
-
|
|
4915
|
+
const vbrwp = nieuweRoute.combinatieVoorEindsein?.rijwegplan;
|
|
4916
|
+
newRitdeel1.vervolgSpoor = nieuweRoute.combinatieVoorEindsein ?
|
|
4917
|
+
vbrwp.getVervolgSpoor(nieuweRoute.combinatieVoorEindsein?.rijweg) : undefined;
|
|
4918
|
+
newRitdeel1.bepaalTopologieElementen(this.sbmService);
|
|
4906
4919
|
}
|
|
4907
|
-
maakNieuwRitdeel(newRitdeel1, nieuweRoute,
|
|
4920
|
+
maakNieuwRitdeel(newRitdeel1, nieuweRoute, ritDelen) {
|
|
4908
4921
|
let newRitdeel = this.createRitdeel(nieuweRoute);
|
|
4909
|
-
const altRoutes = sbmService.bepaalAlternativeRoutes(newRitdeel.getRijweg());
|
|
4922
|
+
const altRoutes = this.sbmService.bepaalAlternativeRoutes(newRitdeel.getRijweg());
|
|
4910
4923
|
newRitdeel = newRitdeel.copyMetAlternatieveRoutes(altRoutes);
|
|
4911
|
-
newRitdeel.bepaalTopologieElementen(sbmService);
|
|
4924
|
+
newRitdeel.bepaalTopologieElementen(this.sbmService);
|
|
4912
4925
|
this.insertRitdeel(ritDelen, newRitdeel1, newRitdeel);
|
|
4913
4926
|
}
|
|
4914
4927
|
createRitdeel(nieuweRoute) {
|
|
4915
|
-
return new Ritdeel(nieuweRoute.combinatieVoorEindsein, [],
|
|
4928
|
+
return new Ritdeel(nieuweRoute.combinatieVoorEindsein, [], undefined, undefined, undefined, []);
|
|
4916
4929
|
}
|
|
4917
4930
|
insertRitdeel(ritdelen, naRitdeelPositie, newRitdeel) {
|
|
4918
4931
|
const idx = ritdelen.indexOf(naRitdeelPositie);
|
|
@@ -4963,13 +4976,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
4963
4976
|
type: Injectable
|
|
4964
4977
|
}], ctorParameters: () => [{ type: i1$2.Actions }, { type: i2$1.Store }, { type: SignaleringsBeeldManagerService }, { type: i4.SignaleringsbeeldSvgUtilityService }] });
|
|
4965
4978
|
|
|
4979
|
+
class ProgressIndicator {
|
|
4980
|
+
constructor(lowerText, upperText, iconClass) {
|
|
4981
|
+
this.lowerText = '';
|
|
4982
|
+
this.upperText = '';
|
|
4983
|
+
this.iconClass = '';
|
|
4984
|
+
this.lowerText = lowerText ?? this.lowerText;
|
|
4985
|
+
this.upperText = upperText ?? this.upperText;
|
|
4986
|
+
this.iconClass = iconClass ?? this.iconClass;
|
|
4987
|
+
}
|
|
4988
|
+
}
|
|
4989
|
+
|
|
4966
4990
|
class NieuweRoute {
|
|
4967
4991
|
constructor(beginSeinOpRitdeel, combinatieVoorEindsein) {
|
|
4968
4992
|
this.beginSeinOpRitdeel = beginSeinOpRitdeel;
|
|
4969
4993
|
this.combinatieVoorEindsein = combinatieVoorEindsein;
|
|
4970
4994
|
}
|
|
4971
4995
|
isValid() {
|
|
4972
|
-
return this.combinatieVoorEindsein
|
|
4996
|
+
return !!this.combinatieVoorEindsein;
|
|
4973
4997
|
}
|
|
4974
4998
|
}
|
|
4975
4999
|
|
|
@@ -5035,7 +5059,7 @@ function addRitdeelActieFunc(ritDelen, { ritDeel, actie }) {
|
|
|
5035
5059
|
const onIdsActionHandler = (action) => on(action, (_, { ids }) => ids);
|
|
5036
5060
|
const createIdsReducer = (action) => createReducer([], onIdsActionHandler(action));
|
|
5037
5061
|
const editableReducer = createReducer(true, on(setEditable, (_, { editable }) => editable));
|
|
5038
|
-
const progressIndicatorReducer = createReducer(
|
|
5062
|
+
const progressIndicatorReducer = createReducer({}, on(ShowProgress, () => ({ progressIndicator: new ProgressIndicator() })), on(ClearProgress, () => ({})));
|
|
5039
5063
|
const svgInfoReducer = createReducer([], on(SetSvgInfos, (_, { svgInfos }) => svgInfos));
|
|
5040
5064
|
const debugReducer = createReducer(false, on(SetDebug, (_, { debug }) => debug));
|
|
5041
5065
|
const ritSelectieIdsReducer = createIdsReducer(SetRitSelectieIds);
|
|
@@ -5061,12 +5085,10 @@ const ongeplandeActieReducer = createReducer(new ArrayMultimap(), on(SetOngeplan
|
|
|
5061
5085
|
ongeplandeActie.puics.forEach(puic => ongeplandeActies.delete(puic, ongeplandeActie));
|
|
5062
5086
|
return new ArrayMultimap(ongeplandeActies);
|
|
5063
5087
|
}));
|
|
5064
|
-
const ongeplandeActieSelectieIdsReducer = createReducer([],
|
|
5065
|
-
// on(MstActions.SetOngeplandeActieSelectieIds, (_, { ids }) => ids),
|
|
5066
|
-
onIdsActionHandler(SetOngeplandeActieSelectieIds), on(AddOngeplandeActie, (ids, { ongeplandeActie }) => {
|
|
5088
|
+
const ongeplandeActieSelectieIdsReducer = createReducer([], onIdsActionHandler(SetOngeplandeActieSelectieIds), on(AddOngeplandeActie, (ids, { ongeplandeActie }) => {
|
|
5067
5089
|
ongeplandeActie.puics.filter(puic => !ids.includes(puic)).forEach(puic => ids.push(puic));
|
|
5068
5090
|
return [...ids];
|
|
5069
|
-
}), on(DeleteOngeplandeActieSelectieId, (ids, { id }) =>
|
|
5091
|
+
}), on(DeleteOngeplandeActieSelectieId, (ids, { id }) => ids.includes(id) ? ids.filter(_id => _id !== id) : ids));
|
|
5070
5092
|
const gebrokenRitSelectieIdsReducer = createIdsReducer(SetGebrokenRitSelectieIds);
|
|
5071
5093
|
const alternatievenSelectieIdsReducer = createIdsReducer(SetAlternatievenSelectieIds);
|
|
5072
5094
|
const beginSeinSelectieIdsReducer = createIdsReducer(SetBeginSeinSelectieIds);
|
|
@@ -5075,16 +5097,15 @@ const alternatievenClickableIdsReducer = createIdsReducer(SetAlternatievenClicka
|
|
|
5075
5097
|
const eindSeinenClickableIdsReducer = createIdsReducer(SetEindSeinenClickableIds);
|
|
5076
5098
|
const connectorClickableIdsReducer = createIdsReducer(SetConnectorenClickableIds);
|
|
5077
5099
|
const beginSeinRightClickableIdsReducer = createIdsReducer(SetBeginSeinRightClickableIds);
|
|
5078
|
-
const nieuweRouteReducer = createReducer(
|
|
5100
|
+
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));
|
|
5079
5101
|
const signaleringsbeeldInfoDtosReducer = createReducer([], on(SetSignaleringsbeeldInfoDtos, (_, { dtos }) => dtos), on(UpdateSignaleringsbeeldInfoDtos, (_, { dtos }) => [...dtos]));
|
|
5080
5102
|
const visibleSbInfoDtosReducer = createReducer([], on(SetVisibleSignaleringsbeeldInfoDtos, (_, { dtos }) => dtos), on(UpdateVisibleSignaleringsbeeldInfoDtos, (_, { dtos }) => [...dtos]));
|
|
5081
|
-
const iaVersieReducer = createReducer({}, on(SetIaVersie, (_, { iaVersie }) => Object.assign({}, iaVersie, { versie: iaVersie.versie.toUpperCase() })));
|
|
5103
|
+
const iaVersieReducer = createReducer({ versie: 'unknown', ingangsDatum: new Date() }, on(SetIaVersie, (_, { iaVersie }) => Object.assign({}, iaVersie, { versie: iaVersie.versie.toUpperCase() })));
|
|
5082
5104
|
const algemeneRitInfoDtoReducer = createReducer({}, on(SetAlgemeneRitInfo, (_, { algemeneRitInfoDto }) => algemeneRitInfoDto));
|
|
5083
5105
|
const ongeplandeActiesBepaaldReducer = createReducer(false, on(SetOngeplandeActiesBepaald, (_, { bepaald }) => bepaald));
|
|
5084
|
-
const nieuweBewegingReducer = createReducer(
|
|
5085
|
-
const baseUrlReducer = createReducer(
|
|
5086
|
-
const focusIdsReducer = createReducer(
|
|
5087
|
-
const selectedRitdeelIdReducer = createReducer({}, on(SetSelectedRitdeel, (_, { id }) => id));
|
|
5106
|
+
const nieuweBewegingReducer = createReducer([], on(UpdateRit, (_, { bewegingen }) => bewegingen));
|
|
5107
|
+
const baseUrlReducer = createReducer('', on(SetBaseUrl, (_, { baseUrl }) => baseUrl));
|
|
5108
|
+
const focusIdsReducer = createReducer([], on(focusOpIds, (_, { puics }) => puics));
|
|
5088
5109
|
const storeReducers = {
|
|
5089
5110
|
ritDelen: ritdelenReducer,
|
|
5090
5111
|
ritSelectieIds: ritSelectieIdsReducer,
|
|
@@ -5113,9 +5134,9 @@ const storeReducers = {
|
|
|
5113
5134
|
nieuweBewegingen: nieuweBewegingReducer,
|
|
5114
5135
|
baseUrl: baseUrlReducer,
|
|
5115
5136
|
focusIds: focusIdsReducer,
|
|
5116
|
-
selectedRitdeelId: selectedRitdeelIdReducer
|
|
5117
5137
|
};
|
|
5118
5138
|
|
|
5139
|
+
// @ts-nocheck
|
|
5119
5140
|
class ZoneUtil {
|
|
5120
5141
|
constructor(ngZone) {
|
|
5121
5142
|
this.ngZone = ngZone;
|
|
@@ -5178,6 +5199,7 @@ class MstViewerModule {
|
|
|
5178
5199
|
constructor(service, zoneUtil) {
|
|
5179
5200
|
this.service = service;
|
|
5180
5201
|
// maak de EditorService toegankelijk voor GWT code
|
|
5202
|
+
// @ts-ignore
|
|
5181
5203
|
window['rpe'] = {
|
|
5182
5204
|
EditorService: zoneUtil.proxy(service)
|
|
5183
5205
|
};
|