@loxia/mst-viewer 8.1.3-202511272206 → 8.1.3-202511302334

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 (198) 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/lib/atomic-components/message/message.component.mjs +3 -3
  33. package/esm2022/lib/atomic-components/progress-indicator/progress-indicator.entity.mjs +7 -4
  34. package/esm2022/lib/components/carousel-controls/carousel-controls.component.mjs +5 -6
  35. package/esm2022/lib/components/mstviewer/mstviewer.component.mjs +13 -7
  36. package/esm2022/lib/components/ritdelen-lijst/ritdelen-lijst.component.mjs +18 -12
  37. package/esm2022/lib/components/rpe/rpe.component.mjs +6 -2
  38. package/esm2022/lib/components/svg-visualisatie/svg-visualisatie.component.mjs +8 -7
  39. package/esm2022/lib/components/viewer-controls/viewer-controls.component.mjs +16 -13
  40. package/esm2022/lib/model/km-range.mjs +2 -2
  41. package/esm2022/lib/model/nieuwe-route.mjs +2 -2
  42. package/esm2022/lib/model/ritdeel.mjs +10 -10
  43. package/esm2022/lib/mst-viewer.module.mjs +6 -5
  44. package/esm2022/lib/resources/mstlogging.resource.mjs +12 -145
  45. package/esm2022/lib/resources/signaleringsbeeldinfo.resource.mjs +2 -1
  46. package/esm2022/lib/services/base-rest.service.mjs +3 -1
  47. package/esm2022/lib/services/beweging-utils.service.mjs +6 -6
  48. package/esm2022/lib/services/debug.service.mjs +3 -3
  49. package/esm2022/lib/services/editor.service.mjs +3 -1
  50. package/esm2022/lib/services/print-beweging.service.mjs +23 -20
  51. package/esm2022/lib/services/rit-lezer.service.mjs +4 -4
  52. package/esm2022/lib/services/signalerings-beeld-manager.service.mjs +1 -1
  53. package/esm2022/lib/services/viewer-control.service.mjs +10 -9
  54. package/esm2022/lib/state/actions/actions.mjs +2 -5
  55. package/esm2022/lib/state/actions/ritdelen.actions.mjs +4 -4
  56. package/esm2022/lib/state/effect/bepaal-ongeplande-acties.effect.mjs +8 -7
  57. package/esm2022/lib/state/effect/bepaal-sb-infos.effect.mjs +2 -2
  58. package/esm2022/lib/state/effect/beweging-invoegen.effect.mjs +1 -1
  59. package/esm2022/lib/state/effect/delete-ongeplande-actie.effect.mjs +1 -1
  60. package/esm2022/lib/state/effect/focus-effect.mjs +2 -2
  61. package/esm2022/lib/state/effect/laad-route-files.effect.mjs +7 -7
  62. package/esm2022/lib/state/effect/laad-signaleringsbeelden.effect.mjs +14 -14
  63. package/esm2022/lib/state/effect/ritdelen.effect.mjs +26 -25
  64. package/esm2022/lib/state/mst-editor-state.mjs +11 -15
  65. package/esm2022/lib/state/reducer/rit-delen.reducer.mjs +1 -1
  66. package/esm2022/lib/util/actie-helper.mjs +29 -25
  67. package/esm2022/lib/util/actie-popover-bepaler.mjs +2 -2
  68. package/esm2022/lib/util/logging-helper.mjs +36 -41
  69. package/esm2022/lib/util/multi-map.mjs +2 -3
  70. package/esm2022/lib/util/utils.mjs +5 -5
  71. package/esm2022/lib/util/zone-util.mjs +2 -1
  72. package/esm2022/src/generated/openapi/api/api.mjs +23 -0
  73. package/esm2022/src/generated/openapi/api/appConfigController.service.mjs +140 -0
  74. package/esm2022/src/generated/openapi/api/appConfigController.serviceInterface.mjs +2 -0
  75. package/esm2022/src/generated/openapi/api/bewegingController.service.mjs +155 -0
  76. package/esm2022/src/generated/openapi/api/bewegingController.serviceInterface.mjs +2 -0
  77. package/esm2022/src/generated/openapi/api/class0BuildProperties.service.mjs +140 -0
  78. package/esm2022/src/generated/openapi/api/class0BuildProperties.serviceInterface.mjs +2 -0
  79. package/esm2022/src/generated/openapi/api/connectorController.service.mjs +146 -0
  80. package/esm2022/src/generated/openapi/api/connectorController.serviceInterface.mjs +2 -0
  81. package/esm2022/src/generated/openapi/api/logController.service.mjs +150 -0
  82. package/esm2022/src/generated/openapi/api/logController.serviceInterface.mjs +2 -0
  83. package/esm2022/src/generated/openapi/api/p21Controller.service.mjs +236 -0
  84. package/esm2022/src/generated/openapi/api/p21Controller.serviceInterface.mjs +2 -0
  85. package/esm2022/src/generated/openapi/api/sbController.service.mjs +202 -0
  86. package/esm2022/src/generated/openapi/api/sbController.serviceInterface.mjs +2 -0
  87. package/esm2022/src/generated/openapi/api.module.mjs +40 -0
  88. package/esm2022/src/generated/openapi/configuration.mjs +99 -0
  89. package/esm2022/src/generated/openapi/encoder.mjs +19 -0
  90. package/esm2022/src/generated/openapi/index.mjs +7 -0
  91. package/esm2022/src/generated/openapi/loxia-mst-viewer-src-generated-openapi.mjs +5 -0
  92. package/esm2022/src/generated/openapi/model/actieDto.mjs +13 -0
  93. package/esm2022/src/generated/openapi/model/algemeneRitDto.mjs +13 -0
  94. package/esm2022/src/generated/openapi/model/bewegingDto.mjs +2 -0
  95. package/esm2022/src/generated/openapi/model/frontendKeycloakConfig.mjs +13 -0
  96. package/esm2022/src/generated/openapi/model/frontendProperties.mjs +2 -0
  97. package/esm2022/src/generated/openapi/model/logDto.mjs +2 -0
  98. package/esm2022/src/generated/openapi/model/models.mjs +10 -0
  99. package/esm2022/src/generated/openapi/model/ritRequestDto.mjs +2 -0
  100. package/esm2022/src/generated/openapi/model/signaleringsbeeldDto.mjs +13 -0
  101. package/esm2022/src/generated/openapi/model/signaleringsbeeldRequestDto.mjs +13 -0
  102. package/esm2022/src/generated/openapi/param.mjs +2 -0
  103. package/esm2022/src/generated/openapi/variables.mjs +9 -0
  104. package/fesm2022/loxia-mst-viewer-src-generated-openapi.mjs +1341 -0
  105. package/fesm2022/loxia-mst-viewer-src-generated-openapi.mjs.map +1 -0
  106. package/fesm2022/loxia-mst-viewer.mjs +1852 -620
  107. package/fesm2022/loxia-mst-viewer.mjs.map +1 -1
  108. package/generated/openapi/api/api.d.ts +22 -0
  109. package/generated/openapi/api/appConfigController.service.d.ts +38 -0
  110. package/generated/openapi/api/appConfigController.serviceInterface.d.ts +24 -0
  111. package/generated/openapi/api/bewegingController.service.d.ts +40 -0
  112. package/generated/openapi/api/bewegingController.serviceInterface.d.ts +27 -0
  113. package/generated/openapi/api/class0BuildProperties.service.d.ts +36 -0
  114. package/generated/openapi/api/class0BuildProperties.serviceInterface.d.ts +23 -0
  115. package/generated/openapi/api/connectorController.service.d.ts +38 -0
  116. package/generated/openapi/api/connectorController.serviceInterface.d.ts +25 -0
  117. package/generated/openapi/api/logController.service.d.ts +38 -0
  118. package/generated/openapi/api/logController.serviceInterface.d.ts +25 -0
  119. package/generated/openapi/api/p21Controller.service.d.ts +62 -0
  120. package/generated/openapi/api/p21Controller.serviceInterface.d.ts +30 -0
  121. package/generated/openapi/api/sbController.service.d.ts +60 -0
  122. package/generated/openapi/api/sbController.serviceInterface.d.ts +32 -0
  123. package/generated/openapi/api.module.d.ts +11 -0
  124. package/generated/openapi/configuration.d.ts +104 -0
  125. package/generated/openapi/encoder.d.ts +11 -0
  126. package/generated/openapi/index.d.ts +6 -0
  127. package/generated/openapi/model/actieDto.d.ts +35 -0
  128. package/generated/openapi/model/algemeneRitDto.d.ts +28 -0
  129. package/generated/openapi/model/bewegingDto.d.ts +37 -0
  130. package/generated/openapi/model/frontendKeycloakConfig.d.ts +16 -0
  131. package/generated/openapi/model/frontendProperties.d.ts +15 -0
  132. package/generated/openapi/model/logDto.d.ts +22 -0
  133. package/generated/openapi/model/models.d.ts +9 -0
  134. package/generated/openapi/model/ritRequestDto.d.ts +17 -0
  135. package/generated/openapi/model/signaleringsbeeldDto.d.ts +16 -0
  136. package/generated/openapi/model/signaleringsbeeldRequestDto.d.ts +16 -0
  137. package/generated/openapi/param.d.ts +37 -0
  138. package/generated/openapi/variables.d.ts +8 -0
  139. package/lib/atomic-components/message/message.component.d.ts +2 -2
  140. package/lib/atomic-components/progress-indicator/progress-indicator.entity.d.ts +1 -1
  141. package/lib/components/carousel-controls/carousel-controls.component.d.ts +1 -3
  142. package/lib/components/mstviewer/mstviewer.component.d.ts +2 -2
  143. package/lib/components/ritdelen-lijst/ritdelen-lijst.component.d.ts +2 -2
  144. package/lib/components/rpe/rpe.component.d.ts +1 -1
  145. package/lib/components/svg-visualisatie/svg-visualisatie.component.d.ts +1 -1
  146. package/lib/components/viewer-controls/viewer-controls.component.d.ts +3 -4
  147. package/lib/model/km-range.d.ts +1 -1
  148. package/lib/model/nieuwe-route.d.ts +2 -2
  149. package/lib/model/ritdeel.d.ts +11 -10
  150. package/lib/resources/mstlogging.resource.d.ts +6 -95
  151. package/lib/services/print-beweging.service.d.ts +4 -6
  152. package/lib/services/rit-lezer.service.d.ts +1 -1
  153. package/lib/services/signalerings-beeld-manager.service.d.ts +2 -2
  154. package/lib/services/viewer-control.service.d.ts +0 -2
  155. package/lib/state/actions/actions.d.ts +5 -11
  156. package/lib/state/actions/ritdelen.actions.d.ts +3 -7
  157. package/lib/state/effect/bepaal-ongeplande-acties.effect.d.ts +2 -1
  158. package/lib/state/effect/delete-ongeplande-actie.effect.d.ts +1 -1
  159. package/lib/state/effect/laad-route-files.effect.d.ts +2 -3
  160. package/lib/state/effect/laad-signaleringsbeelden.effect.d.ts +10 -10
  161. package/lib/state/effect/ritdelen.effect.d.ts +7 -6
  162. package/lib/state/mst-editor-state.d.ts +23 -86
  163. package/lib/util/actie-helper.d.ts +4 -4
  164. package/lib/util/logging-helper.d.ts +5 -6
  165. package/lib/util/utils.d.ts +0 -1
  166. package/package.json +7 -1
  167. package/src/generated/openapi/README.md +226 -0
  168. package/src/generated/openapi/api/api.d.ts +22 -0
  169. package/src/generated/openapi/api/appConfigController.service.d.ts +38 -0
  170. package/src/generated/openapi/api/appConfigController.serviceInterface.d.ts +24 -0
  171. package/src/generated/openapi/api/bewegingController.service.d.ts +40 -0
  172. package/src/generated/openapi/api/bewegingController.serviceInterface.d.ts +27 -0
  173. package/src/generated/openapi/api/class0BuildProperties.service.d.ts +36 -0
  174. package/src/generated/openapi/api/class0BuildProperties.serviceInterface.d.ts +23 -0
  175. package/src/generated/openapi/api/connectorController.service.d.ts +38 -0
  176. package/src/generated/openapi/api/connectorController.serviceInterface.d.ts +25 -0
  177. package/src/generated/openapi/api/logController.service.d.ts +38 -0
  178. package/src/generated/openapi/api/logController.serviceInterface.d.ts +25 -0
  179. package/src/generated/openapi/api/p21Controller.service.d.ts +62 -0
  180. package/src/generated/openapi/api/p21Controller.serviceInterface.d.ts +30 -0
  181. package/src/generated/openapi/api/sbController.service.d.ts +60 -0
  182. package/src/generated/openapi/api/sbController.serviceInterface.d.ts +32 -0
  183. package/src/generated/openapi/api.module.d.ts +11 -0
  184. package/src/generated/openapi/configuration.d.ts +104 -0
  185. package/src/generated/openapi/encoder.d.ts +11 -0
  186. package/src/generated/openapi/index.d.ts +6 -0
  187. package/src/generated/openapi/model/actieDto.d.ts +35 -0
  188. package/src/generated/openapi/model/algemeneRitDto.d.ts +28 -0
  189. package/src/generated/openapi/model/bewegingDto.d.ts +37 -0
  190. package/src/generated/openapi/model/frontendKeycloakConfig.d.ts +16 -0
  191. package/src/generated/openapi/model/frontendProperties.d.ts +15 -0
  192. package/src/generated/openapi/model/logDto.d.ts +22 -0
  193. package/src/generated/openapi/model/models.d.ts +9 -0
  194. package/src/generated/openapi/model/ritRequestDto.d.ts +17 -0
  195. package/src/generated/openapi/model/signaleringsbeeldDto.d.ts +16 -0
  196. package/src/generated/openapi/model/signaleringsbeeldRequestDto.d.ts +16 -0
  197. package/src/generated/openapi/param.d.ts +37 -0
  198. package/src/generated/openapi/variables.d.ts +8 -0
@@ -1,7 +1,7 @@
1
1
  import * as i2 from '@angular/common';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { EventEmitter, Output, Input, Component, Injectable, ChangeDetectionStrategy, ViewChild, HostListener, NgModule } from '@angular/core';
4
+ import { EventEmitter, Output, Input, Component, Injectable, ChangeDetectionStrategy, ViewChild, InjectionToken, Optional, Inject, SkipSelf, NgModule, HostListener } from '@angular/core';
5
5
  import * as i7 from '@loxia/imx-viewer';
6
6
  import { SelectieInfo, PopoverInfo, Point, SvgInfo, ImxViewerComponent, ImxViewerModule } from '@loxia/imx-viewer';
7
7
  import * as i4 from '@loxia/rijwegen';
@@ -11,13 +11,13 @@ import { createEffect, ofType, EffectsModule } from '@ngrx/effects';
11
11
  import * as i2$1 from '@ngrx/store';
12
12
  import { createAction, union, select, createReducer, on, StoreModule } from '@ngrx/store';
13
13
  import { ResourceModule } from '@ngx-resource/handler-ngx-http';
14
- import { BehaviorSubject, Subscription, from, combineLatest, of, throwError } from 'rxjs';
14
+ import { BehaviorSubject, from, Subscription, combineLatest, forkJoin, of, throwError } from 'rxjs';
15
+ import { filter, map, take, tap, catchError, withLatestFrom, switchMap } from 'rxjs/operators';
16
+ import * as i1 from '@angular/common/http';
17
+ import { HttpHeaders, HttpContext, HttpParams } from '@angular/common/http';
15
18
  import { __decorate } from 'tslib';
16
- import * as i1 from '@ngx-resource/core';
19
+ import * as i1$1 from '@ngx-resource/core';
17
20
  import { Resource, ResourceAction, ResourceRequestMethod, ResourceParams, ResourceModel } from '@ngx-resource/core';
18
- import { take, filter, map, catchError, withLatestFrom, switchMap, tap } from 'rxjs/operators';
19
- import * as i1$1 from '@angular/common/http';
20
- import { HttpHeaders } from '@angular/common/http';
21
21
 
