@loxia/mst-viewer 8.1.3-202512020801 → 8.1.3-202512031128
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/api.mjs +23 -0
- package/esm2022/generated/openapi/api/appConfigController.service.mjs +140 -0
- package/esm2022/generated/openapi/api/appConfigController.serviceInterface.mjs +2 -0
- package/esm2022/generated/openapi/api/bewegingController.service.mjs +155 -0
- package/esm2022/generated/openapi/api/bewegingController.serviceInterface.mjs +2 -0
- package/esm2022/generated/openapi/api/class0BuildProperties.service.mjs +140 -0
- package/esm2022/generated/openapi/api/class0BuildProperties.serviceInterface.mjs +2 -0
- package/esm2022/generated/openapi/api/connectorController.service.mjs +146 -0
- package/esm2022/generated/openapi/api/connectorController.serviceInterface.mjs +2 -0
- package/esm2022/generated/openapi/api/logController.service.mjs +150 -0
- package/esm2022/generated/openapi/api/logController.serviceInterface.mjs +2 -0
- package/esm2022/generated/openapi/api/p21Controller.service.mjs +236 -0
- package/esm2022/generated/openapi/api/p21Controller.serviceInterface.mjs +2 -0
- package/esm2022/generated/openapi/api/sbController.service.mjs +202 -0
- package/esm2022/generated/openapi/api/sbController.serviceInterface.mjs +2 -0
- package/esm2022/generated/openapi/api.module.mjs +40 -0
- package/esm2022/generated/openapi/configuration.mjs +99 -0
- package/esm2022/generated/openapi/encoder.mjs +19 -0
- package/esm2022/generated/openapi/index.mjs +7 -0
- package/esm2022/generated/openapi/model/actieDto.mjs +13 -0
- package/esm2022/generated/openapi/model/algemeneRitDto.mjs +13 -0
- package/esm2022/generated/openapi/model/bewegingDto.mjs +2 -0
- package/esm2022/generated/openapi/model/frontendKeycloakConfig.mjs +13 -0
- package/esm2022/generated/openapi/model/frontendProperties.mjs +2 -0
- package/esm2022/generated/openapi/model/logDto.mjs +2 -0
- package/esm2022/generated/openapi/model/models.mjs +10 -0
- package/esm2022/generated/openapi/model/ritRequestDto.mjs +2 -0
- package/esm2022/generated/openapi/model/signaleringsbeeldDto.mjs +13 -0
- package/esm2022/generated/openapi/model/signaleringsbeeldRequestDto.mjs +13 -0
- package/esm2022/generated/openapi/param.mjs +2 -0
- package/esm2022/generated/openapi/variables.mjs +9 -0
- package/esm2022/generated.version.mjs +2 -0
- package/esm2022/lib/atomic-components/message/index.mjs +4 -0
- package/esm2022/lib/atomic-components/message/message.component.mjs +34 -0
- package/esm2022/lib/atomic-components/message/message.mjs +8 -0
- package/esm2022/lib/atomic-components/message/severity.enum.mjs +9 -0
- package/esm2022/lib/atomic-components/messages/messages.component.mjs +20 -0
- package/esm2022/lib/atomic-components/overlay/overlay.component.mjs +11 -0
- package/esm2022/lib/atomic-components/progress-indicator/progress-indicator.component.mjs +11 -0
- package/esm2022/lib/atomic-components/progress-indicator/progress-indicator.entity.mjs +8 -0
- package/esm2022/lib/atomic-components/services/messages.service.mjs +27 -0
- package/esm2022/lib/components/carousel-controls/carousel-controls.component.mjs +40 -0
- package/esm2022/lib/components/mstviewer/mstviewer.component.mjs +110 -0
- package/esm2022/lib/components/ritdelen-lijst/ritdelen-lijst.component.mjs +267 -0
- package/esm2022/lib/components/ritdelen-view/ritdelen-view.component.mjs +103 -0
- package/esm2022/lib/components/rpe/rpe.component.mjs +33 -0
- package/esm2022/lib/components/svg-visualisatie/svg-visualisatie.component.mjs +273 -0
- package/esm2022/lib/components/viewer-controls/viewer-controls.component.mjs +52 -0
- package/esm2022/lib/model/alternatief-rit-deel.mjs +7 -0
- package/esm2022/lib/model/km-range.mjs +39 -0
- package/esm2022/lib/model/melding-event.mjs +7 -0
- package/esm2022/lib/model/nieuwe-route.mjs +10 -0
- package/esm2022/lib/model/ongeplande-actie.mjs +7 -0
- package/esm2022/lib/model/rijwegplan-rijweg-dwang-combinatie.mjs +24 -0
- package/esm2022/lib/model/ritdeel.mjs +205 -0
- package/esm2022/lib/model/sein-op-ritdeel.mjs +7 -0
- package/esm2022/lib/model/wissel-kant-code.mjs +7 -0
- package/esm2022/lib/mst-viewer.module.mjs +143 -0
- package/esm2022/lib/optimo.mjs +9 -0
- package/esm2022/lib/resources/mstlogging.resource.mjs +25 -0
- package/esm2022/lib/resources/signaleringsbeeldinfo.resource.mjs +62 -0
- package/esm2022/lib/services/base-rest.service.mjs +26 -0
- package/esm2022/lib/services/beweging-utils.service.mjs +139 -0
- package/esm2022/lib/services/beweging-verrijker.service.mjs +30 -0
- package/esm2022/lib/services/connector.service.mjs +30 -0
- package/esm2022/lib/services/debug.service.mjs +59 -0
- package/esm2022/lib/services/editor.service.mjs +48 -0
- package/esm2022/lib/services/print-beweging.service.mjs +66 -0
- package/esm2022/lib/services/rit-lezer.service.mjs +104 -0
- package/esm2022/lib/services/signalerings-beeld-manager.service.mjs +92 -0
- package/esm2022/lib/services/viewer-control.service.mjs +104 -0
- package/esm2022/lib/state/actions/actions.mjs +130 -0
- package/esm2022/lib/state/actions/ritdelen.actions.mjs +45 -0
- package/esm2022/lib/state/effect/bepaal-ongeplande-acties.effect.mjs +78 -0
- package/esm2022/lib/state/effect/bepaal-sb-infos.effect.mjs +67 -0
- package/esm2022/lib/state/effect/beweging-invoegen.effect.mjs +73 -0
- package/esm2022/lib/state/effect/delete-ongeplande-actie.effect.mjs +39 -0
- package/esm2022/lib/state/effect/focus-effect.mjs +36 -0
- package/esm2022/lib/state/effect/laad-route-files.effect.mjs +64 -0
- package/esm2022/lib/state/effect/laad-signaleringsbeelden.effect.mjs +363 -0
- package/esm2022/lib/state/effect/rit-goedkeuren.effect.mjs +23 -0
- package/esm2022/lib/state/effect/ritdelen.effect.mjs +112 -0
- package/esm2022/lib/state/effect/svg-view.effect.mjs +48 -0
- package/esm2022/lib/state/mst-editor-state.mjs +89 -0
- package/esm2022/lib/state/reducer/rit-delen.reducer.mjs +62 -0
- package/esm2022/lib/util/actie-helper.mjs +437 -0
- package/esm2022/lib/util/actie-popover-bepaler.mjs +90 -0
- package/esm2022/lib/util/date.service.mjs +17 -0
- package/esm2022/lib/util/logging-helper.mjs +58 -0
- package/esm2022/lib/util/melding-builder.mjs +13 -0
- package/esm2022/lib/util/message-builder.mjs +32 -0
- package/esm2022/lib/util/multi-map.mjs +76 -0
- package/esm2022/lib/util/utils.mjs +35 -0
- package/esm2022/lib/util/zone-util.mjs +32 -0
- package/esm2022/loxia-mst-viewer.mjs +5 -0
- package/esm2022/public-api.mjs +9 -0
- package/esm2022/src/generated/openapi/api/api.mjs +23 -0
- package/esm2022/src/generated/openapi/api/appConfigController.service.mjs +140 -0
- package/esm2022/src/generated/openapi/api/appConfigController.serviceInterface.mjs +2 -0
- package/esm2022/src/generated/openapi/api/bewegingController.service.mjs +155 -0
- package/esm2022/src/generated/openapi/api/bewegingController.serviceInterface.mjs +2 -0
- package/esm2022/src/generated/openapi/api/class0BuildProperties.service.mjs +140 -0
- package/esm2022/src/generated/openapi/api/class0BuildProperties.serviceInterface.mjs +2 -0
- package/esm2022/src/generated/openapi/api/connectorController.service.mjs +146 -0
- package/esm2022/src/generated/openapi/api/connectorController.serviceInterface.mjs +2 -0
- package/esm2022/src/generated/openapi/api/logController.service.mjs +150 -0
- package/esm2022/src/generated/openapi/api/logController.serviceInterface.mjs +2 -0
- package/esm2022/src/generated/openapi/api/p21Controller.service.mjs +236 -0
- package/esm2022/src/generated/openapi/api/p21Controller.serviceInterface.mjs +2 -0
- package/esm2022/src/generated/openapi/api/sbController.service.mjs +202 -0
- package/esm2022/src/generated/openapi/api/sbController.serviceInterface.mjs +2 -0
- package/esm2022/src/generated/openapi/api.module.mjs +40 -0
- package/esm2022/src/generated/openapi/configuration.mjs +99 -0
- package/esm2022/src/generated/openapi/encoder.mjs +19 -0
- package/esm2022/src/generated/openapi/index.mjs +7 -0
- package/esm2022/src/generated/openapi/loxia-mst-viewer-src-generated-openapi.mjs +5 -0
- package/esm2022/src/generated/openapi/model/actieDto.mjs +13 -0
- package/esm2022/src/generated/openapi/model/algemeneRitDto.mjs +13 -0
- package/esm2022/src/generated/openapi/model/bewegingDto.mjs +2 -0
- package/esm2022/src/generated/openapi/model/frontendKeycloakConfig.mjs +13 -0
- package/esm2022/src/generated/openapi/model/frontendProperties.mjs +2 -0
- package/esm2022/src/generated/openapi/model/logDto.mjs +2 -0
- package/esm2022/src/generated/openapi/model/models.mjs +10 -0
- package/esm2022/src/generated/openapi/model/ritRequestDto.mjs +2 -0
- package/esm2022/src/generated/openapi/model/signaleringsbeeldDto.mjs +13 -0
- package/esm2022/src/generated/openapi/model/signaleringsbeeldRequestDto.mjs +13 -0
- package/esm2022/src/generated/openapi/param.mjs +2 -0
- package/esm2022/src/generated/openapi/variables.mjs +9 -0
- package/fesm2022/loxia-mst-viewer-src-generated-openapi.mjs +25 -25
- package/fesm2022/loxia-mst-viewer-src-generated-openapi.mjs.map +1 -1
- package/fesm2022/loxia-mst-viewer.mjs +154 -154
- package/fesm2022/loxia-mst-viewer.mjs.map +1 -1
- package/lib/atomic-components/overlay/overlay.component.d.ts +1 -1
- package/package.json +10 -6
- package/tailwind.scss +1 -1
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { JsJavaUtil } from '@loxia/rijwegen';
|
|
3
|
+
import { createEffect, ofType } from '@ngrx/effects';
|
|
4
|
+
import { map, withLatestFrom } from 'rxjs/operators';
|
|
5
|
+
import { RijwegplanRijwegDwangCombinatie } from '../../model/rijwegplan-rijweg-dwang-combinatie';
|
|
6
|
+
import { Ritdeel } from '../../model/ritdeel';
|
|
7
|
+
import * as RitdelenActions from '../actions/ritdelen.actions';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@ngrx/effects";
|
|
10
|
+
import * as i2 from "@ngrx/store";
|
|
11
|
+
import * as i3 from "../../services/signalerings-beeld-manager.service";
|
|
12
|
+
import * as i4 from "../../services/editor.service";
|
|
13
|
+
export class RitdelenEffect {
|
|
14
|
+
constructor(actions$, store, sbmService, rijwegPlanEditorService) {
|
|
15
|
+
this.actions$ = actions$;
|
|
16
|
+
this.store = store;
|
|
17
|
+
this.sbmService = sbmService;
|
|
18
|
+
this.rijwegPlanEditorService = rijwegPlanEditorService;
|
|
19
|
+
this.updateRitDelen$ = createEffect(() => this.actions$.pipe(ofType(RitdelenActions.updateRitDelen), withLatestFrom(this.store), map(([actie, _storeState]) => {
|
|
20
|
+
const nieuweRitDelen = actie.ritDelen.map(ritDeel => ritDeel.isZichtbaar() ?
|
|
21
|
+
ritDeel.copyMetAlternatieveRoutes(this.sbmService.bepaalAlternativeRoutes(ritDeel.getRijweg())) : ritDeel);
|
|
22
|
+
return RitdelenActions.setRitdelenAfterUpdate(nieuweRitDelen);
|
|
23
|
+
})));
|
|
24
|
+
this.setAlternatieveRitDelen$ = createEffect(() => this.actions$.pipe(ofType(RitdelenActions.setAlternatieveRitDelen), withLatestFrom(this.store), map(([actie, storeState]) => {
|
|
25
|
+
const alternatieveRitDeel = actie.alternatieveRitDeel;
|
|
26
|
+
const ritDelen = storeState.ritDelen;
|
|
27
|
+
const orgRitdeel = alternatieveRitDeel.ritDeel;
|
|
28
|
+
let newRitDeel = orgRitdeel.copyMetDwang(alternatieveRitDeel.alternatieveRoute.getDwang());
|
|
29
|
+
const alterRoutes = this.sbmService.bepaalAlternativeRoutes(alternatieveRitDeel.ritDeel.getRijweg());
|
|
30
|
+
newRitDeel = newRitDeel.copyMetAlternatieveRoutesZonderActies(alterRoutes);
|
|
31
|
+
newRitDeel.bepaalTopologieElementen(this.sbmService);
|
|
32
|
+
this.vervangRitdeel(ritDelen, orgRitdeel, newRitDeel);
|
|
33
|
+
return RitdelenActions.setRitdelenAfterUpdate(ritDelen);
|
|
34
|
+
})));
|
|
35
|
+
this.ritdeelInvoegen$ = createEffect(() => this.actions$.pipe(ofType(RitdelenActions.ritdeelInvoegen), withLatestFrom(this.store), map(([actie, storeState]) => {
|
|
36
|
+
const ritDelen = this.ritdeelInvoegenFunc(storeState.ritDelen, actie.nieuweRoute, this.rijwegPlanEditorService, this.sbmService);
|
|
37
|
+
return RitdelenActions.setRitdelenAfterUpdate(ritDelen);
|
|
38
|
+
})));
|
|
39
|
+
}
|
|
40
|
+
ritdeelInvoegenFunc(ritDelen, nieuweRoute, rijwegPlanEditorService, sbmService) {
|
|
41
|
+
const origineelRitdeel = nieuweRoute.beginSeinOpRitdeel.ritdeel;
|
|
42
|
+
const beginSein = nieuweRoute.beginSeinOpRitdeel.sein;
|
|
43
|
+
const rijwegplan = rijwegPlanEditorService.getRijwegplan(beginSein.getPPLG());
|
|
44
|
+
const dwangen = JsJavaUtil.listToArray(rijwegplan.getOnderliggendeDwangenTotEnVanSein(origineelRitdeel.getDwang(), beginSein));
|
|
45
|
+
const isSamengesteldeRoute = dwangen[0] && dwangen[1];
|
|
46
|
+
let newRitdeel1 = origineelRitdeel;
|
|
47
|
+
if (isSamengesteldeRoute) {
|
|
48
|
+
newRitdeel1 = this.verwerkSamengesteldeRoute(origineelRitdeel, rijwegplan, dwangen, sbmService, ritDelen);
|
|
49
|
+
}
|
|
50
|
+
if (nieuweRoute.combinatieVoorEindsein.isVrijeBaanRijweg()) {
|
|
51
|
+
this.extendRitdeelMetVrijebaanInfo(newRitdeel1, nieuweRoute, sbmService);
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
this.maakNieuwRitdeel(newRitdeel1, nieuweRoute, sbmService, ritDelen);
|
|
55
|
+
}
|
|
56
|
+
if (isSamengesteldeRoute) {
|
|
57
|
+
ritDelen.splice(ritDelen.indexOf(origineelRitdeel), 1);
|
|
58
|
+
}
|
|
59
|
+
return [...ritDelen];
|
|
60
|
+
}
|
|
61
|
+
vervangRitdeel(ritdelen, orgRitdeel, newRitdeel) {
|
|
62
|
+
for (let i = 0; i < ritdelen.length; i++) {
|
|
63
|
+
if (ritdelen[i] === orgRitdeel) {
|
|
64
|
+
ritdelen[i] = newRitdeel;
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
verwerkSamengesteldeRoute(origineelRitdeel, rijwegplan, dwangen, sbmService, ritDelen) {
|
|
70
|
+
// dwangen in 2 nieuwe ritdelen verwerken voor de knip
|
|
71
|
+
const nieuweRijweg1 = rijwegplan.getRijwegVoorSeinen(dwangen[0].getRoute().getBeginSein(), dwangen[0].getRoute().getEindSein());
|
|
72
|
+
const dwangInfo1 = new RijwegplanRijwegDwangCombinatie(rijwegplan, nieuweRijweg1, dwangen[0]);
|
|
73
|
+
const newRitdeel1 = new Ritdeel(dwangInfo1, [], null, null, null, []);
|
|
74
|
+
// remove vrijbaan info uit ritdeel
|
|
75
|
+
newRitdeel1.vrijebaanRijwegplanRijwegDwangCombi = null;
|
|
76
|
+
newRitdeel1.vervolgSpoor = null;
|
|
77
|
+
newRitdeel1.bepaalTopologieElementen(sbmService);
|
|
78
|
+
this.insertRitdeel(ritDelen, origineelRitdeel, newRitdeel1);
|
|
79
|
+
const nieuweRijweg2 = rijwegplan.getRijwegVoorSeinen(dwangen[1].getRoute().getBeginSein(), dwangen[1].getRoute().getEindSein());
|
|
80
|
+
const dwangInfo2 = new RijwegplanRijwegDwangCombinatie(rijwegplan, nieuweRijweg2, dwangen[1]);
|
|
81
|
+
const newRitdeel2 = new Ritdeel(dwangInfo2, [], null, null, null, []);
|
|
82
|
+
newRitdeel2.bepaalTopologieElementen(sbmService);
|
|
83
|
+
this.insertRitdeel(ritDelen, newRitdeel1, newRitdeel2);
|
|
84
|
+
return newRitdeel1;
|
|
85
|
+
}
|
|
86
|
+
extendRitdeelMetVrijebaanInfo(newRitdeel1, nieuweRoute, sbmService) {
|
|
87
|
+
newRitdeel1.vrijebaanRijwegplanRijwegDwangCombi = nieuweRoute.combinatieVoorEindsein;
|
|
88
|
+
const vbrwp = nieuweRoute.combinatieVoorEindsein.rijwegplan;
|
|
89
|
+
newRitdeel1.vervolgSpoor = vbrwp.getVervolgSpoor(nieuweRoute.combinatieVoorEindsein.rijweg);
|
|
90
|
+
newRitdeel1.bepaalTopologieElementen(sbmService);
|
|
91
|
+
}
|
|
92
|
+
maakNieuwRitdeel(newRitdeel1, nieuweRoute, sbmService, ritDelen) {
|
|
93
|
+
let newRitdeel = this.createRitdeel(nieuweRoute);
|
|
94
|
+
const altRoutes = sbmService.bepaalAlternativeRoutes(newRitdeel.getRijweg());
|
|
95
|
+
newRitdeel = newRitdeel.copyMetAlternatieveRoutes(altRoutes);
|
|
96
|
+
newRitdeel.bepaalTopologieElementen(sbmService);
|
|
97
|
+
this.insertRitdeel(ritDelen, newRitdeel1, newRitdeel);
|
|
98
|
+
}
|
|
99
|
+
createRitdeel(nieuweRoute) {
|
|
100
|
+
return new Ritdeel(nieuweRoute.combinatieVoorEindsein, [], null, null, null, []);
|
|
101
|
+
}
|
|
102
|
+
insertRitdeel(ritdelen, naRitdeelPositie, newRitdeel) {
|
|
103
|
+
const idx = ritdelen.indexOf(naRitdeelPositie);
|
|
104
|
+
ritdelen.splice(idx + 1, 0, newRitdeel);
|
|
105
|
+
}
|
|
106
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RitdelenEffect, deps: [{ token: i1.Actions }, { token: i2.Store }, { token: i3.SignaleringsBeeldManagerService }, { token: i4.EditorService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
107
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RitdelenEffect }); }
|
|
108
|
+
}
|
|
109
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RitdelenEffect, decorators: [{
|
|
110
|
+
type: Injectable
|
|
111
|
+
}], ctorParameters: () => [{ type: i1.Actions }, { type: i2.Store }, { type: i3.SignaleringsBeeldManagerService }, { type: i4.EditorService }] });
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicml0ZGVsZW4uZWZmZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXN0LXZpZXdlci9zcmMvbGliL3N0YXRlL2VmZmVjdC9yaXRkZWxlbi5lZmZlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQVUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFXLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUQsT0FBTyxFQUFFLEdBQUcsRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNqRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHOUMsT0FBTyxLQUFLLGVBQWUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7O0FBSy9ELE1BQU0sT0FBTyxjQUFjO0lBRXZCLFlBQW9CLFFBQWlCLEVBQ2pCLEtBQTRCLEVBQzVCLFVBQTJDLEVBQzNDLHVCQUFzQztRQUh0QyxhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ2pCLFVBQUssR0FBTCxLQUFLLENBQXVCO1FBQzVCLGVBQVUsR0FBVixVQUFVLENBQWlDO1FBQzNDLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBZTtRQUcxRCxvQkFBZSxHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDbkQsTUFBTSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsRUFDdEMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFDMUIsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLEVBQUUsRUFBRTtZQUN6QixNQUFNLGNBQWMsR0FBRyxLQUFLLENB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RUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVPLGFBQWEsQ0FBQyxRQUFtQixFQUFFLGdCQUF5QixFQUFFLFVBQW1CO1FBQ3JGLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUMvQyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7OEdBaklRLGNBQWM7a0hBQWQsY0FBYzs7MkZBQWQsY0FBYztrQkFEMUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRvbWVpbiwgSnNKYXZhVXRpbCB9IGZyb20gJ0Bsb3hpYS9yaWp3ZWdlbic7XG5pbXBvcnQgeyBBY3Rpb25zLCBjcmVhdGVFZmZlY3QsIG9mVHlwZSB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBtYXAsIHdpdGhMYXRlc3RGcm9tIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUmlqd2VncGxhblJpandlZ0R3YW5nQ29tYmluYXRpZSB9IGZyb20gJy4uLy4uL21vZGVsL3JpandlZ3BsYW4tcmlqd2VnLWR3YW5nLWNvbWJpbmF0aWUnO1xuaW1wb3J0IHsgUml0ZGVlbCB9IGZyb20gJy4uLy4uL21vZGVsL3JpdGRlZWwnO1xuaW1wb3J0IHsgRWRpdG9yU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2VkaXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IFNpZ25hbGVyaW5nc0JlZWxkTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zaWduYWxlcmluZ3MtYmVlbGQtbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCAqIGFzIFJpdGRlbGVuQWN0aW9ucyBmcm9tICcuLi9hY3Rpb25zL3JpdGRlbGVuLmFjdGlvbnMnO1xuaW1wb3J0IHsgTXN0RWRpdG9yU3RhdGUgfSBmcm9tICcuLi9tc3QtZWRpdG9yLXN0YXRlJztcbmltcG9ydCBWcmlqZWJhYW5SaWp3ZWdwbGFuID0gZG9tZWluLlZyaWplYmFhblJpandlZ3BsYW47XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBSaXRkZWxlbkVmZmVjdCB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFjdGlvbnMkOiBBY3Rpb25zLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlPE1zdEVkaXRvclN0YXRlPixcbiAgICAgICAgICAgICAgICBwcml2YXRlIHNibVNlcnZpY2U6IFNpZ25hbGVyaW5nc0JlZWxkTWFuYWdlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSByaWp3ZWdQbGFuRWRpdG9yU2VydmljZTogRWRpdG9yU2VydmljZSkge1xuICAgIH1cblxuICAgIHVwZGF0ZVJpdERlbGVuJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICAgIG9mVHlwZShSaXRkZWxlbkFjdGlvbnMudXBkYXRlUml0RGVsZW4pLFxuICAgICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlKSxcbiAgICAgICAgbWFwKChbYWN0aWUsIF9zdG9yZVN0YXRlXSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmlldXdlUml0RGVsZW4gPSBhY3RpZS5yaXREZWxlbi5tYXAocml0RGVlbCA9PiByaXREZWVsLmlzWmljaHRiYWFyKCkgP1xuICAgICAgICAgICAgICAgIHJpdERlZWwuY29weU1ldEFsdGVybmF0aWV2ZVJvdXRlcyh0aGlzLnNibVNlcnZpY2UuYmVwYWFsQWx0ZXJuYXRpdmVSb3V0ZXMocml0RGVlbC5nZXRSaWp3ZWcoKSkpIDogcml0RGVlbCk7XG4gICAgICAgICAgICByZXR1cm4gUml0ZGVsZW5BY3Rpb25zLnNldFJpdGRlbGVuQWZ0ZXJVcGRhdGUobmlldXdlUml0RGVsZW4pO1xuICAgICAgICB9KSlcbiAgICApO1xuXG4gICAgc2V0QWx0ZXJuYXRpZXZlUml0RGVsZW4kID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgICAgb2ZUeXBlKFJpdGRlbGVuQWN0aW9ucy5zZXRBbHRlcm5hdGlldmVSaXREZWxlbiksXG4gICAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuc3RvcmUpLFxuICAgICAgICBtYXAoKFthY3RpZSwgc3RvcmVTdGF0ZV0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFsdGVybmF0aWV2ZVJpdERlZWwgPSBhY3RpZS5hbHRlcm5hdGlldmVSaXREZWVsO1xuICAgICAgICAgICAgY29uc3Qgcml0RGVsZW4gPSBzdG9yZVN0YXRlLnJpdERlbGVuO1xuICAgICAgICAgICAgY29uc3Qgb3JnUml0ZGVlbCA9IGFsdGVybmF0aWV2ZVJpdERlZWwucml0RGVlbDtcbiAgICAgICAgICAgIGxldCBuZXdSaXREZWVsID0gb3JnUml0ZGVlbC5jb3B5TWV0RHdhbmcoYWx0ZXJuYXRpZXZlUml0RGVlbC5hbHRlcm5hdGlldmVSb3V0ZS5nZXREd2FuZygpKTtcbiAgICAgICAgICAgIGNvbnN0IGFsdGVyUm91dGVzID0gdGhpcy5zYm1TZXJ2aWNlLmJlcGFhbEFsdGVybmF0aXZlUm91dGVzKGFsdGVybmF0aWV2ZVJpdERlZWwucml0RGVlbC5nZXRSaWp3ZWcoKSk7XG4gICAgICAgICAgICBuZXdSaXREZWVsID0gbmV3Uml0RGVlbC5jb3B5TWV0QWx0ZXJuYXRpZXZlUm91dGVzWm9uZGVyQWN0aWVzKGFsdGVyUm91dGVzKTtcbiAgICAgICAgICAgIG5ld1JpdERlZWwuYmVwYWFsVG9wb2xvZ2llRWxlbWVudGVuKHRoaXMuc2JtU2VydmljZSk7XG4gICAgICAgICAgICB0aGlzLnZlcnZhbmdSaXRkZWVsKHJpdERlbGVuLCBvcmdSaXRkZWVsLCBuZXdSaXREZWVsKTtcblxuICAgICAgICAgICAgcmV0dXJuIFJpdGRlbGVuQWN0aW9ucy5zZXRSaXRkZWxlbkFmdGVyVXBkYXRlKHJpdERlbGVuKTtcbiAgICAgICAgfSkpXG4gICAgKTtcblxuICAgIHJpdGRlZWxJbnZvZWdlbiQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgICBvZlR5cGUoUml0ZGVsZW5BY3Rpb25zLnJpdGRlZWxJbnZvZWdlbiksXG4gICAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuc3RvcmUpLFxuICAgICAgICBtYXAoKFthY3RpZSwgc3RvcmVTdGF0ZV0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJpdERlbGVuID0gdGhpcy5yaXRkZWVsSW52b2VnZW5GdW5jKHN0b3JlU3RhdGUucml0RGVsZW4sIGFjdGllLm5pZXV3ZVJvdXRlLCB0aGlzLnJpandlZ1BsYW5FZGl0b3JTZXJ2aWNlLCB0aGlzLnNibVNlcnZpY2UpO1xuICAgICAgICAgICAgcmV0dXJuIFJpdGRlbGVuQWN0aW9ucy5zZXRSaXRkZWxlbkFmdGVyVXBkYXRlKHJpdERlbGVuKTtcbiAgICAgICAgfSkpXG4gICAgKTtcblxuICAgIHByaXZhdGUgcml0ZGVlbEludm9lZ2VuRnVuYyhyaXREZWxlbjogUml0ZGVlbFtdLCAgbmlldXdlUm91dGUsIHJpandlZ1BsYW5FZGl0b3JTZXJ2aWNlLCBzYm1TZXJ2aWNlKTogUml0ZGVlbFtdIHtcbiAgICAgICAgY29uc3Qgb3JpZ2luZWVsUml0ZGVlbCA9IG5pZXV3ZVJvdXRlLmJlZ2luU2Vpbk9wUml0ZGVlbC5yaXRkZWVsO1xuICAgICAgICBjb25zdCBiZWdpblNlaW4gPSBuaWV1d2VSb3V0ZS5iZWdpblNlaW5PcFJpdGRlZWwuc2VpbjtcbiAgICAgICAgY29uc3Qgcmlqd2VncGxhbiA9IHJpandlZ1BsYW5FZGl0b3JTZXJ2aWNlLmdldFJpandlZ3BsYW4oYmVnaW5TZWluLmdldFBQTEcoKSk7XG4gICAgICAgIGNvbnN0IGR3YW5nZW46IGRvbWVpbi5Ed2FuZ1tdID0gSnNKYXZhVXRpbC5saXN0VG9BcnJheShyaWp3ZWdwbGFuLmdldE9uZGVybGlnZ2VuZGVEd2FuZ2VuVG90RW5WYW5TZWluKG9yaWdpbmVlbFJpdGRlZWwuZ2V0RHdhbmcoKSwgYmVnaW5TZWluKSk7XG4gICAgICAgIGNvbnN0IGlzU2FtZW5nZXN0ZWxkZVJvdXRlID0gZHdhbmdlblswXSAmJiBkd2FuZ2VuWzFdO1xuXG4gICAgICAgIGxldCBuZXdSaXRkZWVsMSA9IG9yaWdpbmVlbFJpdGRlZWw7XG5cbiAgICAgICAgaWYgKGlzU2FtZW5nZXN0ZWxkZVJvdXRlKSB7XG4gICAgICAgICAgICBuZXdSaXRkZWVsMSA9IHRoaXMudmVyd2Vya1NhbWVuZ2VzdGVsZGVSb3V0ZShvcmlnaW5lZWxSaXRkZWVsLCByaWp3ZWdwbGFuLCBkd2FuZ2VuLCBzYm1TZXJ2aWNlLCByaXREZWxlbik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobmlldXdlUm91dGUuY29tYmluYXRpZVZvb3JFaW5kc2Vpbi5pc1ZyaWplQmFhblJpandlZygpKSB7XG4gICAgICAgICAgICB0aGlzLmV4dGVuZFJpdGRlZWxNZXRWcmlqZWJhYW5JbmZvKG5ld1JpdGRlZWwxLCBuaWV1d2VSb3V0ZSwgc2JtU2VydmljZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm1hYWtOaWV1d1JpdGRlZWwobmV3Uml0ZGVlbDEsIG5pZXV3ZVJvdXRlLCBzYm1TZXJ2aWNlLCByaXREZWxlbik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNTYW1lbmdlc3RlbGRlUm91dGUpIHtcbiAgICAgICAgICAgIHJpdERlbGVuLnNwbGljZShyaXREZWxlbi5pbmRleE9mKG9yaWdpbmVlbFJpdGRlZWwpLCAxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBbLi4ucml0RGVsZW5dO1xuICAgIH1cblxuXG4gICAgcHJpdmF0ZSB2ZXJ2YW5nUml0ZGVlbChyaXRkZWxlbjogUml0ZGVlbFtdLCBvcmdSaXRkZWVsOiBSaXRkZWVsLCBuZXdSaXRkZWVsOiBSaXRkZWVsKTogdm9pZCB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcml0ZGVsZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChyaXRkZWxlbltpXSA9PT0gb3JnUml0ZGVlbCkge1xuICAgICAgICAgICAgICAgIHJpdGRlbGVuW2ldID0gbmV3Uml0ZGVlbDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdmVyd2Vya1NhbWVuZ2VzdGVsZGVSb3V0ZShvcmlnaW5lZWxSaXRkZWVsLCByaWp3ZWdwbGFuLCBkd2FuZ2VuLCBzYm1TZXJ2aWNlLCByaXREZWxlbik6IFJpdGRlZWwge1xuICAgICAgICAvLyBkd2FuZ2VuIGluIDIgbmlldXdlIHJpdGRlbGVuIHZlcndlcmtlbiB2b29yIGRlIGtuaXBcbiAgICAgICAgY29uc3QgbmlldXdlUmlqd2VnMSA9XG4gICAgICAgICAgICByaWp3ZWdwbGFuLmdldFJpandlZ1Zvb3JTZWluZW4oZHdhbmdlblswXS5nZXRSb3V0ZSgpLmdldEJlZ2luU2VpbigpLCBkd2FuZ2VuWzBdLmdldFJvdXRlKCkuZ2V0RWluZFNlaW4oKSk7XG4gICAgICAgIGNvbnN0IGR3YW5nSW5mbzEgPSBuZXcgUmlqd2VncGxhblJpandlZ0R3YW5nQ29tYmluYXRpZShyaWp3ZWdwbGFuLCBuaWV1d2VSaWp3ZWcxLCBkd2FuZ2VuWzBdKTtcbiAgICAgICAgY29uc3QgbmV3Uml0ZGVlbDEgPSBuZXcgUml0ZGVlbChkd2FuZ0luZm8xLCBbXSwgbnVsbCwgbnVsbCwgbnVsbCwgW10pO1xuXG4gICAgICAgIC8vIHJlbW92ZSB2cmlqYmFhbiBpbmZvIHVpdCByaXRkZWVsXG4gICAgICAgIG5ld1JpdGRlZWwxLnZyaWplYmFhblJpandlZ3BsYW5SaWp3ZWdEd2FuZ0NvbWJpID0gbnVsbDtcbiAgICAgICAgbmV3Uml0ZGVlbDEudmVydm9sZ1Nwb29yID0gbnVsbDtcblxuICAgICAgICBuZXdSaXRkZWVsMS5iZXBhYWxUb3BvbG9naWVFbGVtZW50ZW4oc2JtU2VydmljZSk7XG4gICAgICAgIHRoaXMuaW5zZXJ0Uml0ZGVlbChyaXREZWxlbiwgb3JpZ2luZWVsUml0ZGVlbCwgbmV3Uml0ZGVlbDEpO1xuXG4gICAgICAgIGNvbnN0IG5pZXV3ZVJpandlZzIgPVxuICAgICAgICAgICAgcmlqd2VncGxhbi5nZXRSaWp3ZWdWb29yU2VpbmVuKGR3YW5nZW5bMV0uZ2V0Um91dGUoKS5nZXRCZWdpblNlaW4oKSwgZHdhbmdlblsxXS5nZXRSb3V0ZSgpLmdldEVpbmRTZWluKCkpO1xuICAgICAgICBjb25zdCBkd2FuZ0luZm8yID0gbmV3IFJpandlZ3BsYW5SaWp3ZWdEd2FuZ0NvbWJpbmF0aWUocmlqd2VncGxhbiwgbmlldXdlUmlqd2VnMiwgZHdhbmdlblsxXSk7XG4gICAgICAgIGNvbnN0IG5ld1JpdGRlZWwyID0gbmV3IFJpdGRlZWwoZHdhbmdJbmZvMiwgW10sIG51bGwsIG51bGwsIG51bGwsIFtdKTtcblxuICAgICAgICBuZXdSaXRkZWVsMi5iZXBhYWxUb3BvbG9naWVFbGVtZW50ZW4oc2JtU2VydmljZSk7XG4gICAgICAgIHRoaXMuaW5zZXJ0Uml0ZGVlbChyaXREZWxlbiwgbmV3Uml0ZGVlbDEsIG5ld1JpdGRlZWwyKTtcblxuICAgICAgICByZXR1cm4gbmV3Uml0ZGVlbDE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBleHRlbmRSaXRkZWVsTWV0VnJpamViYWFuSW5mbyhuZXdSaXRkZWVsMSwgbmlldXdlUm91dGUsIHNibVNlcnZpY2UpOiB2b2lkIHtcbiAgICAgICAgbmV3Uml0ZGVlbDEudnJpamViYWFuUmlqd2VncGxhblJpandlZ0R3YW5nQ29tYmkgPSBuaWV1d2VSb3V0ZS5jb21iaW5hdGllVm9vckVpbmRzZWluO1xuXG4gICAgICAgIGNvbnN0IHZicndwID0gPFZyaWplYmFhblJpandlZ3BsYW4+bmlldXdlUm91dGUuY29tYmluYXRpZVZvb3JFaW5kc2Vpbi5yaWp3ZWdwbGFuO1xuICAgICAgICBuZXdSaXRkZWVsMS52ZXJ2b2xnU3Bvb3IgPSB2YnJ3cC5nZXRWZXJ2b2xnU3Bvb3IobmlldXdlUm91dGUuY29tYmluYXRpZVZvb3JFaW5kc2Vpbi5yaWp3ZWcpO1xuXG4gICAgICAgIG5ld1JpdGRlZWwxLmJlcGFhbFRvcG9sb2dpZUVsZW1lbnRlbihzYm1TZXJ2aWNlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1hYWtOaWV1d1JpdGRlZWwobmV3Uml0ZGVlbDEsIG5pZXV3ZVJvdXRlLCBzYm1TZXJ2aWNlLCByaXREZWxlbik6IHZvaWQge1xuICAgICAgICBsZXQgbmV3Uml0ZGVlbCA9IHRoaXMuY3JlYXRlUml0ZGVlbChuaWV1d2VSb3V0ZSk7XG4gICAgICAgIGNvbnN0IGFsdFJvdXRlcyA9IHNibVNlcnZpY2UuYmVwYWFsQWx0ZXJuYXRpdmVSb3V0ZXMobmV3Uml0ZGVlbC5nZXRSaWp3ZWcoKSk7XG4gICAgICAgIG5ld1JpdGRlZWwgPSBuZXdSaXRkZWVsLmNvcHlNZXRBbHRlcm5hdGlldmVSb3V0ZXMoYWx0Um91dGVzKTtcbiAgICAgICAgbmV3Uml0ZGVlbC5iZXBhYWxUb3BvbG9naWVFbGVtZW50ZW4oc2JtU2VydmljZSk7XG4gICAgICAgIHRoaXMuaW5zZXJ0Uml0ZGVlbChyaXREZWxlbiwgbmV3Uml0ZGVlbDEsIG5ld1JpdGRlZWwpO1xuICAgIH1cblxuICAgIGNyZWF0ZVJpdGRlZWwobmlldXdlUm91dGUpOiBSaXRkZWVsIHtcbiAgICAgICAgcmV0dXJuIG5ldyBSaXRkZWVsKG5pZXV3ZVJvdXRlLmNvbWJpbmF0aWVWb29yRWluZHNlaW4sIFtdLCBudWxsLCBudWxsLCBudWxsLCBbXSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbnNlcnRSaXRkZWVsKHJpdGRlbGVuOiBSaXRkZWVsW10sIG5hUml0ZGVlbFBvc2l0aWU6IFJpdGRlZWwsIG5ld1JpdGRlZWw6IFJpdGRlZWwpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaWR4ID0gcml0ZGVsZW4uaW5kZXhPZihuYVJpdGRlZWxQb3NpdGllKTtcbiAgICAgICAgcml0ZGVsZW4uc3BsaWNlKGlkeCArIDEsIDAsIG5ld1JpdGRlZWwpO1xuICAgIH1cblxufVxuIl19
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { createEffect, ofType } from '@ngrx/effects';
|
|
3
|
+
import { map } from 'rxjs/operators';
|
|
4
|
+
import * as MstActions from '../actions/actions';
|
|
5
|
+
import { SetConnectorenClickableIds } from '../actions/actions';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@ngrx/effects";
|
|
8
|
+
import * as i2 from "@ngrx/store";
|
|
9
|
+
import * as i3 from "../../services/signalerings-beeld-manager.service";
|
|
10
|
+
import * as i4 from "@loxia/rijwegen";
|
|
11
|
+
export class SvgViewEffect {
|
|
12
|
+
constructor(actions$, store, signaleringsBeeldManagerService, sbSvgUtilService) {
|
|
13
|
+
this.actions$ = actions$;
|
|
14
|
+
this.store = store;
|
|
15
|
+
this.signaleringsBeeldManagerService = signaleringsBeeldManagerService;
|
|
16
|
+
this.sbSvgUtilService = sbSvgUtilService;
|
|
17
|
+
this.updateSvgView$ = createEffect(() => this.actions$.pipe(ofType(MstActions.SetSvgInfos), map((_actie) => {
|
|
18
|
+
setTimeout(() => {
|
|
19
|
+
this.sbSvgUtilService.addSvgDefs();
|
|
20
|
+
const wisselEnStoringskaderPuicMap = new Map();
|
|
21
|
+
this.signaleringsBeeldManagerService.getAlleSoortenWissels()
|
|
22
|
+
.forEach(wissel => wisselEnStoringskaderPuicMap.set(wissel.getPuic(), wissel.getStoringSymboolPuic()));
|
|
23
|
+
this.sbSvgUtilService.zetClassOpStoringSymbolenMetMap(wisselEnStoringskaderPuicMap);
|
|
24
|
+
this.sbSvgUtilService.zetClassOpSpoornummers(this.signaleringsBeeldManagerService.getPuicsVoorSpoornummers());
|
|
25
|
+
this.sbSvgUtilService.maakOngewensteElementenOnzichtbaar();
|
|
26
|
+
this.sbSvgUtilService.zetClassOpLangeText();
|
|
27
|
+
this.sbSvgUtilService.maakOngewensteSeindelenOnzichtbaar(this.signaleringsBeeldManagerService.getSeinen());
|
|
28
|
+
this.sbSvgUtilService.maakSignaleringsElementenOnzichtbaar(this.signaleringsBeeldManagerService.getSignaleringsElementen());
|
|
29
|
+
const puicsVoorRanden = this.signaleringsBeeldManagerService.getPuicsVoorRanden();
|
|
30
|
+
this.zetClassOpRanden(puicsVoorRanden);
|
|
31
|
+
this.sbSvgUtilService.zetClassOpRijrichtingen(this.signaleringsBeeldManagerService.getSeinen());
|
|
32
|
+
this.store.dispatch(SetConnectorenClickableIds(puicsVoorRanden));
|
|
33
|
+
}, 0);
|
|
34
|
+
})), { dispatch: false });
|
|
35
|
+
}
|
|
36
|
+
zetClassOpRanden(puics) {
|
|
37
|
+
puics.forEach(element => {
|
|
38
|
+
const rand = document.getElementById('p' + element);
|
|
39
|
+
rand?.classList.add('connector');
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SvgViewEffect, deps: [{ token: i1.Actions }, { token: i2.Store }, { token: i3.SignaleringsBeeldManagerService }, { token: i4.SignaleringsbeeldSvgUtilityService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
43
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SvgViewEffect }); }
|
|
44
|
+
}
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SvgViewEffect, decorators: [{
|
|
46
|
+
type: Injectable
|
|
47
|
+
}], ctorParameters: () => [{ type: i1.Actions }, { type: i2.Store }, { type: i3.SignaleringsBeeldManagerService }, { type: i4.SignaleringsbeeldSvgUtilityService }] });
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ZnLXZpZXcuZWZmZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXN0LXZpZXdlci9zcmMvbGliL3N0YXRlL2VmZmVjdC9zdmctdmlldy5lZmZlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQVcsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxLQUFLLFVBQVUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7O0FBSWhFLE1BQU0sT0FBTyxhQUFhO0lBRXRCLFlBQW9CLFFBQWlCLEVBQ2pCLEtBQTRCLEVBQzVCLCtCQUFnRSxFQUNoRSxnQkFBb0Q7UUFIcEQsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQixVQUFLLEdBQUwsS0FBSyxDQUF1QjtRQUM1QixvQ0FBK0IsR0FBL0IsK0JBQStCLENBQWlDO1FBQ2hFLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBb0M7UUFHeEUsbUJBQWMsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2xELE1BQU0sQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEVBQzlCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ1gsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDWixJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBRW5DLE1BQU0sNEJBQTRCLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7Z0JBQy9ELElBQUksQ0FBQywrQkFBK0IsQ0FBQyxxQkFBcUIsRUFBRTtxQkFDdkQsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsNEJBQTRCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQzNHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQywrQkFBK0IsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO2dCQUNwRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLCtCQUErQixDQUFDLHdCQUF3QixFQUFFLENBQUMsQ0FBQztnQkFFOUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGtDQUFrQyxFQUFFLENBQUM7Z0JBQzNELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2dCQUU1QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsa0NBQWtDLENBQUMsSUFBSSxDQUFDLCtCQUErQixDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7Z0JBQzNHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxvQ0FBb0MsQ0FBQyxJQUFJLENBQUMsK0JBQStCLENBQUMsd0JBQXdCLEVBQUUsQ0FBQyxDQUFDO2dCQUU1SCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsK0JBQStCLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztnQkFDbEYsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUN2QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLCtCQUErQixDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7Z0JBQ2hHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLDBCQUEwQixDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7WUFFckUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ1YsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUMsQ0FDekIsQ0FBQztJQTNCRixDQUFDO0lBNkJPLGdCQUFnQixDQUFDLEtBQWU7UUFDcEMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNwQixNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsQ0FBQztZQUNwRCxJQUFJLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBeENRLGFBQWE7a0hBQWIsYUFBYTs7MkZBQWIsYUFBYTtrQkFEekIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNpZ25hbGVyaW5nc2JlZWxkU3ZnVXRpbGl0eVNlcnZpY2UgfSBmcm9tICdAbG94aWEvcmlqd2VnZW4nO1xuaW1wb3J0IHsgQWN0aW9ucywgY3JlYXRlRWZmZWN0LCBvZlR5cGUgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU2lnbmFsZXJpbmdzQmVlbGRNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NpZ25hbGVyaW5ncy1iZWVsZC1tYW5hZ2VyLnNlcnZpY2UnO1xuaW1wb3J0ICogYXMgTXN0QWN0aW9ucyBmcm9tICcuLi9hY3Rpb25zL2FjdGlvbnMnO1xuaW1wb3J0IHsgU2V0Q29ubmVjdG9yZW5DbGlja2FibGVJZHMgfSBmcm9tICcuLi9hY3Rpb25zL2FjdGlvbnMnO1xuaW1wb3J0IHsgTXN0RWRpdG9yU3RhdGUgfSBmcm9tICcuLi9tc3QtZWRpdG9yLXN0YXRlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFN2Z1ZpZXdFZmZlY3Qge1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBhY3Rpb25zJDogQWN0aW9ucyxcbiAgICAgICAgICAgICAgICBwcml2YXRlIHN0b3JlOiBTdG9yZTxNc3RFZGl0b3JTdGF0ZT4sXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBzaWduYWxlcmluZ3NCZWVsZE1hbmFnZXJTZXJ2aWNlOiBTaWduYWxlcmluZ3NCZWVsZE1hbmFnZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgc2JTdmdVdGlsU2VydmljZTogU2lnbmFsZXJpbmdzYmVlbGRTdmdVdGlsaXR5U2VydmljZSkge1xuICAgIH1cblxuICAgIHVwZGF0ZVN2Z1ZpZXckID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgICAgb2ZUeXBlKE1zdEFjdGlvbnMuU2V0U3ZnSW5mb3MpLFxuICAgICAgICBtYXAoKF9hY3RpZSkgPT4ge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zYlN2Z1V0aWxTZXJ2aWNlLmFkZFN2Z0RlZnMoKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHdpc3NlbEVuU3RvcmluZ3NrYWRlclB1aWNNYXAgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2lnbmFsZXJpbmdzQmVlbGRNYW5hZ2VyU2VydmljZS5nZXRBbGxlU29vcnRlbldpc3NlbHMoKVxuICAgICAgICAgICAgICAgICAgICAuZm9yRWFjaCh3aXNzZWwgPT4gd2lzc2VsRW5TdG9yaW5nc2thZGVyUHVpY01hcC5zZXQod2lzc2VsLmdldFB1aWMoKSwgd2lzc2VsLmdldFN0b3JpbmdTeW1ib29sUHVpYygpKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zYlN2Z1V0aWxTZXJ2aWNlLnpldENsYXNzT3BTdG9yaW5nU3ltYm9sZW5NZXRNYXAod2lzc2VsRW5TdG9yaW5nc2thZGVyUHVpY01hcCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zYlN2Z1V0aWxTZXJ2aWNlLnpldENsYXNzT3BTcG9vcm51bW1lcnModGhpcy5zaWduYWxlcmluZ3NCZWVsZE1hbmFnZXJTZXJ2aWNlLmdldFB1aWNzVm9vclNwb29ybnVtbWVycygpKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuc2JTdmdVdGlsU2VydmljZS5tYWFrT25nZXdlbnN0ZUVsZW1lbnRlbk9uemljaHRiYWFyKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zYlN2Z1V0aWxTZXJ2aWNlLnpldENsYXNzT3BMYW5nZVRleHQoKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuc2JTdmdVdGlsU2VydmljZS5tYWFrT25nZXdlbnN0ZVNlaW5kZWxlbk9uemljaHRiYWFyKHRoaXMuc2lnbmFsZXJpbmdzQmVlbGRNYW5hZ2VyU2VydmljZS5nZXRTZWluZW4oKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zYlN2Z1V0aWxTZXJ2aWNlLm1hYWtTaWduYWxlcmluZ3NFbGVtZW50ZW5PbnppY2h0YmFhcih0aGlzLnNpZ25hbGVyaW5nc0JlZWxkTWFuYWdlclNlcnZpY2UuZ2V0U2lnbmFsZXJpbmdzRWxlbWVudGVuKCkpO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgcHVpY3NWb29yUmFuZGVuID0gdGhpcy5zaWduYWxlcmluZ3NCZWVsZE1hbmFnZXJTZXJ2aWNlLmdldFB1aWNzVm9vclJhbmRlbigpO1xuICAgICAgICAgICAgICAgIHRoaXMuemV0Q2xhc3NPcFJhbmRlbihwdWljc1Zvb3JSYW5kZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuc2JTdmdVdGlsU2VydmljZS56ZXRDbGFzc09wUmlqcmljaHRpbmdlbih0aGlzLnNpZ25hbGVyaW5nc0JlZWxkTWFuYWdlclNlcnZpY2UuZ2V0U2VpbmVuKCkpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goU2V0Q29ubmVjdG9yZW5DbGlja2FibGVJZHMocHVpY3NWb29yUmFuZGVuKSk7XG5cbiAgICAgICAgICAgIH0sIDApO1xuICAgICAgICB9KSksIHtkaXNwYXRjaDogZmFsc2V9XG4gICAgKTtcblxuICAgIHByaXZhdGUgemV0Q2xhc3NPcFJhbmRlbihwdWljczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICAgICAgcHVpY3MuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJhbmQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncCcgKyBlbGVtZW50KTtcbiAgICAgICAgICAgIHJhbmQ/LmNsYXNzTGlzdC5hZGQoJ2Nvbm5lY3RvcicpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { createReducer, on } from '@ngrx/store';
|
|
2
|
+
import { NieuweRoute } from '../model/nieuwe-route';
|
|
3
|
+
import { ArrayMultimap } from '../util/multi-map';
|
|
4
|
+
import * as MstActions from './actions/actions';
|
|
5
|
+
import { ritdelenReducer } from './reducer/rit-delen.reducer';
|
|
6
|
+
const onIdsActionHandler = (action) => on(action, (_, { ids }) => ids);
|
|
7
|
+
const createIdsReducer = (action) => createReducer([], onIdsActionHandler(action));
|
|
8
|
+
export const editableReducer = createReducer(true, on(MstActions.setEditable, (_, { editable }) => editable));
|
|
9
|
+
export const progressIndicatorReducer = createReducer(undefined, on(MstActions.ShowProgress, () => ({ progressIndicator: {} })), on(MstActions.ClearProgress, () => undefined));
|
|
10
|
+
export const svgInfoReducer = createReducer([], on(MstActions.SetSvgInfos, (_, { svgInfos }) => svgInfos));
|
|
11
|
+
export const debugReducer = createReducer(false, on(MstActions.SetDebug, (_, { debug }) => debug));
|
|
12
|
+
export const ritSelectieIdsReducer = createIdsReducer(MstActions.SetRitSelectieIds);
|
|
13
|
+
export const actieOpRitReducer = createReducer(new ArrayMultimap(), on(MstActions.SetGeplandeActies, (_, { geplandeActiesMap }) => geplandeActiesMap), on(MstActions.AddGeplandeActie, (geplandeActies, { actie, puics }) => {
|
|
14
|
+
geplandeActies.putAll(actie, puics);
|
|
15
|
+
return new ArrayMultimap(geplandeActies);
|
|
16
|
+
}), on(MstActions.DeleteGeplandeActie, (geplandeActies, { actie }) => {
|
|
17
|
+
geplandeActies.delete(actie);
|
|
18
|
+
return new ArrayMultimap(geplandeActies);
|
|
19
|
+
}));
|
|
20
|
+
export const actieOpRitSelectieIdsReducer = createReducer([], onIdsActionHandler(MstActions.SetActieOpRitSelectieIds), on(MstActions.AddGeplandeActie, (ids, { puics }) => {
|
|
21
|
+
puics.filter(puic => !ids.includes(puic)).forEach(puic => ids.push(puic));
|
|
22
|
+
return [...ids];
|
|
23
|
+
}), on(MstActions.DeleteGeplandeActie, (ids, { puics }) => {
|
|
24
|
+
puics.filter(puic => ids.includes(puic)).forEach(puic => ids = ids.filter(p => p !== puic));
|
|
25
|
+
return [...ids];
|
|
26
|
+
}));
|
|
27
|
+
export const ongeplandeActieReducer = createReducer(new ArrayMultimap(), on(MstActions.SetOngeplandeActies, (_, { ongeplandeActiesMap }) => ongeplandeActiesMap), on(MstActions.AddOngeplandeActie, (ongeplandeActies, { ongeplandeActie }) => {
|
|
28
|
+
ongeplandeActie.puics.filter(puic => !ongeplandeActies.containsEntry(puic, ongeplandeActie))
|
|
29
|
+
.forEach(puic => ongeplandeActies.put(puic, ongeplandeActie));
|
|
30
|
+
return new ArrayMultimap(ongeplandeActies);
|
|
31
|
+
}), on(MstActions.DeleteOngeplandeActie, (ongeplandeActies, { ongeplandeActie }) => {
|
|
32
|
+
ongeplandeActie.puics.forEach(puic => ongeplandeActies.delete(puic, ongeplandeActie));
|
|
33
|
+
return new ArrayMultimap(ongeplandeActies);
|
|
34
|
+
}));
|
|
35
|
+
export const ongeplandeActieSelectieIdsReducer = createReducer([],
|
|
36
|
+
// on(MstActions.SetOngeplandeActieSelectieIds, (_, { ids }) => ids),
|
|
37
|
+
onIdsActionHandler(MstActions.SetOngeplandeActieSelectieIds), on(MstActions.AddOngeplandeActie, (ids, { ongeplandeActie }) => {
|
|
38
|
+
ongeplandeActie.puics.filter(puic => !ids.includes(puic)).forEach(puic => ids.push(puic));
|
|
39
|
+
return [...ids];
|
|
40
|
+
}), on(MstActions.DeleteOngeplandeActieSelectieId, (ids, { id }) => [].concat(ids.includes(id) ? ids.filter(_id => _id !== id) : ids)));
|
|
41
|
+
export const gebrokenRitSelectieIdsReducer = createIdsReducer(MstActions.SetGebrokenRitSelectieIds);
|
|
42
|
+
export const alternatievenSelectieIdsReducer = createIdsReducer(MstActions.SetAlternatievenSelectieIds);
|
|
43
|
+
export const beginSeinSelectieIdsReducer = createIdsReducer(MstActions.SetBeginSeinSelectieIds);
|
|
44
|
+
export const eindSeinSelectieIdsReducer = createIdsReducer(MstActions.SetEindSeinSelectieIds);
|
|
45
|
+
export const alternatievenClickableIdsReducer = createIdsReducer(MstActions.SetAlternatievenClickableIds);
|
|
46
|
+
export const eindSeinenClickableIdsReducer = createIdsReducer(MstActions.SetEindSeinenClickableIds);
|
|
47
|
+
export const connectorClickableIdsReducer = createIdsReducer(MstActions.SetConnectorenClickableIds);
|
|
48
|
+
export const beginSeinRightClickableIdsReducer = createIdsReducer(MstActions.SetBeginSeinRightClickableIds);
|
|
49
|
+
export const nieuweRouteReducer = createReducer(new NieuweRoute(null, null), on(MstActions.SetNieuwRouteBeginSein, (_, { startSeinOpRitdeel }) => new NieuweRoute(startSeinOpRitdeel, null)), on(MstActions.SetNieuwRouteEindSein, (nieuweRoute, { combinatieVoorEindsein }) => new NieuweRoute(nieuweRoute.beginSeinOpRitdeel, combinatieVoorEindsein)), on(MstActions.ResetNieuweRoute, () => new NieuweRoute(null, null)));
|
|
50
|
+
export const signaleringsbeeldInfoDtosReducer = createReducer([], on(MstActions.SetSignaleringsbeeldInfoDtos, (_, { dtos }) => dtos), on(MstActions.UpdateSignaleringsbeeldInfoDtos, (_, { dtos }) => [...dtos]));
|
|
51
|
+
export const visibleSbInfoDtosReducer = createReducer([], on(MstActions.SetVisibleSignaleringsbeeldInfoDtos, (_, { dtos }) => dtos), on(MstActions.UpdateVisibleSignaleringsbeeldInfoDtos, (_, { dtos }) => [...dtos]));
|
|
52
|
+
export const iaVersieReducer = createReducer({}, on(MstActions.SetIaVersie, (_, { iaVersie }) => Object.assign({}, iaVersie, { versie: iaVersie.versie.toUpperCase() })));
|
|
53
|
+
export const algemeneRitInfoDtoReducer = createReducer({}, on(MstActions.SetAlgemeneRitInfo, (_, { algemeneRitInfoDto }) => algemeneRitInfoDto));
|
|
54
|
+
export const ongeplandeActiesBepaaldReducer = createReducer(false, on(MstActions.SetOngeplandeActiesBepaald, (_, { bepaald }) => bepaald));
|
|
55
|
+
export const nieuweBewegingReducer = createReducer({}, on(MstActions.UpdateRit, (_, { bewegingen }) => bewegingen));
|
|
56
|
+
export const baseUrlReducer = createReducer(undefined, on(MstActions.SetBaseUrl, (_, { baseUrl }) => baseUrl));
|
|
57
|
+
export const focusIdsReducer = createReducer({}, on(MstActions.focusOpIds, (_, { puics }) => puics));
|
|
58
|
+
export const selectedRitdeelIdReducer = createReducer({}, on(MstActions.SetSelectedRitdeel, (_, { id }) => id));
|
|
59
|
+
export const storeReducers = {
|
|
60
|
+
ritDelen: ritdelenReducer,
|
|
61
|
+
ritSelectieIds: ritSelectieIdsReducer,
|
|
62
|
+
actieOpRitSelectieIds: actieOpRitSelectieIdsReducer,
|
|
63
|
+
ongeplandeActieSelectieIds: ongeplandeActieSelectieIdsReducer,
|
|
64
|
+
ongeplandeActies: ongeplandeActieReducer,
|
|
65
|
+
gebrokenRitSelectieIds: gebrokenRitSelectieIdsReducer,
|
|
66
|
+
alternatievenSelectieIds: alternatievenSelectieIdsReducer,
|
|
67
|
+
beginSeinSelectieIds: beginSeinSelectieIdsReducer,
|
|
68
|
+
eindSeinSelectieIds: eindSeinSelectieIdsReducer,
|
|
69
|
+
alternatievenClickableIds: alternatievenClickableIdsReducer,
|
|
70
|
+
eindSeinenClickableIds: eindSeinenClickableIdsReducer,
|
|
71
|
+
connectorClickableIds: connectorClickableIdsReducer,
|
|
72
|
+
beginSeinRightClickableIds: beginSeinRightClickableIdsReducer,
|
|
73
|
+
nieuweRoute: nieuweRouteReducer,
|
|
74
|
+
geplandeActies: actieOpRitReducer,
|
|
75
|
+
signaleringsbeeldInfoDtos: signaleringsbeeldInfoDtosReducer,
|
|
76
|
+
visibleSbInfoDtos: visibleSbInfoDtosReducer,
|
|
77
|
+
iaVersie: iaVersieReducer,
|
|
78
|
+
algemeneRitInfoDto: algemeneRitInfoDtoReducer,
|
|
79
|
+
svgInfos: svgInfoReducer,
|
|
80
|
+
debug: debugReducer,
|
|
81
|
+
editable: editableReducer,
|
|
82
|
+
ongeplandeActiesBepaald: ongeplandeActiesBepaaldReducer,
|
|
83
|
+
progressState: progressIndicatorReducer,
|
|
84
|
+
nieuweBewegingen: nieuweBewegingReducer,
|
|
85
|
+
baseUrl: baseUrlReducer,
|
|
86
|
+
focusIds: focusIdsReducer,
|
|
87
|
+
selectedRitdeelId: selectedRitdeelIdReducer
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXN0LWVkaXRvci1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zdC12aWV3ZXIvc3JjL2xpYi9zdGF0ZS9tc3QtZWRpdG9yLXN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR2hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUtwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxLQUFLLFVBQVUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUE2QzlELE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFXLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDakYsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLEVBQWMsRUFBRSxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBRS9GLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxhQUFhLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFFOUcsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsYUFBYSxDQUNqRCxTQUFTLEVBQ1QsRUFBRSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLGlCQUFpQixFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFD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LEVBQUUsZUFBZTtJQUN6Qix1QkFBdUIsRUFBRSw4QkFBOEI7SUFDdkQsYUFBYSxFQUFFLHdCQUF3QjtJQUN2QyxnQkFBZ0IsRUFBRSxxQkFBcUI7SUFDdkMsT0FBTyxFQUFFLGNBQWM7SUFDdkIsUUFBUSxFQUFFLGVBQWU7SUFDekIsaUJBQWlCLEVBQUUsd0JBQXdCO0NBQzlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdmdJbmZvIH0gZnJvbSAnQGxveGlhL2lteC12aWV3ZXInO1xuaW1wb3J0IHsgY3JlYXRlUmVkdWNlciwgb24gfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBBbGdlbWVuZVJpdER0byB9IGZyb20gJy4uLy4uL2dlbmVyYXRlZC9vcGVuYXBpJztcbmltcG9ydCB7IFByb2dyZXNzSW5kaWNhdG9yIH0gZnJvbSAnLi4vYXRvbWljLWNvbXBvbmVudHMvcHJvZ3Jlc3MtaW5kaWNhdG9yL3Byb2dyZXNzLWluZGljYXRvci5lbnRpdHknO1xuaW1wb3J0IHsgTmlldXdlUm91dGUgfSBmcm9tICcuLi9tb2RlbC9uaWV1d2Utcm91dGUnO1xuaW1wb3J0IHsgT25nZXBsYW5kZUFjdGllIH0gZnJvbSAnLi4vbW9kZWwvb25nZXBsYW5kZS1hY3RpZSc7XG5pbXBvcnQgeyBSaXRkZWVsIH0gZnJvbSAnLi4vbW9kZWwvcml0ZGVlbCc7XG5pbXBvcnQgeyBBY3RpZSwgQmV3ZWdpbmcsIEluZnJhTW9kZWwgfSBmcm9tICcuLi9vcHRpbW8nO1xuaW1wb3J0IHsgSVNpZ25hbGVyaW5nc2JlZWxkSW5mb0R0byB9IGZyb20gJy4uL3Jlc291cmNlcy9zaWduYWxlcmluZ3NiZWVsZGluZm8ucmVzb3VyY2UnO1xuaW1wb3J0IHsgQXJyYXlNdWx0aW1hcCB9IGZyb20gJy4uL3V0aWwvbXVsdGktbWFwJztcbmltcG9ydCAqIGFzIE1zdEFjdGlvbnMgZnJvbSAnLi9hY3Rpb25zL2FjdGlvbnMnO1xuaW1wb3J0IHsgcml0ZGVsZW5SZWR1Y2VyIH0gZnJvbSAnLi9yZWR1Y2VyL3JpdC1kZWxlbi5yZWR1Y2VyJztcblxuZXhwb3J0IGludGVyZmFjZSBNc3RFZGl0b3JTdGF0ZSB7XG4gICAgcml0RGVsZW46IFJpdGRlZWxbXTsgLy8gb25zIG1vZGVsIHZhbiB0cmVpbnBhZFxuXG4gICAgLy8gcHVpY3Mgdm9vciBTZWxlY3RpZUluZm9zXG4gICAgcml0U2VsZWN0aWVJZHM6IHN0cmluZ1tdO1xuICAgIGFjdGllT3BSaXRTZWxlY3RpZUlkczogc3RyaW5nW107XG4gICAgZ2Vicm9rZW5SaXRTZWxlY3RpZUlkczogc3RyaW5nW107XG4gICAgYWx0ZXJuYXRpZXZlblNlbGVjdGllSWRzOiBzdHJpbmdbXTtcbiAgICBiZWdpblNlaW5TZWxlY3RpZUlkczogc3RyaW5nW107XG4gICAgZWluZFNlaW5TZWxlY3RpZUlkczogc3RyaW5nW107XG4gICAgb25nZXBsYW5kZUFjdGllU2VsZWN0aWVJZHM6IHN0cmluZ1tdO1xuICAgIG9uZ2VwbGFuZGVBY3RpZXM6IEFycmF5TXVsdGltYXA8c3RyaW5nLCBPbmdlcGxhbmRlQWN0aWU+O1xuICAgIGdlcGxhbmRlQWN0aWVzOiBBcnJheU11bHRpbWFwPEFjdGllLCBzdHJpbmc+O1xuXG4gICAgLy8gcHVpY3Mgdm9vciBjbGlja3NcbiAgICBhbHRlcm5hdGlldmVuQ2xpY2thYmxlSWRzOiBzdHJpbmdbXTtcbiAgICBlaW5kU2VpbmVuQ2xpY2thYmxlSWRzOiBzdHJpbmdbXTtcbiAgICBjb25uZWN0b3JDbGlja2FibGVJZHM6IHN0cmluZ1tdO1xuXG4gICAgLy8gcHVpY3Mgdm9vciByaWdodGNsaWNrc1xuICAgIGJlZ2luU2VpblJpZ2h0Q2xpY2thYmxlSWRzOiBzdHJpbmdbXTtcblxuICAgIG5pZXV3ZVJvdXRlOiBOaWV1d2VSb3V0ZTtcblxuICAgIHNpZ25hbGVyaW5nc2JlZWxkSW5mb0R0b3M6IElTaWduYWxlcmluZ3NiZWVsZEluZm9EdG9bXTtcbiAgICB2aXNpYmxlU2JJbmZvRHRvczogSVNpZ25hbGVyaW5nc2JlZWxkSW5mb0R0b1tdO1xuICAgIGFsZ2VtZW5lUml0SW5mb0R0bzogQWxnZW1lbmVSaXREdG87XG4gICAgaWFWZXJzaWU6IEluZnJhTW9kZWw7XG4gICAgc3ZnSW5mb3M6IFN2Z0luZm9bXTtcbiAgICBkZWJ1ZzogYm9vbGVhbjtcbiAgICBlZGl0YWJsZTogYm9vbGVhbjtcbiAgICBvbmdlcGxhbmRlQWN0aWVzQmVwYWFsZDogYm9vbGVhbjtcbiAgICBwcm9ncmVzc1N0YXRlOiBQcm9ncmVzc1N0YXRlO1xuICAgIG5pZXV3ZUJld2VnaW5nZW46IEJld2VnaW5nW107XG4gICAgYmFzZVVybDogc3RyaW5nO1xuICAgIGZvY3VzSWRzOiBzdHJpbmdbXTtcbiAgICBzZWxlY3RlZFJpdGRlZWxJZDogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgUHJvZ3Jlc3NTdGF0ZSB7XG4gICAgcHJvZ3Jlc3NJbmRpY2F0b3I/OiBQcm9ncmVzc0luZGljYXRvcjtcbn1cblxuY29uc3Qgb25JZHNBY3Rpb25IYW5kbGVyID0gKGFjdGlvbikgPT4gb24oYWN0aW9uLCAoXzogc3RyaW5nW10sIHsgaWRzIH0pID0+IGlkcyk7XG5jb25zdCBjcmVhdGVJZHNSZWR1Y2VyID0gKGFjdGlvbikgPT4gY3JlYXRlUmVkdWNlcihbXSBhcyBzdHJpbmdbXSwgb25JZHNBY3Rpb25IYW5kbGVyKGFjdGlvbikpO1xuXG5leHBvcnQgY29uc3QgZWRpdGFibGVSZWR1Y2VyID0gY3JlYXRlUmVkdWNlcih0cnVlLCBvbihNc3RBY3Rpb25zLnNldEVkaXRhYmxlLCAoXywgeyBlZGl0YWJsZSB9KSA9PiBlZGl0YWJsZSkpO1xuXG5leHBvcnQgY29uc3QgcHJvZ3Jlc3NJbmRpY2F0b3JSZWR1Y2VyID0gY3JlYXRlUmVkdWNlcihcbiAgICB1bmRlZmluZWQsXG4gICAgb24oTXN0QWN0aW9ucy5TaG93UHJvZ3Jlc3MsICgpID0+ICh7IHByb2dyZXNzSW5kaWNhdG9yOiB7fSB9KSksXG4gICAgb24oTXN0QWN0aW9ucy5DbGVhclByb2dyZXNzLCAoKSA9PiB1bmRlZmluZWQpXG4pO1xuXG5leHBvcnQgY29uc3Qgc3ZnSW5mb1JlZHVjZXIgPSBjcmVhdGVSZWR1Y2VyKFtdIGFzIFN2Z0luZm9bXSwgb24oTXN0QWN0aW9ucy5TZXRTdmdJbmZvcywgKF8sIHsgc3ZnSW5mb3MgfSkgPT4gc3ZnSW5mb3MpKTtcbmV4cG9ydCBjb25zdCBkZWJ1Z1JlZHVjZXIgPSBjcmVhdGVSZWR1Y2VyKGZhbHNlLCBvbihNc3RBY3Rpb25zLlNldERlYnVnLCAoXywgeyBkZWJ1ZyB9KSA9PiBkZWJ1ZykpO1xuZXhwb3J0IGNvbnN0IHJpdFNlbGVjdGllSWRzUmVkdWNlciA9IGNyZWF0ZUlkc1JlZHVjZXIoTXN0QWN0aW9ucy5TZXRSaXRTZWxlY3RpZUlkcyk7XG5cbmV4cG9ydCBjb25zdCBhY3RpZU9wUml0UmVkdWNlciA9IGNyZWF0ZVJlZHVjZXIoXG4gICAgbmV3IEFycmF5TXVsdGltYXA8QWN0aWUsIHN0cmluZz4oKSxcbiAgICBvbihNc3RBY3Rpb25zLlNldEdlcGxhbmRlQWN0aWVzLCAoXywgeyBnZXBsYW5kZUFjdGllc01hcCB9KSA9PiBnZXBsYW5kZUFjdGllc01hcCksXG4gICAgb24oTXN0QWN0aW9ucy5BZGRHZXBsYW5kZUFjdGllLCAoZ2VwbGFuZGVBY3RpZXMsIHsgYWN0aWUsIHB1aWNzIH0pID0+IHtcbiAgICAgICAgZ2VwbGFuZGVBY3RpZXMucHV0QWxsKGFjdGllLCBwdWljcyk7XG4gICAgICAgIHJldHVybiBuZXcgQXJyYXlNdWx0aW1hcChnZXBsYW5kZUFjdGllcyk7XG4gICAgfSksXG4gICAgb24oTXN0QWN0aW9ucy5EZWxldGVHZXBsYW5kZUFjdGllLCAoZ2VwbGFuZGVBY3RpZXMsIHsgYWN0aWUgfSkgPT4ge1xuICAgICAgICBnZXBsYW5kZUFjdGllcy5kZWxldGUoYWN0aWUpO1xuICAgICAgICByZXR1cm4gbmV3IEFycmF5TXVsdGltYXAoZ2VwbGFuZGVBY3RpZXMpO1xuICAgIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgYWN0aWVPcFJpdFNlbGVjdGllSWRzUmVkdWNlciA9IGNyZWF0ZVJlZHVjZXIoXG4gICAgW10gYXMgc3RyaW5nW10sXG4gICAgb25JZHNBY3Rpb25IYW5kbGVyKE1zdEFjdGlvbnMuU2V0QWN0aWVPcFJpdFNlbGVjdGllSWRzKSxcbiAgICBvbihNc3RBY3Rpb25zLkFkZEdlcGxhbmRlQWN0aWUsIChpZHM6IHN0cmluZ1tdLCB7IHB1aWNzIH0pID0+IHtcbiAgICAgICAgcHVpY3MuZmlsdGVyKHB1aWMgPT4gIWlkcy5pbmNsdWRlcyhwdWljKSkuZm9yRWFjaChwdWljID0+IGlkcy5wdXNoKHB1aWMpKTtcbiAgICAgICAgcmV0dXJuIFsuLi5pZHNdO1xuICAgIH0pLFxuICAgIG9uKE1zdEFjdGlvbnMuRGVsZXRlR2VwbGFuZGVBY3RpZSwgKGlkczogc3RyaW5nW10sIHsgcHVpY3MgfSkgPT4ge1xuICAgICAgICBwdWljcy5maWx0ZXIocHVpYyA9PiBpZHMuaW5jbHVkZXMocHVpYykpLmZvckVhY2gocHVpYyA9PiBpZHMgPSBpZHMuZmlsdGVyKHAgPT4gcCAhPT0gcHVpYykpO1xuICAgICAgICByZXR1cm4gWy4uLmlkc107XG4gICAgfSlcbik7XG5cbmV4cG9ydCBjb25zdCBvbmdlcGxhbmRlQWN0aWVSZWR1Y2VyID0gY3JlYXRlUmVkdWNlcihcbiAgICBuZXcgQXJyYXlNdWx0aW1hcDxzdHJpbmcsIE9uZ2VwbGFuZGVBY3RpZT4oKSxcbiAgICBvbihNc3RBY3Rpb25zLlNldE9uZ2VwbGFuZGVBY3RpZXMsIChfLCB7IG9uZ2VwbGFuZGVBY3RpZXNNYXAgfSkgPT4gb25nZXBsYW5kZUFjdGllc01hcCksXG4gICAgb24oTXN0QWN0aW9ucy5BZGRPbmdlcGxhbmRlQWN0aWUsIChvbmdlcGxhbmRlQWN0aWVzLCB7IG9uZ2VwbGFuZGVBY3RpZSB9KSA9PiB7XG4gICAgICAgIG9uZ2VwbGFuZGVBY3RpZS5wdWljcy5maWx0ZXIocHVpYyA9PiAhb25nZXBsYW5kZUFjdGllcy5jb250YWluc0VudHJ5KHB1aWMsIG9uZ2VwbGFuZGVBY3RpZSkpXG4gICAgICAgICAgICAgICAgICAgICAgIC5mb3JFYWNoKHB1aWMgPT4gb25nZXBsYW5kZUFjdGllcy5wdXQocHVpYywgb25nZXBsYW5kZUFjdGllKSk7XG4gICAgICAgIHJldHVybiBuZXcgQXJyYXlNdWx0aW1hcChvbmdlcGxhbmRlQWN0aWVzKTtcbiAgICB9KSxcbiAgICBvbihNc3RBY3Rpb25zLkRlbGV0ZU9uZ2VwbGFuZGVBY3RpZSwgKG9uZ2VwbGFuZGVBY3RpZXMsIHsgb25nZXBsYW5kZUFjdGllIH0pID0+IHtcbiAgICAgICAgb25nZXBsYW5kZUFjdGllLnB1aWNzLmZvckVhY2gocHVpYyA9PiBvbmdlcGxhbmRlQWN0aWVzLmRlbGV0ZShwdWljLCBvbmdlcGxhbmRlQWN0aWUpKTtcbiAgICAgICAgcmV0dXJuIG5ldyBBcnJheU11bHRpbWFwKG9uZ2VwbGFuZGVBY3RpZXMpO1xuICAgIH0pXG4pO1xuXG5leHBvcnQgY29uc3Qgb25nZXBsYW5kZUFjdGllU2VsZWN0aWVJZHNSZWR1Y2VyID0gY3JlYXRlUmVkdWNlcihcbiAgICBbXSBhcyBzdHJpbmdbXSxcbiAgICAvLyBvbihNc3RBY3Rpb25zLlNldE9uZ2VwbGFuZGVBY3RpZVNlbGVjdGllSWRzLCAoXywgeyBpZHMgfSkgPT4gaWRzKSxcbiAgICBvbklkc0FjdGlvbkhhbmRsZXIoTXN0QWN0aW9ucy5TZXRPbmdlcGxhbmRlQWN0aWVTZWxlY3RpZUlkcyksXG4gICAgb24oTXN0QWN0aW9ucy5BZGRPbmdlcGxhbmRlQWN0aWUsIChpZHM6IHN0cmluZ1tdLCB7IG9uZ2VwbGFuZGVBY3RpZSB9KSA9PiB7XG4gICAgICAgIG9uZ2VwbGFuZGVBY3RpZS5wdWljcy5maWx0ZXIocHVpYyA9PiAhaWRzLmluY2x1ZGVzKHB1aWMpKS5mb3JFYWNoKHB1aWMgPT4gaWRzLnB1c2gocHVpYykpO1xuICAgICAgICByZXR1cm4gWy4uLmlkc107XG4gICAgfSksXG4gICAgb24oTXN0QWN0aW9ucy5EZWxldGVPbmdlcGxhbmRlQWN0aWVTZWxlY3RpZUlkLCAoaWRzOiBzdHJpbmdbXSwgeyBpZCB9KSA9PiBbXS5jb25jYXQoaWRzLmluY2x1ZGVzKGlkKSA/IGlkcy5maWx0ZXIoX2lkID0+IF9pZCAhPT0gaWQpIDogaWRzKSlcbik7XG5cbmV4cG9ydCBjb25zdCBnZWJyb2tlblJpdFNlbGVjdGllSWRzUmVkdWNlciA9IGNyZWF0ZUlkc1JlZHVjZXIoTXN0QWN0aW9ucy5TZXRHZWJyb2tlblJpdFNlbGVjdGllSWRzKTtcbmV4cG9ydCBjb25zdCBhbHRlcm5hdGlldmVuU2VsZWN0aWVJZHNSZWR1Y2VyID0gY3JlYXRlSWRzUmVkdWNlcihNc3RBY3Rpb25zLlNldEFsdGVybmF0aWV2ZW5TZWxlY3RpZUlkcyk7XG5leHBvcnQgY29uc3QgYmVnaW5TZWluU2VsZWN0aWVJZHNSZWR1Y2VyID0gY3JlYXRlSWRzUmVkdWNlcihNc3RBY3Rpb25zLlNldEJlZ2luU2VpblNlbGVjdGllSWRzKTtcbmV4cG9ydCBjb25zdCBlaW5kU2VpblNlbGVjdGllSWRzUmVkdWNlciA9IGNyZWF0ZUlkc1JlZHVjZXIoTXN0QWN0aW9ucy5TZXRFaW5kU2VpblNlbGVjdGllSWRzKTtcbmV4cG9ydCBjb25zdCBhbHRlcm5hdGlldmVuQ2xpY2thYmxlSWRzUmVkdWNlciA9IGNyZWF0ZUlkc1JlZHVjZXIoTXN0QWN0aW9ucy5TZXRBbHRlcm5hdGlldmVuQ2xpY2thYmxlSWRzKTtcbmV4cG9ydCBjb25zdCBlaW5kU2VpbmVuQ2xpY2thYmxlSWRzUmVkdWNlciA9IGNyZWF0ZUlkc1JlZHVjZXIoTXN0QWN0aW9ucy5TZXRFaW5kU2VpbmVuQ2xpY2thYmxlSWRzKTtcbmV4cG9ydCBjb25zdCBjb25uZWN0b3JDbGlja2FibGVJZHNSZWR1Y2VyID0gY3JlYXRlSWRzUmVkdWNlcihNc3RBY3Rpb25zLlNldENvbm5lY3RvcmVuQ2xpY2thYmxlSWRzKTtcbmV4cG9ydCBjb25zdCBiZWdpblNlaW5SaWdodENsaWNrYWJsZUlkc1JlZHVjZXIgPSBjcmVhdGVJZHNSZWR1Y2VyKE1zdEFjdGlvbnMuU2V0QmVnaW5TZWluUmlnaHRDbGlja2FibGVJZHMpO1xuXG5leHBvcnQgY29uc3QgbmlldXdlUm91dGVSZWR1Y2VyID0gY3JlYXRlUmVkdWNlcihcbiAgICBuZXcgTmlldXdlUm91dGUobnVsbCwgbnVsbCksXG4gICAgb24oTXN0QWN0aW9ucy5TZXROaWV1d1JvdXRlQmVnaW5TZWluLCAoXywgeyBzdGFydFNlaW5PcFJpdGRlZWwgfSkgPT4gbmV3IE5pZXV3ZVJvdXRlKHN0YXJ0U2Vpbk9wUml0ZGVlbCwgbnVsbCkpLFxuICAgIG9uKE1zdEFjdGlvbnMuU2V0TmlldXdSb3V0ZUVpbmRTZWluLCAobmlldXdlUm91dGUsIHsgY29tYmluYXRpZVZvb3JFaW5kc2VpbiB9KSA9PiBuZXcgTmlldXdlUm91dGUobmlldXdlUm91dGUuYmVnaW5TZWluT3BSaXRkZWVsLCBjb21iaW5hdGllVm9vckVpbmRzZWluKSksXG4gICAgb24oTXN0QWN0aW9ucy5SZXNldE5pZXV3ZVJvdXRlLCAoKSA9PiBuZXcgTmlldXdlUm91dGUobnVsbCwgbnVsbCkpXG4pO1xuXG5leHBvcnQgY29uc3Qgc2lnbmFsZXJpbmdzYmVlbGRJbmZvRHRvc1JlZHVjZXIgPSBjcmVhdGVSZWR1Y2VyKFxuICAgIFtdIGFzIElTaWduYWxlcmluZ3NiZWVsZEluZm9EdG9bXSxcbiAgICBvbihNc3RBY3Rpb25zLlNldFNpZ25hbGVyaW5nc2JlZWxkSW5mb0R0b3MsIChfLCB7IGR0b3MgfSkgPT4gZHRvcyksXG4gICAgb24oTXN0QWN0aW9ucy5VcGRhdGVTaWduYWxlcmluZ3NiZWVsZEluZm9EdG9zLCAoXywgeyBkdG9zIH0pID0+IFsuLi5kdG9zXSlcbik7XG5cbmV4cG9ydCBjb25zdCB2aXNpYmxlU2JJbmZvRHRvc1JlZHVjZXIgPSBjcmVhdGVSZWR1Y2VyKFxuICAgIFtdIGFzIElTaWduYWxlcmluZ3NiZWVsZEluZm9EdG9bXSxcbiAgICBvbihNc3RBY3Rpb25zLlNldFZpc2libGVTaWduYWxlcmluZ3NiZWVsZEluZm9EdG9zLCAoXywgeyBkdG9zIH0pID0+IGR0b3MpLFxuICAgIG9uKE1zdEFjdGlvbnMuVXBkYXRlVmlzaWJsZVNpZ25hbGVyaW5nc2JlZWxkSW5mb0R0b3MsIChfLCB7IGR0b3MgfSkgPT4gWy4uLmR0b3NdKVxuKTtcblxuZXhwb3J0IGNvbnN0IGlhVmVyc2llUmVkdWNlciA9IGNyZWF0ZVJlZHVjZXIoe30sXG4gICAgb24oTXN0QWN0aW9ucy5TZXRJYVZlcnNpZSxcbiAgICAgICAgKF8sIHsgaWFWZXJzaWUgfSkgPT4gT2JqZWN0LmFzc2lnbih7fSwgaWFWZXJzaWUsIHsgdmVyc2llOiBpYVZlcnNpZS52ZXJzaWUudG9VcHBlckNhc2UoKSB9KSkpO1xuZXhwb3J0IGNvbnN0IGFsZ2VtZW5lUml0SW5mb0R0b1JlZHVjZXIgPSBjcmVhdGVSZWR1Y2VyKHsgfSwgb24oTXN0QWN0aW9ucy5TZXRBbGdlbWVuZVJpdEluZm8sIChfLCB7IGFsZ2VtZW5lUml0SW5mb0R0byB9KSA9PiBhbGdlbWVuZVJpdEluZm9EdG8pKTtcbmV4cG9ydCBjb25zdCBvbmdlcGxhbmRlQWN0aWVzQmVwYWFsZFJlZHVjZXIgPSBjcmVhdGVSZWR1Y2VyKGZhbHNlLCBvbihNc3RBY3Rpb25zLlNldE9uZ2VwbGFuZGVBY3RpZXNCZXBhYWxkLCAoXywgeyBiZXBhYWxkIH0pID0+IGJlcGFhbGQpKTtcblxuZXhwb3J0IGNvbnN0IG5pZXV3ZUJld2VnaW5nUmVkdWNlciA9IGNyZWF0ZVJlZHVjZXIoeyB9LCBvbihNc3RBY3Rpb25zLlVwZGF0ZVJpdCwgKF8sIHsgYmV3ZWdpbmdlbiB9KSA9PiBiZXdlZ2luZ2VuKSk7XG5cbmV4cG9ydCBjb25zdCBiYXNlVXJsUmVkdWNlciA9IGNyZWF0ZVJlZHVjZXIodW5kZWZpbmVkLCBvbihNc3RBY3Rpb25zLlNldEJhc2VVcmwsIChfLCB7IGJhc2VVcmwgfSkgPT4gYmFzZVVybCkpO1xuXG5leHBvcnQgY29uc3QgZm9jdXNJZHNSZWR1Y2VyID0gY3JlYXRlUmVkdWNlcih7IH0sIG9uKE1zdEFjdGlvbnMuZm9jdXNPcElkcywgKF8sIHsgcHVpY3MgfSkgPT4gcHVpY3MpKTtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdGVkUml0ZGVlbElkUmVkdWNlciA9IGNyZWF0ZVJlZHVjZXIoe30sIG9uKE1zdEFjdGlvbnMuU2V0U2VsZWN0ZWRSaXRkZWVsLCAoXywgeyBpZCB9KSA9PiBpZCkpO1xuXG5leHBvcnQgY29uc3Qgc3RvcmVSZWR1Y2VycyA9IHtcbiAgICByaXREZWxlbjogcml0ZGVsZW5SZWR1Y2VyLFxuICAgIHJpdFNlbGVjdGllSWRzOiByaXRTZWxlY3RpZUlkc1JlZHVjZXIsXG4gICAgYWN0aWVPcFJpdFNlbGVjdGllSWRzOiBhY3RpZU9wUml0U2VsZWN0aWVJZHNSZWR1Y2VyLFxuICAgIG9uZ2VwbGFuZGVBY3RpZVNlbGVjdGllSWRzOiBvbmdlcGxhbmRlQWN0aWVTZWxlY3RpZUlkc1JlZHVjZXIsXG4gICAgb25nZXBsYW5kZUFjdGllczogb25nZXBsYW5kZUFjdGllUmVkdWNlcixcbiAgICBnZWJyb2tlblJpdFNlbGVjdGllSWRzOiBnZWJyb2tlblJpdFNlbGVjdGllSWRzUmVkdWNlcixcbiAgICBhbHRlcm5hdGlldmVuU2VsZWN0aWVJZHM6IGFsdGVybmF0aWV2ZW5TZWxlY3RpZUlkc1JlZHVjZXIsXG4gICAgYmVnaW5TZWluU2VsZWN0aWVJZHM6IGJlZ2luU2VpblNlbGVjdGllSWRzUmVkdWNlcixcbiAgICBlaW5kU2VpblNlbGVjdGllSWRzOiBlaW5kU2VpblNlbGVjdGllSWRzUmVkdWNlcixcbiAgICBhbHRlcm5hdGlldmVuQ2xpY2thYmxlSWRzOiBhbHRlcm5hdGlldmVuQ2xpY2thYmxlSWRzUmVkdWNlcixcbiAgICBlaW5kU2VpbmVuQ2xpY2thYmxlSWRzOiBlaW5kU2VpbmVuQ2xpY2thYmxlSWRzUmVkdWNlcixcbiAgICBjb25uZWN0b3JDbGlja2FibGVJZHM6IGNvbm5lY3RvckNsaWNrYWJsZUlkc1JlZHVjZXIsXG4gICAgYmVnaW5TZWluUmlnaHRDbGlja2FibGVJZHM6IGJlZ2luU2VpblJpZ2h0Q2xpY2thYmxlSWRzUmVkdWNlcixcbiAgICBuaWV1d2VSb3V0ZTogbmlldXdlUm91dGVSZWR1Y2VyLFxuICAgIGdlcGxhbmRlQWN0aWVzOiBhY3RpZU9wUml0UmVkdWNlcixcbiAgICBzaWduYWxlcmluZ3NiZWVsZEluZm9EdG9zOiBzaWduYWxlcmluZ3NiZWVsZEluZm9EdG9zUmVkdWNlcixcbiAgICB2aXNpYmxlU2JJbmZvRHRvczogdmlzaWJsZVNiSW5mb0R0b3NSZWR1Y2VyLFxuICAgIGlhVmVyc2llOiBpYVZlcnNpZVJlZHVjZXIsXG4gICAgYWxnZW1lbmVSaXRJbmZvRHRvOiBhbGdlbWVuZVJpdEluZm9EdG9SZWR1Y2VyLFxuICAgIHN2Z0luZm9zOiBzdmdJbmZvUmVkdWNlcixcbiAgICBkZWJ1ZzogZGVidWdSZWR1Y2VyLFxuICAgIGVkaXRhYmxlOiBlZGl0YWJsZVJlZHVjZXIsXG4gICAgb25nZXBsYW5kZUFjdGllc0JlcGFhbGQ6IG9uZ2VwbGFuZGVBY3RpZXNCZXBhYWxkUmVkdWNlcixcbiAgICBwcm9ncmVzc1N0YXRlOiBwcm9ncmVzc0luZGljYXRvclJlZHVjZXIsXG4gICAgbmlldXdlQmV3ZWdpbmdlbjogbmlldXdlQmV3ZWdpbmdSZWR1Y2VyLFxuICAgIGJhc2VVcmw6IGJhc2VVcmxSZWR1Y2VyLFxuICAgIGZvY3VzSWRzOiBmb2N1c0lkc1JlZHVjZXIsXG4gICAgc2VsZWN0ZWRSaXRkZWVsSWQ6IHNlbGVjdGVkUml0ZGVlbElkUmVkdWNlclxufTtcblxuIl19
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { createReducer, on } from '@ngrx/store';
|
|
2
|
+
import { RitdeelZichtbaarheid } from '../../model/ritdeel';
|
|
3
|
+
import * as RitdelenActions from '../actions/ritdelen.actions';
|
|
4
|
+
const { ZICHTBAAR, ONZICHTBAAR_DOOR_GEBRUIKER, ONZICHTBAAR_DOOR_SYSTEEM } = RitdeelZichtbaarheid;
|
|
5
|
+
export const ritdelenReducer = createReducer([], on(RitdelenActions.setRitdelenAfterUpdate, setRitDelenAfterUpdateFunc), on(RitdelenActions.setRitdeelZichtbaar, setRitdeelZichtbaarFunc), on(RitdelenActions.toggleRitdeelZichtbaar, toggleRitdeelZichtbaarFunc), on(RitdelenActions.setZichtbaarheidAlleRitdelen, setZichtbaarheidAlleRitdelenFunc), on(RitdelenActions.toggleZichtbaarheidVoorBewegingen, toggleZichtbaarheidVoorBewegingenFunc), on(RitdelenActions.deleteRitdeel, deleteRitdeelFunc), on(RitdelenActions.deleteRitdeelActie, deleteRitdeelActieFunc), on(RitdelenActions.addRitdeelActie, addRitdeelActieFunc));
|
|
6
|
+
function setRitDelenAfterUpdateFunc(_, { ritDelen }) {
|
|
7
|
+
return [...ritDelen];
|
|
8
|
+
}
|
|
9
|
+
function setRitdeelZichtbaarFunc(ritDelen, { ritDeel, zichtbaar }) {
|
|
10
|
+
const gezetRitdeel = ritDeel.copyMetZichtbaarheid(zichtbaar ? ZICHTBAAR : ONZICHTBAAR_DOOR_GEBRUIKER);
|
|
11
|
+
vervangRitdeel(ritDelen, ritDeel, gezetRitdeel);
|
|
12
|
+
return [...ritDelen];
|
|
13
|
+
}
|
|
14
|
+
function toggleRitdeelZichtbaarFunc(ritDelen, { ritDeel }) {
|
|
15
|
+
const getoggeldeRitdeel = ritDeel.copyMetZichtbaarheid(ritDeel.isZichtbaar() ? ONZICHTBAAR_DOOR_GEBRUIKER : ZICHTBAAR);
|
|
16
|
+
vervangRitdeel(ritDelen, ritDeel, getoggeldeRitdeel);
|
|
17
|
+
return [...ritDelen];
|
|
18
|
+
}
|
|
19
|
+
function setZichtbaarheidAlleRitdelenFunc(ritDelen, { zichtbaarheid }) {
|
|
20
|
+
ritDelen.filter(r => r.getZichtbaarheid() !== ONZICHTBAAR_DOOR_SYSTEEM).forEach(ritDeel => {
|
|
21
|
+
vervangRitdeel(ritDelen, ritDeel, ritDeel.copyMetZichtbaarheid(zichtbaarheid ? ZICHTBAAR : ONZICHTBAAR_DOOR_GEBRUIKER));
|
|
22
|
+
});
|
|
23
|
+
return [...ritDelen];
|
|
24
|
+
}
|
|
25
|
+
function toggleZichtbaarheidVoorBewegingenFunc(ritDelen, { bewegingIds }) {
|
|
26
|
+
ritDelen.filter(r => r.beweging && bewegingIds.includes(Number(r.getBewegingId()))).forEach(ritDeel => {
|
|
27
|
+
vervangRitdeel(ritDelen, ritDeel, ritDeel.copyMetZichtbaarheid(ZICHTBAAR));
|
|
28
|
+
});
|
|
29
|
+
return [...ritDelen];
|
|
30
|
+
}
|
|
31
|
+
function vervangRitdeel(ritdelen, orgRitdeel, newRitdeel) {
|
|
32
|
+
for (let i = 0; i < ritdelen.length; i++) {
|
|
33
|
+
if (ritdelen[i] === orgRitdeel) {
|
|
34
|
+
ritdelen[i] = newRitdeel;
|
|
35
|
+
break;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function deleteRitdeelFunc(ritDelen, { ritDeel }) {
|
|
40
|
+
const idx = ritDelen.indexOf(ritDeel);
|
|
41
|
+
if (idx >= 0) {
|
|
42
|
+
ritDelen.splice(idx, 1);
|
|
43
|
+
}
|
|
44
|
+
return [...ritDelen];
|
|
45
|
+
}
|
|
46
|
+
function deleteRitdeelActieFunc(ritDelen, { ritDeel, actie }) {
|
|
47
|
+
for (const item of ritDelen) {
|
|
48
|
+
// We gebruiken equals omdat het wel of niet zichtbaar zijn van een ritdeel niet relevant is
|
|
49
|
+
if (item.equals(ritDeel)) {
|
|
50
|
+
const acties = ritDeel.acties;
|
|
51
|
+
const aidx = acties.indexOf(actie);
|
|
52
|
+
acties.splice(aidx, 1);
|
|
53
|
+
break;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return [...ritDelen];
|
|
57
|
+
}
|
|
58
|
+
function addRitdeelActieFunc(ritDelen, { ritDeel, actie }) {
|
|
59
|
+
ritDeel.acties.push(actie);
|
|
60
|
+
return [...ritDelen];
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicml0LWRlbGVuLnJlZHVjZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tc3Qtdmlld2VyL3NyYy9saWIvc3RhdGUvcmVkdWNlci9yaXQtZGVsZW4ucmVkdWNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLGFBQWEsRUFBRSxFQUFFLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDL0QsT0FBTyxFQUFXLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEUsT0FBTyxLQUFLLGVBQWUsTUFBTSw2QkFBNkIsQ0FBQztBQUUvRCxNQUFNLEVBQUUsU0FBUyxFQUFFLDBCQUEwQixFQUFFLHdCQUF3QixFQUFFLEdBQUcsb0JBQW9CLENBQUM7QUFFakcsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFrRSxhQUFhLENBQ3ZHLEVBQWUsRUFDZixFQUFFLENBQUMsZUFBZSxDQUFDLHNCQUFzQixFQUFFLDBCQUEwQixDQUFDLEVBQ3RFLEVBQUUsQ0FBQyxlQUFlLENBQUMsbUJBQW1CLEVBQUUsdUJBQXVCLENBQUMsRUFDaEUsRUFBRSxDQUFDLGVBQWUsQ0FBQyxzQkFBc0IsRUFBRSwwQkFBMEIsQ0FBQyxFQUN0RSxFQUFFLENBQUMsZUFBZSxDQUFDLDRCQUE0QixFQUFFLGdDQUFnQyxDQUFDLEVBQ2xGLEVBQUUsQ0FBQyxlQUFlLENBQUMsaUNBQWlDLEVBQUUscUNBQXFDLENBQUMsRUFDNUYsRUFBRSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsRUFDcEQsRUFBRSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsRUFBRSxzQkFBc0IsQ0FBQyxFQUM5RCxFQUFFLENBQUMsZUFBZSxDQUFDLGVBQWUsRUFBRSxtQkFBbUIsQ0FBQyxDQUMzRCxDQUFDO0FBRUYsU0FBUywwQkFBMEIsQ0FBQyxDQUFZLEVBQUUsRUFBRSxRQUFRLEVBQUU7SUFDMUQsT0FBTyxDQUFDLEdBQUcs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QUUsT0FBTyxFQUFFLEtBQUssRUFBRTtJQUNuRSxLQUFLLE1BQU0sSUFBSSxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQzFCLDRGQUE0RjtRQUM1RixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN2QixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1lBQzlCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDdkIsTUFBTTtRQUNWLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUM7QUFDekIsQ0FBQztBQUVELFNBQVMsbUJBQW1CLENBQUMsUUFBbUIsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUU7SUFDaEUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsT0FBTyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUM7QUFDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvblJlZHVjZXIsIGNyZWF0ZVJlZHVjZXIsIG9uIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgUml0ZGVlbCwgUml0ZGVlbFppY2h0YmFhcmhlaWQgfSBmcm9tICcuLi8uLi9tb2RlbC9yaXRkZWVsJztcbmltcG9ydCAqIGFzIFJpdGRlbGVuQWN0aW9ucyBmcm9tICcuLi9hY3Rpb25zL3JpdGRlbGVuLmFjdGlvbnMnO1xuXG5jb25zdCB7IFpJQ0hUQkFBUiwgT05aSUNIVEJBQVJfRE9PUl9HRUJSVUlLRVIsIE9OWklDSFRCQUFSX0RPT1JfU1lTVEVFTSB9ID0gUml0ZGVlbFppY2h0YmFhcmhlaWQ7XG5cbmV4cG9ydCBjb25zdCByaXRkZWxlblJlZHVjZXI6IEFjdGlvblJlZHVjZXI8Uml0ZGVlbFtdLCBSaXRkZWxlbkFjdGlvbnMuUml0RGVlbEFjdGlvbnNVbmlvbj4gPSBjcmVhdGVSZWR1Y2VyKFxuICAgIFtdIGFzIFJpdGRlZWxbXSxcbiAgICBvbihSaXRkZWxlbkFjdGlvbnMuc2V0Uml0ZGVsZW5BZnRlclVwZGF0ZSwgc2V0Uml0RGVsZW5BZnRlclVwZGF0ZUZ1bmMpLFxuICAgIG9uKFJpdGRlbGVuQWN0aW9ucy5zZXRSaXRkZWVsWmljaHRiYWFyLCBzZXRSaXRkZWVsWmljaHRiYWFyRnVuYyksXG4gICAgb24oUml0ZGVsZW5BY3Rpb25zLnRvZ2dsZVJpdGRlZWxaaWNodGJhYXIsIHRvZ2dsZVJpdGRlZWxaaWNodGJhYXJGdW5jKSxcbiAgICBvbihSaXRkZWxlbkFjdGlvbnMuc2V0WmljaHRiYWFyaGVpZEFsbGVSaXRkZWxlbiwgc2V0WmljaHRiYWFyaGVpZEFsbGVSaXRkZWxlbkZ1bmMpLFxuICAgIG9uKFJpdGRlbGVuQWN0aW9ucy50b2dnbGVaaWNodGJhYXJoZWlkVm9vckJld2VnaW5nZW4sIHRvZ2dsZVppY2h0YmFhcmhlaWRWb29yQmV3ZWdpbmdlbkZ1bmMpLFxuICAgIG9uKFJpdGRlbGVuQWN0aW9ucy5kZWxldGVSaXRkZWVsLCBkZWxldGVSaXRkZWVsRnVuYyksXG4gICAgb24oUml0ZGVsZW5BY3Rpb25zLmRlbGV0ZVJpdGRlZWxBY3RpZSwgZGVsZXRlUml0ZGVlbEFjdGllRnVuYyksXG4gICAgb24oUml0ZGVsZW5BY3Rpb25zLmFkZFJpdGRlZWxBY3RpZSwgYWRkUml0ZGVlbEFjdGllRnVuYylcbik7XG5cbmZ1bmN0aW9uIHNldFJpdERlbGVuQWZ0ZXJVcGRhdGVGdW5jKF86IFJpdGRlZWxbXSwgeyByaXREZWxlbiB9KTogUml0ZGVlbFtdIHtcbiAgICByZXR1cm4gWy4uLnJpdERlbGVuXTtcbn1cblxuZnVuY3Rpb24gc2V0Uml0ZGVlbFppY2h0YmFhckZ1bmMocml0RGVsZW46IFJpdGRlZWxbXSwgeyByaXREZWVsLCB6aWNodGJhYXIgfSk6IFJpdGRlZWxbXSB7XG4gICAgY29uc3QgZ2V6ZXRSaXRkZWVsID0gcml0RGVlbC5jb3B5TWV0WmljaHRiYWFyaGVpZCh6aWNodGJhYXIgPyBaSUNIVEJBQVIgOiBPTlpJQ0hUQkFBUl9ET09SX0dFQlJVSUtFUik7XG4gICAgdmVydmFuZ1JpdGRlZWwocml0RGVsZW4sIHJpdERlZWwsIGdlemV0Uml0ZGVlbCk7XG4gICAgcmV0dXJuIFsuLi5yaXREZWxlbl07XG59XG5cbmZ1bmN0aW9uIHRvZ2dsZVJpdGRlZWxaaWNodGJhYXJGdW5jKHJpdERlbGVuOiBSaXRkZWVsW10sIHsgcml0RGVlbCB9KTogUml0ZGVlbFtdIHtcbiAgICBjb25zdCBnZXRvZ2dlbGRlUml0ZGVlbCA9IHJpdERlZWwuY29weU1ldFppY2h0YmFhcmhlaWQocml0RGVlbC5pc1ppY2h0YmFhcigpID8gT05aSUNIVEJBQVJfRE9PUl9HRUJSVUlLRVIgOiBaSUNIVEJBQVIpO1xuICAgIHZlcnZhbmdSaXRkZWVsKHJpdERlbGVuLCByaXREZWVsLCBnZXRvZ2dlbGRlUml0ZGVlbCk7XG4gICAgcmV0dXJuIFsuLi5yaXREZWxlbl07XG59XG5cbmZ1bmN0aW9uIHNldFppY2h0YmFhcmhlaWRBbGxlUml0ZGVsZW5GdW5jKHJpdERlbGVuOiBSaXRkZWVsW10sIHsgemljaHRiYWFyaGVpZCB9KTogUml0ZGVlbFtdIHtcbiAgICByaXREZWxlbi5maWx0ZXIociA9PiByLmdldFppY2h0YmFhcmhlaWQoKSAhPT0gT05aSUNIVEJBQVJfRE9PUl9TWVNURUVNKS5mb3JFYWNoKHJpdERlZWwgPT4ge1xuICAgICAgICB2ZXJ2YW5nUml0ZGVlbChyaXREZWxlbiwgcml0RGVlbCwgcml0RGVlbC5jb3B5TWV0WmljaHRiYWFyaGVpZCh6aWNodGJhYXJoZWlkID8gWklDSFRCQUFSIDogT05aSUNIVEJBQVJfRE9PUl9HRUJSVUlLRVIpKTtcbiAgICB9KTtcbiAgICByZXR1cm4gWy4uLnJpdERlbGVuXTtcbn1cblxuZnVuY3Rpb24gdG9nZ2xlWmljaHRiYWFyaGVpZFZvb3JCZXdlZ2luZ2VuRnVuYyhyaXREZWxlbjogUml0ZGVlbFtdLCB7IGJld2VnaW5nSWRzIH0pOiBSaXRkZWVsW10ge1xuICAgIHJpdERlbGVuLmZpbHRlcihyID0+IHIuYmV3ZWdpbmcgJiYgYmV3ZWdpbmdJZHMuaW5jbHVkZXMoTnVtYmVyKHIuZ2V0QmV3ZWdpbmdJZCgpKSkpLmZvckVhY2gocml0RGVlbCA9PiB7XG4gICAgICAgIHZlcnZhbmdSaXRkZWVsKHJpdERlbGVuLCByaXREZWVsLCByaXREZWVsLmNvcHlNZXRaaWNodGJhYXJoZWlkKFpJQ0hUQkFBUikpO1xuICAgIH0pO1xuICAgIHJldHVybiBbLi4ucml0RGVsZW5dO1xufVxuXG5mdW5jdGlvbiB2ZXJ2YW5nUml0ZGVlbChyaXRkZWxlbjogUml0ZGVlbFtdLCBvcmdSaXRkZWVsOiBSaXRkZWVsLCBuZXdSaXRkZWVsOiBSaXRkZWVsKTogdm9pZCB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCByaXRkZWxlbi5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAocml0ZGVsZW5baV0gPT09IG9yZ1JpdGRlZWwpIHtcbiAgICAgICAgICAgIHJpdGRlbGVuW2ldID0gbmV3Uml0ZGVlbDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5mdW5jdGlvbiBkZWxldGVSaXRkZWVsRnVuYyhyaXREZWxlbjogUml0ZGVlbFtdLCB7IHJpdERlZWwgfSk6IFJpdGRlZWxbXSB7XG4gICAgY29uc3QgaWR4ID0gcml0RGVsZW4uaW5kZXhPZihyaXREZWVsKTtcbiAgICBpZiAoaWR4ID49IDApIHtcbiAgICAgICAgcml0RGVsZW4uc3BsaWNlKGlkeCwgMSk7XG4gICAgfVxuICAgIHJldHVybiBbLi4ucml0RGVsZW5dO1xufVxuXG5mdW5jdGlvbiBkZWxldGVSaXRkZWVsQWN0aWVGdW5jKHJpdERlbGVuOiBSaXRkZWVsW10sIHsgcml0RGVlbCwgYWN0aWUgfSk6IFJpdGRlZWxbXSB7XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIHJpdERlbGVuKSB7XG4gICAgICAgIC8vIFdlIGdlYnJ1aWtlbiBlcXVhbHMgb21kYXQgaGV0IHdlbCBvZiBuaWV0IHppY2h0YmFhciB6aWpuIHZhbiBlZW4gcml0ZGVlbCBuaWV0IHJlbGV2YW50IGlzXG4gICAgICAgIGlmIChpdGVtLmVxdWFscyhyaXREZWVsKSkge1xuICAgICAgICAgICAgY29uc3QgYWN0aWVzID0gcml0RGVlbC5hY3RpZXM7XG4gICAgICAgICAgICBjb25zdCBhaWR4ID0gYWN0aWVzLmluZGV4T2YoYWN0aWUpO1xuICAgICAgICAgICAgYWN0aWVzLnNwbGljZShhaWR4LCAxKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBbLi4ucml0RGVsZW5dO1xufVxuXG5mdW5jdGlvbiBhZGRSaXRkZWVsQWN0aWVGdW5jKHJpdERlbGVuOiBSaXRkZWVsW10sIHsgcml0RGVlbCwgYWN0aWUgfSk6IFJpdGRlZWxbXSB7XG4gICAgcml0RGVlbC5hY3RpZXMucHVzaChhY3RpZSk7XG4gICAgcmV0dXJuIFsuLi5yaXREZWxlbl07XG59XG5cbiJdfQ==
|