@loxia/mst-viewer 8.1.3-202511211033 → 8.1.3-202511211546
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 +16 -17
- 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 +2 -1
- package/esm2022/generated/openapi/model/signaleringsbeeldRequestDto.mjs +13 -0
- package/esm2022/lib/atomic-components/message/message.component.mjs +3 -3
- package/esm2022/lib/atomic-components/progress-indicator/progress-indicator.entity.mjs +4 -7
- package/esm2022/lib/components/carousel-controls/carousel-controls.component.mjs +6 -5
- package/esm2022/lib/components/mstviewer/mstviewer.component.mjs +7 -13
- package/esm2022/lib/components/ritdelen-lijst/ritdelen-lijst.component.mjs +12 -18
- package/esm2022/lib/components/rpe/rpe.component.mjs +2 -6
- package/esm2022/lib/components/svg-visualisatie/svg-visualisatie.component.mjs +7 -8
- package/esm2022/lib/components/viewer-controls/viewer-controls.component.mjs +13 -16
- 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 +5 -6
- package/esm2022/lib/resources/signaleringsbeeldinfo.resource.mjs +12 -16
- package/esm2022/lib/services/base-rest.service.mjs +1 -3
- 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 +1 -3
- package/esm2022/lib/services/print-beweging.service.mjs +20 -23
- 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 +6 -8
- package/esm2022/lib/state/actions/actions.mjs +5 -2
- package/esm2022/lib/state/actions/ritdelen.actions.mjs +4 -4
- package/esm2022/lib/state/effect/bepaal-ongeplande-acties.effect.mjs +7 -8
- 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 +27 -25
- package/esm2022/lib/state/effect/ritdelen.effect.mjs +25 -26
- package/esm2022/lib/state/mst-editor-state.mjs +13 -10
- package/esm2022/lib/state/reducer/rit-delen.reducer.mjs +1 -1
- package/esm2022/lib/util/actie-helper.mjs +22 -26
- package/esm2022/lib/util/actie-popover-bepaler.mjs +2 -2
- package/esm2022/lib/util/logging-helper.mjs +33 -31
- package/esm2022/lib/util/multi-map.mjs +3 -2
- package/esm2022/lib/util/utils.mjs +5 -5
- package/esm2022/lib/util/zone-util.mjs +1 -2
- package/esm2022/src/generated/openapi/api/sbController.service.mjs +16 -17
- 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 +2 -1
- package/esm2022/src/generated/openapi/model/signaleringsbeeldRequestDto.mjs +13 -0
- package/fesm2022/loxia-mst-viewer-src-generated-openapi.mjs +27 -16
- package/fesm2022/loxia-mst-viewer-src-generated-openapi.mjs.map +1 -1
- package/fesm2022/loxia-mst-viewer.mjs +365 -387
- 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 +8 -0
- package/generated/openapi/model/models.d.ts +1 -0
- package/generated/openapi/model/signaleringsbeeldRequestDto.d.ts +16 -0
- 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 +3 -1
- 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 +4 -3
- package/lib/model/km-range.d.ts +1 -1
- package/lib/model/nieuwe-route.d.ts +2 -2
- package/lib/model/ritdeel.d.ts +10 -11
- package/lib/resources/signaleringsbeeldinfo.resource.d.ts +7 -7
- package/lib/services/editor.service.d.ts +2 -2
- package/lib/services/print-beweging.service.d.ts +6 -4
- 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 +2 -0
- package/lib/state/actions/actions.d.ts +21 -14
- package/lib/state/actions/ritdelen.actions.d.ts +7 -3
- package/lib/state/effect/bepaal-ongeplande-acties.effect.d.ts +1 -2
- package/lib/state/effect/delete-ongeplande-actie.effect.d.ts +1 -1
- package/lib/state/effect/laad-route-files.effect.d.ts +5 -4
- package/lib/state/effect/laad-signaleringsbeelden.effect.d.ts +13 -13
- package/lib/state/effect/ritdelen.effect.d.ts +6 -7
- package/lib/state/mst-editor-state.d.ts +90 -26
- package/lib/util/actie-helper.d.ts +4 -4
- package/lib/util/logging-helper.d.ts +1 -2
- package/lib/util/utils.d.ts +1 -0
- 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 +8 -0
- package/src/generated/openapi/model/models.d.ts +1 -0
- package/src/generated/openapi/model/signaleringsbeeldRequestDto.d.ts +16 -0
|
@@ -11,13 +11,13 @@ import { createEffect, ofType, EffectsModule } from '@ngrx/effects';
|
|
|
11
11
|
import * as i2$1 from '@ngrx/store';
|
|
12
12
|
import { createAction, union, select, createReducer, on, StoreModule } from '@ngrx/store';
|
|
13
13
|
import { ResourceModule } from '@ngx-resource/handler-ngx-http';
|
|
14
|
-
import { BehaviorSubject, from, Subscription, combineLatest,
|
|
15
|
-
import { filter, map,
|
|
14
|
+
import { BehaviorSubject, from, Subscription, combineLatest, of, throwError } from 'rxjs';
|
|
15
|
+
import { take, filter, map, catchError, withLatestFrom, switchMap, tap } from 'rxjs/operators';
|
|
16
16
|
import * as i1 from '@angular/common/http';
|
|
17
17
|
import { HttpHeaders, HttpContext, HttpParams } from '@angular/common/http';
|
|
18
18
|
import { __decorate } from 'tslib';
|
|
19
19
|
import * as i1$1 from '@ngx-resource/core';
|
|
20
|
-
import { Resource, ResourceAction, ResourceParams, ResourceModel } from '@ngx-resource/core';
|
|
20
|
+
import { Resource, ResourceAction, ResourceRequestMethod, ResourceParams, ResourceModel } from '@ngx-resource/core';
|
|
21
21
|
|
|
22
22
|
class Message {
|
|
23
23
|
constructor(severity, text, timeout = 0) {
|
|
@@ -41,7 +41,7 @@ class MessageComponent {
|
|
|
41
41
|
this.onClearMessage = new EventEmitter();
|
|
42
42
|
}
|
|
43
43
|
ngOnInit() {
|
|
44
|
-
if (this.message
|
|
44
|
+
if (this.message.timeout > 0) {
|
|
45
45
|
setTimeout(() => {
|
|
46
46
|
this.closeMessage({ stopPropagation: () => null });
|
|
47
47
|
}, this.message.timeout);
|
|
@@ -53,7 +53,7 @@ class MessageComponent {
|
|
|
53
53
|
this.message = undefined;
|
|
54
54
|
}
|
|
55
55
|
get severity() {
|
|
56
|
-
return this.message
|
|
56
|
+
return this.message.severity;
|
|
57
57
|
}
|
|
58
58
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
59
59
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: MessageComponent, selector: "loxia-message", inputs: { message: "message" }, outputs: { onClearMessage: "onClearMessage" }, ngImport: i0, template: "<div id=\"alert-1\" *ngIf=\"message\"\n [ngClass]=\"severity\"\n class=\" loxia-message flex items-center p-4 text-white\" role=\"alert\">\n <svg class=\"flex-shrink-0 size-4 mt-0.5\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path d=\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z\"></path>\n <path d=\"M12 9v4\"></path>\n <path d=\"M12 17h.01\"></path>\n </svg>\n <span class=\"sr-only\">Info</span>\n <div class=\"ms-3 text-sm font-medium\">\n {{message.text}}\n </div>\n <button type=\"button\"\n (click)=\"closeMessage($event)\"\n class=\"ms-auto -mx-1.5 -my-1.5 rounded-lg inline-flex items-center justify-center h-8 w-8\" data-dismiss-target=\"#alert-1\" aria-label=\"Close\">\n <span class=\"sr-only\">Close</span>\n <svg class=\"w-3 h-3\" aria-hidden=\"true\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 14 14\">\n <path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m1 1 6 6m0 0 6 6M7 7l6-6M7 7l-6 6\"/>\n </svg>\n </button>\n</div>\n", styles: ["svg{background-color:transparent;stroke-width:unset}.loxia-message.information{background-color:#0288d1}.loxia-message.warning{background-color:#ff6a00}.loxia-message.notification{background-color:#f3ed38}.loxia-message.error{background-color:#b5061b}.loxia-message.success{background-color:#297d03}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
@@ -124,83 +124,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
124
124
|
args: [{ selector: 'loxia-progress-indicator', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"inline-block h-16 w-16 animate-spin rounded-full border-4 border-solid border-current border-e-transparent align-[-0.125em] text-surface motion-reduce:animate-[spin_1.5s_linear_infinite] dark:text-warning\"\n role=\"status\">\n <span class=\"!absolute !-m-px !h-px !w-px !overflow-hidden !whitespace-nowrap !border-0 !p-0 ![clip:rect(0,0,0,0)]\">\n Loading...\n </span>\n</div>\n" }]
|
|
125
125
|
}] });
|
|
126
126
|
|
|
127
|
-
const SET_RIT_DELEN = '[mst] SetRitDelen';
|
|
128
|
-
const SET_RIT_DELEN_AFTER_UPDATE = '[mst] SetRitDelenAfterUpdate';
|
|
129
|
-
const UPDATE_RIT_DELEN = '[mst] UpdateRitDelen';
|
|
130
|
-
const TOGGLE_RITDEEL_ZICHTBAAR = '[mst] ToggleRitdeelZichtbaar';
|
|
131
|
-
const SET_RITDEEL_ZICHTBAAR = '[mst] ZetRitdeelZichtbaar';
|
|
132
|
-
const SET_ZICHTBAARHEID_ALLE_RITDELEN = '[mst] SetZichtbaarheidAlleRitdelen';
|
|
133
|
-
const TOGGLE_ZICHTBAARHEID_VOOR_BEWEGINGEN = '[mst] ToggleZichtbaarheidVoorBewegingen';
|
|
134
|
-
const SET_ALTERNATIEVE_RIT_DELEN = '[mst] SetAlternatieveRitDelen';
|
|
135
|
-
const RITDEEL_INVOEGEN = '[mst] RitdeelInvoegen';
|
|
136
|
-
const DELETE_RITDEEL = '[mst] DeleteRitdeel';
|
|
137
|
-
const DELETE_RITDEEL_ACTIE = '[mst] DeleteRitdeelActie';
|
|
138
|
-
const ADD_RITDEEL_ACTIE = '[mst] AddRitdeelActie';
|
|
139
|
-
const NAVIGEER = '[mst] Navigeer';
|
|
140
|
-
const NAVIGEER_VANAF = '[mst] NavigeerVanaf';
|
|
141
|
-
const setRitDelen = createAction(SET_RIT_DELEN, (ritDelen, paginationSize) => ({ ritDelen, paginationSize }));
|
|
142
|
-
const setRitdelenAfterUpdate = createAction(SET_RIT_DELEN_AFTER_UPDATE, (ritDelen) => ({ ritDelen }));
|
|
143
|
-
const navigeer = createAction(NAVIGEER, (stapSize, paginationSize) => ({ stapSize, paginationSize }));
|
|
144
|
-
const navigeerVanaf = createAction(NAVIGEER_VANAF, (paginationSize, ritdeel) => ({ paginationSize, ritdeel }));
|
|
145
|
-
const updateRitDelen = createAction(UPDATE_RIT_DELEN, (ritDelen) => ({ ritDelen }));
|
|
146
|
-
const toggleRitdeelZichtbaar = createAction(TOGGLE_RITDEEL_ZICHTBAAR, (ritDeel) => ({ ritDeel }));
|
|
147
|
-
const setRitdeelZichtbaar = createAction(SET_RITDEEL_ZICHTBAAR, (ritDeel, zichtbaar) => ({ ritDeel, zichtbaar }));
|
|
148
|
-
const deleteRitdeel = createAction(DELETE_RITDEEL, (ritDeel) => ({ ritDeel }));
|
|
149
|
-
const deleteRitdeelActie = createAction(DELETE_RITDEEL_ACTIE, (ritDeel, actie) => ({ ritDeel, actie }));
|
|
150
|
-
const addRitdeelActie = createAction(ADD_RITDEEL_ACTIE, (ritDeel, actie) => ({ ritDeel, actie }));
|
|
151
|
-
const setZichtbaarheidAlleRitdelen = createAction(SET_ZICHTBAARHEID_ALLE_RITDELEN, (zichtbaarheid) => ({ zichtbaarheid }));
|
|
152
|
-
const toggleZichtbaarheidVoorBewegingen = createAction(TOGGLE_ZICHTBAARHEID_VOOR_BEWEGINGEN, (bewegingIds) => ({ bewegingIds }));
|
|
153
|
-
const setAlternatieveRitDelen = createAction(SET_ALTERNATIEVE_RIT_DELEN, (alternatieveRitDeel) => ({ alternatieveRitDeel }));
|
|
154
|
-
const ritdeelInvoegen = createAction(RITDEEL_INVOEGEN, (nieuweRoute) => ({ nieuweRoute }));
|
|
155
|
-
// do not export return value
|
|
156
|
-
const ritdeelActions = union({
|
|
157
|
-
setRitDelen,
|
|
158
|
-
updateRitDelen,
|
|
159
|
-
setRitdelenAfterUpdate,
|
|
160
|
-
toggleRitdeelZichtbaar,
|
|
161
|
-
setRitdeelZichtbaar,
|
|
162
|
-
deleteRitdeel,
|
|
163
|
-
deleteRitdeelActie,
|
|
164
|
-
addRitdeelActie,
|
|
165
|
-
setZichtbaarheidAlleRitdelen,
|
|
166
|
-
toggleZichtbaarheidVoorBewegingen,
|
|
167
|
-
setAlternatieveRitDelen,
|
|
168
|
-
ritdeelInvoegen
|
|
169
|
-
});
|
|
170
|
-
|
|
171
|
-
class CarouselControlsComponent {
|
|
172
|
-
constructor(store) {
|
|
173
|
-
this.store = store;
|
|
174
|
-
this.paginationSize = 4;
|
|
175
|
-
this.sideNavOpen = false;
|
|
176
|
-
this.ritdelen$ = this.store.select('ritDelen').pipe(filter(r => r?.length > 0));
|
|
177
|
-
this.kanLinks$ = this.ritdelen$.pipe(map(r => this.kanLinksNavigeren(r)));
|
|
178
|
-
this.kanRechts$ = this.ritdelen$.pipe(map(r => this.kanRechtsNavigeren(r)));
|
|
179
|
-
}
|
|
180
|
-
kanLinksNavigeren(ritDelen) {
|
|
181
|
-
return ritDelen.length > this.paginationSize && !ritDelen[0].isBinnenWindow();
|
|
182
|
-
}
|
|
183
|
-
kanRechtsNavigeren(ritDelen) {
|
|
184
|
-
return ritDelen.length > this.paginationSize && !ritDelen[ritDelen.length - 1].isBinnenWindow();
|
|
185
|
-
}
|
|
186
|
-
navigeerNaarLinks(event) {
|
|
187
|
-
this.store.dispatch(navigeer(event?.ctrlKey ? -1 : -(this.paginationSize - 1), this.paginationSize));
|
|
188
|
-
}
|
|
189
|
-
navigeerNaarRechts(event) {
|
|
190
|
-
this.store.dispatch(navigeer(event?.ctrlKey ? 1 : this.paginationSize - 1, this.paginationSize));
|
|
191
|
-
}
|
|
192
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CarouselControlsComponent, deps: [{ token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
193
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: CarouselControlsComponent, selector: "carousel-controls", inputs: { paginationSize: "paginationSize", sideNavOpen: "sideNavOpen" }, ngImport: i0, template: "<div *ngIf=\"ritdelen$ | async\">\n <a class=\"loxia-carousel-control-prev\" [ngClass]=\"(sideNavOpen)?'carousel-sidebar-open':'carousel-sidebar'\" role=\"button\"\n data-slide=\"prev\" (click)=\"navigeerNaarLinks($event)\" [hidden]=\"(kanLinks$ | async) === false\">\n <span id=\"previous-page\" class=\"loxia-carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"loxia-sr-only\">Previous</span>\n</a>\n <a class=\"loxia-carousel-control-next\" style=\"width: 2%;\" role=\"button\" data-slide=\"next\" (click)=\"navigeerNaarRechts($event)\"\n [hidden]=\"(kanRechts$ | async) === false\">\n <span id=\"next-page\" class=\"loxia-carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"loxia-sr-only\">Next</span>\n </a>\n</div>\n", styles: [".loxia-carousel-control-prev{left:0}.loxia-carousel-control-next{right:0}.loxia-carousel-control-next-icon,.loxia-carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:50%/100% 100% no-repeat}.loxia-carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\")}.loxia-carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\")}.loxia-carousel-control-next:focus,.loxia-carousel-control-next:hover,.loxia-carousel-control-prev:focus,.loxia-carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.loxia-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.loxia-carousel-control-next,.loxia-carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}.carousel-sidebar{width:2%}.carousel-sidebar-open{width:2%;transition:all .3s;left:470px}[hidden]{display:none!important}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
|
|
194
|
-
}
|
|
195
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CarouselControlsComponent, decorators: [{
|
|
196
|
-
type: Component,
|
|
197
|
-
args: [{ selector: 'carousel-controls', template: "<div *ngIf=\"ritdelen$ | async\">\n <a class=\"loxia-carousel-control-prev\" [ngClass]=\"(sideNavOpen)?'carousel-sidebar-open':'carousel-sidebar'\" role=\"button\"\n data-slide=\"prev\" (click)=\"navigeerNaarLinks($event)\" [hidden]=\"(kanLinks$ | async) === false\">\n <span id=\"previous-page\" class=\"loxia-carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"loxia-sr-only\">Previous</span>\n</a>\n <a class=\"loxia-carousel-control-next\" style=\"width: 2%;\" role=\"button\" data-slide=\"next\" (click)=\"navigeerNaarRechts($event)\"\n [hidden]=\"(kanRechts$ | async) === false\">\n <span id=\"next-page\" class=\"loxia-carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"loxia-sr-only\">Next</span>\n </a>\n</div>\n", styles: [".loxia-carousel-control-prev{left:0}.loxia-carousel-control-next{right:0}.loxia-carousel-control-next-icon,.loxia-carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:50%/100% 100% no-repeat}.loxia-carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\")}.loxia-carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\")}.loxia-carousel-control-next:focus,.loxia-carousel-control-next:hover,.loxia-carousel-control-prev:focus,.loxia-carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.loxia-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.loxia-carousel-control-next,.loxia-carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}.carousel-sidebar{width:2%}.carousel-sidebar-open{width:2%;transition:all .3s;left:470px}[hidden]{display:none!important}\n"] }]
|
|
198
|
-
}], ctorParameters: () => [{ type: i2$1.Store }], propDecorators: { paginationSize: [{
|
|
199
|
-
type: Input
|
|
200
|
-
}], sideNavOpen: [{
|
|
201
|
-
type: Input
|
|
202
|
-
}] } });
|
|
203
|
-
|
|
204
127
|
const version = '8.1.3-SNAPSHOT';
|
|
205
128
|
|
|
206
129
|
const SET_EDITABLE = '[mst] SetEditable';
|
|
@@ -246,6 +169,7 @@ const LAAD_EN_VERWERK_SIGNALERINGSBEELD_INFO = '[mst] laadEnVerwerkSignaleringsb
|
|
|
246
169
|
const FOCUS_OP_RITDEEL = '[mst] focusOpRitdeel';
|
|
247
170
|
const FOCUS_OP_IDS = '[mst] focusOpIds';
|
|
248
171
|
const BEPAAL_SB_INFOS = '[mst] bepaalSbInfos';
|
|
172
|
+
const SET_SELECTED_RITDEEL = '[mst] SetSelectedRitdeel';
|
|
249
173
|
const setEditable = createAction(SET_EDITABLE, (editable) => ({ editable }));
|
|
250
174
|
const SetRitSelectieIds = createAction(SET_RIT_SELECTIE_IDS, (ids) => ({ ids }));
|
|
251
175
|
const SetGeplandeActies = createAction(SET_GEPLANDE_ACTIES, (geplandeActiesMap) => ({ geplandeActiesMap }));
|
|
@@ -289,6 +213,7 @@ const navigeerBuitenRit = createAction(NAVIGEER_BUITEN_RIT, (randPuic) => ({ ran
|
|
|
289
213
|
const focusOpRitdeel = createAction(FOCUS_OP_RITDEEL, (ritdeel, paginationSize, iaVersieInfo) => ({ ritdeel, paginationSize, iaVersieInfo }));
|
|
290
214
|
const focusOpIds = createAction(FOCUS_OP_IDS, (puics) => ({ puics }));
|
|
291
215
|
const bepaalSbInfos = createAction(BEPAAL_SB_INFOS, (rit, ongeplandeActies, iaVersie, ritGewijzigdToegestaan, paginationSize) => ({ rit, ongeplandeActies, iaVersie, ritGewijzigdToegestaan, paginationSize }));
|
|
216
|
+
const SetSelectedRitdeel = createAction(SET_SELECTED_RITDEEL, (id) => ({ id }));
|
|
292
217
|
// do not export return value
|
|
293
218
|
const mstActions = union({
|
|
294
219
|
setEditable,
|
|
@@ -326,9 +251,89 @@ const mstActions = union({
|
|
|
326
251
|
ClearProgress,
|
|
327
252
|
BewegingInvoegen,
|
|
328
253
|
KeurAlleActiesGoed,
|
|
329
|
-
UpdateRit
|
|
254
|
+
UpdateRit,
|
|
255
|
+
setSelectedRitdeel: SetSelectedRitdeel
|
|
256
|
+
});
|
|
257
|
+
|
|
258
|
+
const SET_RIT_DELEN = '[mst] SetRitDelen';
|
|
259
|
+
const SET_RIT_DELEN_AFTER_UPDATE = '[mst] SetRitDelenAfterUpdate';
|
|
260
|
+
const UPDATE_RIT_DELEN = '[mst] UpdateRitDelen';
|
|
261
|
+
const TOGGLE_RITDEEL_ZICHTBAAR = '[mst] ToggleRitdeelZichtbaar';
|
|
262
|
+
const SET_RITDEEL_ZICHTBAAR = '[mst] ZetRitdeelZichtbaar';
|
|
263
|
+
const SET_ZICHTBAARHEID_ALLE_RITDELEN = '[mst] SetZichtbaarheidAlleRitdelen';
|
|
264
|
+
const TOGGLE_ZICHTBAARHEID_VOOR_BEWEGINGEN = '[mst] ToggleZichtbaarheidVoorBewegingen';
|
|
265
|
+
const SET_ALTERNATIEVE_RIT_DELEN = '[mst] SetAlternatieveRitDelen';
|
|
266
|
+
const RITDEEL_INVOEGEN = '[mst] RitdeelInvoegen';
|
|
267
|
+
const DELETE_RITDEEL = '[mst] DeleteRitdeel';
|
|
268
|
+
const DELETE_RITDEEL_ACTIE = '[mst] DeleteRitdeelActie';
|
|
269
|
+
const ADD_RITDEEL_ACTIE = '[mst] AddRitdeelActie';
|
|
270
|
+
const NAVIGEER = '[mst] Navigeer';
|
|
271
|
+
const NAVIGEER_VANAF = '[mst] NavigeerVanaf';
|
|
272
|
+
const setRitDelen = createAction(SET_RIT_DELEN, (ritDelen, paginationSize, iaversieinfo) => ({ ritDelen, paginationSize, iaversieinfo }));
|
|
273
|
+
const setRitdelenAfterUpdate = createAction(SET_RIT_DELEN_AFTER_UPDATE, (ritDelen) => ({ ritDelen }));
|
|
274
|
+
const navigeer = createAction(NAVIGEER, (stapSize, paginationSize, iaversieinfo) => ({ stapSize, paginationSize, iaversieinfo }));
|
|
275
|
+
const navigeerVanaf = createAction(NAVIGEER_VANAF, (paginationSize, iaversieinfo, ritdeel) => ({ paginationSize, iaversieinfo, ritdeel }));
|
|
276
|
+
const updateRitDelen = createAction(UPDATE_RIT_DELEN, (ritDelen) => ({ ritDelen }));
|
|
277
|
+
const toggleRitdeelZichtbaar = createAction(TOGGLE_RITDEEL_ZICHTBAAR, (ritDeel) => ({ ritDeel }));
|
|
278
|
+
const setRitdeelZichtbaar = createAction(SET_RITDEEL_ZICHTBAAR, (ritDeel, zichtbaar) => ({ ritDeel, zichtbaar }));
|
|
279
|
+
const deleteRitdeel = createAction(DELETE_RITDEEL, (ritDeel) => ({ ritDeel }));
|
|
280
|
+
const deleteRitdeelActie = createAction(DELETE_RITDEEL_ACTIE, (ritDeel, actie) => ({ ritDeel, actie }));
|
|
281
|
+
const addRitdeelActie = createAction(ADD_RITDEEL_ACTIE, (ritDeel, actie) => ({ ritDeel, actie }));
|
|
282
|
+
const setZichtbaarheidAlleRitdelen = createAction(SET_ZICHTBAARHEID_ALLE_RITDELEN, (zichtbaarheid) => ({ zichtbaarheid }));
|
|
283
|
+
const toggleZichtbaarheidVoorBewegingen = createAction(TOGGLE_ZICHTBAARHEID_VOOR_BEWEGINGEN, (bewegingIds) => ({ bewegingIds }));
|
|
284
|
+
const setAlternatieveRitDelen = createAction(SET_ALTERNATIEVE_RIT_DELEN, (alternatieveRitDeel) => ({ alternatieveRitDeel }));
|
|
285
|
+
const ritdeelInvoegen = createAction(RITDEEL_INVOEGEN, (nieuweRoute) => ({ nieuweRoute }));
|
|
286
|
+
// do not export return value
|
|
287
|
+
const ritdeelActions = union({
|
|
288
|
+
setRitDelen,
|
|
289
|
+
updateRitDelen,
|
|
290
|
+
setRitdelenAfterUpdate,
|
|
291
|
+
toggleRitdeelZichtbaar,
|
|
292
|
+
setRitdeelZichtbaar,
|
|
293
|
+
deleteRitdeel,
|
|
294
|
+
deleteRitdeelActie,
|
|
295
|
+
addRitdeelActie,
|
|
296
|
+
setZichtbaarheidAlleRitdelen,
|
|
297
|
+
toggleZichtbaarheidVoorBewegingen,
|
|
298
|
+
setAlternatieveRitDelen,
|
|
299
|
+
ritdeelInvoegen
|
|
330
300
|
});
|
|
331
301
|
|
|
302
|
+
class Utils {
|
|
303
|
+
static flatMap(xs, f) {
|
|
304
|
+
return xs.reduce((acc, x) => acc.concat(f(x)), []);
|
|
305
|
+
}
|
|
306
|
+
static getValidErorrMessage(err) {
|
|
307
|
+
let errorMsg = '';
|
|
308
|
+
if (err.msg) {
|
|
309
|
+
errorMsg += err.msg;
|
|
310
|
+
}
|
|
311
|
+
if (Array.isArray(err.body)) {
|
|
312
|
+
err.body.forEach(x => errorMsg += x);
|
|
313
|
+
}
|
|
314
|
+
else if (err.body) {
|
|
315
|
+
if (err.body instanceof ProgressEvent) {
|
|
316
|
+
errorMsg = 'Kon geen verbinding maken met de server';
|
|
317
|
+
}
|
|
318
|
+
else if (err.body.text) {
|
|
319
|
+
errorMsg += err.body.text;
|
|
320
|
+
}
|
|
321
|
+
else {
|
|
322
|
+
errorMsg += err.body;
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
if (err.message) {
|
|
326
|
+
errorMsg += err.message;
|
|
327
|
+
}
|
|
328
|
+
if (typeof err === 'string' || err instanceof String) {
|
|
329
|
+
errorMsg += err;
|
|
330
|
+
}
|
|
331
|
+
if (errorMsg !== '') {
|
|
332
|
+
return errorMsg;
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
|
|
332
337
|
/**
|
|
333
338
|
* https://gist.github.com/jordanluyke/609a4fffb69d1ebafdadd313ee2ee804
|
|
334
339
|
*
|
|
@@ -392,7 +397,7 @@ class ArrayMultimap {
|
|
|
392
397
|
return Array.from(new Set(this._entries.map(entry => entry.key)));
|
|
393
398
|
}
|
|
394
399
|
values() {
|
|
395
|
-
return this._entries
|
|
400
|
+
return Utils.flatMap(this._entries, x => x.value);
|
|
396
401
|
}
|
|
397
402
|
put(key, value) {
|
|
398
403
|
this._entries.push(new MultimapEntry(key, value));
|
|
@@ -498,7 +503,6 @@ class EditorService {
|
|
|
498
503
|
this.signaleringsBeeldManagerService = signaleringsBeeldManagerService;
|
|
499
504
|
this.initReadyPromise();
|
|
500
505
|
}
|
|
501
|
-
// Called from GWT only, can be removed when GWT is gone. any is used because it will be removed with GWT
|
|
502
506
|
setEditor(editor) {
|
|
503
507
|
this.editor = editor;
|
|
504
508
|
this.resolveReadyPromise();
|
|
@@ -506,7 +510,6 @@ class EditorService {
|
|
|
506
510
|
isReady() {
|
|
507
511
|
return this.promise;
|
|
508
512
|
}
|
|
509
|
-
// Called from GWT only, can be removed when GWT is gone
|
|
510
513
|
setSignaleringsBeeldManager(signaleringsBeeldManager) {
|
|
511
514
|
this.signaleringsBeeldManagerService.set(signaleringsBeeldManager);
|
|
512
515
|
}
|
|
@@ -552,7 +555,7 @@ class BewegingUtils {
|
|
|
552
555
|
const retval = [];
|
|
553
556
|
retval.length = ritDelen.length;
|
|
554
557
|
const origineleBewegingMap = this.bepaalOrigineleBewegingMap(origineleBewegingen);
|
|
555
|
-
let vorigeBeweging =
|
|
558
|
+
let vorigeBeweging = null;
|
|
556
559
|
for (let i = 0; i < ritDelen.length; i++) {
|
|
557
560
|
const ritdeel = ritDelen[i];
|
|
558
561
|
if (ritdeel.beweging) {
|
|
@@ -582,7 +585,7 @@ class BewegingUtils {
|
|
|
582
585
|
}
|
|
583
586
|
static bewegingenZijnGewijzigd(ritDelen, origineleBewegingen) {
|
|
584
587
|
const ritDelenArray = ritDelen
|
|
585
|
-
.filter(r => r.beweging
|
|
588
|
+
.filter(r => r.beweging)
|
|
586
589
|
.map(r => r.beweging.id)
|
|
587
590
|
.sort((a, b) => a - b);
|
|
588
591
|
const bewegingenIdArray = origineleBewegingen.map(b => b.id).sort((a, b) => a - b);
|
|
@@ -598,9 +601,9 @@ class BewegingUtils {
|
|
|
598
601
|
return stringToCheck.indexOf(match) !== -1;
|
|
599
602
|
}
|
|
600
603
|
static isGewijzigd(ritdeel, nieuwDwangNummer, origineleBewegingenMap) {
|
|
601
|
-
const dwangGewijzigd = ritdeel.beweging
|
|
604
|
+
const dwangGewijzigd = ritdeel.beweging.dwangNummer !== nieuwDwangNummer;
|
|
602
605
|
let gewijzigd = false;
|
|
603
|
-
if (ritdeel.beweging
|
|
606
|
+
if (ritdeel.beweging.wijzigStatus === this.NORMAAL) {
|
|
604
607
|
const origineleBewegingActies = origineleBewegingenMap.get(ritdeel.beweging.id);
|
|
605
608
|
const huidigeActies = this.createSortedActieIdList(ritdeel.acties);
|
|
606
609
|
gewijzigd = JSON.stringify(huidigeActies) !== JSON.stringify(origineleBewegingActies);
|
|
@@ -624,7 +627,7 @@ class BewegingUtils {
|
|
|
624
627
|
let naarSeinPplg;
|
|
625
628
|
let naarSpoor = newRitdeel.getNaarPrlSpoor();
|
|
626
629
|
if (eindSein.getTypeAlsString() === BewegingUtils.SEIN_TYPE_FICTIEF) {
|
|
627
|
-
if (newRitdeel.heeftVrijebaanInfo()
|
|
630
|
+
if (newRitdeel.heeftVrijebaanInfo()) {
|
|
628
631
|
const vbEindSein = newRitdeel.getVrijebaanRijweg().getEindSein();
|
|
629
632
|
naarSeinNaam = vbEindSein.getName();
|
|
630
633
|
naarSeinPplg = vbEindSein.getPPLG();
|
|
@@ -683,8 +686,6 @@ class ViewerControlService {
|
|
|
683
686
|
this.printing$ = new BehaviorSubject(false);
|
|
684
687
|
this.sideNavOpen = false;
|
|
685
688
|
this.sideNavOpen$ = new BehaviorSubject(this.sideNavOpen);
|
|
686
|
-
this.selectieInfos = [];
|
|
687
|
-
this.origineelTreinPad = {};
|
|
688
689
|
this.subscriptions.add(combineLatest([
|
|
689
690
|
store.select('ritSelectieIds'),
|
|
690
691
|
store.select('actieOpRitSelectieIds'),
|
|
@@ -704,18 +705,19 @@ class ViewerControlService {
|
|
|
704
705
|
selectie.push(new SelectieInfo(eind, 'zigzagNaar'));
|
|
705
706
|
this.selectieInfos = selectie;
|
|
706
707
|
}));
|
|
708
|
+
this.subscriptions.add(store.select('ritDelen').subscribe(ritdelen => this.ritdelen = ritdelen));
|
|
707
709
|
}
|
|
708
710
|
toggleSideNavVisible() {
|
|
709
711
|
this.sideNavOpen = !this.sideNavOpen;
|
|
710
712
|
this.sideNavOpen$.next(this.sideNavOpen);
|
|
711
713
|
}
|
|
712
714
|
keurAlleActiesGoed(ongeplandeActies) {
|
|
713
|
-
this.
|
|
715
|
+
if (this.ritdelen) {
|
|
714
716
|
this.store.dispatch(ShowProgress());
|
|
715
|
-
const bewegingen = this.bewegingUtils.extractBewegingenUitRitdelen(ritdelen, this.origineelTreinPad.bewegingen);
|
|
716
|
-
const alleActies = this.verzamelAlleActies(ritdelen, ongeplandeActies);
|
|
717
|
+
const bewegingen = this.bewegingUtils.extractBewegingenUitRitdelen(this.ritdelen, this.origineelTreinPad.bewegingen);
|
|
718
|
+
const alleActies = this.verzamelAlleActies(this.ritdelen, ongeplandeActies);
|
|
717
719
|
this.store.dispatch(KeurAlleActiesGoed(this.getBewegingenZonderActies(bewegingen), alleActies));
|
|
718
|
-
}
|
|
720
|
+
}
|
|
719
721
|
}
|
|
720
722
|
setValideRit(valideRit) {
|
|
721
723
|
this.valideRit$.next(valideRit);
|
|
@@ -781,10 +783,10 @@ class DebugService {
|
|
|
781
783
|
setDebugFlag(debug) {
|
|
782
784
|
this.store.dispatch(SetDebug(debug));
|
|
783
785
|
if (debug) {
|
|
784
|
-
document.getElementById('svgContainer')
|
|
786
|
+
document.getElementById('svgContainer').addEventListener('mouseover', this.listener);
|
|
785
787
|
}
|
|
786
788
|
else {
|
|
787
|
-
document.getElementById('svgContainer')
|
|
789
|
+
document.getElementById('svgContainer').removeEventListener('mouseover', this.listener);
|
|
788
790
|
}
|
|
789
791
|
}
|
|
790
792
|
debugEventListener() {
|
|
@@ -830,28 +832,26 @@ class PrintBewegingService {
|
|
|
830
832
|
this.store = store;
|
|
831
833
|
this.viewerControlService = viewerControlService;
|
|
832
834
|
this.sbmService = sbmService;
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
}
|
|
854
|
-
})).subscribe();
|
|
835
|
+
this.store.select(s => s.ritDelen).subscribe(ritdelen => this.ritdelen = ritdelen);
|
|
836
|
+
}
|
|
837
|
+
printBeweging(bewegingId, paginationSize, iaVersieInfo) {
|
|
838
|
+
const gevondenRitdeel = this.ritdelen.filter(r => parseInt(r.getBewegingId(), 10) === bewegingId);
|
|
839
|
+
// hide/show de knoppen
|
|
840
|
+
const printing = !!bewegingId && gevondenRitdeel.length === 1;
|
|
841
|
+
this.viewerControlService.setPrinting(printing);
|
|
842
|
+
if (!printing) {
|
|
843
|
+
return Promise.reject(new Error('Geen beweging gevonden voor ' + bewegingId));
|
|
844
|
+
}
|
|
845
|
+
return new Promise((resolve) => {
|
|
846
|
+
const ritdeel = gevondenRitdeel[0];
|
|
847
|
+
if (ritdeel.isNietBeschikbaar()) {
|
|
848
|
+
this.store.dispatch(navigeerVanaf(paginationSize, iaVersieInfo, ritdeel));
|
|
849
|
+
this.store.dispatch(ShowProgress());
|
|
850
|
+
setTimeout(() => this.focusOpBeweging(ritdeel, resolve), 1000);
|
|
851
|
+
}
|
|
852
|
+
else {
|
|
853
|
+
this.focusOpBeweging(ritdeel, resolve);
|
|
854
|
+
}
|
|
855
855
|
});
|
|
856
856
|
}
|
|
857
857
|
focusOpBeweging(ritdeel, resolve) {
|
|
@@ -886,12 +886,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
886
886
|
}], ctorParameters: () => [{ type: i2$1.Store }, { type: ViewerControlService }, { type: SignaleringsBeeldManagerService }] });
|
|
887
887
|
|
|
888
888
|
class RpeComponent {
|
|
889
|
-
constructor() {
|
|
890
|
-
this.baseurl = '';
|
|
891
|
-
this.path = '';
|
|
892
|
-
}
|
|
893
889
|
convertToScript() {
|
|
894
|
-
const element = this.script
|
|
890
|
+
const element = this.script.nativeElement;
|
|
895
891
|
const script = document.createElement('script');
|
|
896
892
|
script.type = 'text/javascript';
|
|
897
893
|
if (this.baseurl && this.path) {
|
|
@@ -944,7 +940,7 @@ class KmRange {
|
|
|
944
940
|
if (result.length >= 1) {
|
|
945
941
|
return result[0];
|
|
946
942
|
}
|
|
947
|
-
return
|
|
943
|
+
return null;
|
|
948
944
|
}
|
|
949
945
|
heeftOverlap(kilometrering1, kilometrering2) {
|
|
950
946
|
const vanKilometrering = KmRange.getKilometrering(kilometrering1.getKmLint(), this.vanKilometreringen);
|
|
@@ -991,41 +987,6 @@ class MeldingBuilder {
|
|
|
991
987
|
}
|
|
992
988
|
}
|
|
993
989
|
|
|
994
|
-
class Utils {
|
|
995
|
-
static getValidErorrMessage(err) {
|
|
996
|
-
let errorMsg = '';
|
|
997
|
-
if (err.msg) {
|
|
998
|
-
errorMsg += err.msg;
|
|
999
|
-
}
|
|
1000
|
-
if (Array.isArray(err.body)) {
|
|
1001
|
-
err.body.forEach((x) => errorMsg += x);
|
|
1002
|
-
}
|
|
1003
|
-
else if (err.body) {
|
|
1004
|
-
if (err.body instanceof ProgressEvent) {
|
|
1005
|
-
errorMsg = 'Kon geen verbinding maken met de server';
|
|
1006
|
-
}
|
|
1007
|
-
else if (err.body.text) {
|
|
1008
|
-
errorMsg += err.body.text;
|
|
1009
|
-
}
|
|
1010
|
-
else {
|
|
1011
|
-
errorMsg += err.body;
|
|
1012
|
-
}
|
|
1013
|
-
}
|
|
1014
|
-
if (err.message) {
|
|
1015
|
-
errorMsg += err.message;
|
|
1016
|
-
}
|
|
1017
|
-
if (typeof err === 'string' || err instanceof String) {
|
|
1018
|
-
errorMsg += err;
|
|
1019
|
-
}
|
|
1020
|
-
if (errorMsg !== '') {
|
|
1021
|
-
return errorMsg;
|
|
1022
|
-
}
|
|
1023
|
-
else {
|
|
1024
|
-
return 'Er is een onbekende fout opgetreden';
|
|
1025
|
-
}
|
|
1026
|
-
}
|
|
1027
|
-
}
|
|
1028
|
-
|
|
1029
990
|
class MessageBuilder {
|
|
1030
991
|
static rwpDataNietGevonden(err) {
|
|
1031
992
|
return new Message(Severity.ERROR, 'Error bij ophalen van rijwegplan data: ' + err);
|
|
@@ -2165,25 +2126,16 @@ class SbControllerService {
|
|
|
2165
2126
|
}
|
|
2166
2127
|
return httpParams;
|
|
2167
2128
|
}
|
|
2168
|
-
getSignaleringsbeelden(
|
|
2169
|
-
if (
|
|
2170
|
-
throw new Error('Required parameter
|
|
2171
|
-
}
|
|
2172
|
-
if (pplg === null || pplg === undefined) {
|
|
2173
|
-
throw new Error('Required parameter pplg was null or undefined when calling getSignaleringsbeelden.');
|
|
2174
|
-
}
|
|
2175
|
-
let localVarQueryParameters = new HttpParams({ encoder: this.encoder });
|
|
2176
|
-
if (pplg) {
|
|
2177
|
-
pplg.forEach((element) => {
|
|
2178
|
-
localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, element, 'pplg');
|
|
2179
|
-
});
|
|
2129
|
+
getSignaleringsbeelden(signaleringsbeeldRequestDto, observe = 'body', reportProgress = false, options) {
|
|
2130
|
+
if (signaleringsbeeldRequestDto === null || signaleringsbeeldRequestDto === undefined) {
|
|
2131
|
+
throw new Error('Required parameter signaleringsbeeldRequestDto was null or undefined when calling getSignaleringsbeelden.');
|
|
2180
2132
|
}
|
|
2181
2133
|
let localVarHeaders = this.defaultHeaders;
|
|
2182
2134
|
let localVarHttpHeaderAcceptSelected = options && options.httpHeaderAccept;
|
|
2183
2135
|
if (localVarHttpHeaderAcceptSelected === undefined) {
|
|
2184
2136
|
// to determine the Accept header
|
|
2185
2137
|
const httpHeaderAccepts = [
|
|
2186
|
-
'
|
|
2138
|
+
'*/*'
|
|
2187
2139
|
];
|
|
2188
2140
|
localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
|
|
2189
2141
|
}
|
|
@@ -2198,6 +2150,14 @@ class SbControllerService {
|
|
|
2198
2150
|
if (localVarTransferCache === undefined) {
|
|
2199
2151
|
localVarTransferCache = true;
|
|
2200
2152
|
}
|
|
2153
|
+
// to determine the Content-Type header
|
|
2154
|
+
const consumes = [
|
|
2155
|
+
'application/json'
|
|
2156
|
+
];
|
|
2157
|
+
const httpContentTypeSelected = this.configuration.selectHeaderContentType(consumes);
|
|
2158
|
+
if (httpContentTypeSelected !== undefined) {
|
|
2159
|
+
localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);
|
|
2160
|
+
}
|
|
2201
2161
|
let responseType_ = 'json';
|
|
2202
2162
|
if (localVarHttpHeaderAcceptSelected) {
|
|
2203
2163
|
if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
|
|
@@ -2210,10 +2170,10 @@ class SbControllerService {
|
|
|
2210
2170
|
responseType_ = 'blob';
|
|
2211
2171
|
}
|
|
2212
2172
|
}
|
|
2213
|
-
let localVarPath = `/rest
|
|
2214
|
-
return this.httpClient.request('
|
|
2173
|
+
let localVarPath = `/rest/signaleringsbeeldeninfo`;
|
|
2174
|
+
return this.httpClient.request('post', `${this.configuration.basePath}${localVarPath}`, {
|
|
2215
2175
|
context: localVarHttpContext,
|
|
2216
|
-
|
|
2176
|
+
body: signaleringsbeeldRequestDto,
|
|
2217
2177
|
responseType: responseType_,
|
|
2218
2178
|
withCredentials: this.configuration.withCredentials,
|
|
2219
2179
|
headers: localVarHeaders,
|
|
@@ -2339,6 +2299,18 @@ const APIS = [AppConfigControllerService, BewegingControllerService, Class0Build
|
|
|
2339
2299
|
* Do not edit the class manually.
|
|
2340
2300
|
*/
|
|
2341
2301
|
|
|
2302
|
+
/**
|
|
2303
|
+
* MST
|
|
2304
|
+
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
|
|
2305
|
+
*
|
|
2306
|
+
* The version of the OpenAPI document: 1
|
|
2307
|
+
*
|
|
2308
|
+
*
|
|
2309
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
2310
|
+
* https://openapi-generator.tech
|
|
2311
|
+
* Do not edit the class manually.
|
|
2312
|
+
*/
|
|
2313
|
+
|
|
2342
2314
|
class ApiModule {
|
|
2343
2315
|
static forRoot(configurationFactory) {
|
|
2344
2316
|
return {
|
|
@@ -2400,35 +2372,38 @@ class LoggingHelper {
|
|
|
2400
2372
|
this.store = store;
|
|
2401
2373
|
}
|
|
2402
2374
|
maakLogDTO(melding, actie) {
|
|
2403
|
-
|
|
2404
|
-
|
|
2405
|
-
|
|
2406
|
-
|
|
2407
|
-
|
|
2408
|
-
|
|
2409
|
-
|
|
2410
|
-
|
|
2411
|
-
|
|
2412
|
-
|
|
2413
|
-
|
|
2414
|
-
|
|
2415
|
-
|
|
2416
|
-
|
|
2417
|
-
|
|
2418
|
-
|
|
2419
|
-
|
|
2420
|
-
|
|
2421
|
-
|
|
2422
|
-
|
|
2423
|
-
|
|
2424
|
-
|
|
2425
|
-
meldingLevel: melding.meldingLevel,
|
|
2426
|
-
meldingMessage: melding.meldingMessage,
|
|
2427
|
-
actieDto,
|
|
2428
|
-
algemeneRitInfoDto,
|
|
2429
|
-
sbinfoDtos: this.getSbInfoDtos()
|
|
2375
|
+
let iaVersie = '';
|
|
2376
|
+
let algemeneRitInfoDto = null;
|
|
2377
|
+
let actieDto = null;
|
|
2378
|
+
this.store.select('algemeneRitInfoDto').pipe(take(1)).subscribe(dto => {
|
|
2379
|
+
algemeneRitInfoDto = dto;
|
|
2380
|
+
});
|
|
2381
|
+
this.store.select('iaVersie').pipe(take(1)).subscribe(ia => {
|
|
2382
|
+
iaVersie = ia.versie;
|
|
2383
|
+
});
|
|
2384
|
+
if (actie) {
|
|
2385
|
+
actieDto = {
|
|
2386
|
+
pplgNaam: actie.pplgNaam,
|
|
2387
|
+
ritActieTypeOmschrijving: actie.ritActieTypeOmschrijving,
|
|
2388
|
+
ritActieStatus: actie.ritActieStatus,
|
|
2389
|
+
bewegingId: actie.bewegingId,
|
|
2390
|
+
wisselType: actie.wisselType,
|
|
2391
|
+
wisselNaam: actie.wisselNaam,
|
|
2392
|
+
wisselKantCode: actie.wisselKantCode,
|
|
2393
|
+
vanKilometerlint: actie.vanKilometerlint,
|
|
2394
|
+
vanKilometrering: actie.vanKilometrering,
|
|
2395
|
+
totKilometerlint: actie.totKilometerlint,
|
|
2396
|
+
totKilometrering: actie.totKilometrering
|
|
2430
2397
|
};
|
|
2431
|
-
}
|
|
2398
|
+
}
|
|
2399
|
+
return {
|
|
2400
|
+
iaVersie,
|
|
2401
|
+
meldingLevel: melding.meldingLevel,
|
|
2402
|
+
meldingMessage: melding.meldingMessage,
|
|
2403
|
+
actieDto,
|
|
2404
|
+
algemeneRitInfoDto,
|
|
2405
|
+
sbinfoDtos: this.getSbInfoDtos()
|
|
2406
|
+
};
|
|
2432
2407
|
}
|
|
2433
2408
|
getSbInfoDtos() {
|
|
2434
2409
|
const sbInfoDtos = [];
|
|
@@ -2540,7 +2515,6 @@ class ActieHelper {
|
|
|
2540
2515
|
this.messagesService = messagesService;
|
|
2541
2516
|
this.store = store;
|
|
2542
2517
|
this.loggingHelper = loggingHelper;
|
|
2543
|
-
this.debug = false;
|
|
2544
2518
|
this.store.select('debug').subscribe(debug => this.debug = debug);
|
|
2545
2519
|
}
|
|
2546
2520
|
static getActieTopoElements(ritDeel, sbmService) {
|
|
@@ -2574,10 +2548,10 @@ class ActieHelper {
|
|
|
2574
2548
|
}
|
|
2575
2549
|
}
|
|
2576
2550
|
static actieComparator(actie1, actie2) {
|
|
2577
|
-
if (actie1.vanKilometrering
|
|
2551
|
+
if (actie1.vanKilometrering !== actie2.vanKilometrering) {
|
|
2578
2552
|
return actie1.vanKilometrering > actie2.vanKilometrering ? 1 : -1;
|
|
2579
2553
|
}
|
|
2580
|
-
if (actie1.ritActieTypeOmschrijving
|
|
2554
|
+
if (actie1.ritActieTypeOmschrijving !== actie2.ritActieTypeOmschrijving) {
|
|
2581
2555
|
return actie1.ritActieTypeOmschrijving > actie2.ritActieTypeOmschrijving ? 1 : -1;
|
|
2582
2556
|
}
|
|
2583
2557
|
if (actie1.wisselNaam !== actie2.wisselNaam) {
|
|
@@ -2617,9 +2591,9 @@ class ActieHelper {
|
|
|
2617
2591
|
// make sure the elems are sorted in ascending order
|
|
2618
2592
|
static sorteerTopoElementen(topoElems) {
|
|
2619
2593
|
const topoElementen = topoElems.slice();
|
|
2620
|
-
let lint =
|
|
2621
|
-
let first;
|
|
2622
|
-
let second;
|
|
2594
|
+
let lint = null;
|
|
2595
|
+
let first = null;
|
|
2596
|
+
let second = null;
|
|
2623
2597
|
for (const topoElement of topoElementen) {
|
|
2624
2598
|
let kilometreringen = null;
|
|
2625
2599
|
const kms = JsJavaUtil.listToArray(topoElement.getKilometreringen());
|
|
@@ -2651,11 +2625,11 @@ class ActieHelper {
|
|
|
2651
2625
|
if (!totKilometreringen && vanKilometreringen) {
|
|
2652
2626
|
totKilometreringen = [new MstKilometrering(vanKilometreringen[0].getKmLint(), 100000)];
|
|
2653
2627
|
}
|
|
2654
|
-
if (vanKilometreringen
|
|
2628
|
+
if (vanKilometreringen[0] > totKilometreringen[0]) {
|
|
2655
2629
|
kmRanges.push(KmRange.rangeVoorStrekObject(e, this.addKm(vanKilometreringen, -1), this.addKm(totKilometreringen, 1)));
|
|
2656
2630
|
}
|
|
2657
2631
|
else {
|
|
2658
|
-
kmRanges.push(KmRange.rangeVoorStrekObject(e, this.addKm(vanKilometreringen
|
|
2632
|
+
kmRanges.push(KmRange.rangeVoorStrekObject(e, this.addKm(vanKilometreringen, 1), this.addKm(totKilometreringen, -1)));
|
|
2659
2633
|
}
|
|
2660
2634
|
});
|
|
2661
2635
|
}
|
|
@@ -2746,23 +2720,21 @@ class ActieHelper {
|
|
|
2746
2720
|
else {
|
|
2747
2721
|
const puics = [];
|
|
2748
2722
|
kmRanges.forEach(kmRange => {
|
|
2749
|
-
|
|
2750
|
-
|
|
2751
|
-
|
|
2752
|
-
|
|
2753
|
-
|
|
2754
|
-
|
|
2755
|
-
|
|
2756
|
-
|
|
2757
|
-
|
|
2758
|
-
puics.push(kmRange.topologyElement.getPuic());
|
|
2759
|
-
}
|
|
2723
|
+
let vanKilometrering = new MstKilometrering(actie.vanKilometerlint, actie.vanKilometrering);
|
|
2724
|
+
let totKilometrering = new MstKilometrering(actie.totKilometerlint, actie.totKilometrering);
|
|
2725
|
+
if (actie.vanKilometrering > actie.totKilometrering) {
|
|
2726
|
+
const temp = { van: vanKilometrering, tot: totKilometrering };
|
|
2727
|
+
vanKilometrering = temp.tot;
|
|
2728
|
+
totKilometrering = temp.van;
|
|
2729
|
+
}
|
|
2730
|
+
if (kmRange.heeftOverlap(vanKilometrering, totKilometrering)) {
|
|
2731
|
+
puics.push(kmRange.topologyElement.getPuic());
|
|
2760
2732
|
}
|
|
2761
2733
|
});
|
|
2762
2734
|
if (puics.length === 0) {
|
|
2763
2735
|
actieZonderElementen.push(actie.id);
|
|
2764
2736
|
const melding = MeldingBuilder.actieHighlightError(actieZonderElementen);
|
|
2765
|
-
this.loggingHelper.maakLogDTO(melding, actie)
|
|
2737
|
+
logMeldingDTOs.push(this.loggingHelper.maakLogDTO(melding, actie));
|
|
2766
2738
|
}
|
|
2767
2739
|
retval.putAll(actie, puics);
|
|
2768
2740
|
}
|
|
@@ -2778,7 +2750,7 @@ class ActieHelper {
|
|
|
2778
2750
|
verwerkTopoElementen(topoElementen) {
|
|
2779
2751
|
const kmRanges = [];
|
|
2780
2752
|
let topoElementenZonderKms = [];
|
|
2781
|
-
let laatstePuntKms =
|
|
2753
|
+
let laatstePuntKms = null;
|
|
2782
2754
|
topoElementen.forEach(elem => {
|
|
2783
2755
|
const kms = JsJavaUtil.listToArray(elem.getKilometreringen());
|
|
2784
2756
|
if (kms.length > 0) {
|
|
@@ -2792,7 +2764,7 @@ class ActieHelper {
|
|
|
2792
2764
|
}
|
|
2793
2765
|
});
|
|
2794
2766
|
if (topoElementenZonderKms.length > 0 && laatstePuntKms) {
|
|
2795
|
-
ActieHelper.corrigeerTopoElementenZonderKms(topoElementenZonderKms, laatstePuntKms,
|
|
2767
|
+
ActieHelper.corrigeerTopoElementenZonderKms(topoElementenZonderKms, laatstePuntKms, null, kmRanges);
|
|
2796
2768
|
}
|
|
2797
2769
|
return kmRanges;
|
|
2798
2770
|
}
|
|
@@ -2855,14 +2827,14 @@ class ActieHelper {
|
|
|
2855
2827
|
if (ActieHelper.isKantCodeLinks(kantcode)) {
|
|
2856
2828
|
return wissel.getLeft();
|
|
2857
2829
|
}
|
|
2858
|
-
return
|
|
2830
|
+
return null;
|
|
2859
2831
|
}
|
|
2860
2832
|
bepaalPuicVoorWisselSlijpenActie(actie) {
|
|
2861
2833
|
const storingsSymboolPuic = this.sbmService.getSBWissel(actie.wisselNaam, actie.pplgNaam)?.getStoringSymboolPuic();
|
|
2862
2834
|
if (!storingsSymboolPuic && this.debug) {
|
|
2863
2835
|
const melding = MeldingBuilder.actieHighlightError([actie.id]);
|
|
2864
2836
|
this.messagesService.showMessage(MessageBuilder.actieHighlightError([actie.id]));
|
|
2865
|
-
this.loggingHelper.maakLogDTO(melding, actie)
|
|
2837
|
+
this.mstLogResource.logMessages([this.loggingHelper.maakLogDTO(melding, actie)]);
|
|
2866
2838
|
}
|
|
2867
2839
|
return storingsSymboolPuic ? [storingsSymboolPuic] : [];
|
|
2868
2840
|
}
|
|
@@ -2877,16 +2849,10 @@ class RitdelenLijstComponent {
|
|
|
2877
2849
|
constructor(store, sbmService) {
|
|
2878
2850
|
this.store = store;
|
|
2879
2851
|
this.sbmService = sbmService;
|
|
2880
|
-
this.nietGeplandeActies = [];
|
|
2881
2852
|
this.focusEmitter = new EventEmitter();
|
|
2882
2853
|
this.keurAlleActiesGoed = new EventEmitter();
|
|
2883
|
-
this.ritdeelViewModels = [];
|
|
2884
2854
|
this.selectedRitdeelActies = [];
|
|
2885
2855
|
this.selectedRitdeelOngeplandeActies = [];
|
|
2886
|
-
this.disableActieKnoppenVanRitdeel = true;
|
|
2887
|
-
this.editable = false;
|
|
2888
|
-
this.ongeplandeActiesMap = new ArrayMultimap();
|
|
2889
|
-
this.geplandeActies = new ArrayMultimap();
|
|
2890
2856
|
this.NG_ACTIE_PREFIX = '* ';
|
|
2891
2857
|
this.subscriptions = [];
|
|
2892
2858
|
this.subscriptions.push(store.select('ritDelen').subscribe((ritdelen) => {
|
|
@@ -2897,6 +2863,9 @@ class RitdelenLijstComponent {
|
|
|
2897
2863
|
this.subscriptions.push(store.select('ongeplandeActies').subscribe(acties => this.ongeplandeActiesMap = acties));
|
|
2898
2864
|
this.subscriptions.push(store.select('geplandeActies').subscribe(acties => this.geplandeActies = acties));
|
|
2899
2865
|
this.subscriptions.push(store.select('editable').subscribe(editable => this.editable = editable));
|
|
2866
|
+
// listen to changes from svg-viewer-component, saving ritdeel in store isn't cool because of all the gwt in it. This is
|
|
2867
|
+
// just to make changes within the angular lifecycle.
|
|
2868
|
+
this.subscriptions.push(store.select('selectedRitdeelId').pipe(filter(id => !id)).subscribe(this.deselectRitdeel));
|
|
2900
2869
|
this.subscriptions.push(combineLatest([
|
|
2901
2870
|
this.store.select('ritDelen'),
|
|
2902
2871
|
this.store.select('ongeplandeActies')
|
|
@@ -2933,14 +2902,12 @@ class RitdelenLijstComponent {
|
|
|
2933
2902
|
this.store.dispatch(deleteRitdeel(ritdeel));
|
|
2934
2903
|
}
|
|
2935
2904
|
deleteActiesUitRit() {
|
|
2936
|
-
this.selectedRitdeel
|
|
2905
|
+
this.selectedRitdeel.acties.slice().forEach(actie => {
|
|
2937
2906
|
this.deleteActieUitRit(actie);
|
|
2938
2907
|
});
|
|
2939
2908
|
}
|
|
2940
2909
|
deleteActieUitRit(actie) {
|
|
2941
|
-
|
|
2942
|
-
return;
|
|
2943
|
-
const acties = this.selectedRitdeel.acties ?? [];
|
|
2910
|
+
const acties = this.selectedRitdeel.acties;
|
|
2944
2911
|
const idx = acties.indexOf(actie);
|
|
2945
2912
|
if (idx >= 0) {
|
|
2946
2913
|
this.verhuisActieNaarOngepland(actie);
|
|
@@ -2966,7 +2933,7 @@ class RitdelenLijstComponent {
|
|
|
2966
2933
|
}
|
|
2967
2934
|
voegActieToeAanRit(ongeplandeActie) {
|
|
2968
2935
|
const idx = this.selectedRitdeelOngeplandeActies.indexOf(ongeplandeActie);
|
|
2969
|
-
if (idx >= 0
|
|
2936
|
+
if (idx >= 0) {
|
|
2970
2937
|
this.store.dispatch(addRitdeelActie(this.selectedRitdeel, this.selectedRitdeelOngeplandeActies[idx].actie));
|
|
2971
2938
|
this.store.dispatch(AddGeplandeActie(ongeplandeActie.actie, ongeplandeActie.puics));
|
|
2972
2939
|
this.store.dispatch(DeleteOngeplandeActie(ongeplandeActie));
|
|
@@ -3068,13 +3035,13 @@ class RitdelenLijstComponent {
|
|
|
3068
3035
|
return `${prefix}${ActieHelper.getVSTActieOmschrijving(actie)}`;
|
|
3069
3036
|
}
|
|
3070
3037
|
bepaalPrefixVoorActieOmschrijving(actie) {
|
|
3071
|
-
const
|
|
3072
|
-
if (this.selectedRitdeel
|
|
3038
|
+
const prefix = '';
|
|
3039
|
+
if (this.selectedRitdeel.acties.includes(actie)) {
|
|
3073
3040
|
// Afwijkende naam bij niet gevisualiseerde actie in rit
|
|
3074
3041
|
const puics = this.geplandeActies.get(actie);
|
|
3075
|
-
return puics.length > 0 ?
|
|
3042
|
+
return puics.length > 0 ? prefix : this.NG_ACTIE_PREFIX;
|
|
3076
3043
|
}
|
|
3077
|
-
return
|
|
3044
|
+
return prefix;
|
|
3078
3045
|
}
|
|
3079
3046
|
actieVanKmTekst(actie) {
|
|
3080
3047
|
if (ActieHelper.isWisselSlijpenActie(actie)) {
|
|
@@ -3095,7 +3062,6 @@ class RitdelenLijstComponent {
|
|
|
3095
3062
|
return ritdeel.getPplgString();
|
|
3096
3063
|
}
|
|
3097
3064
|
getKantCode(stand) {
|
|
3098
|
-
// @ts-ignore
|
|
3099
3065
|
if (stand === window['domein'].Stand.LINKS) {
|
|
3100
3066
|
return 'L';
|
|
3101
3067
|
}
|
|
@@ -3232,18 +3198,49 @@ class RitdeelViewModel {
|
|
|
3232
3198
|
}
|
|
3233
3199
|
}
|
|
3234
3200
|
|
|
3201
|
+
class CarouselControlsComponent {
|
|
3202
|
+
constructor(store) {
|
|
3203
|
+
this.store = store;
|
|
3204
|
+
this.paginationSize = 4;
|
|
3205
|
+
this.ritdelen$ = this.store.select('ritDelen').pipe(filter(r => r?.length > 0));
|
|
3206
|
+
this.kanLinks$ = this.ritdelen$.pipe(map(r => this.kanLinksNavigeren(r)));
|
|
3207
|
+
this.kanRechts$ = this.ritdelen$.pipe(map(r => this.kanRechtsNavigeren(r)));
|
|
3208
|
+
}
|
|
3209
|
+
kanLinksNavigeren(ritDelen) {
|
|
3210
|
+
return ritDelen.length > this.paginationSize && !ritDelen[0].isBinnenWindow();
|
|
3211
|
+
}
|
|
3212
|
+
kanRechtsNavigeren(ritDelen) {
|
|
3213
|
+
return ritDelen.length > this.paginationSize && !ritDelen[ritDelen.length - 1].isBinnenWindow();
|
|
3214
|
+
}
|
|
3215
|
+
navigeerNaarLinks(event) {
|
|
3216
|
+
this.store.dispatch(navigeer(event?.ctrlKey ? -1 : -(this.paginationSize - 1), this.paginationSize, this.iaversieinfo));
|
|
3217
|
+
}
|
|
3218
|
+
navigeerNaarRechts(event) {
|
|
3219
|
+
this.store.dispatch(navigeer(event?.ctrlKey ? 1 : this.paginationSize - 1, this.paginationSize, this.iaversieinfo));
|
|
3220
|
+
}
|
|
3221
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CarouselControlsComponent, deps: [{ token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3222
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: CarouselControlsComponent, selector: "carousel-controls", inputs: { paginationSize: "paginationSize", iaversieinfo: "iaversieinfo", sideNavOpen: "sideNavOpen" }, ngImport: i0, template: "<div *ngIf=\"ritdelen$ | async\">\n <a class=\"loxia-carousel-control-prev\" [ngClass]=\"(sideNavOpen)?'carousel-sidebar-open':'carousel-sidebar'\" role=\"button\"\n data-slide=\"prev\" (click)=\"navigeerNaarLinks($event)\" [hidden]=\"(kanLinks$ | async) === false\">\n <span id=\"previous-page\" class=\"loxia-carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"loxia-sr-only\">Previous</span>\n</a>\n <a class=\"loxia-carousel-control-next\" style=\"width: 2%;\" role=\"button\" data-slide=\"next\" (click)=\"navigeerNaarRechts($event)\"\n [hidden]=\"(kanRechts$ | async) === false\">\n <span id=\"next-page\" class=\"loxia-carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"loxia-sr-only\">Next</span>\n </a>\n</div>\n", styles: [".loxia-carousel-control-prev{left:0}.loxia-carousel-control-next{right:0}.loxia-carousel-control-next-icon,.loxia-carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:50%/100% 100% no-repeat}.loxia-carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\")}.loxia-carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\")}.loxia-carousel-control-next:focus,.loxia-carousel-control-next:hover,.loxia-carousel-control-prev:focus,.loxia-carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.loxia-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.loxia-carousel-control-next,.loxia-carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}.carousel-sidebar{width:2%}.carousel-sidebar-open{width:2%;transition:all .3s;left:470px}[hidden]{display:none!important}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
|
|
3223
|
+
}
|
|
3224
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CarouselControlsComponent, decorators: [{
|
|
3225
|
+
type: Component,
|
|
3226
|
+
args: [{ selector: 'carousel-controls', template: "<div *ngIf=\"ritdelen$ | async\">\n <a class=\"loxia-carousel-control-prev\" [ngClass]=\"(sideNavOpen)?'carousel-sidebar-open':'carousel-sidebar'\" role=\"button\"\n data-slide=\"prev\" (click)=\"navigeerNaarLinks($event)\" [hidden]=\"(kanLinks$ | async) === false\">\n <span id=\"previous-page\" class=\"loxia-carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"loxia-sr-only\">Previous</span>\n</a>\n <a class=\"loxia-carousel-control-next\" style=\"width: 2%;\" role=\"button\" data-slide=\"next\" (click)=\"navigeerNaarRechts($event)\"\n [hidden]=\"(kanRechts$ | async) === false\">\n <span id=\"next-page\" class=\"loxia-carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"loxia-sr-only\">Next</span>\n </a>\n</div>\n", styles: [".loxia-carousel-control-prev{left:0}.loxia-carousel-control-next{right:0}.loxia-carousel-control-next-icon,.loxia-carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:50%/100% 100% no-repeat}.loxia-carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\")}.loxia-carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\")}.loxia-carousel-control-next:focus,.loxia-carousel-control-next:hover,.loxia-carousel-control-prev:focus,.loxia-carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.loxia-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.loxia-carousel-control-next,.loxia-carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}.carousel-sidebar{width:2%}.carousel-sidebar-open{width:2%;transition:all .3s;left:470px}[hidden]{display:none!important}\n"] }]
|
|
3227
|
+
}], ctorParameters: () => [{ type: i2$1.Store }], propDecorators: { paginationSize: [{
|
|
3228
|
+
type: Input
|
|
3229
|
+
}], iaversieinfo: [{
|
|
3230
|
+
type: Input
|
|
3231
|
+
}], sideNavOpen: [{
|
|
3232
|
+
type: Input
|
|
3233
|
+
}] } });
|
|
3234
|
+
|
|
3235
3235
|
class ViewerControlsComponent {
|
|
3236
3236
|
constructor(store, viewerControlsService, bewegingUtils) {
|
|
3237
3237
|
this.store = store;
|
|
3238
3238
|
this.viewerControlsService = viewerControlsService;
|
|
3239
3239
|
this.bewegingUtils = bewegingUtils;
|
|
3240
3240
|
this.paginationSize = 4;
|
|
3241
|
-
this.treinpad = undefined;
|
|
3242
|
-
this.goedgekeurd = new EventEmitter();
|
|
3243
3241
|
this.printing$ = this.viewerControlsService.isPrinting$();
|
|
3244
3242
|
this.valideRit$ = this.viewerControlsService.isValideRit$();
|
|
3245
3243
|
this.subscriptions = new Subscription();
|
|
3246
|
-
this.editable = false;
|
|
3247
3244
|
this.subscriptions.add(this.store.select('editable').subscribe(editable => this.editable = editable));
|
|
3248
3245
|
}
|
|
3249
3246
|
ngOnChanges({ treinpad }) {
|
|
@@ -3255,23 +3252,24 @@ class ViewerControlsComponent {
|
|
|
3255
3252
|
return this.editable && this.viewerControlsService.selectieInfos.length !== 0;
|
|
3256
3253
|
}
|
|
3257
3254
|
goedkeurenClick() {
|
|
3258
|
-
this.
|
|
3259
|
-
|
|
3260
|
-
|
|
3261
|
-
|
|
3262
|
-
|
|
3263
|
-
|
|
3264
|
-
|
|
3265
|
-
})).subscribe();
|
|
3255
|
+
const ritDelen = this.viewerControlsService.ritdelen;
|
|
3256
|
+
if (ritDelen) {
|
|
3257
|
+
delete this.treinpad.aantalRitActies;
|
|
3258
|
+
this.treinpad.bewegingen = this.bewegingUtils.extractBewegingenUitRitdelen(ritDelen, this.viewerControlsService.origineelTreinPad.bewegingen);
|
|
3259
|
+
this.goedgekeurd.emit(this.treinpad);
|
|
3260
|
+
this.viewerControlsService.setOrigineelTreinPad(this.treinpad);
|
|
3261
|
+
}
|
|
3266
3262
|
}
|
|
3267
3263
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ViewerControlsComponent, deps: [{ token: i2$1.Store }, { token: ViewerControlService }, { token: BewegingUtils }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3268
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: ViewerControlsComponent, selector: "viewer-controls", inputs: { paginationSize: "paginationSize", treinpad: "treinpad", goedgekeurd: "goedgekeurd" }, usesOnChanges: true, ngImport: i0, template: "<button id=\"toonSideNavKnop\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm open-sidenav-button\"\n (click)=\"viewerControlsService.toggleSideNavVisible()\"\n [class.active]=\"viewerControlsService.sideNavOpen$ | async\"\n [hidden]=\"printing$ | async\">Ritdetails\n</button>\n<button *ngIf=\"showGoedkeuren()\"\n id=\"goedkeurenKnop\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm goedkeuren-button\"\n (click)=\"goedkeurenClick()\"\n [disabled]=\"(valideRit$ | async ) === false\"\n [hidden]=\"printing$ | async\">Goedkeuren\n</button>\n\n<carousel-controls [paginationSize]=\"paginationSize\"\n [sideNavOpen]=\"viewerControlsService.sideNavOpen$ | async\">\n</carousel-controls>\n", styles: [".open-sidenav-button.active{visibility:hidden}.open-sidenav-button,.goedkeuren-button{position:absolute;top:15px;z-index:600}.open-sidenav-button{left:15px}.goedkeuren-button{right:15px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CarouselControlsComponent, selector: "carousel-controls", inputs: ["paginationSize", "sideNavOpen"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
|
|
3264
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: ViewerControlsComponent, selector: "viewer-controls", inputs: { paginationSize: "paginationSize", iaversieinfo: "iaversieinfo", treinpad: "treinpad", goedgekeurd: "goedgekeurd" }, usesOnChanges: true, ngImport: i0, template: "<button id=\"toonSideNavKnop\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm open-sidenav-button\"\n (click)=\"viewerControlsService.toggleSideNavVisible()\"\n [class.active]=\"viewerControlsService.sideNavOpen$ | async\"\n [hidden]=\"printing$ | async\">Ritdetails\n</button>\n<button *ngIf=\"showGoedkeuren()\"\n id=\"goedkeurenKnop\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm goedkeuren-button\"\n (click)=\"goedkeurenClick()\"\n [disabled]=\"(valideRit$ | async ) === false\"\n [hidden]=\"printing$ | async\">Goedkeuren\n</button>\n\n<carousel-controls [paginationSize]=\"paginationSize\"\n [iaversieinfo]=\"iaversieinfo\"\n [sideNavOpen]=\"viewerControlsService.sideNavOpen$ | async\">\n</carousel-controls>\n", styles: [".open-sidenav-button.active{visibility:hidden}.open-sidenav-button,.goedkeuren-button{position:absolute;top:15px;z-index:600}.open-sidenav-button{left:15px}.goedkeuren-button{right:15px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CarouselControlsComponent, selector: "carousel-controls", inputs: ["paginationSize", "iaversieinfo", "sideNavOpen"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
|
|
3269
3265
|
}
|
|
3270
3266
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ViewerControlsComponent, decorators: [{
|
|
3271
3267
|
type: Component,
|
|
3272
|
-
args: [{ selector: 'viewer-controls', template: "<button id=\"toonSideNavKnop\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm open-sidenav-button\"\n (click)=\"viewerControlsService.toggleSideNavVisible()\"\n [class.active]=\"viewerControlsService.sideNavOpen$ | async\"\n [hidden]=\"printing$ | async\">Ritdetails\n</button>\n<button *ngIf=\"showGoedkeuren()\"\n id=\"goedkeurenKnop\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm goedkeuren-button\"\n (click)=\"goedkeurenClick()\"\n [disabled]=\"(valideRit$ | async ) === false\"\n [hidden]=\"printing$ | async\">Goedkeuren\n</button>\n\n<carousel-controls [paginationSize]=\"paginationSize\"\n [sideNavOpen]=\"viewerControlsService.sideNavOpen$ | async\">\n</carousel-controls>\n", styles: [".open-sidenav-button.active{visibility:hidden}.open-sidenav-button,.goedkeuren-button{position:absolute;top:15px;z-index:600}.open-sidenav-button{left:15px}.goedkeuren-button{right:15px}\n"] }]
|
|
3268
|
+
args: [{ selector: 'viewer-controls', template: "<button id=\"toonSideNavKnop\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm open-sidenav-button\"\n (click)=\"viewerControlsService.toggleSideNavVisible()\"\n [class.active]=\"viewerControlsService.sideNavOpen$ | async\"\n [hidden]=\"printing$ | async\">Ritdetails\n</button>\n<button *ngIf=\"showGoedkeuren()\"\n id=\"goedkeurenKnop\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm goedkeuren-button\"\n (click)=\"goedkeurenClick()\"\n [disabled]=\"(valideRit$ | async ) === false\"\n [hidden]=\"printing$ | async\">Goedkeuren\n</button>\n\n<carousel-controls [paginationSize]=\"paginationSize\"\n [iaversieinfo]=\"iaversieinfo\"\n [sideNavOpen]=\"viewerControlsService.sideNavOpen$ | async\">\n</carousel-controls>\n", styles: [".open-sidenav-button.active{visibility:hidden}.open-sidenav-button,.goedkeuren-button{position:absolute;top:15px;z-index:600}.open-sidenav-button{left:15px}.goedkeuren-button{right:15px}\n"] }]
|
|
3273
3269
|
}], ctorParameters: () => [{ type: i2$1.Store }, { type: ViewerControlService }, { type: BewegingUtils }], propDecorators: { paginationSize: [{
|
|
3274
3270
|
type: Input
|
|
3271
|
+
}], iaversieinfo: [{
|
|
3272
|
+
type: Input
|
|
3275
3273
|
}], treinpad: [{
|
|
3276
3274
|
type: Input
|
|
3277
3275
|
}], goedgekeurd: [{
|
|
@@ -3326,7 +3324,7 @@ class ActiePopoverBepaler {
|
|
|
3326
3324
|
ongeplandeActies.entries.forEach(entry => {
|
|
3327
3325
|
const treinNummerActieInfos = puicNaarOngeplandeActieMap.get(entry.key);
|
|
3328
3326
|
if (!treinNummerActieInfos?.map(({ actie }) => actie).includes(entry.value.actie)) {
|
|
3329
|
-
puicNaarOngeplandeActieMap.put(entry.key, { actie: entry.value.actie });
|
|
3327
|
+
puicNaarOngeplandeActieMap.put(entry.key, { treinNummer: undefined, actie: entry.value.actie });
|
|
3330
3328
|
}
|
|
3331
3329
|
});
|
|
3332
3330
|
}
|
|
@@ -3386,15 +3384,12 @@ class SvgVisualisatieComponent {
|
|
|
3386
3384
|
this.actieHelper = actieHelper;
|
|
3387
3385
|
this.sbmService = sbmService;
|
|
3388
3386
|
this.editorService = editorService;
|
|
3389
|
-
this.nietGeplandeActies = [];
|
|
3390
|
-
this.useClickArea = false;
|
|
3391
3387
|
this.svgInfos$ = this.store.select('svgInfos');
|
|
3392
3388
|
this.popoverInfos = [];
|
|
3393
3389
|
this.clickableIds = [];
|
|
3394
3390
|
this.rightClickableIds = [];
|
|
3395
3391
|
this.contextMenuActions = [];
|
|
3396
3392
|
this.contextMenuStyle = { display: 'none' };
|
|
3397
|
-
this.editable = false;
|
|
3398
3393
|
this.puicNaarBeginSeinRitdeel = new Map();
|
|
3399
3394
|
this.puicNaarEindSeinCombinatie = new Map();
|
|
3400
3395
|
this.puicNaarAlternatieveRoute = new Map();
|
|
@@ -3418,7 +3413,7 @@ class SvgVisualisatieComponent {
|
|
|
3418
3413
|
}));
|
|
3419
3414
|
}
|
|
3420
3415
|
ngOnInit() {
|
|
3421
|
-
document.getElementById('contextMenu')
|
|
3416
|
+
document.getElementById('contextMenu').addEventListener('mouseleave', () => this.hideContextMenu());
|
|
3422
3417
|
}
|
|
3423
3418
|
ngOnDestroy() {
|
|
3424
3419
|
this.subscriptions.forEach(s => s.unsubscribe());
|
|
@@ -3445,6 +3440,7 @@ class SvgVisualisatieComponent {
|
|
|
3445
3440
|
this.store.dispatch(navigeerBuitenRit(puic));
|
|
3446
3441
|
}
|
|
3447
3442
|
}
|
|
3443
|
+
this.store.dispatch(SetSelectedRitdeel(undefined));
|
|
3448
3444
|
}
|
|
3449
3445
|
handleImxviewRightClick(evt) {
|
|
3450
3446
|
const fn = () => {
|
|
@@ -3475,7 +3471,7 @@ class SvgVisualisatieComponent {
|
|
|
3475
3471
|
handleNieuweRouteToegevoegd() {
|
|
3476
3472
|
this.store.select('nieuweRoute')
|
|
3477
3473
|
.subscribe((nieuweRoute) => {
|
|
3478
|
-
if (nieuweRoute
|
|
3474
|
+
if (nieuweRoute.isValid()) {
|
|
3479
3475
|
this.store.dispatch(ResetNieuweRoute());
|
|
3480
3476
|
this.store.dispatch(ritdeelInvoegen(nieuweRoute));
|
|
3481
3477
|
}
|
|
@@ -3588,7 +3584,7 @@ class SvgVisualisatieComponent {
|
|
|
3588
3584
|
});
|
|
3589
3585
|
this.viewerControlsService.setValideRit(!gebrokenRit);
|
|
3590
3586
|
this.store.dispatch(SetGeplandeActies(actieOpRitSelectiePuics));
|
|
3591
|
-
const actieOpRitSelectiePuicsArray = Array.from(actieOpRitSelectiePuics.values())
|
|
3587
|
+
const actieOpRitSelectiePuicsArray = Utils.flatMap(Array.from(actieOpRitSelectiePuics.values()), x => x);
|
|
3592
3588
|
this.store.dispatch(SetActieOpRitSelectieIds(actieOpRitSelectiePuicsArray));
|
|
3593
3589
|
ritSelectiePuics = ritSelectiePuics.filter(item => actieOpRitSelectiePuicsArray.indexOf(item) < 0); // make mutually exclusive
|
|
3594
3590
|
this.store.dispatch(SetRitSelectieIds(ritSelectiePuics));
|
|
@@ -3644,9 +3640,6 @@ class MstviewerComponent {
|
|
|
3644
3640
|
this.printBewegingService = printBewegingService;
|
|
3645
3641
|
this.paginationSize = 4;
|
|
3646
3642
|
this.baseurl = 'https://acceptatie.raildesign.nl';
|
|
3647
|
-
this.debug = false;
|
|
3648
|
-
this.viewer = false;
|
|
3649
|
-
this.useClickArea = false;
|
|
3650
3643
|
this.goedgekeurd = new EventEmitter();
|
|
3651
3644
|
this.subscriptions = new Subscription();
|
|
3652
3645
|
this.subscriptions.add(this.store.select('nieuweBewegingen').subscribe(nieuweRit => {
|
|
@@ -3697,26 +3690,23 @@ class MstviewerComponent {
|
|
|
3697
3690
|
}
|
|
3698
3691
|
}
|
|
3699
3692
|
printFocusBeweging(bewegingId) {
|
|
3700
|
-
return this.printBewegingService.printBeweging(bewegingId, this.paginationSize);
|
|
3693
|
+
return this.printBewegingService.printBeweging(bewegingId, this.paginationSize, this.iaversieinfo);
|
|
3701
3694
|
}
|
|
3702
3695
|
keurAlleActiesGoed() {
|
|
3703
3696
|
this.viewerControlsService.keurAlleActiesGoed(this.ongeplandeActies);
|
|
3704
3697
|
}
|
|
3705
3698
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MstviewerComponent, deps: [{ token: i2$1.Store }, { token: ViewerControlService }, { token: DebugService }, { token: PrintBewegingService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3706
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: MstviewerComponent, selector: "mst-viewer", inputs: { iaversieinfo: "iaversieinfo", treinpad: "treinpad", ongeplandeActies: "ongeplandeActies", paginationSize: "paginationSize", baseurl: "baseurl", debug: "debug", viewer: "viewer", useClickArea: "useClickArea" }, outputs: { goedgekeurd: "goedgekeurd" }, usesOnChanges: true, ngImport: i0, template: "<loxia-messages></loxia-messages>\n<loxia-overlay *ngIf=\"(progressIndicator$ | async)\">\n <loxia-progress-indicator id=\"progress-indicator\" [border]=\"false\" upperText=\"\">\n </loxia-progress-indicator>\n</loxia-overlay>\n\n<div style=\"position: relative\">\n <rpe-component [baseurl]=\"baseurl\" path=\"/mst/editor/editor.nocache.js\"></rpe-component>\n\n <svg-visualisatie [useClickArea]=\"useClickArea\" [nietGeplandeActies]=\"ongeplandeActies\"></svg-visualisatie>\n\n <nav [class.active]=\"(viewerControlsService.sideNavOpen$ | async) === false\" id=\"sidebar\">\n <div id=\"dismiss\">\n <em id=\"verbergSideNav\" class=\"fa fa-arrow-left\" (click)=\"viewerControlsService.toggleSideNavVisible()\">×</em>\n </div>\n <ritdelen-lijst *ngIf=\"!viewer\" (focusEmitter)=\"focusRitdeel($event)\" (keurAlleActiesGoed)=\"keurAlleActiesGoed()\"\n [nietGeplandeActies]=\"ongeplandeActies\"></ritdelen-lijst>\n <ritdelen-view *ngIf=\"viewer\" (focusEmitter)=\"focusRitdeel($event)\"></ritdelen-view>\n </nav>\n\n <viewer-controls [paginationSize]=\"paginationSize\"\n [treinpad]=\"treinpad\"\n [goedgekeurd]=\"goedgekeurd\"\n ></viewer-controls>\n\n</div>\n", styles: ["#sidebar{min-width:350px;max-width:475px;background:#fff;transition:all .3s;height:93vh;position:absolute;top:0;z-index:20}#sidebar.active{margin-left:-475px}#sidebar .sidebar-header{padding:20px;background:#6d7fcc}#dismiss{width:20px;height:20px;position:absolute;cursor:pointer;top:5px;right:0;color:#000;z-index:300}[hidden]{display:none}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: OverlayComponent, selector: "loxia-overlay" }, { kind: "component", type: ProgressIndicatorComponent, selector: "loxia-progress-indicator" }, { kind: "component", type: RpeComponent, selector: "rpe-component", inputs: ["baseurl", "path"] }, { kind: "component", type: RitdelenLijstComponent, selector: "ritdelen-lijst", inputs: ["nietGeplandeActies"], outputs: ["focusEmitter", "keurAlleActiesGoed"] }, { kind: "component", type: RitdelenViewComponent, selector: "ritdelen-view", outputs: ["focusEmitter"] }, { kind: "component", type: ViewerControlsComponent, selector: "viewer-controls", inputs: ["paginationSize", "treinpad", "goedgekeurd"] }, { kind: "component", type: SvgVisualisatieComponent, selector: "svg-visualisatie", inputs: ["nietGeplandeActies", "useClickArea"] }, { kind: "component", type: MessagesComponent, selector: "loxia-messages" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
|
|
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 [iaversieinfo]=\"iaversieinfo\"\n [treinpad]=\"treinpad\"\n [goedgekeurd]=\"goedgekeurd\"\n ></viewer-controls>\n\n</div>\n", styles: ["#sidebar{min-width:350px;max-width:475px;background:#fff;transition:all .3s;height:93vh;position:absolute;top:0;z-index:20}#sidebar.active{margin-left:-475px}#sidebar .sidebar-header{padding:20px;background:#6d7fcc}#dismiss{width:20px;height:20px;position:absolute;cursor:pointer;top:5px;right:0;color:#000;z-index:300}[hidden]{display:none}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: OverlayComponent, selector: "loxia-overlay" }, { kind: "component", type: ProgressIndicatorComponent, selector: "loxia-progress-indicator" }, { kind: "component", type: RpeComponent, selector: "rpe-component", inputs: ["baseurl", "path"] }, { kind: "component", type: RitdelenLijstComponent, selector: "ritdelen-lijst", inputs: ["nietGeplandeActies"], outputs: ["focusEmitter", "keurAlleActiesGoed"] }, { kind: "component", type: RitdelenViewComponent, selector: "ritdelen-view", outputs: ["focusEmitter"] }, { kind: "component", type: ViewerControlsComponent, selector: "viewer-controls", inputs: ["paginationSize", "iaversieinfo", "treinpad", "goedgekeurd"] }, { kind: "component", type: SvgVisualisatieComponent, selector: "svg-visualisatie", inputs: ["nietGeplandeActies", "useClickArea"] }, { kind: "component", type: MessagesComponent, selector: "loxia-messages" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
|
|
3707
3700
|
}
|
|
3708
3701
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MstviewerComponent, decorators: [{
|
|
3709
3702
|
type: Component,
|
|
3710
|
-
args: [{ selector: 'mst-viewer', template: "<loxia-messages></loxia-messages>\n<loxia-overlay *ngIf=\"(progressIndicator$ | async)\">\n <loxia-progress-indicator id=\"progress-indicator\" [border]=\"false\" upperText=\"\">\n </loxia-progress-indicator>\n</loxia-overlay>\n\n<div style=\"position: relative\">\n <rpe-component [baseurl]=\"baseurl\" path=\"/mst/editor/editor.nocache.js\"></rpe-component>\n\n <svg-visualisatie [useClickArea]=\"useClickArea\" [nietGeplandeActies]=\"ongeplandeActies\"></svg-visualisatie>\n\n <nav [class.active]=\"(viewerControlsService.sideNavOpen$ | async) === false\" id=\"sidebar\">\n <div id=\"dismiss\">\n <em id=\"verbergSideNav\" class=\"fa fa-arrow-left\" (click)=\"viewerControlsService.toggleSideNavVisible()\">×</em>\n </div>\n <ritdelen-lijst *ngIf=\"!viewer\" (focusEmitter)=\"focusRitdeel($event)\" (keurAlleActiesGoed)=\"keurAlleActiesGoed()\"\n [nietGeplandeActies]=\"ongeplandeActies\"></ritdelen-lijst>\n <ritdelen-view *ngIf=\"viewer\" (focusEmitter)=\"focusRitdeel($event)\"></ritdelen-view>\n </nav>\n\n <viewer-controls [paginationSize]=\"paginationSize\"\n [treinpad]=\"treinpad\"\n [goedgekeurd]=\"goedgekeurd\"\n ></viewer-controls>\n\n</div>\n", styles: ["#sidebar{min-width:350px;max-width:475px;background:#fff;transition:all .3s;height:93vh;position:absolute;top:0;z-index:20}#sidebar.active{margin-left:-475px}#sidebar .sidebar-header{padding:20px;background:#6d7fcc}#dismiss{width:20px;height:20px;position:absolute;cursor:pointer;top:5px;right:0;color:#000;z-index:300}[hidden]{display:none}\n"] }]
|
|
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 [iaversieinfo]=\"iaversieinfo\"\n [treinpad]=\"treinpad\"\n [goedgekeurd]=\"goedgekeurd\"\n ></viewer-controls>\n\n</div>\n", styles: ["#sidebar{min-width:350px;max-width:475px;background:#fff;transition:all .3s;height:93vh;position:absolute;top:0;z-index:20}#sidebar.active{margin-left:-475px}#sidebar .sidebar-header{padding:20px;background:#6d7fcc}#dismiss{width:20px;height:20px;position:absolute;cursor:pointer;top:5px;right:0;color:#000;z-index:300}[hidden]{display:none}\n"] }]
|
|
3711
3704
|
}], ctorParameters: () => [{ type: i2$1.Store }, { type: ViewerControlService }, { type: DebugService }, { type: PrintBewegingService }], propDecorators: { iaversieinfo: [{
|
|
3712
|
-
type: Input
|
|
3713
|
-
args: [{ required: true }]
|
|
3705
|
+
type: Input
|
|
3714
3706
|
}], treinpad: [{
|
|
3715
|
-
type: Input
|
|
3716
|
-
args: [{ required: true }]
|
|
3707
|
+
type: Input
|
|
3717
3708
|
}], ongeplandeActies: [{
|
|
3718
|
-
type: Input
|
|
3719
|
-
args: [{ required: true }]
|
|
3709
|
+
type: Input
|
|
3720
3710
|
}], paginationSize: [{
|
|
3721
3711
|
type: Input
|
|
3722
3712
|
}], baseurl: [{
|
|
@@ -3732,26 +3722,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
3732
3722
|
}] } });
|
|
3733
3723
|
|
|
3734
3724
|
let SignaleringsbeeldInfoResource = class SignaleringsbeeldInfoResource extends Resource {
|
|
3735
|
-
constructor(restHandler, store
|
|
3725
|
+
constructor(restHandler, store) {
|
|
3736
3726
|
super(restHandler);
|
|
3737
|
-
this.restHandler = restHandler;
|
|
3738
3727
|
this.store = store;
|
|
3739
|
-
this.sbControllerService = sbControllerService;
|
|
3740
3728
|
this.subscriptions = new Subscription();
|
|
3741
|
-
this.subscriptions.add(this.store.select('baseUrl').subscribe(baseUrl =>
|
|
3742
|
-
this.$setUrl(baseUrl);
|
|
3743
|
-
sbControllerService.configuration.basePath = baseUrl + '/mst';
|
|
3744
|
-
}));
|
|
3729
|
+
this.subscriptions.add(this.store.select('baseUrl').subscribe(baseUrl => this.$setUrl(baseUrl)));
|
|
3745
3730
|
}
|
|
3746
3731
|
ngOnDestroy() {
|
|
3747
3732
|
this.subscriptions.unsubscribe();
|
|
3748
3733
|
}
|
|
3749
|
-
|
|
3750
|
-
return this.sbControllerService.getSignaleringsbeelden(versie, pplgs);
|
|
3751
|
-
}
|
|
3752
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SignaleringsbeeldInfoResource, deps: [{ token: i1$1.ResourceHandler }, { token: i2$1.Store }, { token: SbControllerService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3734
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SignaleringsbeeldInfoResource, deps: [{ token: i1$1.ResourceHandler }, { token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3753
3735
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SignaleringsbeeldInfoResource }); }
|
|
3754
3736
|
};
|
|
3737
|
+
__decorate([
|
|
3738
|
+
ResourceAction({
|
|
3739
|
+
path: '/',
|
|
3740
|
+
method: ResourceRequestMethod.Post
|
|
3741
|
+
})
|
|
3742
|
+
], SignaleringsbeeldInfoResource.prototype, "laadSignaleringsbeeldInfo", void 0);
|
|
3755
3743
|
__decorate([
|
|
3756
3744
|
ResourceAction({
|
|
3757
3745
|
path: '/valideeriaversie'
|
|
@@ -3764,7 +3752,7 @@ SignaleringsbeeldInfoResource = __decorate([
|
|
|
3764
3752
|
], SignaleringsbeeldInfoResource);
|
|
3765
3753
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SignaleringsbeeldInfoResource, decorators: [{
|
|
3766
3754
|
type: Injectable
|
|
3767
|
-
}], ctorParameters: () => [{ type: i1$1.ResourceHandler }, { type: i2$1.Store }, {
|
|
3755
|
+
}], ctorParameters: () => [{ type: i1$1.ResourceHandler }, { type: i2$1.Store }], propDecorators: { laadSignaleringsbeeldInfo: [], getBestaatIALevering: [] } });
|
|
3768
3756
|
class SignaleringsbeeldInfoDto extends ResourceModel {
|
|
3769
3757
|
constructor(data) {
|
|
3770
3758
|
super();
|
|
@@ -3792,8 +3780,6 @@ class BaseRestService {
|
|
|
3792
3780
|
this.httpClient = httpClient;
|
|
3793
3781
|
this.store = store;
|
|
3794
3782
|
this.subscriptions = new Subscription();
|
|
3795
|
-
this.baseUrl = '';
|
|
3796
|
-
this.iaVersie = '';
|
|
3797
3783
|
this.subscriptions.add(this.store.select('baseUrl').subscribe(baseUrl => this.baseUrl = baseUrl));
|
|
3798
3784
|
this.subscriptions.add(this.store.select('iaVersie').subscribe(iaVersie => this.iaVersie = iaVersie.versie));
|
|
3799
3785
|
}
|
|
@@ -3969,13 +3955,13 @@ class Ritdeel {
|
|
|
3969
3955
|
return retval;
|
|
3970
3956
|
}
|
|
3971
3957
|
getVrijebaanRijwegplan() {
|
|
3972
|
-
return this.vrijebaanRijwegplanRijwegDwangCombi
|
|
3958
|
+
return this.vrijebaanRijwegplanRijwegDwangCombi.rijwegplan;
|
|
3973
3959
|
}
|
|
3974
3960
|
getVrijebaanRijweg() {
|
|
3975
|
-
return this.vrijebaanRijwegplanRijwegDwangCombi
|
|
3961
|
+
return this.vrijebaanRijwegplanRijwegDwangCombi.rijweg;
|
|
3976
3962
|
}
|
|
3977
3963
|
getVrijebaanDwang() {
|
|
3978
|
-
return this.vrijebaanRijwegplanRijwegDwangCombi
|
|
3964
|
+
return this.vrijebaanRijwegplanRijwegDwangCombi.dwang;
|
|
3979
3965
|
}
|
|
3980
3966
|
getDwangNummer() {
|
|
3981
3967
|
return this.rijwegplanRijwegDwangCombi.getDwangNummer();
|
|
@@ -3992,7 +3978,7 @@ class Ritdeel {
|
|
|
3992
3978
|
isBinnenWindow() {
|
|
3993
3979
|
return (this.zichtbaarheid === RitdeelZichtbaarheid.ZICHTBAAR ||
|
|
3994
3980
|
this.zichtbaarheid === RitdeelZichtbaarheid.ONZICHTBAAR_DOOR_GEBRUIKER)
|
|
3995
|
-
&&
|
|
3981
|
+
&& this.zichtbaarBuitenPaginatie === false;
|
|
3996
3982
|
}
|
|
3997
3983
|
isNietBeschikbaar() {
|
|
3998
3984
|
return this.zichtbaarheid === RitdeelZichtbaarheid.ONZICHTBAAR_DOOR_SYSTEEM;
|
|
@@ -4015,10 +4001,10 @@ class Ritdeel {
|
|
|
4015
4001
|
}
|
|
4016
4002
|
}
|
|
4017
4003
|
heeftVrijebaanInfo() {
|
|
4018
|
-
return
|
|
4004
|
+
return this.vrijebaanRijwegplanRijwegDwangCombi && !!this.vrijebaanRijwegplanRijwegDwangCombi.dwang;
|
|
4019
4005
|
}
|
|
4020
4006
|
getVrijebaanPrlRoute() {
|
|
4021
|
-
return this.vrijebaanRijwegplanRijwegDwangCombi
|
|
4007
|
+
return this.vrijebaanRijwegplanRijwegDwangCombi.getRoute();
|
|
4022
4008
|
}
|
|
4023
4009
|
getTopologieElementen() {
|
|
4024
4010
|
return this.topoElementen;
|
|
@@ -4050,10 +4036,10 @@ class Ritdeel {
|
|
|
4050
4036
|
getZichtbaarheidBuitenPaginatie() {
|
|
4051
4037
|
return this.zichtbaarBuitenPaginatie;
|
|
4052
4038
|
}
|
|
4053
|
-
bepaalTopologieElementen(
|
|
4054
|
-
const topoElementen =
|
|
4039
|
+
bepaalTopologieElementen(signaleringsBeeldManagerService) {
|
|
4040
|
+
const topoElementen = signaleringsBeeldManagerService.bepaalRouteElementen(this.getRoute());
|
|
4055
4041
|
if (this.heeftVrijebaanInfo()) {
|
|
4056
|
-
const vrijebaanTopoElementen =
|
|
4042
|
+
const vrijebaanTopoElementen = signaleringsBeeldManagerService.bepaalRouteElementen(this.getVrijebaanPrlRoute());
|
|
4057
4043
|
topoElementen.push(...vrijebaanTopoElementen);
|
|
4058
4044
|
}
|
|
4059
4045
|
this.topoElementen = topoElementen;
|
|
@@ -4099,7 +4085,7 @@ class RitLezerService {
|
|
|
4099
4085
|
ritDelen.push(new Ritdeel(dwangInfo, beweging.ritActies, beweging, vrijebaanDwangInfo, vervolgSpoor, []));
|
|
4100
4086
|
}
|
|
4101
4087
|
extractVrijebaanDwangInfo(beweging, rijwegPlan, rijweg) {
|
|
4102
|
-
let vrijebaanDwangInfo =
|
|
4088
|
+
let vrijebaanDwangInfo = null;
|
|
4103
4089
|
let vervolgSpoor;
|
|
4104
4090
|
if (beweging.naarSpoor.endsWith(SPOOR_NAAR_VRIJEBAAN_POSTFIX) ||
|
|
4105
4091
|
beweging.naarSpoor.endsWith(SPOOR_NAAR_VEERWISSEL_VRIJEBAAN_POSTFIX)) {
|
|
@@ -4113,9 +4099,9 @@ class RitLezerService {
|
|
|
4113
4099
|
vrijebaanRijweg = vrijebaanRijwegen[0];
|
|
4114
4100
|
vrijebaanDwang = vrijebaanRijweg.getDwangVoorDwangNummer(0);
|
|
4115
4101
|
vervolgSpoor = vrijebaanRijwegplan.getVervolgSpoor(vrijebaanRijweg);
|
|
4116
|
-
vrijebaanDwangInfo =
|
|
4117
|
-
new RijwegplanRijwegDwangCombinatie(vrijebaanRijwegplan, vrijebaanRijweg, vrijebaanDwang);
|
|
4118
4102
|
}
|
|
4103
|
+
vrijebaanDwangInfo =
|
|
4104
|
+
new RijwegplanRijwegDwangCombinatie(vrijebaanRijwegplan, vrijebaanRijweg, vrijebaanDwang);
|
|
4119
4105
|
}
|
|
4120
4106
|
}
|
|
4121
4107
|
return { vrijebaanDwangInfo, vervolgSpoor };
|
|
@@ -4168,7 +4154,7 @@ class BepaalOngeplandeActiesEffect {
|
|
|
4168
4154
|
this.bepaalOngeplandeActies$ = createEffect(() => this.actions$.pipe(ofType(BepaalOngeplandeActies), withLatestFrom(this.store), map(([action, store]) => {
|
|
4169
4155
|
const puicActieMap = new ArrayMultimap();
|
|
4170
4156
|
const nietGevondenTakken = [];
|
|
4171
|
-
const logMeldingDTOs
|
|
4157
|
+
const logMeldingDTOs = [];
|
|
4172
4158
|
const acties = store.ritDelen.flatMap(rd => rd.acties);
|
|
4173
4159
|
action.ongeplandeActies.forEach(actie => {
|
|
4174
4160
|
const alreadyAdded = acties.filter(a => a.id === actie.id).length > 0;
|
|
@@ -4184,11 +4170,11 @@ class BepaalOngeplandeActiesEffect {
|
|
|
4184
4170
|
if (!spoortak && nietGevondenTakken.indexOf(takId) < 0) {
|
|
4185
4171
|
nietGevondenTakken.push(takId);
|
|
4186
4172
|
const melding = MeldingBuilder.nietGevondenTakkenOngeplandeActies(nietGevondenTakken);
|
|
4187
|
-
logMeldingDTOs
|
|
4173
|
+
logMeldingDTOs.push(this.loggingHelper.maakLogDTO(melding, actie));
|
|
4188
4174
|
}
|
|
4189
4175
|
else if (spoortak) {
|
|
4190
4176
|
const melding = MeldingBuilder.actieHighlightError([actie.id]);
|
|
4191
|
-
logMeldingDTOs
|
|
4177
|
+
logMeldingDTOs.push(this.loggingHelper.maakLogDTO(melding, actie));
|
|
4192
4178
|
this.messagesService.showMessage(MessageBuilder.actieHighlightError([actie.id]));
|
|
4193
4179
|
}
|
|
4194
4180
|
}
|
|
@@ -4197,8 +4183,8 @@ class BepaalOngeplandeActiesEffect {
|
|
|
4197
4183
|
if (nietGevondenTakken.length > 0) {
|
|
4198
4184
|
this.messagesService.showMessage(MessageBuilder.nietGevondenTakkenOngeplandeActies(nietGevondenTakken));
|
|
4199
4185
|
}
|
|
4200
|
-
if (logMeldingDTOs
|
|
4201
|
-
|
|
4186
|
+
if (logMeldingDTOs.length > 0) {
|
|
4187
|
+
this.mstLogResource.logMessages(logMeldingDTOs);
|
|
4202
4188
|
}
|
|
4203
4189
|
this.store.dispatch(SetOngeplandeActies(puicActieMap));
|
|
4204
4190
|
this.store.dispatch(SetOngeplandeActieSelectieIds(Array.from(puicActieMap.keys())));
|
|
@@ -4391,7 +4377,7 @@ class FocusEffect {
|
|
|
4391
4377
|
const dwangPuics = this.getPuics(topoElementen);
|
|
4392
4378
|
if (ritdeel.isNietBeschikbaar()) {
|
|
4393
4379
|
this.store.dispatch(SetOngeplandeActiesBepaald(false));
|
|
4394
|
-
this.store.dispatch(navigeerVanaf(actie.paginationSize, ritdeel));
|
|
4380
|
+
this.store.dispatch(navigeerVanaf(actie.paginationSize, actie.iaVersieInfo, ritdeel));
|
|
4395
4381
|
}
|
|
4396
4382
|
return focusOpIds(dwangPuics);
|
|
4397
4383
|
})));
|
|
@@ -4413,16 +4399,16 @@ class LaadRouteFilesEffect {
|
|
|
4413
4399
|
this.ritLezer = ritLezer;
|
|
4414
4400
|
this.editorService = editorService;
|
|
4415
4401
|
this.messagesService = messagesService;
|
|
4416
|
-
this.authActions$ = createEffect(() => this.actions$.pipe(ofType(SetSignaleringsbeeldInfoDtos),
|
|
4402
|
+
this.authActions$ = createEffect(() => this.actions$.pipe(ofType(SetSignaleringsbeeldInfoDtos), map(action => this.laadRouteFiles(action))), { dispatch: false });
|
|
4417
4403
|
}
|
|
4418
|
-
laadRouteFiles(actie
|
|
4404
|
+
laadRouteFiles(actie) {
|
|
4419
4405
|
const isReady = this.editorService.isReady();
|
|
4420
4406
|
isReady.then(() => {
|
|
4421
4407
|
const pplgs = this.bepaalSbDtoPplgs(actie.dtos);
|
|
4422
|
-
const promise = this.editorService.laadRouteFiles(
|
|
4408
|
+
const promise = this.editorService.laadRouteFiles(actie.iaversieinfo.versie, pplgs);
|
|
4423
4409
|
promise.then(() => {
|
|
4424
4410
|
this.updateRitdelen(actie);
|
|
4425
|
-
},
|
|
4411
|
+
}, err => {
|
|
4426
4412
|
this.messagesService.showMessage(MessageBuilder.rwpDataNietGevonden(Utils.getValidErorrMessage(err)));
|
|
4427
4413
|
});
|
|
4428
4414
|
});
|
|
@@ -4433,7 +4419,7 @@ class LaadRouteFilesEffect {
|
|
|
4433
4419
|
if (ritdelen.length === 0) {
|
|
4434
4420
|
ritdelen = this.ritLezer.parseRit(actie.treinpad, actie.ritGewijzigdToegestaan);
|
|
4435
4421
|
}
|
|
4436
|
-
this.store.dispatch(setRitDelen(ritdelen, actie.paginationSize));
|
|
4422
|
+
this.store.dispatch(setRitDelen(ritdelen, actie.paginationSize, actie.iaversieinfo));
|
|
4437
4423
|
this.store.dispatch(setEditable(actie.treinpad.ritStatus !== 'Definitief'));
|
|
4438
4424
|
});
|
|
4439
4425
|
}, 0);
|
|
@@ -4441,7 +4427,7 @@ class LaadRouteFilesEffect {
|
|
|
4441
4427
|
bepaalSbDtoPplgs(dtos) {
|
|
4442
4428
|
const pplgs = [];
|
|
4443
4429
|
dtos.forEach(dto => {
|
|
4444
|
-
dto.pplgs
|
|
4430
|
+
dto.pplgs.forEach(pplg => {
|
|
4445
4431
|
if (!pplgs.includes(pplg)) {
|
|
4446
4432
|
pplgs.push(pplg);
|
|
4447
4433
|
}
|
|
@@ -4482,14 +4468,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
4482
4468
|
}] });
|
|
4483
4469
|
|
|
4484
4470
|
class LaadSignaleringsbeeldenEffect {
|
|
4485
|
-
constructor(actions$, store, signaleringsBeeldManagerService, editorService, sbiResource, connectorService,
|
|
4471
|
+
constructor(actions$, store, signaleringsBeeldManagerService, editorService, sbiResource, connectorService, messagesSerivce) {
|
|
4486
4472
|
this.actions$ = actions$;
|
|
4487
4473
|
this.store = store;
|
|
4488
4474
|
this.signaleringsBeeldManagerService = signaleringsBeeldManagerService;
|
|
4489
4475
|
this.editorService = editorService;
|
|
4490
4476
|
this.sbiResource = sbiResource;
|
|
4491
4477
|
this.connectorService = connectorService;
|
|
4492
|
-
this.
|
|
4478
|
+
this.messagesSerivce = messagesSerivce;
|
|
4493
4479
|
this.SVG_PIXEL_RUIMTE = 30;
|
|
4494
4480
|
this.verwerkRitdelen$ = createEffect(() => this.actions$.pipe(ofType(setRitDelen, navigeer, navigeerVanaf), withLatestFrom(this.store), map(([actie, storeState]) => {
|
|
4495
4481
|
this.store.dispatch(SetOngeplandeActiesBepaald(false));
|
|
@@ -4503,14 +4489,14 @@ class LaadSignaleringsbeeldenEffect {
|
|
|
4503
4489
|
}).pipe(switchMap(this.getOtherRand.bind(this)), switchMap(this.loadRouteFilesAndSignaleringsbeeldInfo.bind(this)), switchMap(this.loadSignaleringsbeelden.bind(this)), map(this.processSvgsAndUpdateRitdelen.bind(this))))), { dispatch: false });
|
|
4504
4490
|
}
|
|
4505
4491
|
handleSignaleringsbeeldInfo({ actie, storeState }) {
|
|
4506
|
-
return this.sbiResource.laadSignaleringsbeeldInfo(
|
|
4507
|
-
this.
|
|
4492
|
+
return this.sbiResource.laadSignaleringsbeeldInfo(this.createSignaleringsbeeldInfoQueryDto(actie.pplgs, storeState.iaVersie)).pipe(take(1), tap((dtos) => this.processResponse({ dtos, storeState, actie })), catchError((err) => {
|
|
4493
|
+
this.messagesSerivce.showMessage(MessageBuilder.nietGevondenSBI(err));
|
|
4508
4494
|
return throwError(() => err);
|
|
4509
4495
|
}));
|
|
4510
4496
|
}
|
|
4511
4497
|
processResponse({ dtos, storeState, actie }) {
|
|
4512
4498
|
if (dtos && dtos.filter(dto => dto.metVisualisatie).length > 12) {
|
|
4513
|
-
this.
|
|
4499
|
+
this.messagesSerivce.showMessage(MessageBuilder.meerDan12BladenGevonden(dtos.length));
|
|
4514
4500
|
}
|
|
4515
4501
|
this.store.dispatch(SetSignaleringsbeeldInfoDtos(dtos, storeState.iaVersie, actie.rit, actie.paginationSize, actie.ritGewijzigdToegestaan));
|
|
4516
4502
|
this.store.dispatch(SetVisibleSignaleringsbeeldInfoDtos(dtos));
|
|
@@ -4520,14 +4506,14 @@ class LaadSignaleringsbeeldenEffect {
|
|
|
4520
4506
|
}
|
|
4521
4507
|
loadRouteFilesAndSignaleringsbeeldInfo({ otherPplg, rand, storeState }) {
|
|
4522
4508
|
this.editorService.laadRouteFiles(storeState.iaVersie.versie, [rand.getPPLG(), otherPplg]);
|
|
4523
|
-
return this.sbiResource.laadSignaleringsbeeldInfo(
|
|
4509
|
+
return this.sbiResource.laadSignaleringsbeeldInfo(this.createSignaleringsbeeldInfoQueryDto([rand.getPPLG(), otherPplg], storeState.iaVersie)).pipe(map(dtos => ({ dtos, storeState })));
|
|
4524
4510
|
}
|
|
4525
4511
|
loadSignaleringsbeelden({ dtos, storeState }) {
|
|
4526
|
-
return this.editorService.laadSignaleringsbeelden(storeState.iaVersie.versie, dtos).pipe(map(svgDataUrls => ({ svgDataUrls,
|
|
4512
|
+
return this.editorService.laadSignaleringsbeelden(storeState.iaVersie.versie, dtos).pipe(map(svgDataUrls => ({ svgDataUrls, storeState, dtos })));
|
|
4527
4513
|
}
|
|
4528
|
-
processSvgsAndUpdateRitdelen({ svgDataUrls,
|
|
4514
|
+
processSvgsAndUpdateRitdelen({ svgDataUrls, storeState, dtos }) {
|
|
4529
4515
|
this.verwerkSvgs(svgDataUrls);
|
|
4530
|
-
const nieuweRitdelen = this.updateRitdelen(ritDelen, dtos);
|
|
4516
|
+
const nieuweRitdelen = this.updateRitdelen(storeState.ritDelen, dtos);
|
|
4531
4517
|
this.store.dispatch(UpdateVisibleSignaleringsbeeldInfoDtos(dtos));
|
|
4532
4518
|
this.store.dispatch(updateRitDelen(nieuweRitdelen));
|
|
4533
4519
|
}
|
|
@@ -4540,11 +4526,11 @@ class LaadSignaleringsbeeldenEffect {
|
|
|
4540
4526
|
const visibleRitPplgs = visibleRitDelen.map(r => r.getPplg()).filter(this.distinct);
|
|
4541
4527
|
const visibleDtos = this.bepaalZichtbareDtos(visibleRitPplgs, storeDtos);
|
|
4542
4528
|
const loadingDtos = this.bepaalToLoadDtos(visibleDtos, ritDelen, visibleRitDelen, visibleRitPplgs, storeState);
|
|
4543
|
-
this.editorService.laadSignaleringsbeelden(
|
|
4529
|
+
this.editorService.laadSignaleringsbeelden(actie.iaversieinfo.versie, loadingDtos).pipe(tap(svgDataUrls => {
|
|
4544
4530
|
this.verwerkSvgs(svgDataUrls);
|
|
4545
4531
|
this.updateState(ritDelen, visibleDtos, storeState, visibleRitPplgs, loadingDtos, isInit, storeDtos);
|
|
4546
4532
|
}), catchError(err => {
|
|
4547
|
-
this.
|
|
4533
|
+
this.messagesSerivce.showMessage(MessageBuilder.rwpDataNietGevonden(Utils.getValidErorrMessage(err)));
|
|
4548
4534
|
throw err;
|
|
4549
4535
|
})).subscribe();
|
|
4550
4536
|
}
|
|
@@ -4559,6 +4545,10 @@ class LaadSignaleringsbeeldenEffect {
|
|
|
4559
4545
|
this.store.dispatch(updateRitDelen(nieuweRitdelen));
|
|
4560
4546
|
}, 0);
|
|
4561
4547
|
}
|
|
4548
|
+
createSignaleringsbeeldInfoQueryDto(pplgs, iainfo) {
|
|
4549
|
+
const datum = iainfo.ingangsDatum && !isNaN(iainfo.ingangsDatum.getTime()) ? iainfo.ingangsDatum.toISOString() : undefined;
|
|
4550
|
+
return { pplgs, versie: iainfo.versie, ingangsDatum: datum };
|
|
4551
|
+
}
|
|
4562
4552
|
verwerkSvgs(svgDataUrls) {
|
|
4563
4553
|
this.store.dispatch(SetSvgInfos(this.bepaalSvgInfos(svgDataUrls)));
|
|
4564
4554
|
}
|
|
@@ -4585,7 +4575,7 @@ class LaadSignaleringsbeeldenEffect {
|
|
|
4585
4575
|
bepaalZichtbareDtos(visibleRitPplgs, dtos) {
|
|
4586
4576
|
const visibleDtos = [];
|
|
4587
4577
|
visibleRitPplgs.forEach(pplg => {
|
|
4588
|
-
dtos.filter(dto => dto.pplgs
|
|
4578
|
+
dtos.filter(dto => dto.pplgs.includes(pplg)).forEach(dto => {
|
|
4589
4579
|
if (!visibleDtos.includes(dto)) {
|
|
4590
4580
|
visibleDtos.push(dto);
|
|
4591
4581
|
}
|
|
@@ -4595,13 +4585,13 @@ class LaadSignaleringsbeeldenEffect {
|
|
|
4595
4585
|
dtos.filter(d => !visibleDtos.includes(d)).forEach(d => d.metVisualisatie = false);
|
|
4596
4586
|
return visibleDtos;
|
|
4597
4587
|
}
|
|
4598
|
-
distinct(value, index,
|
|
4599
|
-
return
|
|
4588
|
+
distinct(value, index, self) {
|
|
4589
|
+
return self.indexOf(value) === index;
|
|
4600
4590
|
}
|
|
4601
4591
|
addPrevNonVisibleDto(firstIdx, ritdelen, loadingDtos, visibleRitPplgs, allDtos) {
|
|
4602
4592
|
if (firstIdx >= 0) {
|
|
4603
4593
|
const pplg = ritdelen[firstIdx].getPplg();
|
|
4604
|
-
const ritdeelDtos = allDtos.filter(dto => dto.pplgs
|
|
4594
|
+
const ritdeelDtos = allDtos.filter(dto => dto.pplgs.includes(pplg)).filter(dto => !loadingDtos.includes(dto));
|
|
4605
4595
|
if (!visibleRitPplgs.includes(pplg) && ritdeelDtos.length > 0) {
|
|
4606
4596
|
ritdeelDtos.filter(d => !loadingDtos.includes(d)).forEach(d => {
|
|
4607
4597
|
d.metVisualisatie = false;
|
|
@@ -4616,7 +4606,7 @@ class LaadSignaleringsbeeldenEffect {
|
|
|
4616
4606
|
addNextNonVisibleDto(lastIdx, ritdelen, loadingDtos, visibleRitPplgs, allDtos) {
|
|
4617
4607
|
if (lastIdx <= ritdelen.length - 1) {
|
|
4618
4608
|
const pplg = ritdelen[lastIdx].getPplg();
|
|
4619
|
-
const ritdeelDtos = allDtos.filter(dto => dto.pplgs
|
|
4609
|
+
const ritdeelDtos = allDtos.filter(dto => dto.pplgs.includes(pplg)).filter(dto => !loadingDtos.includes(dto));
|
|
4620
4610
|
if (!visibleRitPplgs.includes(pplg) && ritdeelDtos.length > 0) {
|
|
4621
4611
|
ritdeelDtos.filter(d => !loadingDtos.includes(d)).forEach(d => {
|
|
4622
4612
|
d.metVisualisatie = false;
|
|
@@ -4685,7 +4675,7 @@ class LaadSignaleringsbeeldenEffect {
|
|
|
4685
4675
|
}
|
|
4686
4676
|
}
|
|
4687
4677
|
}
|
|
4688
|
-
this.
|
|
4678
|
+
this.updateZichtbaarheidAangrezendeRitdelen(min, max, ritdelen, visibleDtos);
|
|
4689
4679
|
return this.updateZichtbaarheidBuitenWindow(ritdelen, visibleDtos);
|
|
4690
4680
|
}
|
|
4691
4681
|
updateZichtbaarheidBuitenWindow(nieuweRitdelen, visibleDtos) {
|
|
@@ -4701,7 +4691,7 @@ class LaadSignaleringsbeeldenEffect {
|
|
|
4701
4691
|
}
|
|
4702
4692
|
return nieuweRitdelen;
|
|
4703
4693
|
}
|
|
4704
|
-
|
|
4694
|
+
updateZichtbaarheidAangrezendeRitdelen(min, max, nieuweRitdelen, visibleDtos) {
|
|
4705
4695
|
let i = min - 1;
|
|
4706
4696
|
while (i >= 0) {
|
|
4707
4697
|
i = this.updateZichtbaarHeid(i, 0, visibleDtos, nieuweRitdelen) - 1;
|
|
@@ -4737,11 +4727,9 @@ class LaadSignaleringsbeeldenEffect {
|
|
|
4737
4727
|
}
|
|
4738
4728
|
bevatGevisualiseerdePplg(visibleDtos, pplg) {
|
|
4739
4729
|
for (const dto of visibleDtos) {
|
|
4740
|
-
|
|
4741
|
-
|
|
4742
|
-
|
|
4743
|
-
return true;
|
|
4744
|
-
}
|
|
4730
|
+
for (const dtopplg of dto.pplgs) {
|
|
4731
|
+
if (dtopplg === pplg) {
|
|
4732
|
+
return true;
|
|
4745
4733
|
}
|
|
4746
4734
|
}
|
|
4747
4735
|
}
|
|
@@ -4791,7 +4779,7 @@ class LaadSignaleringsbeeldenEffect {
|
|
|
4791
4779
|
pplgsWindow.push(itemPplg);
|
|
4792
4780
|
}
|
|
4793
4781
|
const pplgDtos = [];
|
|
4794
|
-
dtos.filter(dto => dto.pplgs
|
|
4782
|
+
dtos.filter(dto => dto.pplgs.includes(itemPplg)).forEach(dto => {
|
|
4795
4783
|
if (!pplgDtos.includes(dto)) {
|
|
4796
4784
|
pplgDtos.push(dto);
|
|
4797
4785
|
}
|
|
@@ -4838,11 +4826,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
4838
4826
|
}], ctorParameters: () => [{ type: i1$2.Actions }, { type: i2$1.Store }, { type: BewegingVerrijkerService }] });
|
|
4839
4827
|
|
|
4840
4828
|
class RitdelenEffect {
|
|
4841
|
-
constructor(actions$, store, sbmService,
|
|
4829
|
+
constructor(actions$, store, sbmService, rijwegPlanEditorService) {
|
|
4842
4830
|
this.actions$ = actions$;
|
|
4843
4831
|
this.store = store;
|
|
4844
4832
|
this.sbmService = sbmService;
|
|
4845
|
-
this.
|
|
4833
|
+
this.rijwegPlanEditorService = rijwegPlanEditorService;
|
|
4846
4834
|
this.updateRitDelen$ = createEffect(() => this.actions$.pipe(ofType(updateRitDelen), withLatestFrom(this.store), map(([actie, _storeState]) => {
|
|
4847
4835
|
const nieuweRitDelen = actie.ritDelen.map(ritDeel => ritDeel.isZichtbaar() ?
|
|
4848
4836
|
ritDeel.copyMetAlternatieveRoutes(this.sbmService.bepaalAlternativeRoutes(ritDeel.getRijweg())) : ritDeel);
|
|
@@ -4860,25 +4848,25 @@ class RitdelenEffect {
|
|
|
4860
4848
|
return setRitdelenAfterUpdate(ritDelen);
|
|
4861
4849
|
})));
|
|
4862
4850
|
this.ritdeelInvoegen$ = createEffect(() => this.actions$.pipe(ofType(ritdeelInvoegen), withLatestFrom(this.store), map(([actie, storeState]) => {
|
|
4863
|
-
const ritDelen = this.ritdeelInvoegenFunc(storeState.ritDelen, actie.nieuweRoute);
|
|
4851
|
+
const ritDelen = this.ritdeelInvoegenFunc(storeState.ritDelen, actie.nieuweRoute, this.rijwegPlanEditorService, this.sbmService);
|
|
4864
4852
|
return setRitdelenAfterUpdate(ritDelen);
|
|
4865
4853
|
})));
|
|
4866
4854
|
}
|
|
4867
|
-
ritdeelInvoegenFunc(ritDelen, nieuweRoute) {
|
|
4855
|
+
ritdeelInvoegenFunc(ritDelen, nieuweRoute, rijwegPlanEditorService, sbmService) {
|
|
4868
4856
|
const origineelRitdeel = nieuweRoute.beginSeinOpRitdeel.ritdeel;
|
|
4869
4857
|
const beginSein = nieuweRoute.beginSeinOpRitdeel.sein;
|
|
4870
|
-
const rijwegplan =
|
|
4858
|
+
const rijwegplan = rijwegPlanEditorService.getRijwegplan(beginSein.getPPLG());
|
|
4871
4859
|
const dwangen = JsJavaUtil.listToArray(rijwegplan.getOnderliggendeDwangenTotEnVanSein(origineelRitdeel.getDwang(), beginSein));
|
|
4872
4860
|
const isSamengesteldeRoute = dwangen[0] && dwangen[1];
|
|
4873
4861
|
let newRitdeel1 = origineelRitdeel;
|
|
4874
4862
|
if (isSamengesteldeRoute) {
|
|
4875
|
-
newRitdeel1 = this.verwerkSamengesteldeRoute(origineelRitdeel, rijwegplan, dwangen, ritDelen);
|
|
4863
|
+
newRitdeel1 = this.verwerkSamengesteldeRoute(origineelRitdeel, rijwegplan, dwangen, sbmService, ritDelen);
|
|
4876
4864
|
}
|
|
4877
|
-
if (nieuweRoute.combinatieVoorEindsein
|
|
4878
|
-
this.extendRitdeelMetVrijebaanInfo(newRitdeel1, nieuweRoute);
|
|
4865
|
+
if (nieuweRoute.combinatieVoorEindsein.isVrijeBaanRijweg()) {
|
|
4866
|
+
this.extendRitdeelMetVrijebaanInfo(newRitdeel1, nieuweRoute, sbmService);
|
|
4879
4867
|
}
|
|
4880
4868
|
else {
|
|
4881
|
-
this.maakNieuwRitdeel(newRitdeel1, nieuweRoute, ritDelen);
|
|
4869
|
+
this.maakNieuwRitdeel(newRitdeel1, nieuweRoute, sbmService, ritDelen);
|
|
4882
4870
|
}
|
|
4883
4871
|
if (isSamengesteldeRoute) {
|
|
4884
4872
|
ritDelen.splice(ritDelen.indexOf(origineelRitdeel), 1);
|
|
@@ -4893,39 +4881,38 @@ class RitdelenEffect {
|
|
|
4893
4881
|
}
|
|
4894
4882
|
}
|
|
4895
4883
|
}
|
|
4896
|
-
verwerkSamengesteldeRoute(origineelRitdeel, rijwegplan, dwangen, ritDelen) {
|
|
4884
|
+
verwerkSamengesteldeRoute(origineelRitdeel, rijwegplan, dwangen, sbmService, ritDelen) {
|
|
4897
4885
|
// dwangen in 2 nieuwe ritdelen verwerken voor de knip
|
|
4898
4886
|
const nieuweRijweg1 = rijwegplan.getRijwegVoorSeinen(dwangen[0].getRoute().getBeginSein(), dwangen[0].getRoute().getEindSein());
|
|
4899
4887
|
const dwangInfo1 = new RijwegplanRijwegDwangCombinatie(rijwegplan, nieuweRijweg1, dwangen[0]);
|
|
4900
|
-
const newRitdeel1 = new Ritdeel(dwangInfo1, [],
|
|
4888
|
+
const newRitdeel1 = new Ritdeel(dwangInfo1, [], null, null, null, []);
|
|
4901
4889
|
// remove vrijbaan info uit ritdeel
|
|
4902
|
-
newRitdeel1.vrijebaanRijwegplanRijwegDwangCombi =
|
|
4903
|
-
newRitdeel1.vervolgSpoor =
|
|
4904
|
-
newRitdeel1.bepaalTopologieElementen(
|
|
4890
|
+
newRitdeel1.vrijebaanRijwegplanRijwegDwangCombi = null;
|
|
4891
|
+
newRitdeel1.vervolgSpoor = null;
|
|
4892
|
+
newRitdeel1.bepaalTopologieElementen(sbmService);
|
|
4905
4893
|
this.insertRitdeel(ritDelen, origineelRitdeel, newRitdeel1);
|
|
4906
4894
|
const nieuweRijweg2 = rijwegplan.getRijwegVoorSeinen(dwangen[1].getRoute().getBeginSein(), dwangen[1].getRoute().getEindSein());
|
|
4907
4895
|
const dwangInfo2 = new RijwegplanRijwegDwangCombinatie(rijwegplan, nieuweRijweg2, dwangen[1]);
|
|
4908
|
-
const newRitdeel2 = new Ritdeel(dwangInfo2, [],
|
|
4909
|
-
newRitdeel2.bepaalTopologieElementen(
|
|
4896
|
+
const newRitdeel2 = new Ritdeel(dwangInfo2, [], null, null, null, []);
|
|
4897
|
+
newRitdeel2.bepaalTopologieElementen(sbmService);
|
|
4910
4898
|
this.insertRitdeel(ritDelen, newRitdeel1, newRitdeel2);
|
|
4911
4899
|
return newRitdeel1;
|
|
4912
4900
|
}
|
|
4913
|
-
extendRitdeelMetVrijebaanInfo(newRitdeel1, nieuweRoute) {
|
|
4901
|
+
extendRitdeelMetVrijebaanInfo(newRitdeel1, nieuweRoute, sbmService) {
|
|
4914
4902
|
newRitdeel1.vrijebaanRijwegplanRijwegDwangCombi = nieuweRoute.combinatieVoorEindsein;
|
|
4915
|
-
const vbrwp = nieuweRoute.combinatieVoorEindsein
|
|
4916
|
-
newRitdeel1.vervolgSpoor = nieuweRoute.combinatieVoorEindsein
|
|
4917
|
-
|
|
4918
|
-
newRitdeel1.bepaalTopologieElementen(this.sbmService);
|
|
4903
|
+
const vbrwp = nieuweRoute.combinatieVoorEindsein.rijwegplan;
|
|
4904
|
+
newRitdeel1.vervolgSpoor = vbrwp.getVervolgSpoor(nieuweRoute.combinatieVoorEindsein.rijweg);
|
|
4905
|
+
newRitdeel1.bepaalTopologieElementen(sbmService);
|
|
4919
4906
|
}
|
|
4920
|
-
maakNieuwRitdeel(newRitdeel1, nieuweRoute, ritDelen) {
|
|
4907
|
+
maakNieuwRitdeel(newRitdeel1, nieuweRoute, sbmService, ritDelen) {
|
|
4921
4908
|
let newRitdeel = this.createRitdeel(nieuweRoute);
|
|
4922
|
-
const altRoutes =
|
|
4909
|
+
const altRoutes = sbmService.bepaalAlternativeRoutes(newRitdeel.getRijweg());
|
|
4923
4910
|
newRitdeel = newRitdeel.copyMetAlternatieveRoutes(altRoutes);
|
|
4924
|
-
newRitdeel.bepaalTopologieElementen(
|
|
4911
|
+
newRitdeel.bepaalTopologieElementen(sbmService);
|
|
4925
4912
|
this.insertRitdeel(ritDelen, newRitdeel1, newRitdeel);
|
|
4926
4913
|
}
|
|
4927
4914
|
createRitdeel(nieuweRoute) {
|
|
4928
|
-
return new Ritdeel(nieuweRoute.combinatieVoorEindsein, [],
|
|
4915
|
+
return new Ritdeel(nieuweRoute.combinatieVoorEindsein, [], null, null, null, []);
|
|
4929
4916
|
}
|
|
4930
4917
|
insertRitdeel(ritdelen, naRitdeelPositie, newRitdeel) {
|
|
4931
4918
|
const idx = ritdelen.indexOf(naRitdeelPositie);
|
|
@@ -4976,24 +4963,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
4976
4963
|
type: Injectable
|
|
4977
4964
|
}], ctorParameters: () => [{ type: i1$2.Actions }, { type: i2$1.Store }, { type: SignaleringsBeeldManagerService }, { type: i4.SignaleringsbeeldSvgUtilityService }] });
|
|
4978
4965
|
|
|
4979
|
-
class ProgressIndicator {
|
|
4980
|
-
constructor(lowerText, upperText, iconClass) {
|
|
4981
|
-
this.lowerText = '';
|
|
4982
|
-
this.upperText = '';
|
|
4983
|
-
this.iconClass = '';
|
|
4984
|
-
this.lowerText = lowerText ?? this.lowerText;
|
|
4985
|
-
this.upperText = upperText ?? this.upperText;
|
|
4986
|
-
this.iconClass = iconClass ?? this.iconClass;
|
|
4987
|
-
}
|
|
4988
|
-
}
|
|
4989
|
-
|
|
4990
4966
|
class NieuweRoute {
|
|
4991
4967
|
constructor(beginSeinOpRitdeel, combinatieVoorEindsein) {
|
|
4992
4968
|
this.beginSeinOpRitdeel = beginSeinOpRitdeel;
|
|
4993
4969
|
this.combinatieVoorEindsein = combinatieVoorEindsein;
|
|
4994
4970
|
}
|
|
4995
4971
|
isValid() {
|
|
4996
|
-
return
|
|
4972
|
+
return this.combinatieVoorEindsein !== null;
|
|
4997
4973
|
}
|
|
4998
4974
|
}
|
|
4999
4975
|
|
|
@@ -5059,7 +5035,7 @@ function addRitdeelActieFunc(ritDelen, { ritDeel, actie }) {
|
|
|
5059
5035
|
const onIdsActionHandler = (action) => on(action, (_, { ids }) => ids);
|
|
5060
5036
|
const createIdsReducer = (action) => createReducer([], onIdsActionHandler(action));
|
|
5061
5037
|
const editableReducer = createReducer(true, on(setEditable, (_, { editable }) => editable));
|
|
5062
|
-
const progressIndicatorReducer = createReducer(
|
|
5038
|
+
const progressIndicatorReducer = createReducer(undefined, on(ShowProgress, () => ({ progressIndicator: {} })), on(ClearProgress, () => undefined));
|
|
5063
5039
|
const svgInfoReducer = createReducer([], on(SetSvgInfos, (_, { svgInfos }) => svgInfos));
|
|
5064
5040
|
const debugReducer = createReducer(false, on(SetDebug, (_, { debug }) => debug));
|
|
5065
5041
|
const ritSelectieIdsReducer = createIdsReducer(SetRitSelectieIds);
|
|
@@ -5085,10 +5061,12 @@ const ongeplandeActieReducer = createReducer(new ArrayMultimap(), on(SetOngeplan
|
|
|
5085
5061
|
ongeplandeActie.puics.forEach(puic => ongeplandeActies.delete(puic, ongeplandeActie));
|
|
5086
5062
|
return new ArrayMultimap(ongeplandeActies);
|
|
5087
5063
|
}));
|
|
5088
|
-
const ongeplandeActieSelectieIdsReducer = createReducer([],
|
|
5064
|
+
const ongeplandeActieSelectieIdsReducer = createReducer([],
|
|
5065
|
+
// on(MstActions.SetOngeplandeActieSelectieIds, (_, { ids }) => ids),
|
|
5066
|
+
onIdsActionHandler(SetOngeplandeActieSelectieIds), on(AddOngeplandeActie, (ids, { ongeplandeActie }) => {
|
|
5089
5067
|
ongeplandeActie.puics.filter(puic => !ids.includes(puic)).forEach(puic => ids.push(puic));
|
|
5090
5068
|
return [...ids];
|
|
5091
|
-
}), on(DeleteOngeplandeActieSelectieId, (ids, { id }) => ids.includes(id) ? ids.filter(_id => _id !== id) : ids));
|
|
5069
|
+
}), on(DeleteOngeplandeActieSelectieId, (ids, { id }) => [].concat(ids.includes(id) ? ids.filter(_id => _id !== id) : ids)));
|
|
5092
5070
|
const gebrokenRitSelectieIdsReducer = createIdsReducer(SetGebrokenRitSelectieIds);
|
|
5093
5071
|
const alternatievenSelectieIdsReducer = createIdsReducer(SetAlternatievenSelectieIds);
|
|
5094
5072
|
const beginSeinSelectieIdsReducer = createIdsReducer(SetBeginSeinSelectieIds);
|
|
@@ -5097,15 +5075,16 @@ const alternatievenClickableIdsReducer = createIdsReducer(SetAlternatievenClicka
|
|
|
5097
5075
|
const eindSeinenClickableIdsReducer = createIdsReducer(SetEindSeinenClickableIds);
|
|
5098
5076
|
const connectorClickableIdsReducer = createIdsReducer(SetConnectorenClickableIds);
|
|
5099
5077
|
const beginSeinRightClickableIdsReducer = createIdsReducer(SetBeginSeinRightClickableIds);
|
|
5100
|
-
const nieuweRouteReducer = createReducer(
|
|
5078
|
+
const nieuweRouteReducer = createReducer(new NieuweRoute(null, null), on(SetNieuwRouteBeginSein, (_, { startSeinOpRitdeel }) => new NieuweRoute(startSeinOpRitdeel, null)), on(SetNieuwRouteEindSein, (nieuweRoute, { combinatieVoorEindsein }) => new NieuweRoute(nieuweRoute.beginSeinOpRitdeel, combinatieVoorEindsein)), on(ResetNieuweRoute, () => new NieuweRoute(null, null)));
|
|
5101
5079
|
const signaleringsbeeldInfoDtosReducer = createReducer([], on(SetSignaleringsbeeldInfoDtos, (_, { dtos }) => dtos), on(UpdateSignaleringsbeeldInfoDtos, (_, { dtos }) => [...dtos]));
|
|
5102
5080
|
const visibleSbInfoDtosReducer = createReducer([], on(SetVisibleSignaleringsbeeldInfoDtos, (_, { dtos }) => dtos), on(UpdateVisibleSignaleringsbeeldInfoDtos, (_, { dtos }) => [...dtos]));
|
|
5103
|
-
const iaVersieReducer = createReducer({
|
|
5081
|
+
const iaVersieReducer = createReducer({}, on(SetIaVersie, (_, { iaVersie }) => Object.assign({}, iaVersie, { versie: iaVersie.versie.toUpperCase() })));
|
|
5104
5082
|
const algemeneRitInfoDtoReducer = createReducer({}, on(SetAlgemeneRitInfo, (_, { algemeneRitInfoDto }) => algemeneRitInfoDto));
|
|
5105
5083
|
const ongeplandeActiesBepaaldReducer = createReducer(false, on(SetOngeplandeActiesBepaald, (_, { bepaald }) => bepaald));
|
|
5106
|
-
const nieuweBewegingReducer = createReducer(
|
|
5107
|
-
const baseUrlReducer = createReducer(
|
|
5108
|
-
const focusIdsReducer = createReducer(
|
|
5084
|
+
const nieuweBewegingReducer = createReducer({}, on(UpdateRit, (_, { bewegingen }) => bewegingen));
|
|
5085
|
+
const baseUrlReducer = createReducer(undefined, on(SetBaseUrl, (_, { baseUrl }) => baseUrl));
|
|
5086
|
+
const focusIdsReducer = createReducer({}, on(focusOpIds, (_, { puics }) => puics));
|
|
5087
|
+
const selectedRitdeelIdReducer = createReducer({}, on(SetSelectedRitdeel, (_, { id }) => id));
|
|
5109
5088
|
const storeReducers = {
|
|
5110
5089
|
ritDelen: ritdelenReducer,
|
|
5111
5090
|
ritSelectieIds: ritSelectieIdsReducer,
|
|
@@ -5134,9 +5113,9 @@ const storeReducers = {
|
|
|
5134
5113
|
nieuweBewegingen: nieuweBewegingReducer,
|
|
5135
5114
|
baseUrl: baseUrlReducer,
|
|
5136
5115
|
focusIds: focusIdsReducer,
|
|
5116
|
+
selectedRitdeelId: selectedRitdeelIdReducer
|
|
5137
5117
|
};
|
|
5138
5118
|
|
|
5139
|
-
// @ts-nocheck
|
|
5140
5119
|
class ZoneUtil {
|
|
5141
5120
|
constructor(ngZone) {
|
|
5142
5121
|
this.ngZone = ngZone;
|
|
@@ -5199,7 +5178,6 @@ class MstViewerModule {
|
|
|
5199
5178
|
constructor(service, zoneUtil) {
|
|
5200
5179
|
this.service = service;
|
|
5201
5180
|
// maak de EditorService toegankelijk voor GWT code
|
|
5202
|
-
// @ts-ignore
|
|
5203
5181
|
window['rpe'] = {
|
|
5204
5182
|
EditorService: zoneUtil.proxy(service)
|
|
5205
5183
|
};
|