22
22
  class Message {
23
23
  constructor(severity, text, timeout = 0) {
@@ -41,7 +41,7 @@ class MessageComponent {
41
41
  this.onClearMessage = new EventEmitter();
42
42
  }
43
43
  ngOnInit() {
44
- if (this.message.timeout > 0) {
44
+ if (this.message && this.message.timeout > 0) {
45
45
  setTimeout(() => {
46
46
  this.closeMessage({ stopPropagation: () => null });
47
47
  }, this.message.timeout);
@@ -53,7 +53,7 @@ class MessageComponent {
53
53
  this.message = undefined;
54
54
  }
55
55
  get severity() {
56
- return this.message.severity;
56
+ return this.message?.severity ?? '?';
57
57
  }
58
58
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
59
59
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: MessageComponent, selector: "loxia-message", inputs: { message: "message" }, outputs: { onClearMessage: "onClearMessage" }, ngImport: i0, template: "<div id=\"alert-1\" *ngIf=\"message\"\n [ngClass]=\"severity\"\n class=\" loxia-message flex items-center p-4 text-white\" role=\"alert\">\n <svg class=\"flex-shrink-0 size-4 mt-0.5\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path d=\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z\"></path>\n <path d=\"M12 9v4\"></path>\n <path d=\"M12 17h.01\"></path>\n </svg>\n <span class=\"sr-only\">Info</span>\n <div class=\"ms-3 text-sm font-medium\">\n {{message.text}}\n </div>\n <button type=\"button\"\n (click)=\"closeMessage($event)\"\n class=\"ms-auto -mx-1.5 -my-1.5 rounded-lg inline-flex items-center justify-center h-8 w-8\" data-dismiss-target=\"#alert-1\" aria-label=\"Close\">\n <span class=\"sr-only\">Close</span>\n <svg class=\"w-3 h-3\" aria-hidden=\"true\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 14 14\">\n <path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m1 1 6 6m0 0 6 6M7 7l6-6M7 7l-6 6\"/>\n </svg>\n </button>\n</div>\n", styles: ["svg{background-color:transparent;stroke-width:unset}.loxia-message.information{background-color:#0288d1}.loxia-message.warning{background-color:#ff6a00}.loxia-message.notification{background-color:#f3ed38}.loxia-message.error{background-color:#b5061b}.loxia-message.success{background-color:#297d03}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
@@ -124,6 +124,83 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
124
124
  args: [{ selector: 'loxia-progress-indicator', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"inline-block h-16 w-16 animate-spin rounded-full border-4 border-solid border-current border-e-transparent align-[-0.125em] text-surface motion-reduce:animate-[spin_1.5s_linear_infinite] dark:text-warning\"\n role=\"status\">\n <span class=\"!absolute !-m-px !h-px !w-px !overflow-hidden !whitespace-nowrap !border-0 !p-0 ![clip:rect(0,0,0,0)]\">\n Loading...\n </span>\n</div>\n" }]
125
125
  }] });
126
126
 
127
+ const SET_RIT_DELEN = '[mst] SetRitDelen';
128
+ const SET_RIT_DELEN_AFTER_UPDATE = '[mst] SetRitDelenAfterUpdate';
129
+ const UPDATE_RIT_DELEN = '[mst] UpdateRitDelen';
130
+ const TOGGLE_RITDEEL_ZICHTBAAR = '[mst] ToggleRitdeelZichtbaar';
131
+ const SET_RITDEEL_ZICHTBAAR = '[mst] ZetRitdeelZichtbaar';
132
+ const SET_ZICHTBAARHEID_ALLE_RITDELEN = '[mst] SetZichtbaarheidAlleRitdelen';
133
+ const TOGGLE_ZICHTBAARHEID_VOOR_BEWEGINGEN = '[mst] ToggleZichtbaarheidVoorBewegingen';
134
+ const SET_ALTERNATIEVE_RIT_DELEN = '[mst] SetAlternatieveRitDelen';
135
+ const RITDEEL_INVOEGEN = '[mst] RitdeelInvoegen';
136
+ const DELETE_RITDEEL = '[mst] DeleteRitdeel';
137
+ const DELETE_RITDEEL_ACTIE = '[mst] DeleteRitdeelActie';
138
+ const ADD_RITDEEL_ACTIE = '[mst] AddRitdeelActie';
139
+ const NAVIGEER = '[mst] Navigeer';
140
+ const NAVIGEER_VANAF = '[mst] NavigeerVanaf';
141
+ const setRitDelen = createAction(SET_RIT_DELEN, (ritDelen, paginationSize) => ({ ritDelen, paginationSize }));
142
+ const setRitdelenAfterUpdate = createAction(SET_RIT_DELEN_AFTER_UPDATE, (ritDelen) => ({ ritDelen }));
143
+ const navigeer = createAction(NAVIGEER, (stapSize, paginationSize) => ({ stapSize, paginationSize }));
144
+ const navigeerVanaf = createAction(NAVIGEER_VANAF, (paginationSize, ritdeel) => ({ paginationSize, ritdeel }));
145
+ const updateRitDelen = createAction(UPDATE_RIT_DELEN, (ritDelen) => ({ ritDelen }));
146
+ const toggleRitdeelZichtbaar = createAction(TOGGLE_RITDEEL_ZICHTBAAR, (ritDeel) => ({ ritDeel }));
147
+ const setRitdeelZichtbaar = createAction(SET_RITDEEL_ZICHTBAAR, (ritDeel, zichtbaar) => ({ ritDeel, zichtbaar }));
148
+ const deleteRitdeel = createAction(DELETE_RITDEEL, (ritDeel) => ({ ritDeel }));
149
+ const deleteRitdeelActie = createAction(DELETE_RITDEEL_ACTIE, (ritDeel, actie) => ({ ritDeel, actie }));
150
+ const addRitdeelActie = createAction(ADD_RITDEEL_ACTIE, (ritDeel, actie) => ({ ritDeel, actie }));
151
+ const setZichtbaarheidAlleRitdelen = createAction(SET_ZICHTBAARHEID_ALLE_RITDELEN, (zichtbaarheid) => ({ zichtbaarheid }));
152
+ const toggleZichtbaarheidVoorBewegingen = createAction(TOGGLE_ZICHTBAARHEID_VOOR_BEWEGINGEN, (bewegingIds) => ({ bewegingIds }));
153
+ const setAlternatieveRitDelen = createAction(SET_ALTERNATIEVE_RIT_DELEN, (alternatieveRitDeel) => ({ alternatieveRitDeel }));
154
+ const ritdeelInvoegen = createAction(RITDEEL_INVOEGEN, (nieuweRoute) => ({ nieuweRoute }));
155
+ // do not export return value
156
+ const ritdeelActions = union({
157
+ setRitDelen,
158
+ updateRitDelen,
159
+ setRitdelenAfterUpdate,
160
+ toggleRitdeelZichtbaar,
161
+ setRitdeelZichtbaar,
162
+ deleteRitdeel,
163
+ deleteRitdeelActie,
164
+ addRitdeelActie,
165
+ setZichtbaarheidAlleRitdelen,
166
+ toggleZichtbaarheidVoorBewegingen,
167
+ setAlternatieveRitDelen,
168
+ ritdeelInvoegen
169
+ });
170
+
171
+ class CarouselControlsComponent {
172
+ constructor(store) {
173
+ this.store = store;
174
+ this.paginationSize = 4;
175
+ this.sideNavOpen = false;
176
+ this.ritdelen$ = this.store.select('ritDelen').pipe(filter(r => r?.length > 0));
177
+ this.kanLinks$ = this.ritdelen$.pipe(map(r => this.kanLinksNavigeren(r)));
178
+ this.kanRechts$ = this.ritdelen$.pipe(map(r => this.kanRechtsNavigeren(r)));
179
+ }
180
+ kanLinksNavigeren(ritDelen) {
181
+ return ritDelen.length > this.paginationSize && !ritDelen[0].isBinnenWindow();
182
+ }
183
+ kanRechtsNavigeren(ritDelen) {
184
+ return ritDelen.length > this.paginationSize && !ritDelen[ritDelen.length - 1].isBinnenWindow();
185
+ }
186
+ navigeerNaarLinks(event) {
187
+ this.store.dispatch(navigeer(event?.ctrlKey ? -1 : -(this.paginationSize - 1), this.paginationSize));
188
+ }
189
+ navigeerNaarRechts(event) {
190
+ this.store.dispatch(navigeer(event?.ctrlKey ? 1 : this.paginationSize - 1, this.paginationSize));
191
+ }
192
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CarouselControlsComponent, deps: [{ token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
193
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: CarouselControlsComponent, selector: "carousel-controls", inputs: { paginationSize: "paginationSize", sideNavOpen: "sideNavOpen" }, ngImport: i0, template: "<div *ngIf=\"ritdelen$ | async\">\n <a class=\"loxia-carousel-control-prev\" [ngClass]=\"(sideNavOpen)?'carousel-sidebar-open':'carousel-sidebar'\" role=\"button\"\n data-slide=\"prev\" (click)=\"navigeerNaarLinks($event)\" [hidden]=\"(kanLinks$ | async) === false\">\n <span id=\"previous-page\" class=\"loxia-carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"loxia-sr-only\">Previous</span>\n</a>\n <a class=\"loxia-carousel-control-next\" style=\"width: 2%;\" role=\"button\" data-slide=\"next\" (click)=\"navigeerNaarRechts($event)\"\n [hidden]=\"(kanRechts$ | async) === false\">\n <span id=\"next-page\" class=\"loxia-carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"loxia-sr-only\">Next</span>\n </a>\n</div>\n", styles: [".loxia-carousel-control-prev{left:0}.loxia-carousel-control-next{right:0}.loxia-carousel-control-next-icon,.loxia-carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:50%/100% 100% no-repeat}.loxia-carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\")}.loxia-carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\")}.loxia-carousel-control-next:focus,.loxia-carousel-control-next:hover,.loxia-carousel-control-prev:focus,.loxia-carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.loxia-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.loxia-carousel-control-next,.loxia-carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}.carousel-sidebar{width:2%}.carousel-sidebar-open{width:2%;transition:all .3s;left:470px}[hidden]{display:none!important}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
194
+ }
195
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CarouselControlsComponent, decorators: [{
196
+ type: Component,
197
+ args: [{ selector: 'carousel-controls', template: "<div *ngIf=\"ritdelen$ | async\">\n <a class=\"loxia-carousel-control-prev\" [ngClass]=\"(sideNavOpen)?'carousel-sidebar-open':'carousel-sidebar'\" role=\"button\"\n data-slide=\"prev\" (click)=\"navigeerNaarLinks($event)\" [hidden]=\"(kanLinks$ | async) === false\">\n <span id=\"previous-page\" class=\"loxia-carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"loxia-sr-only\">Previous</span>\n</a>\n <a class=\"loxia-carousel-control-next\" style=\"width: 2%;\" role=\"button\" data-slide=\"next\" (click)=\"navigeerNaarRechts($event)\"\n [hidden]=\"(kanRechts$ | async) === false\">\n <span id=\"next-page\" class=\"loxia-carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"loxia-sr-only\">Next</span>\n </a>\n</div>\n", styles: [".loxia-carousel-control-prev{left:0}.loxia-carousel-control-next{right:0}.loxia-carousel-control-next-icon,.loxia-carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:50%/100% 100% no-repeat}.loxia-carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\")}.loxia-carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\")}.loxia-carousel-control-next:focus,.loxia-carousel-control-next:hover,.loxia-carousel-control-prev:focus,.loxia-carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.loxia-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.loxia-carousel-control-next,.loxia-carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}.carousel-sidebar{width:2%}.carousel-sidebar-open{width:2%;transition:all .3s;left:470px}[hidden]{display:none!important}\n"] }]
198
+ }], ctorParameters: () => [{ type: i2$1.Store }], propDecorators: { paginationSize: [{
199
+ type: Input
200
+ }], sideNavOpen: [{
201
+ type: Input
202
+ }] } });
203
+
127
204
  const version = '8.1.3-SNAPSHOT';
128
205
 
129
206
  const SET_EDITABLE = '[mst] SetEditable';
@@ -169,7 +246,6 @@ const LAAD_EN_VERWERK_SIGNALERINGSBEELD_INFO = '[mst] laadEnVerwerkSignaleringsb
169
246
  const FOCUS_OP_RITDEEL = '[mst] focusOpRitdeel';
170
247
  const FOCUS_OP_IDS = '[mst] focusOpIds';
171
248
  const BEPAAL_SB_INFOS = '[mst] bepaalSbInfos';
172
- const SET_SELECTED_RITDEEL = '[mst] SetSelectedRitdeel';
173
249
  const setEditable = createAction(SET_EDITABLE, (editable) => ({ editable }));
174
250
  const SetRitSelectieIds = createAction(SET_RIT_SELECTIE_IDS, (ids) => ({ ids }));
175
251
  const SetGeplandeActies = createAction(SET_GEPLANDE_ACTIES, (geplandeActiesMap) => ({ geplandeActiesMap }));
@@ -213,7 +289,6 @@ const navigeerBuitenRit = createAction(NAVIGEER_BUITEN_RIT, (randPuic) => ({ ran
213
289
  const focusOpRitdeel = createAction(FOCUS_OP_RITDEEL, (ritdeel, paginationSize, iaVersieInfo) => ({ ritdeel, paginationSize, iaVersieInfo }));
214
290
  const focusOpIds = createAction(FOCUS_OP_IDS, (puics) => ({ puics }));
215
291
  const bepaalSbInfos = createAction(BEPAAL_SB_INFOS, (rit, ongeplandeActies, iaVersie, ritGewijzigdToegestaan, paginationSize) => ({ rit, ongeplandeActies, iaVersie, ritGewijzigdToegestaan, paginationSize }));
216
- const SetSelectedRitdeel = createAction(SET_SELECTED_RITDEEL, (id) => ({ id }));
217
292
  // do not export return value
218
293
  const mstActions = union({
219
294
  setEditable,
@@ -251,239 +326,9 @@ const mstActions = union({
251
326
  ClearProgress,
252
327
  BewegingInvoegen,
253
328
  KeurAlleActiesGoed,
254
- UpdateRit,
255
- setSelectedRitdeel: SetSelectedRitdeel
256
- });
257
-
258
- const SET_RIT_DELEN = '[mst] SetRitDelen';
259
- const SET_RIT_DELEN_AFTER_UPDATE = '[mst] SetRitDelenAfterUpdate';
260
- const UPDATE_RIT_DELEN = '[mst] UpdateRitDelen';
261
- const TOGGLE_RITDEEL_ZICHTBAAR = '[mst] ToggleRitdeelZichtbaar';
262
- const SET_RITDEEL_ZICHTBAAR = '[mst] ZetRitdeelZichtbaar';
263
- const SET_ZICHTBAARHEID_ALLE_RITDELEN = '[mst] SetZichtbaarheidAlleRitdelen';
264
- const TOGGLE_ZICHTBAARHEID_VOOR_BEWEGINGEN = '[mst] ToggleZichtbaarheidVoorBewegingen';
265
- const SET_ALTERNATIEVE_RIT_DELEN = '[mst] SetAlternatieveRitDelen';
266
- const RITDEEL_INVOEGEN = '[mst] RitdeelInvoegen';
267
- const DELETE_RITDEEL = '[mst] DeleteRitdeel';
268
- const DELETE_RITDEEL_ACTIE = '[mst] DeleteRitdeelActie';
269
- const ADD_RITDEEL_ACTIE = '[mst] AddRitdeelActie';
270
- const NAVIGEER = '[mst] Navigeer';
271
- const NAVIGEER_VANAF = '[mst] NavigeerVanaf';
272
- const setRitDelen = createAction(SET_RIT_DELEN, (ritDelen, paginationSize, iaversieinfo) => ({ ritDelen, paginationSize, iaversieinfo }));
273
- const setRitdelenAfterUpdate = createAction(SET_RIT_DELEN_AFTER_UPDATE, (ritDelen) => ({ ritDelen }));
274
- const navigeer = createAction(NAVIGEER, (stapSize, paginationSize, iaversieinfo) => ({ stapSize, paginationSize, iaversieinfo }));
275
- const navigeerVanaf = createAction(NAVIGEER_VANAF, (paginationSize, iaversieinfo, ritdeel) => ({ paginationSize, iaversieinfo, ritdeel }));
276
- const updateRitDelen = createAction(UPDATE_RIT_DELEN, (ritDelen) => ({ ritDelen }));
277
- const toggleRitdeelZichtbaar = createAction(TOGGLE_RITDEEL_ZICHTBAAR, (ritDeel) => ({ ritDeel }));
278
- const setRitdeelZichtbaar = createAction(SET_RITDEEL_ZICHTBAAR, (ritDeel, zichtbaar) => ({ ritDeel, zichtbaar }));
279
- const deleteRitdeel = createAction(DELETE_RITDEEL, (ritDeel) => ({ ritDeel }));
280
- const deleteRitdeelActie = createAction(DELETE_RITDEEL_ACTIE, (ritDeel, actie) => ({ ritDeel, actie }));
281
- const addRitdeelActie = createAction(ADD_RITDEEL_ACTIE, (ritDeel, actie) => ({ ritDeel, actie }));
282
- const setZichtbaarheidAlleRitdelen = createAction(SET_ZICHTBAARHEID_ALLE_RITDELEN, (zichtbaarheid) => ({ zichtbaarheid }));
283
- const toggleZichtbaarheidVoorBewegingen = createAction(TOGGLE_ZICHTBAARHEID_VOOR_BEWEGINGEN, (bewegingIds) => ({ bewegingIds }));
284
- const setAlternatieveRitDelen = createAction(SET_ALTERNATIEVE_RIT_DELEN, (alternatieveRitDeel) => ({ alternatieveRitDeel }));
285
- const ritdeelInvoegen = createAction(RITDEEL_INVOEGEN, (nieuweRoute) => ({ nieuweRoute }));
286
- // do not export return value
287
- const ritdeelActions = union({
288
- setRitDelen,
289
- updateRitDelen,
290
- setRitdelenAfterUpdate,
291
- toggleRitdeelZichtbaar,
292
- setRitdeelZichtbaar,
293
- deleteRitdeel,
294
- deleteRitdeelActie,
295
- addRitdeelActie,
296
- setZichtbaarheidAlleRitdelen,
297
- toggleZichtbaarheidVoorBewegingen,
298
- setAlternatieveRitDelen,
299
- ritdeelInvoegen
329
+ UpdateRit
300
330
  });
301
331
 
302
- let MstLoggingResource = class MstLoggingResource extends Resource {
303
- constructor(restHandler, store) {
304
- super(restHandler);
305
- this.store = store;
306
- this.subscriptions = new Subscription();
307
- this.subscriptions.add(this.store.select('baseUrl').subscribe(baseUrl => this.$setUrl(baseUrl)));
308
- }
309
- ngOnDestroy() {
310
- this.subscriptions.unsubscribe();
311
- }
312
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MstLoggingResource, deps: [{ token: i1.ResourceHandler }, { token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
313
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MstLoggingResource }); }
314
- };
315
- __decorate([
316
- ResourceAction({
317
- path: '/',
318
- method: ResourceRequestMethod.Post
319
- })
320
- ], MstLoggingResource.prototype, "logErrorMessages", void 0);
321
- MstLoggingResource = __decorate([
322
- ResourceParams({
323
- pathPrefix: '/mst/services/rest/logging'
324
- })
325
- ], MstLoggingResource);
326
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MstLoggingResource, decorators: [{
327
- type: Injectable
328
- }], ctorParameters: () => [{ type: i1.ResourceHandler }, { type: i2$1.Store }], propDecorators: { logErrorMessages: [] } });
329
- class MstLoggingDto extends ResourceModel {
330
- constructor(data) {
331
- super();
332
- this.$resource = MstLoggingResource;
333
- this.$setData(data);
334
- }
335
- toJSON() {
336
- return {
337
- iaVersie: this.iaVersie,
338
- meldingLevel: this.meldingLevel,
339
- meldingMessage: this.meldingMessage,
340
- algemeneRitInfoDto: this.algemeneRitInfoDto,
341
- actieDto: this.actieDto,
342
- sbinfoDtos: this.sbinfoDtos
343
- };
344
- }
345
- toString() {
346
- return `${this.iaVersie},${this.meldingLevel},${this.meldingMessage},${this.algemeneRitInfoDto},
347
- ${this.actieDto},${this.sbinfoDtos}`;
348
- }
349
- $setData(data) {
350
- if (data) {
351
- this.iaVersie = data.iaVersie;
352
- this.meldingLevel = data.meldingLevel;
353
- this.meldingMessage = data.meldingMessage;
354
- this.algemeneRitInfoDto = data.algemeneRitInfoDto;
355
- this.actieDto = data.actieDto;
356
- this.sbinfoDtos = data.sbinfoDtos;
357
- }
358
- return this;
359
- }
360
- }
361
- class ActieDto {
362
- constructor(data) {
363
- this.$setData(data);
364
- }
365
- toJSON() {
366
- return {
367
- pplgNaam: this.pplgNaam,
368
- ritActieTypeOmschrijving: this.ritActieTypeOmschrijving,
369
- ritActieStatus: this.ritActieStatus,
370
- bewegingId: this.bewegingId,
371
- wisselType: this.wisselType,
372
- wisselNaam: this.wisselNaam,
373
- wisselKantCode: this.wisselKantCode,
374
- vanKilometerlint: this.vanKilometerlint,
375
- vanKilometrering: this.vanKilometrering,
376
- totKilometerlint: this.totKilometerlint,
377
- totKilometrering: this.totKilometrering
378
- };
379
- }
380
- toString() {
381
- return `${this.pplgNaam},${this.ritActieTypeOmschrijving},${this.ritActieStatus},
382
- ${this.bewegingId},${this.wisselType},${this.wisselNaam},${this.wisselKantCode},
383
- ${this.vanKilometerlint},${this.vanKilometrering},${this.totKilometerlint},${this.totKilometrering}`;
384
- }
385
- $setData(data) {
386
- if (data) {
387
- this.pplgNaam = data.pplgNaam;
388
- this.ritActieTypeOmschrijving = data.ritActieTypeOmschrijving;
389
- this.ritActieStatus = data.ritActieStatus;
390
- this.bewegingId = data.bewegingId;
391
- this.wisselType = data.wisselType;
392
- this.wisselNaam = data.wisselNaam;
393
- this.wisselKantCode = data.wisselKantCode;
394
- this.vanKilometerlint = data.vanKilometerlint;
395
- this.vanKilometrering = data.vanKilometrering;
396
- this.totKilometerlint = data.totKilometerlint;
397
- this.totKilometrering = data.totKilometrering;
398
- }
399
- return this;
400
- }
401
- }
402
- class AlgemeneRitInfoDto {
403
- constructor(data) {
404
- this.$setData(data);
405
- }
406
- toJSON() {
407
- return {
408
- id: this.id,
409
- jaarplanId: this.jaarplanId,
410
- volgnummer: this.volgnummer,
411
- machineTypeId: this.machineTypeId,
412
- machineTypeOmschrijving: this.machineTypeOmschrijving,
413
- ritDatum: this.ritDatum,
414
- startDatum: this.startDatum,
415
- eindDatum: this.eindDatum,
416
- ritNaam: this.ritNaam,
417
- startLocatie: this.startLocatie,
418
- eindLocatie: this.eindLocatie,
419
- ritStatus: this.ritStatus,
420
- modified: this.modified,
421
- modifiedBy: this.modifiedBy,
422
- planJobId: this.planJobId
423
- };
424
- }
425
- toString() {
426
- return `${this.id},${this.jaarplanId},${this.volgnummer},${this.machineTypeId},${this.machineTypeOmschrijving}
427
- ,${this.ritDatum},${this.startDatum},${this.eindDatum},${this.ritNaam},${this.startLocatie}
428
- ,${this.eindLocatie},${this.ritStatus},${this.modified},${this.modifiedBy},${this.planJobId}`;
429
- }
430
- $setData(data) {
431
- if (data) {
432
- this.id = data.id;
433
- this.jaarplanId = data.jaarplanId;
434
- this.volgnummer = data.volgnummer;
435
- this.machineTypeId = data.machineTypeId;
436
- this.machineTypeOmschrijving = data.machineTypeOmschrijving;
437
- this.ritDatum = data.ritDatum;
438
- this.startDatum = data.startDatum;
439
- this.eindDatum = data.eindDatum;
440
- this.ritNaam = data.ritNaam;
441
- this.startLocatie = data.startLocatie;
442
- this.eindLocatie = data.eindLocatie;
443
- this.ritStatus = data.ritStatus;
444
- this.modified = data.modified;
445
- this.modifiedBy = data.modifiedBy;
446
- this.planJobId = data.planJobId;
447
- }
448
- return this;
449
- }
450
- }
451
-
452
- class Utils {
453
- static flatMap(xs, f) {
454
- return xs.reduce((acc, x) => acc.concat(f(x)), []);
455
- }
456
- static getValidErorrMessage(err) {
457
- let errorMsg = '';
458
- if (err.msg) {
459
- errorMsg += err.msg;
460
- }
461
- if (Array.isArray(err.body)) {
462
- err.body.forEach(x => errorMsg += x);
463
- }
464
- else if (err.body) {
465
- if (err.body instanceof ProgressEvent) {
466
- errorMsg = 'Kon geen verbinding maken met de server';
467
- }
468
- else if (err.body.text) {
469
- errorMsg += err.body.text;
470
- }
471
- else {
472
- errorMsg += err.body;
473
- }
474
- }
475
- if (err.message) {
476
- errorMsg += err.message;
477
- }
478
- if (typeof err === 'string' || err instanceof String) {
479
- errorMsg += err;
480
- }
481
- if (errorMsg !== '') {
482
- return errorMsg;
483
- }
484
- }
485
- }
486
-
487
332
  /**
488
333
  * https://gist.github.com/jordanluyke/609a4fffb69d1ebafdadd313ee2ee804
489
334
  *
@@ -547,7 +392,7 @@ class ArrayMultimap {
547
392
  return Array.from(new Set(this._entries.map(entry => entry.key)));
548
393
  }
549
394
  values() {
550
- return Utils.flatMap(this._entries, x => x.value);
395
+ return this._entries.reduce((acc, x) => acc.concat(x.value), []);
551
396
  }
552
397
  put(key, value) {
553
398
  this._entries.push(new MultimapEntry(key, value));
@@ -653,6 +498,7 @@ class EditorService {
653
498
  this.signaleringsBeeldManagerService = signaleringsBeeldManagerService;
654
499
  this.initReadyPromise();
655
500
  }
501
+ // Called from GWT only, can be removed when GWT is gone. any is used because it will be removed with GWT
656
502
  setEditor(editor) {
657
503
  this.editor = editor;
658
504
  this.resolveReadyPromise();
@@ -660,6 +506,7 @@ class EditorService {
660
506
  isReady() {
661
507
  return this.promise;
662
508
  }
509
+ // Called from GWT only, can be removed when GWT is gone
663
510
  setSignaleringsBeeldManager(signaleringsBeeldManager) {
664
511
  this.signaleringsBeeldManagerService.set(signaleringsBeeldManager);
665
512
  }
@@ -705,7 +552,7 @@ class BewegingUtils {
705
552
  const retval = [];
706
553
  retval.length = ritDelen.length;
707
554
  const origineleBewegingMap = this.bepaalOrigineleBewegingMap(origineleBewegingen);
708
- let vorigeBeweging = null;
555
+ let vorigeBeweging = undefined;
709
556
  for (let i = 0; i < ritDelen.length; i++) {
710
557
  const ritdeel = ritDelen[i];
711
558
  if (ritdeel.beweging) {
@@ -735,7 +582,7 @@ class BewegingUtils {
735
582
  }
736
583
  static bewegingenZijnGewijzigd(ritDelen, origineleBewegingen) {
737
584
  const ritDelenArray = ritDelen
738
- .filter(r => r.beweging)
585
+ .filter(r => r.beweging?.id)
739
586
  .map(r => r.beweging.id)
740
587
  .sort((a, b) => a - b);
741
588
  const bewegingenIdArray = origineleBewegingen.map(b => b.id).sort((a, b) => a - b);
@@ -751,9 +598,9 @@ class BewegingUtils {
751
598
  return stringToCheck.indexOf(match) !== -1;
752
599
  }
753
600
  static isGewijzigd(ritdeel, nieuwDwangNummer, origineleBewegingenMap) {
754
- const dwangGewijzigd = ritdeel.beweging.dwangNummer !== nieuwDwangNummer;
601
+ const dwangGewijzigd = ritdeel.beweging?.dwangNummer !== nieuwDwangNummer;
755
602
  let gewijzigd = false;
756
- if (ritdeel.beweging.wijzigStatus === this.NORMAAL) {
603
+ if (ritdeel.beweging?.wijzigStatus === this.NORMAAL) {
757
604
  const origineleBewegingActies = origineleBewegingenMap.get(ritdeel.beweging.id);
758
605
  const huidigeActies = this.createSortedActieIdList(ritdeel.acties);
759
606
  gewijzigd = JSON.stringify(huidigeActies) !== JSON.stringify(origineleBewegingActies);
@@ -777,7 +624,7 @@ class BewegingUtils {
777
624
  let naarSeinPplg;
778
625
  let naarSpoor = newRitdeel.getNaarPrlSpoor();
779
626
  if (eindSein.getTypeAlsString() === BewegingUtils.SEIN_TYPE_FICTIEF) {
780
- if (newRitdeel.heeftVrijebaanInfo()) {
627
+ if (newRitdeel.heeftVrijebaanInfo() && newRitdeel.getVrijebaanRijweg()) {
781
628
  const vbEindSein = newRitdeel.getVrijebaanRijweg().getEindSein();
782
629
  naarSeinNaam = vbEindSein.getName();
783
630
  naarSeinPplg = vbEindSein.getPPLG();
@@ -836,6 +683,8 @@ class ViewerControlService {
836
683
  this.printing$ = new BehaviorSubject(false);
837
684
  this.sideNavOpen = false;
838
685
  this.sideNavOpen$ = new BehaviorSubject(this.sideNavOpen);
686
+ this.selectieInfos = [];
687
+ this.origineelTreinPad = {};
839
688
  this.subscriptions.add(combineLatest([
840
689
  store.select('ritSelectieIds'),
841
690
  store.select('actieOpRitSelectieIds'),
@@ -855,19 +704,18 @@ class ViewerControlService {
855
704
  selectie.push(new SelectieInfo(eind, 'zigzagNaar'));
856
705
  this.selectieInfos = selectie;
857
706
  }));
858
- this.subscriptions.add(store.select('ritDelen').subscribe(ritdelen => this.ritdelen = ritdelen));
859
707
  }
860
708
  toggleSideNavVisible() {
861
709
  this.sideNavOpen = !this.sideNavOpen;
862
710
  this.sideNavOpen$.next(this.sideNavOpen);
863
711
  }
864
712
  keurAlleActiesGoed(ongeplandeActies) {
865
- if (this.ritdelen) {
713
+ this.store.select('ritDelen').pipe(take(1), filter(ritdelen => !!ritdelen), tap(ritdelen => {
866
714
  this.store.dispatch(ShowProgress());
867
- const bewegingen = this.bewegingUtils.extractBewegingenUitRitdelen(this.ritdelen, this.origineelTreinPad.bewegingen);
868
- const alleActies = this.verzamelAlleActies(this.ritdelen, ongeplandeActies);
715
+ const bewegingen = this.bewegingUtils.extractBewegingenUitRitdelen(ritdelen, this.origineelTreinPad.bewegingen);
716
+ const alleActies = this.verzamelAlleActies(ritdelen, ongeplandeActies);
869
717
  this.store.dispatch(KeurAlleActiesGoed(this.getBewegingenZonderActies(bewegingen), alleActies));
870
- }
718
+ })).subscribe();
871
719
  }
872
720
  setValideRit(valideRit) {
873
721
  this.valideRit$.next(valideRit);
@@ -889,7 +737,7 @@ class ViewerControlService {
889
737
  }
890
738
  setOrigineelTreinPad(treinpad) {
891
739
  const rit = JSON.parse(JSON.stringify(treinpad));
892
- this.store.dispatch(SetAlgemeneRitInfo(new AlgemeneRitInfoDto({
740
+ this.store.dispatch(SetAlgemeneRitInfo({
893
741
  id: rit.id,
894
742
  jaarplanId: rit.jaarplanId,
895
743
  volgnummer: rit.volgnummer,
@@ -905,7 +753,7 @@ class ViewerControlService {
905
753
  modified: rit.modified,
906
754
  modifiedBy: rit.modifiedBy,
907
755
  planJobId: rit.planJobId
908
- })));
756
+ }));
909
757
  this.origineelTreinPad = rit;
910
758
  }
911
759
  isValideRit$() {
@@ -933,10 +781,10 @@ class DebugService {
933
781
  setDebugFlag(debug) {
934
782
  this.store.dispatch(SetDebug(debug));
935
783
  if (debug) {
936
- document.getElementById('svgContainer').addEventListener('mouseover', this.listener);
784
+ document.getElementById('svgContainer')?.addEventListener('mouseover', this.listener);
937
785
  }
938
786
  else {
939
- document.getElementById('svgContainer').removeEventListener('mouseover', this.listener);
787
+ document.getElementById('svgContainer')?.removeEventListener('mouseover', this.listener);
940
788
  }
941
789
  }
942
790
  debugEventListener() {
@@ -982,229 +830,1616 @@ class PrintBewegingService {
982
830
  this.store = store;
983
831
  this.viewerControlService = viewerControlService;
984
832
  this.sbmService = sbmService;
985
- this.store.select(s => s.ritDelen).subscribe(ritdelen => this.ritdelen = ritdelen);
986
- }
987
- printBeweging(bewegingId, paginationSize, iaVersieInfo) {
988
- const gevondenRitdeel = this.ritdelen.filter(r => parseInt(r.getBewegingId(), 10) === bewegingId);
989
- // hide/show de knoppen
990
- const printing = !!bewegingId && gevondenRitdeel.length === 1;
991
- this.viewerControlService.setPrinting(printing);
992
- if (!printing) {
993
- return Promise.reject(new Error('Geen beweging gevonden voor ' + bewegingId));
994
- }
995
- return new Promise((resolve) => {
996
- const ritdeel = gevondenRitdeel[0];
997
- if (ritdeel.isNietBeschikbaar()) {
998
- this.store.dispatch(navigeerVanaf(paginationSize, iaVersieInfo, ritdeel));
999
- this.store.dispatch(ShowProgress());
1000
- setTimeout(() => this.focusOpBeweging(ritdeel, resolve), 1000);
833
+ }
834
+ printBeweging(bewegingId, paginationSize) {
835
+ return new Promise((resolve, reject) => {
836
+ this.store.select('ritDelen').pipe(take(1), tap(ritdelen => {
837
+ const gevondenRitdeel = ritdelen.filter(r => Number.parseInt(r.getBewegingId(), 10) === bewegingId);
838
+ // hide/show de knoppen
839
+ const printing = !!bewegingId && gevondenRitdeel.length === 1;
840
+ this.viewerControlService.setPrinting(printing);
841
+ if (!printing) {
842
+ reject(new Error('Geen beweging gevonden voor ' + bewegingId));
843
+ return;
844
+ }
845
+ const ritdeel = gevondenRitdeel[0];
846
+ if (ritdeel.isNietBeschikbaar()) {
847
+ this.store.dispatch(navigeerVanaf(paginationSize, ritdeel));
848
+ this.store.dispatch(ShowProgress());
849
+ setTimeout(() => this.focusOpBeweging(ritdeel, resolve), 1000);
850
+ }
851
+ else {
852
+ this.focusOpBeweging(ritdeel, resolve);
853
+ }
854
+ })).subscribe();
855
+ });
856
+ }
857
+ focusOpBeweging(ritdeel, resolve) {
858
+ // deselecteer alles
859
+ this.store.dispatch(setZichtbaarheidAlleRitdelen(false));
860
+ // enable ritacties (checkbox) voor alle ritdelen met beweging die matched met bewegingId(s)
861
+ this.store.dispatch(toggleZichtbaarheidVoorBewegingen([parseInt(ritdeel.getBewegingId(), 10)]));
862
+ setTimeout(() => {
863
+ // dit neemt niet de vrijebaan elementen mee
864
+ const topoElementen = this.sbmService.bepaalRouteElementen(ritdeel.getRoute());
865
+ const dwangPuics = this.getPuics(topoElementen);
866
+ this.store.dispatch(focusOpIds(dwangPuics));
867
+ setTimeout(() => {
868
+ // resolve de promise, om aan te geven dat focus klaar is
869
+ resolve(true);
870
+ this.viewerControlService.setPrinting(false);
871
+ this.store.dispatch(ClearProgress());
872
+ }, 1000);
873
+ });
874
+ }
875
+ getPuics(topoElementen) {
876
+ return topoElementen.map(e => e.getPuic());
877
+ }
878
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PrintBewegingService, deps: [{ token: i2$1.Store }, { token: ViewerControlService }, { token: SignaleringsBeeldManagerService }], target: i0.ɵɵFactoryTarget.Injectable }); }
879
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PrintBewegingService, providedIn: 'root' }); }
880
+ }
881
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PrintBewegingService, decorators: [{
882
+ type: Injectable,
883
+ args: [{
884
+ providedIn: 'root'
885
+ }]
886
+ }], ctorParameters: () => [{ type: i2$1.Store }, { type: ViewerControlService }, { type: SignaleringsBeeldManagerService }] });
887
+
888
+ class RpeComponent {
889
+ constructor() {
890
+ this.baseurl = '';
891
+ this.path = '';
892
+ }
893
+ convertToScript() {
894
+ const element = this.script?.nativeElement;
895
+ const script = document.createElement('script');
896
+ script.type = 'text/javascript';
897
+ if (this.baseurl && this.path) {
898
+ script.src = this.baseurl + this.path;
899
+ // eslint-disable-next-line no-console
900
+ console.log('Code geladen van: ' + script.src); //useful for debugging in GWT environment
901
+ }
902
+ const parent = element.parentElement;
903
+ parent.parentElement.replaceChild(script, parent);
904
+ }
905
+ ngAfterViewInit() {
906
+ this.convertToScript();
907
+ }
908
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RpeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
909
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: RpeComponent, selector: "rpe-component", inputs: { baseurl: "baseurl", path: "path" }, viewQueries: [{ propertyName: "script", first: true, predicate: ["rpescript"], descendants: true }], ngImport: i0, template: "<div #rpescript style.display=\"none\">\n <ng-content></ng-content>\n</div>\n" }); }
910
+ }
911
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RpeComponent, decorators: [{
912
+ type: Component,
913
+ args: [{ selector: 'rpe-component', template: "<div #rpescript style.display=\"none\">\n <ng-content></ng-content>\n</div>\n" }]
914
+ }], propDecorators: { baseurl: [{
915
+ type: Input
916
+ }], path: [{
917
+ type: Input
918
+ }], script: [{
919
+ type: ViewChild,
920
+ args: ['rpescript']
921
+ }] } });
922
+
923
+ class OngeplandeActie {
924
+ constructor(actie, puics) {
925
+ this.actie = actie;
926
+ this.puics = puics;
927
+ }
928
+ }
929
+
930
+ class KmRange {
931
+ constructor(topologyElement, vanKilometreringen, totKilometreringen) {
932
+ this.topologyElement = topologyElement;
933
+ this.vanKilometreringen = vanKilometreringen;
934
+ this.totKilometreringen = totKilometreringen;
935
+ }
936
+ static rangeVoorPuntObject(topologyElement) {
937
+ return new KmRange(topologyElement, JsJavaUtil.listToArray(topologyElement.getKilometreringen()), JsJavaUtil.listToArray(topologyElement.getKilometreringen()));
938
+ }
939
+ static rangeVoorStrekObject(topologyElement, vanKilometreringen, totKilometreringen) {
940
+ return new KmRange(topologyElement, vanKilometreringen, totKilometreringen);
941
+ }
942
+ static getKilometrering(lintNaam, kilometreringen) {
943
+ const result = kilometreringen.filter(kilometrering => kilometrering.getKmLint() === lintNaam);
944
+ if (result.length >= 1) {
945
+ return result[0];
946
+ }
947
+ return undefined;
948
+ }
949
+ heeftOverlap(kilometrering1, kilometrering2) {
950
+ const vanKilometrering = KmRange.getKilometrering(kilometrering1.getKmLint(), this.vanKilometreringen);
951
+ const totKilometrering = KmRange.getKilometrering(kilometrering2.getKmLint(), this.totKilometreringen);
952
+ if (!vanKilometrering || !totKilometrering) {
953
+ return false;
954
+ }
955
+ let startKmWaarde = vanKilometrering.getKmWaarde();
956
+ let endKmWaarde = totKilometrering.getKmWaarde();
957
+ if (startKmWaarde > endKmWaarde) {
958
+ const temp = { end: endKmWaarde, start: startKmWaarde };
959
+ startKmWaarde = temp.end;
960
+ endKmWaarde = temp.start;
961
+ }
962
+ const actieStartKmWaarde = kilometrering1.getKmWaarde();
963
+ const actieEndKmWaarde = kilometrering2.getKmWaarde();
964
+ return endKmWaarde >= actieStartKmWaarde && actieEndKmWaarde >= startKmWaarde;
965
+ }
966
+ }
967
+
968
+ class WisselKantCode {
969
+ constructor(naam, kantCode) {
970
+ this.naam = naam;
971
+ this.kantCode = kantCode;
972
+ }
973
+ }
974
+
975
+ class MeldingEvent {
976
+ constructor(meldingMessage, meldingLevel) {
977
+ this.meldingMessage = meldingMessage;
978
+ this.meldingLevel = meldingLevel;
979
+ }
980
+ }
981
+
982
+ const MELDING_LEVEL_ERROR = 'error';
983
+ const MELDING_LEVEL_WARNING = 'warn';
984
+ const MELDING_LEVEL_INFO = 'info';
985
+ class MeldingBuilder {
986
+ static nietGevondenTakkenOngeplandeActies(nietGevondenTakken) {
987
+ return new MeldingEvent('Niet gevonden takken uit \'OngeplandeActies\': ' + nietGevondenTakken, MELDING_LEVEL_INFO);
988
+ }
989
+ static actieHighlightError(actieZonderElementen) {
990
+ return new MeldingEvent('Highlight error. Geen elementen kunnen vinden voor actie(s) met id: ' + actieZonderElementen, MELDING_LEVEL_ERROR);
991
+ }
992
+ }
993
+
994
+ class Utils {
995
+ static getValidErorrMessage(err) {
996
+ let errorMsg = '';
997
+ if (err.msg) {
998
+ errorMsg += err.msg;
999
+ }
1000
+ if (Array.isArray(err.body)) {
1001
+ err.body.forEach((x) => errorMsg += x);
1002
+ }
1003
+ else if (err.body) {
1004
+ if (err.body instanceof ProgressEvent) {
1005
+ errorMsg = 'Kon geen verbinding maken met de server';
1006
+ }
1007
+ else if (err.body.text) {
1008
+ errorMsg += err.body.text;
1009
+ }
1010
+ else {
1011
+ errorMsg += err.body;
1012
+ }
1013
+ }
1014
+ if (err.message) {
1015
+ errorMsg += err.message;
1016
+ }
1017
+ if (typeof err === 'string' || err instanceof String) {
1018
+ errorMsg += err;
1019
+ }
1020
+ if (errorMsg !== '') {
1021
+ return errorMsg;
1022
+ }
1023
+ else {
1024
+ return 'Er is een onbekende fout opgetreden';
1025
+ }
1026
+ }
1027
+ }
1028
+
1029
+ class MessageBuilder {
1030
+ static rwpDataNietGevonden(err) {
1031
+ return new Message(Severity.ERROR, 'Error bij ophalen van rijwegplan data: ' + err);
1032
+ }
1033
+ static rijwegNietGevonden(beweging) {
1034
+ return new Message(Severity.ERROR, `Rijweg van ${beweging.vanSpoor} in PPLG ${beweging.vanPplg} naar ${beweging.naarSpoor} niet gevonden`);
1035
+ }
1036
+ static rijwegplanNietGevonden(beweging) {
1037
+ return new Message(Severity.ERROR, `Rijwegplan van PPLG ${beweging.vanPplg} niet gevonden`);
1038
+ }
1039
+ static dwangNietGevonden(beweging) {
1040
+ return new Message(Severity.ERROR, `Dwang ${beweging.dwangNummer} voor rijweg van ${beweging.vanSpoor} in PPLG ${beweging.vanPplg} naar ${beweging.naarSpoor} niet gevonden`);
1041
+ }
1042
+ static nietGevondenSBI(err) {
1043
+ return new Message(Severity.ERROR, 'Error bij het ophalen van signaleringsbeeldinfo: ' + Utils.getValidErorrMessage(err));
1044
+ }
1045
+ static actieHighlightError(actieZonderElementen) {
1046
+ return new Message(Severity.ERROR, 'Highlight error. Geen elementen kunnen vinden voor actie(s) met id: ' + actieZonderElementen);
1047
+ }
1048
+ static ritFileAlGewijzigdError(beweging) {
1049
+ return new Message(Severity.ERROR, 'Rit bevat een beweging met status \'Gewijzigd\': Beweging met ID:' + beweging.id);
1050
+ }
1051
+ static meerDan12BladenGevonden(bladAmount) {
1052
+ return new Message(Severity.WARNING, 'Warning, Rit bevat ' + bladAmount + ' bladen. Er worden maximaal 12 bladen ondersteund.');
1053
+ }
1054
+ static nietGevondenTakkenOngeplandeActies(nietGevondenTakken) {
1055
+ return new Message(Severity.INFORMATION, 'Info, Niet gevonden takken uit \'OngeplandeActies\': ' + nietGevondenTakken);
1056
+ }
1057
+ }
1058
+
1059
+ /**
1060
+ * Custom HttpParameterCodec
1061
+ * Workaround for https://github.com/angular/angular/issues/18261
1062
+ */
1063
+ class CustomHttpParameterCodec {
1064
+ encodeKey(k) {
1065
+ return encodeURIComponent(k);
1066
+ }
1067
+ encodeValue(v) {
1068
+ return encodeURIComponent(v);
1069
+ }
1070
+ decodeKey(k) {
1071
+ return decodeURIComponent(k);
1072
+ }
1073
+ decodeValue(v) {
1074
+ return decodeURIComponent(v);
1075
+ }
1076
+ }
1077
+
1078
+ const BASE_PATH = new InjectionToken('basePath');
1079
+ const COLLECTION_FORMATS = {
1080
+ 'csv': ',',
1081
+ 'tsv': ' ',
1082
+ 'ssv': ' ',
1083
+ 'pipes': '|'
1084
+ };
1085
+
1086
+ class Configuration {
1087
+ constructor(configurationParameters = {}) {
1088
+ this.apiKeys = configurationParameters.apiKeys;
1089
+ this.username = configurationParameters.username;
1090
+ this.password = configurationParameters.password;
1091
+ this.accessToken = configurationParameters.accessToken;
1092
+ this.basePath = configurationParameters.basePath;
1093
+ this.withCredentials = configurationParameters.withCredentials;
1094
+ this.encoder = configurationParameters.encoder;
1095
+ if (configurationParameters.encodeParam) {
1096
+ this.encodeParam = configurationParameters.encodeParam;
1097
+ }
1098
+ else {
1099
+ this.encodeParam = param => this.defaultEncodeParam(param);
1100
+ }
1101
+ if (configurationParameters.credentials) {
1102
+ this.credentials = configurationParameters.credentials;
1103
+ }
1104
+ else {
1105
+ this.credentials = {};
1106
+ }
1107
+ // init default keycloak_auth credential
1108
+ if (!this.credentials['keycloak_auth']) {
1109
+ this.credentials['keycloak_auth'] = () => {
1110
+ return typeof this.accessToken === 'function'
1111
+ ? this.accessToken()
1112
+ : this.accessToken;
1113
+ };
1114
+ }
1115
+ }
1116
+ /**
1117
+ * Select the correct content-type to use for a request.
1118
+ * Uses {@link Configuration#isJsonMime} to determine the correct content-type.
1119
+ * If no content type is found return the first found type if the contentTypes is not empty
1120
+ * @param contentTypes - the array of content types that are available for selection
1121
+ * @returns the selected content-type or <code>undefined</code> if no selection could be made.
1122
+ */
1123
+ selectHeaderContentType(contentTypes) {
1124
+ if (contentTypes.length === 0) {
1125
+ return undefined;
1126
+ }
1127
+ const type = contentTypes.find((x) => this.isJsonMime(x));
1128
+ if (type === undefined) {
1129
+ return contentTypes[0];
1130
+ }
1131
+ return type;
1132
+ }
1133
+ /**
1134
+ * Select the correct accept content-type to use for a request.
1135
+ * Uses {@link Configuration#isJsonMime} to determine the correct accept content-type.
1136
+ * If no content type is found return the first found type if the contentTypes is not empty
1137
+ * @param accepts - the array of content types that are available for selection.
1138
+ * @returns the selected content-type or <code>undefined</code> if no selection could be made.
1139
+ */
1140
+ selectHeaderAccept(accepts) {
1141
+ if (accepts.length === 0) {
1142
+ return undefined;
1143
+ }
1144
+ const type = accepts.find((x) => this.isJsonMime(x));
1145
+ if (type === undefined) {
1146
+ return accepts[0];
1147
+ }
1148
+ return type;
1149
+ }
1150
+ /**
1151
+ * Check if the given MIME is a JSON MIME.
1152
+ * JSON MIME examples:
1153
+ * application/json
1154
+ * application/json; charset=UTF8
1155
+ * APPLICATION/JSON
1156
+ * application/vnd.company+json
1157
+ * @param mime - MIME (Multipurpose Internet Mail Extensions)
1158
+ * @return True if the given MIME is JSON, false otherwise.
1159
+ */
1160
+ isJsonMime(mime) {
1161
+ const jsonMime = new RegExp('^(application\/json|[^;/ \t]+\/[^;/ \t]+[+]json)[ \t]*(;.*)?$', 'i');
1162
+ return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');
1163
+ }
1164
+ lookupCredential(key) {
1165
+ const value = this.credentials[key];
1166
+ return typeof value === 'function'
1167
+ ? value()
1168
+ : value;
1169
+ }
1170
+ defaultEncodeParam(param) {
1171
+ // This implementation exists as fallback for missing configuration
1172
+ // and for backwards compatibility to older typescript-angular generator versions.
1173
+ // It only works for the 'simple' parameter style.
1174
+ // Date-handling only works for the 'date-time' format.
1175
+ // All other styles and Date-formats are probably handled incorrectly.
1176
+ //
1177
+ // But: if that's all you need (i.e.: the most common use-case): no need for customization!
1178
+ const value = param.dataFormat === 'date-time' && param.value instanceof Date
1179
+ ? param.value.toISOString()
1180
+ : param.value;
1181
+ return encodeURIComponent(String(value));
1182
+ }
1183
+ }
1184
+
1185
+ /**
1186
+ * MST
1187
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
1188
+ *
1189
+ * The version of the OpenAPI document: 1
1190
+ *
1191
+ *
1192
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
1193
+ * https://openapi-generator.tech
1194
+ * Do not edit the class manually.
1195
+ */
1196
+ /* tslint:disable:no-unused-variable member-ordering */
1197
+ class AppConfigControllerService {
1198
+ constructor(httpClient, basePath, configuration) {
1199
+ this.httpClient = httpClient;
1200
+ this.basePath = 'http://localhost:8080/mst';
1201
+ this.defaultHeaders = new HttpHeaders();
1202
+ this.configuration = new Configuration();
1203
+ if (configuration) {
1204
+ this.configuration = configuration;
1205
+ }
1206
+ if (typeof this.configuration.basePath !== 'string') {
1207
+ if (Array.isArray(basePath) && basePath.length > 0) {
1208
+ basePath = basePath[0];
1209
+ }
1210
+ if (typeof basePath !== 'string') {
1211
+ basePath = this.basePath;
1212
+ }
1213
+ this.configuration.basePath = basePath;
1214
+ }
1215
+ this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();
1216
+ }
1217
+ // @ts-ignore
1218
+ addToHttpParams(httpParams, value, key) {
1219
+ if (typeof value === "object" && value instanceof Date === false) {
1220
+ httpParams = this.addToHttpParamsRecursive(httpParams, value);
1221
+ }
1222
+ else {
1223
+ httpParams = this.addToHttpParamsRecursive(httpParams, value, key);
1224
+ }
1225
+ return httpParams;
1226
+ }
1227
+ addToHttpParamsRecursive(httpParams, value, key) {
1228
+ if (value == null) {
1229
+ return httpParams;
1230
+ }
1231
+ if (typeof value === "object") {
1232
+ if (Array.isArray(value)) {
1233
+ value.forEach(elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));
1234
+ }
1235
+ else if (value instanceof Date) {
1236
+ if (key != null) {
1237
+ httpParams = httpParams.append(key, value.toISOString().substring(0, 10));
1238
+ }
1239
+ else {
1240
+ throw Error("key may not be null if value is Date");
1241
+ }
1242
+ }
1243
+ else {
1244
+ Object.keys(value).forEach(k => httpParams = this.addToHttpParamsRecursive(httpParams, value[k], key != null ? `${key}.${k}` : k));
1245
+ }
1246
+ }
1247
+ else if (key != null) {
1248
+ httpParams = httpParams.append(key, value);
1249
+ }
1250
+ else {
1251
+ throw Error("key may not be null if value is not object or array");
1252
+ }
1253
+ return httpParams;
1254
+ }
1255
+ getAppConfig(observe = 'body', reportProgress = false, options) {
1256
+ let localVarHeaders = this.defaultHeaders;
1257
+ let localVarHttpHeaderAcceptSelected = options && options.httpHeaderAccept;
1258
+ if (localVarHttpHeaderAcceptSelected === undefined) {
1259
+ // to determine the Accept header
1260
+ const httpHeaderAccepts = [
1261
+ '*/*'
1262
+ ];
1263
+ localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
1264
+ }
1265
+ if (localVarHttpHeaderAcceptSelected !== undefined) {
1266
+ localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
1267
+ }
1268
+ let localVarHttpContext = options && options.context;
1269
+ if (localVarHttpContext === undefined) {
1270
+ localVarHttpContext = new HttpContext();
1271
+ }
1272
+ let localVarTransferCache = options && options.transferCache;
1273
+ if (localVarTransferCache === undefined) {
1274
+ localVarTransferCache = true;
1275
+ }
1276
+ let responseType_ = 'json';
1277
+ if (localVarHttpHeaderAcceptSelected) {
1278
+ if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
1279
+ responseType_ = 'text';
1280
+ }
1281
+ else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
1282
+ responseType_ = 'json';
1283
+ }
1284
+ else {
1285
+ responseType_ = 'blob';
1286
+ }
1287
+ }
1288
+ let localVarPath = `/rest/appconfig`;
1289
+ return this.httpClient.request('get', `${this.configuration.basePath}${localVarPath}`, {
1290
+ context: localVarHttpContext,
1291
+ responseType: responseType_,
1292
+ withCredentials: this.configuration.withCredentials,
1293
+ headers: localVarHeaders,
1294
+ observe: observe,
1295
+ transferCache: localVarTransferCache,
1296
+ reportProgress: reportProgress
1297
+ });
1298
+ }
1299
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AppConfigControllerService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
1300
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AppConfigControllerService, providedIn: 'root' }); }
1301
+ }
1302
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AppConfigControllerService, decorators: [{
1303
+ type: Injectable,
1304
+ args: [{
1305
+ providedIn: 'root'
1306
+ }]
1307
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
1308
+ type: Optional
1309
+ }, {
1310
+ type: Inject,
1311
+ args: [BASE_PATH]
1312
+ }] }, { type: Configuration, decorators: [{
1313
+ type: Optional
1314
+ }] }] });
1315
+
1316
+ /**
1317
+ * MST
1318
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
1319
+ *
1320
+ * The version of the OpenAPI document: 1
1321
+ *
1322
+ *
1323
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
1324
+ * https://openapi-generator.tech
1325
+ * Do not edit the class manually.
1326
+ */
1327
+ /* tslint:disable:no-unused-variable member-ordering */
1328
+ class BewegingControllerService {
1329
+ constructor(httpClient, basePath, configuration) {
1330
+ this.httpClient = httpClient;
1331
+ this.basePath = 'http://localhost:8080/mst';
1332
+ this.defaultHeaders = new HttpHeaders();
1333
+ this.configuration = new Configuration();
1334
+ if (configuration) {
1335
+ this.configuration = configuration;
1336
+ }
1337
+ if (typeof this.configuration.basePath !== 'string') {
1338
+ if (Array.isArray(basePath) && basePath.length > 0) {
1339
+ basePath = basePath[0];
1340
+ }
1341
+ if (typeof basePath !== 'string') {
1342
+ basePath = this.basePath;
1343
+ }
1344
+ this.configuration.basePath = basePath;
1345
+ }
1346
+ this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();
1347
+ }
1348
+ // @ts-ignore
1349
+ addToHttpParams(httpParams, value, key) {
1350
+ if (typeof value === "object" && value instanceof Date === false) {
1351
+ httpParams = this.addToHttpParamsRecursive(httpParams, value);
1352
+ }
1353
+ else {
1354
+ httpParams = this.addToHttpParamsRecursive(httpParams, value, key);
1355
+ }
1356
+ return httpParams;
1357
+ }
1358
+ addToHttpParamsRecursive(httpParams, value, key) {
1359
+ if (value == null) {
1360
+ return httpParams;
1361
+ }
1362
+ if (typeof value === "object") {
1363
+ if (Array.isArray(value)) {
1364
+ value.forEach(elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));
1365
+ }
1366
+ else if (value instanceof Date) {
1367
+ if (key != null) {
1368
+ httpParams = httpParams.append(key, value.toISOString().substring(0, 10));
1369
+ }
1370
+ else {
1371
+ throw Error("key may not be null if value is Date");
1372
+ }
1373
+ }
1374
+ else {
1375
+ Object.keys(value).forEach(k => httpParams = this.addToHttpParamsRecursive(httpParams, value[k], key != null ? `${key}.${k}` : k));
1376
+ }
1377
+ }
1378
+ else if (key != null) {
1379
+ httpParams = httpParams.append(key, value);
1380
+ }
1381
+ else {
1382
+ throw Error("key may not be null if value is not object or array");
1383
+ }
1384
+ return httpParams;
1385
+ }
1386
+ verrijkBewegingenMetOngeplandeActies(iaVersie, ritRequestDto, observe = 'body', reportProgress = false, options) {
1387
+ if (iaVersie === null || iaVersie === undefined) {
1388
+ throw new Error('Required parameter iaVersie was null or undefined when calling verrijkBewegingenMetOngeplandeActies.');
1389
+ }
1390
+ if (ritRequestDto === null || ritRequestDto === undefined) {
1391
+ throw new Error('Required parameter ritRequestDto was null or undefined when calling verrijkBewegingenMetOngeplandeActies.');
1392
+ }
1393
+ let localVarHeaders = this.defaultHeaders;
1394
+ let localVarHttpHeaderAcceptSelected = options && options.httpHeaderAccept;
1395
+ if (localVarHttpHeaderAcceptSelected === undefined) {
1396
+ // to determine the Accept header
1397
+ const httpHeaderAccepts = [
1398
+ '*/*'
1399
+ ];
1400
+ localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
1401
+ }
1402
+ if (localVarHttpHeaderAcceptSelected !== undefined) {
1403
+ localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
1404
+ }
1405
+ let localVarHttpContext = options && options.context;
1406
+ if (localVarHttpContext === undefined) {
1407
+ localVarHttpContext = new HttpContext();
1408
+ }
1409
+ let localVarTransferCache = options && options.transferCache;
1410
+ if (localVarTransferCache === undefined) {
1411
+ localVarTransferCache = true;
1412
+ }
1413
+ // to determine the Content-Type header
1414
+ const consumes = [
1415
+ 'application/json'
1416
+ ];
1417
+ const httpContentTypeSelected = this.configuration.selectHeaderContentType(consumes);
1418
+ if (httpContentTypeSelected !== undefined) {
1419
+ localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);
1420
+ }
1421
+ let responseType_ = 'json';
1422
+ if (localVarHttpHeaderAcceptSelected) {
1423
+ if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
1424
+ responseType_ = 'text';
1425
+ }
1426
+ else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
1427
+ responseType_ = 'json';
1428
+ }
1429
+ else {
1430
+ responseType_ = 'blob';
1431
+ }
1432
+ }
1433
+ let localVarPath = `/rest/beweging/${this.configuration.encodeParam({ name: "iaVersie", value: iaVersie, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: undefined })}`;
1434
+ return this.httpClient.request('put', `${this.configuration.basePath}${localVarPath}`, {
1435
+ context: localVarHttpContext,
1436
+ body: ritRequestDto,
1437
+ responseType: responseType_,
1438
+ withCredentials: this.configuration.withCredentials,
1439
+ headers: localVarHeaders,
1440
+ observe: observe,
1441
+ transferCache: localVarTransferCache,
1442
+ reportProgress: reportProgress
1443
+ });
1444
+ }
1445
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BewegingControllerService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
1446
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BewegingControllerService, providedIn: 'root' }); }
1447
+ }
1448
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BewegingControllerService, decorators: [{
1449
+ type: Injectable,
1450
+ args: [{
1451
+ providedIn: 'root'
1452
+ }]
1453
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
1454
+ type: Optional
1455
+ }, {
1456
+ type: Inject,
1457
+ args: [BASE_PATH]
1458
+ }] }, { type: Configuration, decorators: [{
1459
+ type: Optional
1460
+ }] }] });
1461
+
1462
+ /**
1463
+ * MST
1464
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
1465
+ *
1466
+ * The version of the OpenAPI document: 1
1467
+ *
1468
+ *
1469
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
1470
+ * https://openapi-generator.tech
1471
+ * Do not edit the class manually.
1472
+ */
1473
+ /* tslint:disable:no-unused-variable member-ordering */
1474
+ class Class0BuildPropertiesService {
1475
+ constructor(httpClient, basePath, configuration) {
1476
+ this.httpClient = httpClient;
1477
+ this.basePath = 'http://localhost:8080/mst';
1478
+ this.defaultHeaders = new HttpHeaders();
1479
+ this.configuration = new Configuration();
1480
+ if (configuration) {
1481
+ this.configuration = configuration;
1482
+ }
1483
+ if (typeof this.configuration.basePath !== 'string') {
1484
+ if (Array.isArray(basePath) && basePath.length > 0) {
1485
+ basePath = basePath[0];
1486
+ }
1487
+ if (typeof basePath !== 'string') {
1488
+ basePath = this.basePath;
1489
+ }
1490
+ this.configuration.basePath = basePath;
1491
+ }
1492
+ this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();
1493
+ }
1494
+ // @ts-ignore
1495
+ addToHttpParams(httpParams, value, key) {
1496
+ if (typeof value === "object" && value instanceof Date === false) {
1497
+ httpParams = this.addToHttpParamsRecursive(httpParams, value);
1498
+ }
1499
+ else {
1500
+ httpParams = this.addToHttpParamsRecursive(httpParams, value, key);
1501
+ }
1502
+ return httpParams;
1503
+ }
1504
+ addToHttpParamsRecursive(httpParams, value, key) {
1505
+ if (value == null) {
1506
+ return httpParams;
1507
+ }
1508
+ if (typeof value === "object") {
1509
+ if (Array.isArray(value)) {
1510
+ value.forEach(elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));
1511
+ }
1512
+ else if (value instanceof Date) {
1513
+ if (key != null) {
1514
+ httpParams = httpParams.append(key, value.toISOString().substring(0, 10));
1515
+ }
1516
+ else {
1517
+ throw Error("key may not be null if value is Date");
1518
+ }
1519
+ }
1520
+ else {
1521
+ Object.keys(value).forEach(k => httpParams = this.addToHttpParamsRecursive(httpParams, value[k], key != null ? `${key}.${k}` : k));
1522
+ }
1523
+ }
1524
+ else if (key != null) {
1525
+ httpParams = httpParams.append(key, value);
1526
+ }
1527
+ else {
1528
+ throw Error("key may not be null if value is not object or array");
1529
+ }
1530
+ return httpParams;
1531
+ }
1532
+ getBuildProperties(observe = 'body', reportProgress = false, options) {
1533
+ let localVarHeaders = this.defaultHeaders;
1534
+ let localVarHttpHeaderAcceptSelected = options && options.httpHeaderAccept;
1535
+ if (localVarHttpHeaderAcceptSelected === undefined) {
1536
+ // to determine the Accept header
1537
+ const httpHeaderAccepts = [
1538
+ 'application/json'
1539
+ ];
1540
+ localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
1541
+ }
1542
+ if (localVarHttpHeaderAcceptSelected !== undefined) {
1543
+ localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
1544
+ }
1545
+ let localVarHttpContext = options && options.context;
1546
+ if (localVarHttpContext === undefined) {
1547
+ localVarHttpContext = new HttpContext();
1548
+ }
1549
+ let localVarTransferCache = options && options.transferCache;
1550
+ if (localVarTransferCache === undefined) {
1551
+ localVarTransferCache = true;
1552
+ }
1553
+ let responseType_ = 'json';
1554
+ if (localVarHttpHeaderAcceptSelected) {
1555
+ if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
1556
+ responseType_ = 'text';
1557
+ }
1558
+ else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
1559
+ responseType_ = 'json';
1560
+ }
1561
+ else {
1562
+ responseType_ = 'blob';
1563
+ }
1564
+ }
1565
+ let localVarPath = `/build.properties`;
1566
+ return this.httpClient.request('get', `${this.configuration.basePath}${localVarPath}`, {
1567
+ context: localVarHttpContext,
1568
+ responseType: responseType_,
1569
+ withCredentials: this.configuration.withCredentials,
1570
+ headers: localVarHeaders,
1571
+ observe: observe,
1572
+ transferCache: localVarTransferCache,
1573
+ reportProgress: reportProgress
1574
+ });
1575
+ }
1576
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: Class0BuildPropertiesService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
1577
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: Class0BuildPropertiesService, providedIn: 'root' }); }
1578
+ }
1579
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: Class0BuildPropertiesService, decorators: [{
1580
+ type: Injectable,
1581
+ args: [{
1582
+ providedIn: 'root'
1583
+ }]
1584
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
1585
+ type: Optional
1586
+ }, {
1587
+ type: Inject,
1588
+ args: [BASE_PATH]
1589
+ }] }, { type: Configuration, decorators: [{
1590
+ type: Optional
1591
+ }] }] });
1592
+
1593
+ /**
1594
+ * MST
1595
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
1596
+ *
1597
+ * The version of the OpenAPI document: 1
1598
+ *
1599
+ *
1600
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
1601
+ * https://openapi-generator.tech
1602
+ * Do not edit the class manually.
1603
+ */
1604
+ /* tslint:disable:no-unused-variable member-ordering */
1605
+ class ConnectorControllerService {
1606
+ constructor(httpClient, basePath, configuration) {
1607
+ this.httpClient = httpClient;
1608
+ this.basePath = 'http://localhost:8080/mst';
1609
+ this.defaultHeaders = new HttpHeaders();
1610
+ this.configuration = new Configuration();
1611
+ if (configuration) {
1612
+ this.configuration = configuration;
1613
+ }
1614
+ if (typeof this.configuration.basePath !== 'string') {
1615
+ if (Array.isArray(basePath) && basePath.length > 0) {
1616
+ basePath = basePath[0];
1617
+ }
1618
+ if (typeof basePath !== 'string') {
1619
+ basePath = this.basePath;
1620
+ }
1621
+ this.configuration.basePath = basePath;
1622
+ }
1623
+ this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();
1624
+ }
1625
+ // @ts-ignore
1626
+ addToHttpParams(httpParams, value, key) {
1627
+ if (typeof value === "object" && value instanceof Date === false) {
1628
+ httpParams = this.addToHttpParamsRecursive(httpParams, value);
1629
+ }
1630
+ else {
1631
+ httpParams = this.addToHttpParamsRecursive(httpParams, value, key);
1632
+ }
1633
+ return httpParams;
1634
+ }
1635
+ addToHttpParamsRecursive(httpParams, value, key) {
1636
+ if (value == null) {
1637
+ return httpParams;
1638
+ }
1639
+ if (typeof value === "object") {
1640
+ if (Array.isArray(value)) {
1641
+ value.forEach(elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));
1642
+ }
1643
+ else if (value instanceof Date) {
1644
+ if (key != null) {
1645
+ httpParams = httpParams.append(key, value.toISOString().substring(0, 10));
1646
+ }
1647
+ else {
1648
+ throw Error("key may not be null if value is Date");
1649
+ }
1650
+ }
1651
+ else {
1652
+ Object.keys(value).forEach(k => httpParams = this.addToHttpParamsRecursive(httpParams, value[k], key != null ? `${key}.${k}` : k));
1653
+ }
1654
+ }
1655
+ else if (key != null) {
1656
+ httpParams = httpParams.append(key, value);
1657
+ }
1658
+ else {
1659
+ throw Error("key may not be null if value is not object or array");
1660
+ }
1661
+ return httpParams;
1662
+ }
1663
+ getOtherConnector(iaVersie, connectorPuic, observe = 'body', reportProgress = false, options) {
1664
+ if (iaVersie === null || iaVersie === undefined) {
1665
+ throw new Error('Required parameter iaVersie was null or undefined when calling getOtherConnector.');
1666
+ }
1667
+ if (connectorPuic === null || connectorPuic === undefined) {
1668
+ throw new Error('Required parameter connectorPuic was null or undefined when calling getOtherConnector.');
1669
+ }
1670
+ let localVarHeaders = this.defaultHeaders;
1671
+ let localVarHttpHeaderAcceptSelected = options && options.httpHeaderAccept;
1672
+ if (localVarHttpHeaderAcceptSelected === undefined) {
1673
+ // to determine the Accept header
1674
+ const httpHeaderAccepts = [
1675
+ '*/*'
1676
+ ];
1677
+ localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
1678
+ }
1679
+ if (localVarHttpHeaderAcceptSelected !== undefined) {
1680
+ localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
1681
+ }
1682
+ let localVarHttpContext = options && options.context;
1683
+ if (localVarHttpContext === undefined) {
1684
+ localVarHttpContext = new HttpContext();
1685
+ }
1686
+ let localVarTransferCache = options && options.transferCache;
1687
+ if (localVarTransferCache === undefined) {
1688
+ localVarTransferCache = true;
1689
+ }
1690
+ let responseType_ = 'json';
1691
+ if (localVarHttpHeaderAcceptSelected) {
1692
+ if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
1693
+ responseType_ = 'text';
1694
+ }
1695
+ else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
1696
+ responseType_ = 'json';
1697
+ }
1698
+ else {
1699
+ responseType_ = 'blob';
1700
+ }
1701
+ }
1702
+ let localVarPath = `/rest/connector/${this.configuration.encodeParam({ name: "iaVersie", value: iaVersie, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: undefined })}/${this.configuration.encodeParam({ name: "connectorPuic", value: connectorPuic, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: undefined })}`;
1703
+ return this.httpClient.request('get', `${this.configuration.basePath}${localVarPath}`, {
1704
+ context: localVarHttpContext,
1705
+ responseType: responseType_,
1706
+ withCredentials: this.configuration.withCredentials,
1707
+ headers: localVarHeaders,
1708
+ observe: observe,
1709
+ transferCache: localVarTransferCache,
1710
+ reportProgress: reportProgress
1711
+ });
1712
+ }
1713
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ConnectorControllerService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
1714
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ConnectorControllerService, providedIn: 'root' }); }
1715
+ }
1716
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ConnectorControllerService, decorators: [{
1717
+ type: Injectable,
1718
+ args: [{
1719
+ providedIn: 'root'
1720
+ }]
1721
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
1722
+ type: Optional
1723
+ }, {
1724
+ type: Inject,
1725
+ args: [BASE_PATH]
1726
+ }] }, { type: Configuration, decorators: [{
1727
+ type: Optional
1728
+ }] }] });
1729
+
1730
+ /**
1731
+ * MST
1732
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
1733
+ *
1734
+ * The version of the OpenAPI document: 1
1735
+ *
1736
+ *
1737
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
1738
+ * https://openapi-generator.tech
1739
+ * Do not edit the class manually.
1740
+ */
1741
+ /* tslint:disable:no-unused-variable member-ordering */
1742
+ class LogControllerService {
1743
+ constructor(httpClient, basePath, configuration) {
1744
+ this.httpClient = httpClient;
1745
+ this.basePath = 'http://localhost:8080/mst';
1746
+ this.defaultHeaders = new HttpHeaders();
1747
+ this.configuration = new Configuration();
1748
+ if (configuration) {
1749
+ this.configuration = configuration;
1750
+ }
1751
+ if (typeof this.configuration.basePath !== 'string') {
1752
+ if (Array.isArray(basePath) && basePath.length > 0) {
1753
+ basePath = basePath[0];
1754
+ }
1755
+ if (typeof basePath !== 'string') {
1756
+ basePath = this.basePath;
1757
+ }
1758
+ this.configuration.basePath = basePath;
1759
+ }
1760
+ this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();
1761
+ }
1762
+ // @ts-ignore
1763
+ addToHttpParams(httpParams, value, key) {
1764
+ if (typeof value === "object" && value instanceof Date === false) {
1765
+ httpParams = this.addToHttpParamsRecursive(httpParams, value);
1766
+ }
1767
+ else {
1768
+ httpParams = this.addToHttpParamsRecursive(httpParams, value, key);
1769
+ }
1770
+ return httpParams;
1771
+ }
1772
+ addToHttpParamsRecursive(httpParams, value, key) {
1773
+ if (value == null) {
1774
+ return httpParams;
1775
+ }
1776
+ if (typeof value === "object") {
1777
+ if (Array.isArray(value)) {
1778
+ value.forEach(elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));
1779
+ }
1780
+ else if (value instanceof Date) {
1781
+ if (key != null) {
1782
+ httpParams = httpParams.append(key, value.toISOString().substring(0, 10));
1783
+ }
1784
+ else {
1785
+ throw Error("key may not be null if value is Date");
1786
+ }
1787
+ }
1788
+ else {
1789
+ Object.keys(value).forEach(k => httpParams = this.addToHttpParamsRecursive(httpParams, value[k], key != null ? `${key}.${k}` : k));
1790
+ }
1791
+ }
1792
+ else if (key != null) {
1793
+ httpParams = httpParams.append(key, value);
1794
+ }
1795
+ else {
1796
+ throw Error("key may not be null if value is not object or array");
1797
+ }
1798
+ return httpParams;
1799
+ }
1800
+ log(logDto, observe = 'body', reportProgress = false, options) {
1801
+ if (logDto === null || logDto === undefined) {
1802
+ throw new Error('Required parameter logDto was null or undefined when calling log.');
1803
+ }
1804
+ let localVarHeaders = this.defaultHeaders;
1805
+ let localVarHttpHeaderAcceptSelected = options && options.httpHeaderAccept;
1806
+ if (localVarHttpHeaderAcceptSelected === undefined) {
1807
+ // to determine the Accept header
1808
+ const httpHeaderAccepts = [];
1809
+ localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
1810
+ }
1811
+ if (localVarHttpHeaderAcceptSelected !== undefined) {
1812
+ localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
1813
+ }
1814
+ let localVarHttpContext = options && options.context;
1815
+ if (localVarHttpContext === undefined) {
1816
+ localVarHttpContext = new HttpContext();
1817
+ }
1818
+ let localVarTransferCache = options && options.transferCache;
1819
+ if (localVarTransferCache === undefined) {
1820
+ localVarTransferCache = true;
1821
+ }
1822
+ // to determine the Content-Type header
1823
+ const consumes = [
1824
+ 'application/json'
1825
+ ];
1826
+ const httpContentTypeSelected = this.configuration.selectHeaderContentType(consumes);
1827
+ if (httpContentTypeSelected !== undefined) {
1828
+ localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);
1829
+ }
1830
+ let responseType_ = 'json';
1831
+ if (localVarHttpHeaderAcceptSelected) {
1832
+ if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
1833
+ responseType_ = 'text';
1834
+ }
1835
+ else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
1836
+ responseType_ = 'json';
1837
+ }
1838
+ else {
1839
+ responseType_ = 'blob';
1840
+ }
1841
+ }
1842
+ let localVarPath = `/rest/logging/`;
1843
+ return this.httpClient.request('post', `${this.configuration.basePath}${localVarPath}`, {
1844
+ context: localVarHttpContext,
1845
+ body: logDto,
1846
+ responseType: responseType_,
1847
+ withCredentials: this.configuration.withCredentials,
1848
+ headers: localVarHeaders,
1849
+ observe: observe,
1850
+ transferCache: localVarTransferCache,
1851
+ reportProgress: reportProgress
1852
+ });
1853
+ }
1854
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LogControllerService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
1855
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LogControllerService, providedIn: 'root' }); }
1856
+ }
1857
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LogControllerService, decorators: [{
1858
+ type: Injectable,
1859
+ args: [{
1860
+ providedIn: 'root'
1861
+ }]
1862
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
1863
+ type: Optional
1864
+ }, {
1865
+ type: Inject,
1866
+ args: [BASE_PATH]
1867
+ }] }, { type: Configuration, decorators: [{
1868
+ type: Optional
1869
+ }] }] });
1870
+
1871
+ /**
1872
+ * MST
1873
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
1874
+ *
1875
+ * The version of the OpenAPI document: 1
1876
+ *
1877
+ *
1878
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
1879
+ * https://openapi-generator.tech
1880
+ * Do not edit the class manually.
1881
+ */
1882
+ /* tslint:disable:no-unused-variable member-ordering */
1883
+ class P21ControllerService {
1884
+ constructor(httpClient, basePath, configuration) {
1885
+ this.httpClient = httpClient;
1886
+ this.basePath = 'http://localhost:8080/mst';
1887
+ this.defaultHeaders = new HttpHeaders();
1888
+ this.configuration = new Configuration();
1889
+ if (configuration) {
1890
+ this.configuration = configuration;
1891
+ }
1892
+ if (typeof this.configuration.basePath !== 'string') {
1893
+ if (Array.isArray(basePath) && basePath.length > 0) {
1894
+ basePath = basePath[0];
1895
+ }
1896
+ if (typeof basePath !== 'string') {
1897
+ basePath = this.basePath;
1898
+ }
1899
+ this.configuration.basePath = basePath;
1900
+ }
1901
+ this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();
1902
+ }
1903
+ /**
1904
+ * @param consumes string[] mime-types
1905
+ * @return true: consumes contains 'multipart/form-data', false: otherwise
1906
+ */
1907
+ canConsumeForm(consumes) {
1908
+ const form = 'multipart/form-data';
1909
+ for (const consume of consumes) {
1910
+ if (form === consume) {
1911
+ return true;
1912
+ }
1913
+ }
1914
+ return false;
1915
+ }
1916
+ // @ts-ignore
1917
+ addToHttpParams(httpParams, value, key) {
1918
+ if (typeof value === "object" && value instanceof Date === false) {
1919
+ httpParams = this.addToHttpParamsRecursive(httpParams, value);
1920
+ }
1921
+ else {
1922
+ httpParams = this.addToHttpParamsRecursive(httpParams, value, key);
1923
+ }
1924
+ return httpParams;
1925
+ }
1926
+ addToHttpParamsRecursive(httpParams, value, key) {
1927
+ if (value == null) {
1928
+ return httpParams;
1929
+ }
1930
+ if (typeof value === "object") {
1931
+ if (Array.isArray(value)) {
1932
+ value.forEach(elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));
1933
+ }
1934
+ else if (value instanceof Date) {
1935
+ if (key != null) {
1936
+ httpParams = httpParams.append(key, value.toISOString().substring(0, 10));
1937
+ }
1938
+ else {
1939
+ throw Error("key may not be null if value is Date");
1940
+ }
1941
+ }
1942
+ else {
1943
+ Object.keys(value).forEach(k => httpParams = this.addToHttpParamsRecursive(httpParams, value[k], key != null ? `${key}.${k}` : k));
1944
+ }
1945
+ }
1946
+ else if (key != null) {
1947
+ httpParams = httpParams.append(key, value);
1948
+ }
1949
+ else {
1950
+ throw Error("key may not be null if value is not object or array");
1951
+ }
1952
+ return httpParams;
1953
+ }
1954
+ createP21Levering(p21Levering, update, observe = 'body', reportProgress = false, options) {
1955
+ if (p21Levering === null || p21Levering === undefined) {
1956
+ throw new Error('Required parameter p21Levering was null or undefined when calling createP21Levering.');
1957
+ }
1958
+ let localVarHeaders = this.defaultHeaders;
1959
+ let localVarCredential;
1960
+ // authentication (keycloak_auth) required
1961
+ localVarCredential = this.configuration.lookupCredential('keycloak_auth');
1962
+ if (localVarCredential) {
1963
+ localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);
1964
+ }
1965
+ let localVarHttpHeaderAcceptSelected = options && options.httpHeaderAccept;
1966
+ if (localVarHttpHeaderAcceptSelected === undefined) {
1967
+ // to determine the Accept header
1968
+ const httpHeaderAccepts = [
1969
+ '*/*'
1970
+ ];
1971
+ localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
1972
+ }
1973
+ if (localVarHttpHeaderAcceptSelected !== undefined) {
1974
+ localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
1975
+ }
1976
+ let localVarHttpContext = options && options.context;
1977
+ if (localVarHttpContext === undefined) {
1978
+ localVarHttpContext = new HttpContext();
1979
+ }
1980
+ let localVarTransferCache = options && options.transferCache;
1981
+ if (localVarTransferCache === undefined) {
1982
+ localVarTransferCache = true;
1983
+ }
1984
+ // to determine the Content-Type header
1985
+ const consumes = [
1986
+ 'multipart/form-data'
1987
+ ];
1988
+ const canConsumeForm = this.canConsumeForm(consumes);
1989
+ let localVarFormParams;
1990
+ let localVarUseForm = false;
1991
+ let localVarConvertFormParamsToString = false;
1992
+ // use FormData to transmit files using content-type "multipart/form-data"
1993
+ // see https://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data
1994
+ localVarUseForm = canConsumeForm;
1995
+ if (localVarUseForm) {
1996
+ localVarFormParams = new FormData();
1997
+ }
1998
+ else {
1999
+ localVarFormParams = new HttpParams({ encoder: this.encoder });
2000
+ }
2001
+ if (update !== undefined) {
2002
+ localVarFormParams = localVarFormParams.append('update', update) || localVarFormParams;
2003
+ }
2004
+ if (p21Levering !== undefined) {
2005
+ localVarFormParams = localVarFormParams.append('p21Levering', p21Levering) || localVarFormParams;
2006
+ }
2007
+ let responseType_ = 'json';
2008
+ if (localVarHttpHeaderAcceptSelected) {
2009
+ if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
2010
+ responseType_ = 'text';
2011
+ }
2012
+ else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
2013
+ responseType_ = 'json';
2014
+ }
2015
+ else {
2016
+ responseType_ = 'blob';
2017
+ }
2018
+ }
2019
+ let localVarPath = `/services/secure/rest/backend/uploadversie`;
2020
+ return this.httpClient.request('post', `${this.configuration.basePath}${localVarPath}`, {
2021
+ context: localVarHttpContext,
2022
+ body: localVarConvertFormParamsToString ? localVarFormParams.toString() : localVarFormParams,
2023
+ responseType: responseType_,
2024
+ withCredentials: this.configuration.withCredentials,
2025
+ headers: localVarHeaders,
2026
+ observe: observe,
2027
+ transferCache: localVarTransferCache,
2028
+ reportProgress: reportProgress
2029
+ });
2030
+ }
2031
+ getVersies(observe = 'body', reportProgress = false, options) {
2032
+ let localVarHeaders = this.defaultHeaders;
2033
+ let localVarCredential;
2034
+ // authentication (keycloak_auth) required
2035
+ localVarCredential = this.configuration.lookupCredential('keycloak_auth');
2036
+ if (localVarCredential) {
2037
+ localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);
2038
+ }
2039
+ let localVarHttpHeaderAcceptSelected = options && options.httpHeaderAccept;
2040
+ if (localVarHttpHeaderAcceptSelected === undefined) {
2041
+ // to determine the Accept header
2042
+ const httpHeaderAccepts = [
2043
+ 'application/json'
2044
+ ];
2045
+ localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
2046
+ }
2047
+ if (localVarHttpHeaderAcceptSelected !== undefined) {
2048
+ localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
2049
+ }
2050
+ let localVarHttpContext = options && options.context;
2051
+ if (localVarHttpContext === undefined) {
2052
+ localVarHttpContext = new HttpContext();
2053
+ }
2054
+ let localVarTransferCache = options && options.transferCache;
2055
+ if (localVarTransferCache === undefined) {
2056
+ localVarTransferCache = true;
2057
+ }
2058
+ let responseType_ = 'json';
2059
+ if (localVarHttpHeaderAcceptSelected) {
2060
+ if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
2061
+ responseType_ = 'text';
2062
+ }
2063
+ else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
2064
+ responseType_ = 'json';
2065
+ }
2066
+ else {
2067
+ responseType_ = 'blob';
2068
+ }
2069
+ }
2070
+ let localVarPath = `/services/secure/rest/backend/versies`;
2071
+ return this.httpClient.request('get', `${this.configuration.basePath}${localVarPath}`, {
2072
+ context: localVarHttpContext,
2073
+ responseType: responseType_,
2074
+ withCredentials: this.configuration.withCredentials,
2075
+ headers: localVarHeaders,
2076
+ observe: observe,
2077
+ transferCache: localVarTransferCache,
2078
+ reportProgress: reportProgress
2079
+ });
2080
+ }
2081
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: P21ControllerService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
2082
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: P21ControllerService, providedIn: 'root' }); }
2083
+ }
2084
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: P21ControllerService, decorators: [{
2085
+ type: Injectable,
2086
+ args: [{
2087
+ providedIn: 'root'
2088
+ }]
2089
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
2090
+ type: Optional
2091
+ }, {
2092
+ type: Inject,
2093
+ args: [BASE_PATH]
2094
+ }] }, { type: Configuration, decorators: [{
2095
+ type: Optional
2096
+ }] }] });
2097
+
2098
+ /**
2099
+ * MST
2100
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
2101
+ *
2102
+ * The version of the OpenAPI document: 1
2103
+ *
2104
+ *
2105
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2106
+ * https://openapi-generator.tech
2107
+ * Do not edit the class manually.
2108
+ */
2109
+ /* tslint:disable:no-unused-variable member-ordering */
2110
+ class SbControllerService {
2111
+ constructor(httpClient, basePath, configuration) {
2112
+ this.httpClient = httpClient;
2113
+ this.basePath = 'http://localhost:8080/mst';
2114
+ this.defaultHeaders = new HttpHeaders();
2115
+ this.configuration = new Configuration();
2116
+ if (configuration) {
2117
+ this.configuration = configuration;
2118
+ }
2119
+ if (typeof this.configuration.basePath !== 'string') {
2120
+ if (Array.isArray(basePath) && basePath.length > 0) {
2121
+ basePath = basePath[0];
2122
+ }
2123
+ if (typeof basePath !== 'string') {
2124
+ basePath = this.basePath;
2125
+ }
2126
+ this.configuration.basePath = basePath;
2127
+ }
2128
+ this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();
2129
+ }
2130
+ // @ts-ignore
2131
+ addToHttpParams(httpParams, value, key) {
2132
+ if (typeof value === "object" && value instanceof Date === false) {
2133
+ httpParams = this.addToHttpParamsRecursive(httpParams, value);
2134
+ }
2135
+ else {
2136
+ httpParams = this.addToHttpParamsRecursive(httpParams, value, key);
2137
+ }
2138
+ return httpParams;
2139
+ }
2140
+ addToHttpParamsRecursive(httpParams, value, key) {
2141
+ if (value == null) {
2142
+ return httpParams;
2143
+ }
2144
+ if (typeof value === "object") {
2145
+ if (Array.isArray(value)) {
2146
+ value.forEach(elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));
2147
+ }
2148
+ else if (value instanceof Date) {
2149
+ if (key != null) {
2150
+ httpParams = httpParams.append(key, value.toISOString().substring(0, 10));
2151
+ }
2152
+ else {
2153
+ throw Error("key may not be null if value is Date");
2154
+ }
2155
+ }
2156
+ else {
2157
+ Object.keys(value).forEach(k => httpParams = this.addToHttpParamsRecursive(httpParams, value[k], key != null ? `${key}.${k}` : k));
2158
+ }
2159
+ }
2160
+ else if (key != null) {
2161
+ httpParams = httpParams.append(key, value);
2162
+ }
2163
+ else {
2164
+ throw Error("key may not be null if value is not object or array");
2165
+ }
2166
+ return httpParams;
2167
+ }
2168
+ getSignaleringsbeelden(signaleringsbeeldRequestDto, observe = 'body', reportProgress = false, options) {
2169
+ if (signaleringsbeeldRequestDto === null || signaleringsbeeldRequestDto === undefined) {
2170
+ throw new Error('Required parameter signaleringsbeeldRequestDto was null or undefined when calling getSignaleringsbeelden.');
2171
+ }
2172
+ let localVarHeaders = this.defaultHeaders;
2173
+ let localVarHttpHeaderAcceptSelected = options && options.httpHeaderAccept;
2174
+ if (localVarHttpHeaderAcceptSelected === undefined) {
2175
+ // to determine the Accept header
2176
+ const httpHeaderAccepts = [
2177
+ '*/*'
2178
+ ];
2179
+ localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
2180
+ }
2181
+ if (localVarHttpHeaderAcceptSelected !== undefined) {
2182
+ localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
2183
+ }
2184
+ let localVarHttpContext = options && options.context;
2185
+ if (localVarHttpContext === undefined) {
2186
+ localVarHttpContext = new HttpContext();
2187
+ }
2188
+ let localVarTransferCache = options && options.transferCache;
2189
+ if (localVarTransferCache === undefined) {
2190
+ localVarTransferCache = true;
2191
+ }
2192
+ // to determine the Content-Type header
2193
+ const consumes = [
2194
+ 'application/json'
2195
+ ];
2196
+ const httpContentTypeSelected = this.configuration.selectHeaderContentType(consumes);
2197
+ if (httpContentTypeSelected !== undefined) {
2198
+ localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);
2199
+ }
2200
+ let responseType_ = 'json';
2201
+ if (localVarHttpHeaderAcceptSelected) {
2202
+ if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
2203
+ responseType_ = 'text';
2204
+ }
2205
+ else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
2206
+ responseType_ = 'json';
1001
2207
  }
