@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,62 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { Resource, ResourceAction, ResourceModel, ResourceParams, ResourceRequestMethod } from '@ngx-resource/core';
|
|
4
|
+
import { Subscription } from 'rxjs';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@ngx-resource/core";
|
|
7
|
+
import * as i2 from "@ngrx/store";
|
|
8
|
+
let SignaleringsbeeldInfoResource = class SignaleringsbeeldInfoResource extends Resource {
|
|
9
|
+
constructor(restHandler, store) {
|
|
10
|
+
super(restHandler);
|
|
11
|
+
this.store = store;
|
|
12
|
+
this.subscriptions = new Subscription();
|
|
13
|
+
this.subscriptions.add(this.store.select('baseUrl').subscribe(baseUrl => this.$setUrl(baseUrl)));
|
|
14
|
+
}
|
|
15
|
+
ngOnDestroy() {
|
|
16
|
+
this.subscriptions.unsubscribe();
|
|
17
|
+
}
|
|
18
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SignaleringsbeeldInfoResource, deps: [{ token: i1.ResourceHandler }, { token: i2.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
19
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SignaleringsbeeldInfoResource }); }
|
|
20
|
+
};
|
|
21
|
+
__decorate([
|
|
22
|
+
ResourceAction({
|
|
23
|
+
path: '/',
|
|
24
|
+
method: ResourceRequestMethod.Post
|
|
25
|
+
})
|
|
26
|
+
], SignaleringsbeeldInfoResource.prototype, "laadSignaleringsbeeldInfo", void 0);
|
|
27
|
+
__decorate([
|
|
28
|
+
ResourceAction({
|
|
29
|
+
path: '/valideeriaversie'
|
|
30
|
+
})
|
|
31
|
+
], SignaleringsbeeldInfoResource.prototype, "getBestaatIALevering", void 0);
|
|
32
|
+
SignaleringsbeeldInfoResource = __decorate([
|
|
33
|
+
ResourceParams({
|
|
34
|
+
pathPrefix: '/mst/rest/signaleringsbeeldeninfo'
|
|
35
|
+
})
|
|
36
|
+
], SignaleringsbeeldInfoResource);
|
|
37
|
+
export { SignaleringsbeeldInfoResource };
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SignaleringsbeeldInfoResource, decorators: [{
|
|
39
|
+
type: Injectable
|
|
40
|
+
}], ctorParameters: () => [{ type: i1.ResourceHandler }, { type: i2.Store }], propDecorators: { laadSignaleringsbeeldInfo: [], getBestaatIALevering: [] } });
|
|
41
|
+
export class SignaleringsbeeldInfoDto extends ResourceModel {
|
|
42
|
+
constructor(data) {
|
|
43
|
+
super();
|
|
44
|
+
this.$resource = SignaleringsbeeldInfoResource;
|
|
45
|
+
this.$setData(data);
|
|
46
|
+
}
|
|
47
|
+
toJSON() {
|
|
48
|
+
return { bladnaam: this.bladNaam, pplgs: this.pplgs, metVisualisatie: this.metVisualisatie };
|
|
49
|
+
}
|
|
50
|
+
toString() {
|
|
51
|
+
return `${this.bladNaam}, ${this.pplgs}, ${this.metVisualisatie}`;
|
|
52
|
+
}
|
|
53
|
+
$setData(data) {
|
|
54
|
+
if (data) {
|
|
55
|
+
this.bladNaam = data.bladNaam;
|
|
56
|
+
this.pplgs = data.pplgs;
|
|
57
|
+
this.metVisualisatie = data.metVisualisatie;
|
|
58
|
+
}
|
|
59
|
+
return this;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsZXJpbmdzYmVlbGRpbmZvLnJlc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXN0LXZpZXdlci9zcmMvbGliL3Jlc291cmNlcy9zaWduYWxlcmluZ3NiZWVsZGluZm8ucmVzb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFdEQsT0FBTyxFQUVILFFBQVEsRUFDUixjQUFjLEVBRWQsYUFBYSxFQUNiLGNBQWMsRUFDZCxxQkFBcUIsRUFDeEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7O0FBUTdCLElBQU0sNkJBQTZCLEdBQW5DLE1BQU0sNkJBQThCLFNBQVEsUUFBUTtJQUd2RCxZQUFZLFdBQTRCLEVBQVUsS0FBNEI7UUFDMUUsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRDJCLFVBQUssR0FBTCxLQUFLLENBQXVCO1FBRnRFLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUl2QyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyRyxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckMsQ0FBQzs4R0FWUSw2QkFBNkI7a0hBQTdCLDZCQUE2Qjs7QUFnQnRDO0lBSkMsY0FBYyxDQUFDO1FBQ1osSUFBSSxFQUFFLEdBQUc7UUFDVCxNQUFNLEVBQUUscUJBQXFCLENBQUMsSUFBSTtLQUNyQyxDQUFDO2dGQUs4QjtBQUtoQztJQUhDLGNBQWMsQ0FBQztRQUNaLElBQUksRUFBRSxtQkFBbUI7S0FDNUIsQ0FBQzsyRUFDNEU7QUF6QnJFLDZCQUE2QjtJQUp6QyxjQUFjLENBQUM7UUFDWixVQUFVLEVBQUUsbUNBQW1DO0tBQ2xELENBQUM7R0FFVyw2QkFBNkIsQ0EyQnpDOzsyRkEzQlksNkJBQTZCO2tCQUx6QyxVQUFVO3dHQXFCUCx5QkFBeUIsTUFTekIsb0JBQW9CO0FBVXhCLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxhQUFhO0lBTXZELFlBQVksSUFBZ0M7UUFDeEMsS0FBSyxFQUFFLENBQUM7UUFOWixjQUFTLEdBQUcsNkJBQTZCLENBQUM7UUFPdEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsTUFBTTtRQUNGLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ2pHLENBQUM7SUFFRCxRQUFRO1FBQ0osT0FBTyxHQUFJLElBQUksQ0FBQyxRQUFTLEtBQU0sSUFBSSxDQUFDLEtBQU0sS0FBTSxJQUFJLENBQUMsZUFBZ0IsRUFBRSxDQUFDO0lBQzVFLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBK0I7UUFDcEMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNQLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUM5QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDeEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQ2hELENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0NBRUoiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgICBJUmVzb3VyY2VNZXRob2RPYnNlcnZhYmxlLFxuICAgIFJlc291cmNlLFxuICAgIFJlc291cmNlQWN0aW9uLFxuICAgIFJlc291cmNlSGFuZGxlcixcbiAgICBSZXNvdXJjZU1vZGVsLFxuICAgIFJlc291cmNlUGFyYW1zLFxuICAgIFJlc291cmNlUmVxdWVzdE1ldGhvZFxufSBmcm9tICdAbmd4LXJlc291cmNlL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNc3RFZGl0b3JTdGF0ZSB9IGZyb20gJy4uL3N0YXRlL21zdC1lZGl0b3Itc3RhdGUnO1xuXG5ASW5qZWN0YWJsZSgpXG5AUmVzb3VyY2VQYXJhbXMoe1xuICAgIHBhdGhQcmVmaXg6ICcvbXN0L3Jlc3Qvc2lnbmFsZXJpbmdzYmVlbGRlbmluZm8nXG59KVxuXG5leHBvcnQgY2xhc3MgU2lnbmFsZXJpbmdzYmVlbGRJbmZvUmVzb3VyY2UgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIE9uRGVzdHJveXtcbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICBjb25zdHJ1Y3RvcihyZXN0SGFuZGxlcjogUmVzb3VyY2VIYW5kbGVyLCBwcml2YXRlIHN0b3JlOiBTdG9yZTxNc3RFZGl0b3JTdGF0ZT4pIHtcbiAgICAgICAgc3VwZXIocmVzdEhhbmRsZXIpO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHRoaXMuc3RvcmUuc2VsZWN0KCdiYXNlVXJsJykuc3Vic2NyaWJlKGJhc2VVcmwgPT4gdGhpcy4kc2V0VXJsKGJhc2VVcmwpKSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIEBSZXNvdXJjZUFjdGlvbih7XG4gICAgICAgIHBhdGg6ICcvJyxcbiAgICAgICAgbWV0aG9kOiBSZXNvdXJjZVJlcXVlc3RNZXRob2QuUG9zdFxuICAgIH0pXG4gICAgbGFhZFNpZ25hbGVyaW5nc2JlZWxkSW5mbzogSVJlc291cmNlTWV0aG9kT2JzZXJ2YWJsZTx7XG4gICAgICAgIHBwbGdzOiBzdHJpbmdbXTtcbiAgICAgICAgdmVyc2llOiBzdHJpbmc7XG4gICAgICAgIGluZ2FuZ3NEYXR1bTogc3RyaW5nO1xuICAgIH0sIElTaWduYWxlcmluZ3NiZWVsZEluZm9EdG9bXT47XG5cbiAgICBAUmVzb3VyY2VBY3Rpb24oe1xuICAgICAgICBwYXRoOiAnL3ZhbGlkZWVyaWF2ZXJzaWUnXG4gICAgfSlcbiAgICBnZXRCZXN0YWF0SUFMZXZlcmluZzogSVJlc291cmNlTWV0aG9kT2JzZXJ2YWJsZTx7IHZlcnNpZTogc3RyaW5nIH0sIFJlc3BvbnNlPjtcblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTaWduYWxlcmluZ3NiZWVsZEluZm9EdG8ge1xuICAgIGJsYWROYWFtOiBzdHJpbmc7XG4gICAgcHBsZ3M6IHN0cmluZ1tdO1xuICAgIG1ldFZpc3VhbGlzYXRpZTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIFNpZ25hbGVyaW5nc2JlZWxkSW5mb0R0byBleHRlbmRzIFJlc291cmNlTW9kZWwgaW1wbGVtZW50cyBJU2lnbmFsZXJpbmdzYmVlbGRJbmZvRHRvIHtcbiAgICAkcmVzb3VyY2UgPSBTaWduYWxlcmluZ3NiZWVsZEluZm9SZXNvdXJjZTtcbiAgICBibGFkTmFhbTogc3RyaW5nO1xuICAgIHBwbGdzOiBzdHJpbmdbXTtcbiAgICBtZXRWaXN1YWxpc2F0aWU6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3RvcihkYXRhPzogSVNpZ25hbGVyaW5nc2JlZWxkSW5mb0R0bykge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLiRzZXREYXRhKGRhdGEpO1xuICAgIH1cblxuICAgIHRvSlNPTigpOiBhbnkge1xuICAgICAgICByZXR1cm4geyBibGFkbmFhbTogdGhpcy5ibGFkTmFhbSwgcHBsZ3M6IHRoaXMucHBsZ3MsIG1ldFZpc3VhbGlzYXRpZTogdGhpcy5tZXRWaXN1YWxpc2F0aWUgfTtcbiAgICB9XG5cbiAgICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7IHRoaXMuYmxhZE5hYW0gfSwgJHsgdGhpcy5wcGxncyB9LCAkeyB0aGlzLm1ldFZpc3VhbGlzYXRpZSB9YDtcbiAgICB9XG5cbiAgICAkc2V0RGF0YShkYXRhOiBJU2lnbmFsZXJpbmdzYmVlbGRJbmZvRHRvKTogdGhpcyB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICB0aGlzLmJsYWROYWFtID0gZGF0YS5ibGFkTmFhbTtcbiAgICAgICAgICAgIHRoaXMucHBsZ3MgPSBkYXRhLnBwbGdzO1xuICAgICAgICAgICAgdGhpcy5tZXRWaXN1YWxpc2F0aWUgPSBkYXRhLm1ldFZpc3VhbGlzYXRpZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { Subscription } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common/http";
|
|
5
|
+
import * as i2 from "@ngrx/store";
|
|
6
|
+
export class BaseRestService {
|
|
7
|
+
constructor(httpClient, store) {
|
|
8
|
+
this.httpClient = httpClient;
|
|
9
|
+
this.store = store;
|
|
10
|
+
this.subscriptions = new Subscription();
|
|
11
|
+
this.subscriptions.add(this.store.select('baseUrl').subscribe(baseUrl => this.baseUrl = baseUrl));
|
|
12
|
+
this.subscriptions.add(this.store.select('iaVersie').subscribe(iaVersie => this.iaVersie = iaVersie.versie));
|
|
13
|
+
}
|
|
14
|
+
ngOnDestroy() {
|
|
15
|
+
this.subscriptions.unsubscribe();
|
|
16
|
+
}
|
|
17
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BaseRestService, deps: [{ token: i1.HttpClient }, { token: i2.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
18
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BaseRestService, providedIn: 'root' }); }
|
|
19
|
+
}
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BaseRestService, decorators: [{
|
|
21
|
+
type: Injectable,
|
|
22
|
+
args: [{
|
|
23
|
+
providedIn: 'root'
|
|
24
|
+
}]
|
|
25
|
+
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.Store }] });
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1yZXN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tc3Qtdmlld2VyL3NyYy9saWIvc2VydmljZXMvYmFzZS1yZXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUV0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7O0FBTXBDLE1BQU0sT0FBTyxlQUFlO0lBTXhCLFlBQXNCLFVBQXNCLEVBQVksS0FBNEI7UUFBOUQsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFZLFVBQUssR0FBTCxLQUFLLENBQXVCO1FBSjVFLGtCQUFhLEdBQWlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFLckQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ2xHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDakgsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JDLENBQUM7OEdBYlEsZUFBZTtrSEFBZixlQUFlLGNBRlosTUFBTTs7MkZBRVQsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTXN0RWRpdG9yU3RhdGUgfSBmcm9tICcuLi9zdGF0ZS9tc3QtZWRpdG9yLXN0YXRlJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBCYXNlUmVzdFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gICAgcHJvdGVjdGVkIGJhc2VVcmw6IHN0cmluZztcbiAgICBwcm90ZWN0ZWQgaWFWZXJzaWU6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LCBwcm90ZWN0ZWQgc3RvcmU6IFN0b3JlPE1zdEVkaXRvclN0YXRlPikge1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHRoaXMuc3RvcmUuc2VsZWN0KCdiYXNlVXJsJykuc3Vic2NyaWJlKGJhc2VVcmwgPT4gdGhpcy5iYXNlVXJsID0gYmFzZVVybCkpO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHRoaXMuc3RvcmUuc2VsZWN0KCdpYVZlcnNpZScpLnN1YnNjcmliZShpYVZlcnNpZSA9PiB0aGlzLmlhVmVyc2llID0gaWFWZXJzaWUudmVyc2llKSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { ArrayMultimap } from '../util/multi-map';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "./editor.service";
|
|
5
|
+
export class BewegingUtils {
|
|
6
|
+
static { this.GEWIJZIGD = 'Gewijzigd'; }
|
|
7
|
+
static { this.TOEGEVOEGD = 'Toegevoegd'; }
|
|
8
|
+
static { this.NORMAAL = 'Normaal'; }
|
|
9
|
+
static { this.SEIN_TYPE_FICTIEF = 'FICTIEF'; }
|
|
10
|
+
static { this.SPOOR_NAAR_VRIJEBAAN_POSTFIX = '_e'; }
|
|
11
|
+
constructor(editorService) {
|
|
12
|
+
this.editorService = editorService;
|
|
13
|
+
}
|
|
14
|
+
extractBewegingenUitRitdelen(ritDelen, origineleBewegingen) {
|
|
15
|
+
const retval = [];
|
|
16
|
+
retval.length = ritDelen.length;
|
|
17
|
+
const origineleBewegingMap = this.bepaalOrigineleBewegingMap(origineleBewegingen);
|
|
18
|
+
let vorigeBeweging = null;
|
|
19
|
+
for (let i = 0; i < ritDelen.length; i++) {
|
|
20
|
+
const ritdeel = ritDelen[i];
|
|
21
|
+
if (ritdeel.beweging) {
|
|
22
|
+
retval[i] = ritdeel.beweging;
|
|
23
|
+
const nieuwDwangNummer = BewegingUtils.toRouteFileDwangNummer(ritdeel.getDwangNummer());
|
|
24
|
+
if (BewegingUtils.isGewijzigd(ritdeel, nieuwDwangNummer, origineleBewegingMap)) {
|
|
25
|
+
retval[i].wijzigStatus = BewegingUtils.GEWIJZIGD;
|
|
26
|
+
retval[i].dwangNummer = nieuwDwangNummer;
|
|
27
|
+
ritdeel.beweging.ritActies = ritdeel.acties;
|
|
28
|
+
BewegingUtils.removeKerenExtensie(retval[i]);
|
|
29
|
+
BewegingUtils.removeKerenExtensie(vorigeBeweging);
|
|
30
|
+
}
|
|
31
|
+
else if (i === ritDelen.length - 1 && BewegingUtils.bewegingenZijnGewijzigd(ritDelen, origineleBewegingen)) {
|
|
32
|
+
BewegingUtils.removeKerenExtensie(retval[i]);
|
|
33
|
+
}
|
|
34
|
+
else if (retval[i].wijzigStatus === BewegingUtils.TOEGEVOEGD) {
|
|
35
|
+
BewegingUtils.removeKerenExtensie(vorigeBeweging);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
retval[i] = this.maakBeweging(ritdeel);
|
|
40
|
+
}
|
|
41
|
+
retval[i].volgnummerBinnenRit = i + 1;
|
|
42
|
+
vorigeBeweging = ritdeel.beweging;
|
|
43
|
+
}
|
|
44
|
+
return retval;
|
|
45
|
+
}
|
|
46
|
+
static bewegingenZijnGewijzigd(ritDelen, origineleBewegingen) {
|
|
47
|
+
const ritDelenArray = ritDelen
|
|
48
|
+
.filter(r => r.beweging)
|
|
49
|
+
.map(r => r.beweging.id)
|
|
50
|
+
.sort((a, b) => a - b);
|
|
51
|
+
const bewegingenIdArray = origineleBewegingen.map(b => b.id).sort((a, b) => a - b);
|
|
52
|
+
return JSON.stringify(ritDelenArray) !== JSON.stringify(bewegingenIdArray);
|
|
53
|
+
}
|
|
54
|
+
static removeKerenExtensie(beweging) {
|
|
55
|
+
if (beweging && this.containsExtensie('_k', beweging.naarSpoor)) {
|
|
56
|
+
beweging.naarSpoor = beweging.naarSpoor.split('_k')[0];
|
|
57
|
+
beweging.wijzigStatus = this.GEWIJZIGD;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
static containsExtensie(match, stringToCheck) {
|
|
61
|
+
return stringToCheck.indexOf(match) !== -1;
|
|
62
|
+
}
|
|
63
|
+
static isGewijzigd(ritdeel, nieuwDwangNummer, origineleBewegingenMap) {
|
|
64
|
+
const dwangGewijzigd = ritdeel.beweging.dwangNummer !== nieuwDwangNummer;
|
|
65
|
+
let gewijzigd = false;
|
|
66
|
+
if (ritdeel.beweging.wijzigStatus === this.NORMAAL) {
|
|
67
|
+
const origineleBewegingActies = origineleBewegingenMap.get(ritdeel.beweging.id);
|
|
68
|
+
const huidigeActies = this.createSortedActieIdList(ritdeel.acties);
|
|
69
|
+
gewijzigd = JSON.stringify(huidigeActies) !== JSON.stringify(origineleBewegingActies);
|
|
70
|
+
}
|
|
71
|
+
return dwangGewijzigd || gewijzigd;
|
|
72
|
+
}
|
|
73
|
+
bepaalOrigineleBewegingMap(origineleBewegingen) {
|
|
74
|
+
const bewegingMap = new ArrayMultimap();
|
|
75
|
+
origineleBewegingen.forEach(b => {
|
|
76
|
+
const actieIds = BewegingUtils.createSortedActieIdList(b.ritActies);
|
|
77
|
+
bewegingMap.putAll(b.id, actieIds);
|
|
78
|
+
});
|
|
79
|
+
return bewegingMap;
|
|
80
|
+
}
|
|
81
|
+
static createSortedActieIdList(acties) {
|
|
82
|
+
return acties.map(actie => actie.id).sort((a, b) => a - b);
|
|
83
|
+
}
|
|
84
|
+
maakBeweging(newRitdeel) {
|
|
85
|
+
const eindSein = newRitdeel.getRoute().getEindSein();
|
|
86
|
+
let naarSeinNaam;
|
|
87
|
+
let naarSeinPplg;
|
|
88
|
+
let naarSpoor = newRitdeel.getNaarPrlSpoor();
|
|
89
|
+
if (eindSein.getTypeAlsString() === BewegingUtils.SEIN_TYPE_FICTIEF) {
|
|
90
|
+
if (newRitdeel.heeftVrijebaanInfo()) {
|
|
91
|
+
const vbEindSein = newRitdeel.getVrijebaanRijweg().getEindSein();
|
|
92
|
+
naarSeinNaam = vbEindSein.getName();
|
|
93
|
+
naarSeinPplg = vbEindSein.getPPLG();
|
|
94
|
+
naarSpoor += BewegingUtils.SPOOR_NAAR_VRIJEBAAN_POSTFIX;
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
const rijwegplan = this.editorService.getRijwegplan(newRitdeel.getPplg());
|
|
98
|
+
const rijwegAndereRichting = rijwegplan.getRijweg(newRitdeel.getVisueelNaarPrlSpoor(), newRitdeel.getVanPrlSpoor());
|
|
99
|
+
const startSeinInAndereRichting = rijwegAndereRichting.getBeginSein();
|
|
100
|
+
naarSeinNaam = startSeinInAndereRichting.getName();
|
|
101
|
+
naarSeinPplg = startSeinInAndereRichting.getPPLG();
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
naarSeinNaam = eindSein.getName();
|
|
106
|
+
naarSeinPplg = eindSein.getPPLG();
|
|
107
|
+
}
|
|
108
|
+
return BewegingUtils.vulBeweging(newRitdeel, naarSeinNaam, naarSeinPplg, naarSpoor);
|
|
109
|
+
}
|
|
110
|
+
static vulBeweging(newRitdeel, naarSeinNaam, naarSeinPplg, naarSpoor) {
|
|
111
|
+
return {
|
|
112
|
+
id: 0,
|
|
113
|
+
ritId: 0,
|
|
114
|
+
volgnummerBinnenRit: -1,
|
|
115
|
+
vanSeinType: 'BED_SEIN',
|
|
116
|
+
vanSeinNaam: newRitdeel.getRoute().getBeginSein().getName(),
|
|
117
|
+
vanSeinPplg: newRitdeel.getRoute().getBeginSein().getPPLG(),
|
|
118
|
+
naarSeinType: 'BED_SEIN',
|
|
119
|
+
naarSeinNaam,
|
|
120
|
+
naarSeinPplg,
|
|
121
|
+
dwangNummer: BewegingUtils.toRouteFileDwangNummer(newRitdeel.getDwangNummer()),
|
|
122
|
+
vanPplg: newRitdeel.getPplg(),
|
|
123
|
+
vanSpoor: newRitdeel.getVanPrlSpoor(),
|
|
124
|
+
naarPplg: newRitdeel.getPplg(),
|
|
125
|
+
naarSpoor,
|
|
126
|
+
ritActies: [],
|
|
127
|
+
wijzigStatus: this.TOEGEVOEGD
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
static toRouteFileDwangNummer(dwangNummer) {
|
|
131
|
+
return (dwangNummer === 0) ? -1 : dwangNummer;
|
|
132
|
+
}
|
|
133
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BewegingUtils, deps: [{ token: i1.EditorService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
134
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BewegingUtils }); }
|
|
135
|
+
}
|
|
136
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BewegingUtils, decorators: [{
|
|
137
|
+
type: Injectable
|
|
138
|
+
}], ctorParameters: () => [{ type: i1.EditorService }] });
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmV3ZWdpbmctdXRpbHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zdC12aWV3ZXIvc3JjL2xpYi9zZXJ2aWNlcy9iZXdlZ2luZy11dGlscy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFJbEQsTUFBTSxPQUFPLGFBQWE7YUFDTixjQUFTLEdBQUcsV0FBVyxBQUFkLENBQWU7YUFDeEIsZUFBVSxHQUFHLFlBQVksQUFBZixDQUFnQjthQUMxQixZQUFPLEdBQUcsU0FBUyxBQUFaLENBQWE7YUFDWixzQkFBaUIsR0FBRyxTQUFTLEFBQVosQ0FBYTthQUM5QixpQ0FBNEIsR0FBRyxJQUFJLEFBQVAsQ0FBUTtJQUU1RCxZQUE2QixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtJQUN6RCxDQUFDO0lBRU0sNEJBQTRCLENBQUMsUUFBbUIsRUFBRSxtQkFBK0I7UUFDcEYsTUFBTSxNQUFNLEdBQWUsRUFBRSxDQUFDO1FBQzlCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUVoQyxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRWxGLElBQUksY0FBYyxHQUFhLElBQUksQ0FBQztRQUNwQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1QixJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDbkIsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7Z0JBQzdCLE1BQU0sZ0JBQWdCLEdBQUcsYUFBYSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO2dCQUN4RixJQUFJLGFBQWEsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixDQUFDLEVBQUUsQ0FBQztvQkFDN0UsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDO29CQUNqRCxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxHQUFHLGdCQUFnQixDQUFDO29CQUN6QyxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO29CQUM1QyxhQUFhLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQzdDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDdEQsQ0FBQztxQkFBTSxJQUFJLENBQUMsS0FBSyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxhQUFhLENBQUMsdUJBQXVCLENBQUMsUUFBUSxFQUFFLG1CQUFtQixDQUFDLEVBQUUsQ0FBQztvQkFDM0csYUFBYSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNqRCxDQUFDO3FCQUFNLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksS0FBSyxhQUFhLENBQUMsVUFBVSxFQUFFLENBQUM7b0JBQzdELGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDdEQsQ0FBQztZQUNMLENBQUM7aUJBQU0sQ0FBQztnQkFDSixNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMzQyxDQUFDO1lBQ0QsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDdEMsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFTyxNQUFNLENBQUMsdUJBQXVCLENBQUMsUUFBbUIsRUFBRSxtQkFBK0I7UUFDdkYsTUFBTSxhQUFhLEdBQUcsUUFBUTthQUN6QixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO2FBQ3ZCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO2FBQ3ZCLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUUzQixNQUFNLGlCQUFpQixHQUFHLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbkYsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRU8sTUFBTSxDQUFDLG1CQUFtQixDQUFDLFFBQWtCO1FBQ2pELElBQUksUUFBUSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDOUQsUUFBUSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2RCxRQUFRLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDM0MsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsS0FBYSxFQUFFLGFBQXFCO1FBQ3hELE9BQU8sYUFBYSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxPQUFnQixFQUFFLGdCQUFnQixFQUFFLHNCQUFxRDtRQUNoSCxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsS0FBSyxnQkFBZ0IsQ0FBQztRQUN6RSxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVksS0FBSyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakQsTUFBTSx1QkFBdUIsR0FBRyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNoRixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ25FLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUMxRixDQUFDO1FBQ0QsT0FBTyxjQUFjLElBQUksU0FBUyxDQUFDO0lBQ3ZDLENBQUM7SUFFTywwQkFBMEIsQ0FBQyxtQkFBK0I7UUFDOUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxhQUFhLEVBQWtCLENBQUM7UUFDeEQsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzVCLE1BQU0sUUFBUSxHQUFHLGFBQWEsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDcEUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxXQUFXLENBQUM7SUFDdkIsQ0FBQztJQUVPLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxNQUFlO1FBQ2xELE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVNLFlBQVksQ0FBQyxVQUFtQjtRQUNuQyxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFckQsSUFBSSxZQUFZLENBQUM7UUFDakIsSUFBSSxZQUFZLENBQUM7UUFDakIsSUFBSSxTQUFTLEdBQUcsVUFBVSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzdDLElBQUksUUFBUSxDQUFDLGdCQUFnQixFQUFFLEtBQUssYUFBYSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDbEUsSUFBSSxVQUFVLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxDQUFDO2dCQUNsQyxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDakUsWUFBWSxHQUFHLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDcEMsWUFBWSxHQUFHLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDcEMsU0FBUyxJQUFJLGFBQWEsQ0FBQyw0QkFBNEIsQ0FBQztZQUM1RCxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7Z0JBQzFFLE1BQU0sb0JBQW9CLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsc0JBQXNCLEVBQUUsRUFBRSxVQUFVLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztnQkFDcEgsTUFBTSx5QkFBeUIsR0FBRyxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDdEUsWUFBWSxHQUFHLHlCQUF5QixDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNuRCxZQUFZLEdBQUcseUJBQXlCLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdkQsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ0osWUFBWSxHQUFHLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNsQyxZQUFZLEdBQUcsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3RDLENBQUM7UUFDRCxPQUFPLGFBQWEsQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVPLE1BQU0sQ0FBQyxXQUFXLENBQUMsVUFBbUIsRUFBRSxZQUFvQixFQUFFLFlBQW9CLEVBQUUsU0FBaUI7UUFDekcsT0FBTztZQUNILEVBQUUsRUFBRSxDQUFDO1lBQ0wsS0FBSyxFQUFFLENBQUM7WUFDUixtQkFBbUIsRUFBRSxDQUFDLENBQUM7WUFDdkIsV0FBVyxFQUFFLFVBQVU7WUFDdkIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxPQUFPLEVBQUU7WUFDM0QsV0FBVyxFQUFFLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxPQUFPLEVBQUU7WUFDM0QsWUFBWSxFQUFFLFVBQVU7WUFDeEIsWUFBWTtZQUNaLFlBQVk7WUFDWixXQUFXLEVBQUUsYUFBYSxDQUFDLHNCQUFzQixDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUM5RSxPQUFPLEVBQUUsVUFBVSxDQUFDLE9BQU8sRUFBRTtZQUM3QixRQUFRLEVBQUUsVUFBVSxDQUFDLGNBQWMsRUFBRTtZQUNyQyxRQUFRLEVBQUUsVUFBVSxDQUFDLE9BQU8sRUFBRTtZQUM5QixTQUFTO1lBQ1QsU0FBUyxFQUFFLEVBQUU7WUFDYixZQUFZLEVBQUUsSUFBSSxDQUFDLFVBQVU7U0FDaEMsQ0FBQztJQUNOLENBQUM7SUFFTyxNQUFNLENBQUMsc0JBQXNCLENBQUMsV0FBbUI7UUFDckQsT0FBTyxDQUFDLFdBQVcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUNsRCxDQUFDOzhHQXhJUSxhQUFhO2tIQUFiLGFBQWE7OzJGQUFiLGFBQWE7a0JBRHpCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSaXRkZWVsIH0gZnJvbSAnLi4vbW9kZWwvcml0ZGVlbCc7XG5pbXBvcnQgeyBBY3RpZSwgQmV3ZWdpbmcgfSBmcm9tICcuLi9vcHRpbW8nO1xuaW1wb3J0IHsgQXJyYXlNdWx0aW1hcCB9IGZyb20gJy4uL3V0aWwvbXVsdGktbWFwJztcbmltcG9ydCB7IEVkaXRvclNlcnZpY2UgfSBmcm9tICcuL2VkaXRvci5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEJld2VnaW5nVXRpbHMge1xuICAgIHN0YXRpYyByZWFkb25seSBHRVdJSlpJR0QgPSAnR2V3aWp6aWdkJztcbiAgICBzdGF0aWMgcmVhZG9ubHkgVE9FR0VWT0VHRCA9ICdUb2VnZXZvZWdkJztcbiAgICBzdGF0aWMgcmVhZG9ubHkgTk9STUFBTCA9ICdOb3JtYWFsJztcbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBTRUlOX1RZUEVfRklDVElFRiA9ICdGSUNUSUVGJztcbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBTUE9PUl9OQUFSX1ZSSUpFQkFBTl9QT1NURklYID0gJ19lJztcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZWRpdG9yU2VydmljZTogRWRpdG9yU2VydmljZSkge1xuICAgIH1cblxuICAgIHB1YmxpYyBleHRyYWN0QmV3ZWdpbmdlblVpdFJpdGRlbGVuKHJpdERlbGVuOiBSaXRkZWVsW10sIG9yaWdpbmVsZUJld2VnaW5nZW46IEJld2VnaW5nW10pOiBCZXdlZ2luZ1tdIHtcbiAgICAgICAgY29uc3QgcmV0dmFsOiBCZXdlZ2luZ1tdID0gW107XG4gICAgICAgIHJldHZhbC5sZW5ndGggPSByaXREZWxlbi5sZW5ndGg7XG5cbiAgICAgICAgY29uc3Qgb3JpZ2luZWxlQmV3ZWdpbmdNYXAgPSB0aGlzLmJlcGFhbE9yaWdpbmVsZUJld2VnaW5nTWFwKG9yaWdpbmVsZUJld2VnaW5nZW4pO1xuXG4gICAgICAgIGxldCB2b3JpZ2VCZXdlZ2luZzogQmV3ZWdpbmcgPSBudWxsO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJpdERlbGVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCByaXRkZWVsID0gcml0RGVsZW5baV07XG4gICAgICAgICAgICBpZiAocml0ZGVlbC5iZXdlZ2luZykge1xuICAgICAgICAgICAgICAgIHJldHZhbFtpXSA9IHJpdGRlZWwuYmV3ZWdpbmc7XG4gICAgICAgICAgICAgICAgY29uc3QgbmlldXdEd2FuZ051bW1lciA9IEJld2VnaW5nVXRpbHMudG9Sb3V0ZUZpbGVEd2FuZ051bW1lcihyaXRkZWVsLmdldER3YW5nTnVtbWVyKCkpO1xuICAgICAgICAgICAgICAgIGlmIChCZXdlZ2luZ1V0aWxzLmlzR2V3aWp6aWdkKHJpdGRlZWwsIG5pZXV3RHdhbmdOdW1tZXIsIG9yaWdpbmVsZUJld2VnaW5nTWFwKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR2YWxbaV0ud2lqemlnU3RhdHVzID0gQmV3ZWdpbmdVdGlscy5HRVdJSlpJR0Q7XG4gICAgICAgICAgICAgICAgICAgIHJldHZhbFtpXS5kd2FuZ051bW1lciA9IG5pZXV3RHdhbmdOdW1tZXI7XG4gICAgICAgICAgICAgICAgICAgIHJpdGRlZWwuYmV3ZWdpbmcucml0QWN0aWVzID0gcml0ZGVlbC5hY3RpZXM7XG4gICAgICAgICAgICAgICAgICAgIEJld2VnaW5nVXRpbHMucmVtb3ZlS2VyZW5FeHRlbnNpZShyZXR2YWxbaV0pO1xuICAgICAgICAgICAgICAgICAgICBCZXdlZ2luZ1V0aWxzLnJlbW92ZUtlcmVuRXh0ZW5zaWUodm9yaWdlQmV3ZWdpbmcpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaSA9PT0gcml0RGVsZW4ubGVuZ3RoIC0gMSAmJiBCZXdlZ2luZ1V0aWxzLmJld2VnaW5nZW5aaWpuR2V3aWp6aWdkKHJpdERlbGVuLCBvcmlnaW5lbGVCZXdlZ2luZ2VuKSkge1xuICAgICAgICAgICAgICAgICAgICBCZXdlZ2luZ1V0aWxzLnJlbW92ZUtlcmVuRXh0ZW5zaWUocmV0dmFsW2ldKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJldHZhbFtpXS53aWp6aWdTdGF0dXMgPT09IEJld2VnaW5nVXRpbHMuVE9FR0VWT0VHRCkge1xuICAgICAgICAgICAgICAgICAgICBCZXdlZ2luZ1V0aWxzLnJlbW92ZUtlcmVuRXh0ZW5zaWUodm9yaWdlQmV3ZWdpbmcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dmFsW2ldID0gdGhpcy5tYWFrQmV3ZWdpbmcocml0ZGVlbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR2YWxbaV0udm9sZ251bW1lckJpbm5lblJpdCA9IGkgKyAxO1xuICAgICAgICAgICAgdm9yaWdlQmV3ZWdpbmcgPSByaXRkZWVsLmJld2VnaW5nO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXR2YWw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgYmV3ZWdpbmdlblppam5HZXdpanppZ2Qocml0RGVsZW46IFJpdGRlZWxbXSwgb3JpZ2luZWxlQmV3ZWdpbmdlbjogQmV3ZWdpbmdbXSk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCByaXREZWxlbkFycmF5ID0gcml0RGVsZW5cbiAgICAgICAgICAgIC5maWx0ZXIociA9PiByLmJld2VnaW5nKVxuICAgICAgICAgICAgLm1hcChyID0+IHIuYmV3ZWdpbmcuaWQpXG4gICAgICAgICAgICAuc29ydCgoYSwgYikgPT4gYSAtIGIpO1xuXG4gICAgICAgIGNvbnN0IGJld2VnaW5nZW5JZEFycmF5ID0gb3JpZ2luZWxlQmV3ZWdpbmdlbi5tYXAoYiA9PiBiLmlkKS5zb3J0KChhLCBiKSA9PiBhIC0gYik7XG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShyaXREZWxlbkFycmF5KSAhPT0gSlNPTi5zdHJpbmdpZnkoYmV3ZWdpbmdlbklkQXJyYXkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIHJlbW92ZUtlcmVuRXh0ZW5zaWUoYmV3ZWdpbmc6IEJld2VnaW5nKTogdm9pZCB7XG4gICAgICAgIGlmIChiZXdlZ2luZyAmJiB0aGlzLmNvbnRhaW5zRXh0ZW5zaWUoJ19rJywgYmV3ZWdpbmcubmFhclNwb29yKSkge1xuICAgICAgICAgICAgYmV3ZWdpbmcubmFhclNwb29yID0gYmV3ZWdpbmcubmFhclNwb29yLnNwbGl0KCdfaycpWzBdO1xuICAgICAgICAgICAgYmV3ZWdpbmcud2lqemlnU3RhdHVzID0gdGhpcy5HRVdJSlpJR0Q7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdGF0aWMgY29udGFpbnNFeHRlbnNpZShtYXRjaDogc3RyaW5nLCBzdHJpbmdUb0NoZWNrOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHN0cmluZ1RvQ2hlY2suaW5kZXhPZihtYXRjaCkgIT09IC0xO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGlzR2V3aWp6aWdkKHJpdGRlZWw6IFJpdGRlZWwsIG5pZXV3RHdhbmdOdW1tZXIsIG9yaWdpbmVsZUJld2VnaW5nZW5NYXA6IEFycmF5TXVsdGltYXA8bnVtYmVyLCBudW1iZXI+KTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGR3YW5nR2V3aWp6aWdkID0gcml0ZGVlbC5iZXdlZ2luZy5kd2FuZ051bW1lciAhPT0gbmlldXdEd2FuZ051bW1lcjtcbiAgICAgICAgbGV0IGdld2lqemlnZCA9IGZhbHNlO1xuICAgICAgICBpZiAocml0ZGVlbC5iZXdlZ2luZy53aWp6aWdTdGF0dXMgPT09IHRoaXMuTk9STUFBTCkge1xuICAgICAgICAgICAgY29uc3Qgb3JpZ2luZWxlQmV3ZWdpbmdBY3RpZXMgPSBvcmlnaW5lbGVCZXdlZ2luZ2VuTWFwLmdldChyaXRkZWVsLmJld2VnaW5nLmlkKTtcbiAgICAgICAgICAgIGNvbnN0IGh1aWRpZ2VBY3RpZXMgPSB0aGlzLmNyZWF0ZVNvcnRlZEFjdGllSWRMaXN0KHJpdGRlZWwuYWN0aWVzKTtcbiAgICAgICAgICAgIGdld2lqemlnZCA9IEpTT04uc3RyaW5naWZ5KGh1aWRpZ2VBY3RpZXMpICE9PSBKU09OLnN0cmluZ2lmeShvcmlnaW5lbGVCZXdlZ2luZ0FjdGllcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGR3YW5nR2V3aWp6aWdkIHx8IGdld2lqemlnZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGJlcGFhbE9yaWdpbmVsZUJld2VnaW5nTWFwKG9yaWdpbmVsZUJld2VnaW5nZW46IEJld2VnaW5nW10pOiBBcnJheU11bHRpbWFwPG51bWJlciwgbnVtYmVyPiB7XG4gICAgICAgIGNvbnN0IGJld2VnaW5nTWFwID0gbmV3IEFycmF5TXVsdGltYXA8bnVtYmVyLCBudW1iZXI+KCk7XG4gICAgICAgIG9yaWdpbmVsZUJld2VnaW5nZW4uZm9yRWFjaChiID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFjdGllSWRzID0gQmV3ZWdpbmdVdGlscy5jcmVhdGVTb3J0ZWRBY3RpZUlkTGlzdChiLnJpdEFjdGllcyk7XG4gICAgICAgICAgICBiZXdlZ2luZ01hcC5wdXRBbGwoYi5pZCwgYWN0aWVJZHMpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGJld2VnaW5nTWFwO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGNyZWF0ZVNvcnRlZEFjdGllSWRMaXN0KGFjdGllczogQWN0aWVbXSk6IG51bWJlcltdIHtcbiAgICAgICAgcmV0dXJuIGFjdGllcy5tYXAoYWN0aWUgPT4gYWN0aWUuaWQpLnNvcnQoKGEsIGIpID0+IGEgLSBiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbWFha0Jld2VnaW5nKG5ld1JpdGRlZWw6IFJpdGRlZWwpOiBCZXdlZ2luZyB7XG4gICAgICAgIGNvbnN0IGVpbmRTZWluID0gbmV3Uml0ZGVlbC5nZXRSb3V0ZSgpLmdldEVpbmRTZWluKCk7XG5cbiAgICAgICAgbGV0IG5hYXJTZWluTmFhbTtcbiAgICAgICAgbGV0IG5hYXJTZWluUHBsZztcbiAgICAgICAgbGV0IG5hYXJTcG9vciA9IG5ld1JpdGRlZWwuZ2V0TmFhclBybFNwb29yKCk7XG4gICAgICAgIGlmIChlaW5kU2Vpbi5nZXRUeXBlQWxzU3RyaW5nKCkgPT09IEJld2VnaW5nVXRpbHMuU0VJTl9UWVBFX0ZJQ1RJRUYpIHtcbiAgICAgICAgICAgIGlmIChuZXdSaXRkZWVsLmhlZWZ0VnJpamViYWFuSW5mbygpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmJFaW5kU2VpbiA9IG5ld1JpdGRlZWwuZ2V0VnJpamViYWFuUmlqd2VnKCkuZ2V0RWluZFNlaW4oKTtcbiAgICAgICAgICAgICAgICBuYWFyU2Vpbk5hYW0gPSB2YkVpbmRTZWluLmdldE5hbWUoKTtcbiAgICAgICAgICAgICAgICBuYWFyU2VpblBwbGcgPSB2YkVpbmRTZWluLmdldFBQTEcoKTtcbiAgICAgICAgICAgICAgICBuYWFyU3Bvb3IgKz0gQmV3ZWdpbmdVdGlscy5TUE9PUl9OQUFSX1ZSSUpFQkFBTl9QT1NURklYO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCByaWp3ZWdwbGFuID0gdGhpcy5lZGl0b3JTZXJ2aWNlLmdldFJpandlZ3BsYW4obmV3Uml0ZGVlbC5nZXRQcGxnKCkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJpandlZ0FuZGVyZVJpY2h0aW5nID0gcmlqd2VncGxhbi5nZXRSaWp3ZWcobmV3Uml0ZGVlbC5nZXRWaXN1ZWVsTmFhclBybFNwb29yKCksIG5ld1JpdGRlZWwuZ2V0VmFuUHJsU3Bvb3IoKSk7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhcnRTZWluSW5BbmRlcmVSaWNodGluZyA9IHJpandlZ0FuZGVyZVJpY2h0aW5nLmdldEJlZ2luU2VpbigpO1xuICAgICAgICAgICAgICAgIG5hYXJTZWluTmFhbSA9IHN0YXJ0U2VpbkluQW5kZXJlUmljaHRpbmcuZ2V0TmFtZSgpO1xuICAgICAgICAgICAgICAgIG5hYXJTZWluUHBsZyA9IHN0YXJ0U2VpbkluQW5kZXJlUmljaHRpbmcuZ2V0UFBMRygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmFhclNlaW5OYWFtID0gZWluZFNlaW4uZ2V0TmFtZSgpO1xuICAgICAgICAgICAgbmFhclNlaW5QcGxnID0gZWluZFNlaW4uZ2V0UFBMRygpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBCZXdlZ2luZ1V0aWxzLnZ1bEJld2VnaW5nKG5ld1JpdGRlZWwsIG5hYXJTZWluTmFhbSwgbmFhclNlaW5QcGxnLCBuYWFyU3Bvb3IpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIHZ1bEJld2VnaW5nKG5ld1JpdGRlZWw6IFJpdGRlZWwsIG5hYXJTZWluTmFhbTogc3RyaW5nLCBuYWFyU2VpblBwbGc6IHN0cmluZywgbmFhclNwb29yOiBzdHJpbmcpOiBCZXdlZ2luZyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZDogMCxcbiAgICAgICAgICAgIHJpdElkOiAwLFxuICAgICAgICAgICAgdm9sZ251bW1lckJpbm5lblJpdDogLTEsXG4gICAgICAgICAgICB2YW5TZWluVHlwZTogJ0JFRF9TRUlOJyxcbiAgICAgICAgICAgIHZhblNlaW5OYWFtOiBuZXdSaXRkZWVsLmdldFJvdXRlKCkuZ2V0QmVnaW5TZWluKCkuZ2V0TmFtZSgpLFxuICAgICAgICAgICAgdmFuU2VpblBwbGc6IG5ld1JpdGRlZWwuZ2V0Um91dGUoKS5nZXRCZWdpblNlaW4oKS5nZXRQUExHKCksXG4gICAgICAgICAgICBuYWFyU2VpblR5cGU6ICdCRURfU0VJTicsXG4gICAgICAgICAgICBuYWFyU2Vpbk5hYW0sXG4gICAgICAgICAgICBuYWFyU2VpblBwbGcsXG4gICAgICAgICAgICBkd2FuZ051bW1lcjogQmV3ZWdpbmdVdGlscy50b1JvdXRlRmlsZUR3YW5nTnVtbWVyKG5ld1JpdGRlZWwuZ2V0RHdhbmdOdW1tZXIoKSksXG4gICAgICAgICAgICB2YW5QcGxnOiBuZXdSaXRkZWVsLmdldFBwbGcoKSxcbiAgICAgICAgICAgIHZhblNwb29yOiBuZXdSaXRkZWVsLmdldFZhblBybFNwb29yKCksXG4gICAgICAgICAgICBuYWFyUHBsZzogbmV3Uml0ZGVlbC5nZXRQcGxnKCksXG4gICAgICAgICAgICBuYWFyU3Bvb3IsXG4gICAgICAgICAgICByaXRBY3RpZXM6IFtdLFxuICAgICAgICAgICAgd2lqemlnU3RhdHVzOiB0aGlzLlRPRUdFVk9FR0RcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyB0b1JvdXRlRmlsZUR3YW5nTnVtbWVyKGR3YW5nTnVtbWVyOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gKGR3YW5nTnVtbWVyID09PSAwKSA/IC0xIDogZHdhbmdOdW1tZXI7XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { HttpHeaders } from '@angular/common/http';
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { catchError } from 'rxjs/operators';
|
|
4
|
+
import { ClearProgress } from '../state/actions/actions';
|
|
5
|
+
import { BaseRestService } from './base-rest.service';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class BewegingVerrijkerService extends BaseRestService {
|
|
8
|
+
getBewegingen(bewegingen, ongeplandeActies) {
|
|
9
|
+
return this.httpClient.put(this.getUrl(this.iaVersie), { bewegingen, ongeplandeActies }, { headers: new HttpHeaders().set('Accept', 'application/json').append('Content-Type', 'application/json') })
|
|
10
|
+
.pipe(catchError((err, _caught) => this.errorHandler(err)));
|
|
11
|
+
}
|
|
12
|
+
getUrl(iaVersie) {
|
|
13
|
+
return `${this.baseUrl}/mst/rest/beweging/${iaVersie}`;
|
|
14
|
+
}
|
|
15
|
+
errorHandler(error) {
|
|
16
|
+
// eslint-disable-next-line no-console
|
|
17
|
+
console.log('error bij verrijken', error);
|
|
18
|
+
this.store.dispatch(ClearProgress());
|
|
19
|
+
return [];
|
|
20
|
+
}
|
|
21
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BewegingVerrijkerService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
22
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BewegingVerrijkerService, providedIn: 'root' }); }
|
|
23
|
+
}
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BewegingVerrijkerService, decorators: [{
|
|
25
|
+
type: Injectable,
|
|
26
|
+
args: [{
|
|
27
|
+
providedIn: 'root'
|
|
28
|
+
}]
|
|
29
|
+
}] });
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmV3ZWdpbmctdmVycmlqa2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tc3Qtdmlld2VyL3NyYy9saWIvc2VydmljZXMvYmV3ZWdpbmctdmVycmlqa2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBS3RELE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxlQUFlO0lBRWxELGFBQWEsQ0FBQyxVQUFzQixFQUFFLGdCQUF5QjtRQUNsRSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFDMUIsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsRUFDaEMsRUFBRSxPQUFPLEVBQUUsSUFBSSxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLGtCQUFrQixDQUFDLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxrQkFBa0IsQ0FBQyxFQUFFLENBQUM7YUFDcEcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFTyxNQUFNLENBQUMsUUFBZ0I7UUFDM0IsT0FBTyxHQUFJLElBQUksQ0FBQyxPQUFRLHNCQUF1QixRQUFTLEVBQUUsQ0FBQztJQUMvRCxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQVU7UUFDbkIsc0NBQXNDO1FBQ3RDLE9BQU8sQ0FBQyxHQUFHLENBQUMscUJBQXFCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUNyQyxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7OEdBbkJRLHdCQUF3QjtrSEFBeEIsd0JBQXdCLGNBRnJCLE1BQU07OzJGQUVULHdCQUF3QjtrQkFIcEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBY3RpZSwgQmV3ZWdpbmcgfSBmcm9tICcuLi9vcHRpbW8nO1xuaW1wb3J0IHsgQ2xlYXJQcm9ncmVzcyB9IGZyb20gJy4uL3N0YXRlL2FjdGlvbnMvYWN0aW9ucyc7XG5pbXBvcnQgeyBCYXNlUmVzdFNlcnZpY2UgfSBmcm9tICcuL2Jhc2UtcmVzdC5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBCZXdlZ2luZ1ZlcnJpamtlclNlcnZpY2UgZXh0ZW5kcyBCYXNlUmVzdFNlcnZpY2Uge1xuXG4gICAgcHVibGljIGdldEJld2VnaW5nZW4oYmV3ZWdpbmdlbjogQmV3ZWdpbmdbXSwgb25nZXBsYW5kZUFjdGllczogQWN0aWVbXSk6IE9ic2VydmFibGU8QmV3ZWdpbmdbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnB1dDxCZXdlZ2luZ1tdPihcbiAgICAgICAgICAgIHRoaXMuZ2V0VXJsKHRoaXMuaWFWZXJzaWUpLFxuICAgICAgICAgICAgeyBiZXdlZ2luZ2VuLCBvbmdlcGxhbmRlQWN0aWVzIH0sXG4gICAgICAgICAgICB7IGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycygpLnNldCgnQWNjZXB0JywgJ2FwcGxpY2F0aW9uL2pzb24nKS5hcHBlbmQoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJykgfSlcbiAgICAgICAgICAgICAgICAgICAucGlwZShjYXRjaEVycm9yKChlcnIsIF9jYXVnaHQpID0+IHRoaXMuZXJyb3JIYW5kbGVyKGVycikpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFVybChpYVZlcnNpZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAkeyB0aGlzLmJhc2VVcmwgfS9tc3QvcmVzdC9iZXdlZ2luZy8keyBpYVZlcnNpZSB9YDtcbiAgICB9XG5cbiAgICBlcnJvckhhbmRsZXIoZXJyb3I6IGFueSk6IFtdIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgY29uc29sZS5sb2coJ2Vycm9yIGJpaiB2ZXJyaWprZW4nLCBlcnJvcik7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ2xlYXJQcm9ncmVzcygpKTtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { catchError } from 'rxjs/operators';
|
|
3
|
+
import { ClearProgress } from '../state/actions/actions';
|
|
4
|
+
import { BaseRestService } from './base-rest.service';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class ConnectorService extends BaseRestService {
|
|
7
|
+
getOtherRand(puic) {
|
|
8
|
+
return this.httpClient.get(this.getUrl(this.iaVersie, puic))
|
|
9
|
+
.pipe(catchError((err, _caught) => this.handleResult(err)));
|
|
10
|
+
}
|
|
11
|
+
getUrl(iaVersie, puic) {
|
|
12
|
+
return `${this.baseUrl}/mst/rest/connector/${iaVersie}/${puic}`;
|
|
13
|
+
}
|
|
14
|
+
handleResult(res) {
|
|
15
|
+
if (res.error) {
|
|
16
|
+
console.log('error bij ophalen connector-info', res.error);
|
|
17
|
+
}
|
|
18
|
+
this.store.dispatch(ClearProgress());
|
|
19
|
+
return [];
|
|
20
|
+
}
|
|
21
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ConnectorService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
22
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ConnectorService, providedIn: 'root' }); }
|
|
23
|
+
}
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ConnectorService, decorators: [{
|
|
25
|
+
type: Injectable,
|
|
26
|
+
args: [{
|
|
27
|
+
providedIn: 'root'
|
|
28
|
+
}]
|
|
29
|
+
}] });
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tc3Qtdmlld2VyL3NyYy9saWIvc2VydmljZXMvY29ubmVjdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFLdEQsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGVBQWU7SUFFMUMsWUFBWSxDQUFDLElBQVk7UUFDNUIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO2FBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRU8sTUFBTSxDQUFDLFFBQWdCLEVBQUUsSUFBWTtRQUN6QyxPQUFPLEdBQUksSUFBSSxDQUFDLE9BQVEsdUJBQXVCLFFBQVEsSUFBSyxJQUFLLEVBQUUsQ0FBQztJQUN4RSxDQUFDO0lBRUQsWUFBWSxDQUFDLEdBQVE7UUFDakIsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDWixPQUFPLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUNyQyxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7OEdBbEJRLGdCQUFnQjtrSEFBaEIsZ0JBQWdCLGNBRmIsTUFBTTs7MkZBRVQsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDbGVhclByb2dyZXNzIH0gZnJvbSAnLi4vc3RhdGUvYWN0aW9ucy9hY3Rpb25zJztcbmltcG9ydCB7IEJhc2VSZXN0U2VydmljZSB9IGZyb20gJy4vYmFzZS1yZXN0LnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIENvbm5lY3RvclNlcnZpY2UgZXh0ZW5kcyBCYXNlUmVzdFNlcnZpY2Uge1xuXG4gICAgcHVibGljIGdldE90aGVyUmFuZChwdWljOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldDxzdHJpbmc+KFxuICAgICAgICAgICAgdGhpcy5nZXRVcmwodGhpcy5pYVZlcnNpZSwgcHVpYykpXG4gICAgICAgICAgICAgICAgICAgLnBpcGUoY2F0Y2hFcnJvcigoZXJyLCBfY2F1Z2h0KSA9PiB0aGlzLmhhbmRsZVJlc3VsdChlcnIpKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRVcmwoaWFWZXJzaWU6IHN0cmluZywgcHVpYzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAkeyB0aGlzLmJhc2VVcmwgfS9tc3QvcmVzdC9jb25uZWN0b3IvJHtpYVZlcnNpZX0vJHsgcHVpYyB9YDtcbiAgICB9XG5cbiAgICBoYW5kbGVSZXN1bHQocmVzOiBhbnkpOiBbXSB7XG4gICAgICAgIGlmIChyZXMuZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdlcnJvciBiaWogb3BoYWxlbiBjb25uZWN0b3ItaW5mbycsIHJlcy5lcnJvcik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDbGVhclByb2dyZXNzKCkpO1xuICAgICAgICByZXR1cm4gW107XG4gICAgfVxufVxuXG4iXX0=
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { JsJavaUtil } from '@loxia/rijwegen';
|
|
3
|
+
import { SetDebug } from '../state/actions/actions';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@ngrx/store";
|
|
6
|
+
import * as i2 from "./signalerings-beeld-manager.service";
|
|
7
|
+
export class DebugService {
|
|
8
|
+
constructor(store, sbmService) {
|
|
9
|
+
this.store = store;
|
|
10
|
+
this.sbmService = sbmService;
|
|
11
|
+
this.listener = this.debugEventListener();
|
|
12
|
+
}
|
|
13
|
+
setDebugFlag(debug) {
|
|
14
|
+
this.store.dispatch(SetDebug(debug));
|
|
15
|
+
if (debug) {
|
|
16
|
+
document.getElementById('svgContainer').addEventListener('mouseover', this.listener);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
document.getElementById('svgContainer').removeEventListener('mouseover', this.listener);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
debugEventListener() {
|
|
23
|
+
return (event) => {
|
|
24
|
+
let elem = event.target;
|
|
25
|
+
let id;
|
|
26
|
+
let found = false;
|
|
27
|
+
do {
|
|
28
|
+
id = elem.id;
|
|
29
|
+
if (id.startsWith('p')) {
|
|
30
|
+
const tp = this.sbmService.getTopologyElementByPuic(id.substring(1));
|
|
31
|
+
if (tp) {
|
|
32
|
+
this.printKmInfo(tp);
|
|
33
|
+
found = true;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
elem = elem.parentElement;
|
|
37
|
+
} while (!found && elem);
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
printKmInfo(tp) {
|
|
41
|
+
const kms = JsJavaUtil.listToArray(tp.getKilometreringen());
|
|
42
|
+
if (kms.length > 0) {
|
|
43
|
+
let logline = 'Kminfo: ' + tp.getComponentName() + ', ';
|
|
44
|
+
for (const km of kms) {
|
|
45
|
+
logline += km.getKmLint() + ' ' + km.getKmWaarde() + ' ';
|
|
46
|
+
}
|
|
47
|
+
console.log(logline);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DebugService, deps: [{ token: i1.Store }, { token: i2.SignaleringsBeeldManagerService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
51
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DebugService, providedIn: 'root' }); }
|
|
52
|
+
}
|
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DebugService, decorators: [{
|
|
54
|
+
type: Injectable,
|
|
55
|
+
args: [{
|
|
56
|
+
providedIn: 'root'
|
|
57
|
+
}]
|
|
58
|
+
}], ctorParameters: () => [{ type: i1.Store }, { type: i2.SignaleringsBeeldManagerService }] });
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zdC12aWV3ZXIvc3JjL2xpYi9zZXJ2aWNlcy9kZWJ1Zy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBRXJELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQU9wRCxNQUFNLE9BQU8sWUFBWTtJQUdyQixZQUFvQixLQUE0QixFQUM1QixVQUEyQztRQUQzQyxVQUFLLEdBQUwsS0FBSyxDQUF1QjtRQUM1QixlQUFVLEdBQVYsVUFBVSxDQUFpQztRQUg5QyxhQUFRLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFJdEQsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFjO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBRXJDLElBQUksS0FBSyxFQUFFLENBQUM7WUFDUixRQUFRLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekYsQ0FBQzthQUFNLENBQUM7WUFDSixRQUFRLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUYsQ0FBQztJQUNMLENBQUM7SUFFTyxrQkFBa0I7UUFDdEIsT0FBTyxDQUFDLEtBQUssRUFBUSxFQUFFO1lBQ25CLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDeEIsSUFBSSxFQUFVLENBQUM7WUFDZixJQUFJLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDbEIsR0FBRyxDQUFDO2dCQUNBLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNiLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUNyQixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLHdCQUF3QixDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDckUsSUFBSSxFQUFFLEVBQUUsQ0FBQzt3QkFDTCxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO3dCQUNyQixLQUFLLEdBQUcsSUFBSSxDQUFDO29CQUNqQixDQUFDO2dCQUNMLENBQUM7Z0JBQ0QsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDOUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRTtRQUM3QixDQUFDLENBQUM7SUFDTixDQUFDO0lBRU8sV0FBVyxDQUFDLEVBQTBCO1FBQzFDLE1BQU0sR0FBRyxHQUEyQixVQUFVLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUM7UUFDcEYsSUFBSSxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2pCLElBQUksT0FBTyxHQUFHLFVBQVUsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxJQUFJLENBQUM7WUFDeEQsS0FBSyxNQUFNLEVBQUUsSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDbkIsT0FBTyxJQUFJLEVBQUUsQ0FBQyxTQUFTLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDLFdBQVcsRUFBRSxHQUFHLEdBQUcsQ0FBQztZQUM3RCxDQUFDO1lBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6QixDQUFDO0lBQ0wsQ0FBQzs4R0E3Q1EsWUFBWTtrSEFBWixZQUFZLGNBRlQsTUFBTTs7MkZBRVQsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBKc0phdmFVdGlsLCBzYmJsYWQgfSBmcm9tICdAbG94aWEvcmlqd2VnZW4nO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBTZXREZWJ1ZyB9IGZyb20gJy4uL3N0YXRlL2FjdGlvbnMvYWN0aW9ucyc7XG5pbXBvcnQgeyBNc3RFZGl0b3JTdGF0ZSB9IGZyb20gJy4uL3N0YXRlL21zdC1lZGl0b3Itc3RhdGUnO1xuaW1wb3J0IHsgU2lnbmFsZXJpbmdzQmVlbGRNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4vc2lnbmFsZXJpbmdzLWJlZWxkLW1hbmFnZXIuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRGVidWdTZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxpc3RlbmVyID0gdGhpcy5kZWJ1Z0V2ZW50TGlzdGVuZXIoKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlPE1zdEVkaXRvclN0YXRlPixcbiAgICAgICAgICAgICAgICBwcml2YXRlIHNibVNlcnZpY2U6IFNpZ25hbGVyaW5nc0JlZWxkTWFuYWdlclNlcnZpY2UpIHtcbiAgICB9XG5cbiAgICBzZXREZWJ1Z0ZsYWcoZGVidWc6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChTZXREZWJ1ZyhkZWJ1ZykpO1xuXG4gICAgICAgIGlmIChkZWJ1Zykge1xuICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N2Z0NvbnRhaW5lcicpLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlb3ZlcicsIHRoaXMubGlzdGVuZXIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N2Z0NvbnRhaW5lcicpLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlb3ZlcicsIHRoaXMubGlzdGVuZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZWJ1Z0V2ZW50TGlzdGVuZXIoKTogKGU6IGFueSkgPT4gdm9pZCB7XG4gICAgICAgIHJldHVybiAoZXZlbnQpOiB2b2lkID0+IHtcbiAgICAgICAgICAgIGxldCBlbGVtID0gZXZlbnQudGFyZ2V0O1xuICAgICAgICAgICAgbGV0IGlkOiBzdHJpbmc7XG4gICAgICAgICAgICBsZXQgZm91bmQgPSBmYWxzZTtcbiAgICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgICAgICBpZCA9IGVsZW0uaWQ7XG4gICAgICAgICAgICAgICAgaWYgKGlkLnN0YXJ0c1dpdGgoJ3AnKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0cCA9IHRoaXMuc2JtU2VydmljZS5nZXRUb3BvbG9neUVsZW1lbnRCeVB1aWMoaWQuc3Vic3RyaW5nKDEpKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByaW50S21JbmZvKHRwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbGVtID0gZWxlbS5wYXJlbnRFbGVtZW50O1xuICAgICAgICAgICAgfSB3aGlsZSAoIWZvdW5kICYmIGVsZW0pO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgcHJpbnRLbUluZm8odHA6IHNiYmxhZC5Ub3BvbG9neUVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qga21zOiBzYmJsYWQuS2lsb21ldHJlcmluZ1tdID0gSnNKYXZhVXRpbC5saXN0VG9BcnJheSh0cC5nZXRLaWxvbWV0cmVyaW5nZW4oKSk7XG4gICAgICAgIGlmIChrbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgbGV0IGxvZ2xpbmUgPSAnS21pbmZvOiAnICsgdHAuZ2V0Q29tcG9uZW50TmFtZSgpICsgJywgJztcbiAgICAgICAgICAgIGZvciAoY29uc3Qga20gb2Yga21zKSB7XG4gICAgICAgICAgICAgICAgbG9nbGluZSArPSBrbS5nZXRLbUxpbnQoKSArICcgJyArIGttLmdldEttV2FhcmRlKCkgKyAnICc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhsb2dsaW5lKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { from } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "./signalerings-beeld-manager.service";
|
|
5
|
+
export class EditorService {
|
|
6
|
+
constructor(signaleringsBeeldManagerService) {
|
|
7
|
+
this.signaleringsBeeldManagerService = signaleringsBeeldManagerService;
|
|
8
|
+
this.initReadyPromise();
|
|
9
|
+
}
|
|
10
|
+
setEditor(editor) {
|
|
11
|
+
this.editor = editor;
|
|
12
|
+
this.resolveReadyPromise();
|
|
13
|
+
}
|
|
14
|
+
isReady() {
|
|
15
|
+
return this.promise;
|
|
16
|
+
}
|
|
17
|
+
setSignaleringsBeeldManager(signaleringsBeeldManager) {
|
|
18
|
+
this.signaleringsBeeldManagerService.set(signaleringsBeeldManager);
|
|
19
|
+
}
|
|
20
|
+
laadSignaleringsbeelden(iaVersie, dtos) {
|
|
21
|
+
const laadSignaleringsbeelden = this.editor.laadSignaleringsbeelden(iaVersie, dtos);
|
|
22
|
+
return from(laadSignaleringsbeelden);
|
|
23
|
+
}
|
|
24
|
+
laadRouteFiles(iaVersie, pplgs) {
|
|
25
|
+
return this.editor.laadRouteFiles(iaVersie, pplgs);
|
|
26
|
+
}
|
|
27
|
+
getRijwegplan(pplg) {
|
|
28
|
+
return this.editor.getRijwegplan(pplg);
|
|
29
|
+
}
|
|
30
|
+
getVrijebaanRijwegplan(pplg, vanSpoor) {
|
|
31
|
+
return this.editor.getVrijebaanRijwegplan(pplg, vanSpoor);
|
|
32
|
+
}
|
|
33
|
+
getRijwegplannen() {
|
|
34
|
+
return this.editor.getRijwegplannen();
|
|
35
|
+
}
|
|
36
|
+
initReadyPromise() {
|
|
37
|
+
const that = this;
|
|
38
|
+
this.promise = this.promise === undefined ? new Promise(function (resolve, _reject) {
|
|
39
|
+
that.resolveReadyPromise = resolve;
|
|
40
|
+
}) : this.promise;
|
|
41
|
+
}
|
|
42
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: EditorService, deps: [{ token: i1.SignaleringsBeeldManagerService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
43
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: EditorService }); }
|
|
44
|
+
}
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: EditorService, decorators: [{
|
|
46
|
+
type: Injectable
|
|
47
|
+
}], ctorParameters: () => [{ type: i1.SignaleringsBeeldManagerService }] });
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tc3Qtdmlld2VyL3NyYy9saWIvc2VydmljZXMvZWRpdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsSUFBSSxFQUFjLE1BQU0sTUFBTSxDQUFDOzs7QUFLeEMsTUFBTSxPQUFPLGFBQWE7SUFLdEIsWUFBb0IsK0JBQWdFO1FBQWhFLG9DQUErQixHQUEvQiwrQkFBK0IsQ0FBaUM7UUFDaEYsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFNO1FBQ1osSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFFckIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELE9BQU87UUFDSCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUVELDJCQUEyQixDQUFDLHdCQUF3QjtRQUNoRCxJQUFJLENBQUMsK0JBQStCLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELHVCQUF1QixDQUFDLFFBQWdCLEVBQUUsSUFBaUM7UUFDdkUsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRixPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxjQUFjLENBQUMsUUFBZ0IsRUFBRSxLQUFlO1FBQzVDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxhQUFhLENBQUMsSUFBWTtRQUN0QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxJQUFZLEVBQUUsUUFBZ0I7UUFDakQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ1osT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVPLGdCQUFnQjtRQUNwQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsVUFBUyxPQUFPLEVBQUUsT0FBTztZQUM3RSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsT0FBTyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7OEdBakRRLGFBQWE7a0hBQWIsYUFBYTs7MkZBQWIsYUFBYTtrQkFEekIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRvbWVpbiB9IGZyb20gJ0Bsb3hpYS9yaWp3ZWdlbic7XG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJU2lnbmFsZXJpbmdzYmVlbGRJbmZvRHRvIH0gZnJvbSAnLi4vcmVzb3VyY2VzL3NpZ25hbGVyaW5nc2JlZWxkaW5mby5yZXNvdXJjZSc7XG5pbXBvcnQgeyBTaWduYWxlcmluZ3NCZWVsZE1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi9zaWduYWxlcmluZ3MtYmVlbGQtbWFuYWdlci5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEVkaXRvclNlcnZpY2Uge1xuICAgIHByaXZhdGUgZWRpdG9yO1xuICAgIHByaXZhdGUgcmVzb2x2ZVJlYWR5UHJvbWlzZTtcbiAgICBwcml2YXRlIHByb21pc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNpZ25hbGVyaW5nc0JlZWxkTWFuYWdlclNlcnZpY2U6IFNpZ25hbGVyaW5nc0JlZWxkTWFuYWdlclNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5pbml0UmVhZHlQcm9taXNlKCk7XG4gICAgfVxuXG4gICAgc2V0RWRpdG9yKGVkaXRvcik6IHZvaWQge1xuICAgICAgICB0aGlzLmVkaXRvciA9IGVkaXRvcjtcblxuICAgICAgICB0aGlzLnJlc29sdmVSZWFkeVByb21pc2UoKTtcbiAgICB9XG5cbiAgICBpc1JlYWR5KCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9taXNlO1xuICAgIH1cblxuICAgIHNldFNpZ25hbGVyaW5nc0JlZWxkTWFuYWdlcihzaWduYWxlcmluZ3NCZWVsZE1hbmFnZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaWduYWxlcmluZ3NCZWVsZE1hbmFnZXJTZXJ2aWNlLnNldChzaWduYWxlcmluZ3NCZWVsZE1hbmFnZXIpO1xuICAgIH1cblxuICAgIGxhYWRTaWduYWxlcmluZ3NiZWVsZGVuKGlhVmVyc2llOiBzdHJpbmcsIGR0b3M6IElTaWduYWxlcmluZ3NiZWVsZEluZm9EdG9bXSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIGNvbnN0IGxhYWRTaWduYWxlcmluZ3NiZWVsZGVuID0gdGhpcy5lZGl0b3IubGFhZFNpZ25hbGVyaW5nc2JlZWxkZW4oaWFWZXJzaWUsIGR0b3MpO1xuICAgICAgICByZXR1cm4gZnJvbShsYWFkU2lnbmFsZXJpbmdzYmVlbGRlbik7XG4gICAgfVxuXG4gICAgbGFhZFJvdXRlRmlsZXMoaWFWZXJzaWU6IHN0cmluZywgcHBsZ3M6IHN0cmluZ1tdKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWRpdG9yLmxhYWRSb3V0ZUZpbGVzKGlhVmVyc2llLCBwcGxncyk7XG4gICAgfVxuXG4gICAgZ2V0Umlqd2VncGxhbihwcGxnOiBzdHJpbmcpOiBkb21laW4uUmlqd2VncGxhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmVkaXRvci5nZXRSaWp3ZWdwbGFuKHBwbGcpO1xuICAgIH1cblxuICAgIGdldFZyaWplYmFhblJpandlZ3BsYW4ocHBsZzogc3RyaW5nLCB2YW5TcG9vcjogc3RyaW5nKTogZG9tZWluLlZyaWplYmFhblJpandlZ3BsYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5lZGl0b3IuZ2V0VnJpamViYWFuUmlqd2VncGxhbihwcGxnLCB2YW5TcG9vcik7XG4gICAgfVxuXG4gICAgZ2V0Umlqd2VncGxhbm5lbigpOiBkb21laW4uUmlqd2VncGxhbltdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWRpdG9yLmdldFJpandlZ3BsYW5uZW4oKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRSZWFkeVByb21pc2UoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICB0aGlzLnByb21pc2UgPSB0aGlzLnByb21pc2UgPT09IHVuZGVmaW5lZCA/IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIF9yZWplY3QpIHtcbiAgICAgICAgICAgIHRoYXQucmVzb2x2ZVJlYWR5UHJvbWlzZSA9IHJlc29sdmU7XG4gICAgICAgIH0pIDogdGhpcy5wcm9taXNlO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as MstActions from '../state/actions/actions';
|
|
3
|
+
import { ClearProgress, ShowProgress } from '../state/actions/actions';
|
|
4
|
+
import { navigeerVanaf, setZichtbaarheidAlleRitdelen, toggleZichtbaarheidVoorBewegingen } from '../state/actions/ritdelen.actions';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@ngrx/store";
|
|
7
|
+
import * as i2 from "./viewer-control.service";
|
|
8
|
+
import * as i3 from "./signalerings-beeld-manager.service";
|
|
9
|
+
export class PrintBewegingService {
|
|
10
|
+
constructor(store, viewerControlService, sbmService) {
|
|
11
|
+
this.store = store;
|
|
12
|
+
this.viewerControlService = viewerControlService;
|
|
13
|
+
this.sbmService = sbmService;
|
|
14
|
+
this.store.select(s => s.ritDelen).subscribe(ritdelen => this.ritdelen = ritdelen);
|
|
15
|
+
}
|
|
16
|
+
printBeweging(bewegingId, paginationSize, iaVersieInfo) {
|
|
17
|
+
const gevondenRitdeel = this.ritdelen.filter(r => parseInt(r.getBewegingId(), 10) === bewegingId);
|
|
18
|
+
// hide/show de knoppen
|
|
19
|
+
const printing = !!bewegingId && gevondenRitdeel.length === 1;
|
|
20
|
+
this.viewerControlService.setPrinting(printing);
|
|
21
|
+
if (!printing) {
|
|
22
|
+
return Promise.reject(new Error('Geen beweging gevonden voor ' + bewegingId));
|
|
23
|
+
}
|
|
24
|
+
return new Promise((resolve) => {
|
|
25
|
+
const ritdeel = gevondenRitdeel[0];
|
|
26
|
+
if (ritdeel.isNietBeschikbaar()) {
|
|
27
|
+
this.store.dispatch(navigeerVanaf(paginationSize, iaVersieInfo, ritdeel));
|
|
28
|
+
this.store.dispatch(ShowProgress());
|
|
29
|
+
setTimeout(() => this.focusOpBeweging(ritdeel, resolve), 1000);
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
this.focusOpBeweging(ritdeel, resolve);
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
focusOpBeweging(ritdeel, resolve) {
|
|
37
|
+
// deselecteer alles
|
|
38
|
+
this.store.dispatch(setZichtbaarheidAlleRitdelen(false));
|
|
39
|
+
// enable ritacties (checkbox) voor alle ritdelen met beweging die matched met bewegingId(s)
|
|
40
|
+
this.store.dispatch(toggleZichtbaarheidVoorBewegingen([parseInt(ritdeel.getBewegingId(), 10)]));
|
|
41
|
+
setTimeout(() => {
|
|
42
|
+
// dit neemt niet de vrijebaan elementen mee
|
|
43
|
+
const topoElementen = this.sbmService.bepaalRouteElementen(ritdeel.getRoute());
|
|
44
|
+
const dwangPuics = this.getPuics(topoElementen);
|
|
45
|
+
this.store.dispatch(MstActions.focusOpIds(dwangPuics));
|
|
46
|
+
setTimeout(() => {
|
|
47
|
+
// resolve de promise, om aan te geven dat focus klaar is
|
|
48
|
+
resolve(true);
|
|
49
|
+
this.viewerControlService.setPrinting(false);
|
|
50
|
+
this.store.dispatch(ClearProgress());
|
|
51
|
+
}, 1000);
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
getPuics(topoElementen) {
|
|
55
|
+
return topoElementen.map(e => e.getPuic());
|
|
56
|
+
}
|
|
57
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PrintBewegingService, deps: [{ token: i1.Store }, { token: i2.ViewerControlService }, { token: i3.SignaleringsBeeldManagerService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
58
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PrintBewegingService, providedIn: 'root' }); }
|
|
59
|
+
}
|
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PrintBewegingService, decorators: [{
|
|
61
|
+
type: Injectable,
|
|
62
|
+
args: [{
|
|
63
|
+
providedIn: 'root'
|
|
64
|
+
}]
|
|
65
|
+
}], ctorParameters: () => [{ type: i1.Store }, { type: i2.ViewerControlService }, { type: i3.SignaleringsBeeldManagerService }] });
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbnQtYmV3ZWdpbmcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zdC12aWV3ZXIvc3JjL2xpYi9zZXJ2aWNlcy9wcmludC1iZXdlZ2luZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLM0MsT0FBTyxLQUFLLFVBQVUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsNEJBQTRCLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7QUFRbkksTUFBTSxPQUFPLG9CQUFvQjtJQUc3QixZQUFvQixLQUE0QixFQUM1QixvQkFBMEMsRUFDMUMsVUFBMkM7UUFGM0MsVUFBSyxHQUFMLEtBQUssQ0FBdUI7UUFDNUIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMxQyxlQUFVLEdBQVYsVUFBVSxDQUFpQztRQUMzRCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFRCxhQUFhLENBQUMsVUFBa0IsRUFBRSxjQUFzQixFQUFFLFlBQXdCO1FBQzlFLE1BQU0sZUFBZSxHQUFjLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxVQUFVLENBQUMsQ0FBQztRQUU3Ryx1QkFBdUI7UUFDdkIsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLFVBQVUsSUFBSSxlQUFlLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsb0JBQW9CLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRWhELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNaLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ2xGLENBQUM7UUFFRCxPQUFPLElBQUksT0FBTyxDQUFVLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDcEMsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25DLElBQUksT0FBTyxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQztnQkFDOUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLGNBQWMsRUFBRSxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDMUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztnQkFDcEMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ25FLENBQUM7aUJBQU0sQ0FBQztnQkFDSixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztZQUMzQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sZUFBZSxDQUFDLE9BQWdCLEVBQUUsT0FBaUI7UUFDdkQsb0JBQW9CO1FBQ3BCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLDRCQUE0QixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDekQsNEZBQTRGO1FBQzVGLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGlDQUFpQyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoRyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBRVosNENBQTRDO1lBQzVDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDL0UsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7WUFFdkQsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDWix5REFBeUQ7Z0JBQ3pELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDZCxJQUFJLENBQUMsb0JBQW9CLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM3QyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1lBQ3pDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNiLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLFFBQVEsQ0FBQyxhQUFxQztRQUNsRCxPQUFPLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDOzhHQXZEUSxvQkFBb0I7a0hBQXBCLG9CQUFvQixjQUZqQixNQUFNOzsyRkFFVCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgc2JibGFkIH0gZnJvbSAnQGxveGlhL3JpandlZ2VuJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgUml0ZGVlbCB9IGZyb20gJy4uL21vZGVsL3JpdGRlZWwnO1xuaW1wb3J0IHsgSW5mcmFNb2RlbCB9IGZyb20gJy4uL29wdGltbyc7XG5pbXBvcnQgKiBhcyBNc3RBY3Rpb25zIGZyb20gJy4uL3N0YXRlL2FjdGlvbnMvYWN0aW9ucyc7XG5pbXBvcnQgeyBDbGVhclByb2dyZXNzLCBTaG93UHJvZ3Jlc3MgfSBmcm9tICcuLi9zdGF0ZS9hY3Rpb25zL2FjdGlvbnMnO1xuaW1wb3J0IHsgbmF2aWdlZXJWYW5hZiwgc2V0WmljaHRiYWFyaGVpZEFsbGVSaXRkZWxlbiwgdG9nZ2xlWmljaHRiYWFyaGVpZFZvb3JCZXdlZ2luZ2VuIH0gZnJvbSAnLi4vc3RhdGUvYWN0aW9ucy9yaXRkZWxlbi5hY3Rpb25zJztcbmltcG9ydCB7IE1zdEVkaXRvclN0YXRlIH0gZnJvbSAnLi4vc3RhdGUvbXN0LWVkaXRvci1zdGF0ZSc7XG5pbXBvcnQgeyBTaWduYWxlcmluZ3NCZWVsZE1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi9zaWduYWxlcmluZ3MtYmVlbGQtbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IFZpZXdlckNvbnRyb2xTZXJ2aWNlIH0gZnJvbSAnLi92aWV3ZXItY29udHJvbC5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBQcmludEJld2VnaW5nU2VydmljZSB7XG4gICAgcHJpdmF0ZSByaXRkZWxlbjogUml0ZGVlbFtdO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmU8TXN0RWRpdG9yU3RhdGU+LFxuICAgICAgICAgICAgICAgIHByaXZhdGUgdmlld2VyQ29udHJvbFNlcnZpY2U6IFZpZXdlckNvbnRyb2xTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgc2JtU2VydmljZTogU2lnbmFsZXJpbmdzQmVlbGRNYW5hZ2VyU2VydmljZSkge1xuICAgICAgICB0aGlzLnN0b3JlLnNlbGVjdChzID0+IHMucml0RGVsZW4pLnN1YnNjcmliZShyaXRkZWxlbiA9PiB0aGlzLnJpdGRlbGVuID0gcml0ZGVsZW4pO1xuICAgIH1cblxuICAgIHByaW50QmV3ZWdpbmcoYmV3ZWdpbmdJZDogbnVtYmVyLCBwYWdpbmF0aW9uU2l6ZTogbnVtYmVyLCBpYVZlcnNpZUluZm86IEluZnJhTW9kZWwpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgY29uc3QgZ2V2b25kZW5SaXRkZWVsOiBSaXRkZWVsW10gPSB0aGlzLnJpdGRlbGVuLmZpbHRlcihyID0+IHBhcnNlSW50KHIuZ2V0QmV3ZWdpbmdJZCgpLCAxMCkgPT09IGJld2VnaW5nSWQpO1xuXG4gICAgICAgIC8vIGhpZGUvc2hvdyBkZSBrbm9wcGVuXG4gICAgICAgIGNvbnN0IHByaW50aW5nID0gISFiZXdlZ2luZ0lkICYmIGdldm9uZGVuUml0ZGVlbC5sZW5ndGggPT09IDE7XG4gICAgICAgIHRoaXMudmlld2VyQ29udHJvbFNlcnZpY2Uuc2V0UHJpbnRpbmcocHJpbnRpbmcpO1xuXG4gICAgICAgIGlmICghcHJpbnRpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoJ0dlZW4gYmV3ZWdpbmcgZ2V2b25kZW4gdm9vciAnICsgYmV3ZWdpbmdJZCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPGJvb2xlYW4+KChyZXNvbHZlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCByaXRkZWVsID0gZ2V2b25kZW5SaXRkZWVsWzBdO1xuICAgICAgICAgICAgaWYgKHJpdGRlZWwuaXNOaWV0QmVzY2hpa2JhYXIoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmF2aWdlZXJWYW5hZihwYWdpbmF0aW9uU2l6ZSwgaWFWZXJzaWVJbmZvLCByaXRkZWVsKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChTaG93UHJvZ3Jlc3MoKSk7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmZvY3VzT3BCZXdlZ2luZyhyaXRkZWVsLCByZXNvbHZlKSwgMTAwMCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNPcEJld2VnaW5nKHJpdGRlZWwsIHJlc29sdmUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZvY3VzT3BCZXdlZ2luZyhyaXRkZWVsOiBSaXRkZWVsLCByZXNvbHZlOiBGdW5jdGlvbik6IHZvaWQge1xuICAgICAgICAvLyBkZXNlbGVjdGVlciBhbGxlc1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKHNldFppY2h0YmFhcmhlaWRBbGxlUml0ZGVsZW4oZmFsc2UpKTtcbiAgICAgICAgLy8gZW5hYmxlIHJpdGFjdGllcyAoY2hlY2tib3gpIHZvb3IgYWxsZSByaXRkZWxlbiBtZXQgYmV3ZWdpbmcgZGllIG1hdGNoZWQgbWV0IGJld2VnaW5nSWQocylcbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaCh0b2dnbGVaaWNodGJhYXJoZWlkVm9vckJld2VnaW5nZW4oW3BhcnNlSW50KHJpdGRlZWwuZ2V0QmV3ZWdpbmdJZCgpLCAxMCldKSk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuXG4gICAgICAgICAgICAvLyBkaXQgbmVlbXQgbmlldCBkZSB2cmlqZWJhYW4gZWxlbWVudGVuIG1lZVxuICAgICAgICAgICAgY29uc3QgdG9wb0VsZW1lbnRlbiA9IHRoaXMuc2JtU2VydmljZS5iZXBhYWxSb3V0ZUVsZW1lbnRlbihyaXRkZWVsLmdldFJvdXRlKCkpO1xuICAgICAgICAgICAgY29uc3QgZHdhbmdQdWljcyA9IHRoaXMuZ2V0UHVpY3ModG9wb0VsZW1lbnRlbik7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKE1zdEFjdGlvbnMuZm9jdXNPcElkcyhkd2FuZ1B1aWNzKSk7XG5cbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIHJlc29sdmUgZGUgcHJvbWlzZSwgb20gYWFuIHRlIGdldmVuIGRhdCBmb2N1cyBrbGFhciBpc1xuICAgICAgICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy52aWV3ZXJDb250cm9sU2VydmljZS5zZXRQcmludGluZyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDbGVhclByb2dyZXNzKCkpO1xuICAgICAgICAgICAgfSwgMTAwMCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UHVpY3ModG9wb0VsZW1lbnRlbjogc2JibGFkLkhhc0lkZW50aWZpZXJbXSk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIHRvcG9FbGVtZW50ZW4ubWFwKGUgPT4gZS5nZXRQdWljKCkpO1xuICAgIH1cblxufVxuIl19
|