@loxia/mst-viewer 8.1.3-202512020801 → 8.1.3-202512030346

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.
Files changed (135) hide show
  1. package/esm2022/generated/openapi/api/api.mjs +23 -0
  2. package/esm2022/generated/openapi/api/appConfigController.service.mjs +140 -0
  3. package/esm2022/generated/openapi/api/appConfigController.serviceInterface.mjs +2 -0
  4. package/esm2022/generated/openapi/api/bewegingController.service.mjs +155 -0
  5. package/esm2022/generated/openapi/api/bewegingController.serviceInterface.mjs +2 -0
  6. package/esm2022/generated/openapi/api/class0BuildProperties.service.mjs +140 -0
  7. package/esm2022/generated/openapi/api/class0BuildProperties.serviceInterface.mjs +2 -0
  8. package/esm2022/generated/openapi/api/connectorController.service.mjs +146 -0
  9. package/esm2022/generated/openapi/api/connectorController.serviceInterface.mjs +2 -0
  10. package/esm2022/generated/openapi/api/logController.service.mjs +150 -0
  11. package/esm2022/generated/openapi/api/logController.serviceInterface.mjs +2 -0
  12. package/esm2022/generated/openapi/api/p21Controller.service.mjs +236 -0
  13. package/esm2022/generated/openapi/api/p21Controller.serviceInterface.mjs +2 -0
  14. package/esm2022/generated/openapi/api/sbController.service.mjs +202 -0
  15. package/esm2022/generated/openapi/api/sbController.serviceInterface.mjs +2 -0
  16. package/esm2022/generated/openapi/api.module.mjs +40 -0
  17. package/esm2022/generated/openapi/configuration.mjs +99 -0
  18. package/esm2022/generated/openapi/encoder.mjs +19 -0
  19. package/esm2022/generated/openapi/index.mjs +7 -0
  20. package/esm2022/generated/openapi/model/actieDto.mjs +13 -0
  21. package/esm2022/generated/openapi/model/algemeneRitDto.mjs +13 -0
  22. package/esm2022/generated/openapi/model/bewegingDto.mjs +2 -0
  23. package/esm2022/generated/openapi/model/frontendKeycloakConfig.mjs +13 -0
  24. package/esm2022/generated/openapi/model/frontendProperties.mjs +2 -0
  25. package/esm2022/generated/openapi/model/logDto.mjs +2 -0
  26. package/esm2022/generated/openapi/model/models.mjs +10 -0
  27. package/esm2022/generated/openapi/model/ritRequestDto.mjs +2 -0
  28. package/esm2022/generated/openapi/model/signaleringsbeeldDto.mjs +13 -0
  29. package/esm2022/generated/openapi/model/signaleringsbeeldRequestDto.mjs +13 -0
  30. package/esm2022/generated/openapi/param.mjs +2 -0
  31. package/esm2022/generated/openapi/variables.mjs +9 -0
  32. package/esm2022/generated.version.mjs +2 -0
  33. package/esm2022/lib/atomic-components/message/index.mjs +4 -0
  34. package/esm2022/lib/atomic-components/message/message.component.mjs +34 -0
  35. package/esm2022/lib/atomic-components/message/message.mjs +8 -0
  36. package/esm2022/lib/atomic-components/message/severity.enum.mjs +9 -0
  37. package/esm2022/lib/atomic-components/messages/messages.component.mjs +20 -0
  38. package/esm2022/lib/atomic-components/overlay/overlay.component.mjs +11 -0
  39. package/esm2022/lib/atomic-components/progress-indicator/progress-indicator.component.mjs +11 -0
  40. package/esm2022/lib/atomic-components/progress-indicator/progress-indicator.entity.mjs +8 -0
  41. package/esm2022/lib/atomic-components/services/messages.service.mjs +27 -0
  42. package/esm2022/lib/components/carousel-controls/carousel-controls.component.mjs +40 -0
  43. package/esm2022/lib/components/mstviewer/mstviewer.component.mjs +110 -0
  44. package/esm2022/lib/components/ritdelen-lijst/ritdelen-lijst.component.mjs +267 -0
  45. package/esm2022/lib/components/ritdelen-view/ritdelen-view.component.mjs +103 -0
  46. package/esm2022/lib/components/rpe/rpe.component.mjs +33 -0
  47. package/esm2022/lib/components/svg-visualisatie/svg-visualisatie.component.mjs +273 -0
  48. package/esm2022/lib/components/viewer-controls/viewer-controls.component.mjs +52 -0
  49. package/esm2022/lib/model/alternatief-rit-deel.mjs +7 -0
  50. package/esm2022/lib/model/km-range.mjs +39 -0
  51. package/esm2022/lib/model/melding-event.mjs +7 -0
  52. package/esm2022/lib/model/nieuwe-route.mjs +10 -0
  53. package/esm2022/lib/model/ongeplande-actie.mjs +7 -0
  54. package/esm2022/lib/model/rijwegplan-rijweg-dwang-combinatie.mjs +24 -0
  55. package/esm2022/lib/model/ritdeel.mjs +205 -0
  56. package/esm2022/lib/model/sein-op-ritdeel.mjs +7 -0
  57. package/esm2022/lib/model/wissel-kant-code.mjs +7 -0
  58. package/esm2022/lib/mst-viewer.module.mjs +143 -0
  59. package/esm2022/lib/optimo.mjs +9 -0
  60. package/esm2022/lib/resources/mstlogging.resource.mjs +25 -0
  61. package/esm2022/lib/resources/signaleringsbeeldinfo.resource.mjs +62 -0
  62. package/esm2022/lib/services/base-rest.service.mjs +26 -0
  63. package/esm2022/lib/services/beweging-utils.service.mjs +139 -0
  64. package/esm2022/lib/services/beweging-verrijker.service.mjs +30 -0
  65. package/esm2022/lib/services/connector.service.mjs +30 -0
  66. package/esm2022/lib/services/debug.service.mjs +59 -0
  67. package/esm2022/lib/services/editor.service.mjs +48 -0
  68. package/esm2022/lib/services/print-beweging.service.mjs +66 -0
  69. package/esm2022/lib/services/rit-lezer.service.mjs +104 -0
  70. package/esm2022/lib/services/signalerings-beeld-manager.service.mjs +92 -0
  71. package/esm2022/lib/services/viewer-control.service.mjs +104 -0
  72. package/esm2022/lib/state/actions/actions.mjs +130 -0
  73. package/esm2022/lib/state/actions/ritdelen.actions.mjs +45 -0
  74. package/esm2022/lib/state/effect/bepaal-ongeplande-acties.effect.mjs +78 -0
  75. package/esm2022/lib/state/effect/bepaal-sb-infos.effect.mjs +67 -0
  76. package/esm2022/lib/state/effect/beweging-invoegen.effect.mjs +73 -0
  77. package/esm2022/lib/state/effect/delete-ongeplande-actie.effect.mjs +39 -0
  78. package/esm2022/lib/state/effect/focus-effect.mjs +36 -0
  79. package/esm2022/lib/state/effect/laad-route-files.effect.mjs +64 -0
  80. package/esm2022/lib/state/effect/laad-signaleringsbeelden.effect.mjs +363 -0
  81. package/esm2022/lib/state/effect/rit-goedkeuren.effect.mjs +23 -0
  82. package/esm2022/lib/state/effect/ritdelen.effect.mjs +112 -0
  83. package/esm2022/lib/state/effect/svg-view.effect.mjs +48 -0
  84. package/esm2022/lib/state/mst-editor-state.mjs +89 -0
  85. package/esm2022/lib/state/reducer/rit-delen.reducer.mjs +62 -0
  86. package/esm2022/lib/util/actie-helper.mjs +437 -0
  87. package/esm2022/lib/util/actie-popover-bepaler.mjs +90 -0
  88. package/esm2022/lib/util/date.service.mjs +17 -0
  89. package/esm2022/lib/util/logging-helper.mjs +58 -0
  90. package/esm2022/lib/util/melding-builder.mjs +13 -0
  91. package/esm2022/lib/util/message-builder.mjs +32 -0
  92. package/esm2022/lib/util/multi-map.mjs +76 -0
  93. package/esm2022/lib/util/utils.mjs +35 -0
  94. package/esm2022/lib/util/zone-util.mjs +32 -0
  95. package/esm2022/loxia-mst-viewer.mjs +5 -0
  96. package/esm2022/public-api.mjs +9 -0
  97. package/esm2022/src/generated/openapi/api/api.mjs +23 -0
  98. package/esm2022/src/generated/openapi/api/appConfigController.service.mjs +140 -0
  99. package/esm2022/src/generated/openapi/api/appConfigController.serviceInterface.mjs +2 -0
  100. package/esm2022/src/generated/openapi/api/bewegingController.service.mjs +155 -0
  101. package/esm2022/src/generated/openapi/api/bewegingController.serviceInterface.mjs +2 -0
  102. package/esm2022/src/generated/openapi/api/class0BuildProperties.service.mjs +140 -0
  103. package/esm2022/src/generated/openapi/api/class0BuildProperties.serviceInterface.mjs +2 -0
  104. package/esm2022/src/generated/openapi/api/connectorController.service.mjs +146 -0
  105. package/esm2022/src/generated/openapi/api/connectorController.serviceInterface.mjs +2 -0
  106. package/esm2022/src/generated/openapi/api/logController.service.mjs +150 -0
  107. package/esm2022/src/generated/openapi/api/logController.serviceInterface.mjs +2 -0
  108. package/esm2022/src/generated/openapi/api/p21Controller.service.mjs +236 -0
  109. package/esm2022/src/generated/openapi/api/p21Controller.serviceInterface.mjs +2 -0
  110. package/esm2022/src/generated/openapi/api/sbController.service.mjs +202 -0
  111. package/esm2022/src/generated/openapi/api/sbController.serviceInterface.mjs +2 -0
  112. package/esm2022/src/generated/openapi/api.module.mjs +40 -0
  113. package/esm2022/src/generated/openapi/configuration.mjs +99 -0
  114. package/esm2022/src/generated/openapi/encoder.mjs +19 -0
  115. package/esm2022/src/generated/openapi/index.mjs +7 -0
  116. package/esm2022/src/generated/openapi/loxia-mst-viewer-src-generated-openapi.mjs +5 -0
  117. package/esm2022/src/generated/openapi/model/actieDto.mjs +13 -0
  118. package/esm2022/src/generated/openapi/model/algemeneRitDto.mjs +13 -0
  119. package/esm2022/src/generated/openapi/model/bewegingDto.mjs +2 -0
  120. package/esm2022/src/generated/openapi/model/frontendKeycloakConfig.mjs +13 -0
  121. package/esm2022/src/generated/openapi/model/frontendProperties.mjs +2 -0
  122. package/esm2022/src/generated/openapi/model/logDto.mjs +2 -0
  123. package/esm2022/src/generated/openapi/model/models.mjs +10 -0
  124. package/esm2022/src/generated/openapi/model/ritRequestDto.mjs +2 -0
  125. package/esm2022/src/generated/openapi/model/signaleringsbeeldDto.mjs +13 -0
  126. package/esm2022/src/generated/openapi/model/signaleringsbeeldRequestDto.mjs +13 -0
  127. package/esm2022/src/generated/openapi/param.mjs +2 -0
  128. package/esm2022/src/generated/openapi/variables.mjs +9 -0
  129. package/fesm2022/loxia-mst-viewer-src-generated-openapi.mjs +25 -25
  130. package/fesm2022/loxia-mst-viewer-src-generated-openapi.mjs.map +1 -1
  131. package/fesm2022/loxia-mst-viewer.mjs +154 -154
  132. package/fesm2022/loxia-mst-viewer.mjs.map +1 -1
  133. package/lib/atomic-components/overlay/overlay.component.d.ts +1 -1
  134. package/package.json +10 -6
  135. 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmV3ZWdpbmctdXRpbHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zdC12aWV3ZXIvc3JjL2xpYi9zZXJ2aWNlcy9iZXdlZ2luZy11dGlscy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFJbEQsTUFBTSxPQUFPLGFBQWE7YUFDTixjQUFTLEdBQUcsV0FBVyxBQUFkLENBQWU7YUFDeEIsZUFBVSxHQUFHLFlBQVksQUFBZixDQUFnQjthQUMxQixZQUFPLEdBQUcsU0FBUyxBQUFaLENBQWE7YUFDWixzQkFBaUIsR0FBRyxTQUFTLEFBQVosQ0FBYTthQUM5QixpQ0FBNEIsR0FBRyxJQUFJLEFBQVAsQ0FBUTtJQUU1RCxZQUE2QixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtJQUN6RCxDQUFDO0lBRU0sNEJBQTRCLENBQUMsUUFBbUIsRUFBRSxtQkFBK0I7UUFDcEYsTUFBTSxNQUFNLEdBQWUsRUFBRSxDQUFDO1FBQzlCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUVoQyxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRWxGLElBQUksY0FBYyxHQUFhLElBQUksQ0FBQztRQUNwQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1QixJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDbkIsTUFBTSxDQUFDLENBQUMsQ0FBQyxH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SUFFTyxNQUFNLENBQUMsc0JBQXNCLENBQUMsV0FBbUI7UUFDckQsT0FBTyxDQUFDLFdBQVcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUNsRCxDQUFDOzhHQXhJUSxhQUFhO2tIQUFiLGFBQWE7OzJGQUFiLGFBQWE7a0JBRHpCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSaXRkZWVsIH0gZnJvbSAnLi4vbW9kZWwvcml0ZGVlbCc7XG5pbXBvcnQgeyBBY3RpZSwgQmV3ZWdpbmcgfSBmcm9tICcuLi9vcHRpbW8nO1xuaW1wb3J0IHsgQXJyYXlNdWx0aW1hcCB9IGZyb20gJy4uL3V0aWwvbXVsdGktbWFwJztcbmltcG9ydCB7IEVkaXRvclNlcnZpY2UgfSBmcm9tICcuL2VkaXRvci5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEJld2VnaW5nVXRpbHMge1xuICAgIHN0YXRpYyByZWFkb25seSBHRVdJSlpJR0QgPSAnR2V3aWp6aWdkJztcbiAgICBzdGF0aWMgcmVhZG9ubHkgVE9FR0VWT0VHRCA9ICdUb2VnZXZvZWdkJztcbiAgICBzdGF0aWMgcmVhZG9ubHkgTk9STUFBTCA9ICdOb3JtYWFsJztcbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBTRUlOX1RZUEVfRklDVElFRiA9ICdGSUNUSUVGJztcbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBTUE9PUl9OQUFSX1ZSSUpFQkFBTl9QT1NURklYID0gJ19lJztcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZWRpdG9yU2VydmljZTogRWRpdG9yU2VydmljZSkge1xuICAgIH1cblxuICAgIHB1YmxpYyBleHRyYWN0QmV3ZWdpbmdlblVpdFJpdGRlbGVuKHJpdERlbGVuOiBSaXRkZWVsW10sIG9yaWdpbmVsZUJld2VnaW5nZW46IEJld2VnaW5nW10pOiBCZXdlZ2luZ1tdIHtcbiAgICAgICAgY29uc3QgcmV0dmFsOiBCZXdlZ2luZ1tdID0gW107XG4gICAgICAgIHJldHZhbC5sZW5ndGggPSByaXREZWxlbi5sZW5ndGg7XG5cbiAgICAgICAgY29uc3Qgb3JpZ2luZWxlQmV3ZWdpbmdNYXAgPSB0aGlzLmJlcGFhbE9yaWdpbmVsZUJld2VnaW5nTWFwKG9yaWdpbmVsZUJld2VnaW5nZW4pO1xuXG4gICAgICAgIGxldCB2b3JpZ2VCZXdlZ2luZzogQmV3ZWdpbmcgPSBudWxsO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJpdERlbGVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCByaXRkZWVsID0gcml0RGVsZW5baV07XG4gICAgICAgICAgICBpZiAocml0ZGVlbC5iZXdlZ2luZykge1xuICAgICAgICAgICAgICAgIHJldHZhbFtpXSA9IHJpdGRlZWwuYmV3ZWdpbmc7XG4gICAgICAgICAgICAgICAgY29uc3QgbmlldXdEd2FuZ051bW1lciA9IEJld2VnaW5nVXRpbHMudG9Sb3V0ZUZpbGVEd2FuZ051bW1lcihyaXRkZWVsLmdldER3YW5nTnVtbWVyKCkpO1xuICAgICAgICAgICAgICAgIGlmIChCZXdlZ2luZ1V0aWxzLmlzR2V3aWp6aWdkKHJpdGRlZWwsIG5pZXV3RHdhbmdOdW1tZXIsIG9yaWdpbmVsZUJld2VnaW5nTWFwKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR2YWxbaV0ud2lqemlnU3RhdHVzID0gQmV3ZWdpbmdVdGlscy5HRVdJSlpJR0Q7XG4gICAgICAgICAgICAgICAgICAgIHJldHZhbFtpXS5kd2FuZ051bW1lciA9IG5pZXV3RHdhbmdOdW1tZXI7XG4gICAgICAgICAgICAgICAgICAgIHJpdGRlZWwuYmV3ZWdpbmcucml0QWN0aWVzID0gcml0ZGVlbC5hY3RpZXM7XG4gICAgICAgICAgICAgICAgICAgIEJld2VnaW5nVXRpbHMucmVtb3ZlS2VyZW5FeHRlbnNpZShyZXR2YWxbaV0pO1xuICAgICAgICAgICAgICAgICAgICBCZXdlZ2luZ1V0aWxzLnJlbW92ZUtlcmVuRXh0ZW5zaWUodm9yaWdlQmV3ZWdpbmcpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaSA9PT0gcml0RGVsZW4ubGVuZ3RoIC0gMSAmJiBCZXdlZ2luZ1V0aWxzLmJld2VnaW5nZW5aaWpuR2V3aWp6aWdkKHJpdERlbGVuLCBvcmlnaW5lbGVCZXdlZ2luZ2VuKSkge1xuICAgICAgICAgICAgICAgICAgICBCZXdlZ2luZ1V0aWxzLnJlbW92ZUtlcmVuRXh0ZW5zaWUocmV0dmFsW2ldKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJldHZhbFtpXS53aWp6aWdTdGF0dXMgPT09IEJld2VnaW5nVXRpbHMuVE9FR0VWT0VHRCkge1xuICAgICAgICAgICAgICAgICAgICBCZXdlZ2luZ1V0aWxzLnJlbW92ZUtlcmVuRXh0ZW5zaWUodm9yaWdlQmV3ZWdpbmcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dmFsW2ldID0gdGhpcy5tYWFrQmV3ZWdpbmcocml0ZGVlbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR2YWxbaV0udm9sZ251bW1lckJpbm5lblJpdCA9IGkgKyAxO1xuICAgICAgICAgICAgdm9yaWdlQmV3ZWdpbmcgPSByaXRkZWVsLmJld2VnaW5nO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXR2YWw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgYmV3ZWdpbmdlblppam5HZXdpanppZ2Qocml0RGVsZW46IFJpdGRlZWxbXSwgb3JpZ2luZWxlQmV3ZWdpbmdlbjogQmV3ZWdpbmdbXSk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCByaXREZWxlbkFycmF5ID0gcml0RGVsZW5cbiAgICAgICAgICAgIC5maWx0ZXIociA9PiByLmJld2VnaW5nKVxuICAgICAgICAgICAgLm1hcChyID0+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