1002
2208
  else {
1003
- this.focusOpBeweging(ritdeel, resolve);
2209
+ responseType_ = 'blob';
1004
2210
  }
2211
+ }
2212
+ let localVarPath = `/rest/signaleringsbeeldeninfo`;
2213
+ return this.httpClient.request('post', `${this.configuration.basePath}${localVarPath}`, {
2214
+ context: localVarHttpContext,
2215
+ body: signaleringsbeeldRequestDto,
2216
+ responseType: responseType_,
2217
+ withCredentials: this.configuration.withCredentials,
2218
+ headers: localVarHeaders,
2219
+ observe: observe,
2220
+ transferCache: localVarTransferCache,
2221
+ reportProgress: reportProgress
1005
2222
  });
1006
2223
  }
1007
- focusOpBeweging(ritdeel, resolve) {
1008
- // deselecteer alles
1009
- this.store.dispatch(setZichtbaarheidAlleRitdelen(false));
1010
- // enable ritacties (checkbox) voor alle ritdelen met beweging die matched met bewegingId(s)
1011
- this.store.dispatch(toggleZichtbaarheidVoorBewegingen([parseInt(ritdeel.getBewegingId(), 10)]));
1012
- setTimeout(() => {
1013
- // dit neemt niet de vrijebaan elementen mee
1014
- const topoElementen = this.sbmService.bepaalRouteElementen(ritdeel.getRoute());
1015
- const dwangPuics = this.getPuics(topoElementen);
1016
- this.store.dispatch(focusOpIds(dwangPuics));
1017
- setTimeout(() => {
1018
- // resolve de promise, om aan te geven dat focus klaar is
1019
- resolve(true);
1020
- this.viewerControlService.setPrinting(false);
1021
- this.store.dispatch(ClearProgress());
1022
- }, 1000);
2224
+ valideerIaVersie(versie, observe = 'body', reportProgress = false, options) {
2225
+ if (versie === null || versie === undefined) {
2226
+ throw new Error('Required parameter versie was null or undefined when calling valideerIaVersie.');
2227
+ }
2228
+ let localVarQueryParameters = new HttpParams({ encoder: this.encoder });
2229
+ if (versie !== undefined && versie !== null) {
2230
+ localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, versie, 'versie');
2231
+ }
2232
+ let localVarHeaders = this.defaultHeaders;
2233
+ let localVarHttpHeaderAcceptSelected = options && options.httpHeaderAccept;
2234
+ if (localVarHttpHeaderAcceptSelected === undefined) {
2235
+ // to determine the Accept header
2236
+ const httpHeaderAccepts = [];
2237
+ localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
2238
+ }
2239
+ if (localVarHttpHeaderAcceptSelected !== undefined) {
2240
+ localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
2241
+ }
2242
+ let localVarHttpContext = options && options.context;
2243
+ if (localVarHttpContext === undefined) {
2244
+ localVarHttpContext = new HttpContext();
2245
+ }
2246
+ let localVarTransferCache = options && options.transferCache;
2247
+ if (localVarTransferCache === undefined) {
2248
+ localVarTransferCache = true;
2249
+ }
2250
+ let responseType_ = 'json';
2251
+ if (localVarHttpHeaderAcceptSelected) {
2252
+ if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
2253
+ responseType_ = 'text';
2254
+ }
2255
+ else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
2256
+ responseType_ = 'json';
2257
+ }
2258
+ else {
2259
+ responseType_ = 'blob';
2260
+ }
2261
+ }
2262
+ let localVarPath = `/rest/signaleringsbeeldeninfo/valideeriaversie`;
2263
+ return this.httpClient.request('get', `${this.configuration.basePath}${localVarPath}`, {
2264
+ context: localVarHttpContext,
2265
+ params: localVarQueryParameters,
2266
+ responseType: responseType_,
2267
+ withCredentials: this.configuration.withCredentials,
2268
+ headers: localVarHeaders,
2269
+ observe: observe,
2270
+ transferCache: localVarTransferCache,
2271
+ reportProgress: reportProgress
1023
2272
  });
1024
2273
  }
