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