@loxia/mst-viewer 8.1.3-202512031128 → 8.1.3-202512061923
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 -33
- 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 +32 -42
- 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 +389 -396
- 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 +8 -23
- 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 -3
- 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 } 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,47 +2400,36 @@ 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
|
+
this.store.select('visibleSbInfoDtos')
|
|
2407
|
+
]).pipe(take(1), map(([algemeneRitInfoDto, iaVersie, visibleSbInfoDtos]) => {
|
|
2408
|
+
let actieDto = null;
|
|
2409
|
+
if (actie) {
|
|
2410
|
+
actieDto = {
|
|
2411
|
+
pplgNaam: actie.pplgNaam,
|
|
2412
|
+
ritActieTypeOmschrijving: actie.ritActieTypeOmschrijving,
|
|
2413
|
+
ritActieStatus: actie.ritActieStatus,
|
|
2414
|
+
bewegingId: actie.bewegingId,
|
|
2415
|
+
wisselType: actie.wisselType,
|
|
2416
|
+
wisselNaam: actie.wisselNaam,
|
|
2417
|
+
wisselKantCode: actie.wisselKantCode,
|
|
2418
|
+
vanKilometerlint: actie.vanKilometerlint,
|
|
2419
|
+
vanKilometrering: actie.vanKilometrering,
|
|
2420
|
+
totKilometerlint: actie.totKilometerlint,
|
|
2421
|
+
totKilometrering: actie.totKilometrering
|
|
2422
|
+
};
|
|
2423
|
+
}
|
|
2424
|
+
return {
|
|
2425
|
+
iaVersie: iaVersie.versie,
|
|
2426
|
+
meldingLevel: melding.meldingLevel,
|
|
2427
|
+
meldingMessage: melding.meldingMessage,
|
|
2428
|
+
actieDto,
|
|
2429
|
+
algemeneRitInfoDto,
|
|
2430
|
+
sbinfoDtos: visibleSbInfoDtos
|
|
2397
2431
|
};
|
|
2398
|
-
}
|
|
2399
|
-
return {
|
|
2400
|
-
iaVersie,
|
|
2401
|
-
meldingLevel: melding.meldingLevel,
|
|
2402
|
-
meldingMessage: melding.meldingMessage,
|
|
2403
|
-
actieDto,
|
|
2404
|
-
algemeneRitInfoDto,
|
|
2405
|
-
sbinfoDtos: this.getSbInfoDtos()
|
|
2406
|
-
};
|
|
2407
|
-
}
|
|
2408
|
-
getSbInfoDtos() {
|
|
2409
|
-
const sbInfoDtos = [];
|
|
2410
|
-
this.store.select('visibleSbInfoDtos').pipe(take(1)).subscribe(dtos => {
|
|
2411
|
-
dtos.forEach(d => {
|
|
2412
|
-
sbInfoDtos.push(d);
|
|
2413
|
-
});
|
|
2414
|
-
});
|
|
2415
|
-
return sbInfoDtos;
|
|
2432
|
+
}));
|
|
2416
2433
|
}
|
|
2417
2434
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LoggingHelper, deps: [{ token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2418
2435
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LoggingHelper }); }
|
|
@@ -2515,6 +2532,7 @@ class ActieHelper {
|
|
|
2515
2532
|
this.messagesService = messagesService;
|
|
2516
2533
|
this.store = store;
|
|
2517
2534
|
this.loggingHelper = loggingHelper;
|
|
2535
|
+
this.debug = false;
|
|
2518
2536
|
this.store.select('debug').subscribe(debug => this.debug = debug);
|
|
2519
2537
|
}
|
|
2520
2538
|
static getActieTopoElements(ritDeel, sbmService) {
|
|
@@ -2548,10 +2566,10 @@ class ActieHelper {
|
|
|
2548
2566
|
}
|
|
2549
2567
|
}
|
|
2550
2568
|
static actieComparator(actie1, actie2) {
|
|
2551
|
-
if (actie1.vanKilometrering !== actie2.vanKilometrering) {
|
|
2569
|
+
if (actie1.vanKilometrering && actie2.vanKilometrering && actie1.vanKilometrering !== actie2.vanKilometrering) {
|
|
2552
2570
|
return actie1.vanKilometrering > actie2.vanKilometrering ? 1 : -1;
|
|
2553
2571
|
}
|
|
2554
|
-
if (actie1.ritActieTypeOmschrijving !== actie2.ritActieTypeOmschrijving) {
|
|
2572
|
+
if (actie1.ritActieTypeOmschrijving && actie2.ritActieTypeOmschrijving && actie1.ritActieTypeOmschrijving !== actie2.ritActieTypeOmschrijving) {
|
|
2555
2573
|
return actie1.ritActieTypeOmschrijving > actie2.ritActieTypeOmschrijving ? 1 : -1;
|
|
2556
2574
|
}
|
|
2557
2575
|
if (actie1.wisselNaam !== actie2.wisselNaam) {
|
|
@@ -2591,9 +2609,9 @@ class ActieHelper {
|
|
|
2591
2609
|
// make sure the elems are sorted in ascending order
|
|
2592
2610
|
static sorteerTopoElementen(topoElems) {
|
|
2593
2611
|
const topoElementen = topoElems.slice();
|
|
2594
|
-
let lint =
|
|
2595
|
-
let first
|
|
2596
|
-
let second
|
|
2612
|
+
let lint = undefined;
|
|
2613
|
+
let first;
|
|
2614
|
+
let second;
|
|
2597
2615
|
for (const topoElement of topoElementen) {
|
|
2598
2616
|
let kilometreringen = null;
|
|
2599
2617
|
const kms = JsJavaUtil.listToArray(topoElement.getKilometreringen());
|
|
@@ -2625,11 +2643,11 @@ class ActieHelper {
|
|
|
2625
2643
|
if (!totKilometreringen && vanKilometreringen) {
|
|
2626
2644
|
totKilometreringen = [new MstKilometrering(vanKilometreringen[0].getKmLint(), 100000)];
|
|
2627
2645
|
}
|
|
2628
|
-
if (vanKilometreringen[0] > totKilometreringen[0]) {
|
|
2646
|
+
if (vanKilometreringen && totKilometreringen && vanKilometreringen[0] > totKilometreringen[0]) {
|
|
2629
2647
|
kmRanges.push(KmRange.rangeVoorStrekObject(e, this.addKm(vanKilometreringen, -1), this.addKm(totKilometreringen, 1)));
|
|
2630
2648
|
}
|
|
2631
2649
|
else {
|
|
2632
|
-
kmRanges.push(KmRange.rangeVoorStrekObject(e, this.addKm(vanKilometreringen, 1), this.addKm(totKilometreringen, -1)));
|
|
2650
|
+
kmRanges.push(KmRange.rangeVoorStrekObject(e, this.addKm(vanKilometreringen ?? [], 1), this.addKm(totKilometreringen ?? [], -1)));
|
|
2633
2651
|
}
|
|
2634
2652
|
});
|
|
2635
2653
|
}
|
|
@@ -2720,21 +2738,23 @@ class ActieHelper {
|
|
|
2720
2738
|
else {
|
|
2721
2739
|
const puics = [];
|
|
2722
2740
|
kmRanges.forEach(kmRange => {
|
|
2723
|
-
|
|
2724
|
-
|
|
2725
|
-
|
|
2726
|
-
|
|
2727
|
-
|
|
2728
|
-
|
|
2729
|
-
|
|
2730
|
-
|
|
2731
|
-
|
|
2741
|
+
if (actie.vanKilometrering && actie.vanKilometerlint && actie.totKilometrering && actie.totKilometerlint) {
|
|
2742
|
+
let vanKilometrering = new MstKilometrering(actie.vanKilometerlint, actie.vanKilometrering);
|
|
2743
|
+
let totKilometrering = new MstKilometrering(actie.totKilometerlint, actie.totKilometrering);
|
|
2744
|
+
if (actie.vanKilometrering > actie.totKilometrering) {
|
|
2745
|
+
const temp = { van: vanKilometrering, tot: totKilometrering };
|
|
2746
|
+
vanKilometrering = temp.tot;
|
|
2747
|
+
totKilometrering = temp.van;
|
|
2748
|
+
}
|
|
2749
|
+
if (kmRange.heeftOverlap(vanKilometrering, totKilometrering)) {
|
|
2750
|
+
puics.push(kmRange.topologyElement.getPuic());
|
|
2751
|
+
}
|
|
2732
2752
|
}
|
|
2733
2753
|
});
|
|
2734
2754
|
if (puics.length === 0) {
|
|
2735
2755
|
actieZonderElementen.push(actie.id);
|
|
2736
2756
|
const melding = MeldingBuilder.actieHighlightError(actieZonderElementen);
|
|
2737
|
-
|
|
2757
|
+
this.loggingHelper.maakLogDTO(melding, actie).pipe(tap(dto => logMeldingDTOs.push(dto))).subscribe();
|
|
2738
2758
|
}
|
|
2739
2759
|
retval.putAll(actie, puics);
|
|
2740
2760
|
}
|
|
@@ -2750,7 +2770,7 @@ class ActieHelper {
|
|
|
2750
2770
|
verwerkTopoElementen(topoElementen) {
|
|
2751
2771
|
const kmRanges = [];
|
|
2752
2772
|
let topoElementenZonderKms = [];
|
|
2753
|
-
let laatstePuntKms =
|
|
2773
|
+
let laatstePuntKms = undefined;
|
|
2754
2774
|
topoElementen.forEach(elem => {
|
|
2755
2775
|
const kms = JsJavaUtil.listToArray(elem.getKilometreringen());
|
|
2756
2776
|
if (kms.length > 0) {
|
|
@@ -2764,7 +2784,7 @@ class ActieHelper {
|
|
|
2764
2784
|
}
|
|
2765
2785
|
});
|
|
2766
2786
|
if (topoElementenZonderKms.length > 0 && laatstePuntKms) {
|
|
2767
|
-
ActieHelper.corrigeerTopoElementenZonderKms(topoElementenZonderKms, laatstePuntKms,
|
|
2787
|
+
ActieHelper.corrigeerTopoElementenZonderKms(topoElementenZonderKms, laatstePuntKms, undefined, kmRanges);
|
|
2768
2788
|
}
|
|
2769
2789
|
return kmRanges;
|
|
2770
2790
|
}
|
|
@@ -2827,14 +2847,14 @@ class ActieHelper {
|
|
|
2827
2847
|
if (ActieHelper.isKantCodeLinks(kantcode)) {
|
|
2828
2848
|
return wissel.getLeft();
|
|
2829
2849
|
}
|
|
2830
|
-
return
|
|
2850
|
+
return undefined;
|
|
2831
2851
|
}
|
|
2832
2852
|
bepaalPuicVoorWisselSlijpenActie(actie) {
|
|
2833
2853
|
const storingsSymboolPuic = this.sbmService.getSBWissel(actie.wisselNaam, actie.pplgNaam)?.getStoringSymboolPuic();
|
|
2834
2854
|
if (!storingsSymboolPuic && this.debug) {
|
|
2835
2855
|
const melding = MeldingBuilder.actieHighlightError([actie.id]);
|
|
2836
2856
|
this.messagesService.showMessage(MessageBuilder.actieHighlightError([actie.id]));
|
|
2837
|
-
this.
|
|
2857
|
+
this.loggingHelper.maakLogDTO(melding, actie).pipe(tap(logDto => this.mstLogResource.logMessages([logDto]))).subscribe();
|
|
2838
2858
|
}
|
|
2839
2859
|
return storingsSymboolPuic ? [storingsSymboolPuic] : [];
|
|
2840
2860
|
}
|
|
@@ -2849,10 +2869,16 @@ class RitdelenLijstComponent {
|
|
|
2849
2869
|
constructor(store, sbmService) {
|
|
2850
2870
|
this.store = store;
|
|
2851
2871
|
this.sbmService = sbmService;
|
|
2872
|
+
this.nietGeplandeActies = [];
|
|
2852
2873
|
this.focusEmitter = new EventEmitter();
|
|
2853
2874
|
this.keurAlleActiesGoed = new EventEmitter();
|
|
2875
|
+
this.ritdeelViewModels = [];
|
|
2854
2876
|
this.selectedRitdeelActies = [];
|
|
2855
2877
|
this.selectedRitdeelOngeplandeActies = [];
|
|
2878
|
+
this.disableActieKnoppenVanRitdeel = true;
|
|
2879
|
+
this.editable = false;
|
|
2880
|
+
this.ongeplandeActiesMap = new ArrayMultimap();
|
|
2881
|
+
this.geplandeActies = new ArrayMultimap();
|
|
2856
2882
|
this.NG_ACTIE_PREFIX = '* ';
|
|
2857
2883
|
this.subscriptions = [];
|
|
2858
2884
|
this.subscriptions.push(store.select('ritDelen').subscribe((ritdelen) => {
|
|
@@ -2863,9 +2889,6 @@ class RitdelenLijstComponent {
|
|
|
2863
2889
|
this.subscriptions.push(store.select('ongeplandeActies').subscribe(acties => this.ongeplandeActiesMap = acties));
|
|
2864
2890
|
this.subscriptions.push(store.select('geplandeActies').subscribe(acties => this.geplandeActies = acties));
|
|
2865
2891
|
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
2892
|
this.subscriptions.push(combineLatest([
|
|
2870
2893
|
this.store.select('ritDelen'),
|
|
2871
2894
|
this.store.select('ongeplandeActies')
|
|
@@ -2902,12 +2925,14 @@ class RitdelenLijstComponent {
|
|
|
2902
2925
|
this.store.dispatch(deleteRitdeel(ritdeel));
|
|
2903
2926
|
}
|
|
2904
2927
|
deleteActiesUitRit() {
|
|
2905
|
-
this.selectedRitdeel
|
|
2928
|
+
this.selectedRitdeel?.acties.slice().forEach(actie => {
|
|
2906
2929
|
this.deleteActieUitRit(actie);
|
|
2907
2930
|
});
|
|
2908
2931
|
}
|
|
2909
2932
|
deleteActieUitRit(actie) {
|
|
2910
|
-
|
|
2933
|
+
if (!this.selectedRitdeel)
|
|
2934
|
+
return;
|
|
2935
|
+
const acties = this.selectedRitdeel.acties ?? [];
|
|
2911
2936
|
const idx = acties.indexOf(actie);
|
|
2912
2937
|
if (idx >= 0) {
|
|
2913
2938
|
this.verhuisActieNaarOngepland(actie);
|
|
@@ -2933,7 +2958,7 @@ class RitdelenLijstComponent {
|
|
|
2933
2958
|
}
|
|
2934
2959
|
voegActieToeAanRit(ongeplandeActie) {
|
|
2935
2960
|
const idx = this.selectedRitdeelOngeplandeActies.indexOf(ongeplandeActie);
|
|
2936
|
-
if (idx >= 0) {
|
|
2961
|
+
if (idx >= 0 && this.selectedRitdeel) {
|
|
2937
2962
|
this.store.dispatch(addRitdeelActie(this.selectedRitdeel, this.selectedRitdeelOngeplandeActies[idx].actie));
|
|
2938
2963
|
this.store.dispatch(AddGeplandeActie(ongeplandeActie.actie, ongeplandeActie.puics));
|
|
2939
2964
|
this.store.dispatch(DeleteOngeplandeActie(ongeplandeActie));
|
|
@@ -3035,13 +3060,13 @@ class RitdelenLijstComponent {
|
|
|
3035
3060
|
return `${prefix}${ActieHelper.getVSTActieOmschrijving(actie)}`;
|
|
3036
3061
|
}
|
|
3037
3062
|
bepaalPrefixVoorActieOmschrijving(actie) {
|
|
3038
|
-
const
|
|
3039
|
-
if (this.selectedRitdeel
|
|
3063
|
+
const noPrefix = '';
|
|
3064
|
+
if (this.selectedRitdeel?.acties.includes(actie)) {
|
|
3040
3065
|
// Afwijkende naam bij niet gevisualiseerde actie in rit
|
|
3041
3066
|
const puics = this.geplandeActies.get(actie);
|
|
3042
|
-
return puics.length > 0 ?
|
|
3067
|
+
return puics.length > 0 ? noPrefix : this.NG_ACTIE_PREFIX;
|
|
3043
3068
|
}
|
|
3044
|
-
return
|
|
3069
|
+
return noPrefix;
|
|
3045
3070
|
}
|
|
3046
3071
|
actieVanKmTekst(actie) {
|
|
3047
3072
|
if (ActieHelper.isWisselSlijpenActie(actie)) {
|
|
@@ -3062,6 +3087,7 @@ class RitdelenLijstComponent {
|
|
|
3062
3087
|
return ritdeel.getPplgString();
|
|
3063
3088
|
}
|
|
3064
3089
|
getKantCode(stand) {
|
|
3090
|
+
// @ts-ignore
|
|
3065
3091
|
if (stand === window['domein'].Stand.LINKS) {
|
|
3066
3092
|
return 'L';
|
|
3067
3093
|
}
|
|
@@ -3198,49 +3224,18 @@ class RitdeelViewModel {
|
|
|
3198
3224
|
}
|
|
3199
3225
|
}
|
|
3200
3226
|
|
|
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
3227
|
class ViewerControlsComponent {
|
|
3236
3228
|
constructor(store, viewerControlsService, bewegingUtils) {
|
|
3237
3229
|
this.store = store;
|
|
3238
3230
|
this.viewerControlsService = viewerControlsService;
|
|
3239
3231
|
this.bewegingUtils = bewegingUtils;
|
|
3240
3232
|
this.paginationSize = 4;
|
|
3233
|
+
this.treinpad = undefined;
|
|
3234
|
+
this.goedgekeurd = new EventEmitter();
|
|
3241
3235
|
this.printing$ = this.viewerControlsService.isPrinting$();
|
|
3242
3236
|
this.valideRit$ = this.viewerControlsService.isValideRit$();
|
|
3243
3237
|
this.subscriptions = new Subscription();
|
|
3238
|
+
this.editable = false;
|
|
3244
3239
|
this.subscriptions.add(this.store.select('editable').subscribe(editable => this.editable = editable));
|
|
3245
3240
|
}
|
|
3246
3241
|
ngOnChanges({ treinpad }) {
|
|
@@ -3252,24 +3247,23 @@ class ViewerControlsComponent {
|
|
|
3252
3247
|
return this.editable && this.viewerControlsService.selectieInfos.length !== 0;
|
|
3253
3248
|
}
|
|
3254
3249
|
goedkeurenClick() {
|
|
3255
|
-
|
|
3256
|
-
|
|
3257
|
-
|
|
3258
|
-
|
|
3259
|
-
|
|
3260
|
-
|
|
3261
|
-
|
|
3250
|
+
this.store.select('ritDelen').pipe(filter(ritdelen => !!ritdelen), tap(ritDelen => {
|
|
3251
|
+
if (this.treinpad) {
|
|
3252
|
+
delete this.treinpad.aantalRitActies;
|
|
3253
|
+
this.treinpad.bewegingen = this.bewegingUtils.extractBewegingenUitRitdelen(ritDelen, this.viewerControlsService.origineelTreinPad.bewegingen);
|
|
3254
|
+
this.goedgekeurd.emit(this.treinpad);
|
|
3255
|
+
this.viewerControlsService.setOrigineelTreinPad(this.treinpad);
|
|
3256
|
+
}
|
|
3257
|
+
})).subscribe();
|
|
3262
3258
|
}
|
|
3263
3259
|
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",
|
|
3260
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: ViewerControlsComponent, selector: "viewer-controls", inputs: { paginationSize: "paginationSize", treinpad: "treinpad", goedgekeurd: "goedgekeurd" }, usesOnChanges: true, ngImport: i0, template: "<button id=\"toonSideNavKnop\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm open-sidenav-button\"\n (click)=\"viewerControlsService.toggleSideNavVisible()\"\n [class.active]=\"viewerControlsService.sideNavOpen$ | async\"\n [hidden]=\"printing$ | async\">Ritdetails\n</button>\n<button *ngIf=\"showGoedkeuren()\"\n id=\"goedkeurenKnop\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm goedkeuren-button\"\n (click)=\"goedkeurenClick()\"\n [disabled]=\"(valideRit$ | async ) === false\"\n [hidden]=\"printing$ | async\">Goedkeuren\n</button>\n\n<carousel-controls [paginationSize]=\"paginationSize\"\n [sideNavOpen]=\"viewerControlsService.sideNavOpen$ | async\">\n</carousel-controls>\n", styles: [".open-sidenav-button.active{visibility:hidden}.open-sidenav-button,.goedkeuren-button{position:absolute;top:15px;z-index:600}.open-sidenav-button{left:15px}.goedkeuren-button{right:15px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CarouselControlsComponent, selector: "carousel-controls", inputs: ["paginationSize", "sideNavOpen"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
|
|
3265
3261
|
}
|
|
3266
3262
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ViewerControlsComponent, decorators: [{
|
|
3267
3263
|
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 [
|
|
3264
|
+
args: [{ selector: 'viewer-controls', template: "<button id=\"toonSideNavKnop\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm open-sidenav-button\"\n (click)=\"viewerControlsService.toggleSideNavVisible()\"\n [class.active]=\"viewerControlsService.sideNavOpen$ | async\"\n [hidden]=\"printing$ | async\">Ritdetails\n</button>\n<button *ngIf=\"showGoedkeuren()\"\n id=\"goedkeurenKnop\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm goedkeuren-button\"\n (click)=\"goedkeurenClick()\"\n [disabled]=\"(valideRit$ | async ) === false\"\n [hidden]=\"printing$ | async\">Goedkeuren\n</button>\n\n<carousel-controls [paginationSize]=\"paginationSize\"\n [sideNavOpen]=\"viewerControlsService.sideNavOpen$ | async\">\n</carousel-controls>\n", styles: [".open-sidenav-button.active{visibility:hidden}.open-sidenav-button,.goedkeuren-button{position:absolute;top:15px;z-index:600}.open-sidenav-button{left:15px}.goedkeuren-button{right:15px}\n"] }]
|
|
3269
3265
|
}], ctorParameters: () => [{ type: i2$1.Store }, { type: ViewerControlService }, { type: BewegingUtils }], propDecorators: { paginationSize: [{
|
|
3270
3266
|
type: Input
|
|
3271
|
-
}], iaversieinfo: [{
|
|
3272
|
-
type: Input
|
|
3273
3267
|
}], treinpad: [{
|
|
3274
3268
|
type: Input
|
|
3275
3269
|
}], goedgekeurd: [{
|
|
@@ -3324,7 +3318,7 @@ class ActiePopoverBepaler {
|
|
|
3324
3318
|
ongeplandeActies.entries.forEach(entry => {
|
|
3325
3319
|
const treinNummerActieInfos = puicNaarOngeplandeActieMap.get(entry.key);
|
|
3326
3320
|
if (!treinNummerActieInfos?.map(({ actie }) => actie).includes(entry.value.actie)) {
|
|
3327
|
-
puicNaarOngeplandeActieMap.put(entry.key, {
|
|
3321
|
+
puicNaarOngeplandeActieMap.put(entry.key, { actie: entry.value.actie });
|
|
3328
3322
|
}
|
|
3329
3323
|
});
|
|
3330
3324
|
}
|
|
@@ -3384,12 +3378,15 @@ class SvgVisualisatieComponent {
|
|
|
3384
3378
|
this.actieHelper = actieHelper;
|
|
3385
3379
|
this.sbmService = sbmService;
|
|
3386
3380
|
this.editorService = editorService;
|
|
3381
|
+
this.nietGeplandeActies = [];
|
|
3382
|
+
this.useClickArea = false;
|
|
3387
3383
|
this.svgInfos$ = this.store.select('svgInfos');
|
|
3388
3384
|
this.popoverInfos = [];
|
|
3389
3385
|
this.clickableIds = [];
|
|
3390
3386
|
this.rightClickableIds = [];
|
|
3391
3387
|
this.contextMenuActions = [];
|
|
3392
3388
|
this.contextMenuStyle = { display: 'none' };
|
|
3389
|
+
this.editable = false;
|
|
3393
3390
|
this.puicNaarBeginSeinRitdeel = new Map();
|
|
3394
3391
|
this.puicNaarEindSeinCombinatie = new Map();
|
|
3395
3392
|
this.puicNaarAlternatieveRoute = new Map();
|
|
@@ -3413,7 +3410,7 @@ class SvgVisualisatieComponent {
|
|
|
3413
3410
|
}));
|
|
3414
3411
|
}
|
|
3415
3412
|
ngOnInit() {
|
|
3416
|
-
document.getElementById('contextMenu')
|
|
3413
|
+
document.getElementById('contextMenu')?.addEventListener('mouseleave', () => this.hideContextMenu());
|
|
3417
3414
|
}
|
|
3418
3415
|
ngOnDestroy() {
|
|
3419
3416
|
this.subscriptions.forEach(s => s.unsubscribe());
|
|
@@ -3440,7 +3437,6 @@ class SvgVisualisatieComponent {
|
|
|
3440
3437
|
this.store.dispatch(navigeerBuitenRit(puic));
|
|
3441
3438
|
}
|
|
3442
3439
|
}
|
|
3443
|
-
this.store.dispatch(SetSelectedRitdeel(undefined));
|
|
3444
3440
|
}
|
|
3445
3441
|
handleImxviewRightClick(evt) {
|
|
3446
3442
|
const fn = () => {
|
|
@@ -3471,7 +3467,7 @@ class SvgVisualisatieComponent {
|
|
|
3471
3467
|
handleNieuweRouteToegevoegd() {
|
|
3472
3468
|
this.store.select('nieuweRoute')
|
|
3473
3469
|
.subscribe((nieuweRoute) => {
|
|
3474
|
-
if (nieuweRoute
|
|
3470
|
+
if (nieuweRoute?.isValid()) {
|
|
3475
3471
|
this.store.dispatch(ResetNieuweRoute());
|
|
3476
3472
|
this.store.dispatch(ritdeelInvoegen(nieuweRoute));
|
|
3477
3473
|
}
|
|
@@ -3584,7 +3580,7 @@ class SvgVisualisatieComponent {
|
|
|
3584
3580
|
});
|
|
3585
3581
|
this.viewerControlsService.setValideRit(!gebrokenRit);
|
|
3586
3582
|
this.store.dispatch(SetGeplandeActies(actieOpRitSelectiePuics));
|
|
3587
|
-
const actieOpRitSelectiePuicsArray =
|
|
3583
|
+
const actieOpRitSelectiePuicsArray = Array.from(actieOpRitSelectiePuics.values()).flat();
|
|
3588
3584
|
this.store.dispatch(SetActieOpRitSelectieIds(actieOpRitSelectiePuicsArray));
|
|
3589
3585
|
ritSelectiePuics = ritSelectiePuics.filter(item => actieOpRitSelectiePuicsArray.indexOf(item) < 0); // make mutually exclusive
|
|
3590
3586
|
this.store.dispatch(SetRitSelectieIds(ritSelectiePuics));
|
|
@@ -3640,6 +3636,9 @@ class MstviewerComponent {
|
|
|
3640
3636
|
this.printBewegingService = printBewegingService;
|
|
3641
3637
|
this.paginationSize = 4;
|
|
3642
3638
|
this.baseurl = 'https://acceptatie.raildesign.nl';
|
|
3639
|
+
this.debug = false;
|
|
3640
|
+
this.viewer = false;
|
|
3641
|
+
this.useClickArea = false;
|
|
3643
3642
|
this.goedgekeurd = new EventEmitter();
|
|
3644
3643
|
this.subscriptions = new Subscription();
|
|
3645
3644
|
this.subscriptions.add(this.store.select('nieuweBewegingen').subscribe(nieuweRit => {
|
|
@@ -3690,23 +3689,26 @@ class MstviewerComponent {
|
|
|
3690
3689
|
}
|
|
3691
3690
|
}
|
|
3692
3691
|
printFocusBeweging(bewegingId) {
|
|
3693
|
-
return this.printBewegingService.printBeweging(bewegingId, this.paginationSize
|
|
3692
|
+
return this.printBewegingService.printBeweging(bewegingId, this.paginationSize);
|
|
3694
3693
|
}
|
|
3695
3694
|
keurAlleActiesGoed() {
|
|
3696
3695
|
this.viewerControlsService.keurAlleActiesGoed(this.ongeplandeActies);
|
|
3697
3696
|
}
|
|
3698
3697
|
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 [
|
|
3698
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: MstviewerComponent, selector: "mst-viewer", inputs: { iaversieinfo: "iaversieinfo", treinpad: "treinpad", ongeplandeActies: "ongeplandeActies", paginationSize: "paginationSize", baseurl: "baseurl", debug: "debug", viewer: "viewer", useClickArea: "useClickArea" }, outputs: { goedgekeurd: "goedgekeurd" }, usesOnChanges: true, ngImport: i0, template: "<loxia-messages></loxia-messages>\n<loxia-overlay *ngIf=\"(progressIndicator$ | async)\">\n <loxia-progress-indicator id=\"progress-indicator\" [border]=\"false\" upperText=\"\">\n </loxia-progress-indicator>\n</loxia-overlay>\n\n<div style=\"position: relative\">\n <rpe-component [baseurl]=\"baseurl\" path=\"/mst/editor/editor.nocache.js\"></rpe-component>\n\n <svg-visualisatie [useClickArea]=\"useClickArea\" [nietGeplandeActies]=\"ongeplandeActies\"></svg-visualisatie>\n\n <nav [class.active]=\"(viewerControlsService.sideNavOpen$ | async) === false\" id=\"sidebar\">\n <div id=\"dismiss\">\n <em id=\"verbergSideNav\" class=\"fa fa-arrow-left\" (click)=\"viewerControlsService.toggleSideNavVisible()\">×</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
3699
|
}
|
|
3701
3700
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MstviewerComponent, decorators: [{
|
|
3702
3701
|
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 [
|
|
3702
|
+
args: [{ selector: 'mst-viewer', template: "<loxia-messages></loxia-messages>\n<loxia-overlay *ngIf=\"(progressIndicator$ | async)\">\n <loxia-progress-indicator id=\"progress-indicator\" [border]=\"false\" upperText=\"\">\n </loxia-progress-indicator>\n</loxia-overlay>\n\n<div style=\"position: relative\">\n <rpe-component [baseurl]=\"baseurl\" path=\"/mst/editor/editor.nocache.js\"></rpe-component>\n\n <svg-visualisatie [useClickArea]=\"useClickArea\" [nietGeplandeActies]=\"ongeplandeActies\"></svg-visualisatie>\n\n <nav [class.active]=\"(viewerControlsService.sideNavOpen$ | async) === false\" id=\"sidebar\">\n <div id=\"dismiss\">\n <em id=\"verbergSideNav\" class=\"fa fa-arrow-left\" (click)=\"viewerControlsService.toggleSideNavVisible()\">×</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
3703
|
}], ctorParameters: () => [{ type: i2$1.Store }, { type: ViewerControlService }, { type: DebugService }, { type: PrintBewegingService }], propDecorators: { iaversieinfo: [{
|
|
3705
|
-
type: Input
|
|
3704
|
+
type: Input,
|
|
3705
|
+
args: [{ required: true }]
|
|
3706
3706
|
}], treinpad: [{
|
|
3707
|
-
type: Input
|
|
3707
|
+
type: Input,
|
|
3708
|
+
args: [{ required: true }]
|
|
3708
3709
|
}], ongeplandeActies: [{
|
|
3709
|
-
type: Input
|
|
3710
|
+
type: Input,
|
|
3711
|
+
args: [{ required: true }]
|
|
3710
3712
|
}], paginationSize: [{
|
|
3711
3713
|
type: Input
|
|
3712
3714
|
}], baseurl: [{
|
|
@@ -3722,24 +3724,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
3722
3724
|
}] } });
|
|
3723
3725
|
|
|
3724
3726
|
let SignaleringsbeeldInfoResource = class SignaleringsbeeldInfoResource extends Resource {
|
|
3725
|
-
constructor(restHandler, store) {
|
|
3727
|
+
constructor(restHandler, store, sbControllerService) {
|
|
3726
3728
|
super(restHandler);
|
|
3729
|
+
this.restHandler = restHandler;
|
|
3727
3730
|
this.store = store;
|
|
3731
|
+
this.sbControllerService = sbControllerService;
|
|
3728
3732
|
this.subscriptions = new Subscription();
|
|
3729
|
-
this.subscriptions.add(this.store.select('baseUrl').subscribe(baseUrl =>
|
|
3733
|
+
this.subscriptions.add(this.store.select('baseUrl').subscribe(baseUrl => {
|
|
3734
|
+
this.$setUrl(baseUrl);
|
|
3735
|
+
sbControllerService.configuration.basePath = baseUrl + '/mst';
|
|
3736
|
+
}));
|
|
3730
3737
|
}
|
|
3731
3738
|
ngOnDestroy() {
|
|
3732
3739
|
this.subscriptions.unsubscribe();
|
|
3733
3740
|
}
|
|
3734
|
-
|
|
3741
|
+
laadSignaleringsbeeldInfo(versie, pplgs) {
|
|
3742
|
+
return this.sbControllerService.getSignaleringsbeelden(versie, pplgs);
|
|
3743
|
+
}
|
|
3744
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SignaleringsbeeldInfoResource, deps: [{ token: i1$1.ResourceHandler }, { token: i2$1.Store }, { token: SbControllerService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3735
3745
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SignaleringsbeeldInfoResource }); }
|
|
3736
3746
|
};
|
|
3737
|
-
__decorate([
|
|
3738
|
-
ResourceAction({
|
|
3739
|
-
path: '/',
|
|
3740
|
-
method: ResourceRequestMethod.Post
|
|
3741
|
-
})
|
|
3742
|
-
], SignaleringsbeeldInfoResource.prototype, "laadSignaleringsbeeldInfo", void 0);
|
|
3743
3747
|
__decorate([
|
|
3744
3748
|
ResourceAction({
|
|
3745
3749
|
path: '/valideeriaversie'
|
|
@@ -3752,34 +3756,15 @@ SignaleringsbeeldInfoResource = __decorate([
|
|
|
3752
3756
|
], SignaleringsbeeldInfoResource);
|
|
3753
3757
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SignaleringsbeeldInfoResource, decorators: [{
|
|
3754
3758
|
type: Injectable
|
|
3755
|
-
}], ctorParameters: () => [{ type: i1$1.ResourceHandler }, { type: i2$1.Store }
|
|
3756
|
-
class SignaleringsbeeldInfoDto extends ResourceModel {
|
|
3757
|
-
constructor(data) {
|
|
3758
|
-
super();
|
|
3759
|
-
this.$resource = SignaleringsbeeldInfoResource;
|
|
3760
|
-
this.$setData(data);
|
|
3761
|
-
}
|
|
3762
|
-
toJSON() {
|
|
3763
|
-
return { bladnaam: this.bladNaam, pplgs: this.pplgs, metVisualisatie: this.metVisualisatie };
|
|
3764
|
-
}
|
|
3765
|
-
toString() {
|
|
3766
|
-
return `${this.bladNaam}, ${this.pplgs}, ${this.metVisualisatie}`;
|
|
3767
|
-
}
|
|
3768
|
-
$setData(data) {
|
|
3769
|
-
if (data) {
|
|
3770
|
-
this.bladNaam = data.bladNaam;
|
|
3771
|
-
this.pplgs = data.pplgs;
|
|
3772
|
-
this.metVisualisatie = data.metVisualisatie;
|
|
3773
|
-
}
|
|
3774
|
-
return this;
|
|
3775
|
-
}
|
|
3776
|
-
}
|
|
3759
|
+
}], ctorParameters: () => [{ type: i1$1.ResourceHandler }, { type: i2$1.Store }, { type: SbControllerService }], propDecorators: { getBestaatIALevering: [] } });
|
|
3777
3760
|
|
|
3778
3761
|
class BaseRestService {
|
|
3779
3762
|
constructor(httpClient, store) {
|
|
3780
3763
|
this.httpClient = httpClient;
|
|
3781
3764
|
this.store = store;
|
|
3782
3765
|
this.subscriptions = new Subscription();
|
|
3766
|
+
this.baseUrl = '';
|
|
3767
|
+
this.iaVersie = '';
|
|
3783
3768
|
this.subscriptions.add(this.store.select('baseUrl').subscribe(baseUrl => this.baseUrl = baseUrl));
|
|
3784
3769
|
this.subscriptions.add(this.store.select('iaVersie').subscribe(iaVersie => this.iaVersie = iaVersie.versie));
|
|
3785
3770
|
}
|
|
@@ -3955,13 +3940,13 @@ class Ritdeel {
|
|
|
3955
3940
|
return retval;
|
|
3956
3941
|
}
|
|
3957
3942
|
getVrijebaanRijwegplan() {
|
|
3958
|
-
return this.vrijebaanRijwegplanRijwegDwangCombi
|
|
3943
|
+
return this.vrijebaanRijwegplanRijwegDwangCombi?.rijwegplan;
|
|
3959
3944
|
}
|
|
3960
3945
|
getVrijebaanRijweg() {
|
|
3961
|
-
return this.vrijebaanRijwegplanRijwegDwangCombi
|
|
3946
|
+
return this.vrijebaanRijwegplanRijwegDwangCombi?.rijweg;
|
|
3962
3947
|
}
|
|
3963
3948
|
getVrijebaanDwang() {
|
|
3964
|
-
return this.vrijebaanRijwegplanRijwegDwangCombi
|
|
3949
|
+
return this.vrijebaanRijwegplanRijwegDwangCombi?.dwang;
|
|
3965
3950
|
}
|
|
3966
3951
|
getDwangNummer() {
|
|
3967
3952
|
return this.rijwegplanRijwegDwangCombi.getDwangNummer();
|
|
@@ -3978,7 +3963,7 @@ class Ritdeel {
|
|
|
3978
3963
|
isBinnenWindow() {
|
|
3979
3964
|
return (this.zichtbaarheid === RitdeelZichtbaarheid.ZICHTBAAR ||
|
|
3980
3965
|
this.zichtbaarheid === RitdeelZichtbaarheid.ONZICHTBAAR_DOOR_GEBRUIKER)
|
|
3981
|
-
&& this.zichtbaarBuitenPaginatie
|
|
3966
|
+
&& !this.zichtbaarBuitenPaginatie;
|
|
3982
3967
|
}
|
|
3983
3968
|
isNietBeschikbaar() {
|
|
3984
3969
|
return this.zichtbaarheid === RitdeelZichtbaarheid.ONZICHTBAAR_DOOR_SYSTEEM;
|
|
@@ -4001,10 +3986,10 @@ class Ritdeel {
|
|
|
4001
3986
|
}
|
|
4002
3987
|
}
|
|
4003
3988
|
heeftVrijebaanInfo() {
|
|
4004
|
-
return this.vrijebaanRijwegplanRijwegDwangCombi && !!this.vrijebaanRijwegplanRijwegDwangCombi.dwang;
|
|
3989
|
+
return !!this.vrijebaanRijwegplanRijwegDwangCombi && !!this.vrijebaanRijwegplanRijwegDwangCombi.dwang;
|
|
4005
3990
|
}
|
|
4006
3991
|
getVrijebaanPrlRoute() {
|
|
4007
|
-
return this.vrijebaanRijwegplanRijwegDwangCombi
|
|
3992
|
+
return this.vrijebaanRijwegplanRijwegDwangCombi?.getRoute();
|
|
4008
3993
|
}
|
|
4009
3994
|
getTopologieElementen() {
|
|
4010
3995
|
return this.topoElementen;
|
|
@@ -4036,10 +4021,10 @@ class Ritdeel {
|
|
|
4036
4021
|
getZichtbaarheidBuitenPaginatie() {
|
|
4037
4022
|
return this.zichtbaarBuitenPaginatie;
|
|
4038
4023
|
}
|
|
4039
|
-
bepaalTopologieElementen(
|
|
4040
|
-
const topoElementen =
|
|
4024
|
+
bepaalTopologieElementen(sbmService) {
|
|
4025
|
+
const topoElementen = sbmService.bepaalRouteElementen(this.getRoute());
|
|
4041
4026
|
if (this.heeftVrijebaanInfo()) {
|
|
4042
|
-
const vrijebaanTopoElementen =
|
|
4027
|
+
const vrijebaanTopoElementen = sbmService.bepaalRouteElementen(this.getVrijebaanPrlRoute());
|
|
4043
4028
|
topoElementen.push(...vrijebaanTopoElementen);
|
|
4044
4029
|
}
|
|
4045
4030
|
this.topoElementen = topoElementen;
|
|
@@ -4085,7 +4070,7 @@ class RitLezerService {
|
|
|
4085
4070
|
ritDelen.push(new Ritdeel(dwangInfo, beweging.ritActies, beweging, vrijebaanDwangInfo, vervolgSpoor, []));
|
|
4086
4071
|
}
|
|
4087
4072
|
extractVrijebaanDwangInfo(beweging, rijwegPlan, rijweg) {
|
|
4088
|
-
let vrijebaanDwangInfo =
|
|
4073
|
+
let vrijebaanDwangInfo = undefined;
|
|
4089
4074
|
let vervolgSpoor;
|
|
4090
4075
|
if (beweging.naarSpoor.endsWith(SPOOR_NAAR_VRIJEBAAN_POSTFIX) ||
|
|
4091
4076
|
beweging.naarSpoor.endsWith(SPOOR_NAAR_VEERWISSEL_VRIJEBAAN_POSTFIX)) {
|
|
@@ -4099,9 +4084,9 @@ class RitLezerService {
|
|
|
4099
4084
|
vrijebaanRijweg = vrijebaanRijwegen[0];
|
|
4100
4085
|
vrijebaanDwang = vrijebaanRijweg.getDwangVoorDwangNummer(0);
|
|
4101
4086
|
vervolgSpoor = vrijebaanRijwegplan.getVervolgSpoor(vrijebaanRijweg);
|
|
4087
|
+
vrijebaanDwangInfo =
|
|
4088
|
+
new RijwegplanRijwegDwangCombinatie(vrijebaanRijwegplan, vrijebaanRijweg, vrijebaanDwang);
|
|
4102
4089
|
}
|
|
4103
|
-
vrijebaanDwangInfo =
|
|
4104
|
-
new RijwegplanRijwegDwangCombinatie(vrijebaanRijwegplan, vrijebaanRijweg, vrijebaanDwang);
|
|
4105
4090
|
}
|
|
4106
4091
|
}
|
|
4107
4092
|
return { vrijebaanDwangInfo, vervolgSpoor };
|
|
@@ -4154,7 +4139,7 @@ class BepaalOngeplandeActiesEffect {
|
|
|
4154
4139
|
this.bepaalOngeplandeActies$ = createEffect(() => this.actions$.pipe(ofType(BepaalOngeplandeActies), withLatestFrom(this.store), map(([action, store]) => {
|
|
4155
4140
|
const puicActieMap = new ArrayMultimap();
|
|
4156
4141
|
const nietGevondenTakken = [];
|
|
4157
|
-
const logMeldingDTOs = [];
|
|
4142
|
+
const logMeldingDTOs$ = [];
|
|
4158
4143
|
const acties = store.ritDelen.flatMap(rd => rd.acties);
|
|
4159
4144
|
action.ongeplandeActies.forEach(actie => {
|
|
4160
4145
|
const alreadyAdded = acties.filter(a => a.id === actie.id).length > 0;
|
|
@@ -4170,11 +4155,11 @@ class BepaalOngeplandeActiesEffect {
|
|
|
4170
4155
|
if (!spoortak && nietGevondenTakken.indexOf(takId) < 0) {
|
|
4171
4156
|
nietGevondenTakken.push(takId);
|
|
4172
4157
|
const melding = MeldingBuilder.nietGevondenTakkenOngeplandeActies(nietGevondenTakken);
|
|
4173
|
-
logMeldingDTOs
|
|
4158
|
+
logMeldingDTOs$.push(this.loggingHelper.maakLogDTO(melding, actie));
|
|
4174
4159
|
}
|
|
4175
4160
|
else if (spoortak) {
|
|
4176
4161
|
const melding = MeldingBuilder.actieHighlightError([actie.id]);
|
|
4177
|
-
logMeldingDTOs
|
|
4162
|
+
logMeldingDTOs$.push(this.loggingHelper.maakLogDTO(melding, actie));
|
|
4178
4163
|
this.messagesService.showMessage(MessageBuilder.actieHighlightError([actie.id]));
|
|
4179
4164
|
}
|
|
4180
4165
|
}
|
|
@@ -4183,8 +4168,8 @@ class BepaalOngeplandeActiesEffect {
|
|
|
4183
4168
|
if (nietGevondenTakken.length > 0) {
|
|
4184
4169
|
this.messagesService.showMessage(MessageBuilder.nietGevondenTakkenOngeplandeActies(nietGevondenTakken));
|
|
4185
4170
|
}
|
|
4186
|
-
if (logMeldingDTOs
|
|
4187
|
-
this.mstLogResource.logMessages(
|
|
4171
|
+
if (logMeldingDTOs$.length > 0) {
|
|
4172
|
+
forkJoin(logMeldingDTOs$).pipe(tap(dtos => this.mstLogResource.logMessages(dtos))).subscribe();
|
|
4188
4173
|
}
|
|
4189
4174
|
this.store.dispatch(SetOngeplandeActies(puicActieMap));
|
|
4190
4175
|
this.store.dispatch(SetOngeplandeActieSelectieIds(Array.from(puicActieMap.keys())));
|
|
@@ -4377,7 +4362,7 @@ class FocusEffect {
|
|
|
4377
4362
|
const dwangPuics = this.getPuics(topoElementen);
|
|
4378
4363
|
if (ritdeel.isNietBeschikbaar()) {
|
|
4379
4364
|
this.store.dispatch(SetOngeplandeActiesBepaald(false));
|
|
4380
|
-
this.store.dispatch(navigeerVanaf(actie.paginationSize,
|
|
4365
|
+
this.store.dispatch(navigeerVanaf(actie.paginationSize, ritdeel));
|
|
4381
4366
|
}
|
|
4382
4367
|
return focusOpIds(dwangPuics);
|
|
4383
4368
|
})));
|
|
@@ -4399,16 +4384,16 @@ class LaadRouteFilesEffect {
|
|
|
4399
4384
|
this.ritLezer = ritLezer;
|
|
4400
4385
|
this.editorService = editorService;
|
|
4401
4386
|
this.messagesService = messagesService;
|
|
4402
|
-
this.authActions$ = createEffect(() => this.actions$.pipe(ofType(SetSignaleringsbeeldInfoDtos), map(action => this.laadRouteFiles(action))), { dispatch: false });
|
|
4387
|
+
this.authActions$ = createEffect(() => this.actions$.pipe(ofType(SetSignaleringsbeeldInfoDtos), withLatestFrom(this.store), map(([action, storeState]) => this.laadRouteFiles(action, storeState.iaVersie.versie))), { dispatch: false });
|
|
4403
4388
|
}
|
|
4404
|
-
laadRouteFiles(actie) {
|
|
4389
|
+
laadRouteFiles(actie, iaVersie) {
|
|
4405
4390
|
const isReady = this.editorService.isReady();
|
|
4406
4391
|
isReady.then(() => {
|
|
4407
4392
|
const pplgs = this.bepaalSbDtoPplgs(actie.dtos);
|
|
4408
|
-
const promise = this.editorService.laadRouteFiles(
|
|
4393
|
+
const promise = this.editorService.laadRouteFiles(iaVersie, pplgs);
|
|
4409
4394
|
promise.then(() => {
|
|
4410
4395
|
this.updateRitdelen(actie);
|
|
4411
|
-
}, err => {
|
|
4396
|
+
}, (err) => {
|
|
4412
4397
|
this.messagesService.showMessage(MessageBuilder.rwpDataNietGevonden(Utils.getValidErorrMessage(err)));
|
|
4413
4398
|
});
|
|
4414
4399
|
});
|
|
@@ -4419,7 +4404,7 @@ class LaadRouteFilesEffect {
|
|
|
4419
4404
|
if (ritdelen.length === 0) {
|
|
4420
4405
|
ritdelen = this.ritLezer.parseRit(actie.treinpad, actie.ritGewijzigdToegestaan);
|
|
4421
4406
|
}
|
|
4422
|
-
this.store.dispatch(setRitDelen(ritdelen, actie.paginationSize
|
|
4407
|
+
this.store.dispatch(setRitDelen(ritdelen, actie.paginationSize));
|
|
4423
4408
|
this.store.dispatch(setEditable(actie.treinpad.ritStatus !== 'Definitief'));
|
|
4424
4409
|
});
|
|
4425
4410
|
}, 0);
|
|
@@ -4427,7 +4412,7 @@ class LaadRouteFilesEffect {
|
|
|
4427
4412
|
bepaalSbDtoPplgs(dtos) {
|
|
4428
4413
|
const pplgs = [];
|
|
4429
4414
|
dtos.forEach(dto => {
|
|
4430
|
-
dto.pplgs
|
|
4415
|
+
dto.pplgs?.forEach(pplg => {
|
|
4431
4416
|
if (!pplgs.includes(pplg)) {
|
|
4432
4417
|
pplgs.push(pplg);
|
|
4433
4418
|
}
|
|
@@ -4468,14 +4453,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
4468
4453
|
}] });
|
|
4469
4454
|
|
|
4470
4455
|
class LaadSignaleringsbeeldenEffect {
|
|
4471
|
-
constructor(actions$, store, signaleringsBeeldManagerService, editorService, sbiResource, connectorService,
|
|
4456
|
+
constructor(actions$, store, signaleringsBeeldManagerService, editorService, sbiResource, connectorService, messagesService) {
|
|
4472
4457
|
this.actions$ = actions$;
|
|
4473
4458
|
this.store = store;
|
|
4474
4459
|
this.signaleringsBeeldManagerService = signaleringsBeeldManagerService;
|
|
4475
4460
|
this.editorService = editorService;
|
|
4476
4461
|
this.sbiResource = sbiResource;
|
|
4477
4462
|
this.connectorService = connectorService;
|
|
4478
|
-
this.
|
|
4463
|
+
this.messagesService = messagesService;
|
|
4479
4464
|
this.SVG_PIXEL_RUIMTE = 30;
|
|
4480
4465
|
this.verwerkRitdelen$ = createEffect(() => this.actions$.pipe(ofType(setRitDelen, navigeer, navigeerVanaf), withLatestFrom(this.store), map(([actie, storeState]) => {
|
|
4481
4466
|
this.store.dispatch(SetOngeplandeActiesBepaald(false));
|
|
@@ -4489,14 +4474,14 @@ class LaadSignaleringsbeeldenEffect {
|
|
|
4489
4474
|
}).pipe(switchMap(this.getOtherRand.bind(this)), switchMap(this.loadRouteFilesAndSignaleringsbeeldInfo.bind(this)), switchMap(this.loadSignaleringsbeelden.bind(this)), map(this.processSvgsAndUpdateRitdelen.bind(this))))), { dispatch: false });
|
|
4490
4475
|
}
|
|
4491
4476
|
handleSignaleringsbeeldInfo({ actie, storeState }) {
|
|
4492
|
-
return this.sbiResource.laadSignaleringsbeeldInfo(
|
|
4493
|
-
this.
|
|
4477
|
+
return this.sbiResource.laadSignaleringsbeeldInfo(storeState.iaVersie.versie, actie.pplgs).pipe(take(1), tap((dtos) => this.processResponse({ dtos, storeState, actie })), catchError((err) => {
|
|
4478
|
+
this.messagesService.showMessage(MessageBuilder.nietGevondenSBI(err));
|
|
4494
4479
|
return throwError(() => err);
|
|
4495
4480
|
}));
|
|
4496
4481
|
}
|
|
4497
4482
|
processResponse({ dtos, storeState, actie }) {
|
|
4498
4483
|
if (dtos && dtos.filter(dto => dto.metVisualisatie).length > 12) {
|
|
4499
|
-
this.
|
|
4484
|
+
this.messagesService.showMessage(MessageBuilder.meerDan12BladenGevonden(dtos.length));
|
|
4500
4485
|
}
|
|
4501
4486
|
this.store.dispatch(SetSignaleringsbeeldInfoDtos(dtos, storeState.iaVersie, actie.rit, actie.paginationSize, actie.ritGewijzigdToegestaan));
|
|
4502
4487
|
this.store.dispatch(SetVisibleSignaleringsbeeldInfoDtos(dtos));
|
|
@@ -4506,14 +4491,14 @@ class LaadSignaleringsbeeldenEffect {
|
|
|
4506
4491
|
}
|
|
4507
4492
|
loadRouteFilesAndSignaleringsbeeldInfo({ otherPplg, rand, storeState }) {
|
|
4508
4493
|
this.editorService.laadRouteFiles(storeState.iaVersie.versie, [rand.getPPLG(), otherPplg]);
|
|
4509
|
-
return this.sbiResource.laadSignaleringsbeeldInfo(
|
|
4494
|
+
return this.sbiResource.laadSignaleringsbeeldInfo(storeState.iaVersie.versie, [rand.getPPLG(), otherPplg]).pipe(map(dtos => ({ dtos, storeState })));
|
|
4510
4495
|
}
|
|
4511
4496
|
loadSignaleringsbeelden({ dtos, storeState }) {
|
|
4512
|
-
return this.editorService.laadSignaleringsbeelden(storeState.iaVersie.versie, dtos).pipe(map(svgDataUrls => ({ svgDataUrls, storeState, dtos })));
|
|
4497
|
+
return this.editorService.laadSignaleringsbeelden(storeState.iaVersie.versie, dtos).pipe(map(svgDataUrls => ({ svgDataUrls, ritDelen: storeState.ritDelen, dtos })));
|
|
4513
4498
|
}
|
|
4514
|
-
processSvgsAndUpdateRitdelen({ svgDataUrls,
|
|
4499
|
+
processSvgsAndUpdateRitdelen({ svgDataUrls, ritDelen, dtos }) {
|
|
4515
4500
|
this.verwerkSvgs(svgDataUrls);
|
|
4516
|
-
const nieuweRitdelen = this.updateRitdelen(
|
|
4501
|
+
const nieuweRitdelen = this.updateRitdelen(ritDelen, dtos);
|
|
4517
4502
|
this.store.dispatch(UpdateVisibleSignaleringsbeeldInfoDtos(dtos));
|
|
4518
4503
|
this.store.dispatch(updateRitDelen(nieuweRitdelen));
|
|
4519
4504
|
}
|
|
@@ -4526,11 +4511,11 @@ class LaadSignaleringsbeeldenEffect {
|
|
|
4526
4511
|
const visibleRitPplgs = visibleRitDelen.map(r => r.getPplg()).filter(this.distinct);
|
|
4527
4512
|
const visibleDtos = this.bepaalZichtbareDtos(visibleRitPplgs, storeDtos);
|
|
4528
4513
|
const loadingDtos = this.bepaalToLoadDtos(visibleDtos, ritDelen, visibleRitDelen, visibleRitPplgs, storeState);
|
|
4529
|
-
this.editorService.laadSignaleringsbeelden(
|
|
4514
|
+
this.editorService.laadSignaleringsbeelden(storeState.iaVersie.versie, loadingDtos).pipe(tap(svgDataUrls => {
|
|
4530
4515
|
this.verwerkSvgs(svgDataUrls);
|
|
4531
4516
|
this.updateState(ritDelen, visibleDtos, storeState, visibleRitPplgs, loadingDtos, isInit, storeDtos);
|
|
4532
4517
|
}), catchError(err => {
|
|
4533
|
-
this.
|
|
4518
|
+
this.messagesService.showMessage(MessageBuilder.rwpDataNietGevonden(Utils.getValidErorrMessage(err)));
|
|
4534
4519
|
throw err;
|
|
4535
4520
|
})).subscribe();
|
|
4536
4521
|
}
|
|
@@ -4545,10 +4530,6 @@ class LaadSignaleringsbeeldenEffect {
|
|
|
4545
4530
|
this.store.dispatch(updateRitDelen(nieuweRitdelen));
|
|
4546
4531
|
}, 0);
|
|
4547
4532
|
}
|
|
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
4533
|
verwerkSvgs(svgDataUrls) {
|
|
4553
4534
|
this.store.dispatch(SetSvgInfos(this.bepaalSvgInfos(svgDataUrls)));
|
|
4554
4535
|
}
|
|
@@ -4575,7 +4556,7 @@ class LaadSignaleringsbeeldenEffect {
|
|
|
4575
4556
|
bepaalZichtbareDtos(visibleRitPplgs, dtos) {
|
|
4576
4557
|
const visibleDtos = [];
|
|
4577
4558
|
visibleRitPplgs.forEach(pplg => {
|
|
4578
|
-
dtos.filter(dto => dto.pplgs
|
|
4559
|
+
dtos.filter(dto => dto.pplgs?.includes(pplg)).forEach(dto => {
|
|
4579
4560
|
if (!visibleDtos.includes(dto)) {
|
|
4580
4561
|
visibleDtos.push(dto);
|
|
4581
4562
|
}
|
|
@@ -4585,13 +4566,13 @@ class LaadSignaleringsbeeldenEffect {
|
|
|
4585
4566
|
dtos.filter(d => !visibleDtos.includes(d)).forEach(d => d.metVisualisatie = false);
|
|
4586
4567
|
return visibleDtos;
|
|
4587
4568
|
}
|
|
4588
|
-
distinct(value, index,
|
|
4589
|
-
return
|
|
4569
|
+
distinct(value, index, values) {
|
|
4570
|
+
return values.indexOf(value) === index;
|
|
4590
4571
|
}
|
|
4591
4572
|
addPrevNonVisibleDto(firstIdx, ritdelen, loadingDtos, visibleRitPplgs, allDtos) {
|
|
4592
4573
|
if (firstIdx >= 0) {
|
|
4593
4574
|
const pplg = ritdelen[firstIdx].getPplg();
|
|
4594
|
-
const ritdeelDtos = allDtos.filter(dto => dto.pplgs
|
|
4575
|
+
const ritdeelDtos = allDtos.filter(dto => dto.pplgs?.includes(pplg)).filter(dto => !loadingDtos.includes(dto));
|
|
4595
4576
|
if (!visibleRitPplgs.includes(pplg) && ritdeelDtos.length > 0) {
|
|
4596
4577
|
ritdeelDtos.filter(d => !loadingDtos.includes(d)).forEach(d => {
|
|
4597
4578
|
d.metVisualisatie = false;
|
|
@@ -4606,7 +4587,7 @@ class LaadSignaleringsbeeldenEffect {
|
|
|
4606
4587
|
addNextNonVisibleDto(lastIdx, ritdelen, loadingDtos, visibleRitPplgs, allDtos) {
|
|
4607
4588
|
if (lastIdx <= ritdelen.length - 1) {
|
|
4608
4589
|
const pplg = ritdelen[lastIdx].getPplg();
|
|
4609
|
-
const ritdeelDtos = allDtos.filter(dto => dto.pplgs
|
|
4590
|
+
const ritdeelDtos = allDtos.filter(dto => dto.pplgs?.includes(pplg)).filter(dto => !loadingDtos.includes(dto));
|
|
4610
4591
|
if (!visibleRitPplgs.includes(pplg) && ritdeelDtos.length > 0) {
|
|
4611
4592
|
ritdeelDtos.filter(d => !loadingDtos.includes(d)).forEach(d => {
|
|
4612
4593
|
d.metVisualisatie = false;
|
|
@@ -4675,7 +4656,7 @@ class LaadSignaleringsbeeldenEffect {
|
|
|
4675
4656
|
}
|
|
4676
4657
|
}
|
|
4677
4658
|
}
|
|
4678
|
-
this.
|
|
4659
|
+
this.updateZichtbaarheidAangrenzendeRitdelen(min, max, ritdelen, visibleDtos);
|
|
4679
4660
|
return this.updateZichtbaarheidBuitenWindow(ritdelen, visibleDtos);
|
|
4680
4661
|
}
|
|
4681
4662
|
updateZichtbaarheidBuitenWindow(nieuweRitdelen, visibleDtos) {
|
|
@@ -4691,7 +4672,7 @@ class LaadSignaleringsbeeldenEffect {
|
|
|
4691
4672
|
}
|
|
4692
4673
|
return nieuweRitdelen;
|
|
4693
4674
|
}
|
|
4694
|
-
|
|
4675
|
+
updateZichtbaarheidAangrenzendeRitdelen(min, max, nieuweRitdelen, visibleDtos) {
|
|
4695
4676
|
let i = min - 1;
|
|
4696
4677
|
while (i >= 0) {
|
|
4697
4678
|
i = this.updateZichtbaarHeid(i, 0, visibleDtos, nieuweRitdelen) - 1;
|
|
@@ -4727,9 +4708,11 @@ class LaadSignaleringsbeeldenEffect {
|
|
|
4727
4708
|
}
|
|
4728
4709
|
bevatGevisualiseerdePplg(visibleDtos, pplg) {
|
|
4729
4710
|
for (const dto of visibleDtos) {
|
|
4730
|
-
|
|
4731
|
-
|
|
4732
|
-
|
|
4711
|
+
if (dto.pplgs) {
|
|
4712
|
+
for (const dtopplg of dto.pplgs) {
|
|
4713
|
+
if (dtopplg === pplg) {
|
|
4714
|
+
return true;
|
|
4715
|
+
}
|
|
4733
4716
|
}
|
|
4734
4717
|
}
|
|
4735
4718
|
}
|
|
@@ -4779,7 +4762,7 @@ class LaadSignaleringsbeeldenEffect {
|
|
|
4779
4762
|
pplgsWindow.push(itemPplg);
|
|
4780
4763
|
}
|
|
4781
4764
|
const pplgDtos = [];
|
|
4782
|
-
dtos.filter(dto => dto.pplgs
|
|
4765
|
+
dtos.filter(dto => dto.pplgs?.includes(itemPplg)).forEach(dto => {
|
|
4783
4766
|
if (!pplgDtos.includes(dto)) {
|
|
4784
4767
|
pplgDtos.push(dto);
|
|
4785
4768
|
}
|
|
@@ -4826,11 +4809,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
4826
4809
|
}], ctorParameters: () => [{ type: i1$2.Actions }, { type: i2$1.Store }, { type: BewegingVerrijkerService }] });
|
|
4827
4810
|
|
|
4828
4811
|
class RitdelenEffect {
|
|
4829
|
-
constructor(actions$, store, sbmService,
|
|
4812
|
+
constructor(actions$, store, sbmService, editorService) {
|
|
4830
4813
|
this.actions$ = actions$;
|
|
4831
4814
|
this.store = store;
|
|
4832
4815
|
this.sbmService = sbmService;
|
|
4833
|
-
this.
|
|
4816
|
+
this.editorService = editorService;
|
|
4834
4817
|
this.updateRitDelen$ = createEffect(() => this.actions$.pipe(ofType(updateRitDelen), withLatestFrom(this.store), map(([actie, _storeState]) => {
|
|
4835
4818
|
const nieuweRitDelen = actie.ritDelen.map(ritDeel => ritDeel.isZichtbaar() ?
|
|
4836
4819
|
ritDeel.copyMetAlternatieveRoutes(this.sbmService.bepaalAlternativeRoutes(ritDeel.getRijweg())) : ritDeel);
|
|
@@ -4848,25 +4831,25 @@ class RitdelenEffect {
|
|
|
4848
4831
|
return setRitdelenAfterUpdate(ritDelen);
|
|
4849
4832
|
})));
|
|
4850
4833
|
this.ritdeelInvoegen$ = createEffect(() => this.actions$.pipe(ofType(ritdeelInvoegen), withLatestFrom(this.store), map(([actie, storeState]) => {
|
|
4851
|
-
const ritDelen = this.ritdeelInvoegenFunc(storeState.ritDelen, actie.nieuweRoute
|
|
4834
|
+
const ritDelen = this.ritdeelInvoegenFunc(storeState.ritDelen, actie.nieuweRoute);
|
|
4852
4835
|
return setRitdelenAfterUpdate(ritDelen);
|
|
4853
4836
|
})));
|
|
4854
4837
|
}
|
|
4855
|
-
ritdeelInvoegenFunc(ritDelen, nieuweRoute
|
|
4838
|
+
ritdeelInvoegenFunc(ritDelen, nieuweRoute) {
|
|
4856
4839
|
const origineelRitdeel = nieuweRoute.beginSeinOpRitdeel.ritdeel;
|
|
4857
4840
|
const beginSein = nieuweRoute.beginSeinOpRitdeel.sein;
|
|
4858
|
-
const rijwegplan =
|
|
4841
|
+
const rijwegplan = this.editorService.getRijwegplan(beginSein.getPPLG());
|
|
4859
4842
|
const dwangen = JsJavaUtil.listToArray(rijwegplan.getOnderliggendeDwangenTotEnVanSein(origineelRitdeel.getDwang(), beginSein));
|
|
4860
4843
|
const isSamengesteldeRoute = dwangen[0] && dwangen[1];
|
|
4861
4844
|
let newRitdeel1 = origineelRitdeel;
|
|
4862
4845
|
if (isSamengesteldeRoute) {
|
|
4863
|
-
newRitdeel1 = this.verwerkSamengesteldeRoute(origineelRitdeel, rijwegplan, dwangen,
|
|
4846
|
+
newRitdeel1 = this.verwerkSamengesteldeRoute(origineelRitdeel, rijwegplan, dwangen, ritDelen);
|
|
4864
4847
|
}
|
|
4865
|
-
if (nieuweRoute.combinatieVoorEindsein
|
|
4866
|
-
this.extendRitdeelMetVrijebaanInfo(newRitdeel1, nieuweRoute
|
|
4848
|
+
if (nieuweRoute.combinatieVoorEindsein?.isVrijeBaanRijweg()) {
|
|
4849
|
+
this.extendRitdeelMetVrijebaanInfo(newRitdeel1, nieuweRoute);
|
|
4867
4850
|
}
|
|
4868
4851
|
else {
|
|
4869
|
-
this.maakNieuwRitdeel(newRitdeel1, nieuweRoute,
|
|
4852
|
+
this.maakNieuwRitdeel(newRitdeel1, nieuweRoute, ritDelen);
|
|
4870
4853
|
}
|
|
4871
4854
|
if (isSamengesteldeRoute) {
|
|
4872
4855
|
ritDelen.splice(ritDelen.indexOf(origineelRitdeel), 1);
|
|
@@ -4881,38 +4864,39 @@ class RitdelenEffect {
|
|
|
4881
4864
|
}
|
|
4882
4865
|
}
|
|
4883
4866
|
}
|
|
4884
|
-
verwerkSamengesteldeRoute(origineelRitdeel, rijwegplan, dwangen,
|
|
4867
|
+
verwerkSamengesteldeRoute(origineelRitdeel, rijwegplan, dwangen, ritDelen) {
|
|
4885
4868
|
// dwangen in 2 nieuwe ritdelen verwerken voor de knip
|
|
4886
4869
|
const nieuweRijweg1 = rijwegplan.getRijwegVoorSeinen(dwangen[0].getRoute().getBeginSein(), dwangen[0].getRoute().getEindSein());
|
|
4887
4870
|
const dwangInfo1 = new RijwegplanRijwegDwangCombinatie(rijwegplan, nieuweRijweg1, dwangen[0]);
|
|
4888
|
-
const newRitdeel1 = new Ritdeel(dwangInfo1, [],
|
|
4871
|
+
const newRitdeel1 = new Ritdeel(dwangInfo1, [], undefined, undefined, undefined, []);
|
|
4889
4872
|
// remove vrijbaan info uit ritdeel
|
|
4890
|
-
newRitdeel1.vrijebaanRijwegplanRijwegDwangCombi =
|
|
4891
|
-
newRitdeel1.vervolgSpoor =
|
|
4892
|
-
newRitdeel1.bepaalTopologieElementen(sbmService);
|
|
4873
|
+
newRitdeel1.vrijebaanRijwegplanRijwegDwangCombi = undefined;
|
|
4874
|
+
newRitdeel1.vervolgSpoor = undefined;
|
|
4875
|
+
newRitdeel1.bepaalTopologieElementen(this.sbmService);
|
|
4893
4876
|
this.insertRitdeel(ritDelen, origineelRitdeel, newRitdeel1);
|
|
4894
4877
|
const nieuweRijweg2 = rijwegplan.getRijwegVoorSeinen(dwangen[1].getRoute().getBeginSein(), dwangen[1].getRoute().getEindSein());
|
|
4895
4878
|
const dwangInfo2 = new RijwegplanRijwegDwangCombinatie(rijwegplan, nieuweRijweg2, dwangen[1]);
|
|
4896
|
-
const newRitdeel2 = new Ritdeel(dwangInfo2, [],
|
|
4897
|
-
newRitdeel2.bepaalTopologieElementen(sbmService);
|
|
4879
|
+
const newRitdeel2 = new Ritdeel(dwangInfo2, [], undefined, undefined, undefined, []);
|
|
4880
|
+
newRitdeel2.bepaalTopologieElementen(this.sbmService);
|
|
4898
4881
|
this.insertRitdeel(ritDelen, newRitdeel1, newRitdeel2);
|
|
4899
4882
|
return newRitdeel1;
|
|
4900
4883
|
}
|
|
4901
|
-
extendRitdeelMetVrijebaanInfo(newRitdeel1, nieuweRoute
|
|
4884
|
+
extendRitdeelMetVrijebaanInfo(newRitdeel1, nieuweRoute) {
|
|
4902
4885
|
newRitdeel1.vrijebaanRijwegplanRijwegDwangCombi = nieuweRoute.combinatieVoorEindsein;
|
|
4903
|
-
const vbrwp = nieuweRoute.combinatieVoorEindsein
|
|
4904
|
-
newRitdeel1.vervolgSpoor =
|
|
4905
|
-
|
|
4886
|
+
const vbrwp = nieuweRoute.combinatieVoorEindsein?.rijwegplan;
|
|
4887
|
+
newRitdeel1.vervolgSpoor = nieuweRoute.combinatieVoorEindsein ?
|
|
4888
|
+
vbrwp.getVervolgSpoor(nieuweRoute.combinatieVoorEindsein?.rijweg) : undefined;
|
|
4889
|
+
newRitdeel1.bepaalTopologieElementen(this.sbmService);
|
|
4906
4890
|
}
|
|
4907
|
-
maakNieuwRitdeel(newRitdeel1, nieuweRoute,
|
|
4891
|
+
maakNieuwRitdeel(newRitdeel1, nieuweRoute, ritDelen) {
|
|
4908
4892
|
let newRitdeel = this.createRitdeel(nieuweRoute);
|
|
4909
|
-
const altRoutes = sbmService.bepaalAlternativeRoutes(newRitdeel.getRijweg());
|
|
4893
|
+
const altRoutes = this.sbmService.bepaalAlternativeRoutes(newRitdeel.getRijweg());
|
|
4910
4894
|
newRitdeel = newRitdeel.copyMetAlternatieveRoutes(altRoutes);
|
|
4911
|
-
newRitdeel.bepaalTopologieElementen(sbmService);
|
|
4895
|
+
newRitdeel.bepaalTopologieElementen(this.sbmService);
|
|
4912
4896
|
this.insertRitdeel(ritDelen, newRitdeel1, newRitdeel);
|
|
4913
4897
|
}
|
|
4914
4898
|
createRitdeel(nieuweRoute) {
|
|
4915
|
-
return new Ritdeel(nieuweRoute.combinatieVoorEindsein, [],
|
|
4899
|
+
return new Ritdeel(nieuweRoute.combinatieVoorEindsein, [], undefined, undefined, undefined, []);
|
|
4916
4900
|
}
|
|
4917
4901
|
insertRitdeel(ritdelen, naRitdeelPositie, newRitdeel) {
|
|
4918
4902
|
const idx = ritdelen.indexOf(naRitdeelPositie);
|
|
@@ -4963,13 +4947,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
4963
4947
|
type: Injectable
|
|
4964
4948
|
}], ctorParameters: () => [{ type: i1$2.Actions }, { type: i2$1.Store }, { type: SignaleringsBeeldManagerService }, { type: i4.SignaleringsbeeldSvgUtilityService }] });
|
|
4965
4949
|
|
|
4950
|
+
class ProgressIndicator {
|
|
4951
|
+
constructor(lowerText, upperText, iconClass) {
|
|
4952
|
+
this.lowerText = '';
|
|
4953
|
+
this.upperText = '';
|
|
4954
|
+
this.iconClass = '';
|
|
4955
|
+
this.lowerText = lowerText ?? this.lowerText;
|
|
4956
|
+
this.upperText = upperText ?? this.upperText;
|
|
4957
|
+
this.iconClass = iconClass ?? this.iconClass;
|
|
4958
|
+
}
|
|
4959
|
+
}
|
|
4960
|
+
|
|
4966
4961
|
class NieuweRoute {
|
|
4967
4962
|
constructor(beginSeinOpRitdeel, combinatieVoorEindsein) {
|
|
4968
4963
|
this.beginSeinOpRitdeel = beginSeinOpRitdeel;
|
|
4969
4964
|
this.combinatieVoorEindsein = combinatieVoorEindsein;
|
|
4970
4965
|
}
|
|
4971
4966
|
isValid() {
|
|
4972
|
-
return this.combinatieVoorEindsein
|
|
4967
|
+
return !!this.combinatieVoorEindsein;
|
|
4973
4968
|
}
|
|
4974
4969
|
}
|
|
4975
4970
|
|
|
@@ -5035,7 +5030,7 @@ function addRitdeelActieFunc(ritDelen, { ritDeel, actie }) {
|
|
|
5035
5030
|
const onIdsActionHandler = (action) => on(action, (_, { ids }) => ids);
|
|
5036
5031
|
const createIdsReducer = (action) => createReducer([], onIdsActionHandler(action));
|
|
5037
5032
|
const editableReducer = createReducer(true, on(setEditable, (_, { editable }) => editable));
|
|
5038
|
-
const progressIndicatorReducer = createReducer(
|
|
5033
|
+
const progressIndicatorReducer = createReducer({}, on(ShowProgress, () => ({ progressIndicator: new ProgressIndicator() })), on(ClearProgress, () => ({})));
|
|
5039
5034
|
const svgInfoReducer = createReducer([], on(SetSvgInfos, (_, { svgInfos }) => svgInfos));
|
|
5040
5035
|
const debugReducer = createReducer(false, on(SetDebug, (_, { debug }) => debug));
|
|
5041
5036
|
const ritSelectieIdsReducer = createIdsReducer(SetRitSelectieIds);
|
|
@@ -5061,12 +5056,10 @@ const ongeplandeActieReducer = createReducer(new ArrayMultimap(), on(SetOngeplan
|
|
|
5061
5056
|
ongeplandeActie.puics.forEach(puic => ongeplandeActies.delete(puic, ongeplandeActie));
|
|
5062
5057
|
return new ArrayMultimap(ongeplandeActies);
|
|
5063
5058
|
}));
|
|
5064
|
-
const ongeplandeActieSelectieIdsReducer = createReducer([],
|
|
5065
|
-
// on(MstActions.SetOngeplandeActieSelectieIds, (_, { ids }) => ids),
|
|
5066
|
-
onIdsActionHandler(SetOngeplandeActieSelectieIds), on(AddOngeplandeActie, (ids, { ongeplandeActie }) => {
|
|
5059
|
+
const ongeplandeActieSelectieIdsReducer = createReducer([], onIdsActionHandler(SetOngeplandeActieSelectieIds), on(AddOngeplandeActie, (ids, { ongeplandeActie }) => {
|
|
5067
5060
|
ongeplandeActie.puics.filter(puic => !ids.includes(puic)).forEach(puic => ids.push(puic));
|
|
5068
5061
|
return [...ids];
|
|
5069
|
-
}), on(DeleteOngeplandeActieSelectieId, (ids, { id }) =>
|
|
5062
|
+
}), on(DeleteOngeplandeActieSelectieId, (ids, { id }) => ids.includes(id) ? ids.filter(_id => _id !== id) : ids));
|
|
5070
5063
|
const gebrokenRitSelectieIdsReducer = createIdsReducer(SetGebrokenRitSelectieIds);
|
|
5071
5064
|
const alternatievenSelectieIdsReducer = createIdsReducer(SetAlternatievenSelectieIds);
|
|
5072
5065
|
const beginSeinSelectieIdsReducer = createIdsReducer(SetBeginSeinSelectieIds);
|
|
@@ -5075,16 +5068,15 @@ const alternatievenClickableIdsReducer = createIdsReducer(SetAlternatievenClicka
|
|
|
5075
5068
|
const eindSeinenClickableIdsReducer = createIdsReducer(SetEindSeinenClickableIds);
|
|
5076
5069
|
const connectorClickableIdsReducer = createIdsReducer(SetConnectorenClickableIds);
|
|
5077
5070
|
const beginSeinRightClickableIdsReducer = createIdsReducer(SetBeginSeinRightClickableIds);
|
|
5078
|
-
const nieuweRouteReducer = createReducer(
|
|
5071
|
+
const nieuweRouteReducer = createReducer(undefined, on(SetNieuwRouteBeginSein, (_, { startSeinOpRitdeel }) => new NieuweRoute(startSeinOpRitdeel, undefined)), on(SetNieuwRouteEindSein, (nieuweRoute, { combinatieVoorEindsein }) => nieuweRoute ? new NieuweRoute(nieuweRoute.beginSeinOpRitdeel, combinatieVoorEindsein) : undefined), on(ResetNieuweRoute, () => undefined));
|
|
5079
5072
|
const signaleringsbeeldInfoDtosReducer = createReducer([], on(SetSignaleringsbeeldInfoDtos, (_, { dtos }) => dtos), on(UpdateSignaleringsbeeldInfoDtos, (_, { dtos }) => [...dtos]));
|
|
5080
5073
|
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() })));
|
|
5074
|
+
const iaVersieReducer = createReducer({ versie: 'unknown', ingangsDatum: new Date() }, on(SetIaVersie, (_, { iaVersie }) => Object.assign({}, iaVersie, { versie: iaVersie.versie.toUpperCase() })));
|
|
5082
5075
|
const algemeneRitInfoDtoReducer = createReducer({}, on(SetAlgemeneRitInfo, (_, { algemeneRitInfoDto }) => algemeneRitInfoDto));
|
|
5083
5076
|
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));
|
|
5077
|
+
const nieuweBewegingReducer = createReducer([], on(UpdateRit, (_, { bewegingen }) => bewegingen));
|
|
5078
|
+
const baseUrlReducer = createReducer('', on(SetBaseUrl, (_, { baseUrl }) => baseUrl));
|
|
5079
|
+
const focusIdsReducer = createReducer([], on(focusOpIds, (_, { puics }) => puics));
|
|
5088
5080
|
const storeReducers = {
|
|
5089
5081
|
ritDelen: ritdelenReducer,
|
|
5090
5082
|
ritSelectieIds: ritSelectieIdsReducer,
|
|
@@ -5113,9 +5105,9 @@ const storeReducers = {
|
|
|
5113
5105
|
nieuweBewegingen: nieuweBewegingReducer,
|
|
5114
5106
|
baseUrl: baseUrlReducer,
|
|
5115
5107
|
focusIds: focusIdsReducer,
|
|
5116
|
-
selectedRitdeelId: selectedRitdeelIdReducer
|
|
5117
5108
|
};
|
|
5118
5109
|
|
|
5110
|
+
// @ts-nocheck
|
|
5119
5111
|
class ZoneUtil {
|
|
5120
5112
|
constructor(ngZone) {
|
|
5121
5113
|
this.ngZone = ngZone;
|
|
@@ -5178,6 +5170,7 @@ class MstViewerModule {
|
|
|
5178
5170
|
constructor(service, zoneUtil) {
|
|
5179
5171
|
this.service = service;
|
|
5180
5172
|
// maak de EditorService toegankelijk voor GWT code
|
|
5173
|
+
// @ts-ignore
|
|
5181
5174
|
window['rpe'] = {
|
|
5182
5175
|
EditorService: zoneUtil.proxy(service)
|
|
5183
5176
|
};
|
|
@@ -5260,5 +5253,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
5260
5253
|
* Generated bundle index. Do not edit.
|
|
5261
5254
|
*/
|
|
5262
5255
|
|
|
5263
|
-
export { MeldingEvent, MstViewerModule, MstviewerComponent, STORE_CONFIG,
|
|
5256
|
+
export { MeldingEvent, MstViewerModule, MstviewerComponent, STORE_CONFIG, SignaleringsbeeldInfoResource };
|
|
5264
5257
|
//# sourceMappingURL=loxia-mst-viewer.mjs.map
|