1025
- getPuics(topoElementen) {
1026
- return topoElementen.map(e => e.getPuic());
1027
- }
1028
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PrintBewegingService, deps: [{ token: i2$1.Store }, { token: ViewerControlService }, { token: SignaleringsBeeldManagerService }], target: i0.ɵɵFactoryTarget.Injectable }); }
1029
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PrintBewegingService, providedIn: 'root' }); }
2274
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SbControllerService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
2275
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SbControllerService, providedIn: 'root' }); }
1030
2276
  }
1031
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PrintBewegingService, decorators: [{
2277
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SbControllerService, decorators: [{
1032
2278
  type: Injectable,
1033
2279
  args: [{
1034
2280
  providedIn: 'root'
1035
2281
  }]
1036
- }], ctorParameters: () => [{ type: i2$1.Store }, { type: ViewerControlService }, { type: SignaleringsBeeldManagerService }] });
2282
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
2283
+ type: Optional
2284
+ }, {
2285
+ type: Inject,
2286
+ args: [BASE_PATH]
2287
+ }] }, { type: Configuration, decorators: [{
2288
+ type: Optional
2289
+ }] }] });
1037
2290
 
1038
- class RpeComponent {
1039
- convertToScript() {
1040
- const element = this.script.nativeElement;
1041
- const script = document.createElement('script');
1042
- script.type = 'text/javascript';
1043
- if (this.baseurl && this.path) {
1044
- script.src = this.baseurl + this.path;
1045
- // eslint-disable-next-line no-console
1046
- console.log('Code geladen van: ' + script.src); //useful for debugging in GWT environment
1047
- }
1048
- const parent = element.parentElement;
1049
- parent.parentElement.replaceChild(script, parent);
1050
- }
1051
- ngAfterViewInit() {
1052
- this.convertToScript();
1053
- }
1054
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RpeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1055
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: RpeComponent, selector: "rpe-component", inputs: { baseurl: "baseurl", path: "path" }, viewQueries: [{ propertyName: "script", first: true, predicate: ["rpescript"], descendants: true }], ngImport: i0, template: "<div #rpescript style.display=\"none\">\n <ng-content></ng-content>\n</div>\n" }); }
1056
- }
1057
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RpeComponent, decorators: [{
1058
- type: Component,
1059
- args: [{ selector: 'rpe-component', template: "<div #rpescript style.display=\"none\">\n <ng-content></ng-content>\n</div>\n" }]
1060
- }], propDecorators: { baseurl: [{
1061
- type: Input
1062
- }], path: [{
1063
- type: Input
1064
- }], script: [{
1065
- type: ViewChild,
1066
- args: ['rpescript']
1067
- }] } });
2291
+ const APIS = [AppConfigControllerService, BewegingControllerService, Class0BuildPropertiesService, ConnectorControllerService, LogControllerService, P21ControllerService, SbControllerService];
1068
2292
 
1069
- class OngeplandeActie {
1070
- constructor(actie, puics) {
1071
- this.actie = actie;
1072
- this.puics = puics;
1073
- }
1074
- }
2293
+ /**
2294
+ * MST
2295
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
2296
+ *
2297
+ * The version of the OpenAPI document: 1
2298
+ *
2299
+ *
2300
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2301
+ * https://openapi-generator.tech
2302
+ * Do not edit the class manually.
2303
+ */
1075
2304
 
1076
- class KmRange {
1077
- constructor(topologyElement, vanKilometreringen, totKilometreringen) {
1078
- this.topologyElement = topologyElement;
1079
- this.vanKilometreringen = vanKilometreringen;
1080
- this.totKilometreringen = totKilometreringen;
1081
- }
1082
- static rangeVoorPuntObject(topologyElement) {
1083
- return new KmRange(topologyElement, JsJavaUtil.listToArray(topologyElement.getKilometreringen()), JsJavaUtil.listToArray(topologyElement.getKilometreringen()));
1084
- }
1085
- static rangeVoorStrekObject(topologyElement, vanKilometreringen, totKilometreringen) {
1086
- return new KmRange(topologyElement, vanKilometreringen, totKilometreringen);
1087
- }
1088
- static getKilometrering(lintNaam, kilometreringen) {
1089
- const result = kilometreringen.filter(kilometrering => kilometrering.getKmLint() === lintNaam);
1090
- if (result.length >= 1) {
1091
- return result[0];
1092
- }
1093
- return null;
1094
- }
1095
- heeftOverlap(kilometrering1, kilometrering2) {
1096
- const vanKilometrering = KmRange.getKilometrering(kilometrering1.getKmLint(), this.vanKilometreringen);
1097
- const totKilometrering = KmRange.getKilometrering(kilometrering2.getKmLint(), this.totKilometreringen);
1098
- if (!vanKilometrering || !totKilometrering) {
1099
- return false;
1100
- }
1101
- let startKmWaarde = vanKilometrering.getKmWaarde();
1102
- let endKmWaarde = totKilometrering.getKmWaarde();
1103
- if (startKmWaarde > endKmWaarde) {
1104
- const temp = { end: endKmWaarde, start: startKmWaarde };
1105
- startKmWaarde = temp.end;
1106
- endKmWaarde = temp.start;
1107
- }
1108
- const actieStartKmWaarde = kilometrering1.getKmWaarde();
1109
- const actieEndKmWaarde = kilometrering2.getKmWaarde();
1110
- return endKmWaarde >= actieStartKmWaarde && actieEndKmWaarde >= startKmWaarde;
1111
- }
1112
- }
2305
+ /**
2306
+ * MST
2307
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
2308
+ *
2309
+ * The version of the OpenAPI document: 1
2310
+ *
2311
+ *
2312
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2313
+ * https://openapi-generator.tech
2314
+ * Do not edit the class manually.
2315
+ */
1113
2316
 
1114
- class WisselKantCode {
1115
- constructor(naam, kantCode) {
1116
- this.naam = naam;
1117
- this.kantCode = kantCode;
1118
- }
1119
- }
2317
+ /**
2318
+ * MST
2319
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
2320
+ *
2321
+ * The version of the OpenAPI document: 1
2322
+ *
2323
+ *
2324
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2325
+ * https://openapi-generator.tech
2326
+ * Do not edit the class manually.
2327
+ */
1120
2328
 
1121
- class MeldingEvent {
1122
- constructor(meldingMessage, meldingLevel) {
1123
- this.meldingMessage = meldingMessage;
1124
- this.meldingLevel = meldingLevel;
1125
- }
1126
- }
2329
+ /**
2330
+ * MST
2331
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
2332
+ *
2333
+ * The version of the OpenAPI document: 1
2334
+ *
2335
+ *
2336
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2337
+ * https://openapi-generator.tech
2338
+ * Do not edit the class manually.
2339
+ */
1127
2340
 
1128
- const MELDING_LEVEL_ERROR = 'error';
1129
- const MELDING_LEVEL_WARNING = 'warn';
1130
- const MELDING_LEVEL_INFO = 'info';
1131
- class MeldingBuilder {
1132
- static nietGevondenTakkenOngeplandeActies(nietGevondenTakken) {
1133
- return new MeldingEvent('Niet gevonden takken uit \'OngeplandeActies\': ' + nietGevondenTakken, MELDING_LEVEL_INFO);
2341
+ /**
2342
+ * MST
2343
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
2344
+ *
2345
+ * The version of the OpenAPI document: 1
2346
+ *
2347
+ *
2348
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
2349
+ * https://openapi-generator.tech
2350
+ * Do not edit the class manually.
2351
+ */
2352
+
2353
+ class ApiModule {
2354
+ static forRoot(configurationFactory) {
2355
+ return {
2356
+ ngModule: ApiModule,
2357
+ providers: [{ provide: Configuration, useFactory: configurationFactory }]
2358
+ };
1134
2359
  }
1135
- static actieHighlightError(actieZonderElementen) {
1136
- return new MeldingEvent('Highlight error. Geen elementen kunnen vinden voor actie(s) met id: ' + actieZonderElementen, MELDING_LEVEL_ERROR);
2360
+ constructor(parentModule, http) {
2361
+ if (parentModule) {
2362
+ throw new Error('ApiModule is already loaded. Import in your base AppModule only.');
2363
+ }
2364
+ if (!http) {
2365
+ throw new Error('You need to import the HttpClientModule in your AppModule! \n' +
2366
+ 'See also https://github.com/angular/angular/issues/20575');
2367
+ }
1137
2368
  }
2369
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ApiModule, deps: [{ token: ApiModule, optional: true, skipSelf: true }, { token: i1.HttpClient, optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
2370
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.7", ngImport: i0, type: ApiModule }); }
2371
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ApiModule }); }
1138
2372
  }
2373
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ApiModule, decorators: [{
2374
+ type: NgModule,
2375
+ args: [{
2376
+ imports: [],
2377
+ declarations: [],
2378
+ exports: [],
2379
+ providers: []
2380
+ }]
2381
+ }], ctorParameters: () => [{ type: ApiModule, decorators: [{
2382
+ type: Optional
2383
+ }, {
2384
+ type: SkipSelf
2385
+ }] }, { type: i1.HttpClient, decorators: [{
2386
+ type: Optional
2387
+ }] }] });
1139
2388
 
1140
- class MessageBuilder {
1141
- static rwpDataNietGevonden(err) {
1142
- return new Message(Severity.ERROR, 'Error bij ophalen van rijwegplan data: ' + err);
1143
- }
1144
- static rijwegNietGevonden(beweging) {
1145
- return new Message(Severity.ERROR, `Rijweg van ${beweging.vanSpoor} in PPLG ${beweging.vanPplg} naar ${beweging.naarSpoor} niet gevonden`);
1146
- }
1147
- static rijwegplanNietGevonden(beweging) {
1148
- return new Message(Severity.ERROR, `Rijwegplan van PPLG ${beweging.vanPplg} niet gevonden`);
1149
- }
1150
- static dwangNietGevonden(beweging) {
1151
- return new Message(Severity.ERROR, `Dwang ${beweging.dwangNummer} voor rijweg van ${beweging.vanSpoor} in PPLG ${beweging.vanPplg} naar ${beweging.naarSpoor} niet gevonden`);
1152
- }
1153
- static nietGevondenSBI(err) {
1154
- return new Message(Severity.ERROR, 'Error bij het ophalen van signaleringsbeeldinfo: ' + Utils.getValidErorrMessage(err));
1155
- }
1156
- static actieHighlightError(actieZonderElementen) {
1157
- return new Message(Severity.ERROR, 'Highlight error. Geen elementen kunnen vinden voor actie(s) met id: ' + actieZonderElementen);
1158
- }
1159
- static ritFileAlGewijzigdError(beweging) {
1160
- return new Message(Severity.ERROR, 'Rit bevat een beweging met status \'Gewijzigd\': Beweging met ID:' + beweging.id);
2389
+ class MstLoggingResource {
2390
+ constructor(controller, store) {
2391
+ this.controller = controller;
2392
+ this.store = store;
2393
+ this.subscriptions = new Subscription();
2394
+ this.subscriptions.add(this.store.select('baseUrl').subscribe(baseUrl => controller.configuration.basePath = baseUrl + '/mst'));
1161
2395
  }
1162
- static meerDan12BladenGevonden(bladAmount) {
1163
- return new Message(Severity.WARNING, 'Warning, Rit bevat ' + bladAmount + ' bladen. Er worden maximaal 12 bladen ondersteund.');
2396
+ ngOnDestroy() {
2397
+ this.subscriptions.unsubscribe();
1164
2398
  }
1165
- static nietGevondenTakkenOngeplandeActies(nietGevondenTakken) {
1166
- return new Message(Severity.INFORMATION, 'Info, Niet gevonden takken uit \'OngeplandeActies\': ' + nietGevondenTakken);
2399
+ logMessages(logDto) {
2400
+ this.controller.log(logDto).subscribe();
1167
2401
  }
2402
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MstLoggingResource, deps: [{ token: LogControllerService }, { token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
2403
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MstLoggingResource }); }
1168
2404
  }
2405
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MstLoggingResource, decorators: [{
2406
+ type: Injectable
2407
+ }], ctorParameters: () => [{ type: LogControllerService }, { type: i2$1.Store }] });
1169
2408
 
1170
2409
  class LoggingHelper {
1171
- constructor(sbmService, store) {
1172
- this.sbmService = sbmService;
2410
+ constructor(store) {
1173
2411
  this.store = store;
1174
2412
  }
1175
2413
  maakLogDTO(melding, actie) {
1176
- let iaVersie = '';
1177
- let algemeneRitInfoDto = null;
1178
- let actieDto = null;
1179
- this.store.select('algemeneRitInfoDto').pipe(take(1)).subscribe(dto => {
1180
- algemeneRitInfoDto = dto;
1181
- });
1182
- this.store.select('iaVersie').pipe(take(1)).subscribe(ia => {
1183
- iaVersie = ia.versie;
1184
- });
1185
- if (actie) {
1186
- actieDto = new ActieDto({
1187
- pplgNaam: actie.pplgNaam,
1188
- ritActieTypeOmschrijving: actie.ritActieTypeOmschrijving,
1189
- ritActieStatus: actie.ritActieStatus,
1190
- bewegingId: actie.bewegingId,
1191
- wisselType: actie.wisselType,
1192
- wisselNaam: actie.wisselNaam,
1193
- wisselKantCode: actie.wisselKantCode,
1194
- vanKilometerlint: actie.vanKilometerlint,
1195
- vanKilometrering: actie.vanKilometrering,
1196
- totKilometerlint: actie.totKilometerlint,
1197
- totKilometrering: actie.totKilometrering
1198
- });
1199
- }
1200
- return new MstLoggingDto({
1201
- iaVersie,
1202
- meldingLevel: melding.meldingLevel,
1203
- meldingMessage: melding.meldingMessage,
1204
- actieDto,
1205
- algemeneRitInfoDto,
1206
- sbinfoDtos: this.getSbInfoDtos()
1207
- });
2414
+ return combineLatest([
2415
+ this.store.select('algemeneRitInfoDto'),
2416
+ this.store.select('iaVersie')
2417
+ ]).pipe(take(1), map(([algemeneRitInfoDto, iaVersie]) => {
2418
+ let actieDto = null;
2419
+ if (actie) {
2420
+ actieDto = {
2421
+ pplgNaam: actie.pplgNaam,
2422
+ ritActieTypeOmschrijving: actie.ritActieTypeOmschrijving,
2423
+ ritActieStatus: actie.ritActieStatus,
2424
+ bewegingId: actie.bewegingId,
2425
+ wisselType: actie.wisselType,
2426
+ wisselNaam: actie.wisselNaam,
2427
+ wisselKantCode: actie.wisselKantCode,
2428
+ vanKilometerlint: actie.vanKilometerlint,
2429
+ vanKilometrering: actie.vanKilometrering,
2430
+ totKilometerlint: actie.totKilometerlint,
2431
+ totKilometrering: actie.totKilometrering
2432
+ };
2433
+ }
2434
+ return {
2435
+ iaVersie: iaVersie.versie,
2436
+ meldingLevel: melding.meldingLevel,
2437
+ meldingMessage: melding.meldingMessage,
2438
+ actieDto,
2439
+ algemeneRitInfoDto,
2440
+ sbinfoDtos: this.getSbInfoDtos()
2441
+ };
2442
+ }));
1208
2443
  }
1209
2444
  getSbInfoDtos() {
1210
2445
  const sbInfoDtos = [];
@@ -1215,12 +2450,12 @@ class LoggingHelper {
1215
2450
  });
1216
2451
  return sbInfoDtos;
1217
2452
  }
1218
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LoggingHelper, deps: [{ token: SignaleringsBeeldManagerService }, { token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
2453
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LoggingHelper, deps: [{ token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
1219
2454
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LoggingHelper }); }
1220
2455
  }
1221
2456
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LoggingHelper, decorators: [{
1222
2457
  type: Injectable
1223
- }], ctorParameters: () => [{ type: SignaleringsBeeldManagerService }, { type: i2$1.Store }] });
2458
+ }], ctorParameters: () => [{ type: i2$1.Store }] });
1224
2459
 
1225
2460
  /**
1226
2461
  * export const RIT_ACTIE_1 = 1;
@@ -1316,6 +2551,7 @@ class ActieHelper {
1316
2551
  this.messagesService = messagesService;
1317
2552
  this.store = store;
1318
2553
  this.loggingHelper = loggingHelper;
2554
+ this.debug = false;
1319
2555
  this.store.select('debug').subscribe(debug => this.debug = debug);
1320
2556
  }
1321
2557
  static getActieTopoElements(ritDeel, sbmService) {
@@ -1349,10 +2585,10 @@ class ActieHelper {
1349
2585
  }
1350
2586
  }
1351
2587
  static actieComparator(actie1, actie2) {
1352
- if (actie1.vanKilometrering !== actie2.vanKilometrering) {
2588
+ if (actie1.vanKilometrering && actie2.vanKilometrering && actie1.vanKilometrering !== actie2.vanKilometrering) {
1353
2589
  return actie1.vanKilometrering > actie2.vanKilometrering ? 1 : -1;
1354
2590
  }
1355
- if (actie1.ritActieTypeOmschrijving !== actie2.ritActieTypeOmschrijving) {
2591
+ if (actie1.ritActieTypeOmschrijving && actie2.ritActieTypeOmschrijving && actie1.ritActieTypeOmschrijving !== actie2.ritActieTypeOmschrijving) {
1356
2592
  return actie1.ritActieTypeOmschrijving > actie2.ritActieTypeOmschrijving ? 1 : -1;
1357
2593
  }
1358
2594
  if (actie1.wisselNaam !== actie2.wisselNaam) {
@@ -1392,9 +2628,9 @@ class ActieHelper {
1392
2628
  // make sure the elems are sorted in ascending order
1393
2629
  static sorteerTopoElementen(topoElems) {
1394
2630
  const topoElementen = topoElems.slice();
1395
- let lint = null;
1396
- let first = null;
1397
- let second = null;
2631
+ let lint = undefined;
2632
+ let first;
2633
+ let second;
1398
2634
  for (const topoElement of topoElementen) {
1399
2635
  let kilometreringen = null;
1400
2636
  const kms = JsJavaUtil.listToArray(topoElement.getKilometreringen());
@@ -1426,11 +2662,11 @@ class ActieHelper {
1426
2662
  if (!totKilometreringen && vanKilometreringen) {
1427
2663
  totKilometreringen = [new MstKilometrering(vanKilometreringen[0].getKmLint(), 100000)];
1428
2664
  }
1429
- if (vanKilometreringen[0] > totKilometreringen[0]) {
2665
+ if (vanKilometreringen && totKilometreringen && vanKilometreringen[0] > totKilometreringen[0]) {
1430
2666
  kmRanges.push(KmRange.rangeVoorStrekObject(e, this.addKm(vanKilometreringen, -1), this.addKm(totKilometreringen, 1)));
1431
2667
  }
1432
2668
  else {
1433
- kmRanges.push(KmRange.rangeVoorStrekObject(e, this.addKm(vanKilometreringen, 1), this.addKm(totKilometreringen, -1)));
2669
+ kmRanges.push(KmRange.rangeVoorStrekObject(e, this.addKm(vanKilometreringen ?? [], 1), this.addKm(totKilometreringen ?? [], -1)));
1434
2670
  }
1435
2671
  });
1436
2672
  }
@@ -1521,21 +2757,23 @@ class ActieHelper {
1521
2757
  else {
1522
2758
  const puics = [];
1523
2759
  kmRanges.forEach(kmRange => {
1524
- let vanKilometrering = new MstKilometrering(actie.vanKilometerlint, actie.vanKilometrering);
1525
- let totKilometrering = new MstKilometrering(actie.totKilometerlint, actie.totKilometrering);
1526
- if (actie.vanKilometrering > actie.totKilometrering) {
1527
- const temp = { van: vanKilometrering, tot: totKilometrering };
1528
- vanKilometrering = temp.tot;
1529
- totKilometrering = temp.van;
1530
- }
1531
- if (kmRange.heeftOverlap(vanKilometrering, totKilometrering)) {
1532
- puics.push(kmRange.topologyElement.getPuic());
2760
+ if (actie.vanKilometrering && actie.vanKilometerlint && actie.totKilometrering && actie.totKilometerlint) {
2761
+ let vanKilometrering = new MstKilometrering(actie.vanKilometerlint, actie.vanKilometrering);
2762
+ let totKilometrering = new MstKilometrering(actie.totKilometerlint, actie.totKilometrering);
2763
+ if (actie.vanKilometrering > actie.totKilometrering) {
2764
+ const temp = { van: vanKilometrering, tot: totKilometrering };
2765
+ vanKilometrering = temp.tot;
2766
+ totKilometrering = temp.van;
2767
+ }
2768
+ if (kmRange.heeftOverlap(vanKilometrering, totKilometrering)) {
2769
+ puics.push(kmRange.topologyElement.getPuic());
2770
+ }
1533
2771
  }
1534
2772
  });
1535
2773
  if (puics.length === 0) {
1536
2774
  actieZonderElementen.push(actie.id);
1537
2775
  const melding = MeldingBuilder.actieHighlightError(actieZonderElementen);
1538
- logMeldingDTOs.push(this.loggingHelper.maakLogDTO(melding, actie));
2776
+ this.loggingHelper.maakLogDTO(melding, actie).pipe(tap(dto => logMeldingDTOs.push(dto))).subscribe();
1539
2777
  }
1540
2778
  retval.putAll(actie, puics);
1541
2779
  }
@@ -1543,15 +2781,15 @@ class ActieHelper {
1543
2781
  this.logLegeMeldingDto(logMeldingDTOs);
1544
2782
  return retval;
1545
2783
  }
1546
- logLegeMeldingDto(logMeldingDTOs) {
1547
- if (logMeldingDTOs.length > 0) {
1548
- this.mstLogResource.logErrorMessages(logMeldingDTOs);
2784
+ logLegeMeldingDto(logDto) {
2785
+ if (logDto.length > 0) {
2786
+ return this.mstLogResource.logMessages(logDto);
1549
2787
  }
1550
2788
  }
1551
2789
  verwerkTopoElementen(topoElementen) {
1552
2790
  const kmRanges = [];
1553
2791
  let topoElementenZonderKms = [];
1554
- let laatstePuntKms = null;
2792
+ let laatstePuntKms = undefined;
1555
2793
  topoElementen.forEach(elem => {
1556
2794
  const kms = JsJavaUtil.listToArray(elem.getKilometreringen());
1557
2795
  if (kms.length > 0) {
@@ -1565,7 +2803,7 @@ class ActieHelper {
1565
2803
  }
1566
2804
  });
1567
2805
  if (topoElementenZonderKms.length > 0 && laatstePuntKms) {
1568
- ActieHelper.corrigeerTopoElementenZonderKms(topoElementenZonderKms, laatstePuntKms, null, kmRanges);
2806
+ ActieHelper.corrigeerTopoElementenZonderKms(topoElementenZonderKms, laatstePuntKms, undefined, kmRanges);
1569
2807
  }
1570
2808
  return kmRanges;
1571
2809
  }
@@ -1628,14 +2866,14 @@ class ActieHelper {
1628
2866
  if (ActieHelper.isKantCodeLinks(kantcode)) {
1629
2867
  return wissel.getLeft();
1630
2868
  }
1631
- return null;
2869
+ return undefined;
1632
2870
  }
1633
2871
  bepaalPuicVoorWisselSlijpenActie(actie) {
1634
2872
  const storingsSymboolPuic = this.sbmService.getSBWissel(actie.wisselNaam, actie.pplgNaam)?.getStoringSymboolPuic();
1635
2873
  if (!storingsSymboolPuic && this.debug) {
1636
2874
  const melding = MeldingBuilder.actieHighlightError([actie.id]);
1637
2875
  this.messagesService.showMessage(MessageBuilder.actieHighlightError([actie.id]));
1638
- this.mstLogResource.logErrorMessages([this.loggingHelper.maakLogDTO(melding, actie)]);
2876
+ this.loggingHelper.maakLogDTO(melding, actie).pipe(tap(logDto => this.mstLogResource.logMessages([logDto]))).subscribe();
1639
2877
  }
1640
2878
  return storingsSymboolPuic ? [storingsSymboolPuic] : [];
1641
2879
  }
@@ -1650,10 +2888,16 @@ class RitdelenLijstComponent {
1650
2888
  constructor(store, sbmService) {
1651
2889
  this.store = store;
1652
2890
  this.sbmService = sbmService;
2891
+ this.nietGeplandeActies = [];
1653
2892
  this.focusEmitter = new EventEmitter();
1654
2893
  this.keurAlleActiesGoed = new EventEmitter();
2894
+ this.ritdeelViewModels = [];
1655
2895
  this.selectedRitdeelActies = [];
1656
2896
  this.selectedRitdeelOngeplandeActies = [];
2897
+ this.disableActieKnoppenVanRitdeel = true;
2898
+ this.editable = false;
2899
+ this.ongeplandeActiesMap = new ArrayMultimap();
2900
+ this.geplandeActies = new ArrayMultimap();
1657
2901
  this.NG_ACTIE_PREFIX = '* ';
1658
2902
  this.subscriptions = [];
1659
2903
  this.subscriptions.push(store.select('ritDelen').subscribe((ritdelen) => {
@@ -1664,9 +2908,6 @@ class RitdelenLijstComponent {
1664
2908
  this.subscriptions.push(store.select('ongeplandeActies').subscribe(acties => this.ongeplandeActiesMap = acties));
1665
2909
  this.subscriptions.push(store.select('geplandeActies').subscribe(acties => this.geplandeActies = acties));
1666
2910
  this.subscriptions.push(store.select('editable').subscribe(editable => this.editable = editable));
1667
- // listen to changes from svg-viewer-component, saving ritdeel in store isn't cool because of all the gwt in it. This is
1668
- // just to make changes within the angular lifecycle.
1669
- this.subscriptions.push(store.select('selectedRitdeelId').pipe(filter(id => !id)).subscribe(this.deselectRitdeel));
1670
2911
  this.subscriptions.push(combineLatest([
1671
2912
  this.store.select('ritDelen'),
1672
2913
  this.store.select('ongeplandeActies')
@@ -1703,12 +2944,14 @@ class RitdelenLijstComponent {
1703
2944
  this.store.dispatch(deleteRitdeel(ritdeel));
1704
2945
  }
1705
2946
  deleteActiesUitRit() {
1706
- this.selectedRitdeel.acties.slice().forEach(actie => {
2947
+ this.selectedRitdeel?.acties.slice().forEach(actie => {
1707
2948
  this.deleteActieUitRit(actie);
1708
2949
  });
1709
2950
  }
1710
2951
  deleteActieUitRit(actie) {
1711
- const acties = this.selectedRitdeel.acties;
2952
+ if (!this.selectedRitdeel)
2953
+ return;
2954
+ const acties = this.selectedRitdeel.acties ?? [];
1712
2955
  const idx = acties.indexOf(actie);
1713
2956
  if (idx >= 0) {
1714
2957
  this.verhuisActieNaarOngepland(actie);
@@ -1734,7 +2977,7 @@ class RitdelenLijstComponent {
1734
2977
  }
1735
2978
  voegActieToeAanRit(ongeplandeActie) {
1736
2979
  const idx = this.selectedRitdeelOngeplandeActies.indexOf(ongeplandeActie);
1737
- if (idx >= 0) {
2980
+ if (idx >= 0 && this.selectedRitdeel) {
1738
2981
  this.store.dispatch(addRitdeelActie(this.selectedRitdeel, this.selectedRitdeelOngeplandeActies[idx].actie));
1739
2982
  this.store.dispatch(AddGeplandeActie(ongeplandeActie.actie, ongeplandeActie.puics));
1740
2983
  this.store.dispatch(DeleteOngeplandeActie(ongeplandeActie));
@@ -1836,13 +3079,13 @@ class RitdelenLijstComponent {
1836
3079
  return `${prefix}${ActieHelper.getVSTActieOmschrijving(actie)}`;
1837
3080
  }
1838
3081
  bepaalPrefixVoorActieOmschrijving(actie) {
1839
- const prefix = '';
1840
- if (this.selectedRitdeel.acties.includes(actie)) {
3082
+ const noPrefix = '';
3083
+ if (this.selectedRitdeel?.acties.includes(actie)) {
1841
3084
  // Afwijkende naam bij niet gevisualiseerde actie in rit
1842
3085
  const puics = this.geplandeActies.get(actie);
1843
- return puics.length > 0 ? prefix : this.NG_ACTIE_PREFIX;
3086
+ return puics.length > 0 ? noPrefix : this.NG_ACTIE_PREFIX;
1844
3087
  }
1845
- return prefix;
3088
+ return noPrefix;
1846
3089
  }
1847
3090
  actieVanKmTekst(actie) {
1848
3091
  if (ActieHelper.isWisselSlijpenActie(actie)) {
@@ -1863,6 +3106,7 @@ class RitdelenLijstComponent {
1863
3106
  return ritdeel.getPplgString();
1864
3107
  }
1865
3108
  getKantCode(stand) {
3109
+ // @ts-ignore
1866
3110
  if (stand === window['domein'].Stand.LINKS) {
1867
3111
  return 'L';
1868
3112
  }
@@ -1999,49 +3243,18 @@ class RitdeelViewModel {
1999
3243
  }
2000
3244
  }
2001
3245
 
2002
- class CarouselControlsComponent {
2003
- constructor(store) {
2004
- this.store = store;
2005
- this.paginationSize = 4;
2006
- this.ritdelen$ = this.store.select('ritDelen').pipe(filter(r => r?.length > 0));
2007
- this.kanLinks$ = this.ritdelen$.pipe(map(r => this.kanLinksNavigeren(r)));
2008
- this.kanRechts$ = this.ritdelen$.pipe(map(r => this.kanRechtsNavigeren(r)));
2009
- }
2010
- kanLinksNavigeren(ritDelen) {
2011
- return ritDelen.length > this.paginationSize && !ritDelen[0].isBinnenWindow();
2012
- }
2013
- kanRechtsNavigeren(ritDelen) {
2014
- return ritDelen.length > this.paginationSize && !ritDelen[ritDelen.length - 1].isBinnenWindow();
2015
- }
2016
- navigeerNaarLinks(event) {
2017
- this.store.dispatch(navigeer(event?.ctrlKey ? -1 : -(this.paginationSize - 1), this.paginationSize, this.iaversieinfo));
2018
- }
2019
- navigeerNaarRechts(event) {
2020
- this.store.dispatch(navigeer(event?.ctrlKey ? 1 : this.paginationSize - 1, this.paginationSize, this.iaversieinfo));
2021
- }
2022
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CarouselControlsComponent, deps: [{ token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
2023
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: CarouselControlsComponent, selector: "carousel-controls", inputs: { paginationSize: "paginationSize", iaversieinfo: "iaversieinfo", sideNavOpen: "sideNavOpen" }, ngImport: i0, template: "<div *ngIf=\"ritdelen$ | async\">\n <a class=\"loxia-carousel-control-prev\" [ngClass]=\"(sideNavOpen)?'carousel-sidebar-open':'carousel-sidebar'\" role=\"button\"\n data-slide=\"prev\" (click)=\"navigeerNaarLinks($event)\" [hidden]=\"(kanLinks$ | async) === false\">\n <span id=\"previous-page\" class=\"loxia-carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"loxia-sr-only\">Previous</span>\n</a>\n <a class=\"loxia-carousel-control-next\" style=\"width: 2%;\" role=\"button\" data-slide=\"next\" (click)=\"navigeerNaarRechts($event)\"\n [hidden]=\"(kanRechts$ | async) === false\">\n <span id=\"next-page\" class=\"loxia-carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"loxia-sr-only\">Next</span>\n </a>\n</div>\n", styles: [".loxia-carousel-control-prev{left:0}.loxia-carousel-control-next{right:0}.loxia-carousel-control-next-icon,.loxia-carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:50%/100% 100% no-repeat}.loxia-carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\")}.loxia-carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\")}.loxia-carousel-control-next:focus,.loxia-carousel-control-next:hover,.loxia-carousel-control-prev:focus,.loxia-carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.loxia-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.loxia-carousel-control-next,.loxia-carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}.carousel-sidebar{width:2%}.carousel-sidebar-open{width:2%;transition:all .3s;left:470px}[hidden]{display:none!important}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
2024
- }
2025
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CarouselControlsComponent, decorators: [{
2026
- type: Component,
2027
- args: [{ selector: 'carousel-controls', template: "<div *ngIf=\"ritdelen$ | async\">\n <a class=\"loxia-carousel-control-prev\" [ngClass]=\"(sideNavOpen)?'carousel-sidebar-open':'carousel-sidebar'\" role=\"button\"\n data-slide=\"prev\" (click)=\"navigeerNaarLinks($event)\" [hidden]=\"(kanLinks$ | async) === false\">\n <span id=\"previous-page\" class=\"loxia-carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"loxia-sr-only\">Previous</span>\n</a>\n <a class=\"loxia-carousel-control-next\" style=\"width: 2%;\" role=\"button\" data-slide=\"next\" (click)=\"navigeerNaarRechts($event)\"\n [hidden]=\"(kanRechts$ | async) === false\">\n <span id=\"next-page\" class=\"loxia-carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"loxia-sr-only\">Next</span>\n </a>\n</div>\n", styles: [".loxia-carousel-control-prev{left:0}.loxia-carousel-control-next{right:0}.loxia-carousel-control-next-icon,.loxia-carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:50%/100% 100% no-repeat}.loxia-carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\")}.loxia-carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\")}.loxia-carousel-control-next:focus,.loxia-carousel-control-next:hover,.loxia-carousel-control-prev:focus,.loxia-carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.loxia-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.loxia-carousel-control-next,.loxia-carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}.carousel-sidebar{width:2%}.carousel-sidebar-open{width:2%;transition:all .3s;left:470px}[hidden]{display:none!important}\n"] }]
2028
- }], ctorParameters: () => [{ type: i2$1.Store }], propDecorators: { paginationSize: [{
2029
- type: Input
2030
- }], iaversieinfo: [{
2031
- type: Input
2032
- }], sideNavOpen: [{
2033
- type: Input
2034
- }] } });
2035
-
2036
3246
  class ViewerControlsComponent {
2037
3247
  constructor(store, viewerControlsService, bewegingUtils) {
2038
3248
  this.store = store;
2039
3249
  this.viewerControlsService = viewerControlsService;
2040
3250
  this.bewegingUtils = bewegingUtils;
2041
3251
  this.paginationSize = 4;
3252
+ this.treinpad = undefined;
3253
+ this.goedgekeurd = new EventEmitter();
2042
3254
  this.printing$ = this.viewerControlsService.isPrinting$();
2043
3255
  this.valideRit$ = this.viewerControlsService.isValideRit$();
2044
3256
  this.subscriptions = new Subscription();
3257
+ this.editable = false;
2045
3258
  this.subscriptions.add(this.store.select('editable').subscribe(editable => this.editable = editable));
2046
3259
  }
2047
3260
  ngOnChanges({ treinpad }) {
@@ -2053,24 +3266,23 @@ class ViewerControlsComponent {
2053
3266
  return this.editable && this.viewerControlsService.selectieInfos.length !== 0;
2054
3267
  }
2055
3268
  goedkeurenClick() {
2056
- const ritDelen = this.viewerControlsService.ritdelen;
2057
- if (ritDelen) {
2058
- delete this.treinpad.aantalRitActies;
2059
- this.treinpad.bewegingen = this.bewegingUtils.extractBewegingenUitRitdelen(ritDelen, this.viewerControlsService.origineelTreinPad.bewegingen);
2060
- this.goedgekeurd.emit(this.treinpad);
2061
- this.viewerControlsService.setOrigineelTreinPad(this.treinpad);
2062
- }
3269
+ this.store.select('ritDelen').pipe(filter(ritdelen => !!ritdelen), tap(ritDelen => {
3270
+ if (this.treinpad) {
3271
+ delete this.treinpad.aantalRitActies;
3272
+ this.treinpad.bewegingen = this.bewegingUtils.extractBewegingenUitRitdelen(ritDelen, this.viewerControlsService.origineelTreinPad.bewegingen);
3273
+ this.goedgekeurd.emit(this.treinpad);
3274
+ this.viewerControlsService.setOrigineelTreinPad(this.treinpad);
3275
+ }
3276
+ })).subscribe();
2063
3277
  }
2064
3278
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ViewerControlsComponent, deps: [{ token: i2$1.Store }, { token: ViewerControlService }, { token: BewegingUtils }], target: i0.ɵɵFactoryTarget.Component }); }
2065
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: ViewerControlsComponent, selector: "viewer-controls", inputs: { paginationSize: "paginationSize", iaversieinfo: "iaversieinfo", treinpad: "treinpad", goedgekeurd: "goedgekeurd" }, usesOnChanges: true, ngImport: i0, template: "<button id=\"toonSideNavKnop\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm open-sidenav-button\"\n (click)=\"viewerControlsService.toggleSideNavVisible()\"\n [class.active]=\"viewerControlsService.sideNavOpen$ | async\"\n [hidden]=\"printing$ | async\">Ritdetails\n</button>\n<button *ngIf=\"showGoedkeuren()\"\n id=\"goedkeurenKnop\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm goedkeuren-button\"\n (click)=\"goedkeurenClick()\"\n [disabled]=\"(valideRit$ | async ) === false\"\n [hidden]=\"printing$ | async\">Goedkeuren\n</button>\n\n<carousel-controls [paginationSize]=\"paginationSize\"\n [iaversieinfo]=\"iaversieinfo\"\n [sideNavOpen]=\"viewerControlsService.sideNavOpen$ | async\">\n</carousel-controls>\n", styles: [".open-sidenav-button.active{visibility:hidden}.open-sidenav-button,.goedkeuren-button{position:absolute;top:15px;z-index:600}.open-sidenav-button{left:15px}.goedkeuren-button{right:15px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CarouselControlsComponent, selector: "carousel-controls", inputs: ["paginationSize", "iaversieinfo", "sideNavOpen"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
3279
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: ViewerControlsComponent, selector: "viewer-controls", inputs: { paginationSize: "paginationSize", treinpad: "treinpad", goedgekeurd: "goedgekeurd" }, usesOnChanges: true, ngImport: i0, template: "<button id=\"toonSideNavKnop\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm open-sidenav-button\"\n (click)=\"viewerControlsService.toggleSideNavVisible()\"\n [class.active]=\"viewerControlsService.sideNavOpen$ | async\"\n [hidden]=\"printing$ | async\">Ritdetails\n</button>\n<button *ngIf=\"showGoedkeuren()\"\n id=\"goedkeurenKnop\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm goedkeuren-button\"\n (click)=\"goedkeurenClick()\"\n [disabled]=\"(valideRit$ | async ) === false\"\n [hidden]=\"printing$ | async\">Goedkeuren\n</button>\n\n<carousel-controls [paginationSize]=\"paginationSize\"\n [sideNavOpen]=\"viewerControlsService.sideNavOpen$ | async\">\n</carousel-controls>\n", styles: [".open-sidenav-button.active{visibility:hidden}.open-sidenav-button,.goedkeuren-button{position:absolute;top:15px;z-index:600}.open-sidenav-button{left:15px}.goedkeuren-button{right:15px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CarouselControlsComponent, selector: "carousel-controls", inputs: ["paginationSize", "sideNavOpen"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
2066
3280
  }
2067
3281
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ViewerControlsComponent, decorators: [{
2068
3282
  type: Component,
2069
- args: [{ selector: 'viewer-controls', template: "<button id=\"toonSideNavKnop\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm open-sidenav-button\"\n (click)=\"viewerControlsService.toggleSideNavVisible()\"\n [class.active]=\"viewerControlsService.sideNavOpen$ | async\"\n [hidden]=\"printing$ | async\">Ritdetails\n</button>\n<button *ngIf=\"showGoedkeuren()\"\n id=\"goedkeurenKnop\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm goedkeuren-button\"\n (click)=\"goedkeurenClick()\"\n [disabled]=\"(valideRit$ | async ) === false\"\n [hidden]=\"printing$ | async\">Goedkeuren\n</button>\n\n<carousel-controls [paginationSize]=\"paginationSize\"\n [iaversieinfo]=\"iaversieinfo\"\n [sideNavOpen]=\"viewerControlsService.sideNavOpen$ | async\">\n</carousel-controls>\n", styles: [".open-sidenav-button.active{visibility:hidden}.open-sidenav-button,.goedkeuren-button{position:absolute;top:15px;z-index:600}.open-sidenav-button{left:15px}.goedkeuren-button{right:15px}\n"] }]
3283
+ args: [{ selector: 'viewer-controls', template: "<button id=\"toonSideNavKnop\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm open-sidenav-button\"\n (click)=\"viewerControlsService.toggleSideNavVisible()\"\n [class.active]=\"viewerControlsService.sideNavOpen$ | async\"\n [hidden]=\"printing$ | async\">Ritdetails\n</button>\n<button *ngIf=\"showGoedkeuren()\"\n id=\"goedkeurenKnop\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm goedkeuren-button\"\n (click)=\"goedkeurenClick()\"\n [disabled]=\"(valideRit$ | async ) === false\"\n [hidden]=\"printing$ | async\">Goedkeuren\n</button>\n\n<carousel-controls [paginationSize]=\"paginationSize\"\n [sideNavOpen]=\"viewerControlsService.sideNavOpen$ | async\">\n</carousel-controls>\n", styles: [".open-sidenav-button.active{visibility:hidden}.open-sidenav-button,.goedkeuren-button{position:absolute;top:15px;z-index:600}.open-sidenav-button{left:15px}.goedkeuren-button{right:15px}\n"] }]
2070
3284
  }], ctorParameters: () => [{ type: i2$1.Store }, { type: ViewerControlService }, { type: BewegingUtils }], propDecorators: { paginationSize: [{
2071
3285
  type: Input
2072
- }], iaversieinfo: [{
2073
- type: Input
2074
3286
  }], treinpad: [{
2075
3287
  type: Input
2076
3288
  }], goedgekeurd: [{
@@ -2125,7 +3337,7 @@ class ActiePopoverBepaler {
2125
3337
  ongeplandeActies.entries.forEach(entry => {
2126
3338
  const treinNummerActieInfos = puicNaarOngeplandeActieMap.get(entry.key);
2127
3339
  if (!treinNummerActieInfos?.map(({ actie }) => actie).includes(entry.value.actie)) {
2128
- puicNaarOngeplandeActieMap.put(entry.key, { treinNummer: undefined, actie: entry.value.actie });
3340
+ puicNaarOngeplandeActieMap.put(entry.key, { actie: entry.value.actie });
2129
3341
  }
2130
3342
  });
2131
3343
  }
@@ -2185,12 +3397,15 @@ class SvgVisualisatieComponent {
2185
3397
  this.actieHelper = actieHelper;
2186
3398
  this.sbmService = sbmService;
2187
3399
  this.editorService = editorService;
3400
+ this.nietGeplandeActies = [];
3401
+ this.useClickArea = false;
2188
3402
  this.svgInfos$ = this.store.select('svgInfos');
2189
3403
  this.popoverInfos = [];
2190
3404
  this.clickableIds = [];
2191
3405
  this.rightClickableIds = [];
2192
3406
  this.contextMenuActions = [];
2193
3407
  this.contextMenuStyle = { display: 'none' };
3408
+ this.editable = false;
2194
3409
  this.puicNaarBeginSeinRitdeel = new Map();
2195
3410
  this.puicNaarEindSeinCombinatie = new Map();
2196
3411
  this.puicNaarAlternatieveRoute = new Map();
@@ -2214,7 +3429,7 @@ class SvgVisualisatieComponent {
2214
3429
  }));
2215
3430
  }
2216
3431
  ngOnInit() {
2217
- document.getElementById('contextMenu').addEventListener('mouseleave', () => this.hideContextMenu());
3432
+ document.getElementById('contextMenu')?.addEventListener('mouseleave', () => this.hideContextMenu());
2218
3433
  }
2219
3434
  ngOnDestroy() {
2220
3435
  this.subscriptions.forEach(s => s.unsubscribe());
@@ -2241,7 +3456,6 @@ class SvgVisualisatieComponent {
2241
3456
  this.store.dispatch(navigeerBuitenRit(puic));
2242
3457
  }
2243
3458
  }
2244
- this.store.dispatch(SetSelectedRitdeel(undefined));
2245
3459
  }
2246
3460
  handleImxviewRightClick(evt) {
2247
3461
  const fn = () => {
@@ -2272,7 +3486,7 @@ class SvgVisualisatieComponent {
2272
3486
  handleNieuweRouteToegevoegd() {
2273
3487
  this.store.select('nieuweRoute')
2274
3488
  .subscribe((nieuweRoute) => {
2275
- if (nieuweRoute.isValid()) {
3489
+ if (nieuweRoute?.isValid()) {
2276
3490
  this.store.dispatch(ResetNieuweRoute());
2277
3491
  this.store.dispatch(ritdeelInvoegen(nieuweRoute));
2278
3492
  }
@@ -2385,7 +3599,7 @@ class SvgVisualisatieComponent {
2385
3599
  });
2386
3600
  this.viewerControlsService.setValideRit(!gebrokenRit);
2387
3601
  this.store.dispatch(SetGeplandeActies(actieOpRitSelectiePuics));
2388
- const actieOpRitSelectiePuicsArray = Utils.flatMap(Array.from(actieOpRitSelectiePuics.values()), x => x);
3602
+ const actieOpRitSelectiePuicsArray = Array.from(actieOpRitSelectiePuics.values()).flat();
2389
3603
  this.store.dispatch(SetActieOpRitSelectieIds(actieOpRitSelectiePuicsArray));
2390
3604
  ritSelectiePuics = ritSelectiePuics.filter(item => actieOpRitSelectiePuicsArray.indexOf(item) < 0); // make mutually exclusive
2391
3605
  this.store.dispatch(SetRitSelectieIds(ritSelectiePuics));
@@ -2441,6 +3655,9 @@ class MstviewerComponent {
2441
3655
  this.printBewegingService = printBewegingService;
2442
3656
  this.paginationSize = 4;
2443
3657
  this.baseurl = 'https://acceptatie.raildesign.nl';
3658
+ this.debug = false;
3659
+ this.viewer = false;
3660
+ this.useClickArea = false;
2444
3661
  this.goedgekeurd = new EventEmitter();
2445
3662
  this.subscriptions = new Subscription();
2446
3663
  this.subscriptions.add(this.store.select('nieuweBewegingen').subscribe(nieuweRit => {
@@ -2491,23 +3708,26 @@ class MstviewerComponent {
2491
3708
  }
2492
3709
  }
2493
3710
  printFocusBeweging(bewegingId) {
2494
- return this.printBewegingService.printBeweging(bewegingId, this.paginationSize, this.iaversieinfo);
3711
+ return this.printBewegingService.printBeweging(bewegingId, this.paginationSize);
2495
3712
  }
2496
3713
  keurAlleActiesGoed() {
2497
3714
  this.viewerControlsService.keurAlleActiesGoed(this.ongeplandeActies);
2498
3715
  }
2499
3716
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MstviewerComponent, deps: [{ token: i2$1.Store }, { token: ViewerControlService }, { token: DebugService }, { token: PrintBewegingService }], target: i0.ɵɵFactoryTarget.Component }); }
2500
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: MstviewerComponent, selector: "mst-viewer", inputs: { iaversieinfo: "iaversieinfo", treinpad: "treinpad", ongeplandeActies: "ongeplandeActies", paginationSize: "paginationSize", baseurl: "baseurl", debug: "debug", viewer: "viewer", useClickArea: "useClickArea" }, outputs: { goedgekeurd: "goedgekeurd" }, usesOnChanges: true, ngImport: i0, template: "<loxia-messages></loxia-messages>\n<loxia-overlay *ngIf=\"(progressIndicator$ | async)\">\n <loxia-progress-indicator id=\"progress-indicator\" [border]=\"false\" upperText=\"\">\n </loxia-progress-indicator>\n</loxia-overlay>\n\n<div style=\"position: relative\">\n <rpe-component [baseurl]=\"baseurl\" path=\"/mst/editor/editor.nocache.js\"></rpe-component>\n\n <svg-visualisatie [useClickArea]=\"useClickArea\" [nietGeplandeActies]=\"ongeplandeActies\"></svg-visualisatie>\n\n <nav [class.active]=\"(viewerControlsService.sideNavOpen$ | async) === false\" id=\"sidebar\">\n <div id=\"dismiss\">\n <em id=\"verbergSideNav\" class=\"fa fa-arrow-left\" (click)=\"viewerControlsService.toggleSideNavVisible()\">&times;</em>\n </div>\n <ritdelen-lijst *ngIf=\"!viewer\" (focusEmitter)=\"focusRitdeel($event)\" (keurAlleActiesGoed)=\"keurAlleActiesGoed()\"\n [nietGeplandeActies]=\"ongeplandeActies\"></ritdelen-lijst>\n <ritdelen-view *ngIf=\"viewer\" (focusEmitter)=\"focusRitdeel($event)\"></ritdelen-view>\n </nav>\n\n <viewer-controls [paginationSize]=\"paginationSize\"\n [iaversieinfo]=\"iaversieinfo\"\n [treinpad]=\"treinpad\"\n [goedgekeurd]=\"goedgekeurd\"\n ></viewer-controls>\n\n</div>\n", styles: ["#sidebar{min-width:350px;max-width:475px;background:#fff;transition:all .3s;height:93vh;position:absolute;top:0;z-index:20}#sidebar.active{margin-left:-475px}#sidebar .sidebar-header{padding:20px;background:#6d7fcc}#dismiss{width:20px;height:20px;position:absolute;cursor:pointer;top:5px;right:0;color:#000;z-index:300}[hidden]{display:none}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: OverlayComponent, selector: "loxia-overlay" }, { kind: "component", type: ProgressIndicatorComponent, selector: "loxia-progress-indicator" }, { kind: "component", type: RpeComponent, selector: "rpe-component", inputs: ["baseurl", "path"] }, { kind: "component", type: RitdelenLijstComponent, selector: "ritdelen-lijst", inputs: ["nietGeplandeActies"], outputs: ["focusEmitter", "keurAlleActiesGoed"] }, { kind: "component", type: RitdelenViewComponent, selector: "ritdelen-view", outputs: ["focusEmitter"] }, { kind: "component", type: ViewerControlsComponent, selector: "viewer-controls", inputs: ["paginationSize", "iaversieinfo", "treinpad", "goedgekeurd"] }, { kind: "component", type: SvgVisualisatieComponent, selector: "svg-visualisatie", inputs: ["nietGeplandeActies", "useClickArea"] }, { kind: "component", type: MessagesComponent, selector: "loxia-messages" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
3717
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: MstviewerComponent, selector: "mst-viewer", inputs: { iaversieinfo: "iaversieinfo", treinpad: "treinpad", ongeplandeActies: "ongeplandeActies", paginationSize: "paginationSize", baseurl: "baseurl", debug: "debug", viewer: "viewer", useClickArea: "useClickArea" }, outputs: { goedgekeurd: "goedgekeurd" }, usesOnChanges: true, ngImport: i0, template: "<loxia-messages></loxia-messages>\n<loxia-overlay *ngIf=\"(progressIndicator$ | async)\">\n <loxia-progress-indicator id=\"progress-indicator\" [border]=\"false\" upperText=\"\">\n </loxia-progress-indicator>\n</loxia-overlay>\n\n<div style=\"position: relative\">\n <rpe-component [baseurl]=\"baseurl\" path=\"/mst/editor/editor.nocache.js\"></rpe-component>\n\n <svg-visualisatie [useClickArea]=\"useClickArea\" [nietGeplandeActies]=\"ongeplandeActies\"></svg-visualisatie>\n\n <nav [class.active]=\"(viewerControlsService.sideNavOpen$ | async) === false\" id=\"sidebar\">\n <div id=\"dismiss\">\n <em id=\"verbergSideNav\" class=\"fa fa-arrow-left\" (click)=\"viewerControlsService.toggleSideNavVisible()\">&times;</em>\n </div>\n <ritdelen-lijst *ngIf=\"!viewer\" (focusEmitter)=\"focusRitdeel($event)\" (keurAlleActiesGoed)=\"keurAlleActiesGoed()\"\n [nietGeplandeActies]=\"ongeplandeActies\"></ritdelen-lijst>\n <ritdelen-view *ngIf=\"viewer\" (focusEmitter)=\"focusRitdeel($event)\"></ritdelen-view>\n </nav>\n\n <viewer-controls [paginationSize]=\"paginationSize\"\n [treinpad]=\"treinpad\"\n [goedgekeurd]=\"goedgekeurd\"\n ></viewer-controls>\n\n</div>\n", styles: ["#sidebar{min-width:350px;max-width:475px;background:#fff;transition:all .3s;height:93vh;position:absolute;top:0;z-index:20}#sidebar.active{margin-left:-475px}#sidebar .sidebar-header{padding:20px;background:#6d7fcc}#dismiss{width:20px;height:20px;position:absolute;cursor:pointer;top:5px;right:0;color:#000;z-index:300}[hidden]{display:none}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: OverlayComponent, selector: "loxia-overlay" }, { kind: "component", type: ProgressIndicatorComponent, selector: "loxia-progress-indicator" }, { kind: "component", type: RpeComponent, selector: "rpe-component", inputs: ["baseurl", "path"] }, { kind: "component", type: RitdelenLijstComponent, selector: "ritdelen-lijst", inputs: ["nietGeplandeActies"], outputs: ["focusEmitter", "keurAlleActiesGoed"] }, { kind: "component", type: RitdelenViewComponent, selector: "ritdelen-view", outputs: ["focusEmitter"] }, { kind: "component", type: ViewerControlsComponent, selector: "viewer-controls", inputs: ["paginationSize", "treinpad", "goedgekeurd"] }, { kind: "component", type: SvgVisualisatieComponent, selector: "svg-visualisatie", inputs: ["nietGeplandeActies", "useClickArea"] }, { kind: "component", type: MessagesComponent, selector: "loxia-messages" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
2501
3718
  }
2502
3719
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MstviewerComponent, decorators: [{
2503
3720
  type: Component,
2504
- args: [{ selector: 'mst-viewer', template: "<loxia-messages></loxia-messages>\n<loxia-overlay *ngIf=\"(progressIndicator$ | async)\">\n <loxia-progress-indicator id=\"progress-indicator\" [border]=\"false\" upperText=\"\">\n </loxia-progress-indicator>\n</loxia-overlay>\n\n<div style=\"position: relative\">\n <rpe-component [baseurl]=\"baseurl\" path=\"/mst/editor/editor.nocache.js\"></rpe-component>\n\n <svg-visualisatie [useClickArea]=\"useClickArea\" [nietGeplandeActies]=\"ongeplandeActies\"></svg-visualisatie>\n\n <nav [class.active]=\"(viewerControlsService.sideNavOpen$ | async) === false\" id=\"sidebar\">\n <div id=\"dismiss\">\n <em id=\"verbergSideNav\" class=\"fa fa-arrow-left\" (click)=\"viewerControlsService.toggleSideNavVisible()\">&times;</em>\n </div>\n <ritdelen-lijst *ngIf=\"!viewer\" (focusEmitter)=\"focusRitdeel($event)\" (keurAlleActiesGoed)=\"keurAlleActiesGoed()\"\n [nietGeplandeActies]=\"ongeplandeActies\"></ritdelen-lijst>\n <ritdelen-view *ngIf=\"viewer\" (focusEmitter)=\"focusRitdeel($event)\"></ritdelen-view>\n </nav>\n\n <viewer-controls [paginationSize]=\"paginationSize\"\n [iaversieinfo]=\"iaversieinfo\"\n [treinpad]=\"treinpad\"\n [goedgekeurd]=\"goedgekeurd\"\n ></viewer-controls>\n\n</div>\n", styles: ["#sidebar{min-width:350px;max-width:475px;background:#fff;transition:all .3s;height:93vh;position:absolute;top:0;z-index:20}#sidebar.active{margin-left:-475px}#sidebar .sidebar-header{padding:20px;background:#6d7fcc}#dismiss{width:20px;height:20px;position:absolute;cursor:pointer;top:5px;right:0;color:#000;z-index:300}[hidden]{display:none}\n"] }]
3721
+ args: [{ selector: 'mst-viewer', template: "<loxia-messages></loxia-messages>\n<loxia-overlay *ngIf=\"(progressIndicator$ | async)\">\n <loxia-progress-indicator id=\"progress-indicator\" [border]=\"false\" upperText=\"\">\n </loxia-progress-indicator>\n</loxia-overlay>\n\n<div style=\"position: relative\">\n <rpe-component [baseurl]=\"baseurl\" path=\"/mst/editor/editor.nocache.js\"></rpe-component>\n\n <svg-visualisatie [useClickArea]=\"useClickArea\" [nietGeplandeActies]=\"ongeplandeActies\"></svg-visualisatie>\n\n <nav [class.active]=\"(viewerControlsService.sideNavOpen$ | async) === false\" id=\"sidebar\">\n <div id=\"dismiss\">\n <em id=\"verbergSideNav\" class=\"fa fa-arrow-left\" (click)=\"viewerControlsService.toggleSideNavVisible()\">&times;</em>\n </div>\n <ritdelen-lijst *ngIf=\"!viewer\" (focusEmitter)=\"focusRitdeel($event)\" (keurAlleActiesGoed)=\"keurAlleActiesGoed()\"\n [nietGeplandeActies]=\"ongeplandeActies\"></ritdelen-lijst>\n <ritdelen-view *ngIf=\"viewer\" (focusEmitter)=\"focusRitdeel($event)\"></ritdelen-view>\n </nav>\n\n <viewer-controls [paginationSize]=\"paginationSize\"\n [treinpad]=\"treinpad\"\n [goedgekeurd]=\"goedgekeurd\"\n ></viewer-controls>\n\n</div>\n", styles: ["#sidebar{min-width:350px;max-width:475px;background:#fff;transition:all .3s;height:93vh;position:absolute;top:0;z-index:20}#sidebar.active{margin-left:-475px}#sidebar .sidebar-header{padding:20px;background:#6d7fcc}#dismiss{width:20px;height:20px;position:absolute;cursor:pointer;top:5px;right:0;color:#000;z-index:300}[hidden]{display:none}\n"] }]
2505
3722
  }], ctorParameters: () => [{ type: i2$1.Store }, { type: ViewerControlService }, { type: DebugService }, { type: PrintBewegingService }], propDecorators: { iaversieinfo: [{
2506
- type: Input
3723
+ type: Input,
3724
+ args: [{ required: true }]
2507
3725
  }], treinpad: [{
2508
- type: Input
3726
+ type: Input,
3727
+ args: [{ required: true }]
2509
3728
  }], ongeplandeActies: [{
2510
- type: Input
3729
+ type: Input,
3730
+ args: [{ required: true }]
2511
3731
  }], paginationSize: [{
2512
3732
  type: Input
2513
3733
  }], baseurl: [{
@@ -2532,7 +3752,7 @@ let SignaleringsbeeldInfoResource = class SignaleringsbeeldInfoResource extends
2532
3752
  ngOnDestroy() {
2533
3753
  this.subscriptions.unsubscribe();
2534
3754
  }
2535
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SignaleringsbeeldInfoResource, deps: [{ token: i1.ResourceHandler }, { token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
3755
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SignaleringsbeeldInfoResource, deps: [{ token: i1$1.ResourceHandler }, { token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
2536
3756
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SignaleringsbeeldInfoResource }); }
2537
3757
  };
2538
3758
  __decorate([
@@ -2553,7 +3773,7 @@ SignaleringsbeeldInfoResource = __decorate([
2553
3773
  ], SignaleringsbeeldInfoResource);
2554
3774
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SignaleringsbeeldInfoResource, decorators: [{
2555
3775
  type: Injectable
2556
- }], ctorParameters: () => [{ type: i1.ResourceHandler }, { type: i2$1.Store }], propDecorators: { laadSignaleringsbeeldInfo: [], getBestaatIALevering: [] } });
3776
+ }], ctorParameters: () => [{ type: i1$1.ResourceHandler }, { type: i2$1.Store }], propDecorators: { laadSignaleringsbeeldInfo: [], getBestaatIALevering: [] } });
2557
3777
  class SignaleringsbeeldInfoDto extends ResourceModel {
2558
3778
  constructor(data) {
2559
3779
  super();
@@ -2581,13 +3801,15 @@ class BaseRestService {
2581
3801
  this.httpClient = httpClient;
2582
3802
  this.store = store;
2583
3803
  this.subscriptions = new Subscription();
3804
+ this.baseUrl = '';
3805
+ this.iaVersie = '';
2584
3806
  this.subscriptions.add(this.store.select('baseUrl').subscribe(baseUrl => this.baseUrl = baseUrl));
2585
3807
  this.subscriptions.add(this.store.select('iaVersie').subscribe(iaVersie => this.iaVersie = iaVersie.versie));
2586
3808
  }
2587
3809
  ngOnDestroy() {
2588
3810
  this.subscriptions.unsubscribe();
2589
3811
  }
2590
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BaseRestService, deps: [{ token: i1$1.HttpClient }, { token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
3812
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BaseRestService, deps: [{ token: i1.HttpClient }, { token: i2$1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
2591
3813
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BaseRestService, providedIn: 'root' }); }
2592
3814
  }
2593
3815
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BaseRestService, decorators: [{
@@ -2595,7 +3817,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
2595
3817
  args: [{
2596
3818
  providedIn: 'root'
2597
3819
  }]
2598
- }], ctorParameters: () => [{ type: i1$1.HttpClient }, { type: i2$1.Store }] });
3820
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2$1.Store }] });
2599
3821
 
2600
3822
  class BewegingVerrijkerService extends BaseRestService {
2601
3823
  getBewegingen(bewegingen, ongeplandeActies) {
@@ -2756,13 +3978,13 @@ class Ritdeel {
2756
3978
  return retval;
2757
3979
  }
2758
3980
  getVrijebaanRijwegplan() {
2759
- return this.vrijebaanRijwegplanRijwegDwangCombi.rijwegplan;
3981
+ return this.vrijebaanRijwegplanRijwegDwangCombi?.rijwegplan;
2760
3982
  }
2761
3983
  getVrijebaanRijweg() {
2762
- return this.vrijebaanRijwegplanRijwegDwangCombi.rijweg;
3984
+ return this.vrijebaanRijwegplanRijwegDwangCombi?.rijweg;
2763
3985
  }
2764
3986
  getVrijebaanDwang() {
2765
- return this.vrijebaanRijwegplanRijwegDwangCombi.dwang;
3987
+ return this.vrijebaanRijwegplanRijwegDwangCombi?.dwang;
2766
3988
  }
2767
3989
  getDwangNummer() {
2768
3990
  return this.rijwegplanRijwegDwangCombi.getDwangNummer();
@@ -2779,7 +4001,7 @@ class Ritdeel {
2779
4001
  isBinnenWindow() {
2780
4002
  return (this.zichtbaarheid === RitdeelZichtbaarheid.ZICHTBAAR ||
2781
4003
  this.zichtbaarheid === RitdeelZichtbaarheid.ONZICHTBAAR_DOOR_GEBRUIKER)
2782
- && this.zichtbaarBuitenPaginatie === false;
4004
+ && !this.zichtbaarBuitenPaginatie;
2783
4005
  }
2784
4006
  isNietBeschikbaar() {
2785
4007
  return this.zichtbaarheid === RitdeelZichtbaarheid.ONZICHTBAAR_DOOR_SYSTEEM;
@@ -2802,10 +4024,10 @@ class Ritdeel {
2802
4024
  }
2803
4025
  }
2804
4026
  heeftVrijebaanInfo() {
2805
- return this.vrijebaanRijwegplanRijwegDwangCombi && !!this.vrijebaanRijwegplanRijwegDwangCombi.dwang;
4027
+ return !!this.vrijebaanRijwegplanRijwegDwangCombi && !!this.vrijebaanRijwegplanRijwegDwangCombi.dwang;
2806
4028
  }
2807
4029
  getVrijebaanPrlRoute() {
2808
- return this.vrijebaanRijwegplanRijwegDwangCombi.getRoute();
4030
+ return this.vrijebaanRijwegplanRijwegDwangCombi?.getRoute();
2809
4031
  }
2810
4032
  getTopologieElementen() {
2811
4033
  return this.topoElementen;
@@ -2837,10 +4059,10 @@ class Ritdeel {
2837
4059
  getZichtbaarheidBuitenPaginatie() {
2838
4060
  return this.zichtbaarBuitenPaginatie;
2839
4061
  }
2840
- bepaalTopologieElementen(signaleringsBeeldManagerService) {
2841
- const topoElementen = signaleringsBeeldManagerService.bepaalRouteElementen(this.getRoute());
4062
+ bepaalTopologieElementen(sbmService) {
4063
+ const topoElementen = sbmService.bepaalRouteElementen(this.getRoute());
2842
4064
  if (this.heeftVrijebaanInfo()) {
2843
- const vrijebaanTopoElementen = signaleringsBeeldManagerService.bepaalRouteElementen(this.getVrijebaanPrlRoute());
4065
+ const vrijebaanTopoElementen = sbmService.bepaalRouteElementen(this.getVrijebaanPrlRoute());
2844
4066
  topoElementen.push(...vrijebaanTopoElementen);
2845
4067
  }
2846
4068
  this.topoElementen = topoElementen;
@@ -2886,7 +4108,7 @@ class RitLezerService {
2886
4108
  ritDelen.push(new Ritdeel(dwangInfo, beweging.ritActies, beweging, vrijebaanDwangInfo, vervolgSpoor, []));
2887
4109
  }
2888
4110
  extractVrijebaanDwangInfo(beweging, rijwegPlan, rijweg) {
2889
- let vrijebaanDwangInfo = null;
4111
+ let vrijebaanDwangInfo = undefined;
2890
4112
  let vervolgSpoor;
2891
4113
  if (beweging.naarSpoor.endsWith(SPOOR_NAAR_VRIJEBAAN_POSTFIX) ||
2892
4114
  beweging.naarSpoor.endsWith(SPOOR_NAAR_VEERWISSEL_VRIJEBAAN_POSTFIX)) {
@@ -2900,9 +4122,9 @@ class RitLezerService {
2900
4122
  vrijebaanRijweg = vrijebaanRijwegen[0];
2901
4123
  vrijebaanDwang = vrijebaanRijweg.getDwangVoorDwangNummer(0);
2902
4124
  vervolgSpoor = vrijebaanRijwegplan.getVervolgSpoor(vrijebaanRijweg);
4125
+ vrijebaanDwangInfo =
4126
+ new RijwegplanRijwegDwangCombinatie(vrijebaanRijwegplan, vrijebaanRijweg, vrijebaanDwang);
2903
4127
  }
2904
- vrijebaanDwangInfo =
2905
- new RijwegplanRijwegDwangCombinatie(vrijebaanRijwegplan, vrijebaanRijweg, vrijebaanDwang);
2906
4128
  }
2907
4129
  }
2908
4130
  return { vrijebaanDwangInfo, vervolgSpoor };
@@ -2955,7 +4177,7 @@ class BepaalOngeplandeActiesEffect {
2955
4177
  this.bepaalOngeplandeActies$ = createEffect(() => this.actions$.pipe(ofType(BepaalOngeplandeActies), withLatestFrom(this.store), map(([action, store]) => {
2956
4178
  const puicActieMap = new ArrayMultimap();
2957
4179
  const nietGevondenTakken = [];
2958
- const logMeldingDTOs = [];
4180
+ const logMeldingDTOs$ = [];
2959
4181
  const acties = store.ritDelen.flatMap(rd => rd.acties);
2960
4182
  action.ongeplandeActies.forEach(actie => {
2961
4183
  const alreadyAdded = acties.filter(a => a.id === actie.id).length > 0;
@@ -2971,11 +4193,11 @@ class BepaalOngeplandeActiesEffect {
2971
4193
  if (!spoortak && nietGevondenTakken.indexOf(takId) < 0) {
2972
4194
  nietGevondenTakken.push(takId);
2973
4195
  const melding = MeldingBuilder.nietGevondenTakkenOngeplandeActies(nietGevondenTakken);
2974
- logMeldingDTOs.push(this.loggingHelper.maakLogDTO(melding, actie));
4196
+ logMeldingDTOs$.push(this.loggingHelper.maakLogDTO(melding, actie));
2975
4197
  }
2976
4198
  else if (spoortak) {
2977
4199
  const melding = MeldingBuilder.actieHighlightError([actie.id]);
2978
- logMeldingDTOs.push(this.loggingHelper.maakLogDTO(melding, actie));
4200
+ logMeldingDTOs$.push(this.loggingHelper.maakLogDTO(melding, actie));
2979
4201
  this.messagesService.showMessage(MessageBuilder.actieHighlightError([actie.id]));
2980
4202
  }
2981
4203
  }
@@ -2984,8 +4206,8 @@ class BepaalOngeplandeActiesEffect {
2984
4206
  if (nietGevondenTakken.length > 0) {
2985
4207
  this.messagesService.showMessage(MessageBuilder.nietGevondenTakkenOngeplandeActies(nietGevondenTakken));
2986
4208
  }
2987
- if (logMeldingDTOs.length > 0) {
2988
- this.mstLogResource.logErrorMessages(logMeldingDTOs);
4209
+ if (logMeldingDTOs$.length > 0) {
4210
+ forkJoin(logMeldingDTOs$).pipe(tap(dtos => this.mstLogResource.logMessages(dtos))).subscribe();
2989
4211
  }
2990
4212
  this.store.dispatch(SetOngeplandeActies(puicActieMap));
2991
4213
  this.store.dispatch(SetOngeplandeActieSelectieIds(Array.from(puicActieMap.keys())));
@@ -3055,7 +4277,7 @@ class BepaalSbInfosEffect {
3055
4277
  next: _res => this.store.dispatch(laadEnVerwerkSignaleringsbeeldInfo(treinpad, paginationSize, pplgs, ritGewijzigdToegestaan)),
3056
4278
  error: err => {
3057
4279
  this.messagesService.showMessage(new Message(Severity.INFORMATION, Utils.getValidErorrMessage(err)));
3058
- const iaVersieInfo = { versie: 'DONNA_77136_VER_1', ingangsDatum: this.dateService.getCurrentDate() };
4280
+ const iaVersieInfo = { versie: 'DONNA_97207_VER_1', ingangsDatum: this.dateService.getCurrentDate() };
3059
4281
  this.store.dispatch(SetIaVersie(iaVersieInfo));
3060
4282
  this.store.dispatch(laadEnVerwerkSignaleringsbeeldInfo(treinpad, paginationSize, pplgs, ritGewijzigdToegestaan));
3061
4283
  }
@@ -3178,7 +4400,7 @@ class FocusEffect {
3178
4400
  const dwangPuics = this.getPuics(topoElementen);
3179
4401
  if (ritdeel.isNietBeschikbaar()) {
3180
4402
  this.store.dispatch(SetOngeplandeActiesBepaald(false));
3181
- this.store.dispatch(navigeerVanaf(actie.paginationSize, actie.iaVersieInfo, ritdeel));
4403
+ this.store.dispatch(navigeerVanaf(actie.paginationSize, ritdeel));
3182
4404
  }
3183
4405
  return focusOpIds(dwangPuics);
3184
4406
  })));
@@ -3200,16 +4422,16 @@ class LaadRouteFilesEffect {
3200
4422
  this.ritLezer = ritLezer;
3201
4423
  this.editorService = editorService;
3202
4424
  this.messagesService = messagesService;
3203
- this.authActions$ = createEffect(() => this.actions$.pipe(ofType(SetSignaleringsbeeldInfoDtos), map(action => this.laadRouteFiles(action))), { dispatch: false });
4425
+ this.authActions$ = createEffect(() => this.actions$.pipe(ofType(SetSignaleringsbeeldInfoDtos), withLatestFrom(this.store), map(([action, storeState]) => this.laadRouteFiles(action, storeState.iaVersie.versie))), { dispatch: false });
3204
4426
  }
3205
- laadRouteFiles(actie) {
4427
+ laadRouteFiles(actie, iaVersie) {
3206
4428
  const isReady = this.editorService.isReady();
3207
4429
  isReady.then(() => {
3208
4430
  const pplgs = this.bepaalSbDtoPplgs(actie.dtos);
3209
- const promise = this.editorService.laadRouteFiles(actie.iaversieinfo.versie, pplgs);
4431
+ const promise = this.editorService.laadRouteFiles(iaVersie, pplgs);
3210
4432
  promise.then(() => {
3211
4433
  this.updateRitdelen(actie);
3212
- }, err => {
4434
+ }, (err) => {
3213
4435
  this.messagesService.showMessage(MessageBuilder.rwpDataNietGevonden(Utils.getValidErorrMessage(err)));
3214
4436
  });
3215
4437
  });
@@ -3220,7 +4442,7 @@ class LaadRouteFilesEffect {
3220
4442
  if (ritdelen.length === 0) {
3221
4443
  ritdelen = this.ritLezer.parseRit(actie.treinpad, actie.ritGewijzigdToegestaan);
3222
4444
  }
3223
- this.store.dispatch(setRitDelen(ritdelen, actie.paginationSize, actie.iaversieinfo));
4445
+ this.store.dispatch(setRitDelen(ritdelen, actie.paginationSize));
3224
4446
  this.store.dispatch(setEditable(actie.treinpad.ritStatus !== 'Definitief'));
3225
4447
  });
3226
4448
  }, 0);
@@ -3269,14 +4491,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
3269
4491
  }] });
3270
4492
 
3271
4493
  class LaadSignaleringsbeeldenEffect {
3272
- constructor(actions$, store, signaleringsBeeldManagerService, editorService, sbiResource, connectorService, messagesSerivce) {
4494
+ constructor(actions$, store, signaleringsBeeldManagerService, editorService, sbiResource, connectorService, messagesService) {
3273
4495
  this.actions$ = actions$;
3274
4496
  this.store = store;
3275
4497
  this.signaleringsBeeldManagerService = signaleringsBeeldManagerService;
3276
4498
  this.editorService = editorService;
3277
4499
  this.sbiResource = sbiResource;
3278
4500
  this.connectorService = connectorService;
3279
- this.messagesSerivce = messagesSerivce;
4501
+ this.messagesService = messagesService;
3280
4502
  this.SVG_PIXEL_RUIMTE = 30;
3281
4503
  this.verwerkRitdelen$ = createEffect(() => this.actions$.pipe(ofType(setRitDelen, navigeer, navigeerVanaf), withLatestFrom(this.store), map(([actie, storeState]) => {
3282
4504
  this.store.dispatch(SetOngeplandeActiesBepaald(false));
@@ -3291,13 +4513,13 @@ class LaadSignaleringsbeeldenEffect {
3291
4513
  }
3292
4514
  handleSignaleringsbeeldInfo({ actie, storeState }) {
3293
4515
  return this.sbiResource.laadSignaleringsbeeldInfo(this.createSignaleringsbeeldInfoQueryDto(actie.pplgs, storeState.iaVersie)).pipe(take(1), tap((dtos) => this.processResponse({ dtos, storeState, actie })), catchError((err) => {
3294
- this.messagesSerivce.showMessage(MessageBuilder.nietGevondenSBI(err));
4516
+ this.messagesService.showMessage(MessageBuilder.nietGevondenSBI(err));
3295
4517
  return throwError(() => err);
3296
4518
  }));
3297
4519
  }
3298
4520
  processResponse({ dtos, storeState, actie }) {
3299
4521
  if (dtos && dtos.filter(dto => dto.metVisualisatie).length > 12) {
3300
- this.messagesSerivce.showMessage(MessageBuilder.meerDan12BladenGevonden(dtos.length));
4522
+ this.messagesService.showMessage(MessageBuilder.meerDan12BladenGevonden(dtos.length));
3301
4523
  }
3302
4524
  this.store.dispatch(SetSignaleringsbeeldInfoDtos(dtos, storeState.iaVersie, actie.rit, actie.paginationSize, actie.ritGewijzigdToegestaan));
3303
4525
  this.store.dispatch(SetVisibleSignaleringsbeeldInfoDtos(dtos));
@@ -3310,11 +4532,11 @@ class LaadSignaleringsbeeldenEffect {
3310
4532
  return this.sbiResource.laadSignaleringsbeeldInfo(this.createSignaleringsbeeldInfoQueryDto([rand.getPPLG(), otherPplg], storeState.iaVersie)).pipe(map(dtos => ({ dtos, storeState })));
3311
4533
  }
3312
4534
  loadSignaleringsbeelden({ dtos, storeState }) {
3313
- return this.editorService.laadSignaleringsbeelden(storeState.iaVersie.versie, dtos).pipe(map(svgDataUrls => ({ svgDataUrls, storeState, dtos })));
4535
+ return this.editorService.laadSignaleringsbeelden(storeState.iaVersie.versie, dtos).pipe(map(svgDataUrls => ({ svgDataUrls, ritDelen: storeState.ritDelen, dtos })));
3314
4536
  }
3315
- processSvgsAndUpdateRitdelen({ svgDataUrls, storeState, dtos }) {
4537
+ processSvgsAndUpdateRitdelen({ svgDataUrls, ritDelen, dtos }) {
3316
4538
  this.verwerkSvgs(svgDataUrls);
3317
- const nieuweRitdelen = this.updateRitdelen(storeState.ritDelen, dtos);
4539
+ const nieuweRitdelen = this.updateRitdelen(ritDelen, dtos);
3318
4540
  this.store.dispatch(UpdateVisibleSignaleringsbeeldInfoDtos(dtos));
3319
4541
  this.store.dispatch(updateRitDelen(nieuweRitdelen));
3320
4542
  }
@@ -3327,11 +4549,11 @@ class LaadSignaleringsbeeldenEffect {
3327
4549
  const visibleRitPplgs = visibleRitDelen.map(r => r.getPplg()).filter(this.distinct);
3328
4550
  const visibleDtos = this.bepaalZichtbareDtos(visibleRitPplgs, storeDtos);
3329
4551
  const loadingDtos = this.bepaalToLoadDtos(visibleDtos, ritDelen, visibleRitDelen, visibleRitPplgs, storeState);
3330
- this.editorService.laadSignaleringsbeelden(actie.iaversieinfo.versie, loadingDtos).pipe(tap(svgDataUrls => {
4552
+ this.editorService.laadSignaleringsbeelden(storeState.iaVersie.versie, loadingDtos).pipe(tap(svgDataUrls => {
3331
4553
  this.verwerkSvgs(svgDataUrls);
3332
4554
  this.updateState(ritDelen, visibleDtos, storeState, visibleRitPplgs, loadingDtos, isInit, storeDtos);
3333
4555
  }), catchError(err => {
3334
- this.messagesSerivce.showMessage(MessageBuilder.rwpDataNietGevonden(Utils.getValidErorrMessage(err)));
4556
+ this.messagesService.showMessage(MessageBuilder.rwpDataNietGevonden(Utils.getValidErorrMessage(err)));
3335
4557
  throw err;
3336
4558
  })).subscribe();
3337
4559
  }
@@ -3386,8 +4608,8 @@ class LaadSignaleringsbeeldenEffect {
3386
4608
  dtos.filter(d => !visibleDtos.includes(d)).forEach(d => d.metVisualisatie = false);
3387
4609
  return visibleDtos;
3388
4610
  }
3389
- distinct(value, index, self) {
3390
- return self.indexOf(value) === index;
4611
+ distinct(value, index, values) {
4612
+ return values.indexOf(value) === index;
3391
4613
  }
3392
4614
  addPrevNonVisibleDto(firstIdx, ritdelen, loadingDtos, visibleRitPplgs, allDtos) {
3393
4615
  if (firstIdx >= 0) {
@@ -3476,7 +4698,7 @@ class LaadSignaleringsbeeldenEffect {
3476
4698
  }
3477
4699
  }
3478
4700
  }
3479
- this.updateZichtbaarheidAangrezendeRitdelen(min, max, ritdelen, visibleDtos);
4701
+ this.updateZichtbaarheidAangrenzendeRitdelen(min, max, ritdelen, visibleDtos);
3480
4702
  return this.updateZichtbaarheidBuitenWindow(ritdelen, visibleDtos);
3481
4703
  }
3482
4704
  updateZichtbaarheidBuitenWindow(nieuweRitdelen, visibleDtos) {
@@ -3492,7 +4714,7 @@ class LaadSignaleringsbeeldenEffect {
3492
4714
  }
3493
4715
  return nieuweRitdelen;
3494
4716
  }
3495
- updateZichtbaarheidAangrezendeRitdelen(min, max, nieuweRitdelen, visibleDtos) {
4717
+ updateZichtbaarheidAangrenzendeRitdelen(min, max, nieuweRitdelen, visibleDtos) {
3496
4718
  let i = min - 1;
3497
4719
  while (i >= 0) {
3498
4720
  i = this.updateZichtbaarHeid(i, 0, visibleDtos, nieuweRitdelen) - 1;
@@ -3627,11 +4849,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
3627
4849
  }], ctorParameters: () => [{ type: i1$2.Actions }, { type: i2$1.Store }, { type: BewegingVerrijkerService }] });
3628
4850
 
3629
4851
  class RitdelenEffect {
3630
- constructor(actions$, store, sbmService, rijwegPlanEditorService) {
4852
+ constructor(actions$, store, sbmService, editorService) {
3631
4853
  this.actions$ = actions$;
3632
4854
  this.store = store;
3633
4855
  this.sbmService = sbmService;
3634
- this.rijwegPlanEditorService = rijwegPlanEditorService;
4856
+ this.editorService = editorService;
3635
4857
  this.updateRitDelen$ = createEffect(() => this.actions$.pipe(ofType(updateRitDelen), withLatestFrom(this.store), map(([actie, _storeState]) => {
3636
4858
  const nieuweRitDelen = actie.ritDelen.map(ritDeel => ritDeel.isZichtbaar() ?
3637
4859
  ritDeel.copyMetAlternatieveRoutes(this.sbmService.bepaalAlternativeRoutes(ritDeel.getRijweg())) : ritDeel);
@@ -3649,25 +4871,25 @@ class RitdelenEffect {
3649
4871
  return setRitdelenAfterUpdate(ritDelen);
3650
4872
  })));
3651
4873
  this.ritdeelInvoegen$ = createEffect(() => this.actions$.pipe(ofType(ritdeelInvoegen), withLatestFrom(this.store), map(([actie, storeState]) => {
3652
- const ritDelen = this.ritdeelInvoegenFunc(storeState.ritDelen, actie.nieuweRoute, this.rijwegPlanEditorService, this.sbmService);
4874
+ const ritDelen = this.ritdeelInvoegenFunc(storeState.ritDelen, actie.nieuweRoute);
3653
4875
  return setRitdelenAfterUpdate(ritDelen);
3654
4876
  })));
3655
4877
  }
3656
- ritdeelInvoegenFunc(ritDelen, nieuweRoute, rijwegPlanEditorService, sbmService) {
4878
+ ritdeelInvoegenFunc(ritDelen, nieuweRoute) {
3657
4879
  const origineelRitdeel = nieuweRoute.beginSeinOpRitdeel.ritdeel;
3658
4880
  const beginSein = nieuweRoute.beginSeinOpRitdeel.sein;
3659
- const rijwegplan = rijwegPlanEditorService.getRijwegplan(beginSein.getPPLG());
4881
+ const rijwegplan = this.editorService.getRijwegplan(beginSein.getPPLG());
3660
4882
  const dwangen = JsJavaUtil.listToArray(rijwegplan.getOnderliggendeDwangenTotEnVanSein(origineelRitdeel.getDwang(), beginSein));
3661
4883
  const isSamengesteldeRoute = dwangen[0] && dwangen[1];
3662
4884
  let newRitdeel1 = origineelRitdeel;
3663
4885
  if (isSamengesteldeRoute) {
3664
- newRitdeel1 = this.verwerkSamengesteldeRoute(origineelRitdeel, rijwegplan, dwangen, sbmService, ritDelen);
4886
+ newRitdeel1 = this.verwerkSamengesteldeRoute(origineelRitdeel, rijwegplan, dwangen, ritDelen);
3665
4887
  }
3666
- if (nieuweRoute.combinatieVoorEindsein.isVrijeBaanRijweg()) {
3667
- this.extendRitdeelMetVrijebaanInfo(newRitdeel1, nieuweRoute, sbmService);
4888
+ if (nieuweRoute.combinatieVoorEindsein?.isVrijeBaanRijweg()) {
4889
+ this.extendRitdeelMetVrijebaanInfo(newRitdeel1, nieuweRoute);
3668
4890
  }
3669
4891
  else {
3670
- this.maakNieuwRitdeel(newRitdeel1, nieuweRoute, sbmService, ritDelen);
4892
+ this.maakNieuwRitdeel(newRitdeel1, nieuweRoute, ritDelen);
3671
4893
  }
3672
4894
  if (isSamengesteldeRoute) {
3673
4895
  ritDelen.splice(ritDelen.indexOf(origineelRitdeel), 1);
@@ -3682,38 +4904,39 @@ class RitdelenEffect {
3682
4904
  }
3683
4905
  }
3684
4906
  }
3685
- verwerkSamengesteldeRoute(origineelRitdeel, rijwegplan, dwangen, sbmService, ritDelen) {
4907
+ verwerkSamengesteldeRoute(origineelRitdeel, rijwegplan, dwangen, ritDelen) {
3686
4908
  // dwangen in 2 nieuwe ritdelen verwerken voor de knip
3687
4909
  const nieuweRijweg1 = rijwegplan.getRijwegVoorSeinen(dwangen[0].getRoute().getBeginSein(), dwangen[0].getRoute().getEindSein());
3688
4910
  const dwangInfo1 = new RijwegplanRijwegDwangCombinatie(rijwegplan, nieuweRijweg1, dwangen[0]);
3689
- const newRitdeel1 = new Ritdeel(dwangInfo1, [], null, null, null, []);
4911
+ const newRitdeel1 = new Ritdeel(dwangInfo1, [], undefined, undefined, undefined, []);
3690
4912
  // remove vrijbaan info uit ritdeel
3691
- newRitdeel1.vrijebaanRijwegplanRijwegDwangCombi = null;
3692
- newRitdeel1.vervolgSpoor = null;
3693
- newRitdeel1.bepaalTopologieElementen(sbmService);
4913
+ newRitdeel1.vrijebaanRijwegplanRijwegDwangCombi = undefined;
4914
+ newRitdeel1.vervolgSpoor = undefined;
4915
+ newRitdeel1.bepaalTopologieElementen(this.sbmService);
3694
4916
  this.insertRitdeel(ritDelen, origineelRitdeel, newRitdeel1);
3695
4917
  const nieuweRijweg2 = rijwegplan.getRijwegVoorSeinen(dwangen[1].getRoute().getBeginSein(), dwangen[1].getRoute().getEindSein());
3696
4918
  const dwangInfo2 = new RijwegplanRijwegDwangCombinatie(rijwegplan, nieuweRijweg2, dwangen[1]);
3697
- const newRitdeel2 = new Ritdeel(dwangInfo2, [], null, null, null, []);
3698
- newRitdeel2.bepaalTopologieElementen(sbmService);
4919
+ const newRitdeel2 = new Ritdeel(dwangInfo2, [], undefined, undefined, undefined, []);
4920
+ newRitdeel2.bepaalTopologieElementen(this.sbmService);
3699
4921
  this.insertRitdeel(ritDelen, newRitdeel1, newRitdeel2);
3700
4922
  return newRitdeel1;
3701
4923
  }
3702
- extendRitdeelMetVrijebaanInfo(newRitdeel1, nieuweRoute, sbmService) {
4924
+ extendRitdeelMetVrijebaanInfo(newRitdeel1, nieuweRoute) {
3703
4925
  newRitdeel1.vrijebaanRijwegplanRijwegDwangCombi = nieuweRoute.combinatieVoorEindsein;
3704
- const vbrwp = nieuweRoute.combinatieVoorEindsein.rijwegplan;
3705
- newRitdeel1.vervolgSpoor = vbrwp.getVervolgSpoor(nieuweRoute.combinatieVoorEindsein.rijweg);
3706
- newRitdeel1.bepaalTopologieElementen(sbmService);
4926
+ const vbrwp = nieuweRoute.combinatieVoorEindsein?.rijwegplan;
4927
+ newRitdeel1.vervolgSpoor = nieuweRoute.combinatieVoorEindsein ?
4928
+ vbrwp.getVervolgSpoor(nieuweRoute.combinatieVoorEindsein?.rijweg) : undefined;
4929
+ newRitdeel1.bepaalTopologieElementen(this.sbmService);
3707
4930
  }
3708
- maakNieuwRitdeel(newRitdeel1, nieuweRoute, sbmService, ritDelen) {
4931
+ maakNieuwRitdeel(newRitdeel1, nieuweRoute, ritDelen) {
3709
4932
  let newRitdeel = this.createRitdeel(nieuweRoute);
3710
- const altRoutes = sbmService.bepaalAlternativeRoutes(newRitdeel.getRijweg());
4933
+ const altRoutes = this.sbmService.bepaalAlternativeRoutes(newRitdeel.getRijweg());
3711
4934
  newRitdeel = newRitdeel.copyMetAlternatieveRoutes(altRoutes);
3712
- newRitdeel.bepaalTopologieElementen(sbmService);
4935
+ newRitdeel.bepaalTopologieElementen(this.sbmService);
3713
4936
  this.insertRitdeel(ritDelen, newRitdeel1, newRitdeel);
3714
4937
  }
3715
4938
  createRitdeel(nieuweRoute) {
3716
- return new Ritdeel(nieuweRoute.combinatieVoorEindsein, [], null, null, null, []);
4939
+ return new Ritdeel(nieuweRoute.combinatieVoorEindsein, [], undefined, undefined, undefined, []);
3717
4940
  }
3718
4941
  insertRitdeel(ritdelen, naRitdeelPositie, newRitdeel) {
3719
4942
  const idx = ritdelen.indexOf(naRitdeelPositie);
@@ -3764,13 +4987,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
3764
4987
  type: Injectable
3765
4988
  }], ctorParameters: () => [{ type: i1$2.Actions }, { type: i2$1.Store }, { type: SignaleringsBeeldManagerService }, { type: i4.SignaleringsbeeldSvgUtilityService }] });
3766
4989
 
4990
+ class ProgressIndicator {
4991
+ constructor(lowerText, upperText, iconClass) {
4992
+ this.lowerText = '';
4993
+ this.upperText = '';
4994
+ this.iconClass = '';
4995
+ this.lowerText = lowerText ?? this.lowerText;
4996
+ this.upperText = upperText ?? this.upperText;
4997
+ this.iconClass = iconClass ?? this.iconClass;
4998
+ }
4999
+ }
5000
+
3767
5001
  class NieuweRoute {
3768
5002
  constructor(beginSeinOpRitdeel, combinatieVoorEindsein) {
3769
5003
  this.beginSeinOpRitdeel = beginSeinOpRitdeel;
3770
5004
  this.combinatieVoorEindsein = combinatieVoorEindsein;
3771
5005
  }
3772
5006
  isValid() {
3773
- return this.combinatieVoorEindsein !== null;
5007
+ return !!this.combinatieVoorEindsein;
3774
5008
  }
3775
5009
  }
3776
5010
 
@@ -3836,7 +5070,7 @@ function addRitdeelActieFunc(ritDelen, { ritDeel, actie }) {
3836
5070
  const onIdsActionHandler = (action) => on(action, (_, { ids }) => ids);
3837
5071
  const createIdsReducer = (action) => createReducer([], onIdsActionHandler(action));
3838
5072
  const editableReducer = createReducer(true, on(setEditable, (_, { editable }) => editable));
3839
- const progressIndicatorReducer = createReducer(undefined, on(ShowProgress, () => ({ progressIndicator: {} })), on(ClearProgress, () => undefined));
5073
+ const progressIndicatorReducer = createReducer({}, on(ShowProgress, () => ({ progressIndicator: new ProgressIndicator() })), on(ClearProgress, () => ({})));
3840
5074
  const svgInfoReducer = createReducer([], on(SetSvgInfos, (_, { svgInfos }) => svgInfos));
3841
5075
  const debugReducer = createReducer(false, on(SetDebug, (_, { debug }) => debug));
3842
5076
  const ritSelectieIdsReducer = createIdsReducer(SetRitSelectieIds);
@@ -3862,12 +5096,10 @@ const ongeplandeActieReducer = createReducer(new ArrayMultimap(), on(SetOngeplan
3862
5096
  ongeplandeActie.puics.forEach(puic => ongeplandeActies.delete(puic, ongeplandeActie));
3863
5097
  return new ArrayMultimap(ongeplandeActies);
3864
5098
  }));
3865
- const ongeplandeActieSelectieIdsReducer = createReducer([],
3866
- // on(MstActions.SetOngeplandeActieSelectieIds, (_, { ids }) => ids),
3867
- onIdsActionHandler(SetOngeplandeActieSelectieIds), on(AddOngeplandeActie, (ids, { ongeplandeActie }) => {
5099
+ const ongeplandeActieSelectieIdsReducer = createReducer([], onIdsActionHandler(SetOngeplandeActieSelectieIds), on(AddOngeplandeActie, (ids, { ongeplandeActie }) => {
3868
5100
  ongeplandeActie.puics.filter(puic => !ids.includes(puic)).forEach(puic => ids.push(puic));
3869
5101
  return [...ids];
3870
- }), on(DeleteOngeplandeActieSelectieId, (ids, { id }) => [].concat(ids.includes(id) ? ids.filter(_id => _id !== id) : ids)));
5102
+ }), on(DeleteOngeplandeActieSelectieId, (ids, { id }) => ids.includes(id) ? ids.filter(_id => _id !== id) : ids));
3871
5103
  const gebrokenRitSelectieIdsReducer = createIdsReducer(SetGebrokenRitSelectieIds);
3872
5104
  const alternatievenSelectieIdsReducer = createIdsReducer(SetAlternatievenSelectieIds);
3873
5105
  const beginSeinSelectieIdsReducer = createIdsReducer(SetBeginSeinSelectieIds);
@@ -3876,16 +5108,15 @@ const alternatievenClickableIdsReducer = createIdsReducer(SetAlternatievenClicka
3876
5108
  const eindSeinenClickableIdsReducer = createIdsReducer(SetEindSeinenClickableIds);
3877
5109
  const connectorClickableIdsReducer = createIdsReducer(SetConnectorenClickableIds);
3878
5110
  const beginSeinRightClickableIdsReducer = createIdsReducer(SetBeginSeinRightClickableIds);
3879
- const nieuweRouteReducer = createReducer(new NieuweRoute(null, null), on(SetNieuwRouteBeginSein, (_, { startSeinOpRitdeel }) => new NieuweRoute(startSeinOpRitdeel, null)), on(SetNieuwRouteEindSein, (nieuweRoute, { combinatieVoorEindsein }) => new NieuweRoute(nieuweRoute.beginSeinOpRitdeel, combinatieVoorEindsein)), on(ResetNieuweRoute, () => new NieuweRoute(null, null)));
5111
+ const nieuweRouteReducer = createReducer(undefined, on(SetNieuwRouteBeginSein, (_, { startSeinOpRitdeel }) => new NieuweRoute(startSeinOpRitdeel, undefined)), on(SetNieuwRouteEindSein, (nieuweRoute, { combinatieVoorEindsein }) => nieuweRoute ? new NieuweRoute(nieuweRoute.beginSeinOpRitdeel, combinatieVoorEindsein) : undefined), on(ResetNieuweRoute, () => undefined));
3880
5112
  const signaleringsbeeldInfoDtosReducer = createReducer([], on(SetSignaleringsbeeldInfoDtos, (_, { dtos }) => dtos), on(UpdateSignaleringsbeeldInfoDtos, (_, { dtos }) => [...dtos]));
3881
5113
  const visibleSbInfoDtosReducer = createReducer([], on(SetVisibleSignaleringsbeeldInfoDtos, (_, { dtos }) => dtos), on(UpdateVisibleSignaleringsbeeldInfoDtos, (_, { dtos }) => [...dtos]));
3882
- const iaVersieReducer = createReducer({}, on(SetIaVersie, (_, { iaVersie }) => Object.assign({}, iaVersie, { versie: iaVersie.versie.toUpperCase() })));
3883
- const algemeneRitInfoDtoReducer = createReducer(new AlgemeneRitInfoDto(), on(SetAlgemeneRitInfo, (_, { algemeneRitInfoDto }) => algemeneRitInfoDto));
5114
+ const iaVersieReducer = createReducer({ versie: 'unknown', ingangsDatum: new Date() }, on(SetIaVersie, (_, { iaVersie }) => Object.assign({}, iaVersie, { versie: iaVersie.versie.toUpperCase() })));
5115
+ const algemeneRitInfoDtoReducer = createReducer({}, on(SetAlgemeneRitInfo, (_, { algemeneRitInfoDto }) => algemeneRitInfoDto));
3884
5116
  const ongeplandeActiesBepaaldReducer = createReducer(false, on(SetOngeplandeActiesBepaald, (_, { bepaald }) => bepaald));
3885
- const nieuweBewegingReducer = createReducer({}, on(UpdateRit, (_, { bewegingen }) => bewegingen));
3886
- const baseUrlReducer = createReducer(undefined, on(SetBaseUrl, (_, { baseUrl }) => baseUrl));
3887
- const focusIdsReducer = createReducer({}, on(focusOpIds, (_, { puics }) => puics));
3888
- const selectedRitdeelIdReducer = createReducer({}, on(SetSelectedRitdeel, (_, { id }) => id));
5117
+ const nieuweBewegingReducer = createReducer([], on(UpdateRit, (_, { bewegingen }) => bewegingen));
5118
+ const baseUrlReducer = createReducer('', on(SetBaseUrl, (_, { baseUrl }) => baseUrl));
5119
+ const focusIdsReducer = createReducer([], on(focusOpIds, (_, { puics }) => puics));
3889
5120
  const storeReducers = {
3890
5121
  ritDelen: ritdelenReducer,
3891
5122
  ritSelectieIds: ritSelectieIdsReducer,
@@ -3914,9 +5145,9 @@ const storeReducers = {
3914
5145
  nieuweBewegingen: nieuweBewegingReducer,
3915
5146
  baseUrl: baseUrlReducer,
3916
5147
  focusIds: focusIdsReducer,
3917
- selectedRitdeelId: selectedRitdeelIdReducer
3918
5148
  };
3919
5149
 
5150
+ // @ts-nocheck
3920
5151
  class ZoneUtil {
3921
5152
  constructor(ngZone) {
3922
5153
  this.ngZone = ngZone;
@@ -3979,6 +5210,7 @@ class MstViewerModule {
3979
5210
  constructor(service, zoneUtil) {
3980
5211
  this.service = service;
3981
5212
  // maak de EditorService toegankelijk voor GWT code
5213
+ // @ts-ignore
3982
5214
  window['rpe'] = {
3983
5215
  EditorService: zoneUtil.proxy(service)
3984
5216
  };
@@ -3996,7 +5228,7 @@ class MstViewerModule {
3996
5228
  SvgVisualisatieComponent,
3997
5229
  MessagesComponent], imports: [CommonModule,
3998
5230
  ImxViewerModule,
3999
- RijwegenModule, i1.ResourceModule, i2$1.StoreRootModule, i1$2.EffectsRootModule], exports: [MstviewerComponent] }); }
5231
+ RijwegenModule, i1$1.ResourceModule, i2$1.StoreRootModule, i1$2.EffectsRootModule], exports: [MstviewerComponent] }); }
4000
5232
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MstViewerModule, providers: [
4001
5233
  ZoneUtil,
4002
5234
  SignaleringsbeeldInfoResource,